VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cgf.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 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 #include <vlutil/vlFilename.h>
18 #include <vlutil/vlTime.h>
19 #include <vl/hostStructs.h>
20 #include <vector>
21 #include <vlutil/vlPrint.h>
24 #include "vrfutil/scenario.h"
26 #include "vrfutil/outputLogger.h"
27 #include "vrfutil/rwActivities.h"
28 
29 class DtAdminContent;
30 class DtIfScenarioStatus;
32 class DtExerciseConn;
33 class DtScenario;
34 class DtScenarioExplorer;
35 class DtPhysicalWorld;
36 class DtCommModelManager;
37 class DtTerrainInterface;
38 class DtVrfCreator;
39 class DtSimManager;
46 class DtVrfObjectManager;
50 class DtFireManager;
52 class DtJoyDeviceManager;
53 class DtHostilityManager;
55 class DtCustomReportManager;
57 class DtFactoryManager;
58 class DtVrfObject;
59 class DtObjectType;
60 class DtList;
61 class DtSimTask;
62 class DtSetDataRequest;
63 class DtPlan;
64 class DtPaperMapDatabase;
65 class DtMapDatum;
66 class DtVrfParameterDb;
67 class DtSimMessage;
68 class DtResourceMonitor;
69 class DtVrfObjectIdGenerator;
70 class DtVrfPlugin;
71 class DtVrfPluginManager;
72 class DtHlaExerciseClock;
73 class DtExerciseClock;
74 class DtSimCommand;
81 class DtTimer;
83 
96 #include "vrfcgf/vrfcgfDefines.h"
98 {
99 public:
100 
107  DtCgf(const DtSimulationAddress& addr, DtU32 sessionId = 1);
108 
132  virtual void init(DtExerciseConn* conn, DtVrfCreator* creator = 0,
133  int entityAdvisory = 100);
134 
136  virtual ~DtCgf();
137 
139  virtual const DtVrfSimOptionsInterface* simOptions() const;
140 
142  virtual void setSimOptions(const DtVrfSimOptionsInterface&);
143 
146  virtual void tick();
147 
150  virtual void sendFinalStatus();
151 
152  //-------------------------------------------------------
154  //-------------------------------------------------------
155 
157  virtual bool importScenarioDescriptionFile(const DtFilename& file, const DtString& format,
158  const std::map<std::string, std::string>& importData);
159 
163  virtual DtString exportScenarioDescriptionFile(const DtFilename& file, const DtString& format,
164  const std::map<std::string, std::string>& exportData);
165 
167  virtual void setAppDataDir(const DtString&);
168  virtual const DtString& appDataDir() const;
169 
173  virtual bool loadScenario(const DtFilename& name);
174 
181  virtual bool loadScenario(const DtScenario& scenario);
182 
189  virtual bool newScenario(const DtFilename& dbname =
190  DtFilename::nullFilename(), const DtFilename& simulationModelSet =
191  DtFilename::nullFilename());
192 
196  virtual bool saveScenario(const DtFilename& savename);
197 
202  virtual void closeScenario(const DtFilename& terrainToOpen = "");
203 
208  virtual bool loadAdditionalObjectParameters(const DtFilename& paramsFileName,
209  const DtReaderWriter::SearchPaths& searchPaths);
210 
213  virtual void run();
214 
216  virtual void pause();
217 
223  virtual void rewind();
224 
229 
230  virtual void setForceParameterDbReload(bool reload);
231  virtual bool forceParameterDbReload() const;
233 
237 
238  virtual void setEnableResourceMonitor(bool b);
239  virtual bool isResourceMonitorEnabled() const;
241 
243 #ifdef WIN32
244  virtual void setAppInstance(HINSTANCE hInstance);
245  virtual void setConsoleWindow(HWND consoleWindow);
246 #endif
247 
259 
260  virtual const DtFilename& defaultTerrainDirectory();
261  virtual void setDefaultTerrainDirectory(const DtFilename& directory);
263 
268 
269  virtual const DtFilename& defaultSimulationModelSetFilename();
270  virtual void setDefaultSimulationModelSetFilename(const DtFilename& filename);
272 
274 
275  virtual void setUseDIGuy(bool diguy);
276  virtual bool useDIGuy() const;
278 
283 
284  virtual const DtFilename& diGuyCharacterDataFilename();
285  virtual void setDIGuyCharacterDataFilename(const DtFilename& filename);
286 
287  virtual const DtFilename& diGuyAnimationsFilename();
288  virtual void setDIGuyAnimationsFilename(const DtFilename& filename);
290 
292 
293  virtual void setMsdlSidcMappingFile(const DtFilename&);
294  virtual const DtFilename& msdlSidcMappingFile() const;
296 
298 
299  virtual void setCountryCodesMappingFile(const DtFilename&);
300  virtual const DtFilename& countryCodesMappingFile() const;
302 
305  virtual DtSimulationModelSet* defaultModelSet();
306 
307  //-------------------------------------------------------
309  //-------------------------------------------------------
310 
313  virtual void deleteObject(const DtString& name) const;
314 
317  virtual void deleteObject(const DtEntityIdentifier& objectIdentifier) const;
318 
319  //-------------------------------------------------------
321  //-------------------------------------------------------
322 
324 
335  virtual DtVrfObject* createWaypoint(const DtVector& localPosition,
336  const DtString& uniqueName = DtString::nullString()) const;
337 
339 
352  virtual DtVrfObject* createRoute(const DtList& vertices,
353  const DtString& uniqueName = DtString::nullString()) const;
354 
356 
368  virtual DtVrfObject* createPhaseLine(
369  const DtVector& dbPoint1,
370  const DtVector& dbPoint2,
371  const DtString& uniqueName = DtString::nullString()) const;
372 
374 
386  virtual DtVrfObject* createControlArea(
387  const DtList& vertices,
388  const DtString& uniqueName = DtString::nullString()) const;
389 
391 
403  virtual DtVrfObject* createObstacle(
404  const DtList& vertices,
405  const DtString& uniqueName = DtString::nullString()) const;
406 
408 
421  virtual DtVrfObject* createDisaggregationArea(
422  const DtList& vertices,
423  const DtString& uniqueName = DtString::nullString()) const;
424 
425  //-------------------------------------------------------
427  //-------------------------------------------------------
428 
430 
459  virtual DtVrfObject* createEntity(
460  const DtEntityType& entityType,
461  DtForceType force,
462  const DtVector& dbPosition,
463  DtReal heading,
464  const DtString& entityName = DtString::nullString(),
465  bool allowBlocking = true,
466  std::list<DtAdminContent*>* initialAdminContent = 0) const;
467 
468 
470 
501  virtual DtVrfObject* createAggregate(
502  const DtEntityType& aggregateType,
503  DtForceType force,
504  const DtVector& localPosition,
505  DtReal heading,
506  DtList* subordinateNames = 0,
507  const DtString& aggregateName = DtString::nullString()) const;
508 
520  virtual DtVrfObject* createAggregate(
521  const DtEntityType& aggregateType,
522  DtForceType force,
523  const DtVector& localPosition,
524  DtReal heading,
525  bool createSubordinates,
526  const DtString& aggregateName = DtString::nullString(),
527  bool allowBlocking = true) const;
528 
540  virtual bool addSubordinate(DtVrfObject* subordinate,
541  DtVrfObject* aggregate);
542 
558  virtual bool removeSubordinate(DtVrfObject* subordinate,
559  DtVrfObject* aggregate);
560 
561  //-------------------------------------------------------
563  //-------------------------------------------------------
564 
571  virtual void assignTask(DtVrfObject* entity, const DtSimTask& task);
572 
580  virtual void sendSetDataRequest(DtVrfObject* entity,
581  const DtSetDataRequest& request);
582 
585  virtual void assignPlanByName(const DtString& name, const DtPlan& plan);
586 
591  virtual void abandonPlan(DtVrfObject* entity);
592 
597  virtual void restartPlan(DtVrfObject* entity);
598 
599  //-------------------------------------------------------
601  //-------------------------------------------------------
602 
606  virtual void logObjectConsoleToFile(DtVrfObject* object,
607  DtFilename filename = DtFilename::nullFilename());
608 
610  virtual void stopLoggingObjectConsoleToFile(DtVrfObject* object);
611 
615  virtual void setObjectConsoleNotificationLevel(DtVrfObject* object,
616  DtNotifyLevelType level);
617 
620  virtual void setPublishZeroVelocityWhenPaused(bool);
621  virtual bool publishZeroVelocityWhenPaused() const;
622 
623  //-------------------------------------------------------
625  //-------------------------------------------------------
626 
629  virtual DtSimManager* simManager() const;
630 
632  virtual DtImportExportScenarioDescriptionManager* importExportScenarioDescriptionManager() const;
633 
636  virtual DtResourceMonitor* resourceMonitor() const;
637 
639  virtual DtVrfObjectIdGenerator* vrfObjectIdGenerator() const;
640 
643  virtual DtFactoryManager* factoryManager() const;
644 
647  virtual DtVrfObjectManager* vrfObjectManager() const;
648 
650  virtual DtScriptedTaskManager* scriptedTaskManager() const;
651 
653  virtual DtScenarioEventManager* scenarioEventManager() const;
654 
656  virtual DtHazardAreaManager* hazardAreaManager() const;
657 
659  virtual DtIntelCollectionAreaManager* intelCollectionAreaManager() const;
660 
662  virtual DtScriptedObjectsMovementManager* ScriptedObjectsMovementManager() const;
663 
666  virtual DtAggregateSpatialModel* aggregateSpatialModel() const;
667 
670  virtual DtDetonationManager* detonationManager() const;
671 
674  virtual DtFireManager* fireManager() const;
675 
680  virtual DtScenarioExtrasMgr* scenarioExtrasMgr() const;
681 
683  virtual DtVrfParameterDb* parameterDatabase() const;
684 
686  virtual DtGlobalPlanManager* globalPlanManager();
687 
689  virtual DtStealthCommandsManager* stealthCommandsManager();
690 
693 
694  virtual DtTerrainInterface* terrainInterface();
695  virtual const DtTerrainInterface* terrainInterface() const;
697 
700  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
701 
702 
705 
706  virtual DtPhysicalWorld* physicalWorld();
707  virtual const DtPhysicalWorld* physicalWorld() const;
709 
711  virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
712 
714 
715  virtual DtCommModelManager* commModelManager();
716  virtual const DtCommModelManager* commModelManager() const;
718 
720 
721  virtual DtSimTerrainRequestManager* simTerrainRequestManager();
722  virtual const DtSimTerrainRequestManager* simTerrainRequestManager() const;
724 
726 
727  virtual DtDynamicFeaturesManager* dynamicFeaturesManager();
728  virtual const DtDynamicFeaturesManager* dynamicFeaturesManager() const;
730 
732  virtual DtScenario* scenario() const;
733 
736  virtual const DtSimulationAddress& simulationAddress() const;
737 
743  virtual int sessionId() const;
744 
747  virtual DtVrfStatusPublisher* statusPublisher() const;
748 
751  virtual DtExerciseConn* exerciseConn() const;
752 
756  virtual void useMapDatum(const DtMapDatum& mapDatum);
757 
759  virtual void setParameterDbLoaded(bool flag);
760 
761  virtual void setMaxDrainInputTime(DtFloat64 maxTime);
762  virtual DtFloat64 maxDrainInputTime() const;
763 
764 #ifdef DtHLA
765  virtual void setMinDrainInputTime(DtFloat64 minTime);
766  virtual DtFloat64 minDrainInputTime() const;
767 #else
768  virtual void setMaxDrainInputReads(int maxReads);
769  virtual int maxDrainInputReads() const;
770 #endif
771 
772  virtual bool logFrameRateStatistics() const;
773  virtual void setLogFrameRateStatistics(bool yesOrNo);
774  virtual void setFrameRateStatisticsLogFile(const DtFilename&);
775  virtual const DtFilename& frameRateStatisticsLogFile() const;
776 
782  virtual void setDefaultParameterDbDirectory(const DtFilename& filename);
783 
784 #if DtHLA
785 
786 
787  virtual void setRunInTimeManagementMode(bool yesOrNo);
788  virtual bool runInTimeManagementMode() const;
789 
793  static void startTimeManagement(void* usr);
794  static void stopTimeManagement(void* usr);
795 
798  virtual void processStartTimeManagement();
799  virtual void processStopTimeManagement();
800 
801 #endif
802 
803  virtual void setFullyLoadTerrain(bool yesOrNo);
804  virtual bool fullyLoadTerrain() const;
805 
809 
810  virtual void setAssertOnBlockingTerrainCalls(bool b);
811  virtual bool assertOnBlockingTerrainCalls() const;
813 
814  //-------------------------------------------------------
816  //-------------------------------------------------------
817 
820  virtual void addPluginToLoad(const DtString&);
821 
824  virtual void setLoadPluginsIfVersionMismatch(bool);
825  virtual bool loadPluginsIfVersionMismatch() const;
826 
828 
829  DtVrfCreator* vrfCreator();
830  const DtVrfCreator* vrfCreator() const;
832 
836 
837  virtual void addPreLoadTerrainCallback(
839  virtual void removePreLoadTerrainCallback(
842 
846 
847  virtual void addPostLoadTerrainCallback(
849  virtual void removePostLoadTerrainCallback(
852 
855  virtual void runForDuration(double);
856 
858  virtual void stopSimulationDurationTimer();
859 
861  static void runDurationCompleteCallback(void*);
862  virtual void processRunDurationComplete();
863 
865  virtual void setPublishingGlobalEnvironment(bool);
866 
870 
871  virtual void addPreLoadScenarioCallback(
873  virtual void removePreLoadScenarioCallback(
876 
880 
881  virtual void addPostLoadScenarioCallback(
883  virtual void removePostLoadScenarioCallback(
886 
889 
890  virtual void addPreSaveScenarioCallback(
892  virtual void removePreSaveScenarioCallback(
895 
898 
899  virtual void addPostSaveScenarioCallback(
901  virtual void removePostSaveScenarioCallback(
904 
907 
908  virtual void addPreCloseScenarioCallback(
910  virtual void removePreCloseScenarioCallback(
913 
916 
917  virtual void addPostCloseScenarioCallback(
919  virtual void removePostCloseScenarioCallback(
922 
925 
926  virtual void addScenarioPauseCallback(
928  virtual void removeScenarioPauseCallback(
931 
934 
935  virtual void addScenarioRunCallback(
937  virtual void removeScenarioRunCallback(
940 
943 
944  virtual void addPreScenarioRewindCallback(
946  virtual void removePreScenarioRewindCallback(
949 
952 
953  virtual void addPostScenarioRewindCallback(
955  virtual void removePostScenarioRewindCallback(
958 
961 
962  virtual void addPostTickCallback(
964  virtual void removePostTickCallback(
967 
969 
970  virtual void setTimeToQuit(bool);
971  virtual bool timeToQuit() const;
973 
977  virtual bool executeSimCommand(const DtSimCommand& simCommand);
978 
979 public:
980 
984  static void objectParametersOpCallback(DtSimMessage* msg, void* usr);
985 
986 protected:
988  static void scenarioDescriptionCallback(DtSimMessage*, void* usr);
989  virtual void processScenarioDescription(DtSimMessage*);
990 
992  static void setRunDurationCallback(DtSimMessage*, void* usr);
993  virtual void processSetRunDuration(DtSimMessage*);
994 
996  static void actionCategoriesRequestCallback(DtSimMessage* msg, void* usr);
997  virtual void processActionCategoriesRequest(DtSimMessage* msg);
998 
1000  static void scenarioStatusRequestCallback(DtSimMessage* msg, void* usr);
1001  virtual void processScenarioStatusRequest(DtSimMessage* msg);
1002  virtual void sendScenarioStatusMessage();
1003 
1004 private:
1006  DtCgf(const DtCgf& original);
1008  DtCgf& operator=(const DtCgf& original);
1009 
1010 protected:
1012  virtual void loadAllPlugins();
1013 
1015  virtual bool loadComponentAttachmentTable(const DtFilename& filename);
1021  virtual bool loadTerrain(const DtFilename& filename);
1022 
1026  virtual DtFilename findTerrainFile(const DtFilename& startFile, const std::vector<DtFilename>& searchPaths,
1027  const std::string& extension) const;
1028 
1031  virtual void unloadTerrain();
1032 
1034  virtual bool loadOrderOfBattle(const DtFilename& filename);
1035 
1037  virtual bool loadScenarioScripts(const DtFilename& filename);
1038 
1042  virtual bool loadParameterDb(const DtFilename& filename,
1043  const DtReaderWriter::SearchPaths& searchPaths);
1044 
1047  virtual bool loadObjectParametersDBFile(const DtFilename& opdFile,
1048  const DtReaderWriter::SearchPaths& searchPaths);
1049 
1053  virtual bool loadPhysicalWorldFile(const DtFilename& file, bool force = false);
1054 
1056  virtual bool loadPlans(const DtFilename& filename);
1057 
1059  virtual bool loadGlobalPlans(const DtFilename& filename);
1060 
1062  virtual void loadHostilityAndExtras(const DtScenarioExplorer& se);
1063 
1066  virtual void loadActivities(const DtScenarioExplorer&);
1067 
1070  virtual void loadModelSetFiles(const DtScenarioExplorer&);
1071 
1074  virtual void loadActionCategories(const DtFilename& f);
1075 
1076  virtual bool loadForceHostility(const DtFilename& filename, bool clear = true);
1077 
1078  virtual bool loadScenarioExtras(const DtFilename& filename);
1079 
1082  virtual void processObjectParametersOp(DtSimMessage * msg);
1083 
1084 
1087  virtual void emptyParametersDB();
1088 
1099  virtual void setFrameRateMode(const DtString& mode, DtReal deltaTime);
1100 
1102  virtual void setAutoReorganization(bool onOff);
1103 
1106  virtual void drainInput();
1107 
1111  virtual DtVrfPlugin* loadPlugin(const DtString&);
1112 
1117 #if DtHLA
1118  DtHlaExerciseClock* exerciseClock() const;
1119 #else
1120  DtExerciseClock* exerciseClock() const;
1121 #endif
1122 
1125  virtual bool setupCommModelsForScenario(const DtScenarioExplorer& e);
1126 
1130  virtual void updateReadyStatus();
1131 
1133  virtual void processOrganizationManagerReady(const DtOrganizationManagerReadyCallbackInfo&);
1134  static void organizationManagerReadyCallback(const DtOrganizationManagerReadyCallbackInfo&, void* usr);
1135 
1138 
1139  static void simCommandCallback(DtSimMessage* msg, void* usr);
1140  virtual void processSimCommand(DtSimMessage* msg);
1142 
1146 
1147  static void deferredLoadScenarioCallback(void * data);
1148  virtual void processDeferredLoadScenario();
1150 
1154 
1155  static void deferredRewindCallback(void * data);
1156  virtual void processDeferredRewind();
1158 
1159  //-------------------------------------------------------
1161  //-------------------------------------------------------
1162 
1163  DtOutputLogger& getFrameRateStatsLogger(const DtFilename& newFilename = "");
1164  std::string createStatsLogFilename(
1165  const std::string& originalFilename, const DtSimManager& simManager,
1166  const DtScenario* scenario);
1167  void logScenarioLoad(const DtSimManager& simManager,
1168  const DtScenario* scenario);
1169  void logScenarioRewind();
1170  void logScenarioClose();
1171  void logFrameRateStatsToFile(DtSimManager* simManager);
1172 
1173 protected:
1175 
1177  DtSimulationAddress mySimulationAddress;
1178 
1181 
1183  bool myOK;
1184 
1187 
1190  std::vector<DtString> myPluginsToLoad;
1192 
1195 
1198 
1200 
1202 
1204 
1206  DtExerciseConn* myExerciseConn;
1207 
1210 
1213 
1216 
1219 
1221 
1229 
1231 
1234 
1236  DtVrfObjectIdGenerator* myVrfObjectIdGenerator;
1237 
1240 
1243 
1246 
1248 
1251 
1253 
1255 
1258 
1261 
1267 
1272 
1275 
1278 
1281 
1284 
1287 
1290 
1294 
1297 
1302 
1316 
1318 #if DtHLA
1320 #else
1321  int myMaxDrainInputReads;
1322 #endif
1323 
1328  void setVrfCreator(DtVrfCreator* creator);
1330 
1332 
1333  bool ownVrfCreator() const;
1334  void setOwnVrfCreator(bool yesOrNo);
1336 
1337 protected:
1340 
1343 
1346 
1351 
1352 #if DtHLA
1354 #endif
1355 
1358 
1363 
1367 #if DtHLA
1369 #else
1370  DtExerciseClock* myExerciseClockPtr;
1371 #endif
1372 
1376 
1381 
1386 
1389 
1391 
1394  typedef std::pair<std::string, bool> ActionCategory;
1395  typedef std::map<std::string, ActionCategory> ActionCategories;
1397 
1400 
1404 
1408 };
1409 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)