18 #ifndef INCLUDED_PARTICLEEMITTER 19 #define INCLUDED_PARTICLEEMITTER 107 void AddParticle(
const SParticle& particle);
115 void UpdateArrayData(
int frameNumber);
120 void PrepareForRendering();
150 void SetEntityVariable(
const std::string& name,
float value);
206 virtual void SetEntityVariable(
const std::string& name,
float value);
208 virtual void CalcBounds();
209 virtual void ValidatePosition();
210 virtual void InvalidatePosition();
211 virtual void SetTransform(
const CMatrix3D& transform);
217 #endif // INCLUDED_PARTICLEEMITTER
#define UNUSED(param)
mark a function parameter as unused and avoid the corresponding compiler warning. ...
Definition: code_annotation.h:38
float maxAge
Definition: ParticleEmitter.h:43
CParticleEmitterPtr m_Emitter
Definition: ParticleEmitter.h:214
bool m_Active
Whether this emitter is still emitting new particles.
Definition: ParticleEmitter.h:155
Particle emitter.
Definition: ParticleEmitter.h:68
const CQuaternion & GetRotation() const
Definition: ParticleEmitter.h:94
const CBoundingBoxAligned & GetParticleBounds() const
Get the bounding box of the center points of particles at their current positions.
Definition: ParticleEmitter.h:102
float size
Definition: ParticleEmitter.h:39
void SetPosition(const CVector3D &pos)
Set the position to be used for emission of new particles.
Definition: ParticleEmitter.h:76
Definition: Vector3D.h:30
std::shared_ptr< CParticleEmitterType > CParticleEmitterTypePtr
Definition: ParticleEmitterType.h:123
std::vector< SParticle > m_Particles
Definition: ParticleEmitter.h:162
float sizeGrowthRate
Definition: ParticleEmitter.h:40
CVector3D pos
Definition: ParticleEmitter.h:35
A VertexArray that is specialised to handle 16-bit array indices.
Definition: VertexArray.h:219
Definition: Matrix3D.h:33
std::shared_ptr< CParticleEmitter > CParticleEmitterPtr
Definition: ParticleEmitter.h:46
float m_EmissionRoundingError
Definition: ParticleEmitter.h:166
Definition: VertexArray.h:140
VertexArray m_VertexArray
Definition: ParticleEmitter.h:174
virtual CModelParticleEmitter * ToCModelParticleEmitter()
Dynamic cast.
Definition: ParticleEmitter.h:195
CVector3D velocity
Definition: ParticleEmitter.h:36
VertexArray::Attribute m_AttributeAxis
Definition: ParticleEmitter.h:176
VertexArray::Attribute m_AttributeUV
Definition: ParticleEmitter.h:177
VertexArray::Attribute m_AttributeColor
Definition: ParticleEmitter.h:178
Definition: VertexArray.h:137
IShaderProgram is a container for multiple shaders of different types.
Definition: IShaderProgram.h:80
float angle
Definition: ParticleEmitter.h:37
intptr_t ssize_t
Definition: wposix_types.h:82
VertexIndexArray m_IndexArray
Definition: ParticleEmitter.h:172
CVector3D GetPosition() const
Definition: ParticleEmitter.h:81
void SetRotation(const CQuaternion &rot)
Set the rotation to be used for emission of new particles (note: depends on particles).
Definition: ParticleEmitter.h:89
Definition: Quaternion.h:25
Abstract base class for graphical objects that are used by units, or as props attached to other CMode...
Definition: ModelAbstract.h:37
Definition: BoundingBoxAligned.h:33
virtual void SetTerrainDirty(ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1)
Called when terrain has changed in the given inclusive bounds.
Definition: ParticleEmitter.h:202
float m_LastUpdateTime
Definition: ParticleEmitter.h:165
CVector3D m_Pos
Definition: ParticleEmitter.h:157
CBoundingBoxAligned m_ParticleBounds
Bounding box of the current particle center points.
Definition: ParticleEmitter.h:170
Particle emitter model, for attaching emitters as props on other models.
Definition: ParticleEmitter.h:188
SColor4ub color
Definition: ParticleEmitter.h:41
int m_LastFrameNumber
Definition: ParticleEmitter.h:182
std::map< std::string, float > m_EntityVariables
Definition: ParticleEmitter.h:160
float age
Definition: ParticleEmitter.h:42
CQuaternion m_Rot
Definition: ParticleEmitter.h:158
Definition: IDeviceCommandContext.h:40
VertexArray::Attribute m_AttributePos
Definition: ParticleEmitter.h:175
size_t m_NextParticleIdx
Definition: ParticleEmitter.h:163
Simulation state for a single particle.
Definition: ParticleEmitter.h:33
float angleSpeed
Definition: ParticleEmitter.h:38
CParticleEmitterTypePtr m_Type
Definition: ParticleEmitter.h:213
CParticleEmitterTypePtr m_Type
Definition: ParticleEmitter.h:152