Particle Universe  1.2
ParticleUniverse::ParticleEmitter Class Reference

#include <ParticleUniverseEmitter.h>

Inheritance diagram for ParticleUniverse::ParticleEmitter:

Public Member Functions

 ParticleEmitter (void)
 
virtual ~ParticleEmitter (void)
 
ParticleTechniquegetParentTechnique (void) const
 
void setParentTechnique (ParticleTechnique *parentTechnique)
 
const StringgetEmitterType (void) const
 
void setEmitterType (const String &emitterType)
 
const StringgetName (void) const
 
void setName (const String &name)
 
DynamicAttributegetDynAngle (void) const
 
void setDynAngle (DynamicAttribute *dynAngle)
 
DynamicAttributegetDynEmissionRate (void) const
 
void setDynEmissionRate (DynamicAttribute *dynEmissionRate)
 
DynamicAttributegetDynTotalTimeToLive (void) const
 
void setDynTotalTimeToLive (DynamicAttribute *dynTotalTimeToLive)
 
DynamicAttributegetDynParticleMass (void) const
 
void setDynParticleMass (DynamicAttribute *dynParticleMass)
 
DynamicAttributegetDynVelocity (void) const
 
void setDynVelocity (DynamicAttribute *dynVelocity)
 
DynamicAttributegetDynDuration (void) const
 
void setDynDuration (DynamicAttribute *dynDuration)
 
void setDynDurationSet (bool durationSet)
 
DynamicAttributegetDynRepeatDelay (void) const
 
void setDynRepeatDelay (DynamicAttribute *dynRepeatDelay)
 
void setDynRepeatDelaySet (bool repeatDelaySet)
 
DynamicAttributegetDynParticleAllDimensions (void) const
 
void setDynParticleAllDimensions (DynamicAttribute *dynParticleAllDimensions)
 
void setDynParticleAllDimensionsSet (bool particleAllDimensionsSet)
 
DynamicAttributegetDynParticleWidth (void) const
 
void setDynParticleWidth (DynamicAttribute *dynParticleWidth)
 
void setDynParticleWidthSet (bool particleWidthSet)
 
DynamicAttributegetDynParticleHeight (void) const
 
void setDynParticleHeight (DynamicAttribute *dynParticleHeight)
 
void setDynParticleHeightSet (bool particleHeightSet)
 
DynamicAttributegetDynParticleDepth (void) const
 
void setDynParticleDepth (DynamicAttribute *dynParticleDepth)
 
void setDynParticleDepthSet (bool particleDepthSet)
 
ParticleType getEmitsType (void) const
 
void setEmitsType (ParticleType emitsType)
 
const StringgetEmitsName (void) const
 
void setEmitsName (const String &emitsName)
 
void setEmissionRateCameraDependency (CameraDependency *cameraDependency)
 
void setEmissionRateCameraDependency (Real squareDistance, bool inc=false)
 
CameraDependencygetEmissionRateCameraDependency (void) const
 
virtual const Vector3getParticleDirection (void)
 
const Vector3getOriginalParticleDirection (void) const
 
const QuaterniongetParticleOrientation (void) const
 
void setParticleOrientation (const Quaternion &orientation)
 
const QuaterniongetParticleOrientationRangeStart (void) const
 
void setParticleOrientationRangeStart (const Quaternion &orientationRangeStart)
 
const QuaterniongetParticleOrientationRangeEnd (void) const
 
void setParticleOrientationRangeEnd (const Quaternion &orientationRangeEnd)
 
virtual void setEnabled (bool enabled)
 
virtual void setParticleDirection (const Vector3 &direction)
 
bool isAutoDirection (void) const
 
void setAutoDirection (bool autoDirection)
 
bool isForceEmission (void) const
 
void setForceEmission (bool forceEmission)
 
virtual void _prepare (ParticleTechnique *particleTechnique)
 
virtual void _unprepare (ParticleTechnique *particleTechnique)
 
virtual void _preProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
virtual void _postProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
virtual void _initForEmission (void)
 
virtual void _initForExpiration (ParticleTechnique *technique, Real timeElapsed)
 
virtual void _initParticlePosition (Particle *particle)
 
virtual void _initParticleForEmission (Particle *particle)
 
virtual void _initParticleDirection (Particle *particle)
 
virtual void _initParticleOrientation (Particle *particle)
 
void _generateAngle (Radian &angle)
 
virtual void _initParticleVelocity (Particle *particle)
 
virtual void _initParticleMass (Particle *particle)
 
virtual void _initParticleColour (Particle *particle)
 
virtual void _initParticleTextureCoords (Particle *particle)
 
Real _initParticleTimeToLive (void)
 
virtual unsigned short _calculateRequestedParticles (Real timeElapsed)
 
void _initParticleDimensions (Particle *particle)
 
