28#ifndef __SceneManagerEnumerator_H__
29#define __SceneManagerEnumerator_H__
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.
const SceneManagerMetaData * getMetaData(const String &typeName) const
Get more information about a given type of SceneManager.
RenderSystem * mCurrentRenderSystem
Currently assigned render system.
vector< constSceneManagerMetaData * >::type MetaDataList
List of available scene manager types as meta data.
MetaDataIterator getMetaDataIterator(void) const
Iterate over all types of SceneManager available for construction, providing some information about e...
list< SceneManagerFactory * >::type Factories
Scene manager factories.
SceneManagerIterator getSceneManagerIterator(void)
Get an iterator over all the existing SceneManager instances.
map< String, SceneManager * >::type Instances
Scene manager instances, indexed by instance name.
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.
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.
ConstVectorIterator< MetaDataList > MetaDataIterator
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.
MapIterator< Instances > SceneManagerIterator
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.
SceneManager(const String &instanceName)
Constructor.
Singleton(const Singleton< SceneManagerEnumerator > &)
static const String BLANK
Constant blank string, useful for returning by ref where local does not exist.
uint16 SceneTypeMask
Bitmask containing scene types.
SceneCtlAllocatedObject SceneMgtAlloc
std::map< K, V, P, A > type