# Ogre::ParticleSystemManager Class Reference
[Effects]

Manages particle systems, particle system scripts (templates) and the available emitter & affector factories. More...

`#include <OgreParticleSystemManager.h>`

Inheritance diagram for Ogre::ParticleSystemManager:
[legend]

List of all members.

## Public Types

typedef map< String, ParticleSystem * >::type | ParticleTemplateMap
typedef map< String, ParticleAffectorFactory * > ::type | ParticleAffectorFactoryMap
typedef map< String, ParticleEmitterFactory * > ::type | ParticleEmitterFactoryMap
typedef map< String, ParticleSystemRendererFactory * > ::type | ParticleSystemRendererFactoryMap
typedef MapIterator < ParticleAffectorFactoryMap > | ParticleAffectorFactoryIterator
typedef MapIterator < ParticleEmitterFactoryMap > | ParticleEmitterFactoryIterator
typedef MapIterator < ParticleSystemRendererFactoryMap > | ParticleRendererFactoryIterator
typedef MapIterator < ParticleTemplateMap > | ParticleSystemTemplateIterator

## Public Member Functions

| ParticleSystemManager ()
virtual | ~ParticleSystemManager ()
void | addEmitterFactory (ParticleEmitterFactory *factory)
| Adds a new 'factory' object for emitters to the list of available emitter types.
void | addAffectorFactory (ParticleAffectorFactory *factory)
| Adds a new 'factory' object for affectors to the list of available affector types.
void | addRendererFactory (ParticleSystemRendererFactory *factory)
| Registers a factory class for creating ParticleSystemRenderer instances.
void | addTemplate (const String &name, ParticleSystem *sysTemplate)
| Adds a new particle system template to the list of available templates.
void | removeTemplate (const String &name, bool deleteTemplate=true)
| Removes a specified template from the ParticleSystemManager.
void | removeAllTemplates (bool deleteTemplate=true)
| Removes a specified template from the ParticleSystemManager.
void | removeTemplatesByResourceGroup (const String &resourceGroup)
| Removes all templates that belong to a secific Resource Group from the ParticleSystemManager.
ParticleSystem * | createTemplate (const String &name, const String &resourceGroup)
| Create a new particle system template.
ParticleSystem * | getTemplate (const String &name)
| Retrieves a particle system template for possible modification.
ParticleEmitter * | _createEmitter (const String &emitterType, ParticleSystem *psys)
| Internal method for creating a new emitter from a factory.
void | _destroyEmitter (ParticleEmitter *emitter)
| Internal method for destroying an emitter.
ParticleAffector * | _createAffector (const String &affectorType, ParticleSystem *psys)
| Internal method for creating a new affector from a factory.
void | _destroyAffector (ParticleAffector *affector)
| Internal method for destroying an affector.
ParticleSystemRenderer * | _createRenderer (const String &rendererType)
| Internal method for creating a new renderer from a factory.
void | _destroyRenderer (ParticleSystemRenderer *renderer)
| Internal method for destroying a renderer.
void | _initialise (void)
| Init method to be called by OGRE system.
const StringVector & | getScriptPatterns (void) const
void | parseScript (DataStreamPtr &stream, const String &groupName)
Real | getLoadingOrder (void) const
ParticleAffectorFactoryIterator | getAffectorFactoryIterator (void)
| Return an iterator over the affector factories currently registered.
ParticleEmitterFactoryIterator | getEmitterFactoryIterator (void)
| Return an iterator over the emitter factories currently registered.
ParticleRendererFactoryIterator | getRendererFactoryIterator (void)
| Return an iterator over the renderer factories currently registered.
ParticleSystemTemplateIterator | getTemplateIterator (void)
| Gets an iterator over the list of particle system templates.
ParticleSystemFactory * | _getFactory (void)
| Get an instance of ParticleSystemFactory (internal use).
virtual const StringVector & | getScriptPatterns (void) const =0
| Gets the file patterns which should be used to find scripts for this class.
virtual void | parseScript (DataStreamPtr &stream, const String &groupName)=0
| Parse a script file.
virtual Real | getLoadingOrder (void) const =0
| Gets the relative loading order of scripts of this type.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)

## Static Public Member Functions

