Particle effect definition. More...

#include <Urho3D/Graphics/ParticleEffect.h>

Inheritance diagram for Urho3D::ParticleEffect:
Collaboration diagram for Urho3D::ParticleEffect:

Public Member Functions

 ParticleEffect (Context *context)
virtual ~ParticleEffect ()
virtual bool BeginLoad (Deserializer &source)
 Load resource from stream. May be called from a worker thread. Return true if successful.
virtual bool EndLoad ()
 Finish resource loading. Always called from the main thread. Return true if successful.
virtual bool Save (Serializer &dest) const
 Save resource. Return true if successful.
bool Save (XMLElement &dest) const
 Save resource to XMLElement. Return true if successful.
bool Load (const XMLElement &source)
 Load resource from XMLElement synchronously. Return true if successful.
void SetMaterial (Material *material)
 Set material.
void SetNumParticles (unsigned num)
 Set maximum number of particles.
void SetUpdateInvisible (bool enable)
 Set whether to update when particles are not visible.
void SetRelative (bool enable)
 Set whether billboards are relative to the scene node.
void SetScaled (bool enable)
 Set whether scene node scale affects billboards' size.
void SetSorted (bool enable)
 Set whether billboards are sorted by distance.
void SetFixedScreenSize (bool enable)
 Set whether billboards have fixed size on screen (measured in pixels) regardless of distance to camera.
void SetAnimationLodBias (float lodBias)
 Set animation LOD bias.
void SetEmitterType (EmitterType type)
 Set emitter type.
void SetEmitterSize (const Vector3 &size)
 Set emitter size.
void SetMinDirection (const Vector3 &direction)
 Set negative direction limit.
void SetMaxDirection (const Vector3 &direction)
 Set positive direction limit.
void SetConstantForce (const Vector3 &force)
 Set constant force acting on particles.
void SetDampingForce (float force)
 Set particle velocity damping force.
void SetActiveTime (float time)
 Set emission active period length (0 = infinite.)
void SetInactiveTime (float time)
 Set emission inactive period length (0 = infinite.)
void SetMinEmissionRate (float rate)
 Set minimum emission rate.
void SetMaxEmissionRate (float rate)
 Set maximum emission rate.
void SetMinParticleSize (const Vector2 &size)
 Set particle minimum size.
void SetMaxParticleSize (const Vector2 &size)
 Set particle maximum size.
void SetMinTimeToLive (float time)
 Set particle minimum time to live.
void SetMaxTimeToLive (float time)
 Set particle maximum time to live.
void SetMinVelocity (float velocity)
 Set particle minimum velocity.
void SetMaxVelocity (float velocity)
 Set particle maximum velocity.
void SetMinRotation (float rotation)
 Set particle minimum rotation.
void SetMaxRotation (float rotation)
 Set particle maximum rotation.
void SetMinRotationSpeed (float speed)
 Set particle minimum rotation speed.
void SetMaxRotationSpeed (float speed)
 Set particle maximum rotation speed.
void SetSizeAdd (float sizeAdd)
 Set particle size additive modifier.
void SetSizeMul (float sizeMul)
 Set particle size multiplicative modifier.
void SetFaceCameraMode (FaceCameraMode mode)
 Set how the particles should rotate in relation to the camera. Default is to follow camera rotation on all axes (FC_ROTATE_XYZ.)
void AddColorTime (const Color &color, const float time)
 Add a color frame sorted in the correct position based on time.
void AddColorFrame (const ColorFrame &colorFrame)
 Add a color frame sorted in the correct position based on time.
void RemoveColorFrame (unsigned index)
 Remove color frame at index.
void SetColorFrames (const Vector< ColorFrame > &colorFrames)
 Set color animation of particles.
void SetColorFrame (unsigned index, const ColorFrame &colorFrame)
 Set color animation frame at index. If index is greater than number of color frames, new color frames are added.
void SetNumColorFrames (unsigned number)
 Set number of color frames.
void SortColorFrames ()
 Sort the list of color frames based on time.
void AddTextureTime (const Rect &uv, const float time)
 Add a texture frame sorted in the correct position based on time.
void AddTextureFrame (const TextureFrame &textureFrame)
 Add a texture frame sorted in the correct position based on time.
void RemoveTextureFrame (unsigned index)
 Remove texture frame at index.
void SetTextureFrames (const Vector< TextureFrame > &animation)
 Set particle texture animation.
void SetTextureFrame (unsigned index, const TextureFrame &textureFrame)
 Set number of texture animation frames.
void SetNumTextureFrames (unsigned number)
 Set number of texture frames.
void SortTextureFrames ()
 Sort the list of texture frames based on time.
SharedPtr< ParticleEffectClone (const String &cloneName=String::EMPTY) const
 Clone the particle effect. More...
MaterialGetMaterial () const
 Return material.
unsigned GetNumParticles () const
 Return maximum number of particles.
bool GetUpdateInvisible () const
 Return whether to update when particles are not visible.
bool IsRelative () const
 Return whether billboards are relative to the scene node.
