40 #ifndef _graphicsparticlesystemproxy_h
41 #define _graphicsparticlesystemproxy_h
57 class ParticleEmitter;
58 class ParticleAffector;
103 virtual void ProtoSerializeImpl(
XML::Node& SelfRoot)
const;
105 virtual void ProtoDeSerializeImpl(
const XML::Node& SelfRoot);
110 virtual void CreateParticleSystem(
const String& Template);
113 virtual void DestroyParticleSystem();
118 static String GenerateName();
143 const String& GetName()
const;
146 const String& GetTemplate()
const;
150 void PauseParticleSystem(
Boole Pause);
153 Boole IsParticleSystemPaused()
const;
161 void SetCustomParam(
const String& Name,
const String& Value);
178 UInt16 GetNumEmitters()
const;
181 void DestroyEmitter(
const UInt16 Index);
183 void DestroyAllEmitters();
194 UInt16 GetNumAffectors()
const;
197 void DestroyAffector(
const UInt16 Index);
199 void DestroyAllAffectors();
207 void SetSpeedFactor(
const Real Factor);
211 Real GetSpeedFactor()
const;
217 virtual void ProtoSerializeProperties(
XML::Node& SelfRoot)
const;
220 virtual void ProtoSerializeTemplate(
XML::Node& SelfRoot)
const;
223 virtual void ProtoSerializeCustomParameters(
XML::Node& SelfRoot)
const;
226 virtual void ProtoSerializeEmitters(
XML::Node& SelfRoot)
const;
229 virtual void ProtoSerializeAffectors(
XML::Node& SelfRoot)
const;
232 virtual void ProtoDeSerializeProperties(
const XML::Node& SelfRoot);
235 virtual void ProtoDeSerializeTemplate(
const XML::Node& SelfRoot);
238 virtual void ProtoDeSerializeCustomParameters(
const XML::Node& SelfRoot);
241 virtual void ProtoDeSerializeEmitters(
const XML::Node& SelfRoot);
244 virtual void ProtoDeSerializeAffectors(
const XML::Node& SelfRoot);
247 virtual String GetDerivedSerializableName()
const;
249 static String GetSerializableName();
257 virtual Ogre::ParticleSystem* _GetGraphicsObject()
const;
259 virtual Ogre::MovableObject* _GetBaseGraphicsObject()
const;
AffectorContainer::iterator AffectorIterator
Iterator type for ParticleAffector instances stored by this class.
bool Boole
Generally acts a single bit, true or false.
This class contains utilities and functions to allow the manipulation of the Graphical scene...
AffectorContainer::const_iterator ConstAffectorIterator
Const Iterator type for ParticleAffector instances stored by this class.
This file contains the declaration for the base class from which graphics proxies inherit...
Boole Paused
Stores whether or not updates to this particle system are paused.
This is the base proxy class for world proxies wrapping functionality of the graphics subsystem...
float Real
A Datatype used to represent a real floating point number.
std::vector< ParticleAffector * > AffectorContainer
Basic container type for ParticleAffector storage by this class.
uint16_t UInt16
An 16-bit unsigned integer.
Real SpeedFactor
Stores the current speed factor of this particle system for when it gets paused.
A light-weight handle for manipulating nodes in DOM tree.
ProxyType
Used by all World proxies to describe what their derived types are.
uint32_t UInt32
An 32-bit unsigned integer.
String Template
Stores the template, primarily for serialization.
EmitterContainer::iterator EmitterIterator
Iterator type for ParticleEmitter instances stored by this class.
EmitterContainer::const_iterator ConstEmitterIterator
Const Iterator type for ParticleEmitter instances stored by this class.
std::vector< ParticleEmitter * > EmitterContainer
Basic container type for ParticleEmitter storage by this class.
NameValuePairMap CustomSystemParameters
A cache containing all of the custom altered parameters of this particle system.
This is the proxy class for placing and manipulating particles in the scene.
The bulk of the engine components go in this namspace.
This class defines how particles of a given particle effect spawn.
Ogre::ParticleSystem * GraphicsParticleSystem
Pointer to the ogre ParticleSystem from which this proxy gets it's functionality. ...
AffectorContainer Affectors
Vector of affectors in use by this particle effect.
This class defines how particles of a given particle effect behave during their lifetime.
EmitterContainer Emitters
Vector of emitters in use by this particle effect.
std::map< String, String > NameValuePairMap
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
std::string String
A datatype used to a series of characters.