00001 /* 00002 * $Id: $ 00003 * 00004 * Description : Exception for scripting 00005 * Author : Jakub Zelenka <jakub.zelenka@gmail.com> 00006 * 00007 * Purpose : 00008 * ScriptManager cpp file. Implemented many methods for 00009 * communication with kernel. 00010 */ 00011 00012 #include <iostream> 00013 00014 #include "scriptscenemanager.h" 00015 #include "scriptscene.h" 00016 00017 using namespace VRUT; 00018 using namespace std; 00019 00020 ScriptSceneManager::~ScriptSceneManager() 00021 { 00022 for (map<SCENE_ID, ScriptScene *>::iterator it = scenes.begin(); it != scenes.end(); it++) 00023 delete (it->second); 00024 } 00025 00026 void ScriptSceneManager::deleteScriptScene(SCENE_ID sceneID) 00027 { 00028 map<SCENE_ID, ScriptScene *>::iterator it = scenes.find(sceneID); 00029 if (it != scenes.end()) 00030 { 00031 delete it->second; 00032 scenes.erase(it); 00033 } 00034 } 00035 00036 ScriptScene *ScriptSceneManager::GetScene(SCENE_ID sceneID) 00037 { 00038 Scene *scene = kernel->sceneManager->GetScene(sceneID); 00039 if (!scene) 00040 return NULL; 00041 00043 map<SCENE_ID, ScriptScene *>::iterator it = scenes.find(sceneID); 00044 if (it == scenes.end()) 00045 { 00046 ScriptScene *scriptScene = new ScriptScene(this, sceneID); 00047 scenes.insert(pair<SCENE_ID, ScriptScene *>(sceneID, scriptScene)); 00048 return scriptScene; 00049 } 00050 else 00051 return it->second; 00052 }
1.5.5