bool IsScaled () const
 Return whether scene node scale affects billboards' size.
bool IsSorted () const
 Return whether billboards are sorted.
bool IsFixedScreenSize () const
 Return whether billboards are fixed screen size.
float GetAnimationLodBias () const
 Return animation Lod bias.
EmitterType GetEmitterType () const
 Return emitter type.
const Vector3GetEmitterSize () const
 Return emitter size.
const Vector3GetMinDirection () const
 Return negative direction limit.
const Vector3GetMaxDirection () const
 Return positive direction limit.
const Vector3GetConstantForce () const
 Return constant force acting on particles.
float GetDampingForce () const
 Return particle velocity damping force.
float GetActiveTime () const
 Return emission active period length (0 = infinite.)
float GetInactiveTime () const
 Return emission inactive period length (0 = infinite.)
float GetMinEmissionRate () const
 Return minimum emission rate.
float GetMaxEmissionRate () const
 Return maximum emission rate.
const Vector2GetMinParticleSize () const
 Return particle minimum size.
const Vector2GetMaxParticleSize () const
 Return particle maximum size.
float GetMinTimeToLive () const
 Return particle minimum time to live.
float GetMaxTimeToLive () const
 Return particle maximum time to live.
float GetMinVelocity () const
 Return particle minimum velocity.
float GetMaxVelocity () const
 Return particle maximum velocity.
float GetMinRotation () const
 Return particle minimum rotation.
float GetMaxRotation () const
 Return particle maximum rotation.
float GetMinRotationSpeed () const
 Return particle minimum rotation speed.
float GetMaxRotationSpeed () const
 Return particle maximum rotation speed.
float GetSizeAdd () const
 Return particle size additive modifier.
float GetSizeMul () const
 Return particle size multiplicative modifier.
const Vector< ColorFrame > & GetColorFrames () const
 Return all color animation frames.
unsigned GetNumColorFrames () const
 Return number of color animation frames.
const ColorFrameGetColorFrame (unsigned index) const
 Return a color animation frame, or null if outside range.
const Vector< TextureFrame > & GetTextureFrames () const
 Return all texture animation frames.
unsigned GetNumTextureFrames () const
 Return number of texture animation frames.
const TextureFrameGetTextureFrame (unsigned index) const
 Return a texture animation frame, or null if outside range.
FaceCameraMode GetFaceCameraMode () const
 Return how the particles rotate in relation to the camera.
Vector3 GetRandomDirection () const
 Return random direction.
Vector2 GetRandomSize () const
 Return random size.
float GetRandomVelocity () const
 Return random velocity.
float GetRandomTimeToLive () const
 Return random timetolive.
float GetRandomRotationSpeed () const
 Return random rotationspeed.
float GetRandomRotation () const
 Return random rotation.
- Public Member Functions inherited from Urho3D::Resource
 Resource (Context *context)
bool Load (Deserializer &source)
 Load resource synchronously. Call both BeginLoad() & EndLoad() and return true if both succeeded.
bool LoadFile (const String &fileName)
 Load resource from file.
virtual bool SaveFile (const String &fileName) const
 Save resource to file.
void SetName (const String &name)
 Set name.
void SetMemoryUse (unsigned size)
 Set memory use in bytes, possibly approximate.
void ResetUseTimer ()
 Reset last used timer.
void SetAsyncLoadState (AsyncLoadState newState)
 Set the asynchronous loading state. Called by ResourceCache. Resources in the middle of asynchronous loading are not normally returned to user.
const StringGetName () const
 Return name.
StringHash GetNameHash () const
 Return name hash.
unsigned GetMemoryUse () const
 Return memory use in bytes, possibly approximate.
unsigned GetUseTimer ()
 Return time since last use in milliseconds. If referred to elsewhere than in the resource cache, returns always zero.
AsyncLoadState GetAsyncLoadState () const
 Return the asynchronous loading state.
- Public Member Functions inherited from Urho3D::Object
 Object (Context *context)
virtual ~Object ()
 Destruct. Clean up self from event sender & receiver structures.
virtual StringHash GetType () const =0
 Return type hash.
virtual const StringGetTypeName () const =0
 Return type name.
virtual const TypeInfoGetTypeInfo () const =0
 Return type info.
virtual void OnEvent (Object *sender, StringHash eventType, VariantMap &eventData)
 Handle event.
bool IsInstanceOf (StringHash type) const
 Check current instance is type of specified type.
bool IsInstanceOf (const TypeInfo *typeInfo) const
 Check current instance is type of specified type.
template<typename T >
bool IsInstanceOf () const
 Check current instance is type of specified class.
void SubscribeToEvent (StringHash eventType, EventHandler *handler)
 Subscribe to an event that can be sent by any sender.
void SubscribeToEvent (Object *sender, StringHash eventType, EventHandler *handler)
 Subscribe to a specific sender's event.
void UnsubscribeFromEvent (StringHash eventType)
 Unsubscribe from an event.
void UnsubscribeFromEvent (Object *sender, StringHash eventType)
 Unsubscribe from a specific sender's event.
