V-Gears 0
Free Final Fantasy VII engine.
ParticleTechnique Class Reference

A particle technique. More...

#include <ParticleTechnique.h>

Collaboration diagram for ParticleTechnique:

Public Member Functions

 ParticleTechnique ()
 Constructor. More...
 
virtual ~ParticleTechnique ()
 Destructor. More...
 
void CopyAttributesTo (ParticleTechnique *technique)
 Copy the technique attributes to another technique. More...
 
void SetParentSystem (ParticleSystem *parent_system)
 Sets the parent system for the technique. More...
 
ParticleSystemGetParentSystem () const
 Retrieves the parent system. More...
 
void UpdateRenderQueue (Ogre::RenderQueue *queue)
 Adds the technique to the scene render queue. More...
 
void Initialize ()
 Initializes the tehnique. More...
 
void Update (Ogre::Real time_elapsed)
 Updates the technique. More...
 
ParticleRendererCreateRenderer (const Ogre::String &renderer_type)
 Creates a renderer. More...
 
void SetRenderer (ParticleRenderer *renderer)
 Sets the renderer for the technique. More...
 
void DestroyRenderer ()
 Destroys the technique renderer. More...
 
ParticleEmitterCreateEmitter (const Ogre::String &emitter_type)
 Creates a particle emitter for the technique. More...
 
void AddEmitter (ParticleEmitter *emitter)
 Adds a particle emitter to the technique. More...
 
void DestroyAllEmitters ()
 Destroys all the technique's emitters. More...
 
int GetNumEmittableEmitters () const
 Counts the number of emitters assigned to the techniques. More...
 
void EmissionChange ()
 Marks all emitters as emittables. More...
 
int GetVisualParticlesQuota () const
 Retrieves the visual particles quota. More...
 
void ExecuteEmitParticles (ParticleEmitter *emitter, int requested, Ogre::Real time_elapsed)
 Initializes the particles of an emitter for emission. More...
 
void ResetVisualParticles ()
 Locks all particles and removes all their additional data. More...
 

Private Attributes

ParticleSystemparent_system_
 The parent particle system. More...
 
ParticleRendererrenderer_
 The technique renderer. More...
 
int visual_particle_quota_
 The visual particle quota. More...
 
bool visual_particle_pool_increased_
 Indicates if the visual particle quota has been increased. More...
 
ParticlePool< VisualParticlevisual_particles_pool_
 The visual particle pool. More...
 
std::vector< VisualParticle * > visual_particles_
 List of visual particles. More...
 
int emitted_emitter_quota_
 The particle emitter quota. More...
 
bool particle_emitter_pool_increased_
 Indicates if the particle emitte quota has been increased. More...
 
ParticlePoolMap< ParticleEmitterparticle_emitter_pool_
 Particle emitter pool. More...
 
std::vector< ParticleEmitter * > emitters_
 List of particle emitters. More...
 

Detailed Description

A particle technique.

Constructor & Destructor Documentation

◆ ParticleTechnique()

ParticleTechnique::ParticleTechnique ( )

Constructor.

◆ ~ParticleTechnique()

ParticleTechnique::~ParticleTechnique ( )
virtual

Destructor.

Member Function Documentation

◆ AddEmitter()

void ParticleTechnique::AddEmitter ( ParticleEmitter emitter)

Adds a particle emitter to the technique.

Parameters
[in]emitterThe emitter to add to the technique.

◆ CopyAttributesTo()

void ParticleTechnique::CopyAttributesTo ( ParticleTechnique technique)

Copy the technique attributes to another technique.

◆ CreateEmitter()

ParticleEmitter * ParticleTechnique::CreateEmitter ( const Ogre::String &  emitter_type)

Creates a particle emitter for the technique.

The emitter gets added to the technique.

Parameters
[in]emitter_typeThe type for the emitter.
Returns
The newly created emitter.

◆ CreateRenderer()

ParticleRenderer * ParticleTechnique::CreateRenderer ( const Ogre::String &  renderer_type)