static ParticleSystemManager & | getSingleton (void)
| Override standard Singleton retrieval.
static ParticleSystemManager * | getSingletonPtr (void)
| Override standard Singleton retrieval.
static ParticleSystemManager & | getSingleton (void)
static ParticleSystemManager * | getSingletonPtr (void)

## Protected Member Functions

void | parseNewEmitter (const String &type, DataStreamPtr &chunk, ParticleSystem *sys)
| Internal script parsing method.
void | parseNewAffector (const String &type, DataStreamPtr &chunk, ParticleSystem *sys)
| Internal script parsing method.
void | parseAttrib (const String &line, ParticleSystem *sys)
| Internal script parsing method.
void | parseEmitterAttrib (const String &line, ParticleEmitter *sys)
| Internal script parsing method.
void | parseAffectorAttrib (const String &line, ParticleAffector *sys)
| Internal script parsing method.
void | skipToNextCloseBrace (DataStreamPtr &chunk)
| Internal script parsing method.
void | skipToNextOpenBrace (DataStreamPtr &chunk)
| Internal script parsing method.
ParticleSystem * | createSystemImpl (const String &name, size_t quota, const String &resourceGroup)
| Internal implementation of createSystem.
ParticleSystem * | createSystemImpl (const String &name, const String &templateName)
| Internal implementation of createSystem.
void | destroySystemImpl (ParticleSystem *sys)
| Internal implementation of destroySystem.

## Protected Attributes

OGRE_AUTO_MUTEX ParticleTemplateMap | mSystemTemplates
| Templates based on scripts.
ParticleEmitterFactoryMap | mEmitterFactories
| Factories for named emitter types (can be extended using plugins).
ParticleAffectorFactoryMap | mAffectorFactories
| Factories for named affector types (can be extended using plugins).
ParticleSystemRendererFactoryMap | mRendererFactories
| Map of renderer types to factories.
StringVector | mScriptPatterns
ParticleSystemFactory * | mFactory

## Static Protected Attributes

static ParticleSystemManager * | ms_Singleton

## Friends

class | ParticleSystemFactory

## Detailed Description

Manages particle systems, particle system scripts (templates) and the available emitter & affector factories.

Remarks:
  This singleton class is responsible for creating and managing particle systems. All particle systems must be created and destroyed using this object, although the user interface to creating them is via SceneManager. Remember that like all other MovableObject subclasses, ParticleSystems do not get rendered until they are attached to a SceneNode object.

  This class also manages factories for ParticleEmitter and ParticleAffector classes. To enable easy extensions to the types of emitters (particle sources) and affectors (particle modifiers), the ParticleSystemManager lets plugins or applications register factory classes which submit new subclasses to ParticleEmitter and ParticleAffector. Ogre comes with a number of them already provided, such as cone, sphere and box-shaped emitters, and simple affectors such as constant directional force and colour faders. However using this registration process, a plugin can create any behaviour required.

  This class also manages the loading and parsing of particle system scripts, which are text files describing named particle system templates. Instances of particle systems using these templates can then be created easily through the createParticleSystem method.

Definition at line 76 of file OgreParticleSystemManager.h.

## Member Typedef Documentation

typedef MapIterator<ParticleAffectorFactoryMap> Ogre::ParticleSystemManager::ParticleAffectorFactoryIterator

Definition at line 328 of file OgreParticleSystemManager.h.

typedef map<String, ParticleAffectorFactory*>::type Ogre::ParticleSystemManager::ParticleAffectorFactoryMap

Definition at line 82 of file OgreParticleSystemManager.h.

typedef MapIterator<ParticleEmitterFactoryMap> Ogre::ParticleSystemManager::ParticleEmitterFactoryIterator

Definition at line 329 of file OgreParticleSystemManager.h.

typedef map<String, ParticleEmitterFactory*>::type Ogre::ParticleSystemManager::ParticleEmitterFactoryMap

Definition at line 83 of file OgreParticleSystemManager.h.

typedef MapIterator<ParticleSystemRendererFactoryMap> Ogre::ParticleSystemManager::ParticleRendererFactoryIterator

Definition at line 330 of file OgreParticleSystemManager.h.

typedef map<String, ParticleSystemRendererFactory*>::type Ogre::ParticleSystemManager::ParticleSystemRendererFactoryMap

