diff options
author | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
commit | 393b5cd1dc438872af89d334ef6e5fcc59f27d47 (patch) | |
tree | 6a14521219942a08a1b95cb2f5a923a9edd60f63 /libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.h | |
parent | Add a note about rasters suggested start up code. (diff) | |
download | SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.zip SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.gz SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.bz2 SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.xz |
Added Irrlicht 1.8, but without all the Windows binaries.
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.h b/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.h new file mode 100644 index 0000000..c83232c --- /dev/null +++ b/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.h | |||
@@ -0,0 +1,123 @@ | |||
1 | // Copyright (C) 2002-2012 Nikolaus Gebhardt | ||
2 | // This file is part of the "Irrlicht Engine". | ||
3 | // For conditions of distribution and use, see copyright notice in irrlicht.h | ||
4 | |||
5 | #ifndef __C_PARTICLE_POINT_EMITTER_H_INCLUDED__ | ||
6 | #define __C_PARTICLE_POINT_EMITTER_H_INCLUDED__ | ||
7 | |||
8 | #include "IParticleEmitter.h" | ||
9 | #include "irrArray.h" | ||
10 | |||
11 | namespace irr | ||
12 | { | ||
13 | namespace scene | ||
14 | { | ||
15 | |||
16 | //! A default point emitter | ||
17 | class CParticlePointEmitter : public IParticlePointEmitter | ||
18 | { | ||
19 | public: | ||
20 | |||
21 | //! constructor | ||
22 | CParticlePointEmitter( | ||
23 | const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), | ||
24 | u32 minParticlesPerSecond = 5, | ||
25 | u32 maxParticlesPerSecond = 10, | ||
26 | video::SColor minStartColor = video::SColor(255,0,0,0), | ||
27 | video::SColor maxStartColor = video::SColor(255,255,255,255), | ||
28 | u32 lifeTimeMin=2000, | ||
29 | u32 lifeTimeMax=4000, | ||
30 | s32 maxAngleDegrees=0, | ||
31 | const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f), | ||
32 | const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ); | ||
33 | |||
34 | //! Prepares an array with new particles to emitt into the system | ||
35 | //! and returns how much new particles there are. | ||
36 | virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray); | ||
37 | |||
38 | //! Set direction the emitter emits particles. | ||
39 | virtual void setDirection( const core::vector3df& newDirection ) { Direction = newDirection; } | ||
40 | |||
41 | //! Set minimum number of particles emitted per second. | ||
42 | virtual void setMinParticlesPerSecond( u32 minPPS ) { MinParticlesPerSecond = minPPS; } | ||
43 | |||
44 | //! Set maximum number of particles emitted per second. | ||
45 | virtual void setMaxParticlesPerSecond( u32 maxPPS ) { MaxParticlesPerSecond = maxPPS; } | ||
46 | |||
47 | //! Set minimum start color. | ||
48 | virtual void setMinStartColor( const video::SColor& color ) { MinStartColor = color; } | ||
49 | |||
50 | //! Set maximum start color. | ||
51 | virtual void setMaxStartColor( const video::SColor& color ) { MaxStartColor = color; } | ||
52 | |||
53 | //! Set the maximum starting size for particles | ||
54 | virtual void setMaxStartSize( const core::dimension2df& size ) { MaxStartSize = size; } | ||
55 | |||
56 | //! Set the minimum starting size for particles | ||
57 | virtual void setMinStartSize( const core::dimension2df& size ) { MinStartSize = size; } | ||
58 | |||
59 | //! Set the minimum particle life-time in milliseconds | ||
60 | virtual void setMinLifeTime( u32 lifeTimeMin ) { MinLifeTime = lifeTimeMin; } | ||
61 | |||
62 | //! Set the maximum particle life-time in milliseconds | ||
63 | virtual void setMaxLifeTime( u32 lifeTimeMax ) { MaxLifeTime = lifeTimeMax; } | ||
64 | |||
65 | //! Set maximal random derivation from the direction | ||
66 | virtual void setMaxAngleDegrees( s32 maxAngleDegrees ) { MaxAngleDegrees = maxAngleDegrees; } | ||
67 | |||
68 | //! Gets direction the emitter emits particles. | ||
69 | virtual const core::vector3df& getDirection() const { return Direction; } | ||
70 | |||
71 | //! Gets minimum number of particles emitted per second. | ||
72 | virtual u32 getMinParticlesPerSecond() const { return MinParticlesPerSecond; } | ||
73 | |||
74 | //! Gets maximum number of particles emitted per second. | ||
75 | virtual u32 getMaxParticlesPerSecond() const { return MaxParticlesPerSecond; } | ||
76 | |||
77 | //! Gets minimum start color. | ||
78 | virtual const video::SColor& getMinStartColor() const { return MinStartColor; } | ||
79 | |||
80 | //! Gets maximum start color. | ||
81 | virtual const video::SColor& getMaxStartColor() const { return MaxStartColor; } | ||
82 | |||
83 | //! Gets the maximum starting size for particles | ||
84 | virtual const core::dimension2df& getMaxStartSize() const { return MaxStartSize; } | ||
85 | |||
86 | //! Gets the minimum starting size for particles | ||
87 | virtual const core::dimension2df& getMinStartSize() const { return MinStartSize; } | ||
88 | |||
89 | //! Get the minimum particle life-time in milliseconds | ||
90 | virtual u32 getMinLifeTime() const { return MinLifeTime; } | ||
91 | |||
92 | //! Get the maximum particle life-time in milliseconds | ||
93 | virtual u32 getMaxLifeTime() const { return MaxLifeTime; } | ||
94 | |||
95 | //! Get maximal random derivation from the direction | ||
96 | virtual s32 getMaxAngleDegrees() const { return MaxAngleDegrees; } | ||
97 | |||
98 | //! Writes attributes of the object. | ||
99 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; | ||
100 | |||
101 | //! Reads attributes of the object. | ||
102 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options); | ||
103 | |||
104 | private: | ||
105 | |||
106 | SParticle Particle; | ||
107 | core::vector3df Direction; | ||
108 | core::dimension2df MinStartSize, MaxStartSize; | ||
109 | u32 MinParticlesPerSecond, MaxParticlesPerSecond; | ||
110 | video::SColor MinStartColor, MaxStartColor; | ||
111 | u32 MinLifeTime, MaxLifeTime; | ||
112 | s32 MaxAngleDegrees; | ||
113 | |||
114 | u32 Time; | ||
115 | u32 Emitted; | ||
116 | }; | ||
117 | |||
118 | } // end namespace scene | ||
119 | } // end namespace irr | ||
120 | |||
121 | |||
122 | #endif | ||
123 | |||