Pyrogenesis
13997
|
Particle emitter type - stores the common state data for all emitters of that type, and uses that data to update the emitter states. More...
#include <ParticleEmitterType.h>
Public Member Functions | |
CParticleEmitterType (const VfsPath &path, CParticleManager &manager) | |
Private Types | |
enum | { VAR_EMISSIONRATE, VAR_LIFETIME, VAR_POSITION_X, VAR_POSITION_Y, VAR_POSITION_Z, VAR_ANGLE, VAR_VELOCITY_X, VAR_VELOCITY_Y, VAR_VELOCITY_Z, VAR_VELOCITY_ANGLE, VAR_SIZE, VAR_COLOR_R, VAR_COLOR_G, VAR_COLOR_B, VAR__MAX } |
typedef shared_ptr< IParticleVar > | IParticleVarPtr |
typedef shared_ptr < IParticleEffector > | IParticleEffectorPtr |
Private Member Functions | |
NONCOPYABLE (CParticleEmitterType) | |
int | GetVariableID (const std::string &name) |
bool | LoadXML (const VfsPath &path) |
void | UpdateEmitter (CParticleEmitter &emitter, float dt) |
Update the state of an emitter's particles, by a potentially long time dt . More... | |
void | UpdateEmitterStep (CParticleEmitter &emitter, float dt) |
Update the state of an emitter's particles, by a short time dt that can be computed in a single step. More... | |
CBoundingBoxAligned | CalculateBounds (CVector3D emitterPos, CBoundingBoxAligned emittedBounds) |
Private Attributes | |
CTexturePtr | m_Texture |
GLenum | m_BlendEquation |
GLenum | m_BlendFuncSrc |
GLenum | m_BlendFuncDst |
bool | m_StartFull |
float | m_MaxLifetime |
size_t | m_MaxParticles |
CBoundingBoxAligned | m_MaxBounds |
std::vector< IParticleVarPtr > | m_Variables |
std::vector< IParticleEffectorPtr > | m_Effectors |
CParticleManager & | m_Manager |
Friends | |
class | CModelParticleEmitter |
class | CParticleEmitter |
class | CParticleVarConstant |
class | CParticleVarUniform |
class | CParticleVarCopy |
class | ParticleRenderer |
Particle emitter type - stores the common state data for all emitters of that type, and uses that data to update the emitter states.
The data is initialised from XML files.
Most of the emitter type data is represented as subclasses of IParticleVar, which will typically return a constant value or a random value each time it's evaluated. New subclasses can be added to support different random distributions, etc.
Definition at line 43 of file ParticleEmitterType.h.
|
private |
Definition at line 107 of file ParticleEmitterType.h.
|
private |
Definition at line 104 of file ParticleEmitterType.h.
|
private |
Definition at line 57 of file ParticleEmitterType.h.
CParticleEmitterType::CParticleEmitterType | ( | const VfsPath & | path, |
CParticleManager & | manager | ||
) |
Definition at line 256 of file ParticleEmitterType.cpp.
|
private |
Definition at line 582 of file ParticleEmitterType.cpp.
|
private |
Definition at line 315 of file ParticleEmitterType.cpp.
|
private |
Definition at line 335 of file ParticleEmitterType.cpp.
|
private |
|
private |
Update the state of an emitter's particles, by a potentially long time dt
.
Definition at line 485 of file ParticleEmitterType.cpp.
|
private |
Update the state of an emitter's particles, by a short time dt
that can be computed in a single step.
Definition at line 506 of file ParticleEmitterType.cpp.
|
friend |
Definition at line 50 of file ParticleEmitterType.h.
|
friend |
Definition at line 51 of file ParticleEmitterType.h.
|
friend |
Definition at line 52 of file ParticleEmitterType.h.
|
friend |
Definition at line 54 of file ParticleEmitterType.h.
|
friend |
Definition at line 53 of file ParticleEmitterType.h.
|
friend |
Definition at line 55 of file ParticleEmitterType.h.
|
private |
Definition at line 95 of file ParticleEmitterType.h.
|
private |
Definition at line 97 of file ParticleEmitterType.h.
|
private |
Definition at line 96 of file ParticleEmitterType.h.
|
private |
Definition at line 108 of file ParticleEmitterType.h.
|
private |
Definition at line 110 of file ParticleEmitterType.h.
|
private |
Definition at line 102 of file ParticleEmitterType.h.
|
private |
Definition at line 100 of file ParticleEmitterType.h.
|
private |
Definition at line 101 of file ParticleEmitterType.h.
|
private |
Definition at line 98 of file ParticleEmitterType.h.
|
private |
Definition at line 93 of file ParticleEmitterType.h.
|
private |
Definition at line 105 of file ParticleEmitterType.h.