Partio
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
Partio::ParticlesDataMutable Class Referenceabstract

Particle Mutable Data Interface. More...

#include <Partio.h>

Inheritance diagram for Partio::ParticlesDataMutable:
Partio::ParticlesData Partio::ParticlesInfo

Public Types

typedef ParticleIterator< false > iterator
 
- Public Types inherited from Partio::ParticlesData
typedef ParticleIterator< true > const_iterator
 

Public Member Functions

template<class T >
T * dataWrite (const ParticleAttribute &attribute, const ParticleIndex particleIndex) const
 
virtual int registerIndexedStr (const ParticleAttribute &attribute, const char *str)=0
 Returns a token for the given string. This allows efficient storage of string data. More...
 
virtual void sort ()=0
 
virtual ParticleAttribute addAttribute (const char *attribute, ParticleAttributeType type, const int count)=0
 Adds an attribute to the particle with the provided name, type and count. More...
 
virtual ParticleIndex addParticle ()=0
 Add a particle to the particle set. Returns the offset to the particle. More...
 
virtual iterator addParticles (const int count)=0
 
iterator begin ()
 Produce a beginning iterator for the particles. More...
 
iterator end ()
 Produce a ending iterator for the particles. More...
 
virtual iterator setupIterator ()=0
 Produce a const iterator. More...
 
- Public Member Functions inherited from Partio::ParticlesData
template<class T >
void data (const ParticleAttribute &attribute, const int indexCount, const ParticleIndex *particleIndices, const bool sorted, T *values)
 
template<class T >
const T * data (const ParticleAttribute &attribute, const ParticleIndex particleIndex) const
 
virtual const std::vector< std::string > & indexedStrs (const ParticleAttribute &attr) const =0
 All indexed strings for an attribute. More...
 
virtual int lookupIndexedStr (const ParticleAttribute &attribute, const char *str) const =0
 Looks up the index for a given string for a given attribute, returns -1 if not found. More...
 
virtual void dataAsFloat (const ParticleAttribute &attribute, const int indexCount, const ParticleIndex *particleIndices, const bool sorted, float *values) const =0
 
virtual void findPoints (const float bboxMin[3], const float bboxMax[3], std::vector< ParticleIndex > &points) const =0
 
virtual float findNPoints (const float center[3], int nPoints, const float maxRadius, std::vector< ParticleIndex > &points, std::vector< float > &pointDistancesSquared) const =0
 
virtual int findNPoints (const float center[3], int nPoints, const float maxRadius, ParticleIndex *points, float *pointDistancesSquared, float *finalRadius2) const =0
 
virtual const_iterator setupConstIterator () const =0
 Produce a const iterator. More...
 
const_iterator begin () const
 Produce a beginning iterator for the particles. More...
 
const_iterator end () const
 Produce a ending iterator for the particles. More...
 
- Public Member Functions inherited from Partio::ParticlesInfo
virtual void release () const =0
 
virtual int numAttributes () const =0
 Number of particles in the structure. More...
 
virtual int numParticles () const =0
 Number of per-particle attributes. More...
 
virtual bool attributeInfo (const char *attributeName, ParticleAttribute &attribute) const =0
 Lookup an attribute by name and store a handle to the attribute. More...
 
virtual bool attributeInfo (const int attributeInfo, ParticleAttribute &attribute) const =0
 Lookup an attribute by index and store a handle to the attribute. More...
 

Protected Member Functions

virtual ~ParticlesDataMutable ()
 
- Protected Member Functions inherited from Partio::ParticlesData
virtual ~ParticlesData ()
 
- Protected Member Functions inherited from Partio::ParticlesInfo
virtual ~ParticlesInfo ()
 

Private Member Functions

virtual void * dataInternal (const ParticleAttribute &attribute, const ParticleIndex particleIndex) const =0
 

Detailed Description

Particle Mutable Data Interface.

This interface provides the ability to write data attributes, add attributes, add particles, etc.

Member Typedef Documentation

Constructor & Destructor Documentation

virtual Partio::ParticlesDataMutable::~ParticlesDataMutable ( )
inlineprotectedvirtual

Member Function Documentation

virtual ParticleAttribute Partio::ParticlesDataMutable::addAttribute ( const char *  attribute,
ParticleAttributeType  type,
const int  count 
)
pure virtual

Adds an attribute to the particle with the provided name, type and count.

virtual ParticleIndex Partio::ParticlesDataMutable::addParticle ( )
pure virtual

Add a particle to the particle set. Returns the offset to the particle.

virtual iterator Partio::ParticlesDataMutable::addParticles ( const int  count)
pure virtual

Add a set of particles to the particle set. Returns the offset to the first particle

iterator Partio::ParticlesDataMutable::begin ( )
inline

Produce a beginning iterator for the particles.

References setupIterator().

virtual void* Partio::ParticlesDataMutable::dataInternal ( const ParticleAttribute attribute,
const ParticleIndex  particleIndex 
) const
privatepure virtual

Implements Partio::ParticlesData.

Referenced by dataWrite().

template<class T >
T* Partio::ParticlesDataMutable::dataWrite ( const ParticleAttribute attribute,
const ParticleIndex  particleIndex 
) const
inline

Get a pointer to the data corresponding to the given particleIndex and attribute given by the attribute handle.

References dataInternal().

iterator Partio::ParticlesDataMutable::end ( )
inline

Produce a ending iterator for the particles.

virtual int Partio::ParticlesDataMutable::registerIndexedStr ( const ParticleAttribute attribute,
const char *  str 
)
pure virtual

Returns a token for the given string. This allows efficient storage of string data.

virtual iterator Partio::ParticlesDataMutable::setupIterator ( )
pure virtual

Produce a const iterator.

Referenced by begin().

virtual void Partio::ParticlesDataMutable::sort ( )
pure virtual

Preprocess the data for finding nearest neighbors by sorting into a KD-Tree. Note: all particle pointers are invalid after this call.


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