Particle Universe  1.2
ParticleUniverse::ParticleSystemManager Class Reference

#include <ParticleUniverseSystemManager.h>

Inheritance diagram for ParticleUniverse::ParticleSystemManager:

Public Member Functions

 ParticleSystemManager (void)
 
 ~ParticleSystemManager (void)
 
void removeAndDestroyDanglingSceneNodes (Ogre::SceneNode *sceneNode)
 
void destroyAllParticleSystemTemplates (void)
 
BoxSet * createBoxSet (const String &name, Ogre::SceneManager *sceneManager, const uint poolSize=20)
 
void destroyBoxSet (BoxSet *boxSet, Ogre::SceneManager *sceneManager)
 
SphereSet * createSphereSet (const String &name, Ogre::SceneManager *sceneManager, const uint poolSize=20)
 
void destroySphereSet (SphereSet *sphereSet, Ogre::SceneManager *sceneManager)
 
void registerAttachable (Attachable *attachable, Ogre::SceneManager *sceneManager)
 
void unregisterAttachable (Attachable *attachable, Ogre::SceneManager *sceneManager)
 
void addEmitterFactory (ParticleEmitterFactory *factory)
 
ParticleEmitterFactory * getEmitterFactory (const String &emitterType)
 
void removeEmitterFactory (const String &emitterType)
 
void destroyEmitterFactory (const String &emitterType)
 
ParticleEmitter * createEmitter (const String &emitterType)
 
ParticleEmitter * cloneEmitter (ParticleEmitter *emitter)
 
void destroyEmitter (ParticleEmitter *emitter)
 
void addAffectorFactory (ParticleAffectorFactory *factory)
 
ParticleAffectorFactory * getAffectorFactory (const String &affectorType)
 
void removeAffectorFactory (const String &affectorType)
 
void destroyAffectorFactory (const String &affectorType)
 
ParticleAffector * createAffector (const String &affectorType)
 
ParticleAffector * cloneAffector (ParticleAffector *affector)
 
void destroyAffector (ParticleAffector *affector)
 
ParticleTechnique * createTechnique (void)
 
ParticleTechnique * cloneTechnique (ParticleTechnique *technique)
 
void destroyTechnique (ParticleTechnique *technique)
 
void addObserverFactory (ParticleObserverFactory *factory)
 
ParticleObserverFactory * getObserverFactory (const String &observerType)
 
void removeObserverFactory (const String &affectorType)
 
void destroyObserverFactory (const String &observerType)
 
ParticleObserver * createObserver (const String &observerType)
 
ParticleObserver * cloneObserver (ParticleObserver *observer)
 
void destroyObserver (ParticleObserver *observer)
 
void addEventHandlerFactory (ParticleEventHandlerFactory *factory)
 
ParticleEventHandlerFactory * getEventHandlerFactory (const String &eventHandlerType)
 
void removeEventHandlerFactory (const String &affectorType)
 
void destroyEventHandlerFactory (const String &eventHandlerType)
 
ParticleEventHandler * createEventHandler (const String &eventHandlerType)
 
ParticleEventHandler * cloneEventHandler (ParticleEventHandler *eventHandler)
 
void destroyEventHandler (ParticleEventHandler *eventHandler)
 
void addRendererFactory (ParticleRendererFactory *factory)
 
ParticleRendererFactory * getRendererFactory (const String &rendererType)
 
void removeRendererFactory (const String &affectorType)
 
void destroyRendererFactory (const String &rendererType)
 
ParticleRenderer * createRenderer (const String &rendererType)
 
ParticleRenderer * cloneRenderer (ParticleRenderer *renderer)
 
void destroyRenderer (ParticleRenderer *renderer)
 
void addExternFactory (ExternFactory *factory)
 
ExternFactory * getExternFactory (const String &externType)
 
void removeExternFactory (const String &affectorType)
 
void destroyExternFactory (const String &externType)
 
Extern * createExtern (const String &externType)
 
Extern * cloneExtern (Extern *externObject)
 
void destroyExtern (Extern *externObject)
 
void addBehaviourFactory (ParticleBehaviourFactory *factory)
 
ParticleBehaviourFactory * getBehaviourFactory (const String &behaviourType)
 
void removeBehaviourFactory (const String &affectorType)
 