void UnsubscribeFromEvents (Object *sender)
 Unsubscribe from a specific sender's events.
void UnsubscribeFromAllEvents ()
 Unsubscribe from all events.
void UnsubscribeFromAllEventsExcept (const PODVector< StringHash > &exceptions, bool onlyUserData)
 Unsubscribe from all events except those listed, and optionally only those with userdata (script registered events.)
void SendEvent (StringHash eventType)
 Send event to all subscribers.
void SendEvent (StringHash eventType, VariantMap &eventData)
 Send event with parameters to all subscribers.
VariantMapGetEventDataMap () const
 Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
ContextGetContext () const
 Return execution context.
const VariantGetGlobalVar (StringHash key) const
 Return global variable based on key.
const VariantMapGetGlobalVars () const
 Return all global variables.
void SetGlobalVar (StringHash key, const Variant &value)
 Set global variable with the respective key and value.
ObjectGetSubsystem (StringHash type) const
 Return subsystem by type.
ObjectGetEventSender () const
 Return active event sender. Null outside event handling.
EventHandlerGetEventHandler () const
 Return active event handler. Null outside event handling.
bool HasSubscribedToEvent (StringHash eventType) const
 Return whether has subscribed to an event without specific sender.
bool HasSubscribedToEvent (Object *sender, StringHash eventType) const
 Return whether has subscribed to a specific sender's event.
bool HasEventHandlers () const
 Return whether has subscribed to any event.
template<class T >
T * GetSubsystem () const
 Template version of returning a subsystem.
const StringGetCategory () const
 Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered.
- Public Member Functions inherited from Urho3D::RefCounted
 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
void AddRef ()
 Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting.
void ReleaseRef ()
 Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting.
int Refs () const
 Return reference count.
int WeakRefs () const
 Return weak reference count.
RefCountRefCountPtr ()
 Return pointer to the reference count structure.

Static Public Member Functions

static void RegisterObject (Context *context)
 Register object factory.
- Static Public Member Functions inherited from Urho3D::Object
static const TypeInfoGetTypeInfoStatic ()
 Return type info static.

Private Member Functions

 URHO3D_OBJECT (ParticleEffect, Resource)
void GetFloatMinMax (const XMLElement &element, float &minValue, float &maxValue)
 Read a float range from an XML element.
void GetVector2MinMax (const XMLElement &element, Vector2 &minValue, Vector2 &maxValue)
 Read a Vector2 range from an XML element.
void GetVector3MinMax (const XMLElement &element, Vector3 &minValue, Vector3 &maxValue)
 Read a Vector3 from an XML element.

Private Attributes

SharedPtr< Materialmaterial_
unsigned numParticles_
 Number of particles.
bool updateInvisible_
 Update when invisible flag.
bool relative_
 Billboards relative flag.
bool scaled_
 Scale affects billboard scale flag.
bool sorted_
 Billboards sorted flag.
bool fixedScreenSize_
 Billboards fixed screen size flag.
float animationLodBias_
 Animation LOD bias.
EmitterType emitterType_
 Emitter shape.
Vector3 emitterSize_
 Emitter size.
Vector3 directionMin_
 Particle direction minimum.
Vector3 directionMax_
 Particle direction maximum.
Vector3 constantForce_
 Particle constant force.
float dampingForce_
 Particle velocity damping force.
float activeTime_
 Active period.
float inactiveTime_
 Inactive period.
float emissionRateMin_
 Particles per second minimum.
float emissionRateMax_
 Particles per second maximum.
Vector2 sizeMin_
 Particle size minimum.
Vector2 sizeMax_
 Particle size maximum.
float timeToLiveMin_
 Particle time to live minimum.
float timeToLiveMax_
 Particle time to live maximum.
float velocityMin_
 Particle velocity minimum.
float velocityMax_
 Particle velocity maximum.
float rotationMin_
 Particle rotation angle minimum.
float rotationMax_
 Particle rotation angle maximum.
float rotationSpeedMin_
 Particle rotation speed minimum.
float rotationSpeedMax_
 Particle rotation speed maximum.
float sizeAdd_
 Particle size additive parameter.
float sizeMul_
 Particle size multiplicative parameter.
Vector< ColorFramecolorFrames_
 Particle color animation frames.
Vector< TextureFrametextureFrames_
 Texture animation frames.
String loadMaterialName_
 Material name acquired during BeginLoad().
FaceCameraMode faceCameraMode_
 Particle rotation mode in relation to the camera.

Additional Inherited Members

- Protected Attributes inherited from Urho3D::Object
 Execution context.

Detailed Description

Particle effect definition.

Member Function Documentation

SharedPtr< ParticleEffect > Urho3D::ParticleEffect::Clone ( const String cloneName = String::EMPTY) const

Clone the particle effect.

Zero if source was created programmatically

Here is the call graph for this function:

The documentation for this class was generated from the following files:
  • Source/Urho3D/Graphics/ParticleEffect.h
  • Source/Urho3D/Graphics/ParticleEffect.cpp