Cortex  10.0.0-a4
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
IECore::ParticleReader Class Referenceabstract

#include <ParticleReader.h>

+ Inheritance diagram for IECore::ParticleReader:

Public Types

enum  RealType { Native = 0, Float = 1, Double = 2 }
 An enum for the values accepted by realTypeParameter().
 
- Public Types inherited from IECore::Reader
typedef boost::function< ReaderPtr(const std::string &fileName)> CreatorFn
 
typedef boost::function< bool(const std::string &fileName)> CanReadFn
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPED (ParticleReader, Reader)
 
 ParticleReader (const std::string &description)
 
Parameter accessors

These provide more convenient access to parameters than by searching the parameters() structure by hand.

FloatParameterpercentageParameter ()
 
const FloatParameterpercentageParameter () const
 
IntParameterpercentageSeedParameter ()
 
const IntParameterpercentageSeedParameter () const
 
StringVectorParameterattributesParameter ()
 
const StringVectorParameterattributesParameter () const
 
IntParameterrealTypeParameter ()
 
const IntParameterrealTypeParameter () const
 
BoolParameterconvertPrimVarNamesParameter ()
 
const BoolParameterconvertPrimVarNamesParameter () const
 
Particle specific reading functions.

These allow more controlled reading than the read() method alone. These functions are still affected by the parameters() settings, so that things like percentage filtering are still available.

virtual unsigned long numParticles ()=0
 
virtual void attributeNames (std::vector< std::string > &names)=0
 
virtual DataPtr readAttribute (const std::string &name)=0
 
- Public Member Functions inherited from IECore::Reader
 IE_CORE_DECLARERUNTIMETYPED (Reader, Op)
 
const std::string & fileName () const
 
virtual CompoundObjectPtr readHeader ()
 
ObjectPtr read ()
 
- Public Member Functions inherited from IECore::Op
 IE_CORE_DECLARERUNTIMETYPED (Op, Parameterised)
 
 Op (const std::string &description, ParameterPtr resultParameter)
 
 Op (const std::string &description, CompoundParameterPtr compoundParameter, ParameterPtr resultParameter)
 
ObjectPtr operate ()
 
ObjectPtr operate (const CompoundObject *operands)
 Performs the operation using the given values of parameters.
 
const ParameterresultParameter () const
 
- Public Member Functions inherited from IECore::Parameterised
 IE_CORE_DECLARERUNTIMETYPED (Parameterised, RunTimeTyped)
 
 Parameterised (const std::string &description)
 
 Parameterised (const std::string &description, CompoundParameterPtr compoundParameter)
 Another constructor added later on that gives defines the CompoundParameter object to be hold in this Parameterised instance.
 
const std::string & description () const
 Returns a description for this parameterised object.
 
CompoundParameterparameters () override
 
const CompoundParameterparameters () const override
 Returns the parameters for query.
 
CompoundObjectuserData ()
 Returns an object that anyone can use for storing anything.
 
const CompoundObjectuserData () const
 Read only version of the above.
 
- Public Member Functions inherited from IECore::RunTimeTyped
 IE_CORE_DECLAREMEMBERPTR (RunTimeTyped)
 
virtual TypeId typeId () const
 
virtual const char * typeName () const
 
virtual bool isInstanceOf (TypeId typeId) const
 
virtual bool isInstanceOf (const char *typeName) const
 
- Public Member Functions inherited from IECore::RefCounted
 IE_CORE_DECLAREMEMBERPTR (RefCounted)
 
void addRef () const
 Add a reference to the current object.
 
void removeRef () const
 Remove a reference from the current object.
 
RefCount refCount () const
 Returns the current reference count.
 

Protected Member Functions

ObjectPtr doOperation (const CompoundObject *operands) override
 
float particlePercentage () const
 
int particlePercentageSeed () const
 
void particleAttributes (std::vector< std::string > &names)
 
RealType realType () const
 
bool convertPrimVarNames () const
 
template<typename T , typename F >
T::Ptr filterAttr (const F *attr, float percentage, const Data *idAttr) const
 
