Particle Universe
1.2
|
#include <ParticleUniverseTechnique.h>
Classes | |
struct | DirectionSorter |
struct | DistanceSorter |
Static Public Attributes | |
static const bool | DEFAULT_ENABLED |
static const Vector3 | DEFAULT_POSITION |
static const bool | DEFAULT_KEEP_LOCAL |
static const size_t | DEFAULT_VISUAL_PARTICLE_QUOTA |
static const size_t | DEFAULT_EMITTED_EMITTER_QUOTA |
static const size_t | DEFAULT_EMITTED_TECHNIQUE_QUOTA |
static const size_t | DEFAULT_EMITTED_AFFECTOR_QUOTA |
static const size_t | DEFAULT_EMITTED_SYSTEM_QUOTA |
static const unsigned short | DEFAULT_LOD_INDEX |
static const Real | DEFAULT_WIDTH |
static const Real | DEFAULT_HEIGHT |
static const Real | DEFAULT_DEPTH |
static const unsigned short | DEFAULT_SPATIAL_HASHING_CELL_DIM |
static const unsigned short | DEFAULT_SPATIAL_HASHING_CELL_OVERLAP |
static const size_t | DEFAULT_SPATIAL_HASHING_TABLE_SIZE |
static const Real | DEFAULT_SPATIAL_HASHING_INTERVAL |
static const Real | DEFAULT_MAX_VELOCITY |
Static Public Attributes inherited from ParticleUniverse::Particle | |
static Real | DEFAULT_TTL |
static Real | DEFAULT_MASS |
Protected Member Functions | |
void | _pushTechniqueEvent (EventType eventType) |
void | _initParticleForEmission (Particle *particle) |
virtual void | _initForEmission (void) |
virtual void | _initForExpiration (ParticleTechnique *technique, Real timeElapsed) |
void | _updateRenderQueuePooledTechniques (Ogre::RenderQueue *queue) |
void | _resetMarkForEmission (void) |
void | _processParticles (Real timeElapsed) |
void | _processDependencies (void) |
void | _extractPooledAffectors (void) |
void | _processSpatialHashing (Particle *particle, Real timeElapsed) |
void | _processAffectors (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _preProcessParticles (Real timeElapsed) |
void | _postProcessParticles (Real timeElapsed) |
void | _postProcessSpatialHashing (void) |
void | _processExternals (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _processRenderer (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _processParticleSelf (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _initParticleForExpiration (Particle *particle, Real timeElapsed) |
void | _processObservers (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _emitParticles (Real timeElapsed) |
void | _executeEmitParticles (ParticleEmitter *emitter, unsigned requested, Real timeElapsed) |
void | _processMotion (Particle *particle, Real timeElapsed, bool firstParticle) |
void | _notifyStartPooledComponents (void) |
void | _notifyStopPooledComponents (void) |
void | _notifyPausePooledComponents (void) |
void | _notifyResumePooledComponents (void) |
Static Protected Attributes | |
static RadixSort< Pool< VisualParticle >::PoolList, Particle *, float > | mRadixSorter |
Additional Inherited Members | |
Public Attributes inherited from ParticleUniverse::Particle | |
ParticleEmitter * | parentEmitter |
Vector3 | position |
Vector3 | direction |
Real | mass |
Real | timeToLive |
Real | totalTimeToLive |
Real | timeFraction |
ParticleType | particleType |
Any | mUserDefinedObject |
PhysicsActor * | physicsActor |
IVisualData * | visualData |
Vector3 | originalPosition |
Vector3 | originalDirection |
Real | originalVelocity |
Real | originalDirectionLength |
Real | originalScaledDirectionLength |
Vector3 | latestPosition |
In analogy of Ogre's material system, the ParticleTechnique is introduced. It forms an extra layer between particle emitters, affectors, etc. on one side, and the particle system and the other side. A ParticleTechnique has a few benefits. For example, with the use of a ParticleTechnique it is possible to implement Particle LOD (Level Of Detail). Also combining multiple renderers and material within one ParticleSystem is possible.
typedef ExternList::const_iterator ParticleUniverse::ParticleTechnique::ExternIterator |
typedef ParticleAffectorList::const_iterator ParticleUniverse::ParticleTechnique::ParticleAffectorIterator |
typedef ParticleEmitterList::const_iterator ParticleUniverse::ParticleTechnique::ParticleEmitterIterator |
typedef ParticleObserverList::const_iterator ParticleUniverse::ParticleTechnique::ParticleObserverIterator |
typedef TechniqueListenerList::const_iterator ParticleUniverse::ParticleTechnique::TechniqueListenerIterator |
ParticleUniverse::ParticleTechnique::ParticleTechnique | ( | void | ) |
|
virtual |
void ParticleUniverse::ParticleTechnique::_addBehaviourTemplate | ( | ParticleBehaviour * | behaviourTemplate | ) |
Add a ParticleBehaviour template to this ParticleTechnique.
Pointer | to a previously created Behaviour object. |
void ParticleUniverse::ParticleTechnique::_destroyAllBehaviourTemplates | ( | void | ) |
Delete all ParticleBehaviour templates of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::_destroyBehaviourTemplate | ( | ParticleBehaviour * | behaviourTemplate | ) |
Delete a ParticleBehaviour template that is part of this ParticleTechnique.
|
protected |
Call the emitters to emit particles.
|
protected |
Actually executes emission of particles.
|
protected |
Copies the pooled affectors from the pool to a separate list.
ParticleBehaviour* ParticleUniverse::ParticleTechnique::_getBehaviourTemplate | ( | size_t | index | ) | const |
Get a ParticleBehaviour template. Search by index.
ParticleBehaviour* ParticleUniverse::ParticleTechnique::_getBehaviourTemplate | ( | const String & | behaviourType | ) | const |
Get a ParticleBehaviour template. Search by type.
size_t ParticleUniverse::ParticleTechnique::_getNumBehaviourTemplates | ( | void | ) | const |
Get the number of ParticleBehaviour templates added to this ParticleTechnique.
ParticlePool* ParticleUniverse::ParticleTechnique::_getParticlePool | ( | void | ) |
Returns a pointer to the particle pool.
void ParticleUniverse::ParticleTechnique::_initAllParticlesForExpiration | ( | void | ) |
Expire all active (emitted) particles and put them back into the pool.
|
protectedvirtual |
Initialise the ParticleTechnique before it is emitted itself.
Reimplemented from ParticleUniverse::Particle.
|
protectedvirtual |
Initialise the ParticleTechnique before it is expired itself.
Reimplemented from ParticleUniverse::Particle.
|
protected |
Initialises a particle by another object (if available).
|
protected |
Perform actions if a particle gets expired.
|
inline |
Validate whether a particle is expired.
void ParticleUniverse::ParticleTechnique::_markForEmission | ( | void | ) |
Determine which techniques, affectors, emitters will be emitted.
void ParticleUniverse::ParticleTechnique::_markForEmission | ( | ParticleEmitter * | emitter, |
bool | mark = true |
||
) |
Determines which techniques, affectors, emitters will be emitted (or not) by the given emitter.
void ParticleUniverse::ParticleTechnique::_notifyAttached | ( | Ogre::Node * | parent, |
bool | isTagPoint = false |
||
) |
Implementation of the _notifyAttached, needed for each technique that is part of a particle system.
void ParticleUniverse::ParticleTechnique::_notifyAttachedPooledTechniques | ( | Ogre::Node * | parent, |
bool | isTagPoint | ||
) |
Notify the pooled techniques that its parent system has been attached or detached.
void ParticleUniverse::ParticleTechnique::_notifyCurrentCamera | ( | Camera * | camera | ) |
Implementation of the _notifyCurrentCamera, needed for each technique that is part of a particle system.
void ParticleUniverse::ParticleTechnique::_notifyCurrentCameraPooledTechniques | ( | Camera * | camera | ) |
Notify the pooled techniques with the current camera.
void ParticleUniverse::ParticleTechnique::_notifyEmissionChange | ( | void | ) |
Is called as soon as a new emitter is added or deleted, which leads to a re-evaluation of the emitted objects.
void ParticleUniverse::ParticleTechnique::_notifyParticleResized | ( | void | ) |
Implementation of the _notifyParticleResized, needed for each technique that is part of a particle system.
void ParticleUniverse::ParticleTechnique::_notifyPause | ( | void | ) |
Perform activities when a ParticleTechnique is paused.
|
protected |
Similar as _notifyPause(), but now for the pooled components.
void ParticleUniverse::ParticleTechnique::_notifyRescaled | ( | const Vector3 & | scale | ) |
Notify that the Particle System is rescaled.
void ParticleUniverse::ParticleTechnique::_notifyResume | ( | void | ) |
Perform activities when a ParticleTechnique is resumed.
|
protected |
Similar as _notifyResume(), but now for the pooled components.
void ParticleUniverse::ParticleTechnique::_notifyStart | ( | void | ) |
Perform activities when a ParticleTechnique is started.
|
protected |
Similar as _notifyStart(), but now for the pooled components.
void ParticleUniverse::ParticleTechnique::_notifyStop | ( | void | ) |
Perform activities when a ParticleTechnique is stopped.
|
protected |
Similar as _notifyStop(), but now for the pooled components.
void ParticleUniverse::ParticleTechnique::_notifyUpdateBounds | ( | void | ) |
Notify updating the axis aligned bounding box.
void ParticleUniverse::ParticleTechnique::_notifyVelocityRescaled | ( | const Real & | scaleVelocity | ) |
Notify that the velocity is rescaled.
|
protected |
Perform some activities after all individual particles are processed.
|
protected |
A Spatial Hash table is used if particles approach each other and the mutual distance is important. This function is called for each particle if the use of a Spatial Hash table is set to true.
void ParticleUniverse::ParticleTechnique::_prepare | ( | void | ) |
Perform some initialisation activities.
void ParticleUniverse::ParticleTechnique::_prepareAffectors | ( | void | ) |
Perform (un)initialisation activities of affectors.
void ParticleUniverse::ParticleTechnique::_prepareBehaviours | ( | void | ) |
Perform (un)initialisation activities of behaviours.
void ParticleUniverse::ParticleTechnique::_prepareEmitters | ( | void | ) |
Perform (un)initialisation activities of emitters.
void ParticleUniverse::ParticleTechnique::_prepareExterns | ( | void | ) |
Perform (un)initialisation activities of externs.
void ParticleUniverse::ParticleTechnique::_prepareRenderer | ( | void | ) |
Perform (un)initialisation activities of the renderer.
void ParticleUniverse::ParticleTechnique::_prepareSystem | ( | void | ) |
Perform (un)initialisation activities of system elements.
void ParticleUniverse::ParticleTechnique::_prepareTechnique | ( | void | ) |
Perform (un)initialisation activities of the technique itself.
void ParticleUniverse::ParticleTechnique::_prepareVisualParticles | ( | void | ) |
(Un)initialise visual particles if needed.
|
protected |
Perform some activities before all individual particles are processed.
|
protected |
Function that affects a particle by the affectors that are part of this particle technique.
|
protected |
Determine the dependencies and process them.
|
protected |
Function that uses an external source - outside the partice technique - to affect the particle.
|
inlineprotected |
Apply motion to a particle.
|
protected |
Observers are classes that ŽwatchŽ at a particle and perform an action as soon as a certain threshold is exceeded. This function calls all observers.
|
protected |
Apply actions on the emitted particles (expire, affect, observe, ...).
|
inlineprotected |
Perform actions on a single particle after each update.
|
protected |
Some renderers also perform additional activities on particles (besides renderering).
|
protected |
If spatial hashing is required, the particle will be put in a hashtable.
|
protected |
Convenient function to push an event.
void ParticleUniverse::ParticleTechnique::_removeBehaviourTemplate | ( | ParticleBehaviour * | behaviourTemplate | ) |
Remove a ParticleBehaviour template.
void ParticleUniverse::ParticleTechnique::_resetBounds | ( | void | ) |
Reset the bounds.
|
protected |
Reset all MarkForEmission values (to false) for all techniques, affectors and emitters.
void ParticleUniverse::ParticleTechnique::_sortVisualParticles | ( | Camera * | camera | ) |
Sort the visual particles.
void ParticleUniverse::ParticleTechnique::_unprepare | ( | void | ) |
V1.5: Perform some cleanup activities.
void ParticleUniverse::ParticleTechnique::_unprepareAffectors | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareBehaviours | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareEmitters | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareExterns | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareRenderer | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareSystem | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareTechnique | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_unprepareVisualParticles | ( | void | ) |
void ParticleUniverse::ParticleTechnique::_update | ( | Real | timeElapsed | ) |
Update this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::_updateRenderQueue | ( | Ogre::RenderQueue * | queue | ) |
Update the renderqueue.
|
protected |
Updates the renderqueue of pooled ParticleTechniques.
void ParticleUniverse::ParticleTechnique::addAffector | ( | ParticleAffector * | affector | ) |
Add a ParticleAffector to this ParticleTechnique.
Pointer | to a previously created affector. |
void ParticleUniverse::ParticleTechnique::addEmitter | ( | ParticleEmitter * | emitter | ) |
Add a ParticleEmitter to this ParticleTechnique.
emitter | Pointer to a previously created emitter. |
void ParticleUniverse::ParticleTechnique::addExtern | ( | Extern * | externObject | ) |
Add an Extern to this ParticleTechnique.
Pointer | to a previously created Extern object. |
void ParticleUniverse::ParticleTechnique::addObserver | ( | ParticleObserver * | observer | ) |
Add a ParticleObserver to this ParticleTechnique.
Pointer | to a previously created observer. |
void ParticleUniverse::ParticleTechnique::addTechniqueListener | ( | TechniqueListener * | techniqueListener | ) |
Add a TechniqueListener, which gets called in case a particle is emitted or expired.
|
virtual |
Copy the attributes of this ParticleTechnique to another ParticleTechnique.
ParticleAffector* ParticleUniverse::ParticleTechnique::createAffector | ( | const String & | affectorType | ) |
Create a ParticleAffector and add it to this ParticleTechnique.
ParticleEmitter* ParticleUniverse::ParticleTechnique::createEmitter | ( | const String & | emitterType | ) |
Create a ParticleEmitter and add it to this ParticleTechnique.
Create an Extern and add it to this ParticleTechnique.
ParticleObserver* ParticleUniverse::ParticleTechnique::createObserver | ( | const String & | observerType | ) |
Create a ParticleObserver and add it to this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyAffector | ( | size_t | index | ) |
Delete a ParticleAffector that is part of this ParticleTechnique. Search by index.
void ParticleUniverse::ParticleTechnique::destroyAffector | ( | ParticleAffector * | affector | ) |
Delete a ParticleAffector that is part of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyAllAffectors | ( | void | ) |
Delete all ParticleAffectors of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyAllEmitters | ( | void | ) |
Delete all ParticleEmitters of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyAllExterns | ( | void | ) |
Delete all Externs of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyAllObservers | ( | void | ) |
Delete all ParticleObservers of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyEmitter | ( | size_t | index | ) |
Delete a ParticleEmitter that is part of this ParticleTechnique. Search by index.
void ParticleUniverse::ParticleTechnique::destroyEmitter | ( | ParticleEmitter * | emitter | ) |
Delete a ParticleEmitter that is part of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyExtern | ( | size_t | index | ) |
Delete an Extern that is part of this ParticleTechnique. Search by index.
void ParticleUniverse::ParticleTechnique::destroyExtern | ( | Extern * | externObject | ) |
Delete an Extern that is part of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyObserver | ( | size_t | index | ) |
Delete a ParticleObserver that is part of this ParticleTechnique. Search by index.
void ParticleUniverse::ParticleTechnique::destroyObserver | ( | ParticleObserver * | observer | ) |
Delete a ParticleObserver that is part of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::destroyRenderer | ( | void | ) |
Delete the renderer of this ParticleTechnique.
void ParticleUniverse::ParticleTechnique::forceEmission | ( | ParticleEmitter * | emitter, |
unsigned | requested | ||
) |
Forces emission of particles.
void ParticleUniverse::ParticleTechnique::forceEmission | ( | const Particle::ParticleType | particleType, |
unsigned | requested | ||
) |
Emits particles of the first emitter it encounters in this technique.
ParticleAffector* ParticleUniverse::ParticleTechnique::getAffector | ( | size_t | index | ) | const |
Get a ParticleAffector. Search by index.
ParticleAffector* ParticleUniverse::ParticleTechnique::getAffector | ( | const String & | affectorName | ) | const |
Get a ParticleAffector. Search by name.
|
inline |
Get/Set the squared distance between camera and ParticleTechnique.
const Real ParticleUniverse::ParticleTechnique::getDefaultDepth | ( | void | ) | const |
const Real ParticleUniverse::ParticleTechnique::getDefaultHeight | ( | void | ) | const |
const Real ParticleUniverse::ParticleTechnique::getDefaultWidth | ( | void | ) | const |
CameraDependency* ParticleUniverse::ParticleTechnique::getDepthCameraDependency | ( | void | ) | const |
const Vector3& ParticleUniverse::ParticleTechnique::getDerivedPosition | ( | void | ) |
Returns the derived position of the technique.
size_t ParticleUniverse::ParticleTechnique::getEmittedAffectorQuota | ( | void | ) | const |
size_t ParticleUniverse::ParticleTechnique::getEmittedEmitterQuota | ( | void | ) | const |
size_t ParticleUniverse::ParticleTechnique::getEmittedSystemQuota | ( | void | ) | const |
size_t ParticleUniverse::ParticleTechnique::getEmittedTechniqueQuota | ( | void | ) | const |
ParticleEmitter* ParticleUniverse::ParticleTechnique::getEmitter | ( | size_t | index | ) | const |
Get a ParticleEmitter. Search by index.
ParticleEmitter* ParticleUniverse::ParticleTechnique::getEmitter | ( | const String & | emitterName | ) | const |
Get a ParticleEmitter. Search by name.
Extern* ParticleUniverse::ParticleTechnique::getExtern | ( | size_t | index | ) | const |
Get an Extern. Search by index.
Get an Extern. Search by name.
Get an Extern. Search by type.
CameraDependency* ParticleUniverse::ParticleTechnique::getHeightCameraDependency | ( | void | ) | const |
|
inline |
Get the Lod index.
const Ogre::MaterialPtr ParticleUniverse::ParticleTechnique::getMaterial | ( | void | ) | const |
Get the material pointer.
const String& ParticleUniverse::ParticleTechnique::getMaterialName | ( | void | ) | const |
Set the name of the material used by the renderer.
Real ParticleUniverse::ParticleTechnique::getMaxVelocity | ( | void | ) | const |
Return the maximum velocity a particle can have, even if the velocity of the particle has been set higher (either by initialisation of the particle or by means of an affector).
|
inline |
size_t ParticleUniverse::ParticleTechnique::getNumAffectors | ( | void | ) | const |
Get the number of ParticleAffectors added to this ParticleTechnique.
size_t ParticleUniverse::ParticleTechnique::getNumberOfEmittedParticles | ( | void | ) |
size_t ParticleUniverse::ParticleTechnique::getNumberOfEmittedParticles | ( | Particle::ParticleType | particleType | ) |
size_t ParticleUniverse::ParticleTechnique::getNumEmittedAffectors | ( | void | ) | const |
Get the number of emitted ParticleAffectors.
size_t ParticleUniverse::ParticleTechnique::getNumEmittedEmitters | ( | void | ) | const |
Get the number of emitted ParticleEmitters.
size_t ParticleUniverse::ParticleTechnique::getNumEmitters | ( | void | ) | const |
Get the number of ParticleEmitters added to this ParticleTechnique.
size_t ParticleUniverse::ParticleTechnique::getNumExterns | ( | void | ) | const |
Get the number of Externs added to this ParticleTechnique.
size_t ParticleUniverse::ParticleTechnique::getNumObservers | ( | void | ) | const |
Get the number of ParticleObservers added to this ParticleTechnique.
ParticleObserver* ParticleUniverse::ParticleTechnique::getObserver | ( | size_t | index | ) | const |
Get a ParticleObserver. Search by index.
ParticleObserver* ParticleUniverse::ParticleTechnique::getObserver | ( | const String & | observerName | ) | const |
Get a ParticleObserver. Search by name.
|
inline |
Real ParticleUniverse::ParticleTechnique::getParticleSystemScaleVelocity | ( | void | ) | const |
Returns the velocity scale, defined in the particle system, but passed to the technique for convenience.
ParticleRenderer* ParticleUniverse::ParticleTechnique::getRenderer | ( | void | ) | const |
Returns the pointer to the renderer.
unsigned short ParticleUniverse::ParticleTechnique::getSpatialHashingCellDimension | ( | void | ) | const |
Returns the celsize used in spatial hashing.
unsigned short ParticleUniverse::ParticleTechnique::getSpatialHashingCellOverlap | ( | void | ) | const |
Return the size of the overlap.
Real ParticleUniverse::ParticleTechnique::getSpatialHashingInterval | ( | void | ) | const |
Return the interval when the spatial hashtable is updated.
SpatialHashTable<Particle*>* ParticleUniverse::ParticleTechnique::getSpatialHashTable | ( | void | ) | const |
Returns the Spatial Hashtable.
unsigned int ParticleUniverse::ParticleTechnique::getSpatialHashTableSize | ( | void | ) | const |
Returns the size of the hashtable used in spatial hashing.
size_t ParticleUniverse::ParticleTechnique::getVisualParticleQuota | ( | void | ) | const |
CameraDependency* ParticleUniverse::ParticleTechnique::getWidthCameraDependency | ( | void | ) | const |
|
inline |
Returns the world aabb.
void ParticleUniverse::ParticleTechnique::initVisualDataInPool | ( | void | ) |
Reset the visual data in the pool.
bool ParticleUniverse::ParticleTechnique::isKeepLocal | ( | void | ) | const |
bool ParticleUniverse::ParticleTechnique::isSpatialHashingParticleSizeUsed | ( | void | ) | const |
Return the indication whether to use only the particle position (false) or take the particle size into account (true).
bool ParticleUniverse::ParticleTechnique::isSpatialHashingUsed | ( | void | ) | const |
Returns true if spatial hashing is used.
bool ParticleUniverse::ParticleTechnique::isStopFade | ( | void | ) |
if stopFade is set, emitter must not emit new particles anymore
void ParticleUniverse::ParticleTechnique::lockAllParticles | ( | void | ) |
Put all emitted particles back into the pool.
void ParticleUniverse::ParticleTechnique::logDebug | ( | void | ) |
Generates debug information, such as max. used particles in a technique.
|
inline |
Transforms the particle position in a local position relative to the technique
void ParticleUniverse::ParticleTechnique::pushEvent | ( | ParticleUniverseEvent & | particleUniverseEvent | ) |
Forwards an event to the parent particle system.
void ParticleUniverse::ParticleTechnique::removeAffector | ( | ParticleAffector * | affector | ) |
Remove a ParticleAffector from the ParticleTechnique, but donŽt delete it.
Pointer | to a ParticleAffector object. |
void ParticleUniverse::ParticleTechnique::removeEmitter | ( | ParticleEmitter * | emitter | ) |
Remove a ParticleEmitter from the ParticleTechnique, but donŽt delete it.
Pointer | to a ParticleEmitter object. |
void ParticleUniverse::ParticleTechnique::removeExtern | ( | Extern * | externObject | ) |
Remove an Extern from the ParticleTechnique, but donŽt delete it.
Pointer | to an Extern object. |
void ParticleUniverse::ParticleTechnique::removeObserver | ( | ParticleObserver * | observer | ) |
Remove a ParticleObserver from the ParticleTechnique, but donŽt delete it.
Pointer | to a ParticleObserver object. |
void ParticleUniverse::ParticleTechnique::removeRenderer | ( | ParticleRenderer * | renderer | ) |
Remove a renderer; this doesn't detroy it.
void ParticleUniverse::ParticleTechnique::removeTechniqueListener | ( | TechniqueListener * | techniqueListener | ) |
Removes the TechniqueListener, but it isn't destroyed.
|
inline |
void ParticleUniverse::ParticleTechnique::setDefaultDepth | ( | const Real | depth | ) |
void ParticleUniverse::ParticleTechnique::setDefaultHeight | ( | const Real | height | ) |
void ParticleUniverse::ParticleTechnique::setDefaultWidth | ( | const Real | width | ) |
void ParticleUniverse::ParticleTechnique::setDepthCameraDependency | ( | CameraDependency * | cameraDependency | ) |
void ParticleUniverse::ParticleTechnique::setDepthCameraDependency | ( | Real | squareDistance, |
bool | inc | ||
) |
void ParticleUniverse::ParticleTechnique::setEmittedAffectorQuota | ( | size_t | quota | ) |
void ParticleUniverse::ParticleTechnique::setEmittedEmitterQuota | ( | size_t | quota | ) |
void ParticleUniverse::ParticleTechnique::setEmittedSystemQuota | ( | size_t | quota | ) |
void ParticleUniverse::ParticleTechnique::setEmittedTechniqueQuota | ( | size_t | quota | ) |
void ParticleUniverse::ParticleTechnique::setHeightCameraDependency | ( | CameraDependency * | cameraDependency | ) |
void ParticleUniverse::ParticleTechnique::setHeightCameraDependency | ( | Real | squareDistance, |
bool | inc | ||
) |
void ParticleUniverse::ParticleTechnique::setKeepLocal | ( | bool | keepLocal | ) |
If this attribute is set to 'true', the particles are emitted relative to the technique
|
inline |
Set the Lod index.
void ParticleUniverse::ParticleTechnique::setMaterialName | ( | const String & | materialName | ) |
Set the name of the material used by the renderer.
void ParticleUniverse::ParticleTechnique::setMaxVelocity | ( | Real | maxVelocity | ) |
Set the maximum velocity a particle can have.
|
inline |
|
inline |
void ParticleUniverse::ParticleTechnique::setRenderer | ( | const String & | rendererType | ) |
Set a renderer by means of the type of renderer.
void ParticleUniverse::ParticleTechnique::setRenderer | ( | ParticleRenderer * | renderer | ) |
Set a renderer.
void ParticleUniverse::ParticleTechnique::setRenderQueueGroup | ( | uint8 | queueId | ) |
Set the renderqueue group in the renderer
void ParticleUniverse::ParticleTechnique::setSpatialHashingCellDimension | ( | unsigned short | spatialHashingCellDimension | ) |
Set the celsize used in spatial hashing. A cel represents a small part of the 3d space in which particles may exist. The size of the cel is the same for both x, y and z dimension.
void ParticleUniverse::ParticleTechnique::setSpatialHashingCellOverlap | ( | unsigned short | spatialHashingCellOverlap | ) |
Set the size of the overlap.
void ParticleUniverse::ParticleTechnique::setSpatialHashingInterval | ( | Real | spatialHashingInterval | ) |
Set the interval when the spatial hashtable is updated.
void ParticleUniverse::ParticleTechnique::setSpatialHashingParticleSizeUsed | ( | bool | spatialHashingParticleSizeUsed | ) |
Set the indication whether to use only the particle position (false) or take the particle size into account (true).
void ParticleUniverse::ParticleTechnique::setSpatialHashingUsed | ( | bool | spatialHashingUsed | ) |
Defines whether spatial hashing is used.
void ParticleUniverse::ParticleTechnique::setSpatialHashTableSize | ( | unsigned int | spatialHashTableSize | ) |
Sets the size of the hashtable used in spatial hashing.
void ParticleUniverse::ParticleTechnique::setVisualParticleQuota | ( | size_t | quota | ) |
void ParticleUniverse::ParticleTechnique::setWidthCameraDependency | ( | CameraDependency * | cameraDependency | ) |
void ParticleUniverse::ParticleTechnique::setWidthCameraDependency | ( | Real | squareDistance, |
bool | inc | ||
) |
void ParticleUniverse::ParticleTechnique::suppressNotifyEmissionChange | ( | bool | suppress | ) |
Function to suppress notification of an emission change.
|
protected |
Although the scale is on a Particle System level, it is stored here also, because this value is often used. It is a derived value, so it has not get a get and set function.
|
protected |
Although the velocity scale is on a Particle System level, it is stored here also, because this value is often used. It is a derived value, so it has not get a get and set function.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
List containing registered ParticleAffectors.
|
protected |
List containing registered Behaviour templates.
|
protected |
Helper Factory to create a CameraDependency.
|
protected |
Distance between the latest camera that updated the renderqueue and the particle system.
|
protected |
Because the particle pool is not capable to iterate multiple times at once, an extraction of the pooled ParticleAffectors is made.
|
protected |
|
protected |
Default depth of each visual particle.
|
protected |
Default height of each visual particle.
|
protected |
Default width of each visual particle.
|
protected |
CameraDependency that causes a decrease (or increase if needed) of the particle depth.
|
protected |
The maximum number of affector particles that can be emitted.
|
protected |
The maximum number of emitter particles that can be emitted.
|
protected |
The maximum number of particle system particles that can be emitted.
|
protected |
The maximum number of technique particles that can be emitted.
|
protected |
List containing registered ParticleEmitters.
|
protected |
List containing registered Externs.
|
protected |
|
protected |
CameraDependency that causes a decrease (or increase if needed) of the particle height.
|
protected |
|
protected |
If needed, the particles can be structured in a spatial hashtable. This is a fast way to store particles that are near each other in 3d space. The hashtable can be used for inter-particle collision or nearest neighbour search.
|
protected |
Determines whether particle positions should be kept local in relation to the technique.
|
protected |
Lod level.
|
protected |
Name of the material used in the renderer.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Keeps track of maximum number of emitted particles.
|
protected |
Attributes that limit the velocity of the particles in this technique.
|
protected |
|
protected |
|
protected |
Min/max extends of the WorldAABB.
|
protected |
Name of the technique (optional).
|
protected |
List containing registered ParticleObservers.
|
protected |
Parent Particle System of this technique.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Particle pool.
|
protected |
Indication used to determine whether the Affector objects must be prepared.
|
protected |
Indication used to determine whether the Behaviour objects must be prepared.
|
protected |
Indication used to determine whether the Emitter objects must be prepared.
|
protected |
Indication used to determine whether the Extern objects must be prepared.
|
staticprotected |
Sort the particles.
|
protected |
Particle Renderer.
|
protected |
|
protected |
|
protected |
Attributes that determine that the spatial hashtable is the updated after every interval.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Indication whether _notifyEmissionChange() must be suppressed or not.
|
protected |
List of TechniqueListeners
|
protected |
Determines whether the Particle Technique should update their bounds.
|
protected |
Indication whether elements of the the particle pool are initialized.
|
protected |
The maximum number of visual particles that can be emitted.
|
protected |
CameraDependency that causes a decrease (or increase if needed) of the particle width.
|
protected |
World AABB.