void destroyBehaviourFactory (const String &behaviourType)
 
ParticleBehaviour * createBehaviour (const String &behaviourType)
 
ParticleBehaviour * cloneBehaviour (ParticleBehaviour *behaviour)
 
void destroyBehaviour (ParticleBehaviour *behaviour)
 
ParticleSystem * createParticleSystemTemplate (const String &name, const String &resourceGroupName)
 
void replaceParticleSystemTemplate (const String &name, ParticleSystem *system)
 
const String & getLastCreatedParticleSystemTemplateName (void)
 
void addParticleSystemTemplate (const String &name, ParticleSystem *systemTemplate)
 
ParticleSystem * getParticleSystemTemplate (const String &templateName)
 
void destroyParticleSystemTemplate (const String &templateName)
 
void particleSystemTemplateNames (vector< String > &v)
 
ParticleSystem * createParticleSystem (const String &name, const String &templateName, Ogre::SceneManager *sceneManager)
 
ParticleSystem * createParticleSystem (const String &name, Ogre::SceneManager *sceneManager)
 
ParticleSystem * getParticleSystem (const String &name)
 
void destroyParticleSystem (ParticleSystem *particleSystem, Ogre::SceneManager *sceneManager)
 
void destroyParticleSystem (const String &particleSystemName, Ogre::SceneManager *sceneManager)
 
void destroyAllParticleSystems (Ogre::SceneManager *sceneManager)
 
void addAlias (IAlias *alias)
 
IAlias * getAlias (const String &aliasName)
 
void destroyAlias (IAlias *alias)
 
void destroyAllAliasses (void)
 
AliasMap * _getAliasMap (void)
 
void writeScript (ParticleSystem *particleSystem, const String &fileName)
 
const String & writeScript (ParticleSystem *particleSystem)
 
ParticleScriptSerializer * getParticleScriptSerializer (void) const
 
virtual void write (ParticleScriptSerializer *serializer, const IElement *element)
 
CameraDependency * createCameraDependency (void)
 
void createDepthMap (Camera *camera, Ogre::SceneManager *sceneManager)
 
void destroyDepthMap (void)
 
bool notifyDepthMapNeeded (Camera *camera, Ogre::SceneManager *sceneManager)
 
void registerSoftParticlesRenderer (ParticleRenderer *renderer)
 
void unregisterSoftParticlesRenderer (ParticleRenderer *renderer)
 
Real getDepthScale (void) const
 
void setDepthScale (Real depthScale)
 
const String & getDepthTextureName (void)
 
void setExternDepthTextureName (const String &depthTextureName)
 
void resetExternDepthTextureName (void)
 
DynamicAttribute * createDynamicAttribute (DynamicAttribute::DynamicAttributeType type)
 
bool isAutoLoadMaterials (void) const
 
void setAutoLoadMaterials (bool autoLoadMaterials)
 
- Public Member Functions inherited from Ogre::Singleton< T >
 Singleton (void)
 
 ~Singleton (void)
 
- Public Member Functions inherited from ParticleUniverse::ScriptWriter
 ScriptWriter (void)
 
virtual ~ScriptWriter (void)
 

Static Public Member Functions

static ParticleSystemManager & getSingleton (void)
 
static ParticleSystemManager * getSingletonPtr (void)
 
- Static Public Member Functions inherited from Ogre::Singleton< T >
static T & getSingleton (void)
 
static T * getSingletonPtr (void)
 

Protected Types

typedef map< String, ParticleEmitterFactory * > EmitterFactoryMap
 
typedef map< String, ParticleAffectorFactory * > AffectorFactoryMap
 
typedef map< String, ParticleObserverFactory * > ObserverFactoryMap
 
typedef map< String, ParticleEventHandlerFactory * > EventHandlerFactoryMap
 
typedef map< String, ParticleRendererFactory * > RendererFactoryMap
 
typedef map< String, ExternFactory * > ExternFactoryMap
 
typedef map< String, ParticleBehaviourFactory * > BehaviourFactoryMap
 
typedef map< String, IAlias * > AliasMap
 
typedef map< String, ParticleSystem * > ParticleSystemTemplateMap
 
typedef map< String, ParticleSystem * > ParticleSystemMap
 

Protected Member Functions