virtual std::string positionPrimVarName ()=0
 Returns the name of the original position primVar should we need to convert it to "P".
 
- Protected Member Functions inherited from IECore::Reader
 Reader (const std::string &description, ParameterPtr resultParameter=nullptr)
 

Protected Attributes

FloatParameterPtr m_percentageParameter
 
IntParameterPtr m_percentageSeedParameter
 
StringVectorParameterPtr m_attributesParameter
 
IntParameterPtr m_realTypeParameter
 
BoolParameterPtr m_convertPrimVarNamesParameter
 
- Protected Attributes inherited from IECore::Reader
FileNameParameterPtr m_fileNameParameter
 

Additional Inherited Members

- Static Public Member Functions inherited from IECore::Reader
static ReaderPtr create (const std::string &fileName)
 
static void supportedExtensions (std::vector< std::string > &extensions)
 
static void supportedExtensions (TypeId typeId, std::vector< std::string > &extensions)
 
static void registerReader (const std::string &extensions, CanReadFn canRead, CreatorFn creator, TypeId typeId)
 
- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
typedef std::map< TypeId, std::vector< TypeId > > BaseTypesRegistryMap
 
typedef std::map< TypeId, std::set< TypeId > > DerivedTypesRegistryMap
 
typedef tbb::spin_rw_mutex Mutex
 
typedef std::map< TypeId, std::string > TypeIdsToTypeNamesMap
 
typedef std::map< std::string, TypeIdTypeNamesToTypeIdsMap
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
static BaseTypeRegistryMap & baseTypeRegistry ()
 
static DerivedTypesRegistryMap & derivedTypesRegistry ()
 
static BaseTypesRegistryMap & completeBaseTypesRegistry ()
 
static DerivedTypesRegistryMap & completeDerivedTypesRegistry ()
 
static void derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &)
 
static TypeIdsToTypeNamesMap & typeIdsToTypeNames ()
 
static TypeNamesToTypeIdsMap & typeNamesToTypeIds ()
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Detailed Description

The ParticleReader class defines an abstract base class for classes able to read particle cache file formats. Its main purpose is to define a standard set of parameters which all ParticleReaders should obey.

Member Function Documentation

virtual void IECore::ParticleReader::attributeNames ( std::vector< std::string > &  names)
pure virtual

Fills the passed vector with the names of all attributes in the file.

Implemented in IECore::PDCParticleReader, IECoreRI::PTCParticleReader, and IECore::NParticleReader.

ObjectPtr IECore::ParticleReader::doOperation ( const CompoundObject operands)
overrideprotectedvirtual

Returns a PointsPrimitive object containing all the attributes requested filtered by the percentage requested. This is implemented using the virtual methods defined above - there is no need to reimplement it in derived classes.

Implements IECore::Op.

Reimplemented in IECoreRI::PTCParticleReader.

template<typename T , typename F >
T::Ptr IECore::ParticleReader::filterAttr ( const F *  attr,
float  percentage,
const Data idAttr 
) const
protected

Convenience function to filter prim vars at a given percentage. The filtering is based on the particle id or based on the particle index if no id is provided.

virtual unsigned long IECore::ParticleReader::numParticles ( )
pure virtual

Returns the number of particles in the file. This returns the absolute total, rather than one affected by the percentage parameter.

Implemented in IECore::PDCParticleReader, IECoreRI::PTCParticleReader, and IECore::NParticleReader.

float IECore::ParticleReader::particlePercentage ( ) const
protected

Convenience functions to access the values held in parameters(). If called from within doOperation they will never throw, but if called at any other time they may, due to invalid values in the corresponding Parameter.

virtual DataPtr IECore::ParticleReader::readAttribute ( const std::string &  name)
pure virtual

Reads the specified attribute, filtered by the percentage specified in parameters(). Returns 0 if the attribute doesn't exist. The type of Data is chosen automatically to best represent the particle data.

Implemented in IECore::PDCParticleReader, IECoreRI::PTCParticleReader, and IECore::NParticleReader.


The documentation for this class was generated from the following file: