Particle Universe  1.2
ParticleUniverse::PositionEmitter Class Reference

#include <ParticleUniversePositionEmitter.h>

Inheritance diagram for ParticleUniverse::PositionEmitter:

Public Member Functions

 PositionEmitter (void)
 
virtual ~PositionEmitter (void)
 
bool isRandomized (void) const
 
void setRandomized (bool randomized)
 
const vector< Vector3 > & getPositions (void) const
 
void addPosition (const Vector3 &position)
 
void removeAllPositions (void)
 
void _notifyStart (void)
 
virtual unsigned short _calculateRequestedParticles (Real timeElapsed)
 
virtual void _initParticlePosition (Particle *particle)
 
virtual void copyAttributesTo (ParticleEmitter *emitter)
 
- Public Member Functions inherited from ParticleUniverse::ParticleEmitter
 ParticleEmitter (void)
 
virtual ~ParticleEmitter (void)
 
ParticleTechnique * getParentTechnique (void) const
 
void setParentTechnique (ParticleTechnique *parentTechnique)
 
const String & getEmitterType (void) const
 
void setEmitterType (const String &emitterType)
 
const String & getName (void) const
 
void setName (const String &name)
 
DynamicAttribute * getDynAngle (void) const
 
void setDynAngle (DynamicAttribute *dynAngle)
 
DynamicAttribute * getDynEmissionRate (void) const
 
void setDynEmissionRate (DynamicAttribute *dynEmissionRate)
 
DynamicAttribute * getDynTotalTimeToLive (void) const
 
void setDynTotalTimeToLive (DynamicAttribute *dynTotalTimeToLive)
 
DynamicAttribute * getDynParticleMass (void) const
 
void setDynParticleMass (DynamicAttribute *dynParticleMass)
 
DynamicAttribute * getDynVelocity (void) const
 
void setDynVelocity (DynamicAttribute *dynVelocity)
 
DynamicAttribute * getDynDuration (void) const
 
void setDynDuration (DynamicAttribute *dynDuration)
 
void setDynDurationSet (bool durationSet)
 
DynamicAttribute * getDynRepeatDelay (void) const
 
void setDynRepeatDelay (DynamicAttribute *dynRepeatDelay)
 
void setDynRepeatDelaySet (bool repeatDelaySet)
 
DynamicAttribute * getDynParticleAllDimensions (void) const
 
void setDynParticleAllDimensions (DynamicAttribute *dynParticleAllDimensions)
 
void setDynParticleAllDimensionsSet (bool particleAllDimensionsSet)
 
DynamicAttribute * getDynParticleWidth (void) const
 
void setDynParticleWidth (DynamicAttribute *dynParticleWidth)
 
void setDynParticleWidthSet (bool particleWidthSet)
 
DynamicAttribute * getDynParticleHeight (void) const
 
void setDynParticleHeight (DynamicAttribute *dynParticleHeight)
 
void setDynParticleHeightSet (bool particleHeightSet)
 
DynamicAttribute * getDynParticleDepth (void) const
 
void setDynParticleDepth (DynamicAttribute *dynParticleDepth)
 
void setDynParticleDepthSet (bool particleDepthSet)
 
ParticleType getEmitsType (void) const
 
void setEmitsType (ParticleType emitsType)
 
const String & getEmitsName (void) const
 
void setEmitsName (const String &emitsName)
 
void setEmissionRateCameraDependency (CameraDependency *cameraDependency)
 
void setEmissionRateCameraDependency (Real squareDistance, bool inc=false)
 
CameraDependency * getEmissionRateCameraDependency (void) const
 
virtual const Vector3 & getParticleDirection (void)
 
const Vector3 & getOriginalParticleDirection (void) const
 
const Quaternion & getParticleOrientation (void) const
 
void setParticleOrientation (const Quaternion &orientation)
 
const Quaternion & getParticleOrientationRangeStart (void) const
 
void setParticleOrientationRangeStart (const Quaternion &orientationRangeStart)
 
const Quaternion & getParticleOrientationRangeEnd (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 _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)
 
void _initParticleDimensions (Particle *particle)
 
void _initTimeBased (void)
 
const Vector3 & getDerivedPosition (void)
 
virtual void _notifyStop (void)
 
virtual void _notifyPause (void)
 
virtual void _notifyResume (void)
 
virtual void _notifyRescaled (const Vector3 &scale)
 
virtual void copyParentAttributesTo (ParticleEmitter *emitter)
 
const ColourValue & getParticleColour (void) const
 
void setParticleColour (const ColourValue &particleColour)
 
const ColourValue & getParticleColourRangeStart (void) const
 
void setParticleColourRangeStart (const ColourValue &particleColourRangeStart)
 
const ColourValue & getParticleColourRangeEnd (void) const
 
void setParticleColourRangeEnd (const ColourValue &particleColourRangeEnd)
 
const uint16 & getParticleTextureCoords (void) const
 
void setParticleTextureCoords (const uint16 &particleTextureCoords)
 