void _initTimeBased (void)
 
const Vector3getDerivedPosition (void)
 
virtual void _notifyStart (void)
 
virtual void _notifyStop (void)
 
virtual void _notifyPause (void)
 
virtual void _notifyResume (void)
 
virtual void _notifyRescaled (const Vector3 &scale)
 
virtual void copyAttributesTo (ParticleEmitter *emitter)
 
virtual void copyParentAttributesTo (ParticleEmitter *emitter)
 
const ColourValuegetParticleColour (void) const
 
void setParticleColour (const ColourValue &particleColour)
 
const ColourValuegetParticleColourRangeStart (void) const
 
void setParticleColourRangeStart (const ColourValue &particleColourRangeStart)
 
const ColourValuegetParticleColourRangeEnd (void) const
 
void setParticleColourRangeEnd (const ColourValue &particleColourRangeEnd)
 
const uint16getParticleTextureCoords (void) const
 
void setParticleTextureCoords (const uint16 &particleTextureCoords)
 
const uint16getParticleTextureCoordsRangeStart (void) const
 
void setParticleTextureCoordsRangeStart (const uint16 &particleTextureCoordsRangeStart)
 
const uint16getParticleTextureCoordsRangeEnd (void) const
 
void setParticleTextureCoordsRangeEnd (const uint16 &particleTextureCoordsRangeEnd)
 
bool isKeepLocal (void) const
 
void setKeepLocal (bool keepLocal)
 
bool makeParticleLocal (Particle *particle)
 
void pushEvent (ParticleUniverseEvent &particleUniverseEvent)
 
- Public Member Functions inherited from ParticleUniverse::Particle
 Particle (void)
 
virtual ~Particle (void)
 
bool _isMarkedForEmission (void) const
 
void _setMarkedForEmission (bool markedForEmission)
 
virtual bool isEnabled (void) const
 
void _setOriginalEnabled (bool originalEnabled)
 
bool _getOriginalEnabled (void) const
 
bool isFreezed (void) const
 
void setFreezed (bool freezed)
 
void setEventFlags (uint32 flags)
 
void addEventFlags (uint32 flags)
 
void removeEventFlags (uint32 flags)
 
uint32 getEventFlags (void) const
 
bool hasEventFlags (uint32 flags) const
 
void copyBehaviours (ParticleBehaviourList &behaviours)
 
virtual void _process (ParticleTechnique *technique, Real timeElapsed)
 
ParticleBehaviourgetBehaviour (const String &behaviourType)
 
Real calculateVelocity (void) const
 
virtual void copyAttributesTo (Particle *particle)
 
- Public Member Functions inherited from ParticleUniverse::IAlias
 IAlias (void)
 
virtual ~IAlias (void)
 
const StringgetAliasName (void) const
 
void setAliasName (String aliasName)
 
const AliasType getAliasType (void) const
 
void setAliasType (AliasType aliasType)
 
- Public Member Functions inherited from ParticleUniverse::IElement
 IElement (void)
 
virtual ~IElement (void)
 

Static Public Attributes

static const bool DEFAULT_ENABLED
 
static const Vector3 DEFAULT_POSITION
 
static const bool DEFAULT_KEEP_LOCAL
 
static const Vector3 DEFAULT_DIRECTION
 
static const Quaternion DEFAULT_ORIENTATION
 
static const Quaternion DEFAULT_ORIENTATION_RANGE_START
 
static const Quaternion DEFAULT_ORIENTATION_RANGE_END
 
static const Particle::ParticleType DEFAULT_EMITS
 
static const uint16 DEFAULT_START_TEXTURE_COORDS
 
static const uint16 DEFAULT_END_TEXTURE_COORDS
 
static const uint16 DEFAULT_TEXTURE_COORDS
 
static const ColourValue DEFAULT_START_COLOUR_RANGE
 
static const ColourValue DEFAULT_END_COLOUR_RANGE
 
static const ColourValue DEFAULT_COLOUR
 
static const bool DEFAULT_AUTO_DIRECTION
 
static const bool DEFAULT_FORCE_EMISSION
 
static const Real DEFAULT_EMISSION_RATE
 
static const Real DEFAULT_TIME_TO_LIVE
 
static const Real DEFAULT_MASS
 
static const Real DEFAULT_VELOCITY
 
static const Real DEFAULT_DURATION
 
static const Real DEFAULT_REPEAT_DELAY
 
static const Real DEFAULT_ANGLE
 
static const Real DEFAULT_DIMENSIONS
 
static const Real DEFAULT_WIDTH
 
static const Real DEFAULT_HEIGHT
 
static const Real DEFAULT_DEPTH
 
- Static Public Attributes inherited from ParticleUniverse::Particle
static Real DEFAULT_TTL
 
static Real DEFAULT_MASS
 

