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)
 
BoxSetcreateBoxSet (const String &name, Ogre::SceneManager *sceneManager, const uint poolSize=20)
 
void destroyBoxSet (BoxSet *boxSet, Ogre::SceneManager *sceneManager)
 
SphereSetcreateSphereSet (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)
 
ParticleEmitterFactorygetEmitterFactory (const String &emitterType)
 
void removeEmitterFactory (const String &emitterType)
 
void destroyEmitterFactory (const String &emitterType)
 
ParticleEmittercreateEmitter (const String &emitterType)
 
ParticleEmittercloneEmitter (ParticleEmitter *emitter)
 
void destroyEmitter (ParticleEmitter *emitter)
 
void addAffectorFactory (ParticleAffectorFactory *factory)
 
ParticleAffectorFactorygetAffectorFactory (const String &affectorType)
 
void removeAffectorFactory (const String &affectorType)
 
void destroyAffectorFactory (const String &affectorType)
 
ParticleAffectorcreateAffector (const String &affectorType)
 
ParticleAffectorcloneAffector (ParticleAffector *affector)
 
void destroyAffector (ParticleAffector *affector)
 
ParticleTechniquecreateTechnique (void)
 
ParticleTechniquecloneTechnique (ParticleTechnique *technique)
 
void destroyTechnique (ParticleTechnique *technique)
 
void addObserverFactory (ParticleObserverFactory *factory)
 
ParticleObserverFactorygetObserverFactory (const String &observerType)
 
void removeObserverFactory (const String &affectorType)
 
void destroyObserverFactory (const String &observerType)
 
ParticleObservercreateObserver (const String &observerType)
 
ParticleObservercloneObserver (ParticleObserver *observer)
 
void destroyObserver (ParticleObserver *observer)
 
void addEventHandlerFactory (ParticleEventHandlerFactory *factory)
 
ParticleEventHandlerFactorygetEventHandlerFactory (const String &eventHandlerType)
 
void removeEventHandlerFactory (const String &affectorType)
 
void destroyEventHandlerFactory (const String &eventHandlerType)
 
ParticleEventHandlercreateEventHandler (const String &eventHandlerType)
 
ParticleEventHandlercloneEventHandler (ParticleEventHandler *eventHandler)
 
void destroyEventHandler (ParticleEventHandler *eventHandler)
 
void addRendererFactory (ParticleRendererFactory *factory)
 
ParticleRendererFactorygetRendererFactory (const String &rendererType)
 
void removeRendererFactory (const String &affectorType)
 
void destroyRendererFactory (const String &rendererType)
 
ParticleRenderercreateRenderer (const String &rendererType)
 
ParticleRenderercloneRenderer (ParticleRenderer *renderer)
 
void destroyRenderer (ParticleRenderer *renderer)
 
void addExternFactory (ExternFactory *factory)
 
ExternFactorygetExternFactory (const String &externType)
 
void removeExternFactory (const String &affectorType)
 
void destroyExternFactory (const String &externType)
 
ExterncreateExtern (const String &externType)
 
ExterncloneExtern (Extern *externObject)
 
void destroyExtern (Extern *externObject)
 
void addBehaviourFactory (ParticleBehaviourFactory *factory)
 
ParticleBehaviourFactorygetBehaviourFactory (const String &behaviourType)
 
void removeBehaviourFactory (const String &affectorType)
 
void destroyBehaviourFactory (const String &behaviourType)
 
ParticleBehaviourcreateBehaviour (const String &behaviourType)
 
ParticleBehaviourcloneBehaviour (ParticleBehaviour *behaviour)
 
void destroyBehaviour (ParticleBehaviour *behaviour)
 
ParticleSystemcreateParticleSystemTemplate (const String &name, const String &resourceGroupName)
 
void replaceParticleSystemTemplate (const String &name, ParticleSystem *system)
 
const StringgetLastCreatedParticleSystemTemplateName (void)
 
void addParticleSystemTemplate (const String &name, ParticleSystem *systemTemplate)
 
ParticleSystemgetParticleSystemTemplate (const String &templateName)
 
void destroyParticleSystemTemplate (const String &templateName)
 
void particleSystemTemplateNames (vector< String > &v)
 
ParticleSystemcreateParticleSystem (const String &name, const String &templateName, Ogre::SceneManager *sceneManager)
 
ParticleSystemcreateParticleSystem (const String &name, Ogre::SceneManager *sceneManager)
 
ParticleSystemgetParticleSystem (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)
 
IAliasgetAlias (const String &aliasName)
 
void destroyAlias (IAlias *alias)
 
void destroyAllAliasses (void)
 
AliasMap_getAliasMap (void)
 
void writeScript (ParticleSystem *particleSystem, const String &fileName)
 
const StringwriteScript (ParticleSystem *particleSystem)
 
ParticleScriptSerializergetParticleScriptSerializer (void) const
 
virtual void write (ParticleScriptSerializer *serializer, const IElement *element)
 
CameraDependencycreateCameraDependency (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 StringgetDepthTextureName (void)
 
void setExternDepthTextureName (const String &depthTextureName)
 
void resetExternDepthTextureName (void)
 
DynamicAttributecreateDynamicAttribute (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 ParticleSystemManagergetSingleton (void)
 
static ParticleSystemManagergetSingletonPtr (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

ParticleScriptSerializermParticleScriptSerializer
 
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
 
ParticleSystemFactorymParticleSystemFactory
 
BoxSetFactorymBoxSetFactory
 
SphereSetFactorymSphereSetFactory
 
ParticleSystemManagerWriter mParticleSystemManagerWriter
 
CameraDependency mCameraDependency
 
bool mAutoLoadMaterials
 
DepthMapTargetListener mDepthMapTargetListener
 
String mDepthTextureName
 
String mDepthMaterialName
 
String mDepthVertexName
 
String mDepthFragmentName
 
Ogre::RenderTexturemDepthMap
 
Ogre::TechniquemDepthTechnique
 
Ogre::PassmDepthPass
 
bool mDepthMapExtern
 
Real mDepthScale
 
String mLastCreatedParticleSystemTemplateName
 
BuiltinScriptTranslatorManagermBuiltinScriptTranslatorManager
 

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: