Particle Universe  1.2
ParticleUniverse::VortexExtern Class Reference

#include <ParticleUniverseVortexExtern.h>

Inheritance diagram for ParticleUniverse::VortexExtern:

Public Member Functions

 VortexExtern (void)
 
virtual ~VortexExtern (void)
 
virtual void _preProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
virtual void _interface (ParticleTechnique *technique, Particle *particle, Real timeElapsed)
 
virtual void copyAttributesTo (Extern *externObject)
 
- Public Member Functions inherited from ParticleUniverse::Attachable
 Attachable (void)
 
virtual ~Attachable (void)
 
const Real getDistanceThreshold (void) const
 
void setDistanceThreshold (const Real distanceThreshold)
 
void _notifyAttached (Ogre::Node *parent, bool isTagPoint=false)
 
virtual void _notifyCurrentCamera (Camera *cam)
 
const StringgetMovableType (void) const
 
const AxisAlignedBoxgetBoundingBox (void) const
 
virtual Real getBoundingRadius (void) const
 
virtual void _updateRenderQueue (Ogre::RenderQueue *queue)
 
virtual void visitRenderables (Ogre::Renderable::Visitor *visitor, bool debugRenderables=false)
 
virtual void _prepare (ParticleTechnique *technique)
 
virtual void _unprepare (ParticleTechnique *particleTechnique)
 
- Public Member Functions inherited from ParticleUniverse::Extern
 Extern (void)
 
virtual ~Extern (void)
 
const StringgetName (void) const
 
void setName (const String &name)
 
const StringgetExternType (void) const
 
void setExternType (const String &externType)
 
ParticleTechniquegetParentTechnique (void) const
 
void setParentTechnique (ParticleTechnique *parentTechnique)
 
virtual void _notifyRescaled (const Vector3 &scale)
 
virtual void copyParentAttributesTo (Extern *externObject)
 
virtual void _notifyStart (void)
 
virtual void _notifyPause (void)
 
virtual void _notifyResume (void)
 
virtual void _notifyStop (void)
 
virtual void _initParticleForEmission (Particle *particle)
 
virtual void _initParticleForExpiration (Particle *particle)
 
virtual void _firstParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed)
 
virtual void _processParticle (ParticleTechnique *technique, Particle *particle, Real timeElapsed, bool firstParticle)
 
virtual void _postProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
- 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)
 
- Public Member Functions inherited from Ogre::MovableObject
 MovableObject ()
 
 MovableObject (const String &name)
 
virtual ~MovableObject ()
 
MovableObjectFactory_getCreator (void) const
 
LightList_getLightList ()
 
SceneManager_getManager (void) const
 
virtual const Matrix4_getParentNodeFullTransform (void) const
 
virtual void _notifyCreator (MovableObjectFactory *fact)
 
virtual void _notifyManager (SceneManager *man)
 
virtual void _notifyMoved (void)
 
virtual void _releaseManualHardwareResources ()
 
virtual void _restoreManualHardwareResources ()
 
void addQueryFlags (uint32 flags)
 
void addVisibilityFlags (uint32 flags)
 
virtual AnimableValuePtr createAnimableValue (const String &valueName)
 
void detachFromParent (void)
 
const StringVectorgetAnimableValueNames (void) const
 
bool getCastShadows (void) const
 
const AxisAlignedBoxgetDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const
 
EdgeDatagetEdgeList (void)
 
const AxisAlignedBoxgetLightCapBounds (void) const
 
uint32 getLightMask () const
 
ListenergetListener (void) const
 
const StringgetName (void) const
 
NodegetParentNode (void) const
 
SceneNodegetParentSceneNode (void) const
 
Real getPointExtrusionDistance (const Light *l) const
 
uint32 getQueryFlags (void) const
 
bool getReceivesShadows ()
 
Real getRenderingDistance (void) const
 
Real getRenderingMinPixelSize () const
 
uint8 getRenderQueueGroup (void) const
 
ShadowRenderableListIterator getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, size_t *indexBufferUsedSize, bool extrudeVertices, Real extrusionDist, unsigned long flags=0)
 
virtual uint32 getTypeFlags (void) const
 
const AnygetUserAny (void) const
 
UserObjectBindingsgetUserObjectBindings ()
 
const UserObjectBindingsgetUserObjectBindings () const
 
uint32 getVisibilityFlags (void) const
 
bool getVisible (void) const
 
