#include <Scene.h>
Public Member Functions | |
| Scene () | |
| Scene (Ogre::SceneType sceneType) | |
| Scene (Ogre::SceneManager *sceneManager) | |
| ~Scene () | |
| Ogre::SceneManager * | GetOgreSceneManager () |
| Ogre::Entity * | CreateOgreEntity (tGameObjectPtr gameObject) |
| void | RemoveEntity (Ogre::Entity *entity) |
| void | RemoveEntity (tGameObjectPtr gameObject) |
| tGameObjectID | GetGameObjectID (Ogre::Entity *entity) |
| tGameObjectPtr | GetGameObject (Ogre::Entity *entity) |
| Ogre::Camera * | CreateOgreCamera () |
| Ogre::Camera * | GetOgreCamera () |
Private Types | |
| typedef std::map< Ogre::Entity *, tGameObjectID > | tEntityGameObjectMap |
Private Attributes | |
| tEntityGameObjectMap | mEntityGameObjectMap |
| Ogre::SceneManager * | mOgreScene |
| Ogre::Camera * | mOgreCamera |
Definition at line 44 of file Scene.h.
typedef std::map< Ogre::Entity*, tGameObjectID > pcce::Scene::tEntityGameObjectMap [private] |
| Scene::Scene | ( | ) |
Definition at line 42 of file Scene.cpp.
References mOgreScene.
00042 : mEntityGameObjectMap(), mOgreScene(NULL), mOgreCamera(NULL) { 00043 mOgreScene = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC); 00044 }
| Scene::Scene | ( | Ogre::SceneType | sceneType | ) |
Definition at line 46 of file Scene.cpp.
References mOgreScene.
00046 : mOgreScene(NULL), mOgreCamera(NULL) { 00047 mOgreScene = Ogre::Root::getSingleton().createSceneManager(sceneType); 00048 }
| Scene::Scene | ( | Ogre::SceneManager * | sceneManager | ) |
Definition at line 50 of file Scene.cpp.
References mOgreCamera, mOgreScene, and PCCE_CHECK.
00050 : mOgreScene(sceneManager), mOgreCamera(NULL) { 00051 Ogre::SceneManager::CameraIterator c = mOgreScene->getCameraIterator(); 00052 if (c.hasMoreElements()) { 00053 mOgreCamera = c.getNext(); 00054 PCCE_CHECK(mOgreCamera != NULL, "Scene Ogre::CameraIterator returned null"); 00055 } 00056 PCCE_CHECK(!c.hasMoreElements(), "Scene cannot have multiple cameras"); 00057 }
| Scene::~Scene | ( | ) |
Definition at line 59 of file Scene.cpp.
References pcce::Singleton< T >::Get(), and mOgreScene.
00059 { 00060 tIEventPtr sceneEvent(new DeleteSceneEvent(mOgreScene)); 00061 EventSystemSingleton::Get()->DispatchEvent(sceneEvent); 00062 }
| Ogre::SceneManager * Scene::GetOgreSceneManager | ( | ) |
Definition at line 64 of file Scene.cpp.
References mOgreScene.
00064 { 00065 return mOgreScene; 00066 }
| Ogre::Entity * Scene::CreateOgreEntity | ( | tGameObjectPtr | gameObject | ) |
Definition at line 68 of file Scene.cpp.
References mEntityGameObjectMap, mOgreScene, and PCCE_CHECK.
00068 { 00069 PCCE_CHECK(gameObject, "Scene::CreateOgreEntity: Cannot add empty game object to scene"); 00070 PCCE_CHECK(!gameObject->HasEntity(), "Scene::CreateOgreEntity: Game object already has entity"); 00071 00072 Ogre::Entity* result = mOgreScene->createEntity("", ""); 00073 mEntityGameObjectMap.insert(tEntityGameObjectMap::value_type(result, gameObject->GetID())); 00074 gameObject->SetEntity(result); 00075 00076 return result; 00077 }
| void Scene::RemoveEntity | ( | Ogre::Entity * | entity | ) |
Definition at line 79 of file Scene.cpp.
References pcce::Singleton< T >::Get(), and mEntityGameObjectMap.
00079 { 00080 tEntityGameObjectMap::iterator i = mEntityGameObjectMap.find(entity); 00081 if (i != mEntityGameObjectMap.end()) { 00082 tGameObjectPtr gameObject = GameObjectDBSingleton::Get()->GetGameObject(i->second); 00083 mEntityGameObjectMap.erase(i); 00084 gameObject->SetEntity(NULL); 00085 } 00086 }
| void Scene::RemoveEntity | ( | tGameObjectPtr | gameObject | ) |
Definition at line 88 of file Scene.cpp.
References mEntityGameObjectMap.
00088 { 00089 tEntityGameObjectMap::iterator i = mEntityGameObjectMap.find(gameObject->GetEntity()); 00090 if (i != mEntityGameObjectMap.end()) { 00091 mEntityGameObjectMap.erase(i); 00092 gameObject->SetEntity(NULL); 00093 } 00094 }
| tGameObjectID Scene::GetGameObjectID | ( | Ogre::Entity * | entity | ) |
Definition at line 96 of file Scene.cpp.
References mEntityGameObjectMap, and PCCE_CHECK.
Referenced by GetGameObject().
00096 { 00097 tEntityGameObjectMap::const_iterator i = mEntityGameObjectMap.find(entity); 00098 PCCE_CHECK(i != mEntityGameObjectMap.end(), "Scene::GetGameObjectID: Unknown entity"); 00099 return i->second; 00100 }
| tGameObjectPtr Scene::GetGameObject | ( | Ogre::Entity * | entity | ) |
Definition at line 102 of file Scene.cpp.
References pcce::Singleton< T >::Get(), and GetGameObjectID().
00102 { 00103 tGameObjectID id = GetGameObjectID(entity); 00104 return GameObjectDBSingleton::Get()->GetGameObject(id); 00105 }
| Ogre::Camera * Scene::CreateOgreCamera | ( | ) |
Definition at line 107 of file Scene.cpp.
References mOgreCamera, mOgreScene, and PCCE_CHECK.
00107 { 00108 PCCE_CHECK(mOgreCamera == NULL, "Scene already has a camera created"); 00109 00110 mOgreCamera = mOgreScene->createCamera("Camera"); 00111 mOgreCamera->setFixedYawAxis(false); 00112 mOgreCamera->setPosition(0,50,0); 00113 mOgreCamera->lookAt(0,0,0); 00114 mOgreCamera->setNearClipDistance(10); 00115 00116 return mOgreCamera; 00117 }
| Ogre::Camera * Scene::GetOgreCamera | ( | ) |
Definition at line 119 of file Scene.cpp.
References mOgreCamera.
00119 { 00120 return mOgreCamera; 00121 }
Definition at line 66 of file Scene.h.
Referenced by CreateOgreEntity(), GetGameObjectID(), and RemoveEntity().
Ogre::SceneManager* pcce::Scene::mOgreScene [private] |
Definition at line 68 of file Scene.h.
Referenced by CreateOgreCamera(), CreateOgreEntity(), GetOgreSceneManager(), Scene(), and ~Scene().
Ogre::Camera* pcce::Scene::mOgreCamera [private] |
Definition at line 69 of file Scene.h.
Referenced by CreateOgreCamera(), GetOgreCamera(), and Scene().
1.5.5