ParticleSystem * _createSystemImpl (const String &name)
 
ParticleSystem * _createSystemImpl (const String &name, const String &templateName)
 
void _destroySystemImpl (ParticleSystem *particleSystem)
 

Protected Attributes

ParticleScriptSerializer * mParticleScriptSerializer
 
ParticleSystemWriter mParticleSystemWriter
 
ParticleTechniqueWriter mParticleTechniqueWriter
 
ParticleRendererWriter mParticleRendererWriter
 
ParticleEmitterWriter mParticleEmitterWriter
 
ParticleAffectorWriter mParticleAffectorWriter
 
ParticleObserverWriter mParticleObserverWriter
 
AttachableWriter mAttachableWriter
 
DynamicAttributeWriter mDynamicAttributeWriter
 
CameraDependencyWriter mCameraDependencyWriter
 
EmitterFactoryMap mEmitterFactories
 
AffectorFactoryMap mAffectorFactories
 
ObserverFactoryMap mObserverFactories
 
EventHandlerFactoryMap mEventHandlerFactories
 
RendererFactoryMap mRendererFactories
 
ExternFactoryMap mExternFactories
 
BehaviourFactoryMap mBehaviourFactories
 
AliasMap mAliasMap
 
ParticleSystemTemplateMap mParticleSystemTemplates
 
ParticleSystemMap mParticleSystems
 
ParticleSystemFactory * mParticleSystemFactory
 
BoxSetFactory * mBoxSetFactory
 
SphereSetFactory * mSphereSetFactory
 
ParticleSystemManagerWriter mParticleSystemManagerWriter
 
CameraDependency mCameraDependency
 
bool mAutoLoadMaterials
 
DepthMapTargetListener mDepthMapTargetListener
 
String mDepthTextureName
 
String mDepthMaterialName
 
String mDepthVertexName
 
String mDepthFragmentName
 
Ogre::RenderTexture * mDepthMap
 
Ogre::Technique * mDepthTechnique
 
Ogre::Pass * mDepthPass
 
bool mDepthMapExtern
 
Real mDepthScale
 
String mLastCreatedParticleSystemTemplateName
 
BuiltinScriptTranslatorManager * mBuiltinScriptTranslatorManager
 

Friends

class ParticleSystemFactory
 

Detailed Description

The ParticleSystemManager manages particle systems, particle system scripts (templates), etc. It is also responsible for actually creating techniques, emitters, observers, etc.

Member Typedef Documentation

Constructor & Destructor Documentation

ParticleUniverse::ParticleSystemManager::ParticleSystemManager ( void  )
ParticleUniverse::ParticleSystemManager::~ParticleSystemManager ( void  )

Member Function Documentation

ParticleSystem* ParticleUniverse::ParticleSystemManager::_createSystemImpl ( const String &  name)
protected

Implementation of creating a particle system used by the MovableObject factory.

Remarks
This function must not be used directly.
ParticleSystem* ParticleUniverse::ParticleSystemManager::_createSystemImpl ( const String &  name,
const String &  templateName 
)
protected

Implementation of creating a particle system used by the MovableObject factory.

Remarks
This function must not be used directly.
void ParticleUniverse::ParticleSystemManager::_destroySystemImpl ( ParticleSystem *  particleSystem)
protected

Delete a particle system.

Remarks
This is a protected function used by the ParticleSystemManager itself.
AliasMap* ParticleUniverse::ParticleSystemManager::_getAliasMap ( void  )

Returns the alias map. Not for general purposes; only use it if you really need it.

void ParticleUniverse::ParticleSystemManager::addAffectorFactory ( ParticleAffectorFactory *  factory)

Add a ParticleAffectorFactory to this ParticleSystemManager.

Remarks
ParticleAffectorFactories, ParticleEmitterFactories, ... can be registered by the ParticleSystemManager. This is done by means of their type. If a certain ParticleAffector, ParticleEmitter, ... must be created, the appropriate factory is searched (by means of its type), which created the object needed.
Parameters
factoryPointer to a ParticleAffectorFactory subclass created by the plugin or application code.
void ParticleUniverse::ParticleSystemManager::addAlias ( IAlias *  alias)

Add an alias to this ParticleSystemManager.