Definition at line 84 of file OgreParticleSystemManager.h.

typedef MapIterator<ParticleTemplateMap> Ogre::ParticleSystemManager::ParticleSystemTemplateIterator

Definition at line 339 of file OgreParticleSystemManager.h.

typedef map<String, ParticleSystem*>::type Ogre::ParticleSystemManager::ParticleTemplateMap

Definition at line 81 of file OgreParticleSystemManager.h.

## Constructor & Destructor Documentation

Ogre::ParticleSystemManager::ParticleSystemManager | ( |  | ) |

virtual Ogre::ParticleSystemManager::~ParticleSystemManager | ( |  | ) | `[virtual]`

## Member Function Documentation

ParticleAffector* Ogre::ParticleSystemManager::_createAffector | ( | const String & | affectorType,
|  | ParticleSystem * | psys |
| ) |  |  |

Internal method for creating a new affector from a factory.

Remarks:
  Used internally by the engine to create new ParticleAffector instances from named factories. Applications should use the ParticleSystem::addAffector method instead, which calls this method to create an instance.

Parameters:

  | effectorType | String name of the affector type to be created. A factory of this type must have been registered.
  | psys | The particle system it is being created for

ParticleEmitter* Ogre::ParticleSystemManager::_createEmitter | ( | const String & | emitterType,
|  | ParticleSystem * | psys |
| ) |  |  |

Internal method for creating a new emitter from a factory.

Remarks:
  Used internally by the engine to create new ParticleEmitter instances from named factories. Applications should use the ParticleSystem::addEmitter method instead, which calls this method to create an instance.

Parameters:

  | emitterType | String name of the emitter type to be created. A factory of this type must have been registered.
  | psys | The particle system this is being created for

ParticleSystemRenderer* Ogre::ParticleSystemManager::_createRenderer | ( | const String & | rendererType | ) |

Internal method for creating a new renderer from a factory.

Remarks:
  Used internally by the engine to create new ParticleSystemRenderer instances from named factories. Applications should use the ParticleSystem::setRenderer method instead, which calls this method to create an instance.

Parameters:

  | rendererType | String name of the renderer type to be created. A factory of this type must have been registered.

void Ogre::ParticleSystemManager::_destroyAffector | ( | ParticleAffector * | affector | ) |

Internal method for destroying an affector.

Remarks:
  Because affectors are created by factories which may allocate memory from separate heaps, the memory allocated must be freed from the same place. This method is used to ask the factory to destroy the instance passed in as a pointer.

Parameters:

  | affector | Pointer to affector to be destroyed. On return this pointer will point to invalid (freed) memory.

void Ogre::ParticleSystemManager::_destroyEmitter | ( | ParticleEmitter * | emitter | ) |

Internal method for destroying an emitter.

Remarks:
  Because emitters are created by factories which may allocate memory from separate heaps, the memory allocated must be freed from the same place. This method is used to ask the factory to destroy the instance passed in as a pointer.

Parameters:

  | emitter | Pointer to emitter to be destroyed. On return this pointer will point to invalid (freed) memory.

void Ogre::ParticleSystemManager::_destroyRenderer | ( | ParticleSystemRenderer * | renderer | ) |

Internal method for destroying a renderer.

Remarks:
  Because renderer are created by factories which may allocate memory from separate heaps, the memory allocated must be freed from the same place. This method is used to ask the factory to destroy the instance passed in as a pointer.

Parameters:

  | renderer | Pointer to renderer to be destroyed. On return this pointer will point to invalid (freed) memory.

ParticleSystemFactory* Ogre::ParticleSystemManager::_getFactory | ( | void |  | ) |

Get an instance of ParticleSystemFactory (internal use).

Definition at line 348 of file OgreParticleSystemManager.h.

void Ogre::ParticleSystemManager::_initialise | ( | void |  | ) |

Init method to be called by OGRE system.

Remarks:
  Due to dependencies between various objects certain initialisation tasks cannot be done on construction. OGRE will call this method when the rendering subsystem is initialised.

void Ogre::ParticleSystemManager::addAffectorFactory | ( | ParticleAffectorFactory * | factory | ) |

Adds a new 'factory' object for affectors to the list of available affector types.

