Bromeon
Public Types | Static Public Member Functions | Public Member Functions | Protected Member Functions
thor::TargetEmitter Class Reference

Emits particles towards a specified target zone. More...

Inheritance diagram for thor::TargetEmitter:
Inheritance graph

List of all members.

Public Types

typedef std::tr1::shared_ptr
< TargetEmitter
Ptr
 Shared pointer type referring to TargetEmitter objects.

Static Public Member Functions

static Ptr Create (float particlesPerSecond, float particleLifetime)
 Creates an emitter that emits particles towards a target zone.

Public Member Functions

 TargetEmitter (float particlesPerSecond, float particleLifetime)
 Constructor.
virtual void Emit (Adder &system, float dt)
 Emits particles into a particle system.
void SetTargetZone (MovedPtr< Zone > zone)
 Sets the zone inside which particles are created.
ZoneGetTargetZone ()
 Returns the zone towards which the particles are emitted.
const ZoneGetTargetZone () const
 Returns the zone towards which the particles are emitted (const overload).
void SetParticleSpeed (float speed)
 Sets the speed of the emitted particles.
float GetParticleSpeed () const
 Returns the speed of the emitted particles.
void SetEmissionZone (MovedPtr< Zone > zone)
 Sets the zone inside which particles are created.
ZoneGetEmissionZone ()
 Returns the zone inside which particles are created.
const ZoneGetEmissionZone () const
 Returns the zone inside which particles are created (const overload).
void SetEmissionRate (float particlesPerSecond)
 Sets the particle emission rate.
float GetEmissionRate () const
 Returns the particle emission rate.
void SetParticleScale (sf::Vector2f scale)
 Sets the initial particle scale.
sf::Vector2f GetParticleScale () const
 Returns the initial particle velocity.
void SetParticleColor (const sf::Color &color)
 Sets the initial particle color.
const sf::Color & GetParticleColor () const
 Returns the initial particle color.
void SetParticleLifetime (float lifetime)
 Sets the lifetime (time between emission and death) of the particle.
float GetParticleLifetime () const
 Returns the lifetime (time between emission and death) of the particle.

Protected Member Functions

unsigned int ComputeNbParticles (float dt)
 Helper function for emission: Computes how many particles should be emitted in this frame.
Particle CreateParticlePrototype () const
 Creates a prototype of a particle.

Detailed Description

Emits particles towards a specified target zone.


Constructor & Destructor Documentation

thor::TargetEmitter::TargetEmitter ( float  particlesPerSecond,
float  particleLifetime 
)

Constructor.

Parameters:
particlesPerSecondHow many particles are emitted in 1 second. The type is not integral to allow more flexibility (e.g. 0.5 yields one particle every 2 seconds).
particleLifetimeHow long the particles live until they are removed (in seconds).

Member Function Documentation

unsigned int thor::Emitter::ComputeNbParticles ( float  dt) [protected, inherited]

Helper function for emission: Computes how many particles should be emitted in this frame.

Saves the user from calculations, takes care of too short times to emit particles. This function shall be called exactly once each frame.

Parameters:
dtFrame time.
Returns:
Number of particles to emit.
static Ptr thor::TargetEmitter::Create ( float  particlesPerSecond,
float  particleLifetime 
) [static]

Creates an emitter that emits particles towards a target zone.

Parameters:
particlesPerSecondHow many particles are emitted in 1 second. The type is not integral to allow more flexibility (e.g. 0.5 yields one particle every 2 seconds).
particleLifetimeHow long the particles live until they are removed (in seconds).

Particle thor::Emitter::CreateParticlePrototype ( ) const [protected, inherited]

Creates a prototype of a particle.

Applies the initial particle settings (position, rotation, scale, color, lifetime).

virtual void thor::TargetEmitter::Emit ( Adder system,
float  dt 
) [virtual]

Emits particles into a particle system.

Override this method in your emitter class to implement your own functionality. If your emitter does only emit the particles in a different area, you should have a look at RandomOffset().

Parameters:
systemIndirection to the particle system that stores the particles.
dtTime interval during which particles are emitted.

Implements thor::Emitter.

float thor::Emitter::GetEmissionRate ( ) const [inherited]

Returns the particle emission rate.

Returns:
How many particles are emitted in 1 second. The type is not integral to allow more flexibility (e.g. 0.5 yields one particle every 2 seconds).

Returns the zone inside which particles are created.

Returns:
Reference to modifiable zone, allowing changes of it.
const Zone& thor::Emitter::GetEmissionZone ( ) const [inherited]

Returns the zone inside which particles are created (const overload).

Returns:
Reference to constant zone.

Returns the speed of the emitted particles.

Returns:
Particle speed. If this value is negative, the particles are emitted away from the target zone (that is, the target zone works repulsively).

Returns the zone towards which the particles are emitted.

Returns:
Reference to modifiable zone, allowing changes of it.

Returns the zone towards which the particles are emitted (const overload).

Returns:
Reference to constant zone.
void thor::Emitter::SetEmissionRate ( float  particlesPerSecond) [inherited]

Sets the particle emission rate.

Parameters:
particlesPerSecondHow many particles are emitted in 1 second. The type is not integral to allow more flexibility (e.g. 0.5 yields one particle every 2 seconds).
void thor::Emitter::SetEmissionZone ( MovedPtr< Zone zone) [inherited]

Sets the zone inside which particles are created.

Parameters:
zoneMovable smart pointer to concrete zone.

Sets the speed of the emitted particles.

Parameters:
speedParticle speed. If this value is negative, the particles are emitted away from the target zone (that is, the target zone works repulsively).

Sets the zone inside which particles are created.

Parameters:
zoneMovable smart pointer to target zone. Every time a particle is emitted, a random point in the target zone is chosen, and the particle is accelerated towards that point.

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