VR-Forces 4.1.1 Class Documentation
cgf.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
12 
13 #ifdef WIN32
14 #include <winsock2.h>
15 #endif
16 
17 
18 #include <vlutil/vlFilename.h>
19 #include <vlutil/vlTime.h>
20 #include <vl/hostStructs.h>
21 #include <vector>
22 #include <vlutil/vlPrint.h>
23 #include "vrfutil/callbackList.h"
24 #include "vrfutil/scenario.h"
26 #include "vrfutil/outputLogger.h"
27 
28 class DtAdminContent;
30 class DtExerciseConn;
31 class DtScenario;
32 class DtScenarioExplorer;
33 class DtPhysicalWorld;
34 class DtCommModelManager;
35 class DtTerrainInterface;
36 class DtVrfCreator;
37 class DtSimManager;
41 class DtVrfObjectManager;
44 class DtFireManager;
46 class DtJoyDeviceManager;
47 class DtHostilityManager;
49 class DtCustomReportManager;
50 class DtFactoryManager;
51 class DtVrfObject;
52 class DtObjectType;
53 class DtList;
54 class DtSimTask;
55 class DtSetDataRequest;
56 class DtPlan;
57 class DtPaperMapDatabase;
58 class DtMapDatum;
60 class DtVrfParameterDb;
61 class DtSimMessage;
62 class DtResourceMonitor;
64 class DtVrfPlugin;
65 class DtVrfPluginManager;
66 class DtHlaExerciseClock;
67 class DtExerciseClock;
68 class DtSimCommand;
73 
84 #include "vrfcgf/vrfcgfDefines.h"
86 {
87 public:
88 
95  DtCgf(const DtSimulationAddress& addr, DtU32 sessionId = 1);
96 
120  virtual void init(DtExerciseConn* conn, DtVrfCreator* creator = 0,
121  int entityAdvisory = 100);
122 
124  virtual ~DtCgf();
125 
128  virtual void tick();
129 
132  virtual void sendFinalStatus();
133 
134  //-------------------------------------------------------
136  //-------------------------------------------------------
137 
139  virtual bool importScenarioDescriptionFile(const DtFilename& file, const DtString& format,
140  const std::map<std::string, std::string>& importData);
141 
145  virtual DtString exportScenarioDescriptionFile(const DtFilename& file, const DtString& format,
146  const std::map<std::string, std::string>& exportData);
147 
151  virtual bool loadScenario(const DtFilename& name);
152 
159  virtual bool loadScenario(const DtScenario& scenario);
160 
167  virtual bool newScenario(const DtFilename& dbname =
168  DtFilename::nullFilename(), const DtFilename& simulationModelSet =
169  DtFilename::nullFilename());
170 
174  virtual bool saveScenario(const DtFilename& savename);
175 
178  virtual void closeScenario();
179 
183  virtual bool loadAdditionalObjectParameters(const DtFilename& paramsFileName);
184 
187  virtual void loadCoreSimulationModelSets();
188 
191  virtual void run();
192 
194  virtual void pause();
195 
201  virtual void rewind();
202 
207 
208  virtual void setForceParameterDbReload(bool reload);
209  virtual bool forceParameterDbReload() const;
211 
215 
216  virtual void setEnableResourceMonitor(bool b);
217  virtual bool isResourceMonitorEnabled() const;
219 
221 #ifdef WIN32
222  virtual void setAppInstance(HINSTANCE hInstance);
223  virtual void setConsoleWindow(HWND consoleWindow);
224 #endif
225 
237 
238  virtual const DtFilename& defaultTerrainDirectory();
239  virtual void setDefaultTerrainDirectory(const DtFilename& directory);
241 
246 
247  virtual const DtFilename& defaultSimulationModelSetFilename();
248  virtual void setDefaultSimulationModelSetFilename(const DtFilename& filename);
250 
252 
253  virtual void setUseDIGuy(bool diguy);
254  virtual bool useDIGuy() const;
256 
261 
262  virtual const DtFilename& diGuyCharacterDataFilename();
263  virtual void setDIGuyCharacterDataFilename(const DtFilename& filename);
264 
265  virtual const DtFilename& diGuyAnimationsFilename();
266  virtual void setDIGuyAnimationsFilename(const DtFilename& filename);
268 
270 
271  virtual void setMsdlSIDCMappingFile(const DtFilename&);
272  virtual const DtFilename& msdlSIDCMappingFile() const;
274 
276 
277  virtual void setCountryCodesMappingFile(const DtFilename&);
278  virtual const DtFilename& countryCodesMappingFile() const;
280 
283  virtual DtSimulationModelSet* defaultModelSet();
284 
285  //-------------------------------------------------------
287  //-------------------------------------------------------
288 
291  virtual void deleteObject(const DtString& name) const;
292 
295  virtual void deleteObject(const DtEntityIdentifier& objectIdentifier) const;
296 
297  //-------------------------------------------------------
299  //-------------------------------------------------------
300 
302 
313  virtual DtVrfObject* createWaypoint(const DtVector& localPosition,
314  const DtString& uniqueName = DtString::nullString()) const;
315 
317 
330  virtual DtVrfObject* createRoute(const DtList& vertices,
331  const DtString& uniqueName = DtString::nullString()) const;
332 
334 
346  virtual DtVrfObject* createPhaseLine(
347  const DtVector& dbPoint1,
348  const DtVector& dbPoint2,
349  const DtString& uniqueName = DtString::nullString()) const;
350 
352 
364  virtual DtVrfObject* createControlArea(
365  const DtList& vertices,
366  const DtString& uniqueName = DtString::nullString()) const;
367 
369 
381  virtual DtVrfObject* createObstacle(
382  const DtList& vertices,
383  const DtString& uniqueName = DtString::nullString()) const;
384 
386 
399  virtual DtVrfObject* createDisaggregationArea(
400  const DtList& vertices,
401  const DtString& uniqueName = DtString::nullString()) const;
402 
403  //-------------------------------------------------------
405  //-------------------------------------------------------
406 
408 
437  virtual DtVrfObject* createEntity(
438  const DtEntityType& entityType,
439  DtForceType force,
440  const DtVector& dbPosition,
441  DtReal heading,
442  const DtString& entityName = DtString::nullString(),
443  bool allowBlocking = true,
444  std::list<DtAdminContent*>* initialAdminContent = 0) const;
445 
446 
448 
479  virtual DtVrfObject* createAggregate(
480  const DtEntityType& aggregateType,
481  DtForceType force,
482  const DtVector& localPosition,
483  DtReal heading,
484  DtList* subordinateNames = 0,
485  const DtString& aggregateName = DtString::nullString()) const;
486 
498  virtual DtVrfObject* createAggregate(
499  const DtEntityType& aggregateType,
500  DtForceType force,
501  const DtVector& localPosition,
502  DtReal heading,
503  bool createSubordinates,
504  const DtString& aggregateName = DtString::nullString(),
505  bool allowBlocking = true) const;
506 
518  virtual bool addSubordinate(DtVrfObject* subordinate,
519  DtVrfObject* aggregate);
520 
536  virtual bool removeSubordinate(DtVrfObject* subordinate,
537  DtVrfObject* aggregate);
538 
539  //-------------------------------------------------------
541  //-------------------------------------------------------
542 
549  virtual void assignTask(DtVrfObject* entity, const DtSimTask& task);
550 
558  virtual void sendSetDataRequest(DtVrfObject* entity,
559  const DtSetDataRequest& request);
560 
563  virtual void assignPlanByName(const DtString& name, const DtPlan& plan);
564 
569  virtual void abandonPlan(DtVrfObject* entity);
570 
575  virtual void restartPlan(DtVrfObject* entity);
576 
577  //-------------------------------------------------------
579  //-------------------------------------------------------
580 
584  virtual void logObjectConsoleToFile(DtVrfObject* object,
585  DtFilename filename = DtFilename::nullFilename());
586 
588  virtual void stopLoggingObjectConsoleToFile(DtVrfObject* object);
589 
593  virtual void setObjectConsoleNotificationLevel(DtVrfObject* object,
594  DtNotifyLevelType level);
595 
596  //-------------------------------------------------------
598  //-------------------------------------------------------
599 
602  virtual DtSimManager* simManager() const;
603 
605  virtual DtImportExportScenarioDescriptionManager* importExportScenarioDescriptionManager() const;
606 
609  virtual DtResourceMonitor* resourceMonitor() const;
610 
612  virtual DtVrfObjectIdGenerator* vrfObjectIdGenerator() const;
613 
616  virtual DtFactoryManager* factoryManager() const;
617 
620  virtual DtVrfObjectManager* vrfObjectManager() const;
621 
623  virtual DtScriptedTaskManager* scriptedTaskManager() const;
624 
626  virtual DtScriptedObjectsMovementManager* ScriptedObjectsMovementManager() const;
627 
630  virtual DtAggregateSpatialModel* aggregateSpatialModel() const;
631 
634  virtual DtDetonationManager* detonationManager() const;
635 
638  virtual DtFireManager* fireManager() const;
639 
644  virtual DtScenarioExtrasMgr* scenarioExtrasMgr() const;
645 
647  virtual DtVrfParameterDb* parameterDatabase() const;
648 
650  virtual DtGlobalPlanManager* globalPlanManager();
651 
654 
655  virtual DtTerrainInterface* terrainInterface();
656  virtual const DtTerrainInterface* terrainInterface() const;
658 
661  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
662 
663 
666 
667  virtual DtPhysicalWorld* physicalWorld();
668  virtual const DtPhysicalWorld* physicalWorld() const;
670 
672  virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
673 
675 
676  virtual DtCommModelManager* commModelManager();
677  virtual const DtCommModelManager* commModelManager() const;
679 
681  virtual DtScenario* scenario() const;
682 
685  virtual const DtSimulationAddress& simulationAddress() const;
686 
692  virtual int sessionId() const;
693 
696  virtual DtVrfStatusPublisher* statusPublisher() const;
697 
700  virtual DtExerciseConn* exerciseConn() const;
701 
703  virtual DtStealthRemoteController* stealthRemoteController() const;
704 
708  virtual void useMapDatum(const DtMapDatum& mapDatum);
709 
711  virtual void setParameterDbLoaded(bool flag);
712 
713  virtual void setMaxDrainInputTime(DtFloat64 maxTime);
714  virtual DtFloat64 maxDrainInputTime() const;
715 
716 #ifdef DtHLA
717  virtual void setMinDrainInputTime(DtFloat64 minTime);
718  virtual DtFloat64 minDrainInputTime() const;
719 #else
720  virtual void setMaxDrainInputReads(int maxReads);
721  virtual int maxDrainInputReads() const;
722 #endif
723 
724  virtual bool logFrameRateStatistics() const;
725  virtual void setLogFrameRateStatistics(bool yesOrNo);
726  virtual void setLogFrameRateOutputDirectory(const DtFilename&);
727  virtual const DtFilename& logFrameRateOutputDirectory() const;
728 
734  virtual void setDefaultParameterDbDirectory(const DtFilename& filename);
735 
736 #if DtHLA
737 
738 
739  virtual void setRunInTimeManagementMode(bool yesOrNo);
740  virtual bool runInTimeManagementMode() const;
741 
745  static void startTimeManagement(void* usr);
746  static void stopTimeManagement(void* usr);
747 
750  virtual void processStartTimeManagement();
751  virtual void processStopTimeManagement();
752 
753 #endif
754 
755  virtual void setFullyLoadTerrain(bool yesOrNo);
756  virtual bool fullyLoadTerrain() const;
757 
761 
762  virtual void setAssertOnBlockingTerrainCalls(bool b);
763  virtual bool assertOnBlockingTerrainCalls() const;
765 
766  //-------------------------------------------------------
768  //-------------------------------------------------------
769 
772  virtual void addPluginToLoad(const DtString&);
773 
776  virtual void setLoadPluginsIfVersionMismatch(bool);
777  virtual bool loadPluginsIfVersionMismatch() const;
778 
780 
781  DtVrfCreator* vrfCreator();
782  const DtVrfCreator* vrfCreator() const;
784 
788 
789  virtual void addPreLoadTerrainCallback(
791  virtual void removePreLoadTerrainCallback(
794 
798 
799  virtual void addPostLoadTerrainCallback(
801  virtual void removePostLoadTerrainCallback(
804 
808 
809  virtual void addPreLoadScenarioCallback(
811  virtual void removePreLoadScenarioCallback(
814 
818 
819  virtual void addPostLoadScenarioCallback(
821  virtual void removePostLoadScenarioCallback(
824 
827 
828  virtual void addPreSaveScenarioCallback(
830  virtual void removePreSaveScenarioCallback(
833 
836 
837  virtual void addPostSaveScenarioCallback(
839  virtual void removePostSaveScenarioCallback(
842 
845 
846  virtual void addPreCloseScenarioCallback(
848  virtual void removePreCloseScenarioCallback(
851 
854 
855  virtual void addPostCloseScenarioCallback(
857  virtual void removePostCloseScenarioCallback(
860 
863 
864  virtual void addScenarioPauseCallback(
866  virtual void removeScenarioPauseCallback(
869 
872 
873  virtual void addScenarioRunCallback(
875  virtual void removeScenarioRunCallback(
878 
881 
882  virtual void addPreScenarioRewindCallback(
884  virtual void removePreScenarioRewindCallback(
887 
890 
891  virtual void addPostScenarioRewindCallback(
893  virtual void removePostScenarioRewindCallback(
896 
899 
900  virtual void addPostTickCallback(
902  virtual void removePostTickCallback(
905 
907 
908  virtual void setTimeToQuit(bool);
909  virtual bool timeToQuit() const;
911 
915  virtual bool executeSimCommand(const DtSimCommand& simCommand);
916 
917 public:
918 
922  static void objectParametersOpCallback(DtSimMessage* msg, void* usr);
923 
924 protected:
926  static void scenarioDescriptionCallback(DtSimMessage*, void* usr);
927  virtual void processScenarioDescription(DtSimMessage*);
928 
930  static void actionCategoriesRequestCallback(DtSimMessage* msg, void* usr);
931  virtual void processActionCategoriesRequest(DtSimMessage* msg);
932 
933 private:
935  DtCgf(const DtCgf& original);
937  DtCgf& operator=(const DtCgf& original);
938 
939 protected:
941  virtual void loadAllPlugins();
942 
944  virtual bool loadComponentAttachmentTable(const DtFilename& filename);
950  virtual bool loadTerrain(const DtFilename& filename);
951 
955  virtual DtFilename findTerrainFile(const DtFilename& startFile, const std::vector<DtFilename>& searchPaths,
956  const std::string& extension) const;
957 
960  virtual void unloadTerrain();
961 
963  virtual bool loadOrderOfBattle(const DtFilename& filename);
964 
966  virtual bool loadScenarioScripts(const DtFilename& filename);
967 
970  virtual bool loadParameterDb(const DtFilename& filename);
971 
973  virtual bool loadObjectParametersDBFile(const DtFilename& opdFile);
974 
978  virtual bool loadPhysicalWorldFile(const DtFilename& file, bool force = false);
979 
981  virtual bool loadPlans(const DtFilename& filename);
982 
984  virtual bool loadGlobalPlans(const DtFilename& filename);
985 
987  virtual void loadHostilityAndExtras(const DtScenarioExplorer& se);
988 
991  virtual void loadModelSetFiles(const DtScenarioExplorer&);
992 
995  virtual void loadActionCategories(const DtFilename& f);
996 
997  virtual bool loadForceHostility(const DtFilename& filename);
998 
999  virtual bool loadScenarioExtras(const DtFilename& filename);
1000 
1003  virtual void processObjectParametersOp(DtSimMessage * msg);
1004 
1005 
1008  virtual void emptyParametersDB();
1009 
1020  virtual void setFrameRateMode(const DtString& mode, DtReal deltaTime);
1021 
1023  virtual void setAutoReorganization(bool onOff);
1024 
1027  virtual void drainInput();
1028 
1032  virtual DtVrfPlugin* loadPlugin(const DtString&);
1033 
1038 #if DtHLA
1039  DtHlaExerciseClock* exerciseClock() const;
1040 #else
1041  DtExerciseClock* exerciseClock() const;
1042 #endif
1043 
1046  virtual bool setupCommModelsForScenario(const DtScenarioExplorer& e);
1047 
1051  virtual void updateReadyStatus();
1052 
1054  virtual void processOrganizationManagerReady(const DtOrganizationManagerReadyCallbackInfo&);
1055  static void organizationManagerReadyCallback(const DtOrganizationManagerReadyCallbackInfo&, void* usr);
1056 
1059 
1060  static void simCommandCallback(DtSimMessage* msg, void* usr);
1061  virtual void processSimCommand(DtSimMessage* msg);
1063 
1067 
1068  static void deferredLoadScenarioCallback(void * data);
1069  virtual void processDeferredLoadScenario();
1071 
1075 
1076  static void deferredRewindCallback(void * data);
1077  virtual void processDeferredRewind();
1079 
1080  //-------------------------------------------------------
1082  //-------------------------------------------------------
1083 
1084  static DtOutputLogger& getGlobalFrameRateStatsLogger();
1085  static std::string createStatsLogFilename(
1086  const std::string& originalFilename, const DtSimManager& simManager,
1087  const DtScenario* scenario, const DtFilename& logFrameRateDir);
1088  static void logScenarioLoad(const DtSimManager& simManager,
1089  const DtScenario* scenario, const DtFilename& logFrameOutDir);
1090  static void logScenarioRewind();
1091  static void logScenarioClose();
1092  static void logFrameRateStatsToFile(DtSimManager* simManager);
1093 
1094 protected:
1095 
1097  DtSimulationAddress mySimulationAddress;
1098 
1101 
1103  bool myOK;
1104 
1107 
1110  std::vector<DtString> myPluginsToLoad;
1112 
1115 
1118 
1120 
1122  DtExerciseConn* myExerciseConn;
1123 
1126 
1129 
1132 
1135 
1137 
1142 
1144 
1147 
1150 
1153 
1156 
1158 
1161 
1163 
1165 
1168 
1171 
1177 
1182 
1185 
1188 
1191 
1194 
1197 
1200 
1204 
1207 
1212 
1226 
1228 #if DtHLA
1230 #else
1231  int myMaxDrainInputReads;
1232 #endif
1233 
1238  void setVrfCreator(DtVrfCreator* creator);
1240 
1242 
1243  bool ownVrfCreator() const;
1244  void setOwnVrfCreator(bool yesOrNo);
1246 
1247 protected:
1250 
1253 
1258 
1259 #if DtHLA
1261 #endif
1262 
1265 
1270 
1274 #if DtHLA
1276 #else
1277  DtExerciseClock* myExerciseClockPtr;
1278 #endif
1279 
1283 
1288 
1293 
1296 
1298 
1301  typedef std::pair<std::string, bool> ActionCategory;
1302  typedef std::map<std::string, ActionCategory> ActionCategories;
1304 };
1305 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)