Particle Universe  1.2
ParticleUniverse::ParticlePool Class Reference

#include <ParticleUniverseParticlePool.h>

Public Member Functions

 ParticlePool (void)
 
virtual ~ParticlePool (void)
 
void setParentTechnique (ParticleTechnique *parentTechnique)
 
bool isEmpty (void)
 
bool isEmpty (const Particle::ParticleType particleType)
 
size_t getSize (void)
 
size_t getSize (const Particle::ParticleType particleType)
 
void initialisePool (void)
 
void increasePool (const Particle::ParticleType particleType, size_t size, Particle::ParticleBehaviourList &behaviours, ParticleTechnique *technique)
 
void destroyParticles (const Particle::ParticleType particleType)
 
void destroyAllVisualParticles (void)
 
void destroyAllEmitterParticles (void)
 
void destroyAllTechniqueParticles (void)
 
void destroyAllAffectorParticles (void)
 
void destroyAllSystemParticles (void)
 
Particle * releaseParticle (const Particle::ParticleType particleType, const String &name)
 
void releaseAllParticles (void)
 
void lockLatestParticle (void)
 
void lockAllParticles (void)
 
void resetIterator (void)
 
Particle * getFirst (void)
 
Particle * getNext (void)
 
Particle * getFirst (const Particle::ParticleType particleType)
 
Particle * getNext (const Particle::ParticleType particleType)
 
bool end (void)
 
bool end (const Particle::ParticleType particleType)
 
Pool< VisualParticle >::PoolList & getVisualParticlesList (void)
 

Protected Member Functions

void _increaseVisualParticlePool (size_t size, Particle::ParticleBehaviourList &behaviours)
 
void _increaseParticleEmitterPool (size_t size, Particle::ParticleBehaviourList &behaviours, ParticleTechnique *technique)
 
void _increaseParticleAffectorPool (size_t size, Particle::ParticleBehaviourList &behaviours, ParticleTechnique *technique)
 
void _increaseParticleTechniquePool (size_t size, Particle::ParticleBehaviourList &behaviours, ParticleSystem *system)
 
void _increaseParticleSystemPool (size_t size, Particle::ParticleBehaviourList &behaviours, ParticleTechnique *technique)
 

Protected Attributes

ParticleTechnique * mParentTechnique
 
Pool< VisualParticle > mVisualParticlesPool
 
PoolMap< ParticleEmitter > mParticleEmitterPool
 
PoolMap< ParticleAffector > mParticleAffectorPool
 
PoolMap< ParticleSystem > mParticleSystemPool
 
PoolMap< ParticleTechnique > mParticleTechniquePool
 
vector< VisualParticle * > mVisualParticles
 
vector< ParticleEmitter * > mEmitters
 
vector< ParticleAffector * > mAffectors
 
vector< ParticleTechnique * > mTechniques
 
vector< String > mSystems
 
Particle * mLatestParticle
 

Detailed Description

The ParticlePool is a container class that includes other pools. The ParticlePool acts as one pool with different types of particles.

Constructor & Destructor Documentation

ParticleUniverse::ParticlePool::ParticlePool ( void  )
inline
virtual ParticleUniverse::ParticlePool::~ParticlePool ( void  )
virtual

Member Function Documentation

void ParticleUniverse::ParticlePool::_increaseParticleAffectorPool ( size_t  size,
Particle::ParticleBehaviourList &  behaviours,
ParticleTechnique *  technique 
)
protected
void ParticleUniverse::ParticlePool::_increaseParticleEmitterPool ( size_t  size,
Particle::ParticleBehaviourList &  behaviours,
ParticleTechnique *  technique 
)
protected
void ParticleUniverse::ParticlePool::_increaseParticleSystemPool ( size_t  size,
Particle::ParticleBehaviourList &  behaviours,
ParticleTechnique *  technique 
)
protected
void ParticleUniverse::ParticlePool::_increaseParticleTechniquePool ( size_t  size,
Particle::ParticleBehaviourList &  behaviours,
ParticleSystem *  system 
)
protected
void ParticleUniverse::ParticlePool::_increaseVisualParticlePool ( size_t  size,
Particle::ParticleBehaviourList &  behaviours 
)
protected