Protected Member Functions

void _pushEmitterEvent (EventType eventType)
 

Protected Attributes

ParticleTechniquemParentTechnique
 
Vector3 _mEmitterScale
 
String mEmitterType
 
String mName
 
Vector3 mParticleDirection
 
Vector3 mOriginalParticleDirection
 
Quaternion mParticleOrientation
 
Quaternion mParticleOrientationRangeStart
 
Quaternion mParticleOrientationRangeEnd
 
bool mParticleOrientationRangeSet
 
DynamicAttributemDynAngle
 
DynamicAttributemDynEmissionRate
 
ParticleType mEmitsType
 
String mEmitsName
 
DynamicAttributemDynTotalTimeToLive
 
DynamicAttributemDynParticleMass
 
DynamicAttributemDynVelocity
 
DynamicAttributemDynDuration
 
DynamicAttributemDynRepeatDelay
 
DynamicAttributemDynParticleAllDimensions
 
bool mDynParticleAllDimensionsSet
 
DynamicAttributemDynParticleWidth
 
bool mDynParticleWidthSet
 
DynamicAttributemDynParticleHeight
 
bool mDynParticleHeightSet
 
DynamicAttributemDynParticleDepth
 
bool mDynParticleDepthSet
 
Vector3 mUpVector
 
Real mRemainder
 
DynamicAttributeFactory mDynamicAttributeFactory
 
DynamicAttributeHelper mDynamicAttributeHelper
 
Real mDurationRemain
 
bool mDynDurationSet
 
Real mRepeatDelayRemain
 
bool mDynRepeatDelaySet
 
CameraDependencymEmissionRateCameraDependency
 
CameraDependencyFactory mCameraDependencyFactory
 
bool mAutoDirection
 
bool mForceEmission
 
bool mOriginalForceEmission
 
bool mForceEmissionExecuted
 
bool mOriginalForceEmissionExecuted
 
ColourValue mParticleColour
 
ColourValue mParticleColourRangeStart
 
ColourValue mParticleColourRangeEnd
 
bool mParticleColourRangeSet
 
bool mKeepLocal
 
uint16 mParticleTextureCoords
 
uint16 mParticleTextureCoordsRangeStart
 
uint16 mParticleTextureCoordsRangeEnd
 
bool mParticleTextureCoordsRangeSet
 
- Protected Attributes inherited from ParticleUniverse::Particle
uint32 mEventFlags
 
bool mMarkedForEmission
 
bool mEnabled
 
bool mFreezed
 
bool mOriginalEnabled
 
bool mOriginalEnabledSet
 
Vector3 mDerivedPosition
 
ParticleBehaviourList mBehaviours
 
- Protected Attributes inherited from ParticleUniverse::IAlias
String mAliasName
 
AliasType mAliasType
 

Additional Inherited Members

- Public Types inherited from ParticleUniverse::Particle
enum  ParticleType {
  PT_VISUAL, PT_TECHNIQUE, PT_EMITTER, PT_AFFECTOR,
  PT_SYSTEM
}
 
enum  ReservedParticleEventFlags { PEF_EXPIRED = 1<<0, PEF_EMITTED = 1<<1, PEF_COLLIDED = 1<<2 }
 
typedef vector< ParticleBehaviour * > ParticleBehaviourList
 
typedef ParticleBehaviourList::const_iterator ParticleBehaviourIterator
 
- Public Types inherited from ParticleUniverse::IAlias
enum  AliasType {
  AT_UNDEFINED, AT_TECHNIQUE, AT_RENDERER, AT_EMITTER,
  AT_AFFECTOR, AT_OBSERVER, AT_EXTERN, AT_HANDLER,
  AT_BEHAVIOUR
}
 
- Public Attributes inherited from ParticleUniverse::Particle
ParticleEmitterparentEmitter
 
Vector3 position
 
Vector3 direction
 
Real mass
 
Real timeToLive
 
Real totalTimeToLive
 
Real timeFraction
 
ParticleType particleType
 
Any mUserDefinedObject
 
PhysicsActorphysicsActor
 
IVisualDatavisualData
 
Vector3 originalPosition
 
Vector3 originalDirection
 
Real originalVelocity
 
Real originalDirectionLength
 
Real originalScaledDirectionLength
 
Vector3 latestPosition
 

Detailed Description

Abstract class defining the interface to be implemented by particle emitters.

Remarks
Subclasses of ParticleEmitters are responsible of spawning the particles of a particle technique. This class defines the interface, and provides a few implementations of some basic functions.

Constructor & Destructor Documentation

ParticleUniverse::ParticleEmitter::ParticleEmitter ( void  )
virtual ParticleUniverse::ParticleEmitter::~ParticleEmitter ( void  )
virtual

Member Function Documentation

