28#ifndef __SceneManagerEnumerator_H__
29#define __SceneManagerEnumerator_H__
153 const String& instanceName = StringUtil::BLANK);
168 const String& instanceName = StringUtil::BLANK);
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Concrete IteratorWrapper for const access to the underlying container.
Factory for default scene manager.
SceneManager * createInstance(const String &instanceName)
Create a new instance of a SceneManager.
~DefaultSceneManagerFactory()
void initMetaData(void) const
Internal method to initialise the metadata, must be implemented.
void destroyInstance(SceneManager *instance)
Destroy an instance of a SceneManager.
static const String FACTORY_TYPE_NAME
Factory type name.
DefaultSceneManagerFactory()
const String & getTypeName(void) const
Retrieve the type name of this scene manager.
DefaultSceneManager(const String &name)
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Defines the functionality of a 3D API.
Enumerates the SceneManager classes available to applications.
const SceneManagerMetaData * getMetaData(const String &typeName) const
Get more information about a given type of SceneManager.
RenderSystem * mCurrentRenderSystem
Currently assigned render system.
MapIterator< Instances > SceneManagerIterator
MetaDataIterator getMetaDataIterator(void) const
Iterate over all types of SceneManager available for construction, providing some information about e...
SceneManagerIterator getSceneManagerIterator(void)
Get an iterator over all the existing SceneManager instances.
DefaultSceneManagerFactory mDefaultFactory
Factory for default scene manager.
SceneManager * getSceneManager(const String &instanceName) const
Get an existing SceneManager instance that has already been created, identified by the instance name.
unsigned long mInstanceCreateCount
Count of creations for auto-naming.
static SceneManagerEnumerator * getSingletonPtr(void)
Override standard Singleton retrieval.
void destroySceneManager(SceneManager *sm)
Destroy an instance of a SceneManager.
MetaDataList mMetaDataList
Stored separately to allow iteration.
map< String, SceneManager * >::type Instances
Scene manager instances, indexed by instance name.
bool hasSceneManager(const String &instanceName) const
Identify if a SceneManager instance already exists.
SceneManager * createSceneManager(SceneTypeMask typeMask, const String &instanceName=StringUtil::BLANK)
Create a SceneManager instance based on scene type support.
vector< constSceneManagerMetaData * >::type MetaDataList
List of available scene manager types as meta data.
SceneManager * createSceneManager(const String &typeName, const String &instanceName=StringUtil::BLANK)
Create a SceneManager instance of a given type.
static SceneManagerEnumerator & getSingleton(void)
Override standard Singleton retrieval.
void addFactory(SceneManagerFactory *fact)
Register a new SceneManagerFactory.
void removeFactory(SceneManagerFactory *fact)
Remove a SceneManagerFactory.
ConstVectorIterator< MetaDataList > MetaDataIterator
list< SceneManagerFactory * >::type Factories
Scene manager factories.
void setRenderSystem(RenderSystem *rs)
Notifies all SceneManagers of the destination rendering system.
~SceneManagerEnumerator()
void shutdownAll(void)
Utility method to control shutdown of the managers.
Class which will create instances of a given SceneManager.
Manages the organisation and rendering of a 'scene' i.e.
Template class for creating single-instance global classes.
uint16 SceneTypeMask
Bitmask containing scene types.
std::map< K, V, P, A > type