Protected methods to increase the pools

void ParticleUniverse::ParticlePool::destroyAllAffectorParticles ( void  )
void ParticleUniverse::ParticlePool::destroyAllEmitterParticles ( void  )
void ParticleUniverse::ParticlePool::destroyAllSystemParticles ( void  )
void ParticleUniverse::ParticlePool::destroyAllTechniqueParticles ( void  )
void ParticleUniverse::ParticlePool::destroyAllVisualParticles ( void  )
void ParticleUniverse::ParticlePool::destroyParticles ( const Particle::ParticleType  particleType)

Destroy particles of a certain type

bool ParticleUniverse::ParticlePool::end ( void  )
bool ParticleUniverse::ParticlePool::end ( const Particle::ParticleType  particleType)
Particle* ParticleUniverse::ParticlePool::getFirst ( void  )
Particle* ParticleUniverse::ParticlePool::getFirst ( const Particle::ParticleType  particleType)
Particle* ParticleUniverse::ParticlePool::getNext ( void  )
Particle* ParticleUniverse::ParticlePool::getNext ( const Particle::ParticleType  particleType)
size_t ParticleUniverse::ParticlePool::getSize ( void  )
size_t ParticleUniverse::ParticlePool::getSize ( const Particle::ParticleType  particleType)
Pool<VisualParticle>::PoolList& ParticleUniverse::ParticlePool::getVisualParticlesList ( void  )
inline
void ParticleUniverse::ParticlePool::increasePool ( const Particle::ParticleType  particleType,
size_t  size,
Particle::ParticleBehaviourList &  behaviours,
ParticleTechnique *  technique 
)
void ParticleUniverse::ParticlePool::initialisePool ( void  )
bool ParticleUniverse::ParticlePool::isEmpty ( void  )
bool ParticleUniverse::ParticlePool::isEmpty ( const Particle::ParticleType  particleType)
void ParticleUniverse::ParticlePool::lockAllParticles ( void  )

Lock all particles in the pool

void ParticleUniverse::ParticlePool::lockLatestParticle ( void  )
void ParticleUniverse::ParticlePool::releaseAllParticles ( void  )

Releases all particles from the pool

Particle* ParticleUniverse::ParticlePool::releaseParticle ( const Particle::ParticleType  particleType,
const String &  name 
)

Releases a particle from the pool

void ParticleUniverse::ParticlePool::resetIterator ( void  )
void ParticleUniverse::ParticlePool::setParentTechnique ( ParticleTechnique *  parentTechnique)

Member Data Documentation

vector<ParticleAffector*> ParticleUniverse::ParticlePool::mAffectors
protected
vector<ParticleEmitter*> ParticleUniverse::ParticlePool::mEmitters
protected
Particle* ParticleUniverse::ParticlePool::mLatestParticle
protected
ParticleTechnique* ParticleUniverse::ParticlePool::mParentTechnique
protected
PoolMap<ParticleAffector> ParticleUniverse::ParticlePool::mParticleAffectorPool
protected
PoolMap<ParticleEmitter> ParticleUniverse::ParticlePool::mParticleEmitterPool
protected
PoolMap<ParticleSystem> ParticleUniverse::ParticlePool::mParticleSystemPool
protected
PoolMap<ParticleTechnique> ParticleUniverse::ParticlePool::mParticleTechniquePool
protected
vector<String> ParticleUniverse::ParticlePool::mSystems
protected
vector<ParticleTechnique*> ParticleUniverse::ParticlePool::mTechniques
protected
vector<VisualParticle*> ParticleUniverse::ParticlePool::mVisualParticles
protected

Vectors used for deletion of created objects

Pool<VisualParticle> ParticleUniverse::ParticlePool::mVisualParticlesPool
protected

The Pools


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