virtual unsigned short ParticleUniverse::ParticleEmitter::_calculateRequestedParticles ( Real  timeElapsed)
virtual

Calculate the number of particles that the emitter wants to emit.

Reimplemented in ParticleUniverse::MeshSurfaceEmitter, ParticleUniverse::VertexEmitter, ParticleUniverse::PositionEmitter, and ParticleUniverse::LineEmitter.

void ParticleUniverse::ParticleEmitter::_generateAngle ( Radian angle)

Internal method for generating the angle.

virtual void ParticleUniverse::ParticleEmitter::_initForEmission ( void  )
virtual

Perform initialising activities as soon as the emitter is emitted.

Reimplemented from ParticleUniverse::Particle.

virtual void ParticleUniverse::ParticleEmitter::_initForExpiration ( ParticleTechnique technique,
Real  timeElapsed 
)
virtual

Initialise the ParticleEmitter before it is expired itself.

Reimplemented from ParticleUniverse::Particle.

virtual void ParticleUniverse::ParticleEmitter::_initParticleColour ( Particle particle)
virtual

Internal method for generating the colour of a particle.

void ParticleUniverse::ParticleEmitter::_initParticleDimensions ( Particle particle)
inline

Internal method for generating particles' own dimensions.

Remarks
Particles' own dimensions will only be set if the mDynParticleAllDimensions or the mDynParticleWidth, mDynParticleHeight and/or mDynParticleDepth have been defined in the emitter.
Parameters
particlePointer to a particle
virtual void ParticleUniverse::ParticleEmitter::_initParticleDirection ( Particle particle)
virtual
virtual void ParticleUniverse::ParticleEmitter::_initParticleForEmission ( Particle particle)
virtual

Todo

virtual void ParticleUniverse::ParticleEmitter::_initParticleMass ( Particle particle)
virtual

Internal method for generating the mass of a particle.

virtual void ParticleUniverse::ParticleEmitter::_initParticleOrientation ( Particle particle)
virtual

Internal method for generating the particle orientation.

virtual void ParticleUniverse::ParticleEmitter::_initParticleTextureCoords ( Particle particle)
virtual

Internal method for setting the texture coords of a particle.

Real ParticleUniverse::ParticleEmitter::_initParticleTimeToLive ( void  )
inline

Internal method for generating the time to live of a particle.

virtual void ParticleUniverse::ParticleEmitter::_initParticleVelocity ( Particle particle)
virtual

Internal method for generating the particle velocity.

Parameters
dVectorReference to vector direction * velocity
void ParticleUniverse::ParticleEmitter::_initTimeBased ( void  )
inline

Initialise some attributes that are time-based.

virtual void ParticleUniverse::ParticleEmitter::_notifyPause ( void  )
inlinevirtual

Perform activities when a ParticleEmitter is paused.

virtual void ParticleUniverse::ParticleEmitter::_notifyRescaled ( const Vector3 scale)
virtual

Notify that the Particle System is rescaled.

Reimplemented in ParticleUniverse::LineEmitter.

virtual void ParticleUniverse::ParticleEmitter::_notifyResume ( void  )
inlinevirtual

Perform activities when a ParticleEmitter is resumed.

virtual void ParticleUniverse::ParticleEmitter::_notifyStart ( void  )
virtual
virtual void ParticleUniverse::ParticleEmitter::_notifyStop ( void  )
virtual

Perform activities when a ParticleEmitter is stopped.

virtual void ParticleUniverse::ParticleEmitter::_postProcessParticles ( ParticleTechnique technique,
Real  timeElapsed 
)
virtual

Perform activities after the individual particles are processed.

virtual void ParticleUniverse::ParticleEmitter::_prepare ( ParticleTechnique particleTechnique)
inlinevirtual

Perform initialisation actions.

Reimplemented in ParticleUniverse::MeshSurfaceEmitter, and ParticleUniverse::SlaveEmitter.

virtual void ParticleUniverse::ParticleEmitter::_preProcessParticles ( ParticleTechnique technique,
Real  timeElapsed 
)
virtual

Perform activities before the individual particles are processed.

Reimplemented in ParticleUniverse::VertexEmitter.

void ParticleUniverse::ParticleEmitter::_pushEmitterEvent ( EventType  eventType)
protected

Convenient function to generate events.

virtual void ParticleUniverse::ParticleEmitter::_unprepare ( ParticleTechnique particleTechnique)
inlinevirtual

Reverse initialisation actions.

Reimplemented in ParticleUniverse::MeshSurfaceEmitter, and ParticleUniverse::SlaveEmitter.

virtual void ParticleUniverse::ParticleEmitter::copyParentAttributesTo ( ParticleEmitter emitter)
virtual

Copy parent attributes to another emitter.

const Vector3& ParticleUniverse::ParticleEmitter::getDerivedPosition ( void  )

