Go to the documentation of this file.
28 #ifndef __ParticleSystemManager_H__
29 #define __ParticleSystemManager_H__
44 class ParticleSystemFactory;
123 const String& resourceGroup);
345 mSystemTemplates.begin(), mSystemTemplates.end());
void parseScript(DataStreamPtr &stream, const String &groupName)
Parse a script file.
static ParticleSystemManager * getSingletonPtr(void)
Override standard Singleton retrieval.
ParticleSystem * getTemplate(const String &name)
Retrieves a particle system template for possible modification.
Factory object for creating ParticleSystem instances.
ParticleEmitterFactoryIterator getEmitterFactoryIterator(void)
Return an iterator over the emitter factories currently registered.
map< String, ParticleAffectorFactory * >::type ParticleAffectorFactoryMap
ParticleAffector * _createAffector(const String &affectorType, ParticleSystem *psys)
Internal method for creating a new affector from a factory.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
map< String, ParticleSystemRendererFactory * >::type ParticleSystemRendererFactoryMap
void parseNewEmitter(const String &type, DataStreamPtr &chunk, ParticleSystem *sys)
Internal script parsing method.
void _destroyAffector(ParticleAffector *affector)
Internal method for destroying an affector.
ParticleSystem * createSystemImpl(const String &name, const String &templateName)
Internal implementation of createSystem.
void destroySystemImpl(ParticleSystem *sys)
Internal implementation of destroySystem.
void parseAttrib(const String &line, ParticleSystem *sys)
Internal script parsing method.
void addTemplate(const String &name, ParticleSystem *sysTemplate)
Adds a new particle system template to the list of available templates.
vector< String >::type StringVector
void parseAffectorAttrib(const String &line, ParticleAffector *sys)
Internal script parsing method.
const String & getType(void) const
Get the type of the object to be created.
static ParticleSystemManager & getSingleton(void)
Override standard Singleton retrieval.
ParticleSystemFactory * _getFactory(void)
Get an instance of ParticleSystemFactory (internal use).
void removeTemplatesByResourceGroup(const String &resourceGroup)
Removes all templates that belong to a secific Resource Group from the ParticleSystemManager.
Abstract class defining the interface required to be implemented by classes which provide rendering c...
void parseNewAffector(const String &type, DataStreamPtr &chunk, ParticleSystem *sys)
Internal script parsing method.
Abstract class defining a movable object in a scene.
void addEmitterFactory(ParticleEmitterFactory *factory)
Adds a new 'factory' object for emitters to the list of available emitter types.
Interface definition for a factory class which produces a certain kind of MovableObject,...
MapIterator< ParticleEmitterFactoryMap > ParticleEmitterFactoryIterator
ParticleEmitterFactoryMap mEmitterFactories
Factories for named emitter types (can be extended using plugins)
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
virtual ~ParticleSystemManager()
ParticleSystemTemplateIterator getTemplateIterator(void)
Gets an iterator over the list of particle system templates.
ParticleRendererFactoryIterator getRendererFactoryIterator(void)
Return an iterator over the renderer factories currently registered.
ParticleSystem * createSystemImpl(const String &name, size_t quota, const String &resourceGroup)
Internal implementation of createSystem.
MovableObject * createInstanceImpl(const String &name, const NameValuePairList *params)
Internal implementation of create method - must be overridden.
MapIterator< ParticleAffectorFactoryMap > ParticleAffectorFactoryIterator
ParticleEmitter * _createEmitter(const String &emitterType, ParticleSystem *psys)
Internal method for creating a new emitter from a factory.
ParticleTemplateMap mSystemTemplates
Templates based on scripts.
void destroyInstance(MovableObject *obj)
Destroy an instance of the object.
MapIterator< ParticleTemplateMap > ParticleSystemTemplateIterator
void _destroyEmitter(ParticleEmitter *emitter)
Internal method for destroying an emitter.
StringVector mScriptPatterns
Template class for creating single-instance global classes.
static String FACTORY_TYPE_NAME
Real getLoadingOrder(void) const
Gets the relative loading order of scripts of this type.
Abstract class defining the interface to be implemented by particle emitters.
MapIterator< ParticleSystemRendererFactoryMap > ParticleRendererFactoryIterator
map< String, ParticleSystem * >::type ParticleTemplateMap
Abstract class defining the interface used by classes which wish to perform script loading to define ...
void removeAllTemplates(bool deleteTemplate=true)
Removes a specified template from the ParticleSystemManager.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
void parseEmitterAttrib(const String &line, ParticleEmitter *sys)
Internal script parsing method.
void removeTemplate(const String &name, bool deleteTemplate=true)
Removes a specified template from the ParticleSystemManager.
Abstract class defining the interface to be implemented by creators of ParticleAffector subclasses.
Abstract class definition of a factory object for ParticleSystemRenderer.
ParticleSystemFactory * mFactory
ParticleAffectorFactoryMap mAffectorFactories
Factories for named affector types (can be extended using plugins)
ParticleSystem * createTemplate(const String &name, const String &resourceGroup)
Create a new particle system template.
ParticleSystemRenderer * _createRenderer(const String &rendererType)
Internal method for creating a new renderer from a factory.
const StringVector & getScriptPatterns(void) const
Gets the file patterns which should be used to find scripts for this class.
Class defining particle system based special effects.
map< String, ParticleEmitterFactory * >::type ParticleEmitterFactoryMap
void skipToNextOpenBrace(DataStreamPtr &chunk)
Internal script parsing method.
float Real
Software floating point type.
void _initialise(void)
Init method to be called by OGRE system.
Manages particle systems, particle system scripts (templates) and the available emitter & affector fa...
void skipToNextCloseBrace(DataStreamPtr &chunk)
Internal script parsing method.
void addAffectorFactory(ParticleAffectorFactory *factory)
Adds a new 'factory' object for affectors to the list of available affector types.
ParticleAffectorFactoryIterator getAffectorFactoryIterator(void)
Return an iterator over the affector factories currently registered.
Abstract class defining the interface to be implemented by creators of ParticleEmitter subclasses.
void _destroyRenderer(ParticleSystemRenderer *renderer)
Internal method for destroying a renderer.
Abstract class defining the interface to be implemented by particle affectors.
void addRendererFactory(ParticleSystemRendererFactory *factory)
Registers a factory class for creating ParticleSystemRenderer instances.
ParticleSystemRendererFactoryMap mRendererFactories
Map of renderer types to factories.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.