ParticleEmitter Class Reference#include <particleEmitter.h>
Inheritance diagram for ParticleEmitter:
[legend]List of all members.
|
Public Member Functions |
| ParticleEmitter () |
| ~ParticleEmitter () |
ColorF | getCollectiveColor () |
void | setSizes (F32 *sizeList) |
| Sets sizes of particles based on sizelist provided.
|
void | setColors (ColorF *colorList) |
| Sets colors for particles based on color list provided.
|
ParticleEmitterData * | getDataBlock () |
| Returns the datablock for this object.
|
bool | onNewDataBlock (GameBaseData *dptr) |
| Called when a new datablock is set.
|
void | deleteWhenEmpty () |
| By default, a particle renderer will wait for it's owner to delete it.
|
|
Main interface for creating particles. The emitter does _not_ track changes in axis or velocity over the course of a single update, so this should be called at a fairly fine grain. The emitter will potentially track the last particle to be created into the next call to this function in order to create a uniformly random time distribution of the particles. If the object to which the emitter is attached is in motion, it should try to ensure that for call (n+1) to this function, start is equal to the end from call (n). This will ensure a uniform spatial distribution.
|
void | emitParticles (const Point3F &start, const Point3F &end, const Point3F &axis, const Point3F &velocity, const U32 numMilliseconds) |
void | emitParticles (const Point3F &point, const bool useLastPosition, const Point3F &axis, const Point3F &velocity, const U32 numMilliseconds) |
void | emitParticles (const Point3F &rCenter, const Point3F &rNormal, const F32 radius, const Point3F &velocity, S32 count) |
Static Public Member Functions |
static void | setWindVelocity (const Point3F &vel) |
Public Attributes |
bool | mDead |
Static Public Attributes |
static Point3F | mWindVelocity |
Protected Member Functions |
bool | onAdd () |
| Called when the object is added to the sim.
|
void | onRemove () |
| Called when the object is removed from the sim.
|
void | processTick (const Move *move) |
| Processes a move event and updates object state once every 32 milliseconds.
|
void | advanceTime (F32 dt) |
| Advances simulation time for animations.
|
bool | prepRenderImage (SceneState *state, const U32 stateKey, const U32 startZone, const bool modifyBaseZoneState) |
| Called when the SceneGraph is ready for the registration of RenderImages.
|
void | prepBatchRender (const Point3F &camPos) |
void | copyToVB (const Point3F &camPos) |
|
void | addParticle (const Point3F &pos, const Point3F &axis, const Point3F &vel, const Point3F &axisx) |
| Adds a particle.
|
void | setupBillboard (Particle *part, Point3F *basePts, const MatrixF &camView, GFXVertexPCT *lVerts) |
void | setupOriented (Particle *part, const Point3F &camPos, GFXVertexPCT *lVerts) |
void | updateBBox () |
| Updates the bounding box for the particle system.
|
Private Types |
typedef GameBase | Parent |
Private Member Functions |
void | update (U32 ms) |
void | updateKeyData (Particle *part) |
Private Attributes |
ParticleEmitterData * | mDataBlock |
U32 | mInternalClock |
U32 | mNextParticleTime |
Point3F | mLastPosition |
bool | mHasLastPosition |
bool | mDeleteWhenEmpty |
bool | mDeleteOnTick |
S32 | mLifetimeMS |
S32 | mElapsedTimeMS |
F32 | sizes [ParticleData::PDC_NUM_KEYS] |
ColorF | colors [ParticleData::PDC_NUM_KEYS] |
GFXVertexBufferHandle< GFXVertexPCT > | mVertBuff |
Vector< Particle * > | part_store |
Particle * | part_freelist |
Particle | part_list_head |
S32 | n_part_capacity |
S32 | n_parts |
S32 | mCurBuffSize |
Member Typedef Documentation
Constructor & Destructor Documentation
ParticleEmitter::ParticleEmitter |
( |
|
) |
|
ParticleEmitter::~ParticleEmitter |
( |
|
) |
|
Member Function Documentation
static void ParticleEmitter::setWindVelocity |
( |
const Point3F & |
vel |
) |
[inline, static] |
ColorF ParticleEmitter::getCollectiveColor |
( |
|
) |
|
void ParticleEmitter::setSizes |
( |
F32 * |
sizeList |
) |
|
Sets sizes of particles based on sizelist provided.
- Parameters:
-
void ParticleEmitter::setColors |
( |
ColorF * |
colorList |
) |
|
Sets colors for particles based on color list provided.
- Parameters:
-
Returns the datablock for this object.
Reimplemented from GameBase.
Called when a new datablock is set.
This allows subclasses to appropriately handle new datablocks.
- See also:
- setDataBlock()
- Parameters:
-
Reimplemented from GameBase.
void ParticleEmitter::deleteWhenEmpty |
( |
|
) |
|
By default, a particle renderer will wait for it's owner to delete it.
When this is turned on, it will delete itself as soon as it's particle count drops to zero.
void ParticleEmitter::emitParticles |
( |
const Point3F & |
point, |
|
|
const bool |
useLastPosition, |
|
|
const Point3F & |
axis, |
|
|
const Point3F & |
velocity, |
|
|
const U32 |
numMilliseconds | |
|
) |
| | |
Adds a particle.
- Parameters:
-
| pos | Initial position of particle |
| axis | |
| vel | Initial velocity |
| axisx | |
void ParticleEmitter::setupBillboard |
( |
Particle * |
part, |
|
|
Point3F * |
basePts, |
|
|
const MatrixF & |
camView, |
|
|
GFXVertexPCT * |
lVerts | |
|
) |
| | [inline, protected] |
void ParticleEmitter::setupOriented |
( |
Particle * |
part, |
|
|
const Point3F & |
camPos, |
|
|
GFXVertexPCT * |
lVerts | |
|
) |
| | [inline, protected] |
void ParticleEmitter::updateBBox |
( |
|
) |
[protected] |
Updates the bounding box for the particle system.
bool ParticleEmitter::onAdd |
( |
|
) |
[protected, virtual] |
Called when the object is added to the sim.
Reimplemented from GameBase.
void ParticleEmitter::onRemove |
( |
|
) |
[protected, virtual] |
Called when the object is removed from the sim.
Reimplemented from GameBase.
void ParticleEmitter::processTick |
( |
const Move * |
move |
) |
[protected, virtual] |
Processes a move event and updates object state once every 32 milliseconds.
This takes place both on the client and server, every 32 milliseconds (1 tick).
- See also:
- ProcessList
- Parameters:
-
| move | Move event corresponding to this tick, or NULL. |
Reimplemented from GameBase.
void ParticleEmitter::advanceTime |
( |
F32 |
dt |
) |
[protected, virtual] |
Advances simulation time for animations.
This is called every frame.
- Parameters:
-
| dt | Time since last advance call |
Reimplemented from GameBase.
bool ParticleEmitter::prepRenderImage |
( |
SceneState * |
state, |
|
|
const U32 |
stateKey, |
|
|
const U32 |
startZone, |
|
|
const bool |
modifyBaseZoneState | |
|
) |
| | [protected, virtual] |
Called when the SceneGraph is ready for the registration of RenderImages.
- See also:
- SceneState
- Parameters:
-
| state | SceneState |
| stateKey | State key of the current SceneState |
| startZone | Base zone index |
| modifyBaseZoneState | If true, the object needs to modify the zone state. |
Reimplemented from SceneObject.
void ParticleEmitter::prepBatchRender |
( |
const Point3F & |
camPos |
) |
[protected] |
void ParticleEmitter::copyToVB |
( |
const Point3F & |
camPos |
) |
[protected] |
void ParticleEmitter::update |
( |
U32 |
ms |
) |
[private] |
void ParticleEmitter::updateKeyData |
( |
Particle * |
part |
) |
[inline, private] |
Member Data Documentation
|