Remarks
An alias is a ParticleTechnique, ParticleEmitter, ParticleAffector, etc. and forms the blueprint to create copies. These copies can be used again in ParticleSystems (templates). An alias is similar to a template, but where templates are restricted to ParticleSystems, aliasses can be any type of object that inherits from IAlias.
void ParticleUniverse::ParticleSystemManager::addBehaviourFactory ( ParticleBehaviourFactory *  factory)

Add a BehaviourFactory to this ParticleSystemManager.

void ParticleUniverse::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. Particle emitters are sources of particles, and generate new particles with their start positions, colours and momentums appropriately.
All particle emitter factories have an assigned name which is used to identify the emitter type. This must be unique.
Parameters
factoryPointer to a ParticleEmitterFactory subclass created by the plugin or application code.
void ParticleUniverse::ParticleSystemManager::addEventHandlerFactory ( ParticleEventHandlerFactory *  factory)

Add a ParticleEventHandlerFactory to this ParticleSystemManager.

Parameters
factoryPointer to a ParticleEventHandlerFactory subclass created by the plugin or application code.
void ParticleUniverse::ParticleSystemManager::addExternFactory ( ExternFactory *  factory)
void ParticleUniverse::ParticleSystemManager::addObserverFactory ( ParticleObserverFactory *  factory)

Add a ParticleObserverFactory to this ParticleSystemManager.

Parameters
factoryPointer to a ParticleObserverFactory subclass created by the plugin or application code.
void ParticleUniverse::ParticleSystemManager::addParticleSystemTemplate ( const String &  name,
ParticleSystem *  systemTemplate 
)

Add a ParticleSystem template to this ParticleSystemManager.

void ParticleUniverse::ParticleSystemManager::addRendererFactory ( ParticleRendererFactory *  factory)
ParticleAffector* ParticleUniverse::ParticleSystemManager::cloneAffector ( ParticleAffector *  affector)

Clone a ParticleAffector.

ParticleBehaviour* ParticleUniverse::ParticleSystemManager::cloneBehaviour ( ParticleBehaviour *  behaviour)

Clone a Behaviour object.

ParticleEmitter* ParticleUniverse::ParticleSystemManager::cloneEmitter ( ParticleEmitter *  emitter)

Clone a ParticleEmitter.

ParticleEventHandler* ParticleUniverse::ParticleSystemManager::cloneEventHandler ( ParticleEventHandler *  eventHandler)
Extern* ParticleUniverse::ParticleSystemManager::cloneExtern ( Extern *  externObject)

Clone an Extern object.

ParticleObserver* ParticleUniverse::ParticleSystemManager::cloneObserver ( ParticleObserver *  observer)

Clone a ParticleObserver.

ParticleRenderer* ParticleUniverse::ParticleSystemManager::cloneRenderer ( ParticleRenderer *  renderer)

Clone a ParticleRenderer.

ParticleTechnique* ParticleUniverse::ParticleSystemManager::cloneTechnique ( ParticleTechnique *  technique)
ParticleAffector* ParticleUniverse::ParticleSystemManager::createAffector ( const String &  affectorType)

Create a ParticleAffector given a type.

ParticleBehaviour* ParticleUniverse::ParticleSystemManager::createBehaviour ( const String &  behaviourType)

Create a Behaviour object.

BoxSet* ParticleUniverse::ParticleSystemManager::createBoxSet ( const String &  name,
Ogre::SceneManager *  sceneManager,
const uint  poolSize = 20 
)

Create a BoxSet. This is similar to a BillboardSet, instead it uses boxes.

CameraDependency* ParticleUniverse::ParticleSystemManager::createCameraDependency ( void  )

Returns Camera Dependency.

Remarks
CameraDependency is used as a container that stores data parsed from a particle script.
void ParticleUniverse::ParticleSystemManager::createDepthMap ( Camera *  camera,
Ogre::SceneManager *  sceneManager 
)

Create a depth map (texture) of all visible scene objects, except overlays and particle systems that render soft particles.

DynamicAttribute* ParticleUniverse::ParticleSystemManager::createDynamicAttribute ( DynamicAttribute::DynamicAttributeType  type)

Create a DynamicAttribute.

Remarks
This can be called from outside the plugin, memory is allocated correctly.
ParticleEmitter* ParticleUniverse::ParticleSystemManager::createEmitter ( const String &  emitterType)