const uint16 & getParticleTextureCoordsRangeStart (void) const
 
void setParticleTextureCoordsRangeStart (const uint16 &particleTextureCoordsRangeStart)
 
const uint16 & getParticleTextureCoordsRangeEnd (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)
 
ParticleBehaviour * getBehaviour (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 String & getAliasName (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_RANDOMIZE
 
- Static Public Attributes inherited from ParticleUniverse::ParticleEmitter
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 Attributes

vector< Vector3 > mPositionList
 
bool mRandomized
 
size_t mIndex
 
- Protected Attributes inherited from ParticleUniverse::ParticleEmitter
ParticleTechnique * mParentTechnique
 
Vector3 _mEmitterScale
 
String mEmitterType
 
String mName
 
Vector3 mParticleDirection
 
Vector3 mOriginalParticleDirection
 
Quaternion mParticleOrientation
 
Quaternion mParticleOrientationRangeStart
 
Quaternion mParticleOrientationRangeEnd
 
bool mParticleOrientationRangeSet
 
DynamicAttribute * mDynAngle
 
DynamicAttribute * mDynEmissionRate
 
ParticleType mEmitsType
 
String mEmitsName
 
DynamicAttribute * mDynTotalTimeToLive
 
DynamicAttribute * mDynParticleMass
 
DynamicAttribute * mDynVelocity
 
DynamicAttribute * mDynDuration
 
DynamicAttribute * mDynRepeatDelay
 
DynamicAttribute * mDynParticleAllDimensions
 
bool mDynParticleAllDimensionsSet
 
DynamicAttribute * mDynParticleWidth
 
bool mDynParticleWidthSet
 
DynamicAttribute * mDynParticleHeight
 
bool mDynParticleHeightSet
 
DynamicAttribute * mDynParticleDepth
 
bool mDynParticleDepthSet
 
Vector3 mUpVector
 
Real mRemainder
 
DynamicAttributeFactory mDynamicAttributeFactory
 
DynamicAttributeHelper mDynamicAttributeHelper
 
Real mDurationRemain
 
bool mDynDurationSet
 
Real mRepeatDelayRemain
 
bool mDynRepeatDelaySet
 
CameraDependency * mEmissionRateCameraDependency
 
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
ParticleEmitter * parentEmitter
 
Vector3 position
 
Vector3 direction
 
Real mass
 
Real timeToLive
 
Real totalTimeToLive
 
Real timeFraction
 
ParticleType particleType
 
Any mUserDefinedObject
 
PhysicsActor * physicsActor
 
IVisualData * visualData
 
Vector3 originalPosition
 
Vector3 originalDirection
 
Real originalVelocity
 
Real originalDirectionLength
 
Real originalScaledDirectionLength
 
Vector3 latestPosition
 
- Protected Member Functions inherited from ParticleUniverse::ParticleEmitter
void _pushEmitterEvent (EventType eventType)
 

Detailed Description

The PositionEmitter is an emitter that emits particles from one or more given positions. The PositionEmitter enables building up a predefined structure out of particles. Imaging building up a wall that is made up from stone blocks. The particles are emitted on the positions that are added to this emitter. Adding some physical behaviour to the particles and you have your stone wall that collapses if a force is applied to it.

Constructor & Destructor Documentation

ParticleUniverse::PositionEmitter::PositionEmitter ( void  )
virtual ParticleUniverse::PositionEmitter::~PositionEmitter ( void  )
inlinevirtual

Member Function Documentation

virtual unsigned short ParticleUniverse::PositionEmitter::_calculateRequestedParticles ( Real  timeElapsed)
virtual
virtual void ParticleUniverse::PositionEmitter::_initParticlePosition ( Particle *  particle)
virtual

Generate a particle position based on the added positions.

Reimplemented from ParticleUniverse::ParticleEmitter.

void ParticleUniverse::PositionEmitter::_notifyStart ( void  )
virtual
void ParticleUniverse::PositionEmitter::addPosition ( const Vector3 &  position)

Add a new position to this emitter

virtual void ParticleUniverse::PositionEmitter::copyAttributesTo ( ParticleEmitter *  emitter)
virtual

Copy attributes to another emitter.

Reimplemented from ParticleUniverse::ParticleEmitter.

const vector<Vector3>& ParticleUniverse::PositionEmitter::getPositions ( void  ) const

Returns a list with positions

bool ParticleUniverse::PositionEmitter::isRandomized ( void  ) const
void ParticleUniverse::PositionEmitter::removeAllPositions ( void  )

Remove all positions from this emitter

void ParticleUniverse::PositionEmitter::setRandomized ( bool  randomized)

Member Data Documentation

const bool ParticleUniverse::PositionEmitter::DEFAULT_RANDOMIZE
static
size_t ParticleUniverse::PositionEmitter::mIndex
protected
vector<Vector3> ParticleUniverse::PositionEmitter::mPositionList
protected
bool ParticleUniverse::PositionEmitter::mRandomized
protected

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