diff options
author | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
commit | 959831f4ef5a3e797f576c3de08cd65032c997ad (patch) | |
tree | e7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp | |
parent | Add info about changes to Irrlicht. (diff) | |
download | SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2 SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz |
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp | 294 |
1 files changed, 147 insertions, 147 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp b/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp index 34dc51d..890f525 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp +++ b/libraries/irrlicht-1.8/source/Irrlicht/CParticlePointEmitter.cpp | |||
@@ -1,147 +1,147 @@ | |||
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 | #include "CParticlePointEmitter.h" | 5 | #include "CParticlePointEmitter.h" |
6 | #include "os.h" | 6 | #include "os.h" |
7 | #include "IAttributes.h" | 7 | #include "IAttributes.h" |
8 | 8 | ||
9 | namespace irr | 9 | namespace irr |
10 | { | 10 | { |
11 | namespace scene | 11 | namespace scene |
12 | { | 12 | { |
13 | 13 | ||
14 | //! constructor | 14 | //! constructor |
15 | CParticlePointEmitter::CParticlePointEmitter( | 15 | CParticlePointEmitter::CParticlePointEmitter( |
16 | const core::vector3df& direction, u32 minParticlesPerSecond, | 16 | const core::vector3df& direction, u32 minParticlesPerSecond, |
17 | u32 maxParticlesPerSecond, video::SColor minStartColor, | 17 | u32 maxParticlesPerSecond, video::SColor minStartColor, |
18 | video::SColor maxStartColor, u32 lifeTimeMin, u32 lifeTimeMax, | 18 | video::SColor maxStartColor, u32 lifeTimeMin, u32 lifeTimeMax, |
19 | s32 maxAngleDegrees, | 19 | s32 maxAngleDegrees, |
20 | const core::dimension2df& minStartSize, | 20 | const core::dimension2df& minStartSize, |
21 | const core::dimension2df& maxStartSize) | 21 | const core::dimension2df& maxStartSize) |
22 | : Direction(direction), | 22 | : Direction(direction), |
23 | MinStartSize(minStartSize), MaxStartSize(maxStartSize), | 23 | MinStartSize(minStartSize), MaxStartSize(maxStartSize), |
24 | MinParticlesPerSecond(minParticlesPerSecond), | 24 | MinParticlesPerSecond(minParticlesPerSecond), |
25 | MaxParticlesPerSecond(maxParticlesPerSecond), | 25 | MaxParticlesPerSecond(maxParticlesPerSecond), |
26 | MinStartColor(minStartColor), MaxStartColor(maxStartColor), | 26 | MinStartColor(minStartColor), MaxStartColor(maxStartColor), |
27 | MinLifeTime(lifeTimeMin), MaxLifeTime(lifeTimeMax), | 27 | MinLifeTime(lifeTimeMin), MaxLifeTime(lifeTimeMax), |
28 | MaxAngleDegrees(maxAngleDegrees), Time(0), Emitted(0) | 28 | MaxAngleDegrees(maxAngleDegrees), Time(0), Emitted(0) |
29 | { | 29 | { |
30 | #ifdef _DEBUG | 30 | #ifdef _DEBUG |
31 | setDebugName("CParticlePointEmitter"); | 31 | setDebugName("CParticlePointEmitter"); |
32 | #endif | 32 | #endif |
33 | } | 33 | } |
34 | 34 | ||
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 | s32 CParticlePointEmitter::emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray) | 38 | s32 CParticlePointEmitter::emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray) |
39 | { | 39 | { |
40 | Time += timeSinceLastCall; | 40 | Time += timeSinceLastCall; |
41 | 41 | ||
42 | const u32 pps = (MaxParticlesPerSecond - MinParticlesPerSecond); | 42 | const u32 pps = (MaxParticlesPerSecond - MinParticlesPerSecond); |
43 | const f32 perSecond = pps ? ((f32)MinParticlesPerSecond + os::Randomizer::frand() * pps) : MinParticlesPerSecond; | 43 | const f32 perSecond = pps ? ((f32)MinParticlesPerSecond + os::Randomizer::frand() * pps) : MinParticlesPerSecond; |
44 | const f32 everyWhatMillisecond = 1000.0f / perSecond; | 44 | const f32 everyWhatMillisecond = 1000.0f / perSecond; |
45 | 45 | ||
46 | if (Time > everyWhatMillisecond) | 46 | if (Time > everyWhatMillisecond) |
47 | { | 47 | { |
48 | Time = 0; | 48 | Time = 0; |
49 | Particle.startTime = now; | 49 | Particle.startTime = now; |
50 | Particle.vector = Direction; | 50 | Particle.vector = Direction; |
51 | 51 | ||
52 | if (MaxAngleDegrees) | 52 | if (MaxAngleDegrees) |
53 | { | 53 | { |
54 | core::vector3df tgt = Direction; | 54 | core::vector3df tgt = Direction; |
55 | tgt.rotateXYBy(os::Randomizer::frand() * MaxAngleDegrees); | 55 | tgt.rotateXYBy(os::Randomizer::frand() * MaxAngleDegrees); |
56 | tgt.rotateYZBy(os::Randomizer::frand() * MaxAngleDegrees); | 56 | tgt.rotateYZBy(os::Randomizer::frand() * MaxAngleDegrees); |
57 | tgt.rotateXZBy(os::Randomizer::frand() * MaxAngleDegrees); | 57 | tgt.rotateXZBy(os::Randomizer::frand() * MaxAngleDegrees); |
58 | Particle.vector = tgt; | 58 | Particle.vector = tgt; |
59 | } | 59 | } |
60 | 60 | ||
61 | Particle.endTime = now + MinLifeTime; | 61 | Particle.endTime = now + MinLifeTime; |
62 | if (MaxLifeTime != MinLifeTime) | 62 | if (MaxLifeTime != MinLifeTime) |
63 | Particle.endTime += os::Randomizer::rand() % (MaxLifeTime - MinLifeTime); | 63 | Particle.endTime += os::Randomizer::rand() % (MaxLifeTime - MinLifeTime); |
64 | 64 | ||
65 | if (MinStartColor==MaxStartColor) | 65 | if (MinStartColor==MaxStartColor) |
66 | Particle.color=MinStartColor; | 66 | Particle.color=MinStartColor; |
67 | else | 67 | else |
68 | Particle.color = MinStartColor.getInterpolated(MaxStartColor, os::Randomizer::frand()); | 68 | Particle.color = MinStartColor.getInterpolated(MaxStartColor, os::Randomizer::frand()); |
69 | 69 | ||
70 | Particle.startColor = Particle.color; | 70 | Particle.startColor = Particle.color; |
71 | Particle.startVector = Particle.vector; | 71 | Particle.startVector = Particle.vector; |
72 | 72 | ||
73 | if (MinStartSize==MaxStartSize) | 73 | if (MinStartSize==MaxStartSize) |
74 | Particle.startSize = MinStartSize; | 74 | Particle.startSize = MinStartSize; |
75 | else | 75 | else |
76 | Particle.startSize = MinStartSize.getInterpolated(MaxStartSize, os::Randomizer::frand()); | 76 | Particle.startSize = MinStartSize.getInterpolated(MaxStartSize, os::Randomizer::frand()); |
77 | Particle.size = Particle.startSize; | 77 | Particle.size = Particle.startSize; |
78 | 78 | ||
79 | outArray = &Particle; | 79 | outArray = &Particle; |
80 | return 1; | 80 | return 1; |
81 | } | 81 | } |
82 | 82 | ||
83 | return 0; | 83 | return 0; |
84 | } | 84 | } |
85 | 85 | ||
86 | 86 | ||
87 | //! Writes attributes of the object. | 87 | //! Writes attributes of the object. |
88 | void CParticlePointEmitter::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const | 88 | void CParticlePointEmitter::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const |
89 | { | 89 | { |
90 | out->addVector3d("Direction", Direction); | 90 | out->addVector3d("Direction", Direction); |
91 | out->addFloat("MinStartSizeWidth", MinStartSize.Width); | 91 | out->addFloat("MinStartSizeWidth", MinStartSize.Width); |
92 | out->addFloat("MinStartSizeHeight", MinStartSize.Height); | 92 | out->addFloat("MinStartSizeHeight", MinStartSize.Height); |
93 | out->addFloat("MaxStartSizeWidth", MaxStartSize.Width); | 93 | out->addFloat("MaxStartSizeWidth", MaxStartSize.Width); |
94 | out->addFloat("MaxStartSizeHeight", MaxStartSize.Height); | 94 | out->addFloat("MaxStartSizeHeight", MaxStartSize.Height); |
95 | out->addInt("MinParticlesPerSecond", MinParticlesPerSecond); | 95 | out->addInt("MinParticlesPerSecond", MinParticlesPerSecond); |
96 | out->addInt("MaxParticlesPerSecond", MaxParticlesPerSecond); | 96 | out->addInt("MaxParticlesPerSecond", MaxParticlesPerSecond); |
97 | out->addColor("MinStartColor", MinStartColor); | 97 | out->addColor("MinStartColor", MinStartColor); |
98 | out->addColor("MaxStartColor", MaxStartColor); | 98 | out->addColor("MaxStartColor", MaxStartColor); |
99 | out->addInt("MinLifeTime", MinLifeTime); | 99 | out->addInt("MinLifeTime", MinLifeTime); |
100 | out->addInt("MaxLifeTime", MaxLifeTime); | 100 | out->addInt("MaxLifeTime", MaxLifeTime); |
101 | out->addInt("MaxAngleDegrees", MaxAngleDegrees); | 101 | out->addInt("MaxAngleDegrees", MaxAngleDegrees); |
102 | } | 102 | } |
103 | 103 | ||
104 | //! Reads attributes of the object. | 104 | //! Reads attributes of the object. |
105 | void CParticlePointEmitter::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) | 105 | void CParticlePointEmitter::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) |
106 | { | 106 | { |
107 | Direction = in->getAttributeAsVector3d("Direction"); | 107 | Direction = in->getAttributeAsVector3d("Direction"); |
108 | if (Direction.getLength() == 0) | 108 | if (Direction.getLength() == 0) |
109 | Direction.set(0,0.01f,0); | 109 | Direction.set(0,0.01f,0); |
110 | 110 | ||
111 | int idx = -1; | 111 | int idx = -1; |
112 | idx = in->findAttribute("MinStartSizeWidth"); | 112 | idx = in->findAttribute("MinStartSizeWidth"); |
113 | if ( idx >= 0 ) | 113 | if ( idx >= 0 ) |
114 | MinStartSize.Width = in->getAttributeAsFloat(idx); | 114 | MinStartSize.Width = in->getAttributeAsFloat(idx); |
115 | idx = in->findAttribute("MinStartSizeHeight"); | 115 | idx = in->findAttribute("MinStartSizeHeight"); |
116 | if ( idx >= 0 ) | 116 | if ( idx >= 0 ) |
117 | MinStartSize.Height = in->getAttributeAsFloat(idx); | 117 | MinStartSize.Height = in->getAttributeAsFloat(idx); |
118 | idx = in->findAttribute("MaxStartSizeWidth"); | 118 | idx = in->findAttribute("MaxStartSizeWidth"); |
119 | if ( idx >= 0 ) | 119 | if ( idx >= 0 ) |
120 | MaxStartSize.Width = in->getAttributeAsFloat(idx); | 120 | MaxStartSize.Width = in->getAttributeAsFloat(idx); |
121 | idx = in->findAttribute("MaxStartSizeHeight"); | 121 | idx = in->findAttribute("MaxStartSizeHeight"); |
122 | if ( idx >= 0 ) | 122 | if ( idx >= 0 ) |
123 | MaxStartSize.Height = in->getAttributeAsFloat(idx); | 123 | MaxStartSize.Height = in->getAttributeAsFloat(idx); |
124 | 124 | ||
125 | MinParticlesPerSecond = in->getAttributeAsInt("MinParticlesPerSecond"); | 125 | MinParticlesPerSecond = in->getAttributeAsInt("MinParticlesPerSecond"); |
126 | MaxParticlesPerSecond = in->getAttributeAsInt("MaxParticlesPerSecond"); | 126 | MaxParticlesPerSecond = in->getAttributeAsInt("MaxParticlesPerSecond"); |
127 | 127 | ||
128 | MinParticlesPerSecond = core::max_(1u, MinParticlesPerSecond); | 128 | MinParticlesPerSecond = core::max_(1u, MinParticlesPerSecond); |
129 | MaxParticlesPerSecond = core::max_(MaxParticlesPerSecond, 1u); | 129 | MaxParticlesPerSecond = core::max_(MaxParticlesPerSecond, 1u); |
130 | MaxParticlesPerSecond = core::min_(MaxParticlesPerSecond, 200u); | 130 | MaxParticlesPerSecond = core::min_(MaxParticlesPerSecond, 200u); |
131 | MinParticlesPerSecond = core::min_(MinParticlesPerSecond, MaxParticlesPerSecond); | 131 | MinParticlesPerSecond = core::min_(MinParticlesPerSecond, MaxParticlesPerSecond); |
132 | 132 | ||
133 | MinStartColor = in->getAttributeAsColor("MinStartColor"); | 133 | MinStartColor = in->getAttributeAsColor("MinStartColor"); |
134 | MaxStartColor = in->getAttributeAsColor("MaxStartColor"); | 134 | MaxStartColor = in->getAttributeAsColor("MaxStartColor"); |
135 | MinLifeTime = in->getAttributeAsInt("MinLifeTime"); | 135 | MinLifeTime = in->getAttributeAsInt("MinLifeTime"); |
136 | MaxLifeTime = in->getAttributeAsInt("MaxLifeTime"); | 136 | MaxLifeTime = in->getAttributeAsInt("MaxLifeTime"); |
137 | MaxAngleDegrees = in->getAttributeAsInt("MaxAngleDegrees"); | 137 | MaxAngleDegrees = in->getAttributeAsInt("MaxAngleDegrees"); |
138 | 138 | ||
139 | MinLifeTime = core::max_(0u, MinLifeTime); | 139 | MinLifeTime = core::max_(0u, MinLifeTime); |
140 | MaxLifeTime = core::max_(MaxLifeTime, MinLifeTime); | 140 | MaxLifeTime = core::max_(MaxLifeTime, MinLifeTime); |
141 | MinLifeTime = core::min_(MinLifeTime, MaxLifeTime); | 141 | MinLifeTime = core::min_(MinLifeTime, MaxLifeTime); |
142 | } | 142 | } |
143 | 143 | ||
144 | 144 | ||
145 | } // end namespace scene | 145 | } // end namespace scene |
146 | } // end namespace irr | 146 | } // end namespace irr |
147 | 147 | ||