Method for creating a new emitter from a factory.

Parameters
emitterTypeString name of the emitter type to be created. A factory of this type must have been registered.
ParticleEventHandler* ParticleUniverse::ParticleSystemManager::createEventHandler ( const String &  eventHandlerType)

Create a ParticleEventHandler given a certain type.

Extern* ParticleUniverse::ParticleSystemManager::createExtern ( const String &  externType)

Create an Extern object.

ParticleObserver* ParticleUniverse::ParticleSystemManager::createObserver ( const String &  observerType)

Create a ParticleObserver given a certain type.

ParticleSystem* ParticleUniverse::ParticleSystemManager::createParticleSystem ( const String &  name,
const String &  templateName,
Ogre::SceneManager *  sceneManager 
)

Creates a ParticleSystem, using a template as a blueprint.

Remarks
This is the function that must be used by the client application that wants to create a ParticleSystem.
ParticleSystem* ParticleUniverse::ParticleSystemManager::createParticleSystem ( const String &  name,
Ogre::SceneManager *  sceneManager 
)

Creates a default ParticleSystem.

Remarks
This is the function that must be used by the client application that wants to create a ParticleSystem.
ParticleSystem* ParticleUniverse::ParticleSystemManager::createParticleSystemTemplate ( const String &  name,
const String &  resourceGroupName 
)

Create a ParticleSystemTemplate.

Remarks
ParticleSystemTemplates contain a ParticleSystem and form a blueprint for other ParticleSystems. Given the name of the template, a copy is made of the ParticleSystem. This copy can be used in your application. The ParticleSystem templates however are restricted to the ParticleSystemManager.
ParticleRenderer* ParticleUniverse::ParticleSystemManager::createRenderer ( const String &  rendererType)

Create a ParticleRenderer.

SphereSet* ParticleUniverse::ParticleSystemManager::createSphereSet ( const String &  name,
Ogre::SceneManager *  sceneManager,
const uint  poolSize = 20 
)

Create a SphereSet. This is similar to a BillboardSet, instead it uses spheres.

ParticleTechnique* ParticleUniverse::ParticleSystemManager::createTechnique ( void  )

Create a ParticleTechnique.

void ParticleUniverse::ParticleSystemManager::destroyAffector ( ParticleAffector *  affector)

Delete a ParticleAffector.

void ParticleUniverse::ParticleSystemManager::destroyAffectorFactory ( const String &  affectorType)

Delete a ParticleAffectorFactory. Search by its type.

void ParticleUniverse::ParticleSystemManager::destroyAlias ( IAlias *  alias)

Delete an alias from the ParticleSystemManager.

void ParticleUniverse::ParticleSystemManager::destroyAllAliasses ( void  )

Delete all aliasses.

void ParticleUniverse::ParticleSystemManager::destroyAllParticleSystems ( Ogre::SceneManager *  sceneManager)

Destroy all registered particle systems.

Remarks
Particle Systems are NOT automatically destroyed if the ParticleSystemManager is destroyed. The reason is, that the ParticleSystemManager is destroyed when the plugin is unloaded, which is too late. Before a scene is cleared, all particle systems must be deleted first (manually).
void ParticleUniverse::ParticleSystemManager::destroyAllParticleSystemTemplates ( void  )

Remove all registered templates

void ParticleUniverse::ParticleSystemManager::destroyBehaviour ( ParticleBehaviour *  behaviour)

Delete a Behaviour object.

void ParticleUniverse::ParticleSystemManager::destroyBehaviourFactory ( const String &  behaviourType)

Delete a BehaviourFactory given a certain type.

void ParticleUniverse::ParticleSystemManager::destroyBoxSet ( BoxSet *  boxSet,
Ogre::SceneManager *  sceneManager 
)

Destroy the BoxSet.

void ParticleUniverse::ParticleSystemManager::destroyDepthMap ( void  )

Perform cleanup activities.

void ParticleUniverse::ParticleSystemManager::destroyEmitter ( ParticleEmitter *  emitter)

Delete a ParticleEmitter.

void ParticleUniverse::ParticleSystemManager::destroyEmitterFactory ( const String &  emitterType)