Creates a renderer.

The renderer gets assigned to the technique.

Parameters
[in]renderer_typeThe type for the renderer.
Returns
The newly created renderer.

◆ DestroyAllEmitters()

void ParticleTechnique::DestroyAllEmitters ( )

Destroys all the technique's emitters.

◆ DestroyRenderer()

void ParticleTechnique::DestroyRenderer ( )

Destroys the technique renderer.

◆ EmissionChange()

void ParticleTechnique::EmissionChange ( )

Marks all emitters as emittables.

◆ ExecuteEmitParticles()

void ParticleTechnique::ExecuteEmitParticles ( ParticleEmitter emitter,
int  requested,
Ogre::Real  time_elapsed 
)

Initializes the particles of an emitter for emission.

Parameters
[in]emitterThe emited to mark.
[in]requestedThe number of particles to emit.
[in]time_elapsedUnused.
Todo:
Understand and document properly.

◆ GetNumEmittableEmitters()

int ParticleTechnique::GetNumEmittableEmitters ( ) const

Counts the number of emitters assigned to the techniques.

Returns
The number of emitters assigned to the techniques.

◆ GetParentSystem()

ParticleSystem * ParticleTechnique::GetParentSystem ( ) const
inline

Retrieves the parent system.

Returns
The parent system.

◆ GetVisualParticlesQuota()

int ParticleTechnique::GetVisualParticlesQuota ( ) const
inline

Retrieves the visual particles quota.

Returns
The visual particles quota
Todo:
What is the quta for? How is it set?

◆ Initialize()

void ParticleTechnique::Initialize ( )

Initializes the tehnique.

◆ ResetVisualParticles()

void ParticleTechnique::ResetVisualParticles ( )

Locks all particles and removes all their additional data.

◆ SetParentSystem()

void ParticleTechnique::SetParentSystem ( ParticleSystem parent_system)
inline

Sets the parent system for the technique.

Parameters
[in]parent_systemThe parent particle system.

◆ SetRenderer()

void ParticleTechnique::SetRenderer ( ParticleRenderer renderer)

Sets the renderer for the technique.

Parameters
[in]rendererRenderer for the technique.

◆ Update()

void ParticleTechnique::Update ( Ogre::Real  time_elapsed)

Updates the technique.

Updates the technique status based on the elapsed time.

Parameters
[in]time_elapsedThe elapsed time.

◆ UpdateRenderQueue()

void ParticleTechnique::UpdateRenderQueue ( Ogre::RenderQueue *  queue)

Adds the technique to the scene render queue.

Parameters
[in,out]queueThe queue to update.

Member Data Documentation

◆ emitted_emitter_quota_

int ParticleTechnique::emitted_emitter_quota_
private

The particle emitter quota.

◆ emitters_

std::vector<ParticleEmitter*> ParticleTechnique::emitters_
private

List of particle emitters.

◆ parent_system_

ParticleSystem* ParticleTechnique::parent_system_
private

The parent particle system.

◆ particle_emitter_pool_

ParticlePoolMap<ParticleEmitter> ParticleTechnique::particle_emitter_pool_
private

Particle emitter pool.

◆ particle_emitter_pool_increased_

bool ParticleTechnique::particle_emitter_pool_increased_
private

Indicates if the particle emitte quota has been increased.

◆ renderer_

ParticleRenderer* ParticleTechnique::renderer_
private

The technique renderer.

◆ visual_particle_pool_increased_

bool ParticleTechnique::visual_particle_pool_increased_
private

Indicates if the visual particle quota has been increased.

◆ visual_particle_quota_

int ParticleTechnique::visual_particle_quota_
private

The visual particle quota.

◆ visual_particles_

std::vector<VisualParticle*> ParticleTechnique::visual_particles_
private

List of visual particles.

◆ visual_particles_pool_

ParticlePool<VisualParticle> ParticleTechnique::visual_particles_pool_
private

The visual particle pool.


The documentation for this class was generated from the following files: