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)
 
ParticlereleaseParticle (const Particle::ParticleType particleType, const String &name)
 
void releaseAllParticles (void)
 
void lockLatestParticle (void)
 
void lockAllParticles (void)
 
void resetIterator (void)
 
ParticlegetFirst (void)
 
ParticlegetNext (void)
 
ParticlegetFirst (const Particle::ParticleType particleType)
 
ParticlegetNext (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

ParticleTechniquemParentTechnique
 
Pool< VisualParticlemVisualParticlesPool
 
PoolMap< ParticleEmittermParticleEmitterPool
 
PoolMap< ParticleAffectormParticleAffectorPool
 
PoolMap< ParticleSystemmParticleSystemPool
 
PoolMap< ParticleTechniquemParticleTechniquePool
 
vector< VisualParticle * > mVisualParticles
 
vector< ParticleEmitter * > mEmitters
 
vector< ParticleAffector * > mAffectors
 
vector< ParticleTechnique * > mTechniques
 
vector< StringmSystems
 
ParticlemLatestParticle
 

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: