17 #include <vlutil/vlFilename.h>
18 #include <vlutil/vlTime.h>
19 #include <vl/hostStructs.h>
21 #include <vlutil/vlPrint.h>
30 #include <boost/unordered_set.hpp>
55 class DtJoyDeviceManager;
58 class DtCustomReportManager;
110 DtCgf(
const DtSimulationAddress& addr, DtU32 sessionId = 1);
136 int entityAdvisory = 100);
153 virtual void sendFinalStatus();
160 virtual bool importScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
161 const std::map<std::string, std::string>& importData);
166 virtual DtString exportScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
167 const std::map<std::string, std::string>& exportData);
170 virtual void setAppDataDir(
const DtString&);
171 virtual const DtString& appDataDir()
const;
174 virtual void setUserDataDir(
const DtString&);
175 virtual const DtString& userDataDir()
const;
178 virtual void setDataDir(
const DtString&);
184 virtual bool loadScenario(
const DtFilename& name);
192 virtual bool loadScenario(
const DtScenario& scenario);
196 virtual bool importScenario(
const DtScenario&);
197 virtual bool importScenario(
const DtFilename&);
205 virtual bool newScenario(
const DtFilename& dbname =
206 DtFilename::nullFilename(),
const DtFilename& simulationModelSet =
207 DtFilename::nullFilename());
212 virtual bool saveScenario(
const DtFilename& savename);
217 virtual bool saveSimulationObjectGroup(DtFilename saveFolder,
const DtString& groupName,
218 int flags, boost::unordered_set<DtUUID>& uuidsSaved);
224 virtual bool createSimulationObjectGroup(
const DtString& group,
int flags,
int force,
const DtVector& geocentricLocation,
225 double offsetRotation);
231 virtual void closeScenario(
const DtFilename& terrainToOpen =
"");
237 virtual bool loadAdditionalObjectParameters(
const DtFilename& paramsFileName,
245 virtual void pause();
252 virtual void rewind();
259 virtual void setForceParameterDbReload(
bool reload);
260 virtual bool forceParameterDbReload()
const;
267 virtual void setEnableResourceMonitor(
bool b);
268 virtual bool isResourceMonitorEnabled()
const;
274 virtual void setSmsValidationEnabled(
bool b);
288 virtual const DtFilename& defaultTerrainDirectory();
289 virtual void setDefaultTerrainDirectory(
const DtFilename& directory);
297 virtual const DtFilename& defaultSimulationModelSetFilename();
298 virtual void setDefaultSimulationModelSetFilename(
const DtFilename& filename);
303 virtual void setUseDIGuy(
bool diguy);
304 virtual bool useDIGuy()
const;
312 virtual const DtFilename& diGuyCharacterDataFilename();
313 virtual void setDIGuyCharacterDataFilename(
const DtFilename& filename);
315 virtual const DtFilename& diGuyAnimationsFilename();
316 virtual void setDIGuyAnimationsFilename(
const DtFilename& filename);
321 virtual void setMsdlSidcMappingFile(
const DtFilename&);
322 virtual const DtFilename& msdlSidcMappingFile()
const;
327 virtual void setCountryCodesMappingFile(
const DtFilename&);
328 virtual const DtFilename& countryCodesMappingFile()
const;
341 virtual void deleteObject(
const DtString& name)
const;
345 virtual void deleteObject(
const DtEntityIdentifier& objectIdentifier)
const;
364 const DtString& uniqueName = DtString::nullString())
const;
380 virtual DtVrfObject* createRoute(
const DtList& vertices,
381 const DtString& uniqueName = DtString::nullString())
const;
399 const DtString& uniqueName = DtString::nullString())
const;
415 const DtList& vertices,
416 const DtString& uniqueName = DtString::nullString())
const;
432 const DtList& vertices,
433 const DtString& uniqueName = DtString::nullString())
const;
450 const DtList& vertices,
451 const DtString& uniqueName = DtString::nullString())
const;
488 const DtEntityType& entityType,
492 const DtString& entityName = DtString::nullString(),
493 bool allowBlocking =
true,
494 std::list<DtAdminContent*>* initialAdminContent = 0)
const;
530 const DtEntityType& aggregateType,
534 const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
535 const DtString& aggregateName = DtString::nullString())
const;
549 const DtEntityType& aggregateType,
553 bool createSubordinates,
554 const DtString& aggregateName = DtString::nullString(),
555 bool allowBlocking =
true)
const;
568 virtual bool addSubordinate(
DtVrfObject* subordinate,
586 virtual bool removeSubordinate(
DtVrfObject* subordinate,
608 virtual void sendSetDataRequest(
DtVrfObject* entity,
613 virtual void assignPlanByUUID(
const DtUUID&,
const DtPlan& plan);
634 virtual void logObjectConsoleToFile(
DtVrfObject*
object,
635 DtFilename filename = DtFilename::nullFilename());
638 virtual void stopLoggingObjectConsoleToFile(
DtVrfObject*
object);
643 virtual void setObjectConsoleNotificationLevel(
DtVrfObject*
object,
644 DtNotifyLevelType
level);
648 virtual void setPublishZeroVelocityWhenPaused(
bool);
649 virtual bool publishZeroVelocityWhenPaused()
const;
654 virtual void setSetDeadReckoningAlgorithmToStaticOnPause(
bool);
655 virtual bool setDeadReckoningAlgorithmToStaticOnPause()
const;
662 virtual bool reuseEntityIdentifiersOnScenarioLoad()
const;
663 virtual void setReuseEntityIdentifiersOnScenarioLoad(
bool);
671 virtual void setUseDrawControlForTaskVisualizations(
bool);
672 virtual bool useDrawControlForTaskVisualizations()
const;
784 virtual const DtSimulationAddress& simulationAddress()
const;
791 virtual int sessionId()
const;
799 virtual DtExerciseConn* exerciseConn()
const;
804 virtual void useMapDatum(
const DtMapDatum& mapDatum);
807 virtual void setParameterDbLoaded(
bool flag);
809 virtual void setMaxDrainInputTime(
DtFloat64 maxTime);
810 virtual DtFloat64 maxDrainInputTime()
const;
813 virtual void setMinDrainInputTime(
DtFloat64 minTime);
814 virtual DtFloat64 minDrainInputTime()
const;
816 virtual void setMaxDrainInputReads(
int maxReads);
817 virtual int maxDrainInputReads()
const;
820 virtual bool logFrameRateStatistics()
const;
821 virtual void setLogFrameRateStatistics(
bool yesOrNo);
828 virtual void setDefaultParameterDbDirectory(
const DtFilename& filename);
831 virtual DtFilename objectGroupsRoot()
const;
836 virtual void setRunInTimeManagementMode(
bool yesOrNo);
837 virtual bool runInTimeManagementMode()
const;
842 static void startTimeManagement(
void* usr);
843 static void stopTimeManagement(
void* usr);
847 virtual void processStartTimeManagement();
848 virtual void processStopTimeManagement();
852 virtual void setFullyLoadTerrain(
bool yesOrNo);
853 virtual bool fullyLoadTerrain()
const;
859 virtual void setAssertOnBlockingTerrainCalls(
bool b);
860 virtual bool assertOnBlockingTerrainCalls()
const;
869 virtual void addPluginToLoad(
const DtString&);
873 virtual void setLoadPluginsIfVersionMismatch(
bool);
874 virtual bool loadPluginsIfVersionMismatch()
const;
886 virtual void addPreLoadTerrainCallback(
888 virtual void removePreLoadTerrainCallback(
896 virtual void addPostLoadTerrainCallback(
898 virtual void removePostLoadTerrainCallback(
904 virtual void runForDuration(
double);
907 virtual void stopSimulationDurationTimer();
910 static void runDurationCompleteCallback(
void*);
911 virtual void processRunDurationComplete();
914 virtual void setPublishingGlobalEnvironment(
bool);
920 virtual void addPreLoadScenarioCallback(
922 virtual void removePreLoadScenarioCallback(
928 virtual void addPreCreateSimulationObjectGroupCallback(
930 virtual void removePreCreateSimulationObjectGroupCallback(
938 virtual void addPostLoadScenarioCallback(
940 virtual void removePostLoadScenarioCallback(
946 virtual void addPostCreateSimulationObjectGroupCallback(
948 virtual void removePostCreateSimulationObjectGroupCallback(
954 virtual void addPreImportScenarioCallback(
956 virtual void removePreImportScenarioCallback(
962 virtual void addPostImportScenarioCallback(
964 virtual void removePostImportScenarioCallback(
971 virtual void addPreSaveScenarioCallback(
973 virtual void removePreSaveScenarioCallback(
980 virtual void addPostSaveScenarioCallback(
982 virtual void removePostSaveScenarioCallback(
989 virtual void addPreCloseScenarioCallback(
991 virtual void removePreCloseScenarioCallback(
998 virtual void addPostCloseScenarioCallback(
1000 virtual void removePostCloseScenarioCallback(
1006 virtual void addPreSaveSimulationObjectGroupsCallback(
1008 virtual void removePreSaveSimulationObjectGroupsCallback(
1014 virtual void addPostSaveSimulationObjectGroupsCallback(
1016 virtual void removePostSaveSimulationObjectGroupsCallback(
1023 virtual void addScenarioPauseCallback(
1025 virtual void removeScenarioPauseCallback(
1032 virtual void addScenarioRunCallback(
1034 virtual void removeScenarioRunCallback(
1041 virtual void addPreScenarioRewindCallback(
1043 virtual void removePreScenarioRewindCallback(
1050 virtual void addPostScenarioRewindCallback(
1052 virtual void removePostScenarioRewindCallback(
1059 virtual void addPostTickCallback(
1061 virtual void removePostTickCallback(
1067 virtual void setTimeToQuit(
bool);
1068 virtual bool timeToQuit()
const;
1074 virtual bool executeSimCommand(
const DtSimCommand& simCommand);
1081 static void objectParametersOpCallback(
DtSimMessage* msg,
void* usr);
1085 static void scenarioDescriptionCallback(
DtSimMessage*,
void* usr);
1086 virtual void processScenarioDescription(
DtSimMessage*);
1089 static void setRunDurationCallback(
DtSimMessage*,
void* usr);
1093 static void actionCategoriesRequestCallback(
DtSimMessage* msg,
void* usr);
1094 virtual void processActionCategoriesRequest(
DtSimMessage* msg);
1097 static void scenarioStatusRequestCallback(
DtSimMessage* msg,
void* usr);
1098 virtual void processScenarioStatusRequest(
DtSimMessage* msg);
1099 virtual void sendScenarioStatusMessage();
1109 virtual void loadAllPlugins();
1112 virtual bool loadComponentAttachmentTable(
const DtFilename& filename);
1118 virtual bool loadTerrain(
const DtFilename& filename);
1123 virtual DtFilename findTerrainFile(
const DtFilename& startFile,
const std::vector<DtFilename>& searchPaths,
1124 const std::string& extension)
const;
1128 virtual void unloadTerrain();
1131 virtual bool loadOrderOfBattle(
const DtFilename& filename);
1134 virtual bool loadScenarioScripts(
const DtFilename& filename);
1139 virtual bool loadParameterDb(
const DtFilename& filename,
1144 virtual bool loadObjectParametersDBFile(
const DtFilename& opdFile,
1150 virtual bool loadPhysicalWorldFile(
const DtFilename& file,
bool force =
false);
1153 virtual bool loadPlans(
const DtFilename& filename);
1156 virtual bool loadGlobalPlans(
const DtFilename& filename);
1171 virtual void loadActionCategories(
const DtFilename& f);
1173 virtual bool loadForceHostility(
const DtFilename& filename,
bool clear =
true);
1175 virtual bool loadScenarioExtras(
const DtFilename& filename);
1179 virtual void processObjectParametersOp(
DtSimMessage * msg);
1184 virtual void emptyParametersDB();
1196 virtual void setFrameRateMode(
const DtString& mode, DtReal deltaTime);
1199 virtual void setAutoReorganization(
bool onOff);
1203 virtual void drainInput();
1227 virtual void updateReadyStatus();
1236 static void simCommandCallback(
DtSimMessage* msg,
void* usr);
1244 static void deferredLoadScenarioCallback(
void * data);
1245 virtual void processDeferredLoadScenario();
1252 static void deferredImportScenarioCallback(
void * data);
1253 virtual void processDeferredImportScenario();
1260 static void deferredRewindCallback(
void * data);
1261 virtual void processDeferredRewind();
1268 void rolloverStatsLogFilename(
const DtScenario* scenario);
1270 void logScenarioLoad(
const DtScenario* scenario);
1271 void logScenarioRewind();
1272 void logScenarioClose();
1429 int myMaxDrainInputReads;
1441 bool ownVrfCreator()
const;
1442 void setOwnVrfCreator(
bool yesOrNo);