Calculate the derived position of the emitter.

Remarks
Note, that in script, the position is set into localspace, while if the emitter is emitted, its position is automatically transformed . This function always returns the transformed (derived) position.
DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynAngle ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynDuration ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynEmissionRate ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynParticleAllDimensions ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynParticleDepth ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynParticleHeight ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynParticleMass ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynParticleWidth ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynRepeatDelay ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynTotalTimeToLive ( void  ) const
inline

Todo

DynamicAttribute* ParticleUniverse::ParticleEmitter::getDynVelocity ( void  ) const
inline

Todo

CameraDependency* ParticleUniverse::ParticleEmitter::getEmissionRateCameraDependency ( void  ) const

Todo

const String& ParticleUniverse::ParticleEmitter::getEmitsName ( void  ) const
inline

Todo

ParticleType ParticleUniverse::ParticleEmitter::getEmitsType ( void  ) const
inline

Todo

const String& ParticleUniverse::ParticleEmitter::getEmitterType ( void  ) const
inline

Todo

const String& ParticleUniverse::ParticleEmitter::getName ( void  ) const
inline

Todo

const Vector3& ParticleUniverse::ParticleEmitter::getOriginalParticleDirection ( void  ) const

Returns the originally set particle direction. This value is not affected by affectors, angle, etc.

ParticleTechnique* ParticleUniverse::ParticleEmitter::getParentTechnique ( void  ) const
inline

Todo

const ColourValue& ParticleUniverse::ParticleEmitter::getParticleColour ( void  ) const

Get the colour of a particle that will be emitted.

const ColourValue& ParticleUniverse::ParticleEmitter::getParticleColourRangeEnd ( void  ) const

Get the colour range end of an emitted particle.

const ColourValue& ParticleUniverse::ParticleEmitter::getParticleColourRangeStart ( void  ) const

Get the colour range start of an emitted particle.

virtual const Vector3& ParticleUniverse::ParticleEmitter::getParticleDirection ( void  )
virtual

Returns the base direction of the particle that is going to be emitted.

const Quaternion& ParticleUniverse::ParticleEmitter::getParticleOrientation ( void  ) const

Returns the base orientation of the particle that is going to be emitted.

const Quaternion& ParticleUniverse::ParticleEmitter::getParticleOrientationRangeEnd ( void  ) const

Returns the end orientation of the particle that is going to be emitted.

Remarks
The orientation is generated random between mParticleOrientationRangeStart and mParticleOrientationRangeEnd.
const Quaternion& ParticleUniverse::ParticleEmitter::getParticleOrientationRangeStart ( void  ) const

Returns the start orientation of the particle that is going to be emitted.

Remarks
The orientation is generated random between mParticleOrientationRangeStart and mParticleOrientationRangeEnd.
const uint16& ParticleUniverse::ParticleEmitter::getParticleTextureCoords ( void  ) const

Get the texture coords of an emitted particle.

const uint16& ParticleUniverse::ParticleEmitter::getParticleTextureCoordsRangeEnd ( void  ) const

Get the texture coords range end of an emitted particle.

const uint16& ParticleUniverse::ParticleEmitter::getParticleTextureCoordsRangeStart ( void  ) const

Get the texture coords range start of an emitted particle.

bool ParticleUniverse::ParticleEmitter::isAutoDirection ( void  ) const

Todo

bool ParticleUniverse::ParticleEmitter::isForceEmission ( void  ) const

Todo

bool ParticleUniverse::ParticleEmitter::isKeepLocal ( void  ) const

Todo

bool ParticleUniverse::ParticleEmitter::makeParticleLocal ( Particle particle)

Transforms the particle position in a local position relative to the emitter

void ParticleUniverse::ParticleEmitter::pushEvent ( ParticleUniverseEvent particleUniverseEvent)

Forwards an event to the parent technique.

void ParticleUniverse::ParticleEmitter::setAutoDirection ( bool  autoDirection)

Todo