Delete an ParticleEmitterFactory. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::destroyEventHandler ( ParticleEventHandler *  eventHandler)
void ParticleUniverse::ParticleSystemManager::destroyEventHandlerFactory ( const String &  eventHandlerType)

Delete a ParticleEventHandlerFactory given a certain type.

void ParticleUniverse::ParticleSystemManager::destroyExtern ( Extern *  externObject)

Delete an Extern object.

void ParticleUniverse::ParticleSystemManager::destroyExternFactory ( const String &  externType)

Delete a ExternFactory given a certain type.

void ParticleUniverse::ParticleSystemManager::destroyObserver ( ParticleObserver *  observer)

Destroye a ParticleObserver.

void ParticleUniverse::ParticleSystemManager::destroyObserverFactory ( const String &  observerType)

Delete a ParticleObserverFactory given its type.

void ParticleUniverse::ParticleSystemManager::destroyParticleSystem ( ParticleSystem *  particleSystem,
Ogre::SceneManager *  sceneManager 
)

This is the function that must be used by the client application that wants to delete a ParticleSystem.

void ParticleUniverse::ParticleSystemManager::destroyParticleSystem ( const String &  particleSystemName,
Ogre::SceneManager *  sceneManager 
)

Delete a ParticleSystem.

Remarks
This implementation deletes a ParticleSystem identified by its name. The function always validates whether the name still exists.
void ParticleUniverse::ParticleSystemManager::destroyParticleSystemTemplate ( const String &  templateName)

Remove a particle system template and delete it.

void ParticleUniverse::ParticleSystemManager::destroyRenderer ( ParticleRenderer *  renderer)

Delete a ParticleRenderer.

void ParticleUniverse::ParticleSystemManager::destroyRendererFactory ( const String &  rendererType)

Delete a ParticleRendererFactory given a certain type.

void ParticleUniverse::ParticleSystemManager::destroySphereSet ( SphereSet *  sphereSet,
Ogre::SceneManager *  sceneManager 
)

Destroy the SphereSet.

void ParticleUniverse::ParticleSystemManager::destroyTechnique ( ParticleTechnique *  technique)

Delete a ParticleTechnique.

ParticleAffectorFactory* ParticleUniverse::ParticleSystemManager::getAffectorFactory ( const String &  affectorType)
IAlias* ParticleUniverse::ParticleSystemManager::getAlias ( const String &  aliasName)

Returns an alias.

ParticleBehaviourFactory* ParticleUniverse::ParticleSystemManager::getBehaviourFactory ( const String &  behaviourType)
Real ParticleUniverse::ParticleSystemManager::getDepthScale ( void  ) const

Used to scale the values of the generated depth map

const String& ParticleUniverse::ParticleSystemManager::getDepthTextureName ( void  )

Returns the name of the depth texture.

ParticleEmitterFactory* ParticleUniverse::ParticleSystemManager::getEmitterFactory ( const String &  emitterType)
ParticleEventHandlerFactory* ParticleUniverse::ParticleSystemManager::getEventHandlerFactory ( const String &  eventHandlerType)
ExternFactory* ParticleUniverse::ParticleSystemManager::getExternFactory ( const String &  externType)

Searches an ExternFactory.

const String& ParticleUniverse::ParticleSystemManager::getLastCreatedParticleSystemTemplateName ( void  )

Returns the name of the last created template. Because the templates are often created by means of a script, it is not straightforward to get the template name. It is embedded in the script. Only afterwards it is possible to get the name of the created template, by using this function.

ParticleObserverFactory* ParticleUniverse::ParticleSystemManager::getObserverFactory ( const String &  observerType)
ParticleScriptSerializer* ParticleUniverse::ParticleSystemManager::getParticleScriptSerializer ( void  ) const

Returns the ParticleScriptSerializer.

Remarks
The ParticleScriptSerializer is the main class responsible for serializing a Particle System to a script.
ParticleSystem* ParticleUniverse::ParticleSystemManager::getParticleSystem ( const String &  name)

Get a ParticleSystem by name.

ParticleSystem* ParticleUniverse::ParticleSystemManager::getParticleSystemTemplate ( const String &  templateName)

Retrieves a particle system template.

ParticleRendererFactory* ParticleUniverse::ParticleSystemManager::getRendererFactory ( const String &  rendererType)
static ParticleSystemManager& ParticleUniverse::ParticleSystemManager::getSingleton ( void  )
static

