#include <ParticleEngine.h>

Public Member Functions | |
| ParticleEngine (GLCamera *camera, unsigned int maxParticles) | |
| virtual | ~ParticleEngine () |
| void | setMaxParticles (unsigned int maxParticles) |
| unsigned int | getMaxParticles () |
| unsigned int | getParticlesOnScreen () |
| GLCamera * | getCamera () |
| void | setAllowSorting (bool sorting) |
| void | killAll () |
| Particle * | getNextAliveParticle () |
| virtual void | draw (const unsigned state) |
| virtual void | simulate (const unsigned int state, float simTime) |
Static Public Member Functions | |
| static void | setFast (float speedMult) |
| static float | getFast () |
Protected Member Functions | |
| void | normalizedSimulate (float time) |
Protected Attributes | |
| Particle * | particles_ |
| Particle ** | usedParticles_ |
| Particle ** | freeParticles_ |
| GLCamera * | camera_ |
| float | totalTime_ |
| unsigned int | maxParticles_ |
| unsigned int | particlesOnScreen_ |
| bool | allowSorting_ |
Static Protected Attributes | |
| static float | speed_ = 1.0f |
Definition at line 28 of file ParticleEngine.h.
| ParticleEngine::ParticleEngine | ( | GLCamera * | camera, | |
| unsigned int | maxParticles | |||
| ) |
| ParticleEngine::~ParticleEngine | ( | ) | [virtual] |
Definition at line 42 of file ParticleEngine.cpp.
References freeParticles_, particles_, and usedParticles_.
| void ParticleEngine::setMaxParticles | ( | unsigned int | maxParticles | ) |
Definition at line 52 of file ParticleEngine.cpp.
References freeParticles_, killAll(), maxParticles_, particles_, and usedParticles_.
Referenced by ParticleEngine().
| unsigned int ParticleEngine::getMaxParticles | ( | ) |
| unsigned int ParticleEngine::getParticlesOnScreen | ( | ) |
| GLCamera* ParticleEngine::getCamera | ( | ) | [inline] |
Definition at line 37 of file ParticleEngine.h.
References camera_.
Referenced by ParticleRendererRain::simulateParticle().
| void ParticleEngine::setAllowSorting | ( | bool | sorting | ) | [inline] |
Definition at line 38 of file ParticleEngine.h.
References allowSorting_.
Referenced by TargetCamera::TargetCamera().
| void ParticleEngine::killAll | ( | ) |
Definition at line 75 of file ParticleEngine.cpp.
References Particle::engine_, freeParticles_, Particle::life_, maxParticles_, particles_, particlesOnScreen_, ParticleRenderer::recycleParticle(), Particle::renderer_, and Particle::unsetParticle().
Referenced by setMaxParticles().
| Particle * ParticleEngine::getNextAliveParticle | ( | ) |
Definition at line 215 of file ParticleEngine.cpp.
References freeParticles_, maxParticles_, particlesOnScreen_, and usedParticles_.
Referenced by ParticleEmitter::emitDebris(), ParticleEmitter::emitExplosion(), ParticleEmitter::emitExplosionRing(), ParticleEmitter::emitLinear(), ParticleEmitter::emitMushroom(), ParticleEmitter::emitNapalm(), ParticleEmitter::emitPrecipitation(), ParticleEmitter::emitSmoke(), ParticleEmitter::emitSpray(), ParticleEmitter::emitTalk(), ParticleEmitter::emitTransport(), and ParticleEmitter::emitWallHit().
| static void ParticleEngine::setFast | ( | float | speedMult | ) | [inline, static] |
Definition at line 44 of file ParticleEngine.h.
References speed_.
Referenced by SpeedChange::setSpeed().
| static float ParticleEngine::getFast | ( | ) | [inline, static] |
Definition at line 45 of file ParticleEngine.h.
References speed_.
Referenced by TargetCamera::simulate().
| void ParticleEngine::draw | ( | const unsigned | state | ) | [virtual] |
Reimplemented from GameStateI.
Definition at line 97 of file ParticleEngine.cpp.
References GLState::BLEND_ON, GLState::DEPTH_ON, GL_FALSE, GL_TRUE, glDepthMask(), OptionsDisplay::instance(), particlesOnScreen_, Particle::renderer_, ParticleRenderer::renderParticle(), Particle::simulated_, GLState::TEXTURE_ON, and usedParticles_.
Referenced by CameraDialog::drawLandscape(), and TargetCamera::drawPrecipitation().
| virtual void ParticleEngine::simulate | ( | const unsigned int | state, | |
| float | simTime | |||
| ) | [virtual] |
Referenced by TargetCamera::simulate(), and AnimatedBackdropDialog::simulate().
| void ParticleEngine::normalizedSimulate | ( | float | time | ) | [protected] |
Definition at line 141 of file ParticleEngine.cpp.
References allowSorting_, Particle::alpha_, Particle::alphaCounter_, approx_distance(), fixed::asFloat(), FixedVector::asVector(), camera_, Particle::color_, Particle::colorCounter_, Particle::distance_, freeParticles_, Particle::friction_, GLCamera::getCurrentPos(), OptionsDisplay::getNoSimulateParticles(), ScorchedContext::getOptionsTransient(), OptionsTransient::getWindDirection(), OptionsTransient::getWindSpeed(), Particle::gravity_, OptionsDisplay::instance(), ScorchedClient::instance(), Particle::life_, lt_distance(), Particle::mass_, particlesOnScreen_, Particle::percent_, Particle::percentCounter_, Particle::position_, ParticleRenderer::recycleParticle(), Particle::renderer_, Particle::simulated_, ParticleRenderer::simulateParticle(), Particle::size_, Particle::sizeCounter_, sort(), Particle::unsetParticle(), usedParticles_, Particle::velocity_, and Particle::windAffect_.
Particle* ParticleEngine::particles_ [protected] |
Definition at line 52 of file ParticleEngine.h.
Referenced by killAll(), setMaxParticles(), and ~ParticleEngine().
Particle** ParticleEngine::usedParticles_ [protected] |
Definition at line 53 of file ParticleEngine.h.
Referenced by draw(), getNextAliveParticle(), normalizedSimulate(), setMaxParticles(), and ~ParticleEngine().
Particle** ParticleEngine::freeParticles_ [protected] |
Definition at line 54 of file ParticleEngine.h.
Referenced by getNextAliveParticle(), killAll(), normalizedSimulate(), setMaxParticles(), and ~ParticleEngine().
GLCamera* ParticleEngine::camera_ [protected] |
Definition at line 55 of file ParticleEngine.h.
Referenced by getCamera(), and normalizedSimulate().
float ParticleEngine::totalTime_ [protected] |
Definition at line 57 of file ParticleEngine.h.
unsigned int ParticleEngine::maxParticles_ [protected] |
Definition at line 58 of file ParticleEngine.h.
Referenced by getMaxParticles(), getNextAliveParticle(), killAll(), and setMaxParticles().
unsigned int ParticleEngine::particlesOnScreen_ [protected] |
Definition at line 59 of file ParticleEngine.h.
Referenced by draw(), getNextAliveParticle(), getParticlesOnScreen(), killAll(), and normalizedSimulate().
bool ParticleEngine::allowSorting_ [protected] |
Definition at line 60 of file ParticleEngine.h.
Referenced by normalizedSimulate(), and setAllowSorting().
float ParticleEngine::speed_ = 1.0f [static, protected] |
1.5.3