00001 /* 00002 * $Id: scenemanager.h 677 2009-01-26 08:10:25Z misek $ 00003 * 00004 * Description : One line description of file. 00005 * Author : Vaclav Kyba <mail/Jabber: vaseo1@gmail.com> <ICQ: 98576293> 00006 * 00007 * Purpose : 00008 * Long description of what the file is for. 00009 */ 00010 00011 00012 #ifndef __SCENEMANAGER__H__ 00013 #define __SCENEMANAGER__H__ 00014 #include <wx/app.h> 00015 #include <wx/hashmap.h> 00016 #include <wx/image.h> 00017 #include <wx/event.h> 00018 #include "common.h" 00019 #include "image.h" 00020 #include "scene.h" 00021 #include "imagecommon.h" 00022 #include "imagedds.h" 00023 00024 00025 namespace VRUT 00026 { 00028 class SceneManager 00029 { 00030 private: 00031 WX_DECLARE_STRING_HASH_MAP(Image *, ImageList); 00033 std::vector<Scene *> sceneList; 00035 ImageList imageList; 00036 00037 public: 00039 SceneManager(); 00041 ~SceneManager(); 00042 00044 Scene * GetScene(SCENE_ID sceneID) const 00045 { 00046 return ( sceneID >= sceneList.size() ? (Scene *)NULL : sceneList[sceneID] ); 00047 } 00048 00052 size_t GetSceneIDs(std::vector<SCENE_ID> &IDlist) const; 00055 SCENE_ID AddSceneGraph(SceneNode * sceneRoot); 00057 Scene * RemoveSceneGraph(SCENE_ID id); 00063 const Image * GetImage(const wxString & imgPath, bool loadIfNotFound = true); 00064 }; 00065 }; 00066 00067 00068 #endif
1.5.5