18 #ifndef INCLUDED_PARTICLEEMITTER 19 #define INCLUDED_PARTICLEEMITTER 106 void AddParticle(
const SParticle& particle);
114 void UpdateArrayData(
int frameNumber);
119 void PrepareForRendering();
140 void SetEntityVariable(
const std::string& name,
float value);
192 SetDirty(dirtyflags);
199 virtual void SetEntityVariable(
const std::string& name,
float value);
201 virtual void CalcBounds();
202 virtual void ValidatePosition();
203 virtual void InvalidatePosition();
204 virtual void SetTransform(
const CMatrix3D& transform);
210 #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:42
CParticleEmitterPtr m_Emitter
Definition: ParticleEmitter.h:207
bool m_Active
Whether this emitter is still emitting new particles.
Definition: ParticleEmitter.h:145
Particle emitter.
Definition: ParticleEmitter.h:67
shared_ptr< CParticleEmitterType > CParticleEmitterTypePtr
Definition: ParticleEmitterType.h:115
float size
Definition: ParticleEmitter.h:38
void SetPosition(const CVector3D &pos)
Set the position to be used for emission of new particles.
Definition: ParticleEmitter.h:75
Definition: Vector3D.h:28
std::vector< SParticle > m_Particles
Definition: ParticleEmitter.h:152
float sizeGrowthRate
Definition: ParticleEmitter.h:39
CQuaternion GetRotation() const
Definition: ParticleEmitter.h:93
shared_ptr< CParticleEmitter > CParticleEmitterPtr
Definition: ParticleEmitter.h:45
CVector3D pos
Definition: ParticleEmitter.h:34
A VertexArray that is specialised to handle 16-bit array indices.
Definition: VertexArray.h:214
Definition: Matrix3D.h:33
float m_EmissionRoundingError
Definition: ParticleEmitter.h:156
Definition: VertexArray.h:135
VertexArray m_VertexArray
Definition: ParticleEmitter.h:164
virtual CModelParticleEmitter * ToCModelParticleEmitter()
Dynamic cast.
Definition: ParticleEmitter.h:183
CVector3D velocity
Definition: ParticleEmitter.h:35
VertexArray::Attribute m_AttributeAxis
Definition: ParticleEmitter.h:166
VertexArray::Attribute m_AttributeUV
Definition: ParticleEmitter.h:167
VertexArray::Attribute m_AttributeColor
Definition: ParticleEmitter.h:168
Definition: VertexArray.h:132
CBoundingBoxAligned GetParticleBounds()
Get the bounding box of the center points of particles at their current positions.
Definition: ParticleEmitter.h:101
float angle
Definition: ParticleEmitter.h:36
intptr_t ssize_t
Definition: wposix_types.h:82
VertexIndexArray m_IndexArray
Definition: ParticleEmitter.h:162
void SetRotation(const CQuaternion &rot)
Set the rotation to be used for emission of new particles (note: depends on particles).
Definition: ParticleEmitter.h:88
Definition: Quaternion.h:24
Abstract base class for graphical objects that are used by units, or as props attached to other CMode...
Definition: ModelAbstract.h:36
Definition: BoundingBoxAligned.h:35
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:195
virtual void SetDirtyRec(int dirtyflags)
Calls SetDirty on this model and all child objects.
Definition: ParticleEmitter.h:190
float m_LastUpdateTime
Definition: ParticleEmitter.h:155
CVector3D m_Pos
Definition: ParticleEmitter.h:147
CBoundingBoxAligned m_ParticleBounds
Bounding box of the current particle center points.
Definition: ParticleEmitter.h:160
Particle emitter model, for attaching emitters as props on other models.
Definition: ParticleEmitter.h:176
SColor4ub color
Definition: ParticleEmitter.h:40
int m_LastFrameNumber
Definition: ParticleEmitter.h:170
std::map< std::string, float > m_EntityVariables
Definition: ParticleEmitter.h:150
float age
Definition: ParticleEmitter.h:41
CVector3D GetPosition() const
Definition: ParticleEmitter.h:80
CQuaternion m_Rot
Definition: ParticleEmitter.h:148
VertexArray::Attribute m_AttributePos
Definition: ParticleEmitter.h:165
size_t m_NextParticleIdx
Definition: ParticleEmitter.h:153
Simulation state for a single particle.
Definition: ParticleEmitter.h:32
std::shared_ptr< CShaderProgram > CShaderProgramPtr
Definition: ShaderProgramPtr.h:25
float angleSpeed
Definition: ParticleEmitter.h:37
CParticleEmitterTypePtr m_Type
Definition: ParticleEmitter.h:206
CParticleEmitterTypePtr m_Type
Definition: ParticleEmitter.h:142