![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00006 #pragma once 00007 00008 #include <bhaveSim/bhaveSimDefines.h> 00009 #include <vrfExtProtocol/objTypeEnums.h> 00010 #include <vrfMsgTransport/vrfMsgIf.h> 00011 #include <vrfmsgs/ifaceMsg.h> 00012 #include <vrfmsgs/rwSpawnDataList.h> 00013 #include <vrfobjcore/vrfObject.h> 00014 #include <vrfobjcore/vrfObjMgr.h> 00015 00016 class DtCgf; 00017 class DtScenario; 00018 00019 namespace BHAVE 00020 { 00021 00022 //**************************************************************************** 00023 class DT_DLL_bhaveSim DtSpawnSinkManager 00024 { 00025 public: 00027 DtSpawnSinkManager(DtCgf* cgf); 00028 00030 virtual ~DtSpawnSinkManager(); 00031 00032 virtual bool initializeSpawnSink(); 00033 00035 static DtSpawnSinkManager * theManager(); 00036 00038 virtual bool loadTemplates(const DtFilename& filename); 00039 00041 virtual const DtRwSpawnDataList* spawnTemplates() const; 00042 00043 //**************************************************************************** 00045 static const DtObjectType & spawnType(); 00046 static const DtObjectType & sinkType(); 00047 //**************************************************************************** 00049 //**************************************************************************** 00050 protected: 00055 static void postScenarioLoadCallback(const DtScenario& scenario, 00056 void* usrData); 00058 00061 static void postScenarioRewindCallback(void* usrData); 00063 00069 virtual void resetManagerTemplates(); 00070 00071 static void preScenarioSaveCallback(DtScenario& scenario, 00072 void* usrData); 00073 virtual void processScenarioSave(DtScenario& scenario); 00074 00075 //**************************************************************************** 00077 //**************************************************************************** 00081 static void requestSpawnListCallback(DtSimMessage* msg, void* usr); 00082 virtual void processRequestSpawnList(DtSimMessage* msg); 00084 00088 virtual void sendSpawnListMessage(const DtSimulationAddress& recipient); 00089 00093 static void addSinkPointCallback(DtSimMessage* msg, void* usr); 00094 virtual void processAddSinkPoint(DtSimMessage* msg); 00096 00099 static void requestSpawnDataCallback(DtSimMessage* msg, void* usr); 00100 virtual void processRequestSpawnData(DtSimMessage* msg); 00102 00105 static void updateSpawnTemplateCallback(DtSimMessage* msg, void* usr); 00106 virtual void processUpdateSpawnTemplate(DtSimMessage* msg); 00108 00111 static void createTemplateCallback(DtSimMessage* msg, void* usr); 00112 virtual void processCreateTemplate(DtSimMessage* msg); 00114 00117 static void deleteSpawnTemplateCallback(DtSimMessage* msg, void* usr); 00118 virtual void processDeleteSpawnTemplate(DtSimMessage* msg); 00120 00126 static void objectRemovedCallback(DtVrfObject *object, void *usr); 00127 virtual void processObjectRemoved(DtVrfObject *object); 00129 00134 static void objectRenamedCallback( 00135 const DtVrfObjectNameChangedCallbackInfo& info, void *usr); 00136 virtual void processObjectRenamed( 00137 const DtVrfObjectNameChangedCallbackInfo& info); 00138 00139 //**************************************************************************** 00145 virtual void renameSpawnPoint(DtVrfObject *spawnObject, 00146 const DtString& oldTemplateName, 00147 const DtString& newTemplateName); 00148 00152 virtual std::vector<DtVrfObject *> collectSpawnPointsForSpecifedTemplate(const DtString& patternName); 00153 00154 protected: 00155 DtCgf* myCgf; 00156 static DtSpawnSinkManager* theSpawnSinkManagerSingleton; 00157 00158 DtRwSpawnDataList myTemplates; 00159 }; 00160 00161 } //namespace BHAVE 00162