virtual const AxisAlignedBoxgetWorldBoundingBox (bool derive=false) const
 
virtual const SpheregetWorldBoundingSphere (bool derive=false) const
 
bool hasEdgeList (void)
 
bool isAttached (void) const
 
bool isDebugDisplayEnabled (void) const
 
virtual bool isInScene (void) const
 
bool isParentTagPoint () const
 
virtual bool isVisible (void) const
 
const LightListqueryLights (void) const
 
void removeQueryFlags (uint32 flags)
 
void removeVisibilityFlags (uint32 flags)
 
void setCastShadows (bool enabled)
 
void setDebugDisplayEnabled (bool enabled)
 
void setLightMask (uint32 lightMask)
 
void setListener (Listener *listener)
 
void setQueryFlags (uint32 flags)
 
void setRenderingDistance (Real dist)
 
void setRenderingMinPixelSize (Real pixelSize)
 
virtual void setRenderQueueGroup (uint8 queueID)
 
virtual void setRenderQueueGroupAndPriority (uint8 queueID, ushort priority)
 
void setUserAny (const Any &anything)
 
void setVisibilityFlags (uint32 flags)
 
void setVisible (bool visible)
 
- Public Member Functions inherited from Ogre::ShadowCaster
virtual ~ShadowCaster ()
 
- Public Member Functions inherited from Ogre::AnimableObject
 AnimableObject ()
 
virtual ~AnimableObject ()
 
const StringVectorgetAnimableValueNames (void) const
 
- Public Member Functions inherited from ParticleUniverse::VortexAffector
 VortexAffector (void)
 
virtual ~VortexAffector (void)
 
const Vector3getRotationVector (void) const
 
void setRotationVector (const Vector3 &rotationVector)
 
DynamicAttributegetRotationSpeed (void) const
 
void setRotationSpeed (DynamicAttribute *dynRotationSpeed)
 
virtual void copyAttributesTo (ParticleAffector *affector)
 
virtual void _affect (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed)
 
- Public Member Functions inherited from ParticleUniverse::ParticleAffector
 ParticleAffector (void)
 
virtual ~ParticleAffector (void)
 
const AffectSpecialisationgetAffectSpecialisation (void) const
 
void setAffectSpecialisation (const AffectSpecialisation &affectSpecialisation)
 
const StringgetAffectorType (void) const
 
void setAffectorType (const String &affectorType)
 
const StringgetName (void) const
 
void setName (const String &name)
 
ParticleTechniquegetParentTechnique (void) const
 
void setParentTechnique (ParticleTechnique *parentTechnique)
 
virtual void _prepare (ParticleTechnique *particleTechnique)
 
virtual void _unprepare (ParticleTechnique *particleTechnique)
 
virtual void _notifyStart (void)
 
virtual void _notifyStop (void)
 
virtual void _notifyPause (void)
 
virtual void _notifyResume (void)
 
virtual void _notifyRescaled (const Vector3 &scale)
 
virtual void _firstParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed)
 
virtual void _initForEmission (void)
 
virtual void _initForExpiration (ParticleTechnique *technique, Real timeElapsed)
 
virtual void _initParticleForEmission (Particle *particle)
 
void _processParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed, bool firstParticle)
 
virtual void _postProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
void addEmitterToExclude (const String &emitterName)
 
void removeEmitterToExclude (const String &emitterName)
 
void removeAllEmittersToExclude (void)
 
const list< String > & getEmittersToExclude (void) const
 
bool hasEmitterToExclude (const String &emitterName)
 
virtual void copyParentAttributesTo (ParticleAffector *affector)
 
const Vector3getDerivedPosition (void)
 
Real _calculateAffectSpecialisationFactor (const Particle *particle)
 
- 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
 
virtual void setEnabled (bool enabled)
 
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)
 

Additional Inherited Members

- 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 Types inherited from Ogre::MovableObject
typedef vector< ShadowRenderable * >::type ShadowRenderableList
 
typedef VectorIterator< ShadowRenderableListShadowRenderableListIterator
 
- Public Types inherited from Ogre::ShadowCaster
typedef vector< ShadowRenderable * >::type ShadowRenderableList
 
typedef VectorIterator< ShadowRenderableListShadowRenderableListIterator
 
- Public Types inherited from ParticleUniverse::ParticleAffector
enum  AffectSpecialisation { AFSP_DEFAULT, AFSP_TTL_INCREASE, AFSP_TTL_DECREASE }
 