Remarks:
  This method allows plugins etc to add new particle affector types to Ogre. Particle affectors modify the particles in a system a certain way such as affecting their direction or changing their colour, lifespan etc. Plugins would create new subclasses of ParticleAffector which affect particles a certain way, and register a subclass of ParticleAffectorFactory to create them.

  All particle affector factories have an assigned name which is used to identify the affector type. This must be unique.

  Note that the object passed to this function will not be destroyed by the ParticleSystemManager, since it may have been allocated on a different heap in the case of plugins. The caller must destroy the object later on, probably on plugin shutdown.

Parameters:

  | factory | Pointer to a ParticleAffectorFactory subclass created by the plugin or application code.

void Ogre::ParticleSystemManager::addEmitterFactory | ( | ParticleEmitterFactory * | factory | ) |

Adds a new 'factory' object for emitters to the list of available emitter types.

Remarks:
  This method allows plugins etc to add new particle emitter types to Ogre. Particle emitters are sources of particles, and generate new particles with their start positions, colours and momentums appropriately. Plugins would create new subclasses of ParticleEmitter which emit particles a certain way, and register a subclass of ParticleEmitterFactory to create them (since multiple emitters can be created for different particle systems).

  All particle emitter factories have an assigned name which is used to identify the emitter type. This must be unique.

  Note that the object passed to this function will not be destroyed by the ParticleSystemManager, since it may have been allocated on a different heap in the case of plugins. The caller must destroy the object later on, probably on plugin shutdown.

Parameters:

  | factory | Pointer to a ParticleEmitterFactory subclass created by the plugin or application code.

void Ogre::ParticleSystemManager::addRendererFactory | ( | ParticleSystemRendererFactory * | factory | ) |

Registers a factory class for creating ParticleSystemRenderer instances.

  Note that the object passed to this function will not be destroyed by the ParticleSystemManager, since it may have been allocated on a different heap in the case of plugins. The caller must destroy the object later on, probably on plugin shutdown.

Parameters:

  | factory | Pointer to a ParticleSystemRendererFactory subclass created by the plugin or application code.

void Ogre::ParticleSystemManager::addTemplate | ( | const String & | name,
|  | ParticleSystem * | sysTemplate |
| ) |  |  |

Adds a new particle system template to the list of available templates.

Remarks:
  Instances of particle systems in a scene are not normally unique - often you want to place the same effect in many places. This method allows you to register a ParticleSystem as a named template, which can subsequently be used to create instances using the createSystem method.

  Note that particle system templates can either be created programmatically by an application and registered using this method, or they can be defined in a script file (*.particle) which is loaded by the engine at startup, very much like Material scripts.

Parameters:

  | name | The name of the template. Must be unique across all templates.
  | sysTemplate | A pointer to a particle system to be used as a template. The manager will take over ownership of this pointer.

ParticleSystem* Ogre::ParticleSystemManager::createSystemImpl | ( | const String & | name,
|  | size_t | quota,
|  | const String & | resourceGroup |
| ) |  |  | `[protected]`

Internal implementation of createSystem.

ParticleSystem* Ogre::ParticleSystemManager::createSystemImpl | ( | const String & | name,
|  | const String & | templateName |
| ) |  |  | `[protected]`

Internal implementation of createSystem.

ParticleSystem* Ogre::ParticleSystemManager::createTemplate | ( | const String & | name,
|  | const String & | resourceGroup |
| ) |  |  |

Create a new particle system template.

Remarks:
  This method is similar to the addTemplate method, except this just creates a new template and returns a pointer to it to be populated. Use this when you don't already have a system to add as a template and just want to create a new template which you will build up in-place.

Parameters:

  | name | The name of the template. Must be unique across all templates.
  | resourceGroup | The name of the resource group which will be used to load any dependent resources.

void Ogre::ParticleSystemManager::destroySystemImpl | ( | ParticleSystem * | sys | ) | `[protected]`

Internal implementation of destroySystem.

ParticleAffectorFactoryIterator Ogre::ParticleSystemManager::getAffectorFactoryIterator | ( | void |  | ) |

Return an iterator over the affector factories currently registered.

ParticleEmitterFactoryIterator Ogre::ParticleSystemManager::getEmitterFactoryIterator | ( | void |  | ) |