Override standard Singleton retrieval.

static ParticleSystemManager* ParticleUniverse::ParticleSystemManager::getSingletonPtr ( void  )
static

Override standard Singleton retrieval.

bool ParticleUniverse::ParticleSystemManager::isAutoLoadMaterials ( void  ) const

Determines whether materials must be loaded dynamically or not. If the function returns 'false', the materials must be loaded manually.

bool ParticleUniverse::ParticleSystemManager::notifyDepthMapNeeded ( Camera *  camera,
Ogre::SceneManager *  sceneManager 
)

Notify the Particle System Manager that is depthmap is needed.

void ParticleUniverse::ParticleSystemManager::particleSystemTemplateNames ( vector< String > &  v)

Fill a list of template names in the vector.

void ParticleUniverse::ParticleSystemManager::registerAttachable ( Attachable *  attachable,
Ogre::SceneManager *  sceneManager 
)

Registers a previously created Attachable. This is needed, because the scenemanager has to know.

void ParticleUniverse::ParticleSystemManager::registerSoftParticlesRenderer ( ParticleRenderer *  renderer)

Register the renderer, because it renders soft particles.

Remarks
Registration of the renderers is done by the ParticleSystemManager, because the depthmap that is used for soft particles is rendered only once under management of the ParticleSystemManager. The reason why the renderers are registered and not the complete ParticleSystems is to allow that ParticleSystem can contain a ParticleTechnique with soft particles and one without (also in relation to LOD strategies).
void ParticleUniverse::ParticleSystemManager::removeAffectorFactory ( const String &  affectorType)

Remove an ParticleAffectorFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeAndDestroyDanglingSceneNodes ( Ogre::SceneNode *  sceneNode)

Removes and deletes any SceneNode was created by a Particle System

Remarks
SceneNodes are created for certain situations (i.e. EntityRenderer), but just deleting them in the destructor of the Particle System gives unpredictable results.
void ParticleUniverse::ParticleSystemManager::removeBehaviourFactory ( const String &  affectorType)

Remove an ParticleBehaviourFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeEmitterFactory ( const String &  emitterType)

Remove an ParticleEmitterFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeEventHandlerFactory ( const String &  affectorType)

Remove an ParticleEventHandlerFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeExternFactory ( const String &  affectorType)

Remove an ParticleExternFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeObserverFactory ( const String &  affectorType)

Remove an ParticleObserverFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::removeRendererFactory ( const String &  affectorType)

Remove an ParticleRendererFactory, but doesn't delete it. Search the factory by its type.

void ParticleUniverse::ParticleSystemManager::replaceParticleSystemTemplate ( const String &  name,
ParticleSystem *  system 
)

Replace a ParticleSystemTemplate with an existing Particle System.

Remarks
The existing Particle System is cloned and still exists after the call.
void ParticleUniverse::ParticleSystemManager::resetExternDepthTextureName ( void  )

Reset the external depth texture name, so it is not used anymore.

void ParticleUniverse::ParticleSystemManager::setAutoLoadMaterials ( bool  autoLoadMaterials)

Determines whether materials must be loaded dynamically or not.

Remarks
This function gives more control over loading the materials.
void ParticleUniverse::ParticleSystemManager::setDepthScale ( Real  depthScale)
void ParticleUniverse::ParticleSystemManager::setExternDepthTextureName ( const String &  depthTextureName)

Set a depth texture name from a depthmap that is created outside Particle Universe. This means that the external source also has to take into account that the Particle Universe particles are excluded from the depth map.

void ParticleUniverse::ParticleSystemManager::unregisterAttachable ( Attachable *  attachable,
Ogre::SceneManager *  sceneManager 
)

Unregisters a created Attachable.

void ParticleUniverse::ParticleSystemManager::unregisterSoftParticlesRenderer ( ParticleRenderer *  renderer)

Unregister the renderer, because it will not use soft particles anymore.

virtual void ParticleUniverse::ParticleSystemManager::write ( ParticleScriptSerializer *  serializer,
const IElement *  element 
)
inlinevirtual
void ParticleUniverse::ParticleSystemManager::writeScript ( ParticleSystem *  particleSystem,
const String &  fileName 
)

