diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/CParticleSystemSceneNode.h | 478 |
1 files changed, 239 insertions, 239 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CParticleSystemSceneNode.h b/libraries/irrlicht-1.8/source/Irrlicht/CParticleSystemSceneNode.h index 24ae48c..cd98e7d 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/CParticleSystemSceneNode.h +++ b/libraries/irrlicht-1.8/source/Irrlicht/CParticleSystemSceneNode.h | |||
@@ -1,239 +1,239 @@ | |||
1 | // Copyright (C) 2002-2012 Nikolaus Gebhardt | 1 | // Copyright (C) 2002-2012 Nikolaus Gebhardt |
2 | // This file is part of the "Irrlicht Engine". | 2 | // This file is part of the "Irrlicht Engine". |
3 | // For conditions of distribution and use, see copyright notice in irrlicht.h | 3 | // For conditions of distribution and use, see copyright notice in irrlicht.h |
4 | 4 | ||
5 | #ifndef __C_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ | 5 | #ifndef __C_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ |
6 | #define __C_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ | 6 | #define __C_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ |
7 | 7 | ||
8 | #include "IParticleSystemSceneNode.h" | 8 | #include "IParticleSystemSceneNode.h" |
9 | #include "irrArray.h" | 9 | #include "irrArray.h" |
10 | #include "irrList.h" | 10 | #include "irrList.h" |
11 | #include "SMeshBuffer.h" | 11 | #include "SMeshBuffer.h" |
12 | 12 | ||
13 | namespace irr | 13 | namespace irr |
14 | { | 14 | { |
15 | namespace scene | 15 | namespace scene |
16 | { | 16 | { |
17 | 17 | ||
18 | //! A particle system scene node. | 18 | //! A particle system scene node. |
19 | /** A scene node controlling a particle system. The behavior of the particles | 19 | /** A scene node controlling a particle system. The behavior of the particles |
20 | can be controlled by setting the right particle emitters and affectors. | 20 | can be controlled by setting the right particle emitters and affectors. |
21 | */ | 21 | */ |
22 | class CParticleSystemSceneNode : public IParticleSystemSceneNode | 22 | class CParticleSystemSceneNode : public IParticleSystemSceneNode |
23 | { | 23 | { |
24 | public: | 24 | public: |
25 | 25 | ||
26 | //! constructor | 26 | //! constructor |
27 | CParticleSystemSceneNode(bool createDefaultEmitter, | 27 | CParticleSystemSceneNode(bool createDefaultEmitter, |
28 | ISceneNode* parent, ISceneManager* mgr, s32 id, | 28 | ISceneNode* parent, ISceneManager* mgr, s32 id, |
29 | const core::vector3df& position, | 29 | const core::vector3df& position, |
30 | const core::vector3df& rotation, | 30 | const core::vector3df& rotation, |
31 | const core::vector3df& scale); | 31 | const core::vector3df& scale); |
32 | 32 | ||
33 | //! destructor | 33 | //! destructor |
34 | virtual ~CParticleSystemSceneNode(); | 34 | virtual ~CParticleSystemSceneNode(); |
35 | 35 | ||
36 | //! Gets the particle emitter, which creates the particles. | 36 | //! Gets the particle emitter, which creates the particles. |
37 | virtual IParticleEmitter* getEmitter(); | 37 | virtual IParticleEmitter* getEmitter(); |
38 | 38 | ||
39 | //! Sets the particle emitter, which creates the particles. | 39 | //! Sets the particle emitter, which creates the particles. |
40 | virtual void setEmitter(IParticleEmitter* emitter); | 40 | virtual void setEmitter(IParticleEmitter* emitter); |
41 | 41 | ||
42 | //! Adds new particle affector to the particle system. | 42 | //! Adds new particle affector to the particle system. |
43 | virtual void addAffector(IParticleAffector* affector); | 43 | virtual void addAffector(IParticleAffector* affector); |
44 | 44 | ||
45 | //! Get a list of all particle affectors. | 45 | //! Get a list of all particle affectors. |
46 | virtual const core::list<IParticleAffector*>& getAffectors() const; | 46 | virtual const core::list<IParticleAffector*>& getAffectors() const; |
47 | 47 | ||
48 | //! Removes all particle affectors in the particle system. | 48 | //! Removes all particle affectors in the particle system. |
49 | virtual void removeAllAffectors(); | 49 | virtual void removeAllAffectors(); |
50 | 50 | ||
51 | //! Returns the material based on the zero based index i. | 51 | //! Returns the material based on the zero based index i. |
52 | virtual video::SMaterial& getMaterial(u32 i); | 52 | virtual video::SMaterial& getMaterial(u32 i); |
53 | 53 | ||
54 | //! Returns amount of materials used by this scene node. | 54 | //! Returns amount of materials used by this scene node. |
55 | virtual u32 getMaterialCount() const; | 55 | virtual u32 getMaterialCount() const; |
56 | 56 | ||
57 | //! pre render event | 57 | //! pre render event |
58 | virtual void OnRegisterSceneNode(); | 58 | virtual void OnRegisterSceneNode(); |
59 | 59 | ||
60 | //! render | 60 | //! render |
61 | virtual void render(); | 61 | virtual void render(); |
62 | 62 | ||
63 | //! returns the axis aligned bounding box of this node | 63 | //! returns the axis aligned bounding box of this node |
64 | virtual const core::aabbox3d<f32>& getBoundingBox() const; | 64 | virtual const core::aabbox3d<f32>& getBoundingBox() const; |
65 | 65 | ||
66 | //! Creates a particle emitter for an animated mesh scene node | 66 | //! Creates a particle emitter for an animated mesh scene node |
67 | virtual IParticleAnimatedMeshSceneNodeEmitter* createAnimatedMeshSceneNodeEmitter( | 67 | virtual IParticleAnimatedMeshSceneNodeEmitter* createAnimatedMeshSceneNodeEmitter( |
68 | scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true, | 68 | scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true, |
69 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 69 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
70 | f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1, | 70 | f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1, |
71 | bool everyMeshVertex = false, u32 minParticlesPerSecond = 5, | 71 | bool everyMeshVertex = false, u32 minParticlesPerSecond = 5, |
72 | u32 maxParticlesPerSecond = 10, | 72 | u32 maxParticlesPerSecond = 10, |
73 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 73 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
74 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 74 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
75 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, | 75 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, |
76 | s32 maxAngleDegrees = 0, | 76 | s32 maxAngleDegrees = 0, |
77 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 77 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
78 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 78 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
79 | 79 | ||
80 | //! Creates a box particle emitter. | 80 | //! Creates a box particle emitter. |
81 | virtual IParticleBoxEmitter* createBoxEmitter( | 81 | virtual IParticleBoxEmitter* createBoxEmitter( |
82 | const core::aabbox3df& box = core::aabbox3d<f32>(-10,0,-10,5,30,10), | 82 | const core::aabbox3df& box = core::aabbox3d<f32>(-10,0,-10,5,30,10), |
83 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 83 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
84 | u32 minParticlesPerSecond = 5, | 84 | u32 minParticlesPerSecond = 5, |
85 | u32 maxParticlesPerSecond = 10, | 85 | u32 maxParticlesPerSecond = 10, |
86 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 86 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
87 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 87 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
88 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, | 88 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, |
89 | s32 maxAngleDegrees=0, | 89 | s32 maxAngleDegrees=0, |
90 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 90 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
91 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 91 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
92 | 92 | ||
93 | //! Creates a particle emitter for emitting from a cylinder | 93 | //! Creates a particle emitter for emitting from a cylinder |
94 | virtual IParticleCylinderEmitter* createCylinderEmitter( | 94 | virtual IParticleCylinderEmitter* createCylinderEmitter( |
95 | const core::vector3df& center, f32 radius, | 95 | const core::vector3df& center, f32 radius, |
96 | const core::vector3df& normal, f32 length, | 96 | const core::vector3df& normal, f32 length, |
97 | bool outlineOnly = false, const core::vector3df& direction = core::vector3df(0.0f,0.5f,0.0f), | 97 | bool outlineOnly = false, const core::vector3df& direction = core::vector3df(0.0f,0.5f,0.0f), |
98 | u32 minParticlesPerSecond = 5, u32 maxParticlesPersSecond = 10, | 98 | u32 minParticlesPerSecond = 5, u32 maxParticlesPersSecond = 10, |
99 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 99 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
100 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 100 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
101 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, | 101 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, |
102 | s32 maxAngleDegrees = 0, | 102 | s32 maxAngleDegrees = 0, |
103 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 103 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
104 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 104 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
105 | 105 | ||
106 | //! Creates a mesh particle emitter. | 106 | //! Creates a mesh particle emitter. |
107 | virtual IParticleMeshEmitter* createMeshEmitter( | 107 | virtual IParticleMeshEmitter* createMeshEmitter( |
108 | scene::IMesh* mesh, bool useNormalDirection = true, | 108 | scene::IMesh* mesh, bool useNormalDirection = true, |
109 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 109 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
110 | f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1, | 110 | f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1, |
111 | bool everyMeshVertex = false, | 111 | bool everyMeshVertex = false, |
112 | u32 minParticlesPerSecond = 5, | 112 | u32 minParticlesPerSecond = 5, |
113 | u32 maxParticlesPerSecond = 10, | 113 | u32 maxParticlesPerSecond = 10, |
114 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 114 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
115 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 115 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
116 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, | 116 | u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000, |
117 | s32 maxAngleDegrees = 0, | 117 | s32 maxAngleDegrees = 0, |
118 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 118 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
119 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 119 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
120 | 120 | ||
121 | //! Creates a point particle emitter. | 121 | //! Creates a point particle emitter. |
122 | virtual IParticlePointEmitter* createPointEmitter( | 122 | virtual IParticlePointEmitter* createPointEmitter( |
123 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 123 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
124 | u32 minParticlesPerSecond = 5, | 124 | u32 minParticlesPerSecond = 5, |
125 | u32 maxParticlesPerSecond = 10, | 125 | u32 maxParticlesPerSecond = 10, |
126 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 126 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
127 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 127 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
128 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, | 128 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, |
129 | s32 maxAngleDegrees=0, | 129 | s32 maxAngleDegrees=0, |
130 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 130 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
131 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 131 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
132 | 132 | ||
133 | //! Creates a ring particle emitter. | 133 | //! Creates a ring particle emitter. |
134 | virtual IParticleRingEmitter* createRingEmitter( | 134 | virtual IParticleRingEmitter* createRingEmitter( |
135 | const core::vector3df& center, f32 radius, f32 ringThickness, | 135 | const core::vector3df& center, f32 radius, f32 ringThickness, |
136 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 136 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
137 | u32 minParticlesPerSecond = 5, | 137 | u32 minParticlesPerSecond = 5, |
138 | u32 maxParticlesPerSecond = 10, | 138 | u32 maxParticlesPerSecond = 10, |
139 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 139 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
140 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 140 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
141 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, | 141 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, |
142 | s32 maxAngleDegrees=0, | 142 | s32 maxAngleDegrees=0, |
143 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 143 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
144 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 144 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
145 | 145 | ||
146 | //! Creates a sphere particle emitter. | 146 | //! Creates a sphere particle emitter. |
147 | virtual IParticleSphereEmitter* createSphereEmitter( | 147 | virtual IParticleSphereEmitter* createSphereEmitter( |
148 | const core::vector3df& center, f32 radius, | 148 | const core::vector3df& center, f32 radius, |
149 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 149 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
150 | u32 minParticlesPerSecond = 5, | 150 | u32 minParticlesPerSecond = 5, |
151 | u32 maxParticlesPerSecond = 10, | 151 | u32 maxParticlesPerSecond = 10, |
152 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 152 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
153 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 153 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
154 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, | 154 | u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, |
155 | s32 maxAngleDegrees=0, | 155 | s32 maxAngleDegrees=0, |
156 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 156 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
157 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 157 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
158 | 158 | ||
159 | //! Creates a point attraction affector. This affector modifies the positions of the | 159 | //! Creates a point attraction affector. This affector modifies the positions of the |
160 | //! particles and attracts them to a specified point at a specified speed per second. | 160 | //! particles and attracts them to a specified point at a specified speed per second. |
161 | virtual IParticleAttractionAffector* createAttractionAffector( | 161 | virtual IParticleAttractionAffector* createAttractionAffector( |
162 | const core::vector3df& point, f32 speed = 1.0f, bool attract = true, | 162 | const core::vector3df& point, f32 speed = 1.0f, bool attract = true, |
163 | bool affectX = true, bool affectY = true, bool affectZ = true); | 163 | bool affectX = true, bool affectY = true, bool affectZ = true); |
164 | 164 | ||
165 | //! Creates a scale particle affector. | 165 | //! Creates a scale particle affector. |
166 | virtual IParticleAffector* createScaleParticleAffector(const core::dimension2df& scaleTo = core::dimension2df(1.0f, 1.0f)); | 166 | virtual IParticleAffector* createScaleParticleAffector(const core::dimension2df& scaleTo = core::dimension2df(1.0f, 1.0f)); |
167 | 167 | ||
168 | //! Creates a fade out particle affector. | 168 | //! Creates a fade out particle affector. |
169 | virtual IParticleFadeOutAffector* createFadeOutParticleAffector( | 169 | virtual IParticleFadeOutAffector* createFadeOutParticleAffector( |
170 | const video::SColor& targetColor = video::SColor(0,0,0,0), | 170 | const video::SColor& targetColor = video::SColor(0,0,0,0), |
171 | u32 timeNeededToFadeOut = 1000); | 171 | u32 timeNeededToFadeOut = 1000); |
172 | 172 | ||
173 | //! Creates a gravity affector. | 173 | //! Creates a gravity affector. |
174 | virtual IParticleGravityAffector* createGravityAffector( | 174 | virtual IParticleGravityAffector* createGravityAffector( |
175 | const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f), | 175 | const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f), |
176 | u32 timeForceLost = 1000); | 176 | u32 timeForceLost = 1000); |
177 | 177 | ||
178 | //! Creates a rotation affector. This affector rotates the particles | 178 | //! Creates a rotation affector. This affector rotates the particles |
179 | //! around a specified pivot point. The speed is in Degrees per second. | 179 | //! around a specified pivot point. The speed is in Degrees per second. |
180 | virtual IParticleRotationAffector* createRotationAffector( | 180 | virtual IParticleRotationAffector* createRotationAffector( |
181 | const core::vector3df& speed = core::vector3df(5.0f,5.0f,5.0f), | 181 | const core::vector3df& speed = core::vector3df(5.0f,5.0f,5.0f), |
182 | const core::vector3df& pivotPoint = core::vector3df(0.0f,0.0f,0.0f) ); | 182 | const core::vector3df& pivotPoint = core::vector3df(0.0f,0.0f,0.0f) ); |
183 | 183 | ||
184 | //! Sets the size of all particles. | 184 | //! Sets the size of all particles. |
185 | virtual void setParticleSize( | 185 | virtual void setParticleSize( |
186 | const core::dimension2d<f32> &size = core::dimension2d<f32>(5.0f, 5.0f)); | 186 | const core::dimension2d<f32> &size = core::dimension2d<f32>(5.0f, 5.0f)); |
187 | 187 | ||
188 | //! Sets if the particles should be global. If they are, the particles are affected by | 188 | //! Sets if the particles should be global. If they are, the particles are affected by |
189 | //! the movement of the particle system scene node too, otherwise they completely | 189 | //! the movement of the particle system scene node too, otherwise they completely |
190 | //! ignore it. Default is true. | 190 | //! ignore it. Default is true. |
191 | virtual void setParticlesAreGlobal(bool global=true); | 191 | virtual void setParticlesAreGlobal(bool global=true); |
192 | 192 | ||
193 | //! Remove all currently visible particles | 193 | //! Remove all currently visible particles |
194 | virtual void clearParticles(); | 194 | virtual void clearParticles(); |
195 | 195 | ||
196 | //! Do manually update the particles. | 196 | //! Do manually update the particles. |
197 | //! This should only be called when you want to render the node outside the scenegraph, | 197 | //! This should only be called when you want to render the node outside the scenegraph, |
198 | //! as the node will care about this otherwise automatically. | 198 | //! as the node will care about this otherwise automatically. |
199 | virtual void doParticleSystem(u32 time); | 199 | virtual void doParticleSystem(u32 time); |
200 | 200 | ||
201 | //! Writes attributes of the scene node. | 201 | //! Writes attributes of the scene node. |
202 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const; | 202 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const; |
203 | 203 | ||
204 | //! Reads attributes of the scene node. | 204 | //! Reads attributes of the scene node. |
205 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0); | 205 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0); |
206 | 206 | ||
207 | //! Returns type of the scene node | 207 | //! Returns type of the scene node |
208 | virtual ESCENE_NODE_TYPE getType() const { return ESNT_PARTICLE_SYSTEM; } | 208 | virtual ESCENE_NODE_TYPE getType() const { return ESNT_PARTICLE_SYSTEM; } |
209 | 209 | ||
210 | private: | 210 | private: |
211 | 211 | ||
212 | void reallocateBuffers(); | 212 | void reallocateBuffers(); |
213 | 213 | ||
214 | core::list<IParticleAffector*> AffectorList; | 214 | core::list<IParticleAffector*> AffectorList; |
215 | IParticleEmitter* Emitter; | 215 | IParticleEmitter* Emitter; |
216 | core::array<SParticle> Particles; | 216 | core::array<SParticle> Particles; |
217 | core::dimension2d<f32> ParticleSize; | 217 | core::dimension2d<f32> ParticleSize; |
218 | u32 LastEmitTime; | 218 | u32 LastEmitTime; |
219 | s32 MaxParticles; | 219 | s32 MaxParticles; |
220 | 220 | ||
221 | SMeshBuffer* Buffer; | 221 | SMeshBuffer* Buffer; |
222 | 222 | ||
223 | enum E_PARTICLES_PRIMITIVE | 223 | enum E_PARTICLES_PRIMITIVE |
224 | { | 224 | { |
225 | EPP_POINT=0, | 225 | EPP_POINT=0, |
226 | EPP_BILLBOARD, | 226 | EPP_BILLBOARD, |
227 | EPP_POINTSPRITE | 227 | EPP_POINTSPRITE |
228 | }; | 228 | }; |
229 | E_PARTICLES_PRIMITIVE ParticlePrimitive; | 229 | E_PARTICLES_PRIMITIVE ParticlePrimitive; |
230 | 230 | ||
231 | bool ParticlesAreGlobal; | 231 | bool ParticlesAreGlobal; |
232 | }; | 232 | }; |
233 | 233 | ||
234 | } // end namespace scene | 234 | } // end namespace scene |
235 | } // end namespace irr | 235 | } // end namespace irr |
236 | 236 | ||
237 | 237 | ||
238 | #endif | 238 | #endif |
239 | 239 | ||