Particle Universe  1.2
ParticleUniverse::Attachable Class Reference

#include <ParticleUniverseAttachable.h>

Inheritance diagram for ParticleUniverse::Attachable:

Public Member Functions

 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 copyAttributesTo (Extern *externObject)
 
virtual void _prepare (ParticleTechnique *technique)
 
virtual void _unprepare (ParticleTechnique *particleTechnique)
 
virtual void _interface (ParticleTechnique *technique, Particle *particle, Real timeElapsed)
 
- 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 _preProcessParticles (ParticleTechnique *technique, Real timeElapsed)
 
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
 

Static Public Attributes

static String PU_ATTACHABLE
 

Protected Attributes

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
 

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
 
- 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)
 

Detailed Description

The Attachable is a MovableObject that can be registered at a ParticleSystem as an Extern. By means of this construction it is possible to make a dependency between the 2 MovableObjects. This can be convenient if the Attachable is a Particle Affector wrapper, that affects a particle based on their mutual distance.

Remarks
This MovableObject will not be registered at the SceneManager; its purpose is to take advantage of the fact that it can be attached to a SceneNode. If an inherited class of Attachable uses visual (rendering) elements, it should use the registerAttachable() and unregisterAttachable() functions of the ParticleSystemManager. This implies some additional coding, because this is not supported by the scripting capabilities.

Constructor & Destructor Documentation

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

Member Function Documentation

virtual void ParticleUniverse::Attachable::_interface ( ParticleTechnique technique,
Particle particle,
Real  timeElapsed 
)
virtual
void ParticleUniverse::Attachable::_notifyAttached ( Ogre::Node parent,
bool  isTagPoint = false 
)
virtual

Overridden from MovableObject

See also
MovableObject

Reimplemented from Ogre::MovableObject.

virtual void ParticleUniverse::Attachable::_notifyCurrentCamera ( Camera cam)
virtual

Overridden from MovableObject

See also
MovableObject

Reimplemented from Ogre::MovableObject.

virtual void ParticleUniverse::Attachable::_prepare ( ParticleTechnique technique)
virtual

Perform initialisation actions.

Implements ParticleUniverse::Extern.

virtual void ParticleUniverse::Attachable::_unprepare ( ParticleTechnique particleTechnique)
virtual

Reverse the actions from the _prepare.

Reimplemented from ParticleUniverse::Extern.

virtual void ParticleUniverse::Attachable::_updateRenderQueue ( Ogre::RenderQueue queue)
virtual

Overridden from MovableObject

See also
MovableObject

Implements Ogre::MovableObject.

virtual void ParticleUniverse::Attachable::copyAttributesTo ( Extern externObject)
virtual
const AxisAlignedBox& ParticleUniverse::Attachable::getBoundingBox ( void  ) const
virtual

Overridden from MovableObject

See also
MovableObject

Implements Ogre::MovableObject.

virtual Real ParticleUniverse::Attachable::getBoundingRadius ( void  ) const
virtual

Overridden from MovableObject

See also
MovableObject

Implements Ogre::MovableObject.

const Real ParticleUniverse::Attachable::getDistanceThreshold ( void  ) const

Get the Distance Threshold

const String& ParticleUniverse::Attachable::getMovableType ( void  ) const
virtual

Overridden from MovableObject

See also
MovableObject

Implements Ogre::MovableObject.

void ParticleUniverse::Attachable::setDistanceThreshold ( const Real  distanceThreshold)

Set the Distance Threshold. This threshold defines at which distance the Attachable doesn't influence the particle anymore.

virtual void ParticleUniverse::Attachable::visitRenderables ( Ogre::Renderable::Visitor visitor,
bool  debugRenderables = false 
)
inlinevirtual
See also
MovableObject

Implements Ogre::MovableObject.

Member Data Documentation

AxisAlignedBox ParticleUniverse::Attachable::mAABB
protected
Real ParticleUniverse::Attachable::mBoundingRadius
protected
Real ParticleUniverse::Attachable::mDistanceThreshold
protected
bool ParticleUniverse::Attachable::mDistanceThresholdSet
protected
String ParticleUniverse::Attachable::PU_ATTACHABLE
static

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