17 #include <vlutil/vlFilename.h>
18 #include <vlutil/vlTime.h>
19 #include <vl/hostStructs.h>
21 #include <vlutil/vlPrint.h>
31 #include <boost/unordered_set.hpp>
59 class DtJoyDeviceManager;
62 class DtCustomReportManager;
116 DtCgf(
const DtSimulationAddress& addr, DtU32 sessionId = 1,
const DtU32& capabilities = 0xffff);
142 int entityAdvisory = 100);
159 virtual void sendFinalStatus();
166 virtual bool importScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
167 const std::map<std::string, std::string>& importData);
172 virtual DtString exportScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
173 const std::map<std::string, std::string>& exportData);
176 virtual void setAppDataDir(
const DtString&);
177 virtual DtFilename appDataDir()
const;
180 virtual void setUserDataDir(
const DtString&);
181 virtual DtFilename userDataDir()
const;
184 virtual void setDataDir(
const DtString&);
185 virtual DtFilename
dataDir()
const;
190 virtual bool loadScenario(
const DtFilename& name,
int scenarioRunId = 0);
198 virtual bool loadScenario(
const DtScenario& scenario,
int scenarioRunId = 0);
204 virtual void clearSimulationObjects();
208 virtual bool importScenario(
const DtScenario&);
209 virtual bool importScenario(
const DtFilename&);
217 virtual bool newScenario(
const DtFilename& dbname =
218 DtFilename::nullFilename(),
const DtFilename& simulationModelSet =
219 DtFilename::nullFilename());
225 virtual void sendScenarioStatusMessage();
230 virtual bool saveScenario(
const DtFilename& savename,
bool saveAsSip =
false);
237 virtual void takeSnapshot(
bool makeBase);
241 virtual bool saveSnapshot(
const DtFilename& saveFolder,
247 virtual bool saveSimulationObjectGroup(DtFilename saveFolder,
const DtString& groupName,
248 int flags, boost::unordered_set<DtUUID>& uuidsSaved,
bool& savAsZipFile);
255 virtual bool createSimulationObjectGroup(
const DtString& group,
int flags,
int force,
const DtVector& geocentricLocation,
256 double offsetRotation,
bool storedInZipFile =
false);
262 virtual void closeScenario(
const DtFilename& terrainToOpen =
"",
bool forceCloseAll =
false);
268 virtual bool loadAdditionalObjectParameters(
const DtFilename& paramsFileName,
276 virtual void pause();
283 virtual void rewind(
int scenarioRunId = 0);
286 virtual void setRejectMismatchedScenarioMessages(
bool);
287 virtual bool rejectMismatchedScenarioMessages()
const;
294 virtual void setForceParameterDbReload(
bool reload);
295 virtual bool forceParameterDbReload()
const;
302 virtual void setEnableResourceMonitor(
bool b);
303 virtual bool isResourceMonitorEnabled()
const;
315 virtual void setSmsValidationEnabled(
bool b);
329 virtual const DtFilename& defaultTerrainDirectory();
330 virtual void setDefaultTerrainDirectory(
const DtFilename& directory);
341 virtual const DtFilename& defaultSimulationModelSetFilename();
342 virtual void setDefaultSimulationModelSetFilename(
const DtFilename&
filename);
347 virtual void setUseDIGuy(
bool diguy);
348 virtual bool useDIGuy()
const;
355 virtual const DtFilename& diGuyAnimationsFilename();
356 virtual void setDIGuyAnimationsFilename(
const DtFilename&
filename);
361 virtual void setMsdlSidcMappingFile(
const DtFilename&);
362 virtual const DtFilename& msdlSidcMappingFile()
const;
367 virtual void setCountryCodesMappingFile(
const DtFilename&);
368 virtual const DtFilename& countryCodesMappingFile()
const;
381 virtual void deleteObject(
const DtUUID& name)
const;
385 virtual void deleteObject(
const DtEntityIdentifier& objectIdentifier)
const;
404 const DtString& uniqueName = DtString::nullString())
const;
420 virtual DtVrfObject* createRoute(
const DtList& vertices,
421 const DtString& uniqueName = DtString::nullString())
const;
439 const DtString& uniqueName = DtString::nullString())
const;
455 const DtList& vertices,
456 const DtString& uniqueName = DtString::nullString())
const;
472 const DtList& vertices,
473 const DtString& uniqueName = DtString::nullString())
const;
490 const DtList& vertices,
491 const DtString& uniqueName = DtString::nullString())
const;
528 const DtEntityType& entityType,
532 const DtString& entityName = DtString::nullString(),
533 bool allowBlocking =
true,
534 std::list<DtAdminContent*>* initialAdminContent = 0)
const;
570 const DtEntityType& aggregateType,
574 const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
575 const DtString& aggregateName = DtString::nullString())
const;
589 const DtEntityType& aggregateType,
593 bool createSubordinates,
594 const DtString& aggregateName = DtString::nullString(),
595 bool allowBlocking =
true)
const;
608 virtual bool addSubordinate(
DtVrfObject* subordinate,
626 virtual bool removeSubordinate(
DtVrfObject* subordinate,
648 virtual void sendSetDataRequest(
DtVrfObject* entity,
653 virtual void assignPlanByUUID(
const DtUUID&,
const DtPlan& plan);
674 virtual void logObjectConsoleToFile(
DtVrfObject*
object,
675 DtFilename
filename = DtFilename::nullFilename());
678 virtual void stopLoggingObjectConsoleToFile(
DtVrfObject*
object);
683 virtual void setObjectConsoleNotificationLevel(
DtVrfObject*
object,
684 DtNotifyLevelType
level);
688 virtual void setPublishZeroVelocityWhenPaused(
bool);
689 virtual bool publishZeroVelocityWhenPaused()
const;
694 virtual void setSetDeadReckoningAlgorithmToStaticOnPause(
bool);
695 virtual bool setDeadReckoningAlgorithmToStaticOnPause()
const;
702 virtual bool reuseEntityIdentifiersOnScenarioLoad()
const;
703 virtual void setReuseEntityIdentifiersOnScenarioLoad(
bool);
711 virtual void setUseDrawControlForTaskVisualizations(
bool);
712 virtual bool useDrawControlForTaskVisualizations()
const;
827 virtual const DtSimulationAddress& simulationAddress()
const;
834 virtual int sessionId()
const;
842 virtual DtU32 scenarioCapabilities()
const;
843 virtual void setScenarioCapabilities(DtU32 v);
844 virtual void setScenarioCapability(DtU32 v,
bool);
850 virtual DtString applicationType()
const;
851 virtual void setApplicationType(
const DtString& type);
860 virtual DtExerciseConn* exerciseConn()
const;
865 virtual void useMapDatum(
const DtMapDatum& mapDatum);
868 virtual void setParameterDbLoaded(
bool flag);
870 virtual void setMaxDrainInputTime(
DtFloat64 maxTime);
871 virtual DtFloat64 maxDrainInputTime()
const;
874 virtual void setMinDrainInputTime(
DtFloat64 minTime);
875 virtual DtFloat64 minDrainInputTime()
const;
877 virtual void setMaxDrainInputReads(
int maxReads);
878 virtual int maxDrainInputReads()
const;
881 virtual bool logFrameRateStatistics()
const;
882 virtual void setLogFrameRateStatistics(
bool yesOrNo);
889 virtual void setDefaultParameterDbDirectory(
const DtFilename&
filename);
892 virtual DtFilename objectGroupsRoot()
const;
897 virtual void setRunInTimeManagementMode(
bool yesOrNo);
898 virtual bool runInTimeManagementMode()
const;
903 static void startTimeManagement(
void* usr);
904 static void stopTimeManagement(
void* usr);
908 virtual void processStartTimeManagement();
909 virtual void processStopTimeManagement();
913 virtual void setFullyLoadTerrain(
bool yesOrNo);
914 virtual bool fullyLoadTerrain()
const;
920 virtual void setAssertOnBlockingTerrainCalls(
bool b);
921 virtual bool assertOnBlockingTerrainCalls()
const;
930 virtual void addPluginToLoad(
const DtString&);
934 virtual void setLoadPluginsIfVersionMismatch(
bool);
935 virtual bool loadPluginsIfVersionMismatch()
const;
947 virtual void addPreLoadTerrainCallback(
949 virtual void removePreLoadTerrainCallback(
957 virtual void addPostLoadTerrainCallback(
959 virtual void removePostLoadTerrainCallback(
965 virtual void runForDuration(
double);
968 virtual void stopSimulationDurationTimer();
971 static void runDurationCompleteCallback(
void*);
972 virtual void processRunDurationComplete();
975 virtual void setPublishingGlobalEnvironment(
bool);
981 virtual void addPreLoadScenarioCallback(
983 virtual void removePreLoadScenarioCallback(
989 virtual void addPreCreateSimulationObjectGroupCallback(
991 virtual void removePreCreateSimulationObjectGroupCallback(
999 virtual void addPostLoadScenarioCallback(
1001 virtual void removePostLoadScenarioCallback(
1007 virtual void addPostCreateSimulationObjectGroupCallback(
1009 virtual void removePostCreateSimulationObjectGroupCallback(
1015 virtual void addPreImportScenarioCallback(
1017 virtual void removePreImportScenarioCallback(
1023 virtual void addPostImportScenarioCallback(
1025 virtual void removePostImportScenarioCallback(
1032 virtual void addPreSaveScenarioCallback(
1034 virtual void removePreSaveScenarioCallback(
1041 virtual void addPostSaveScenarioCallback(
1043 virtual void removePostSaveScenarioCallback(
1050 virtual void addPreCloseScenarioCallback(
1052 virtual void removePreCloseScenarioCallback(
1059 virtual void addPostCloseScenarioCallback(
1061 virtual void removePostCloseScenarioCallback(
1067 virtual void addPreSaveSimulationObjectGroupsCallback(
1069 virtual void removePreSaveSimulationObjectGroupsCallback(
1075 virtual void addPostSaveSimulationObjectGroupsCallback(
1077 virtual void removePostSaveSimulationObjectGroupsCallback(
1084 virtual void addScenarioPauseCallback(
1086 virtual void removeScenarioPauseCallback(
1093 virtual void addScenarioRunCallback(
1095 virtual void removeScenarioRunCallback(
1104 virtual void addPreScenarioRewindCallback(
1106 virtual void removePreScenarioRewindCallback(
1113 virtual void addPostScenarioRewindCallback(
1115 virtual void removePostScenarioRewindCallback(
1122 virtual void addPostTickCallback(
1124 virtual void removePostTickCallback(
1130 virtual void setTimeToQuit(
bool);
1131 virtual bool timeToQuit()
const;
1137 virtual bool executeSimCommand(
const DtSimCommand& simCommand);
1141 virtual void unloadTerrain();
1148 static void objectParametersOpCallback(
DtSimMessage* msg,
void* usr);
1152 static void scenarioDescriptionCallback(
DtSimMessage*,
void* usr);
1153 virtual void processScenarioDescription(
DtSimMessage*);
1156 static void setScenarioFilenameCallback(
DtSimMessage*,
void* usr);
1157 virtual void processSetScenarioFilename(
DtSimMessage*);
1160 static void setRunDurationCallback(
DtSimMessage*,
void* usr);
1164 static void actionCategoriesRequestCallback(
DtSimMessage* msg,
void* usr);
1165 virtual void processActionCategoriesRequest(
DtSimMessage* msg);
1168 static void scenarioStatusRequestCallback(
DtSimMessage* msg,
void* usr);
1169 virtual void processScenarioStatusRequest(
DtSimMessage* msg);
1179 virtual void loadAllPlugins();
1182 virtual bool loadComponentAttachmentTable(
const DtFilename&
filename);
1188 virtual bool loadTerrain(
const DtFilename&
filename);
1193 virtual DtFilename findTerrainFile(
const DtFilename& startFile,
const std::vector<DtFilename>& searchPaths,
1194 const std::string& extension)
const;
1197 virtual bool loadOrderOfBattle(
const DtFilename&
filename);
1198 virtual bool loadOrderOfBattleFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename&
filename);
1202 virtual bool loadScenarioScripts(
const DtFilename&
filename);
1203 virtual bool loadScenarioScriptsFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename&
filename);
1204 virtual bool loadScenarioScripts(
const std::string& buffer);
1209 virtual bool loadParameterDb(
const DtFilename&
filename,
1214 virtual bool loadObjectParametersDBFile(
const DtFilename& opdFile,
1220 virtual bool loadPhysicalWorldFile(
const DtFilename& file,
bool force =
false);
1225 virtual bool loadDetonationParametersFile(
const DtFilename& file,
bool force =
false);
1228 virtual bool loadPlans(
const DtFilename&
filename);
1229 virtual bool loadPlansFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename&
filename);
1230 virtual bool loadPlans(
const std::string& buffer);
1233 virtual bool loadGlobalPlans(
const DtFilename&
filename);
1234 virtual bool loadGlobalPlansFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename&
filename);
1238 virtual void loadHostilityAndExtrasFromZipFile(
const DtFilename& scenarioZipFile,
const DtScenarioExplorer& se);
1239 virtual void loadHostilityAndExtras(
const std::string& buffer);
1251 virtual void loadActionCategories(
const DtFilename& f);
1253 virtual bool loadForceHostility(
const DtFilename&
filename,
bool clear =
true);
1254 virtual bool loadForceHostilityFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename&
filename,
bool clear =
true);
1256 virtual bool loadScenarioExtras(
const DtFilename&
filename);
1257 virtual bool loadScenarioExtrasFromZipFile(
const DtFilename&,
const DtFilename&
filename);
1258 virtual bool loadScenarioExtras(
const std::string& buffer);
1262 virtual void processObjectParametersOp(
DtSimMessage * msg);
1267 virtual void emptyParametersDB();
1279 virtual void setFrameRateMode(
const DtString&
mode, DtReal deltaTime);
1282 virtual void setAutoReorganization(
bool onOff);
1286 virtual void drainInput();
1310 virtual void updateReadyStatus();
1319 static void simCommandCallback(
DtSimMessage* msg,
void* usr);
1327 static void deferredLoadScenarioCallback(
void * data);
1328 virtual void processDeferredLoadScenario();
1340 static void deferredRollbackCallback(
void * data);
1341 virtual void processDeferredRollback();
1348 static void deferredImportScenarioCallback(
void * data);
1349 virtual void processDeferredImportScenario();
1356 static void deferredRewindCallback(
void * data);
1357 virtual void processDeferredRewind();
1364 void rolloverStatsLogFilename(
const DtScenario* scenario);
1366 void logScenarioLoad(
const DtScenario* scenario);
1367 void logScenarioRewind();
1368 void logScenarioClose();
1372 virtual void clearAllSimulationModelSetInformation();
1528 int myMaxDrainInputReads;
1540 bool ownVrfCreator()
const;
1541 void setOwnVrfCreator(
bool yesOrNo);