History

cleanup

Jeffrey Ventrella committed 13 years ago

Commit c6d301c1 parent 3444aa92 files · +15 −20Browse files

Showing the changes to interface/src/ParticleSystem.cpp (1 of 2 files). Show all

Unified · Split

interface/src/ParticleSystem.cpp+15−19
@@ -22,7 +22,6 @@ ParticleSystem::ParticleSystem() { · 21 unmodified lines
2222
2323 _timer = 0.0f;
2424 _numEmitters = 0;
25− _numParticles = 0;
2625 _upDirection = glm::vec3(0.0f, 1.0f, 0.0f); // default
2726
2827 for (unsigned int emitterIndex = 0; emitterIndex < MAX_EMITTERS; emitterIndex++) {
@@ -94,9 +93,9 @@ void ParticleSystem::simulate(float deltaTime) { · 65 unmodified lines
9493
9594 // update particles
9695
97− for (unsigned int p = 0; p < _numParticles; p++) {
96+ for (int p = 0; p < MAX_PARTICLES; p++) {
9897 if (_particle[p].alive) {
99− if (_particle[p].age > _emitter[_particle[p].emitterIndex].particleLifespan) {
98+ if (_particle[p].age > _emitter[_particle[p].emitterIndex].particleLifespan) {
10099 killParticle(p);
101100 } else {
102101 updateParticle(p, deltaTime);
@@ -114,10 +113,7 @@ void ParticleSystem::createParticle(int e, float timeFraction) { · 11 unmodified lines
114113 _particle[p].alive = true;
115114 _particle[p].age = 0.0f;
116115 _particle[p].velocity = _emitter[e].direction * _emitter[e].thrust;
117−
118−//_particle[p].position = _emitter[e].position;
119−_particle[p].position = _emitter[e].previousPosition + timeFraction * (_emitter[e].position - _emitter[e].previousPosition);
120−
116+ _particle[p].position = _emitter[e].previousPosition + timeFraction * (_emitter[e].position - _emitter[e].previousPosition);
121117 _particle[p].radius = _emitter[e].particleAttributes[0].radius;
122118 _particle[p].color = _emitter[e].particleAttributes[0].color;
123119 _particle[p].previousParticle = -1;
@@ -130,10 +126,6 @@ _particle[p].position = _emitter[e].previousPosition + timeFraction * (_emitter[ · 6 unmodified lines
130126
131127 _emitter[e].currentParticle = p;
132128
133− _numParticles ++;
134−
135− assert(_numParticles <= MAX_PARTICLES);
136−
137129 break;
138130 }
139131 }
@@ -143,7 +135,6 @@ void ParticleSystem::killParticle(int p) { · 3 unmodified lines
143135
144136 assert( p >= 0);
145137 assert( p < MAX_PARTICLES);
146− assert( _numParticles > 0);
147138
148139 _particle[p].alive = false;
149140 _particle[p].previousParticle = -1;
@@ -151,8 +142,6 @@ void ParticleSystem::killParticle(int p) { · 1 unmodified line
151142 _particle[p].velocity = glm::vec3(0.0f, 0.0f, 0.0f);
152143 _particle[p].age = 0.0f;
153144 _particle[p].emitterIndex = -1;
154−
155− _numParticles --;
156145 }
157146
158147
@@ -196,6 +185,9 @@ void ParticleSystem::setParticleAttributesToDefault(ParticleAttributes * a) { · 37 unmodified lines
196185
197186 void ParticleSystem::setParticleAttributes(int emitterIndex, ParticleLifeStage lifeStage, ParticleAttributes attributes) {
198187
188+ assert(lifeStage >= 0 );
189+ assert(lifeStage < NUM_PARTICLE_LIFE_STAGES );
190+
199191 ParticleAttributes * a = &_emitter[emitterIndex].particleAttributes[lifeStage];
200192
201193 a->radius = attributes.radius;
@@ -258,7 +250,7 @@ void ParticleSystem::updateParticle(int p, float deltaTime) { · 56 unmodified lines
258250
259251 // apply neighbor attraction
260252 int neighbor = p + 1;
261− if (neighbor == _numParticles ) {
253+ if (neighbor == MAX_PARTICLES ) {
262254 neighbor = 0;
263255 }
264256
@@ -355,11 +347,15 @@ void ParticleSystem::updateParticle(int p, float deltaTime) { · 90 unmodified lines
355347 void ParticleSystem::killAllParticles() {
356348
357349 for (int e = 0; e < _numEmitters; e++) {
358− _emitter[e].currentParticle = -1;
359− _emitter[e].emitReserve = 0.0f;
350+ _emitter[e].currentParticle = -1;
351+ _emitter[e].emitReserve = 0.0f;
352+ _emitter[e].previousPosition = _emitter[e].position;
353+ _emitter[e].rate = 0.0f;
354+ _emitter[e].currentParticle = 0;
355+ _emitter[e].numParticlesEmittedThisTime = 0;
360356 }
361357
362− for (unsigned int p = 0; p < _numParticles; p++) {
358+ for (int p = 0; p < MAX_PARTICLES; p++) {
363359 killParticle(p);
364360 }
365361 }
@@ -383,7 +379,7 @@ void ParticleSystem::render() { · 17 unmodified lines
383379 };
384380
385381 // render the particles
386− for (unsigned int p = 0; p < _numParticles; p++) {
382+ for (int p = 0; p < MAX_PARTICLES; p++) {
387383 if (_particle[p].alive) {
388384 if (_emitter[_particle[p].emitterIndex].particleLifespan > 0.0) {
389385 renderParticle(p);