Cortex
10.0.0-a4
|
#include <ParticleReader.h>
Public Types | |
enum | RealType { Native = 0, Float = 1, Double = 2 } |
An enum for the values accepted by realTypeParameter(). | |
![]() | |
typedef boost::function< ReaderPtr(const std::string &fileName)> | CreatorFn |
typedef boost::function< bool(const std::string &fileName)> | CanReadFn |
![]() | |
typedef RefCounted | BaseClass |
A typedef for the class this class derives from. All RunTimeTyped classes define this typedef. | |
![]() | |
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. | |
FloatParameter * | percentageParameter () |
const FloatParameter * | percentageParameter () const |
IntParameter * | percentageSeedParameter () |
const IntParameter * | percentageSeedParameter () const |
StringVectorParameter * | attributesParameter () |
const StringVectorParameter * | attributesParameter () const |
IntParameter * | realTypeParameter () |
const IntParameter * | realTypeParameter () const |
BoolParameter * | convertPrimVarNamesParameter () |
const BoolParameter * | convertPrimVarNamesParameter () 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 |
![]() | |
IE_CORE_DECLARERUNTIMETYPED (Reader, Op) | |
const std::string & | fileName () const |
virtual CompoundObjectPtr | readHeader () |
ObjectPtr | read () |
![]() | |
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 Parameter * | resultParameter () const |
![]() | |
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. | |
CompoundParameter * | parameters () override |
const CompoundParameter * | parameters () const override |
Returns the parameters for query. | |
CompoundObject * | userData () |
Returns an object that anyone can use for storing anything. | |
const CompoundObject * | userData () const |
Read only version of the above. | |
![]() | |
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 |
![]() | |
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". | |
![]() | |
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 |
![]() | |
FileNameParameterPtr | m_fileNameParameter |
Additional Inherited Members | |
![]() | |
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 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. | |
![]() | |
typedef std::map< TypeId, TypeId > | BaseTypeRegistryMap |
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, TypeId > | TypeNamesToTypeIdsMap |
![]() | |
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 Mutex | g_baseTypeIdsMutex |
static Mutex | g_derivedTypeIdsMutex |
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.
|
pure virtual |
Fills the passed vector with the names of all attributes in the file.
Implemented in IECore::PDCParticleReader, IECoreRI::PTCParticleReader, and IECore::NParticleReader.
|
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.
|
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.
|
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.
|
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.
|
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.