void ParticleUniverse::ParticleEmitter::setDynAngle ( DynamicAttribute dynAngle)
void ParticleUniverse::ParticleEmitter::setDynDuration ( DynamicAttribute dynDuration)
void ParticleUniverse::ParticleEmitter::setDynDurationSet ( bool  durationSet)
void ParticleUniverse::ParticleEmitter::setDynEmissionRate ( DynamicAttribute dynEmissionRate)
void ParticleUniverse::ParticleEmitter::setDynParticleAllDimensions ( DynamicAttribute dynParticleAllDimensions)
void ParticleUniverse::ParticleEmitter::setDynParticleAllDimensionsSet ( bool  particleAllDimensionsSet)
void ParticleUniverse::ParticleEmitter::setDynParticleDepth ( DynamicAttribute dynParticleDepth)
void ParticleUniverse::ParticleEmitter::setDynParticleDepthSet ( bool  particleDepthSet)
void ParticleUniverse::ParticleEmitter::setDynParticleHeight ( DynamicAttribute dynParticleHeight)
void ParticleUniverse::ParticleEmitter::setDynParticleHeightSet ( bool  particleHeightSet)
void ParticleUniverse::ParticleEmitter::setDynParticleMass ( DynamicAttribute dynParticleMass)
void ParticleUniverse::ParticleEmitter::setDynParticleWidth ( DynamicAttribute dynParticleWidth)
void ParticleUniverse::ParticleEmitter::setDynParticleWidthSet ( bool  particleWidthSet)
void ParticleUniverse::ParticleEmitter::setDynRepeatDelay ( DynamicAttribute dynRepeatDelay)
void ParticleUniverse::ParticleEmitter::setDynRepeatDelaySet ( bool  repeatDelaySet)
void ParticleUniverse::ParticleEmitter::setDynTotalTimeToLive ( DynamicAttribute dynTotalTimeToLive)
void ParticleUniverse::ParticleEmitter::setDynVelocity ( DynamicAttribute dynVelocity)
void ParticleUniverse::ParticleEmitter::setEmissionRateCameraDependency ( CameraDependency cameraDependency)

Set the distance-value and inc. indication to recalculate the emission rate.

void ParticleUniverse::ParticleEmitter::setEmissionRateCameraDependency ( Real  squareDistance,
bool  inc = false 
)
void ParticleUniverse::ParticleEmitter::setEmitsName ( const String emitsName)
void ParticleUniverse::ParticleEmitter::setEmitsType ( ParticleType  emitsType)
inline
void ParticleUniverse::ParticleEmitter::setEmitterType ( const String emitterType)
inline
virtual void ParticleUniverse::ParticleEmitter::setEnabled ( bool  enabled)
virtual

Enables or disables the emitter.

Reimplemented from ParticleUniverse::Particle.

void ParticleUniverse::ParticleEmitter::setForceEmission ( bool  forceEmission)

Todo

void ParticleUniverse::ParticleEmitter::setKeepLocal ( bool  keepLocal)

If this attribute is set to 'true', the particles are emitted relative to the emitter

void ParticleUniverse::ParticleEmitter::setName ( const String name)
inline
void ParticleUniverse::ParticleEmitter::setParentTechnique ( ParticleTechnique parentTechnique)
void ParticleUniverse::ParticleEmitter::setParticleColour ( const ColourValue particleColour)

Set the colour of an emitted particle.

void ParticleUniverse::ParticleEmitter::setParticleColourRangeEnd ( const ColourValue particleColourRangeEnd)

Set the colour range end of an emitted particle. This is the upper value used to generate a random colour.

void ParticleUniverse::ParticleEmitter::setParticleColourRangeStart ( const ColourValue particleColourRangeStart)

Set the colour range start of an emitted particle. This is the lower value used to generate a random colour.

virtual void ParticleUniverse::ParticleEmitter::setParticleDirection ( const Vector3 direction)
virtual

Sets the direction of the particle that the emitter is emitting.

Remarks
Don't confuse this with the emitters own direction.
Parameters
dirThe base direction of emitted particles.
void ParticleUniverse::ParticleEmitter::setParticleOrientation ( const Quaternion orientation)

Set the orientation of the particle.

void ParticleUniverse::ParticleEmitter::setParticleOrientationRangeEnd ( const Quaternion orientationRangeEnd)

Set end orientation of the particle that is going to be emitted.

Remarks
The orientation is generated random between mParticleOrientationRangeStart and mParticleOrientationRangeEnd.
void ParticleUniverse::ParticleEmitter::setParticleOrientationRangeStart ( const Quaternion orientationRangeStart)

Set start orientation of the particle that is going to be emitted.

Remarks
The orientation is generated random between mParticleOrientationRangeStart and mParticleOrientationRangeEnd.
void ParticleUniverse::ParticleEmitter::setParticleTextureCoords ( const uint16 particleTextureCoords)

Set the texture coords of an emitted particle.

void ParticleUniverse::ParticleEmitter::setParticleTextureCoordsRangeEnd ( const uint16 particleTextureCoordsRangeEnd)

Set the texture coords range end of an emitted particle. This is the upper value used to set a random texture coords.

void ParticleUniverse::ParticleEmitter::setParticleTextureCoordsRangeStart ( const uint16 particleTextureCoordsRangeStart)

Set the texture coords range start of an emitted particle. This is the lower value used to set a random texture coords.

Member Data Documentation

Vector3 ParticleUniverse::ParticleEmitter::_mEmitterScale
protected

Although the scale is on a Particle System level, the emitter can also be scaled.