Return an iterator over the emitter factories currently registered.

virtual Real Ogre::ScriptLoader::getLoadingOrder | ( | void |  | ) | const`[pure virtual, inherited]`

Gets the relative loading order of scripts of this type.

Remarks:
  There are dependencies between some kinds of scripts, and to enforce this all implementors of this interface must define a loading order.

Returns:
  A value representing the relative loading order of these scripts compared to other script users, where higher values load later.

Real Ogre::ParticleSystemManager::getLoadingOrder | ( | void |  | ) | const

Gets the relative loading order of scripts of this type.

Remarks:
  There are dependencies between some kinds of scripts, and to enforce this all implementors of this interface must define a loading order.

Returns:
  A value representing the relative loading order of these scripts compared to other script users, where higher values load later.

ParticleRendererFactoryIterator Ogre::ParticleSystemManager::getRendererFactoryIterator | ( | void |  | ) |

Return an iterator over the renderer factories currently registered.

virtual const StringVector& Ogre::ScriptLoader::getScriptPatterns | ( | void |  | ) | const`[pure virtual, inherited]`

Gets the file patterns which should be used to find scripts for this class.

Remarks:
  This method is called when a resource group is loaded if you use ResourceGroupManager::_registerScriptLoader.

Returns:
  A list of file patterns, in the order they should be searched in.

const StringVector& Ogre::ParticleSystemManager::getScriptPatterns | ( | void |  | ) | const

Gets the file patterns which should be used to find scripts for this class.

Remarks:
  This method is called when a resource group is loaded if you use ResourceGroupManager::_registerScriptLoader.

Returns:
  A list of file patterns, in the order they should be searched in.

static ParticleSystemManager& Ogre::ParticleSystemManager::getSingleton | ( | void |  | ) | `[static]`

Override standard Singleton retrieval.

Remarks:
  Why do we do this? Well, it's because the Singleton implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the Singleton template to work, but we actually only want it compiled into the implementation of the class based on the Singleton, not all of them. If we don't change this, we get link errors when trying to use the Singleton-based class from an outside dll.

  This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors.

static ParticleSystemManager & Ogre::Singleton< ParticleSystemManager >::getSingleton | ( | void |  | ) | `[static, inherited]`

Definition at line 90 of file OgreSingleton.h.

static ParticleSystemManager * Ogre::Singleton< ParticleSystemManager >::getSingletonPtr | ( | void |  | ) | `[static, inherited]`

Definition at line 92 of file OgreSingleton.h.

static ParticleSystemManager* Ogre::ParticleSystemManager::getSingletonPtr | ( | void |  | ) | `[static]`

Override standard Singleton retrieval.

Remarks:
  Why do we do this? Well, it's because the Singleton implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the Singleton template to work, but we actually only want it compiled into the implementation of the class based on the Singleton, not all of them. If we don't change this, we get link errors when trying to use the Singleton-based class from an outside dll.

  This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors.

ParticleSystem* Ogre::ParticleSystemManager::getTemplate | ( | const String & | name | ) |

Retrieves a particle system template for possible modification.

Remarks:
  Modifying a template does not affect the settings on any ParticleSystems already created from this template.

ParticleSystemTemplateIterator Ogre::ParticleSystemManager::getTemplateIterator | ( | void |  | ) |

Gets an iterator over the list of particle system templates.

Definition at line 341 of file OgreParticleSystemManager.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | `[inherited]`

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |  |
| ) |  |  | `[inherited]`

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | `[inherited]`

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr |
| ) |  |  | `[inherited]`

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | `[inherited]`

Definition at line 90 of file OgreMemoryAllocatedObject.h.

void Ogre::ParticleSystemManager::parseAffectorAttrib | ( | const String & | line,
|  | ParticleAffector * | sys |
| ) |  |  | `[protected]`

Internal script parsing method.

void Ogre::ParticleSystemManager::parseAttrib | ( | const String & | line,
|  | ParticleSystem * | sys |
| ) |  |  | `[protected]`

Internal script parsing method.

void Ogre::ParticleSystemManager::parseEmitterAttrib | ( | const String & | line,
|  | ParticleEmitter * | sys |
| ) |  |  | `[protected]`

Internal script parsing method.

