#include <OgreParticleSystem.h>
Inheritance diagram for Ogre::ParticleSystem:
Public Types | ||||
typedef std::vector< ShadowRenderable * > | ShadowRenderableList | |||
typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator | |||
Public Member Functions | ||||
ParticleSystem () | ||||
Default constructor required for STL creation in manager. | ||||
ParticleSystem (const String &name, const String &resourceGroupName) | ||||
Creates a particle system with no emitters or affectors. | ||||
virtual | ~ParticleSystem () | |||
void | setRenderer (const String &typeName) | |||
Sets the ParticleRenderer to be used to render this particle system. | ||||
ParticleSystemRenderer * | getRenderer (void) const | |||
Gets the ParticleRenderer to be used to render this particle system. | ||||
const String & | getRendererName (void) const | |||
Gets the name of the ParticleRenderer to be used to render this particle system. | ||||
ParticleEmitter * | addEmitter (const String &emitterType) | |||
Adds an emitter to this particle system. | ||||
ParticleEmitter * | getEmitter (unsigned short index) const | |||
Retrieves an emitter by it's index (zero-based). | ||||
unsigned short | getNumEmitters (void) const | |||
Returns the number of emitters for this particle system. | ||||
void | removeEmitter (unsigned short index) | |||
Removes an emitter from the system. | ||||
void | removeAllEmitters (void) | |||
Removes all the emitters from this system. | ||||
ParticleAffector * | addAffector (const String &affectorType) | |||
Adds an affector to this particle system. | ||||
ParticleAffector * | getAffector (unsigned short index) const | |||
Retrieves an affector by it's index (zero-based). | ||||
unsigned short | getNumAffectors (void) const | |||
Returns the number of affectors for this particle system. | ||||
void | removeAffector (unsigned short index) | |||
Removes an affector from the system. | ||||
void | removeAllAffectors (void) | |||
Removes all the affectors from this system. | ||||
void | clear () | |||
Empties this set of all particles. | ||||
size_t | getNumParticles (void) const | |||
Gets the number of individual particles in the system right now. | ||||
Particle * | createParticle (void) | |||
Manually add a particle to the system. | ||||
Particle * | createEmitterParticle (const String &emitterName) | |||
Manually add an emitter particle to the system. | ||||
Particle * | getParticle (size_t index) | |||
Retrieve a particle from the system for manual tweaking. | ||||
size_t | getParticleQuota (void) const | |||
Returns the maximum number of particles this system is allowed to have active at once. | ||||
void | setParticleQuota (size_t quota) | |||
Sets the maximum number of particles this system is allowed to have active at once. | ||||
size_t | getEmittedEmitterQuota (void) const | |||
Returns the maximum number of emitted emitters this system is allowed to have active at once. | ||||
void | setEmittedEmitterQuota (size_t quota) | |||
Sets the maximum number of emitted emitters this system is allowed to have active at once. | ||||
ParticleSystem & | operator= (const ParticleSystem &rhs) | |||
Assignment operator for copying. | ||||
void | _update (Real timeElapsed) | |||
Updates the particles in the system based on time elapsed. | ||||
ParticleIterator | _getIterator (void) | |||
Returns an iterator for stepping through all particles in this system. | ||||
virtual void | setMaterialName (const String &name) | |||
Sets the name of the material to be used for this billboard set. | ||||
virtual const String & | getMaterialName (void) const | |||
Sets the name of the material to be used for this billboard set. | ||||
virtual void | _notifyCurrentCamera (Camera *cam) | |||
Overridden from MovableObject. | ||||
void | _notifyAttached (Node *parent, bool isTagPoint=false) | |||
Overridden from MovableObject. | ||||
virtual const AxisAlignedBox & | getBoundingBox (void) const | |||
Overridden from MovableObject. | ||||
virtual Real | getBoundingRadius (void) const | |||
Overridden from MovableObject. | ||||
virtual void | _updateRenderQueue (RenderQueue *queue) | |||
Overridden from MovableObject. | ||||
void | fastForward (Real time, Real interval=0.1) | |||
Fast-forwards this system by the required number of seconds. | ||||
void | setSpeedFactor (Real speedFactor) | |||
Sets a 'speed factor' on this particle system, which means it scales the elapsed real time which has passed by this factor before passing it to the emitters, affectors, and the particle life calculation. | ||||
Real | getSpeedFactor (void) const | |||
Gets the 'speed factor' on this particle system. | ||||
void | setIterationInterval (Real iterationInterval) | |||
Sets a 'iteration interval' on this particle system. | ||||
Real | getIterationInterval (void) const | |||
Gets a 'iteration interval' on this particle system. | ||||
void | setNonVisibleUpdateTimeout (Real timeout) | |||
Sets when the particle system should stop updating after it hasn't been visible for a while. | ||||
Real | getNonVisibleUpdateTimeout (void) const | |||
Gets when the particle system should stop updating after it hasn't been visible for a while. | ||||
const String & | getMovableType (void) const | |||
Overridden from MovableObject. | ||||
virtual void | _notifyParticleResized (void) | |||
Internal callback used by Particles to notify their parent that they have been resized. | ||||
virtual void | _notifyParticleRotated (void) | |||
Internal callback used by Particles to notify their parent that they have been rotated. | ||||
virtual void | setDefaultDimensions (Real width, Real height) | |||
Sets the default dimensions of the particles in this set. | ||||
virtual void | setDefaultWidth (Real width) | |||
See setDefaultDimensions - this sets 1 component individually. | ||||
virtual Real | getDefaultWidth (void) const | |||
See setDefaultDimensions - this gets 1 component individually. | ||||
virtual void | setDefaultHeight (Real height) | |||
See setDefaultDimensions - this sets 1 component individually. | ||||
virtual Real | getDefaultHeight (void) const | |||
See setDefaultDimensions - this gets 1 component individually. | ||||
virtual bool | getCullIndividually (void) const | |||
Returns whether or not particles in this are tested individually for culling. | ||||
virtual void | setCullIndividually (bool cullIndividual) | |||
Sets whether culling tests particles in this individually as well as in a group. | ||||
virtual const String & | getResourceGroupName (void) const | |||
Return the resource group to be used to load dependent resources. | ||||
const String & | getOrigin (void) const | |||
Get the origin of this particle system, e.g. | ||||
void | _notifyOrigin (const String &origin) | |||
Notify this particle system of it's origin. | ||||
void | setRenderQueueGroup (uint8 queueID) | |||
| ||||
void | setSortingEnabled (bool enabled) | |||
Set whether or not particles are sorted according to the camera. | ||||
bool | getSortingEnabled (void) const | |||
Gets whether particles are sorted relative to the camera. | ||||
void | setBounds (const AxisAlignedBox &aabb) | |||
Set the (initial) bounds of the particle system manually. | ||||
void | setBoundsAutoUpdated (bool autoUpdate, Real stopIn=0.0f) | |||
Sets whether the bounds will be automatically updated for the life of the particle system. | ||||
void | setKeepParticlesInLocalSpace (bool keepLocal) | |||
Sets whether particles (and any affector effects) remain relative to the node the particle system is attached to. | ||||
bool | getKeepParticlesInLocalSpace (void) const | |||
Gets whether particles (and any affector effects) remain relative to the node the particle system is attached to. | ||||
void | _updateBounds (void) | |||
Internal method for updating the bounds of the particle system. | ||||
uint32 | getTypeFlags (void) const | |||
Override to return specific type flag. | ||||
ParamDictionary * | getParamDictionary (void) | |||
Retrieves the parameter dictionary for this class. | ||||
const ParamDictionary * | getParamDictionary (void) const | |||
const ParameterList & | getParameters (void) const | |||
Retrieves a list of parameters valid for this object. | ||||
virtual bool | setParameter (const String &name, const String &value) | |||
Generic parameter setting method. | ||||
virtual void | setParameterList (const NameValuePairList ¶mList) | |||
Generic multiple parameter setting method. | ||||
virtual String | getParameter (const String &name) const | |||
Generic parameter retrieval method. | ||||
virtual void | copyParametersTo (StringInterface *dest) const | |||
Method for copying this object's parameters to another object. | ||||
virtual void | _notifyCreator (MovableObjectFactory *fact) | |||
Notify the object of it's creator (internal use only). | ||||
virtual MovableObjectFactory * | _getCreator (void) const | |||
Get the creator of this object, if any (internal use only). | ||||
virtual void | _notifyManager (SceneManager *man) | |||
Notify the object of it's manager (internal use only). | ||||
virtual SceneManager * | _getManager (void) const | |||
Get the manager of this object, if any (internal use only). | ||||
virtual const String & | getName (void) const | |||
Returns the name of this object. | ||||
virtual Node * | getParentNode (void) const | |||
Returns the node to which this object is attached. | ||||
virtual SceneNode * | getParentSceneNode (void) const | |||
Returns the scene node to which this object is attached. | ||||
virtual bool | isAttached (void) const | |||
Returns true if this object is attached to a SceneNode or TagPoint. | ||||
virtual bool | isInScene (void) const | |||
Returns true if this object is attached to a SceneNode or TagPoint, and this SceneNode / TagPoint is currently in an active part of the scene graph. | ||||
virtual void | _notifyMoved (void) | |||
Internal method called to notify the object that it has been moved. | ||||
virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const | |||
Retrieves the axis-aligned bounding box for this object in world coordinates. | ||||
virtual const Sphere & | getWorldBoundingSphere (bool derive=false) const | |||
Retrieves the worldspace bounding sphere for this object. | ||||
virtual void | setVisible (bool visible) | |||
Tells this object whether to be visible or not, if it has a renderable component. | ||||
virtual bool | getVisible (void) const | |||
Gets this object whether to be visible or not, if it has a renderable component. | ||||
virtual bool | isVisible (void) const | |||
Returns whether or not this object is supposed to be visible or not. | ||||
virtual void | setRenderingDistance (Real dist) | |||
Sets the distance at which the object is no longer rendered. | ||||
virtual Real | getRenderingDistance (void) const | |||
Gets the distance at which batches are no longer rendered. | ||||
virtual void | setUserObject (UserDefinedObject *obj) | |||
Call this to associate your own custom user object instance with this MovableObject. | ||||
virtual UserDefinedObject * | getUserObject (void) | |||
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject. | ||||
virtual void | setUserAny (const Any &anything) | |||
Sets any kind of user value on this object. | ||||
virtual const Any & | getUserAny (void) const | |||
Retrieves the custom user value associated with this object. | ||||
virtual uint8 | getRenderQueueGroup (void) const | |||
Gets the queue group for this entity, see setRenderQueueGroup for full details. | ||||
virtual const Matrix4 & | _getParentNodeFullTransform (void) const | |||
return the full transformation of the parent sceneNode or the attachingPoint node | ||||
virtual void | setQueryFlags (uint32 flags) | |||
Sets the query flags for this object. | ||||
virtual void | addQueryFlags (uint32 flags) | |||
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. | ||||
virtual void | removeQueryFlags (unsigned long flags) | |||
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. | ||||
virtual uint32 | getQueryFlags (void) const | |||
Returns the query flags relevant for this object. | ||||
virtual void | setVisibilityFlags (uint32 flags) | |||
Sets the visiblity flags for this object. | ||||
virtual void | addVisibilityFlags (uint32 flags) | |||
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object. | ||||
virtual void | removeVisibilityFlags (uint32 flags) | |||
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object. | ||||
virtual uint32 | getVisibilityFlags (void) const | |||
Returns the visibility flags relevant for this object. | ||||
virtual void | setListener (Listener *listener) | |||
Sets a listener for this object. | ||||
virtual Listener * | getListener (void) const | |||
Gets the current listener for this object. | ||||
virtual const LightList & | queryLights (void) const | |||
Gets a list of lights, ordered relative to how close they are to this movable object. | ||||
EdgeData * | getEdgeList (void) | |||
Define a default implementation of method from ShadowCaster which implements no shadows. | ||||
bool | hasEdgeList (void) | |||
Define a default implementation of method from ShadowCaster which implements no shadows. | ||||
ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDist, unsigned long flags=0) | |||
Define a default implementation of method from ShadowCaster which implements no shadows. | ||||
const AxisAlignedBox & | getLightCapBounds (void) const | |||
Overridden member from ShadowCaster. | ||||
const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const | |||
Overridden member from ShadowCaster. | ||||
void | setCastShadows (bool enabled) | |||
Sets whether or not this object will cast shadows. | ||||
bool | getCastShadows (void) const | |||
Returns whether shadow casting is enabled for this object. | ||||
Real | getPointExtrusionDistance (const Light *l) const | |||
Get the distance to extrude for a point/spot light. | ||||
const StringVector & | getAnimableValueNames (void) const | |||
Gets a list of animable value names for this object. | ||||
virtual AnimableValuePtr | createAnimableValue (const String &valueName) | |||
Create a reference-counted AnimableValuePtr for the named value. | ||||
Static Public Member Functions | ||||
static void | setDefaultIterationInterval (Real iterationInterval) | |||
Set the default iteration interval for all ParticleSystem instances. | ||||
static Real | getDefaultIterationInterval (void) | |||
Get the default iteration interval for all ParticleSystem instances. | ||||
static void | setDefaultNonVisibleUpdateTimeout (Real timeout) | |||
Set the default nonvisible timeout for all ParticleSystem instances. | ||||
static Real | getDefaultNonVisibleUpdateTimeout (void) | |||
Get the default nonvisible timeout for all ParticleSystem instances. | ||||
static void | cleanupDictionary () | |||
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | ||||
static void | setDefaultQueryFlags (uint32 flags) | |||
Set the default query flags for all future MovableObject instances. | ||||
static uint32 | getDefaultQueryFlags () | |||
Get the default query flags for all future MovableObject instances. | ||||
static void | setDefaultVisibilityFlags (uint32 flags) | |||
Set the default visibility flags for all future MovableObject instances. | ||||
static uint32 | getDefaultVisibilityFlags () | |||
Get the default visibility flags for all future MovableObject instances. | ||||
static void | extrudeVertices (const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) | |||
Utility method for extruding vertices based on a light. | ||||
Protected Types | ||||
typedef std::list< Particle * > | ActiveParticleList | |||
typedef std::list< Particle * > | FreeParticleList | |||
typedef std::vector< Particle * > | ParticlePool | |||
typedef std::list< ParticleEmitter * > | FreeEmittedEmitterList | |||
typedef std::list< ParticleEmitter * > | ActiveEmittedEmitterList | |||
typedef std::vector< ParticleEmitter * > | EmittedEmitterList | |||
typedef std::map< String, FreeEmittedEmitterList > | FreeEmittedEmitterMap | |||
typedef std::map< String, EmittedEmitterList > | EmittedEmitterPool | |||
typedef std::vector< ParticleEmitter * > | ParticleEmitterList | |||
typedef std::vector< ParticleAffector * > | ParticleAffectorList | |||
typedef std::map< String, StringVector > | AnimableDictionaryMap | |||
Protected Member Functions | ||||
void | _expire (Real timeElapsed) | |||
Internal method used to expire dead particles. | ||||
void | _triggerEmitters (Real timeElapsed) | |||
Spawn new particles based on free quota and emitter requirements. | ||||
void | _executeTriggerEmitters (ParticleEmitter *emitter, unsigned requested, Real timeElapsed) | |||
Helper function that actually performs the emission of particles. | ||||
void | _applyMotion (Real timeElapsed) | |||
Updates existing particle based on their momentum. | ||||
void | _triggerAffectors (Real timeElapsed) | |||
Applies the effects of affectors. | ||||
void | _sortParticles (Camera *cam) | |||
Sort the particles in the system *. | ||||
void | increasePool (size_t size) | |||
Resize the internal pool of particles. | ||||
void | increaseEmittedEmitterPool (size_t size) | |||
Resize the internal pool of emitted emitters. | ||||
void | initParameters (void) | |||
Internal method for initialising string interface. | ||||
void | configureRenderer (void) | |||
Internal method to configure the renderer. | ||||
void | createVisualParticles (size_t poolstart, size_t poolend) | |||
Internal method for creating ParticleVisualData instances for the pool. | ||||
void | destroyVisualParticles (size_t poolstart, size_t poolend) | |||
Internal method for destroying ParticleVisualData instances for the pool. | ||||
void | initialiseEmittedEmitters (void) | |||
Create a pool of emitted emitters and assign them to the free emitter list. | ||||
void | initialiseEmittedEmitterPool (void) | |||
Determine which emitters in the Particle Systems main emitter become a template for creating an pool of emitters that can be emitted. | ||||
void | addFreeEmittedEmitters (void) | |||
Add emitters from the pool to the free emitted emitter queue. | ||||
void | removeAllEmittedEmitters (void) | |||
Removes all emitted emitters from this system. | ||||
FreeEmittedEmitterList * | findFreeEmittedEmitter (const String &name) | |||
Find the list with free emitted emitters. | ||||
void | removeFromActiveEmittedEmitters (ParticleEmitter *emitter) | |||
Removes an emitter from the active emitted emitter list. | ||||
void | addActiveEmittedEmittersToFreeList (void) | |||
Moves all emitted emitters from the active list to the free list. | ||||
void | _notifyReorganiseEmittedEmitterData (void) | |||
This function clears all data structures that are used in combination with emitted emitters and sets the flag to indicate that the emitted emitter pool must be initialised again. | ||||
bool | createParamDictionary (const String &className) | |||
Internal method for creating a parameter dictionary for the class, if it does not already exist. | ||||
Real | getExtrusionDistance (const Vector3 &objectPos, const Light *light) const | |||
Helper moethod for calculating extrusion distance. | ||||
virtual void | updateEdgeListLightFacing (EdgeData *edgeData, const Vector4 &lightPos) | |||
Tells the caster to perform the tasks necessary to update the edge data's light listing. | ||||
virtual void | generateShadowVolume (EdgeData *edgeData, const HardwareIndexBufferSharedPtr &indexBuffer, const Light *light, ShadowRenderableList &shadowRenderables, unsigned long flags) | |||
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it. | ||||
virtual void | extrudeBounds (AxisAlignedBox &box, const Vector4 &lightPos, Real extrudeDist) const | |||
Utility method for extruding a bounding box. | ||||
virtual const String & | getAnimableDictionaryName (void) const | |||
Get the name of the animable dictionary for this class. | ||||
void | createAnimableDictionary (void) const | |||
Internal method for creating a dictionary of animable value names for the class, if it does not already exist. | ||||
StringVector & | _getAnimableValueNames (void) | |||
Get an updateable reference to animable value list. | ||||
virtual void | initialiseAnimableDictionary (StringVector &) const | |||
Internal method for initialising dictionary; should be implemented by subclasses wanting to expose animable parameters. | ||||
Protected Attributes | ||||
AxisAlignedBox | mAABB | |||
Real | mBoundingRadius | |||
bool | mBoundsAutoUpdate | |||
Real | mBoundsUpdateTime | |||
Real | mUpdateRemainTime | |||
AxisAlignedBox | mWorldAABB | |||
World AABB, only used to compare world-space positions to calc bounds. | ||||
String | mResourceGroupName | |||
Name of the resource group to use to load materials. | ||||
String | mMaterialName | |||
Name of the material to use. | ||||
bool | mIsRendererConfigured | |||
Have we set the material etc on the renderer? | ||||
MaterialPtr | mpMaterial | |||
Pointer to the material to use. | ||||
Real | mDefaultWidth | |||
Default width of each particle. | ||||
Real | mDefaultHeight | |||
Default height of each particle. | ||||
Real | mSpeedFactor | |||
Speed factor. | ||||
Real | mIterationInterval | |||
Iteration interval. | ||||
bool | mIterationIntervalSet | |||
Iteration interval set? Otherwise track default. | ||||
bool | mSorted | |||
Particles sorted according to camera? | ||||
bool | mLocalSpace | |||
Particles in local space? | ||||
Real | mNonvisibleTimeout | |||
Update timeout when nonvisible (0 for no timeout). | ||||
bool | mNonvisibleTimeoutSet | |||
Update timeout when nonvisible set? Otherwise track default. | ||||
Real | mTimeSinceLastVisible | |||
Amount of time non-visible so far. | ||||
unsigned long | mLastVisibleFrame | |||
Last frame in which known to be visible. | ||||
Controller< Real > * | mTimeController | |||
Controller for time update. | ||||
bool | mEmittedEmitterPoolInitialised | |||
Indication whether the emitted emitter pool (= pool with particle emitters that are emitted) is initialised. | ||||
ActiveParticleList | mActiveParticles | |||
Active particle list. | ||||
FreeParticleList | mFreeParticles | |||
Free particle queue. | ||||
ParticlePool | mParticlePool | |||
Pool of particle instances for use and reuse in the active particle list. | ||||
EmittedEmitterPool | mEmittedEmitterPool | |||
Pool of emitted emitters for use and reuse in the active emitted emitter list. | ||||
FreeEmittedEmitterMap | mFreeEmittedEmitters | |||
Free emitted emitter list. | ||||
ActiveEmittedEmitterList | mActiveEmittedEmitters | |||
Active emitted emitter list. | ||||
ParticleEmitterList | mEmitters | |||
List of particle emitters, ie sources of particles. | ||||
ParticleAffectorList | mAffectors | |||
List of particle affectors, ie modifiers of particles. | ||||
ParticleSystemRenderer * | mRenderer | |||
The renderer used to render this particle system. | ||||
bool | mCullIndividual | |||
Do we cull each particle individually? | ||||
String | mRendererType | |||
The name of the type of renderer used to render this system. | ||||
size_t | mPoolSize | |||
The number of particles in the pool. | ||||
size_t | mEmittedEmitterPoolSize | |||
The number of emitted emitters in the pool. | ||||
String | mOrigin | |||
Optional origin of this particle system (eg script name). | ||||
String | mParamDictName | |||
Class name for this instance to be used as a lookup (must be initialised by subclasses). | ||||
String | mName | |||
Name of this object. | ||||
MovableObjectFactory * | mCreator | |||
Creator of this object (if created by a factory). | ||||
SceneManager * | mManager | |||
SceneManager holding this object (if applicable). | ||||
Node * | mParentNode | |||
node to which this object is attached | ||||
bool | mParentIsTagPoint | |||
bool | mVisible | |||
Is this object visible? | ||||
Real | mUpperDistance | |||
Upper distance to still render. | ||||
Real | mSquaredUpperDistance | |||
bool | mBeyondFarDistance | |||
Hidden because of distance? | ||||
Any | mUserAny | |||
User defined link to another object / value / whatever. | ||||
uint8 | mRenderQueueID | |||
The render queue to use when rendering this object. | ||||
bool | mRenderQueueIDSet | |||
Flags whether the RenderQueue's default should be used. | ||||
uint32 | mQueryFlags | |||
Flags determining whether this object is included / excluded from scene queries. | ||||
uint32 | mVisibilityFlags | |||
Flags determining whether this object is visible (compared to SceneManager mask). | ||||
Sphere | mWorldBoundingSphere | |||
AxisAlignedBox | mWorldDarkCapBounds | |||
World space AABB of this object's dark cap. | ||||
bool | mCastShadows | |||
Does this object cast shadows? | ||||
bool | mRenderingDisabled | |||
Does rendering this object disabled by listener? | ||||
Listener * | mListener | |||
MovableObject listener - only one allowed (no list) for size & performance reasons. */. | ||||
LightList | mLightList | |||
List of lights for this object. | ||||
ulong | mLightListUpdated | |||
The last frame that this light list was updated in. | ||||
Static Protected Attributes | ||||
static CmdCull | msCullCmd | |||
Command objects. | ||||
static CmdHeight | msHeightCmd | |||
static CmdMaterial | msMaterialCmd | |||
static CmdQuota | msQuotaCmd | |||
static CmdEmittedEmitterQuota | msEmittedEmitterQuotaCmd | |||
static CmdWidth | msWidthCmd | |||
static CmdRenderer | msRendererCmd | |||
static CmdSorted | msSortedCmd | |||
static CmdLocalSpace | msLocalSpaceCmd | |||
static CmdIterationInterval | msIterationIntervalCmd | |||
static CmdNonvisibleTimeout | msNonvisibleTimeoutCmd | |||
static RadixSort< ActiveParticleList, Particle *, float > | mRadixSorter | |||
static Real | msDefaultIterationInterval | |||
Default iteration interval. | ||||
static Real | msDefaultNonvisibleTimeout | |||
Default nonvisible update timeout. | ||||
static ParamDictionaryMap | msDictionary | |||
Dictionary of parameters. | ||||
static uint32 | msDefaultQueryFlags | |||
Default query flags. | ||||
static uint32 | msDefaultVisibilityFlags | |||
Default visibility flags. | ||||
static AnimableDictionaryMap | msAnimableDictionary | |||
Static map of class name to list of animable value names. | ||||
Classes | ||||
class | CmdCull | |||
Command object for cull_each (see ParamCommand). More... | ||||
class | CmdEmittedEmitterQuota | |||
Command object for emittedEmitterQuota (see ParamCommand). More... | ||||
class | CmdHeight | |||
Command object for particle_height (see ParamCommand). More... | ||||
class | CmdIterationInterval | |||
Command object for iteration interval(see ParamCommand). More... | ||||
class | CmdLocalSpace | |||
Command object for local space (see ParamCommand). More... | ||||
class | CmdMaterial | |||
Command object for material (see ParamCommand). More... | ||||
class | CmdNonvisibleTimeout | |||
Command object for nonvisible timeout (see ParamCommand). More... | ||||
class | CmdQuota | |||
Command object for quota (see ParamCommand). More... | ||||
class | CmdRenderer | |||
Command object for renderer (see ParamCommand). More... | ||||
class | CmdSorted | |||
Command object for sorting (see ParamCommand). More... | ||||
class | CmdWidth | |||
Command object for particle_width (see ParamCommand). More... | ||||
struct | SortByDirectionFunctor | |||
Sort by direction functor. More... | ||||
struct | SortByDistanceFunctor | |||
Sort by distance functor. More... |
Definition at line 60 of file OgreParticleSystem.h.
|
Definition at line 728 of file OgreParticleSystem.h. |
|
Definition at line 673 of file OgreParticleSystem.h. |
|
Definition at line 206 of file OgreAnimable.h. |
|
Definition at line 729 of file OgreParticleSystem.h. |
|
Definition at line 731 of file OgreParticleSystem.h. |
|
Definition at line 727 of file OgreParticleSystem.h. |
|
Definition at line 730 of file OgreParticleSystem.h. |
|
Definition at line 674 of file OgreParticleSystem.h. |
|
Definition at line 757 of file OgreParticleSystem.h. |
|
Definition at line 756 of file OgreParticleSystem.h. |
|
Definition at line 675 of file OgreParticleSystem.h. |
|
Definition at line 127 of file OgreShadowCaster.h. |
|
Definition at line 128 of file OgreShadowCaster.h. |
|
Default constructor required for STL creation in manager.
|
|
Creates a particle system with no emitters or affectors.
|
|
|
|
Updates existing particle based on their momentum.
|
|
Helper function that actually performs the emission of particles.
|
|
Internal method used to expire dead particles.
|
|
Get an updateable reference to animable value list.
Definition at line 232 of file OgreAnimable.h. References OGRE_EXCEPT. |
|
Get the creator of this object, if any (internal use only).
Definition at line 166 of file OgreMovableObject.h. |
|
Returns an iterator for stepping through all particles in this system.
|
|
Get the manager of this object, if any (internal use only).
Definition at line 170 of file OgreMovableObject.h. |
|
return the full transformation of the parent sceneNode or the attachingPoint node
|
|
Overridden from MovableObject.
Reimplemented from Ogre::MovableObject. |
|
Notify the object of it's creator (internal use only).
Definition at line 164 of file OgreMovableObject.h. |
|
Overridden from MovableObject.
Reimplemented from Ogre::MovableObject. |
|
Notify the object of it's manager (internal use only).
Definition at line 168 of file OgreMovableObject.h. |
|
Internal method called to notify the object that it has been moved.
Reimplemented in Ogre::Light. |
|
Notify this particle system of it's origin.
Definition at line 536 of file OgreParticleSystem.h. |
|
Internal callback used by Particles to notify their parent that they have been resized.
|
|
Internal callback used by Particles to notify their parent that they have been rotated.
|
|
This function clears all data structures that are used in combination with emitted emitters and sets the flag to indicate that the emitted emitter pool must be initialised again.
|
|
Sort the particles in the system *.
|
|
Applies the effects of affectors.
|
|
Spawn new particles based on free quota and emitter requirements.
|
|
Updates the particles in the system based on time elapsed.
|
|
Internal method for updating the bounds of the particle system.
|
|
Overridden from MovableObject.
Implements Ogre::MovableObject. |
|
Moves all emitted emitters from the active list to the free list.
|
|
Adds an affector to this particle system.
|
|
Adds an emitter to this particle system.
|
|
Add emitters from the pool to the free emitted emitter queue.
|
|
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
Definition at line 338 of file OgreMovableObject.h. |
|
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object.
Definition at line 366 of file OgreMovableObject.h. |
|
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. MaterialManager) initializes. |
|
Empties this set of all particles.
|
|
Internal method to configure the renderer.
|
|
Method for copying this object's parameters to another object.
Definition at line 300 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs. |
|
Internal method for creating a dictionary of animable value names for the class, if it does not already exist.
Definition at line 219 of file OgreAnimable.h. |
|
Create a reference-counted AnimableValuePtr for the named value.
Reimplemented in Ogre::Light. Definition at line 285 of file OgreAnimable.h. References OGRE_EXCEPT. |
|
Manually add an emitter particle to the system.
|
|
Internal method for creating a parameter dictionary for the class, if it does not already exist.
Definition at line 176 of file OgreStringInterface.h. |
|
Manually add a particle to the system.
|
|
Internal method for creating ParticleVisualData instances for the pool.
|
|
Internal method for destroying ParticleVisualData instances for the pool.
|
|
Utility method for extruding a bounding box.
|
|
Utility method for extruding vertices based on a light.
|
|
Fast-forwards this system by the required number of seconds.
|
|
Find the list with free emitted emitters.
|
|
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
|
|
Retrieves an affector by it's index (zero-based).
|
|
Get the name of the animable dictionary for this class.
Reimplemented in Ogre::Light. Definition at line 214 of file OgreAnimable.h. |
|
Gets a list of animable value names for this object.
Definition at line 260 of file OgreAnimable.h. References OGRE_EXCEPT. |
|
Overridden from MovableObject.
Implements Ogre::MovableObject. Definition at line 372 of file OgreParticleSystem.h. |
|
Overridden from MovableObject.
Implements Ogre::MovableObject. Definition at line 378 of file OgreParticleSystem.h. |
|
Returns whether shadow casting is enabled for this object.
Implements Ogre::ShadowCaster. Definition at line 442 of file OgreMovableObject.h. |
|
Returns whether or not particles in this are tested individually for culling.
|
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. |
|
See setDefaultDimensions - this gets 1 component individually.
|
|
Get the default iteration interval for all ParticleSystem instances.
Definition at line 441 of file OgreParticleSystem.h. |
|
Get the default nonvisible timeout for all ParticleSystem instances.
Definition at line 470 of file OgreParticleSystem.h. |
|
Get the default query flags for all future MovableObject instances.
Definition at line 353 of file OgreMovableObject.h. |
|
Get the default visibility flags for all future MovableObject instances.
Definition at line 381 of file OgreMovableObject.h. |
|
See setDefaultDimensions - this gets 1 component individually.
|
|
Define a default implementation of method from ShadowCaster which implements no shadows.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity, Ogre::ManualObject, and Ogre::StaticGeometry::Region. Definition at line 415 of file OgreMovableObject.h. |
|
Returns the maximum number of emitted emitters this system is allowed to have active at once.
|
|
Retrieves an emitter by it's index (zero-based).
|
|
Helper moethod for calculating extrusion distance.
|
|
Gets a 'iteration interval' on this particle system.
Definition at line 433 of file OgreParticleSystem.h. |
|
Gets whether particles (and any affector effects) remain relative to the node the particle system is attached to.
Definition at line 594 of file OgreParticleSystem.h. |
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. |
|
Gets the current listener for this object.
Definition at line 392 of file OgreMovableObject.h. |
|
Sets the name of the material to be used for this billboard set.
|
|
Overridden from MovableObject.
Implements Ogre::MovableObject. |
|
Returns the name of this object.
Reimplemented in Ogre::Camera. Definition at line 173 of file OgreMovableObject.h. |
|
Gets when the particle system should stop updating after it hasn't been visible for a while.
Definition at line 461 of file OgreParticleSystem.h. |
|
Returns the number of affectors for this particle system.
|
|
Returns the number of emitters for this particle system.
|
|
Gets the number of individual particles in the system right now.
|
|
Get the origin of this particle system, e.g. a script file name.
Definition at line 534 of file OgreParticleSystem.h. |
|
Definition at line 213 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 200 of file OgreStringInterface.h. |
|
Generic parameter retrieval method.
Definition at line 269 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), and Ogre::ParamDictionary::getParamCommand(). |
|
Retrieves a list of parameters valid for this object.
|
|
Returns the node to which this object is attached.
|
|
Returns the scene node to which this object is attached.
|
|
Retrieve a particle from the system for manual tweaking.
|
|
Returns the maximum number of particles this system is allowed to have active at once.
|
|
Get the distance to extrude for a point/spot light.
Implements Ogre::ShadowCaster. |
|
Returns the query flags relevant for this object.
Definition at line 345 of file OgreMovableObject.h. |
|
Gets the ParticleRenderer to be used to render this particle system.
|
|
Gets the name of the ParticleRenderer to be used to render this particle system.
|
|
Gets the distance at which batches are no longer rendered.
Definition at line 278 of file OgreMovableObject.h. |
|
Gets the queue group for this entity, see setRenderQueueGroup for full details.
|
|
Return the resource group to be used to load dependent resources.
Definition at line 527 of file OgreParticleSystem.h. |
|
Define a default implementation of method from ShadowCaster which implements no shadows.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity, Ogre::ManualObject, and Ogre::StaticGeometry::Region. |
|
Gets whether particles are sorted relative to the camera.
Definition at line 549 of file OgreParticleSystem.h. |
|
Gets the 'speed factor' on this particle system.
Definition at line 412 of file OgreParticleSystem.h. |
|
Override to return specific type flag.
Reimplemented from Ogre::MovableObject. |
|
Retrieves the custom user value associated with this object.
Definition at line 306 of file OgreMovableObject.h. |
|
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject.
Definition at line 290 of file OgreMovableObject.h. |
|
Returns the visibility flags relevant for this object.
Definition at line 373 of file OgreMovableObject.h. |
|
Gets this object whether to be visible or not, if it has a renderable component.
|
|
Retrieves the axis-aligned bounding box for this object in world coordinates.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity. |
|
Retrieves the worldspace bounding sphere for this object.
Reimplemented in Ogre::Entity. |
|
Define a default implementation of method from ShadowCaster which implements no shadows.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity, Ogre::ManualObject, and Ogre::StaticGeometry::Region. Definition at line 417 of file OgreMovableObject.h. |
|
Resize the internal pool of emitted emitters.
|
|
Resize the internal pool of particles.
|
|
Internal method for initialising dictionary; should be implemented by subclasses wanting to expose animable parameters.
Reimplemented in Ogre::Light. Definition at line 252 of file OgreAnimable.h. |
|
Determine which emitters in the Particle Systems main emitter become a template for creating an pool of emitters that can be emitted.
|
|
Create a pool of emitted emitters and assign them to the free emitter list.
|
|
Internal method for initialising string interface.
|
|
Returns true if this object is attached to a SceneNode or TagPoint.
|
|
Returns true if this object is attached to a SceneNode or TagPoint, and this SceneNode / TagPoint is currently in an active part of the scene graph.
|
|
Returns whether or not this object is supposed to be visible or not.
Reimplemented in Ogre::InstancedGeometry::BatchInstance, and Ogre::StaticGeometry::Region. |
|
Assignment operator for copying.
|
|
Gets a list of lights, ordered relative to how close they are to this movable object.
|
|
Removes an affector from the system.
|
|
Removes all the affectors from this system.
|
|
Removes all emitted emitters from this system.
|
|
Removes all the emitters from this system.
|
|
Removes an emitter from the system.
|
|
Removes an emitter from the active emitted emitter list.
|
|
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
Definition at line 342 of file OgreMovableObject.h. |
|
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object.
Definition at line 370 of file OgreMovableObject.h. |
|
Set the (initial) bounds of the particle system manually.
|
|
Sets whether the bounds will be automatically updated for the life of the particle system.
|
|
Sets whether or not this object will cast shadows.
Definition at line 440 of file OgreMovableObject.h. |
|
Sets whether culling tests particles in this individually as well as in a group.
|
|
Sets the default dimensions of the particles in this set.
|
|
See setDefaultDimensions - this sets 1 component individually.
|
|
Set the default iteration interval for all ParticleSystem instances.
Definition at line 437 of file OgreParticleSystem.h. |
|
Set the default nonvisible timeout for all ParticleSystem instances.
Definition at line 465 of file OgreParticleSystem.h. |
|
Set the default query flags for all future MovableObject instances.
Definition at line 349 of file OgreMovableObject.h. |
|
Set the default visibility flags for all future MovableObject instances.
Definition at line 377 of file OgreMovableObject.h. |
|
See setDefaultDimensions - this sets 1 component individually.
|
|
Sets the maximum number of emitted emitters this system is allowed to have active at once.
|
|
Sets a 'iteration interval' on this particle system.
|
|
Sets whether particles (and any affector effects) remain relative to the node the particle system is attached to.
|
|
Sets a listener for this object.
Definition at line 388 of file OgreMovableObject.h. |
|
Sets the name of the material to be used for this billboard set.
|
|
Sets when the particle system should stop updating after it hasn't been visible for a while.
|
|
Generic parameter setting method.
|
|
Generic multiple parameter setting method.
|
|
Sets the maximum number of particles this system is allowed to have active at once.
|
|
Sets the query flags for this object.
Definition at line 334 of file OgreMovableObject.h. |
|
Sets the ParticleRenderer to be used to render this particle system.
|
|
Sets the distance at which the object is no longer rendered.
Definition at line 272 of file OgreMovableObject.h. |
|
Reimplemented from Ogre::MovableObject. |
|
Set whether or not particles are sorted according to the camera.
Definition at line 547 of file OgreParticleSystem.h. |
|
Sets a 'speed factor' on this particle system, which means it scales the elapsed real time which has passed by this factor before passing it to the emitters, affectors, and the particle life calculation.
Definition at line 408 of file OgreParticleSystem.h. |
|
Sets any kind of user value on this object.
Definition at line 302 of file OgreMovableObject.h. |
|
Call this to associate your own custom user object instance with this MovableObject.
Definition at line 286 of file OgreMovableObject.h. |
|
Sets the visiblity flags for this object.
Definition at line 362 of file OgreMovableObject.h. |
|
Tells this object whether to be visible or not, if it has a renderable component.
Reimplemented in Ogre::Light. |
|
Tells the caster to perform the tasks necessary to update the edge data's light listing. Can be overridden if the subclass needs to do additional things.
|
|
Definition at line 629 of file OgreParticleSystem.h. |
|
Active emitted emitter list.
Definition at line 754 of file OgreParticleSystem.h. |
|
Active particle list.
Definition at line 708 of file OgreParticleSystem.h. |
|
List of particle affectors, ie modifiers of particles.
Definition at line 762 of file OgreParticleSystem.h. |
|
Hidden because of distance?
Definition at line 115 of file OgreMovableObject.h. |
|
Definition at line 630 of file OgreParticleSystem.h. |
|
Definition at line 631 of file OgreParticleSystem.h. |
|
Definition at line 632 of file OgreParticleSystem.h. |
|
Does this object cast shadows?
Definition at line 133 of file OgreMovableObject.h. |
|
Creator of this object (if created by a factory).
Definition at line 103 of file OgreMovableObject.h. |
|
Do we cull each particle individually?
Definition at line 768 of file OgreParticleSystem.h. |
|
Default height of each particle.
Definition at line 649 of file OgreParticleSystem.h. |
|
Default width of each particle.
Definition at line 647 of file OgreParticleSystem.h. |
|
Pool of emitted emitters for use and reuse in the active emitted emitter list.
Definition at line 741 of file OgreParticleSystem.h. |
|
Indication whether the emitted emitter pool (= pool with particle emitters that are emitted) is initialised.
Definition at line 671 of file OgreParticleSystem.h. |
|
The number of emitted emitters in the pool.
Definition at line 777 of file OgreParticleSystem.h. |
|
List of particle emitters, ie sources of particles.
Definition at line 760 of file OgreParticleSystem.h. |
|
Free emitted emitter list.
Definition at line 747 of file OgreParticleSystem.h. |
|
Free particle queue.
Definition at line 719 of file OgreParticleSystem.h. |
|
Have we set the material etc on the renderer?
Definition at line 643 of file OgreParticleSystem.h. |
|
Iteration interval.
Definition at line 653 of file OgreParticleSystem.h. |
|
Iteration interval set? Otherwise track default.
Definition at line 655 of file OgreParticleSystem.h. |
|
Last frame in which known to be visible.
Definition at line 667 of file OgreParticleSystem.h. |
|
List of lights for this object.
Reimplemented in Ogre::StaticGeometry::Region. Definition at line 141 of file OgreMovableObject.h. |
|
The last frame that this light list was updated in.
Reimplemented in Ogre::StaticGeometry::Region. Definition at line 143 of file OgreMovableObject.h. |
|
MovableObject listener - only one allowed (no list) for size & performance reasons. */.
Definition at line 138 of file OgreMovableObject.h. |
|
Particles in local space?
Definition at line 659 of file OgreParticleSystem.h. |
|
SceneManager holding this object (if applicable).
Definition at line 105 of file OgreMovableObject.h. |
|
Name of the material to use.
Definition at line 641 of file OgreParticleSystem.h. |
|
Name of this object.
Reimplemented in Ogre::Camera. Definition at line 101 of file OgreMovableObject.h. |
|
Update timeout when nonvisible (0 for no timeout).
Definition at line 661 of file OgreParticleSystem.h. |
|
Update timeout when nonvisible set? Otherwise track default.
Definition at line 663 of file OgreParticleSystem.h. |
|
Optional origin of this particle system (eg script name).
Definition at line 780 of file OgreParticleSystem.h. |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 164 of file OgreStringInterface.h. |
|
Definition at line 108 of file OgreMovableObject.h. |
|
node to which this object is attached
Definition at line 107 of file OgreMovableObject.h. |
|
Pool of particle instances for use and reuse in the active particle list.
Definition at line 725 of file OgreParticleSystem.h. |
|
Pointer to the material to use.
Definition at line 645 of file OgreParticleSystem.h. |
|
The number of particles in the pool.
Definition at line 774 of file OgreParticleSystem.h. |
|
Flags determining whether this object is included / excluded from scene queries.
Definition at line 123 of file OgreMovableObject.h. |
|
Definition at line 697 of file OgreParticleSystem.h. |
|
The renderer used to render this particle system.
Definition at line 765 of file OgreParticleSystem.h. |
|
The name of the type of renderer used to render this system.
Definition at line 771 of file OgreParticleSystem.h. |
|
Does rendering this object disabled by listener?
Definition at line 136 of file OgreMovableObject.h. |
|
The render queue to use when rendering this object.
Definition at line 119 of file OgreMovableObject.h. |
|
Flags whether the RenderQueue's default should be used.
Definition at line 121 of file OgreMovableObject.h. |
|
Name of the resource group to use to load materials.
Definition at line 639 of file OgreParticleSystem.h. |
|
Static map of class name to list of animable value names.
Definition at line 208 of file OgreAnimable.h. |
|
Command objects.
Definition at line 616 of file OgreParticleSystem.h. |
|
Default iteration interval.
Definition at line 783 of file OgreParticleSystem.h. |
|
Default nonvisible update timeout.
Definition at line 785 of file OgreParticleSystem.h. |
|
Default query flags.
Definition at line 147 of file OgreMovableObject.h. |
|
Default visibility flags.
Definition at line 149 of file OgreMovableObject.h. |
|
Dictionary of parameters.
Definition at line 161 of file OgreStringInterface.h. |
|
Definition at line 620 of file OgreParticleSystem.h. |
|
Definition at line 617 of file OgreParticleSystem.h. |
|
Definition at line 625 of file OgreParticleSystem.h. |
|
Definition at line 624 of file OgreParticleSystem.h. |
|
Definition at line 618 of file OgreParticleSystem.h. |
|
Definition at line 626 of file OgreParticleSystem.h. |
|
Particles sorted according to camera?
Definition at line 657 of file OgreParticleSystem.h. |
|
Speed factor.
Definition at line 651 of file OgreParticleSystem.h. |
|
Definition at line 113 of file OgreMovableObject.h. |
|
Definition at line 619 of file OgreParticleSystem.h. |
|
Definition at line 622 of file OgreParticleSystem.h. |
|
Definition at line 623 of file OgreParticleSystem.h. |
|
Definition at line 621 of file OgreParticleSystem.h. |
|
Controller for time update.
Definition at line 669 of file OgreParticleSystem.h. |
|
Amount of time non-visible so far.
Definition at line 665 of file OgreParticleSystem.h. |
|
Definition at line 633 of file OgreParticleSystem.h. |
|
Upper distance to still render.
Definition at line 112 of file OgreMovableObject.h. |
|
User defined link to another object / value / whatever.
Definition at line 117 of file OgreMovableObject.h. |
|
Flags determining whether this object is visible (compared to SceneManager mask).
Definition at line 125 of file OgreMovableObject.h. |
|
Is this object visible?
Definition at line 110 of file OgreMovableObject.h. |
|
World AABB, only used to compare world-space positions to calc bounds.
Reimplemented from Ogre::MovableObject. Definition at line 636 of file OgreParticleSystem.h. |
|
Definition at line 129 of file OgreMovableObject.h. |
|
World space AABB of this object's dark cap.
Definition at line 131 of file OgreMovableObject.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun May 6 10:56:38 2007