const Real ParticleUniverse::ParticleEmitter::DEFAULT_ANGLE
static
const bool ParticleUniverse::ParticleEmitter::DEFAULT_AUTO_DIRECTION
static
const ColourValue ParticleUniverse::ParticleEmitter::DEFAULT_COLOUR
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_DEPTH
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_DIMENSIONS
static
const Vector3 ParticleUniverse::ParticleEmitter::DEFAULT_DIRECTION
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_DURATION
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_EMISSION_RATE
static
const Particle::ParticleType ParticleUniverse::ParticleEmitter::DEFAULT_EMITS
static
const bool ParticleUniverse::ParticleEmitter::DEFAULT_ENABLED
static
const ColourValue ParticleUniverse::ParticleEmitter::DEFAULT_END_COLOUR_RANGE
static
const uint16 ParticleUniverse::ParticleEmitter::DEFAULT_END_TEXTURE_COORDS
static
const bool ParticleUniverse::ParticleEmitter::DEFAULT_FORCE_EMISSION
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_HEIGHT
static
const bool ParticleUniverse::ParticleEmitter::DEFAULT_KEEP_LOCAL
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_MASS
static
const Quaternion ParticleUniverse::ParticleEmitter::DEFAULT_ORIENTATION
static
const Quaternion ParticleUniverse::ParticleEmitter::DEFAULT_ORIENTATION_RANGE_END
static
const Quaternion ParticleUniverse::ParticleEmitter::DEFAULT_ORIENTATION_RANGE_START
static
const Vector3 ParticleUniverse::ParticleEmitter::DEFAULT_POSITION
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_REPEAT_DELAY
static
const ColourValue ParticleUniverse::ParticleEmitter::DEFAULT_START_COLOUR_RANGE
static
const uint16 ParticleUniverse::ParticleEmitter::DEFAULT_START_TEXTURE_COORDS
static
const uint16 ParticleUniverse::ParticleEmitter::DEFAULT_TEXTURE_COORDS
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_TIME_TO_LIVE
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_VELOCITY
static
const Real ParticleUniverse::ParticleEmitter::DEFAULT_WIDTH
static
bool ParticleUniverse::ParticleEmitter::mAutoDirection
protected

Auto direction means that the direction of a particle is not determined by the direction vector that has been set, but the direction vector is generated based on the shape of the emitter. In most cases this means that the particle direction is perpendicular on the shape of the emitter.

Remarks
This attribute has only a meaning for certain emitters.
CameraDependencyFactory ParticleUniverse::ParticleEmitter::mCameraDependencyFactory
protected

Factory to create a CameraDependency.

Real ParticleUniverse::ParticleEmitter::mDurationRemain
protected

Duration remainder.

DynamicAttributeFactory ParticleUniverse::ParticleEmitter::mDynamicAttributeFactory
protected

Helper factory

DynamicAttributeHelper ParticleUniverse::ParticleEmitter::mDynamicAttributeHelper
protected

Helper class

DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynAngle
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynDuration
protected

Dynamic attribute used to define the duration of the emitter.

bool ParticleUniverse::ParticleEmitter::mDynDurationSet
protected

Indication to determine whether duration is set.

DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynEmissionRate
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynParticleAllDimensions
protected

Dynamic attribute used to define the (own) dimensions of a particle.

Remarks
In the Particle Technique it is possible to set the default dimensions for all particles, but it is also possible to set the dimensions per particle. Note, that this only applies to visual particles, of course. This attribute is used to x, y and z dimensions with the value.
bool ParticleUniverse::ParticleEmitter::mDynParticleAllDimensionsSet
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynParticleDepth
protected

Dynamic attribute used to define the (own) depth of a particle.

Remarks
In the Particle Technique it is possible to set the default depth for all particles, but it is also possible to set the depth per particle. Note, that this only applies to visual particles, of course.
bool ParticleUniverse::ParticleEmitter::mDynParticleDepthSet
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynParticleHeight
protected

Dynamic attribute used to define the (own) height of a particle.

Remarks
In the Particle Technique it is possible to set the default height for all particles, but it is also possible to set the height per particle. Note, that this only applies to visual particles, of course.
bool ParticleUniverse::ParticleEmitter::mDynParticleHeightSet
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynParticleMass
protected

Dynamic attribute used to generate the mass of a particle.

DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynParticleWidth
protected

Dynamic attribute used to define the (own) width of a particle.

Remarks
In the Particle Technique it is possible to set the default width for all particles, but it is also possible to set the width per particle. Note, that this only applies to visual particles, of course.
bool ParticleUniverse::ParticleEmitter::mDynParticleWidthSet
protected
DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynRepeatDelay
protected

Dynamic attribute used to define the repeat/delay of the emitter.

bool ParticleUniverse::ParticleEmitter::mDynRepeatDelaySet
protected