void Ogre::ParticleSystemManager::parseNewAffector | ( | const String & | type,
|  | DataStreamPtr & | chunk,
|  | ParticleSystem * | sys |
| ) |  |  | `[protected]`

Internal script parsing method.

void Ogre::ParticleSystemManager::parseNewEmitter | ( | const String & | type,
|  | DataStreamPtr & | chunk,
|  | ParticleSystem * | sys |
| ) |  |  | `[protected]`

Internal script parsing method.

virtual void Ogre::ScriptLoader::parseScript | ( | DataStreamPtr & | stream,
|  | const String & | groupName |
| ) |  |  | `[pure virtual, inherited]`

Parse a script file.

Parameters:

  | stream | Weak reference to a data stream which is the source of the script
  | groupName | The name of a resource group which should be used if any resources are created during the parse of this script.

void Ogre::ParticleSystemManager::parseScript | ( | DataStreamPtr & | stream,
|  | const String & | groupName |
| ) |  |  |

Parse a script file.

Parameters:

  | stream | Weak reference to a data stream which is the source of the script
  | groupName | The name of a resource group which should be used if any resources are created during the parse of this script.

void Ogre::ParticleSystemManager::removeAllTemplates | ( | bool | deleteTemplate = `true` | ) |

Removes a specified template from the ParticleSystemManager.

Remarks:
  This method removes all templates from the ParticleSystemManager.

Parameters:

  | deleteTemplate | Whether or not to delete the templates before removing them.

void Ogre::ParticleSystemManager::removeTemplate | ( | const String & | name,
|  | bool | deleteTemplate = `true` |
| ) |  |  |

Removes a specified template from the ParticleSystemManager.

Remarks:
  This method removes a given template from the particle system manager, optionally deleting the template if the deleteTemplate method is called. Throws an exception if the template could not be found.

Parameters:

  | name | The name of the template to remove.
  | deleteTemplate | Whether or not to delete the template before removing it.

void Ogre::ParticleSystemManager::removeTemplatesByResourceGroup | ( | const String & | resourceGroup | ) |

Removes all templates that belong to a secific Resource Group from the ParticleSystemManager.

Remarks:
  This method removes all templates that belong in a particular resource group from the ParticleSystemManager.

Parameters:

  | resourceGroup | to delete templates for

void Ogre::ParticleSystemManager::skipToNextCloseBrace | ( | DataStreamPtr & | chunk | ) | `[protected]`

Internal script parsing method.

void Ogre::ParticleSystemManager::skipToNextOpenBrace | ( | DataStreamPtr & | chunk | ) | `[protected]`

Internal script parsing method.

## Friends And Related Function Documentation

friend class ParticleSystemFactory `[friend]`

Definition at line 79 of file OgreParticleSystemManager.h.

## Member Data Documentation

ParticleAffectorFactoryMap Ogre::ParticleSystemManager::mAffectorFactories `[protected]`

Factories for named affector types (can be extended using plugins).

Definition at line 95 of file OgreParticleSystemManager.h.

ParticleEmitterFactoryMap Ogre::ParticleSystemManager::mEmitterFactories `[protected]`

Factories for named emitter types (can be extended using plugins).

Definition at line 92 of file OgreParticleSystemManager.h.

ParticleSystemFactory* Ogre::ParticleSystemManager::mFactory `[protected]`

Definition at line 103 of file OgreParticleSystemManager.h.

ParticleSystemRendererFactoryMap Ogre::ParticleSystemManager::mRendererFactories `[protected]`

Map of renderer types to factories.

Definition at line 98 of file OgreParticleSystemManager.h.

ParticleSystemManager * Ogre::Singleton< ParticleSystemManager >::ms_Singleton `[static, protected, inherited]`

Definition at line 75 of file OgreSingleton.h.

StringVector Ogre::ParticleSystemManager::mScriptPatterns `[protected]`

Definition at line 100 of file OgreParticleSystemManager.h.

OGRE_AUTO_MUTEX ParticleTemplateMap Ogre::ParticleSystemManager::mSystemTemplates `[protected]`

Templates based on scripts.

Definition at line 89 of file OgreParticleSystemManager.h.

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

- OgreParticleSystemManager.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Nov 3 2010 19:24:58