15 #include <boost/unordered_map.hpp>
19 class DtRwSpawnTemplateList;
34 virtual bool loadTemplates(
const DtFilename&
filename,
bool sendUpdate =
true);
41 virtual void updateSpawnSinkTemplates(
51 static void preScenarioLoadCallback(
DtScenario& scenario,
56 static void preScenarioRewindCallback(
void* usrData);
59 static void preScenarioImportCallback(
DtScenario& scenario,
61 virtual void preScenarioImport(
DtScenario& scenario);
64 static void postScenarioImportCallback(
const DtScenario& scenario,
66 virtual void postScenarioImport(
const DtScenario& scenario);
68 virtual DtUUID uuidForTemplateName(
const DtString& templateName)
const;
71 virtual bool addSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
73 virtual void removeSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
80 virtual void resetManagerTemplates(
const DtRwSpawnDataList& templates,
const DtFilename& templateFilename,
bool sendUpdates =
true);
82 virtual void clearTemplates();
90 static void requestSpawnListCallback(
DtSimMessage* msg,
void* usr);
98 static void spawnTemplateListCallback(
DtSimMessage* msg,
void* usr);
99 virtual void preocesSpawnTemplateList(
DtSimMessage* msg);
105 virtual void sendSpawnListMessage(
const DtSimulationAddress& recipient,
106 bool initialSend =
false);
111 static void addSinkPointCallback(
DtSimMessage* msg,
void* usr);
117 static void requestSpawnDataCallback(
DtSimMessage* msg,
void* usr);
118 virtual void processRequestSpawnData(
DtSimMessage* msg);
123 static void updateSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
124 virtual void processUpdateSpawnTemplate(
DtSimMessage* msg);
129 static void createTemplateCallback(
DtSimMessage* msg,
void* usr);
135 static void deleteSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
136 virtual void processDeleteSpawnTemplate(
DtSimMessage* msg);
144 static void objectRemovedCallback(
const DtVrfObject *
object,
void *usr);
145 virtual void processObjectRemoved(
const DtVrfObject *
object);
151 static void addSpawnPointCallback(
const DtVrfObject *
object,
void *usr);
152 virtual void processAddSpawnPoint(
const DtVrfObject *
object);
158 static void addSinkPointCallback(
const DtVrfObject *
object,
void *usr);
159 virtual void processAddSinkPoint(
const DtVrfObject *
object);
167 virtual void removeSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
168 virtual void addSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
170 virtual void upgradeTemplates(
const DtRwSpawnDataList& templates,
bool andRename =
false);
172 virtual void resolveUnmatchedSpawnPoints();
176 typedef void (*DtClearTemplateUUIDFunction)(
void* userData);
177 typedef void (*DtRefreshSpawnDataFunction)(
void* userData);
179 virtual void addClearTemplateUUIDEntry(
180 DtClearTemplateUUIDFunction fcn,
void* userData);
181 virtual void removeClearTemplateUUIDEntry(
182 DtClearTemplateUUIDFunction fcn,
void* userData);
184 virtual void addRefreshSpawnDataEntry(
185 DtRefreshSpawnDataFunction fcn,
void* userData);
186 virtual void removeRefreshSpawnDataEntry(
187 DtRefreshSpawnDataFunction fcn,
void* userData);
190 virtual DtUUID uuidBasedOnName(
const DtList& templateList,
const DtString&)
const;
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
std::map< DtString, DtString > myNewSpawnNameToOldSpawnNameMap
Definition: spawnSinkManager.h:211
DtNoArgumentCallbackList myRefreshSpawnDataCallbackList
Definition: spawnSinkManager.h:199
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: rwSpawnDataList.h:25
Definition: scenario.h:52
DtSimManager * mySimManager
Definition: spawnSinkManager.h:193
Definition: spawnSinkManager.h:22
WaitingForSinkPoints myWaitingForSinkPoints
Definition: spawnSinkManager.h:209
DtRwSpawnDataList myTemplates
pointer to the sim manager
Definition: spawnSinkManager.h:195
bool myTemplatesModified
Definition: spawnSinkManager.h:202
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Base library for data that is used to control how spawn points generate entities. ...
Definition: rwSpawnData.h:37
File: simMsg.h.
Definition: simMessage.h:35
boost::unordered_map< DtRwSpawnData *, DtString > myCurrentUUIDsOnImport
Definition: spawnSinkManager.h:201
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don't fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:152
std::map< DtString, DtUUID > WaitingForSinkPoints
Definition: spawnSinkManager.h:208
PointByTemplate mySpawnPoints
Definition: spawnSinkManager.h:205
boost::unordered_map< DtUUID, DtUUID > PointByTemplate
Definition: spawnSinkManager.h:204
PointByTemplate mySinkPoints
Definition: spawnSinkManager.h:206
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtNoArgumentCallbackList myClearTemplatesCallbackList
Definition: spawnSinkManager.h:198
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtRwSpawnDataList myCurrentTemplates
Definition: spawnSinkManager.h:196