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;
115 DtCgf(
const DtSimulationAddress& addr, DtU32 sessionId = 1);
141 int entityAdvisory = 100);
158 virtual void sendFinalStatus();
165 virtual bool importScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
166 const std::map<std::string, std::string>& importData);
171 virtual DtString exportScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
172 const std::map<std::string, std::string>& exportData);
175 virtual void setAppDataDir(
const DtString&);
176 virtual const DtString& appDataDir()
const;
179 virtual void setUserDataDir(
const DtString&);
180 virtual const DtString& userDataDir()
const;
183 virtual void setDataDir(
const DtString&);
189 virtual bool loadScenario(
const DtFilename& name);
197 virtual bool loadScenario(
const DtScenario& scenario);
204 virtual bool importScenario(
const DtScenario&);
205 virtual bool importScenario(
const DtFilename&);
213 virtual bool newScenario(
const DtFilename& dbname =
214 DtFilename::nullFilename(),
const DtFilename& simulationModelSet =
215 DtFilename::nullFilename());
221 virtual void sendScenarioStatusMessage();
226 virtual bool saveScenario(
const DtFilename& savename);
233 virtual void takeSnapshot(
bool makeBase);
237 virtual bool saveSnapshot(
const DtFilename& saveFolder,
243 virtual bool saveSimulationObjectGroup(DtFilename saveFolder,
const DtString& groupName,
244 int flags, boost::unordered_set<DtUUID>& uuidsSaved);
250 virtual bool createSimulationObjectGroup(
const DtString& group,
int flags,
int force,
const DtVector& geocentricLocation,
251 double offsetRotation);
257 virtual void closeScenario(
const DtFilename& terrainToOpen =
"",
bool forceCloseAll =
false);
263 virtual bool loadAdditionalObjectParameters(
const DtFilename& paramsFileName,
271 virtual void pause();
278 virtual void rewind();
285 virtual void setForceParameterDbReload(
bool reload);
286 virtual bool forceParameterDbReload()
const;
293 virtual void setEnableResourceMonitor(
bool b);
294 virtual bool isResourceMonitorEnabled()
const;
306 virtual void setSmsValidationEnabled(
bool b);
320 virtual const DtFilename& defaultTerrainDirectory();
321 virtual void setDefaultTerrainDirectory(
const DtFilename& directory);
329 virtual const DtFilename& defaultSimulationModelSetFilename();
330 virtual void setDefaultSimulationModelSetFilename(
const DtFilename& filename);
335 virtual void setUseDIGuy(
bool diguy);
336 virtual bool useDIGuy()
const;
344 virtual const DtFilename& diGuyCharacterDataFilename();
345 virtual void setDIGuyCharacterDataFilename(
const DtFilename& filename);
347 virtual const DtFilename& diGuyAnimationsFilename();
348 virtual void setDIGuyAnimationsFilename(
const DtFilename& filename);
353 virtual void setMsdlSidcMappingFile(
const DtFilename&);
354 virtual const DtFilename& msdlSidcMappingFile()
const;
359 virtual void setCountryCodesMappingFile(
const DtFilename&);
360 virtual const DtFilename& countryCodesMappingFile()
const;
373 virtual void deleteObject(
const DtString& name)
const;
377 virtual void deleteObject(
const DtEntityIdentifier& objectIdentifier)
const;
396 const DtString& uniqueName = DtString::nullString())
const;
412 virtual DtVrfObject* createRoute(
const DtList& vertices,
413 const DtString& uniqueName = DtString::nullString())
const;
431 const DtString& uniqueName = DtString::nullString())
const;
447 const DtList& vertices,
448 const DtString& uniqueName = DtString::nullString())
const;
464 const DtList& vertices,
465 const DtString& uniqueName = DtString::nullString())
const;
482 const DtList& vertices,
483 const DtString& uniqueName = DtString::nullString())
const;
520 const DtEntityType& entityType,
524 const DtString& entityName = DtString::nullString(),
525 bool allowBlocking =
true,
526 std::list<DtAdminContent*>* initialAdminContent = 0)
const;
562 const DtEntityType& aggregateType,
566 const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
567 const DtString& aggregateName = DtString::nullString())
const;
581 const DtEntityType& aggregateType,
585 bool createSubordinates,
586 const DtString& aggregateName = DtString::nullString(),
587 bool allowBlocking =
true)
const;
600 virtual bool addSubordinate(
DtVrfObject* subordinate,
618 virtual bool removeSubordinate(
DtVrfObject* subordinate,
640 virtual void sendSetDataRequest(
DtVrfObject* entity,
645 virtual void assignPlanByUUID(
const DtUUID&,
const DtPlan& plan);
666 virtual void logObjectConsoleToFile(
DtVrfObject*
object,
667 DtFilename filename = DtFilename::nullFilename());
670 virtual void stopLoggingObjectConsoleToFile(
DtVrfObject*
object);
675 virtual void setObjectConsoleNotificationLevel(
DtVrfObject*
object,
676 DtNotifyLevelType
level);
680 virtual void setPublishZeroVelocityWhenPaused(
bool);
681 virtual bool publishZeroVelocityWhenPaused()
const;
686 virtual void setSetDeadReckoningAlgorithmToStaticOnPause(
bool);
687 virtual bool setDeadReckoningAlgorithmToStaticOnPause()
const;
694 virtual bool reuseEntityIdentifiersOnScenarioLoad()
const;
695 virtual void setReuseEntityIdentifiersOnScenarioLoad(
bool);
703 virtual void setUseDrawControlForTaskVisualizations(
bool);
704 virtual bool useDrawControlForTaskVisualizations()
const;
816 virtual const DtSimulationAddress& simulationAddress()
const;
823 virtual int sessionId()
const;
831 virtual DtExerciseConn* exerciseConn()
const;
836 virtual void useMapDatum(
const DtMapDatum& mapDatum);
839 virtual void setParameterDbLoaded(
bool flag);
841 virtual void setMaxDrainInputTime(
DtFloat64 maxTime);
842 virtual DtFloat64 maxDrainInputTime()
const;
845 virtual void setMinDrainInputTime(
DtFloat64 minTime);
846 virtual DtFloat64 minDrainInputTime()
const;
848 virtual void setMaxDrainInputReads(
int maxReads);
849 virtual int maxDrainInputReads()
const;
852 virtual bool logFrameRateStatistics()
const;
853 virtual void setLogFrameRateStatistics(
bool yesOrNo);
860 virtual void setDefaultParameterDbDirectory(
const DtFilename& filename);
863 virtual DtFilename objectGroupsRoot()
const;
868 virtual void setRunInTimeManagementMode(
bool yesOrNo);
869 virtual bool runInTimeManagementMode()
const;
874 static void startTimeManagement(
void* usr);
875 static void stopTimeManagement(
void* usr);
879 virtual void processStartTimeManagement();
880 virtual void processStopTimeManagement();
884 virtual void setFullyLoadTerrain(
bool yesOrNo);
885 virtual bool fullyLoadTerrain()
const;
891 virtual void setAssertOnBlockingTerrainCalls(
bool b);
892 virtual bool assertOnBlockingTerrainCalls()
const;
901 virtual void addPluginToLoad(
const DtString&);
905 virtual void setLoadPluginsIfVersionMismatch(
bool);
906 virtual bool loadPluginsIfVersionMismatch()
const;
918 virtual void addPreLoadTerrainCallback(
920 virtual void removePreLoadTerrainCallback(
928 virtual void addPostLoadTerrainCallback(
930 virtual void removePostLoadTerrainCallback(
936 virtual void runForDuration(
double);
939 virtual void stopSimulationDurationTimer();
942 static void runDurationCompleteCallback(
void*);
943 virtual void processRunDurationComplete();
946 virtual void setPublishingGlobalEnvironment(
bool);
952 virtual void addPreLoadScenarioCallback(
954 virtual void removePreLoadScenarioCallback(
960 virtual void addPreCreateSimulationObjectGroupCallback(
962 virtual void removePreCreateSimulationObjectGroupCallback(
970 virtual void addPostLoadScenarioCallback(
972 virtual void removePostLoadScenarioCallback(
978 virtual void addPostCreateSimulationObjectGroupCallback(
980 virtual void removePostCreateSimulationObjectGroupCallback(
986 virtual void addPreImportScenarioCallback(
988 virtual void removePreImportScenarioCallback(
994 virtual void addPostImportScenarioCallback(
996 virtual void removePostImportScenarioCallback(
1003 virtual void addPreSaveScenarioCallback(
1005 virtual void removePreSaveScenarioCallback(
1012 virtual void addPostSaveScenarioCallback(
1014 virtual void removePostSaveScenarioCallback(
1021 virtual void addPreCloseScenarioCallback(
1023 virtual void removePreCloseScenarioCallback(
1030 virtual void addPostCloseScenarioCallback(
1032 virtual void removePostCloseScenarioCallback(
1038 virtual void addPreSaveSimulationObjectGroupsCallback(
1040 virtual void removePreSaveSimulationObjectGroupsCallback(
1046 virtual void addPostSaveSimulationObjectGroupsCallback(
1048 virtual void removePostSaveSimulationObjectGroupsCallback(
1055 virtual void addScenarioPauseCallback(
1057 virtual void removeScenarioPauseCallback(
1064 virtual void addScenarioRunCallback(
1066 virtual void removeScenarioRunCallback(
1073 virtual void addPreScenarioRewindCallback(
1075 virtual void removePreScenarioRewindCallback(
1082 virtual void addPostScenarioRewindCallback(
1084 virtual void removePostScenarioRewindCallback(
1091 virtual void addPostTickCallback(
1093 virtual void removePostTickCallback(
1099 virtual void setTimeToQuit(
bool);
1100 virtual bool timeToQuit()
const;
1106 virtual bool executeSimCommand(
const DtSimCommand& simCommand);
1110 virtual void unloadTerrain();
1117 static void objectParametersOpCallback(
DtSimMessage* msg,
void* usr);
1121 static void scenarioDescriptionCallback(
DtSimMessage*,
void* usr);
1122 virtual void processScenarioDescription(
DtSimMessage*);
1125 static void setScenarioFilenameCallback(
DtSimMessage*,
void* usr);
1126 virtual void processSetScenarioFilename(
DtSimMessage*);
1129 static void setRunDurationCallback(
DtSimMessage*,
void* usr);
1133 static void actionCategoriesRequestCallback(
DtSimMessage* msg,
void* usr);
1134 virtual void processActionCategoriesRequest(
DtSimMessage* msg);
1137 static void scenarioStatusRequestCallback(
DtSimMessage* msg,
void* usr);
1138 virtual void processScenarioStatusRequest(
DtSimMessage* msg);
1148 virtual void loadAllPlugins();
1151 virtual bool loadComponentAttachmentTable(
const DtFilename& filename);
1157 virtual bool loadTerrain(
const DtFilename& filename);
1162 virtual DtFilename findTerrainFile(
const DtFilename& startFile,
const std::vector<DtFilename>& searchPaths,
1163 const std::string& extension)
const;
1166 virtual bool loadOrderOfBattle(
const DtFilename& filename);
1170 virtual bool loadScenarioScripts(
const DtFilename& filename);
1171 virtual bool loadScenarioScripts(
const std::string& filename);
1176 virtual bool loadParameterDb(
const DtFilename& filename,
1181 virtual bool loadObjectParametersDBFile(
const DtFilename& opdFile,
1187 virtual bool loadPhysicalWorldFile(
const DtFilename& file,
bool force =
false);
1190 virtual bool loadPlans(
const DtFilename& filename);
1191 virtual bool loadPlans(
const std::string& filename);
1194 virtual bool loadGlobalPlans(
const DtFilename& filename);
1198 virtual void loadHostilityAndExtras(
const std::string& se);
1210 virtual void loadActionCategories(
const DtFilename& f);
1212 virtual bool loadForceHostility(
const DtFilename& filename,
bool clear =
true);
1214 virtual bool loadScenarioExtras(
const DtFilename& filename);
1215 virtual bool loadScenarioExtras(
const std::string& filename);
1219 virtual void processObjectParametersOp(
DtSimMessage * msg);
1224 virtual void emptyParametersDB();
1236 virtual void setFrameRateMode(
const DtString& mode, DtReal deltaTime);
1239 virtual void setAutoReorganization(
bool onOff);
1243 virtual void drainInput();
1267 virtual void updateReadyStatus();
1276 static void simCommandCallback(
DtSimMessage* msg,
void* usr);
1284 static void deferredLoadScenarioCallback(
void * data);
1285 virtual void processDeferredLoadScenario();
1296 static void deferredRollbackCallback(
void * data);
1297 virtual void processDeferredRollback();
1304 static void deferredImportScenarioCallback(
void * data);
1305 virtual void processDeferredImportScenario();
1312 static void deferredRewindCallback(
void * data);
1313 virtual void processDeferredRewind();
1320 void rolloverStatsLogFilename(
const DtScenario* scenario);
1322 void logScenarioLoad(
const DtScenario* scenario);
1323 void logScenarioRewind();
1324 void logScenarioClose();
1328 virtual void clearAllSimulationModelSetInformation();
1485 int myMaxDrainInputReads;
1497 bool ownVrfCreator()
const;
1498 void setOwnVrfCreator(
bool yesOrNo);