Indication to determine whether repeat/delay is set.

DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynTotalTimeToLive
protected

Dynamic attribute used to generate the total time to live.

DynamicAttribute* ParticleUniverse::ParticleEmitter::mDynVelocity
protected

Dynamic attribute used to generate the velocity of a particle.

CameraDependency* ParticleUniverse::ParticleEmitter::mEmissionRateCameraDependency
protected

Distance value that causes a decrease (or increase if needed) of the particle emission rate.

Remarks
This is used to decrease the emission rate if the camera is further away.
Note, that the distance concerns the squared distance between the camera and the ParticleTechnique and NOT between the camera and the ParticleEmitter position. This means that it will not be accurate if the emitter is emitted itself. The reason is to reduce the number of calculations.
This should be typically used for a 1 camera setup, since using 2 camera´s would result in wrong calculations (mixed values).
String ParticleUniverse::ParticleEmitter::mEmitsName
protected
ParticleType ParticleUniverse::ParticleEmitter::mEmitsType
protected
String ParticleUniverse::ParticleEmitter::mEmitterType
protected
bool ParticleUniverse::ParticleEmitter::mForceEmission
protected

In normal cases, emission is regulated by time. This prevents that too much particles are emitted at once, which causes a drop in the framerate. In some cases you just want to emit all particles immediately without any delay. Setting the 'mForceEmission' to true enables this. In that case, the emission rate defines the number of particles that are emitted immediately. If the emission rate is 100, the emitter emits 100 particles at once and then disables.

bool ParticleUniverse::ParticleEmitter::mForceEmissionExecuted
protected

If mForceEmission has been set to true and if all particles are emitted, the mForceEmissionExecuted is also set to true, preventing any further 'forced emission'.

bool ParticleUniverse::ParticleEmitter::mKeepLocal
protected

Determines whether particle positions should be kept local in relation to the emitter.

String ParticleUniverse::ParticleEmitter::mName
protected
bool ParticleUniverse::ParticleEmitter::mOriginalForceEmission
protected

Original value, used to set it back.

bool ParticleUniverse::ParticleEmitter::mOriginalForceEmissionExecuted
protected

Original value, used to set it back.

Vector3 ParticleUniverse::ParticleEmitter::mOriginalParticleDirection
protected

The original direction of the emitted particle

Remarks
Don't confuse this with the particles' originalDirection.
ParticleTechnique* ParticleUniverse::ParticleEmitter::mParentTechnique
protected

Technique to which this emitter belongs.

ColourValue ParticleUniverse::ParticleEmitter::mParticleColour
protected

Colour that is assigned to an emitted particle.

ColourValue ParticleUniverse::ParticleEmitter::mParticleColourRangeEnd
protected

Used to randomize the colour of an emitted particle.

bool ParticleUniverse::ParticleEmitter::mParticleColourRangeSet
protected

Used to determine whether the colour range has been set.

ColourValue ParticleUniverse::ParticleEmitter::mParticleColourRangeStart
protected

Used to randomize the colour of an emitted particle.

Vector3 ParticleUniverse::ParticleEmitter::mParticleDirection
protected

Direction (and speed) of the emitted particle

Remarks
Don't confuse the particle direction with the direction of the emitter itself. The particleDirection is the direction of an emitted particle.
Quaternion ParticleUniverse::ParticleEmitter::mParticleOrientation
protected

Orientation of the particle as soon as it is emitted.

Remarks
This is only visible if a renderer is used that renders 3D particles.
Quaternion ParticleUniverse::ParticleEmitter::mParticleOrientationRangeEnd
protected
bool ParticleUniverse::ParticleEmitter::mParticleOrientationRangeSet
protected
Quaternion ParticleUniverse::ParticleEmitter::mParticleOrientationRangeStart
protected

If set, the range generates a random orientation between start and end.

uint16 ParticleUniverse::ParticleEmitter::mParticleTextureCoords
protected

Texture coords that is assigned to an emitted particle (only works if the renderer uses it)

uint16 ParticleUniverse::ParticleEmitter::mParticleTextureCoordsRangeEnd
protected

Used to randomize the texture coords of an emitted particle.

bool ParticleUniverse::ParticleEmitter::mParticleTextureCoordsRangeSet
protected

Used to determine whether the texture coords range has been set.

uint16 ParticleUniverse::ParticleEmitter::mParticleTextureCoordsRangeStart
protected

Used to randomize the texture coords of an emitted particle.

Real ParticleUniverse::ParticleEmitter::mRemainder
protected

Particles that are left to be emitted from the previous time.

Real ParticleUniverse::ParticleEmitter::mRepeatDelayRemain
protected

Repeat/delay remainder.

Vector3 ParticleUniverse::ParticleEmitter::mUpVector
protected

Notional up vector, just used to speed up generation of variant directions.


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