- 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
 
- Static Public Member Functions inherited from Ogre::MovableObject
static void clearShadowRenderableList (ShadowRenderableList &shadowRenderables)
 
static void extrudeVertices (const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist)
 
static uint32 getDefaultQueryFlags ()
 
static uint32 getDefaultVisibilityFlags ()
 
static void setDefaultQueryFlags (uint32 flags)
 
static void setDefaultVisibilityFlags (uint32 flags)
 
- Static Public Member Functions inherited from Ogre::ShadowCaster
static void clearShadowRenderableList (ShadowRenderableList &shadowRenderables)
 
static void extrudeVertices (const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist)
 
- 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
 
- Static Public Attributes inherited from ParticleUniverse::Attachable
static String PU_ATTACHABLE
 
- Static Public Attributes inherited from ParticleUniverse::VortexAffector
static const Vector3 DEFAULT_ROTATION_VECTOR
 
static const Real DEFAULT_ROTATION_SPEED
 
- Static Public Attributes inherited from ParticleUniverse::ParticleAffector
static const bool DEFAULT_ENABLED
 
static const Vector3 DEFAULT_POSITION
 
static const AffectSpecialisation DEFAULT_SPECIALISATION
 
- Static Public Attributes inherited from ParticleUniverse::Particle
static Real DEFAULT_TTL
 
static Real DEFAULT_MASS
 
- Protected Member Functions inherited from ParticleUniverse::VortexAffector
Radian _calculateRotationSpeed (void)
 
- Protected Attributes inherited from ParticleUniverse::Attachable
AxisAlignedBox mAABB
 
Real mBoundingRadius
 
Real mDistanceThreshold
 
bool mDistanceThresholdSet
 
- Protected Attributes inherited from ParticleUniverse::Extern
String mExternType
 
String mName
 
ParticleTechniquemParentTechnique
 
Vector3 _mExternScale
 
- Protected Attributes inherited from ParticleUniverse::IAlias
String mAliasName
 
AliasType mAliasType
 
- Protected Attributes inherited from ParticleUniverse::VortexAffector
Vector3 mRotationVector
 
Quaternion mRotation
 
DynamicAttributemDynRotationSpeed
 
DynamicAttributeHelper mDynamicAttributeHelper
 
DynamicAttributeFactory mDynamicAttributeFactory
 
- Protected Attributes inherited from ParticleUniverse::ParticleAffector
ParticleTechniquemParentTechnique
 
String mAffectorType
 
String mName
 
AffectSpecialisation mAffectSpecialisation
 
list< StringmExcludedEmitters
 
Vector3 _mAffectorScale
 
- Protected Attributes inherited from ParticleUniverse::Particle
uint32 mEventFlags
 
bool mMarkedForEmission
 
bool mEnabled
 
bool mFreezed
 
bool mOriginalEnabled
 
bool mOriginalEnabledSet
 
Vector3 mDerivedPosition
 
ParticleBehaviourList mBehaviours
 

Detailed Description

The VortexExtern is a wrapper of the VortexAffector, adding the functionality of a MovableObject. The VortexExtern can be attached to another SceneNode than the one where the ParticleSystem at which the VortexExtern is registered, is attached. This makes it possible to affect the particles in the Particle System, while both SceneNodes moves different from each other. This approach makes it possible to simulate something like a helicopter (SceneNode to which the VortexExtern is attached) that flies over a certain area and rotates the leaves on the ground (Particle System attached to another SceneNode).

Constructor & Destructor Documentation

ParticleUniverse::VortexExtern::VortexExtern ( void  )
inline
virtual ParticleUniverse::VortexExtern::~VortexExtern ( void  )
inlinevirtual

Member Function Documentation

virtual void ParticleUniverse::VortexExtern::_interface ( ParticleTechnique technique,
Particle particle,
Real  timeElapsed 
)
virtual

Processes a particle.

Reimplemented from ParticleUniverse::Attachable.

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

The _preProcessParticles() function sets the position and mDerivedPosition attributes to the actual world position of the node to which it is attached.

Reimplemented from ParticleUniverse::VortexAffector.

virtual void ParticleUniverse::VortexExtern::copyAttributesTo ( Extern externObject)
virtual

Copy both the Extern and the derived VortexAffector properties.

Reimplemented from ParticleUniverse::Attachable.


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