diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/CParticleSphereEmitter.h | 282 |
1 files changed, 141 insertions, 141 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CParticleSphereEmitter.h b/libraries/irrlicht-1.8/source/Irrlicht/CParticleSphereEmitter.h index 59736ec..4b33b88 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/CParticleSphereEmitter.h +++ b/libraries/irrlicht-1.8/source/Irrlicht/CParticleSphereEmitter.h | |||
@@ -1,141 +1,141 @@ | |||
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_SPHERE_EMITTER_H_INCLUDED__ | 5 | #ifndef __C_PARTICLE_SPHERE_EMITTER_H_INCLUDED__ |
6 | #define __C_PARTICLE_SPHERE_EMITTER_H_INCLUDED__ | 6 | #define __C_PARTICLE_SPHERE_EMITTER_H_INCLUDED__ |
7 | 7 | ||
8 | #include "IParticleSphereEmitter.h" | 8 | #include "IParticleSphereEmitter.h" |
9 | #include "irrArray.h" | 9 | #include "irrArray.h" |
10 | #include "aabbox3d.h" | 10 | #include "aabbox3d.h" |
11 | 11 | ||
12 | namespace irr | 12 | namespace irr |
13 | { | 13 | { |
14 | namespace scene | 14 | namespace scene |
15 | { | 15 | { |
16 | 16 | ||
17 | //! A default box emitter | 17 | //! A default box emitter |
18 | class CParticleSphereEmitter : public IParticleSphereEmitter | 18 | class CParticleSphereEmitter : public IParticleSphereEmitter |
19 | { | 19 | { |
20 | public: | 20 | public: |
21 | 21 | ||
22 | //! constructor | 22 | //! constructor |
23 | CParticleSphereEmitter( | 23 | CParticleSphereEmitter( |
24 | const core::vector3df& center, f32 radius, | 24 | const core::vector3df& center, f32 radius, |
25 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | 25 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), |
26 | u32 minParticlesPerSecond = 20, | 26 | u32 minParticlesPerSecond = 20, |
27 | u32 maxParticlesPerSecond = 40, | 27 | u32 maxParticlesPerSecond = 40, |
28 | const video::SColor& minStartColor = video::SColor(255,0,0,0), | 28 | const video::SColor& minStartColor = video::SColor(255,0,0,0), |
29 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), | 29 | const video::SColor& maxStartColor = video::SColor(255,255,255,255), |
30 | u32 lifeTimeMin=2000, | 30 | u32 lifeTimeMin=2000, |
31 | u32 lifeTimeMax=4000, | 31 | u32 lifeTimeMax=4000, |
32 | s32 maxAngleDegrees=0, | 32 | s32 maxAngleDegrees=0, |
33 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | 33 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), |
34 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | 34 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); |
35 | 35 | ||
36 | //! Prepares an array with new particles to emitt into the system | 36 | //! Prepares an array with new particles to emitt into the system |
37 | //! and returns how much new particles there are. | 37 | //! and returns how much new particles there are. |
38 | virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray); | 38 | virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray); |
39 | 39 | ||
40 | //! Set direction the emitter emits particles | 40 | //! Set direction the emitter emits particles |
41 | virtual void setDirection( const core::vector3df& newDirection ) { Direction = newDirection; } | 41 | virtual void setDirection( const core::vector3df& newDirection ) { Direction = newDirection; } |
42 | 42 | ||
43 | //! Set minimum number of particles per second. | 43 | //! Set minimum number of particles per second. |
44 | virtual void setMinParticlesPerSecond( u32 minPPS ) { MinParticlesPerSecond = minPPS; } | 44 | virtual void setMinParticlesPerSecond( u32 minPPS ) { MinParticlesPerSecond = minPPS; } |
45 | 45 | ||
46 | //! Set maximum number of particles per second. | 46 | //! Set maximum number of particles per second. |
47 | virtual void setMaxParticlesPerSecond( u32 maxPPS ) { MaxParticlesPerSecond = maxPPS; } | 47 | virtual void setMaxParticlesPerSecond( u32 maxPPS ) { MaxParticlesPerSecond = maxPPS; } |
48 | 48 | ||
49 | //! Set minimum start color | 49 | //! Set minimum start color |
50 | virtual void setMinStartColor( const video::SColor& color ) { MinStartColor = color; } | 50 | virtual void setMinStartColor( const video::SColor& color ) { MinStartColor = color; } |
51 | 51 | ||
52 | //! Set maximum start color | 52 | //! Set maximum start color |
53 | virtual void setMaxStartColor( const video::SColor& color ) { MaxStartColor = color; } | 53 | virtual void setMaxStartColor( const video::SColor& color ) { MaxStartColor = color; } |
54 | 54 | ||
55 | //! Set the maximum starting size for particles | 55 | //! Set the maximum starting size for particles |
56 | virtual void setMaxStartSize( const core::dimension2df& size ) { MaxStartSize = size; } | 56 | virtual void setMaxStartSize( const core::dimension2df& size ) { MaxStartSize = size; } |
57 | 57 | ||
58 | //! Set the minimum starting size for particles | 58 | //! Set the minimum starting size for particles |
59 | virtual void setMinStartSize( const core::dimension2df& size ) { MinStartSize = size; } | 59 | virtual void setMinStartSize( const core::dimension2df& size ) { MinStartSize = size; } |
60 | 60 | ||
61 | //! Set the minimum particle life-time in milliseconds | 61 | //! Set the minimum particle life-time in milliseconds |
62 | virtual void setMinLifeTime( u32 lifeTimeMin ) { MinLifeTime = lifeTimeMin; } | 62 | virtual void setMinLifeTime( u32 lifeTimeMin ) { MinLifeTime = lifeTimeMin; } |
63 | 63 | ||
64 | //! Set the maximum particle life-time in milliseconds | 64 | //! Set the maximum particle life-time in milliseconds |
65 | virtual void setMaxLifeTime( u32 lifeTimeMax ) { MaxLifeTime = lifeTimeMax; } | 65 | virtual void setMaxLifeTime( u32 lifeTimeMax ) { MaxLifeTime = lifeTimeMax; } |
66 | 66 | ||
67 | //! Set maximal random derivation from the direction | 67 | //! Set maximal random derivation from the direction |
68 | virtual void setMaxAngleDegrees( s32 maxAngleDegrees ) { MaxAngleDegrees = maxAngleDegrees; } | 68 | virtual void setMaxAngleDegrees( s32 maxAngleDegrees ) { MaxAngleDegrees = maxAngleDegrees; } |
69 | 69 | ||
70 | //! Set the center of the sphere for particle emissions | 70 | //! Set the center of the sphere for particle emissions |
71 | virtual void setCenter( const core::vector3df& center ) { Center = center; } | 71 | virtual void setCenter( const core::vector3df& center ) { Center = center; } |
72 | 72 | ||
73 | //! Set the radius of the sphere for particle emissions | 73 | //! Set the radius of the sphere for particle emissions |
74 | virtual void setRadius( f32 radius ) { Radius = radius; } | 74 | virtual void setRadius( f32 radius ) { Radius = radius; } |
75 | 75 | ||
76 | //! Gets direction the emitter emits particles | 76 | //! Gets direction the emitter emits particles |
77 | virtual const core::vector3df& getDirection() const { return Direction; } | 77 | virtual const core::vector3df& getDirection() const { return Direction; } |
78 | 78 | ||
79 | //! Get minimum number of particles per second. | 79 | //! Get minimum number of particles per second. |
80 | virtual u32 getMinParticlesPerSecond() const { return MinParticlesPerSecond; } | 80 | virtual u32 getMinParticlesPerSecond() const { return MinParticlesPerSecond; } |
81 | 81 | ||
82 | //! Get maximum number of particles per second. | 82 | //! Get maximum number of particles per second. |
83 | virtual u32 getMaxParticlesPerSecond() const { return MaxParticlesPerSecond; } | 83 | virtual u32 getMaxParticlesPerSecond() const { return MaxParticlesPerSecond; } |
84 | 84 | ||
85 | //! Get minimum start color | 85 | //! Get minimum start color |
86 | virtual const video::SColor& getMinStartColor() const { return MinStartColor; } | 86 | virtual const video::SColor& getMinStartColor() const { return MinStartColor; } |
87 | 87 | ||
88 | //! Get maximum start color | 88 | //! Get maximum start color |
89 | virtual const video::SColor& getMaxStartColor() const { return MaxStartColor; } | 89 | virtual const video::SColor& getMaxStartColor() const { return MaxStartColor; } |
90 | 90 | ||
91 | //! Gets the maximum starting size for particles | 91 | //! Gets the maximum starting size for particles |
92 | virtual const core::dimension2df& getMaxStartSize() const { return MaxStartSize; } | 92 | virtual const core::dimension2df& getMaxStartSize() const { return MaxStartSize; } |
93 | 93 | ||
94 | //! Gets the minimum starting size for particles | 94 | //! Gets the minimum starting size for particles |
95 | virtual const core::dimension2df& getMinStartSize() const { return MinStartSize; } | 95 | virtual const core::dimension2df& getMinStartSize() const { return MinStartSize; } |
96 | 96 | ||
97 | //! Get the minimum particle life-time in milliseconds | 97 | //! Get the minimum particle life-time in milliseconds |
98 | virtual u32 getMinLifeTime() const { return MinLifeTime; } | 98 | virtual u32 getMinLifeTime() const { return MinLifeTime; } |
99 | 99 | ||
100 | //! Get the maximum particle life-time in milliseconds | 100 | //! Get the maximum particle life-time in milliseconds |
101 | virtual u32 getMaxLifeTime() const { return MaxLifeTime; } | 101 | virtual u32 getMaxLifeTime() const { return MaxLifeTime; } |
102 | 102 | ||
103 | //! Get maximal random derivation from the direction | 103 | //! Get maximal random derivation from the direction |
104 | virtual s32 getMaxAngleDegrees() const { return MaxAngleDegrees; } | 104 | virtual s32 getMaxAngleDegrees() const { return MaxAngleDegrees; } |
105 | 105 | ||
106 | //! Get the center of the sphere for particle emissions | 106 | //! Get the center of the sphere for particle emissions |
107 | virtual const core::vector3df& getCenter() const { return Center; } | 107 | virtual const core::vector3df& getCenter() const { return Center; } |
108 | 108 | ||
109 | //! Get the radius of the sphere for particle emissions | 109 | //! Get the radius of the sphere for particle emissions |
110 | virtual f32 getRadius() const { return Radius; } | 110 | virtual f32 getRadius() const { return Radius; } |
111 | 111 | ||
112 | //! Writes attributes of the object. | 112 | //! Writes attributes of the object. |
113 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; | 113 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; |
114 | 114 | ||
115 | //! Reads attributes of the object. | 115 | //! Reads attributes of the object. |
116 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options); | 116 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options); |
117 | 117 | ||
118 | private: | 118 | private: |
119 | 119 | ||
120 | core::array<SParticle> Particles; | 120 | core::array<SParticle> Particles; |
121 | 121 | ||
122 | core::vector3df Center; | 122 | core::vector3df Center; |
123 | f32 Radius; | 123 | f32 Radius; |
124 | core::vector3df Direction; | 124 | core::vector3df Direction; |
125 | 125 | ||
126 | core::dimension2df MinStartSize, MaxStartSize; | 126 | core::dimension2df MinStartSize, MaxStartSize; |
127 | u32 MinParticlesPerSecond, MaxParticlesPerSecond; | 127 | u32 MinParticlesPerSecond, MaxParticlesPerSecond; |
128 | video::SColor MinStartColor, MaxStartColor; | 128 | video::SColor MinStartColor, MaxStartColor; |
129 | u32 MinLifeTime, MaxLifeTime; | 129 | u32 MinLifeTime, MaxLifeTime; |
130 | 130 | ||
131 | u32 Time; | 131 | u32 Time; |
132 | u32 Emitted; | 132 | u32 Emitted; |
133 | s32 MaxAngleDegrees; | 133 | s32 MaxAngleDegrees; |
134 | }; | 134 | }; |
135 | 135 | ||
136 | } // end namespace scene | 136 | } // end namespace scene |
137 | } // end namespace irr | 137 | } // end namespace irr |
138 | 138 | ||
139 | 139 | ||
140 | #endif | 140 | #endif |
141 | 141 | ||