ParticleEngine Class Reference

#include <ParticleEngine.h>

Inheritance diagram for ParticleEngine:

GameStateI

List of all members.

Public Member Functions

 ParticleEngine (GLCamera *camera, unsigned int maxParticles)
virtual ~ParticleEngine ()
void setMaxParticles (unsigned int maxParticles)
unsigned int getMaxParticles ()
unsigned int getParticlesOnScreen ()
GLCameragetCamera ()
void setAllowSorting (bool sorting)
void killAll ()
ParticlegetNextAliveParticle ()
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

Particleparticles_
Particle ** usedParticles_
Particle ** freeParticles_
GLCameracamera_
float totalTime_
unsigned int maxParticles_
unsigned int particlesOnScreen_
bool allowSorting_

Static Protected Attributes

static float speed_ = 1.0f


Detailed Description

Definition at line 28 of file ParticleEngine.h.


Constructor & Destructor Documentation

ParticleEngine::ParticleEngine ( GLCamera camera,
unsigned int  maxParticles 
)

Definition at line 31 of file ParticleEngine.cpp.

References setMaxParticles().

ParticleEngine::~ParticleEngine (  )  [virtual]

Definition at line 42 of file ParticleEngine.cpp.

References freeParticles_, particles_, and usedParticles_.


Member Function Documentation

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 (  ) 

Definition at line 65 of file ParticleEngine.cpp.

References maxParticles_.

unsigned int ParticleEngine::getParticlesOnScreen (  ) 

Definition at line 70 of file ParticleEngine.cpp.

References particlesOnScreen_.

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_.


Member Data Documentation

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]

Definition at line 62 of file ParticleEngine.h.

Referenced by getFast(), and setFast().


The documentation for this class was generated from the following files:
Generated on Mon Feb 16 15:15:05 2009 for Scorched3D by  doxygen 1.5.3