Writes a ParticleSystem to a file in the script format.

const String& ParticleUniverse::ParticleSystemManager::writeScript ( ParticleSystem *  particleSystem)

Writes a ParticleSystem to string in the script format.

Friends And Related Function Documentation

friend class ParticleSystemFactory
friend

Member Data Documentation

AffectorFactoryMap ParticleUniverse::ParticleSystemManager::mAffectorFactories
protected
AliasMap ParticleUniverse::ParticleSystemManager::mAliasMap
protected
AttachableWriter ParticleUniverse::ParticleSystemManager::mAttachableWriter
protected
bool ParticleUniverse::ParticleSystemManager::mAutoLoadMaterials
protected
BehaviourFactoryMap ParticleUniverse::ParticleSystemManager::mBehaviourFactories
protected
BoxSetFactory* ParticleUniverse::ParticleSystemManager::mBoxSetFactory
protected
BuiltinScriptTranslatorManager* ParticleUniverse::ParticleSystemManager::mBuiltinScriptTranslatorManager
protected
CameraDependency ParticleUniverse::ParticleSystemManager::mCameraDependency
protected
CameraDependencyWriter ParticleUniverse::ParticleSystemManager::mCameraDependencyWriter
protected
String ParticleUniverse::ParticleSystemManager::mDepthFragmentName
protected
Ogre::RenderTexture* ParticleUniverse::ParticleSystemManager::mDepthMap
protected
bool ParticleUniverse::ParticleSystemManager::mDepthMapExtern
protected
DepthMapTargetListener ParticleUniverse::ParticleSystemManager::mDepthMapTargetListener
protected
String ParticleUniverse::ParticleSystemManager::mDepthMaterialName
protected
Ogre::Pass* ParticleUniverse::ParticleSystemManager::mDepthPass
protected
Real ParticleUniverse::ParticleSystemManager::mDepthScale
protected
Ogre::Technique* ParticleUniverse::ParticleSystemManager::mDepthTechnique
protected
String ParticleUniverse::ParticleSystemManager::mDepthTextureName
protected
String ParticleUniverse::ParticleSystemManager::mDepthVertexName
protected
DynamicAttributeWriter ParticleUniverse::ParticleSystemManager::mDynamicAttributeWriter
protected
EmitterFactoryMap ParticleUniverse::ParticleSystemManager::mEmitterFactories
protected
EventHandlerFactoryMap ParticleUniverse::ParticleSystemManager::mEventHandlerFactories
protected
ExternFactoryMap ParticleUniverse::ParticleSystemManager::mExternFactories
protected
String ParticleUniverse::ParticleSystemManager::mLastCreatedParticleSystemTemplateName
protected
ObserverFactoryMap ParticleUniverse::ParticleSystemManager::mObserverFactories
protected
ParticleAffectorWriter ParticleUniverse::ParticleSystemManager::mParticleAffectorWriter
protected
ParticleEmitterWriter ParticleUniverse::ParticleSystemManager::mParticleEmitterWriter
protected
ParticleObserverWriter ParticleUniverse::ParticleSystemManager::mParticleObserverWriter
protected
ParticleRendererWriter ParticleUniverse::ParticleSystemManager::mParticleRendererWriter
protected
ParticleScriptSerializer* ParticleUniverse::ParticleSystemManager::mParticleScriptSerializer
protected
ParticleSystemFactory* ParticleUniverse::ParticleSystemManager::mParticleSystemFactory
protected
ParticleSystemManagerWriter ParticleUniverse::ParticleSystemManager::mParticleSystemManagerWriter
protected
ParticleSystemMap ParticleUniverse::ParticleSystemManager::mParticleSystems
protected
ParticleSystemTemplateMap ParticleUniverse::ParticleSystemManager::mParticleSystemTemplates
protected
ParticleSystemWriter ParticleUniverse::ParticleSystemManager::mParticleSystemWriter
protected
ParticleTechniqueWriter ParticleUniverse::ParticleSystemManager::mParticleTechniqueWriter
protected
RendererFactoryMap ParticleUniverse::ParticleSystemManager::mRendererFactories
protected
SphereSetFactory* ParticleUniverse::ParticleSystemManager::mSphereSetFactory
protected

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