VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfRemoteController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
17 #include "vrfmsgs/ifSaveComplete.h"
20 #include "vrfutil/scenario.h"
21 #include "vrfutil/rwUUID.h"
22 #include "vrftasks/simTask.h"
23 #include "vrfplan/plan.h"
39 
41 #include <vl/commentInteraction.h>
42 #include <vl/exerciseConn.h>
43 #include <vl/hostStructs.h>
44 #include <vlpi/disEnums.h>
45 #include <vlpi/appearance.h>
46 #include <vlutil/vlHashlist.h>
47 
49 #include <list>
50 
51 class DtAdminContent;
52 class DtBackendMap;
53 class DtAddressMap;
58 class DtIfLoadScenario;
59 class DtIfPlan;
65 class DtSettingsObject;
71 
72 namespace makVrfVrlinkExtToolkit
73 {
74  class DtReflectedExtendedAttributesObjectList;
75 }
76 
77 typedef void (*DtScenarioCallbackFcn)(void* usr);
78 typedef void (*DtScenarioAboutToBeSavedCallbackFcn)(DtScenario&, void* usr);
80 
82 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, const std::set<DtSimulationAddress>& expectedBackends, void* usr);
85 typedef bool (*DtPreserveMappingsFcn)(void* usr);
86 
88 
89 typedef void (*DtBackendSaveCallbackFcn)
90  (const DtSimulationAddress& addr, DtSaveResult result, void * usr);
91 
92 typedef void (*DtScenarioSavedCallbackFcn)
93  (DtSaveResult result, const DtString& sError, void* usr);
94 
95 typedef void (*DtCheckpointSavedCallbackFcn)
96  (DtSaveResult result, double, void* usr);
97 
98 typedef void (*DtVrfObjectCreatedCallbackFcn)
99  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
100 
101 typedef void (*DtOverlayCreatedCallbackFcn)
102  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, DtVrfOverlayObjectModify* usr);
103 
105  (const DtString& name, const DtEntityIdentifier& id,
106  const DtUUID& uuid, void* usr);
107 
108 typedef void (*DtObjectConsoleMessageCallbackFcn)
109  (const DtEntityIdentifier& id, int notifyLevel, const DtString& message,
110  void* usr);
111 
113  (const DtSimulationAddress& id, int notifyLevel, const DtString& message,
114  void* usr);
115 
120  (const DtIfServerRequestResponse& response, void* usr);
121 
124 {
125 public:
126  PlanCbInfo(const DtUUID& n, bool global, DtPlanCallbackFcn f, void* usr) :
127  planName(n), isGlobal(global), fcn(f), data(usr) {}
129  bool operator==(const PlanCbInfo& orig) const
130  {
131  return (planName == orig.planName && fcn == orig.fcn && data == orig.data
132  && isGlobal == orig.isGlobal);
133  }
134 
136  bool isGlobal;
138  void* data;
139 };
140 
143 {
144 public:
145  StmtCbInfo(const DtUUID& n, bool global,
146  DtPlanStatementCallbackFcn f, void* usr) :
147  planName(n), isGlobal(global) , fcn(f), data(usr) {}
149  bool operator==(const StmtCbInfo& orig) const
150  {
151  return (planName == orig.planName && fcn == orig.fcn && data == orig.data &&
152  isGlobal == orig.isGlobal);
153  }
154 
157  bool isGlobal;
158  void* data;
159 };
160 
163 {
164 public:
165  PlanCompleteCbInfo(const DtUUID& n, bool global,
166  DtPlanCompleteCallbackFcn f, void* usr) :
167  planName(n), isGlobal(global), fcn(f), data(usr) {}
169  bool operator==(const PlanCompleteCbInfo& orig) const
170  {
171  return (planName == orig.planName && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal);
172  }
173 
176  bool isGlobal;
177  void* data;
178 };
179 
180 
201 {
202 public:
204  AttachNone=0,
206  AttachEven
207  };
208 
209 public:
210 
214 
220  DtVrfRemoteController(int receivePort = 9000);
221 
223  virtual ~DtVrfRemoteController();
224 
226  virtual DtVrfMessageInterface* vrfMessageInterface() const;
227 
229  virtual DtVrfTDLMessageInterface* vrfTDLMessageInterface() const;
230 
232  virtual DtUUIDNetworkManager* uuidNetworkManager() const;
233 
235  DtRemoteEnvironmentController* remoteEnvironmentController();
236 
238  virtual DtVrfConfigurationFileComposer* composer();
239 
241  virtual void setHostInetAddr(DtInetAddr);
242  virtual DtInetAddr hostInetAddr() const;
243 
245  virtual const DtSimulationAddress& simulationAddress() const;
246 
248  virtual int sessionId() const;
249 
253  virtual unsigned int generateRequestId() const;
254 
256 
257  //---------------------------------------------------------------
258 
262 
282  virtual void init(DtExerciseConn* exConn,
284  DtReflectedEntityList* reel = NULL,
285  DtReflectedAggregateList* ral = NULL,
286  const DtString& uuidMarkingForNonVrForces = "entity-identifier"
287 #if DtHLA
289 #endif
290  );
291  virtual void init(DtVrfMessageInterface* msgIf,
293  DtReflectedEntityList* reel = NULL,
294  DtReflectedAggregateList* ral = NULL,
295  const DtString& uuidMarkingForNonVrForces = "entity-identifier"
296 #if DtHLA
298 #endif
299  , DtVrfTDLMessageInterface* vrfTDLMsgIf = 0
300  );
301 
305  virtual void reinitialize(
307  DtReflectedEntityList* reel = NULL,
308  DtReflectedAggregateList* ral = NULL
309 #if DtHLA
311 #endif
312  );
313 
316  DtRemoteEnvironmentController* createRemoteEnvironmentController();
317 
319 
320 //-----------------------------------------------------------x
321 
325 
327  virtual const DtList& backends() const;
328 
331  virtual const DtList& pendingBackends() const;
332 
334  virtual DtVrfBackendListener* backendListener() const;
335 
337  virtual void addBackendDiscoveryCallback(
338  DtBackendCallbackFcn fcn, void* usr);
339  virtual void removeBackendDiscoveryCallback(
340  DtBackendCallbackFcn fcn, void* usr);
341 
343  virtual void addBackendRemovalCallback(
344  DtBackendCallbackFcn fcn, void* usr);
345  virtual void removeBackendRemovalCallback(
346  DtBackendCallbackFcn fcn, void* usr);
347 
351  virtual int backendsControlState() const;
352 
354  virtual int numberBackendsLoaded() const;
355 
358  virtual bool allBackendsReady() const;
359 
361  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
362 
365  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
366  const DtSimulationAddress& addr = DtSimSendToAll);
367 
378  virtual void requestBackEndSetting(std::string name,
380  const DtSimulationAddress& addr = DtSimSendToAll);
381 
384  virtual double simTime(const DtSimulationAddress* a = NULL) const;
385 
387 
388 //-----------------------------------------------------------
389 
392 
395  virtual void setSpotReportsGloballyEnabled(bool enabled);
396 
399  virtual void setTDLMessagesGloballyEnabled(bool enabled);
400 
403  virtual void setEngagementReportsGloballyEnabled(bool enabled);
404 
407  virtual void setPeriodicSnapshotSettings(bool enabled, double period, int numberOfSnapshotsToKeep);
408 
411  virtual void setDRThresholds(double translation, double rotation);
412 
414  virtual void setCommModelSettings(bool useExternalComms);
415 
417  virtual void setRoadDrivingSettings(bool driveOnLeft);
418 
420  virtual void setRadarCoverageAltitudeMSL(bool);
421 
423  virtual void setRadarCoverageAltitudeSettings(const DtRadarCoverageAltitudeSettings& settings);
424 
427  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
428 
433  virtual void setPublishAggregateFormationRoutes(bool yesNo);
434 
436  virtual void setRotationThreshold(DtReal thresh);
437 
439  virtual void setTranslationThreshold(DtReal thresh);
440 
445  virtual void setAggDimensionThreshold(DtReal thresh);
446 
449  virtual void querySpatialSubdivisionConfiguration(
450  const DtSimulationAddress& backendAddress,
451  DtSpatialSubdivisionType spatialSubdivisionType,
452  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
453 
455  virtual void setSpatialSubdivsionConfiguration(
456  const DtSimulationAddress& backendAddress,
457  DtSpatialSubdivisionType spatialSubdivisionType,
458  const int spatialSubdivisionXResolution,
459  const int spatialSubdivisionYResolution,
460  const int spatialSubdivisionZResolution);
461 
467  virtual void processSpatialSubdivisionConfigurationCb(
468  const DtIfServerRequestResponse& rsp);
469 
471 
472  //------------------------------------------------------------
473 
478 
487  virtual bool newScenario(
488  const DtFilename& dbname,
489  const DtFilename& guidbname,
490  const DtFilename& opdname = DtFilename::nullFilename(),
491  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
492  const DtScenario* baseScenario = 0,
493  time_t startTimeOfDay = 12 * 3600,
494  DtString* errorString = 0,
495  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
496 
498  virtual bool newScenario(
499  const DtFilename& dbname,
500  const DtFilename& guidbname,
501  const std::vector<DtString>& simulationModelSetFiles,
502  const DtScenario* baseScenario = 0,
503  time_t startTimeOfDay = 12 * 3600,
504  DtString* errorString = 0,
505  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
506 
512  virtual bool newScenario(
513  const DtFilename& dbname,
514  const DtFilename& guidbname,
515  const DtFilename& opdname,
516  const DtFilename& physicalWorldName,
517  const std::vector<DtString>& simulationModelSetFiles,
518  const DtScenario* baseScenario = 0,
519  time_t startTimeOfDay = 12 * 3600,
520  DtString* errorString = 0,
521  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
522 
528  virtual void createSimulationObjectGroup(const DtSimulationAddress&, const DtString& simulationObjectGroup,
529  const DtVector& createPosition, double offsetRotation, int createFlags, DtForceType force,
530  bool storedInZipFile = false);
531 
532 
534 
538 
564  virtual bool loadScenario(const DtFilename& filename,
565  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
566  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
567  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
568  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone,
569  DtString* errorString = 0);
570  virtual bool loadScenario(const DtScenarioLoadInformation&,
571  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
572  DtString* errorString = 0);
573 
582  virtual bool loadScenario(const DtScenario& scenario,
583  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
584  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
585  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
586  DtString* errorString = 0);
587 
605  virtual bool sendLoadScenarioMessage(
606  const DtScenario& scenario,
607  const DtSimulationAddress& addr = DtSimSendToAll,
608  bool import = false,
609  bool isOrbatEnabled = false,
610  bool createGlobalEnv = false,
611  bool createGlobalDynamicTerrain = false) const;
612 
615  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
616 
619  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
620  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
621 
624  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
625  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
626 
627 
632  virtual bool rollbackToSnapshot(double simTime);
633 
636  virtual bool importScenario(const DtScenario&, const DtSimulationAddress& addr, DtString* errorString = 0);
637  virtual bool importScenario(const DtFilename&, const DtSimulationAddress& addr, DtString* errorString = 0);
638 
643  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
644  const std::map<std::string, std::string>& importData);
645 
649  virtual void setMaxWaitLoadTime(DtTime t);
650  virtual DtTime maxWaitLoadTime() const;
651 
653 
658 
661  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
662  const std::map<std::string, std::string>& importData);
663 
667  virtual DtString guiTerrainDatabaseFilename() const;
668  virtual void setGuiTerrainDatabaseFilename(DtString db);
669 
671  virtual const DtRwKeyValueList& scenarioData() const;
672  virtual void setScenarioData(const DtRwKeyValueList&);
673 
675  virtual bool isSavingScenario() const;
676 
693  virtual bool saveScenario(const DtFilename& saveName,
694  DtPreserveMappingsFcn fcn = 0, void* userData = 0, DtString* error = 0, bool saveToZip = false,
695  bool deleteExistingZip = true, double simTime = -1);
696 
703  virtual bool save(DtString& sError);
704 
709  virtual bool saveScenarioCheckpoint(const DtFilename& filename, double simTime, bool saveToZip = false, DtString* saveError = 0);
710 
713  virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
714 
717  virtual void takeBaseSnapshot();
718 
720  virtual void createGlobalDynamicTerrain(bool);
721 
723  virtual void createGlobalEnvironment(bool);
724 
728  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll, double simTime = -1,
729  const DtFilename& saveScenarioFilename = "") const;
730 
733  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
734  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
735 
739  virtual void addScenarioSavedCallback(
740  DtScenarioCallbackFcn fcn, void* usr);
741  virtual void removeScenarioSavedCallback(
742  DtScenarioCallbackFcn fcn, void* usr);
743 
745  virtual void addScenarioAboutToBeSavedCallback(
746  DtScenarioAboutToBeSavedCallbackFcn fcn, void* usr);
747  virtual void removeScenarioAboutToBeSavedCallback(
748  DtScenarioAboutToBeSavedCallbackFcn fcn, void* usr);
749 
751  virtual void addScenarioExportedCallback(
752  DtScenarioSavedCallbackFcn fcn, void* usr);
753  virtual void removeScenarioExportedCallback(
754  DtScenarioSavedCallbackFcn fcn, void* usr);
755 
757  virtual void addCheckpointSavedCallback(
758  DtCheckpointSavedCallbackFcn fcn, void* usr);
759  virtual void removeCheckpointSavedCallback(
760  DtCheckpointSavedCallbackFcn fcn, void* usr);
761 
765  virtual void addScenarioSavedCallback(
766  DtScenarioSavedCallbackFcn fcn, void* usr);
767  virtual void removeScenarioSavedCallback(
768  DtScenarioSavedCallbackFcn fcn, void* usr);
769 
777  virtual void setOpdSaveName(const DtFilename& f);
778  virtual const DtFilename& opdSaveName() const;
779 
783  virtual void setMaxWaitSaveTime(DtTime t);
784  virtual DtTime maxWaitSaveTime() const;
785 
789  virtual void setOverlayFilename(const DtFilename& overlay);
790  virtual const DtFilename& overlayFilename() const;
791 
795  virtual void setHostilityFilename(const DtFilename& hostilty);
796  virtual const DtFilename& hostilityFilename() const;
797 
798  virtual void setScenarioExtrasFilename(const DtFilename& extras);
799  virtual const DtFilename& scenarioExtrasFilename() const;
800 
804  virtual void setSelectionGroupsFilename(const DtFilename& sel);
805  virtual const DtFilename& selectionGroupsFilename() const;
806 
810  virtual void setSymbolMapFilename(const DtFilename& overlay);
811  virtual const DtFilename& symbolMapFilename() const;
812 
816  virtual void setCreateMenuFilename(const DtFilename& overlay);
817  virtual const DtFilename& createMenuFilename() const;
818 
820  virtual void saveParameterDb(const DtFilename& filename);
821 
829  virtual bool saveSimulationObjectGroup(const DtFilename& smsDirectory, const DtString& groupName,
830  const DtString& groupDescription, int creationFlags, const DtSimulationAddress& addr,
831  const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
832  DtString* saveError = 0, bool saveAsZip = false);
833 
835 
840 
846  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll,
847  const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
848 
850  virtual void reinitializeScenario();
851 
853 
858 
862  virtual DtTime scenarioSimTimeForSave();
863 
867  virtual void setTerrainDatabaseFilename(DtScenario* scen);
868 
872  virtual void setParameterDatabaseFilename(DtScenario* scen);
873 
877  virtual void setPhysicalWorldFilename(DtScenario* scen);
878 
882  virtual void setTimeMultiplier(DtScenario* scen);
883 
887  virtual void setAutoReorganize(DtScenario* scen);
888 
892  virtual void setRandomNumberSeed(DtScenario* scen);
893 
897  virtual void setFrameRateMode(DtScenario* scen);
898 
902  virtual void setFrameDeltaTime(DtScenario* scen);
903 
907  virtual void setExerciseStartTime(DtScenario* scen);
908 
912  virtual void setExerciseStartDateAndTime(DtScenario* scen);
913 
915 
920 
923  virtual void run(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
924  virtual void pause(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
925 
927  virtual void rewind();
928 
929  virtual void exit(const DtSimulationAddress& addr = DtSimSendToAll) const;
930  virtual void step() const;
931  virtual void setTimeMultiplier(double multiplier) const;
932 
933 
935 
936  //-------------------------------------------------------
937 
944 
948  virtual void loadedScenario(
949  const DtSimulationAddress& addr, unsigned int requestId, const DtU32& capabilities);
950 
957  virtual void initializeGlobalEnvironment(
958  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
959 
965  virtual void initializeGlobalDynamicTerrain(
966  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
967 
972  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
973 
977  virtual void processSaveMessages();
978 
982  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
983 
985  virtual void completeExport();
986 
990  virtual void savedScenario(const DtSimulationAddress& addr,
991  DtSaveResult result, unsigned int requestId, bool isCheckpointSave = false, double checkpointSimTime = -1);
992 
995  virtual void doPendingSaveWork();
996 
999  virtual void doPendingExportWork();
1000 
1003  virtual void doPendingLoadWork();
1004 
1006 
1007  //-------------------------------------------------------
1008 
1022 
1023 
1024  //Waypoints (Note-- no way to make a subsection in doxygen; so prevent this word from appearing)
1025 
1030  virtual void createWaypoint(
1031  const DtVector& geocentricPosition,
1032  const DtString& uniqueName = DtString::nullString(),
1033  const DtString& label = DtString::nullString(),
1034  const DtSimulationAddress& addr = DtSimSendToAll,
1035  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1036 
1040  virtual void createWaypoint(
1041  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1042  const DtVector& geocentricPosition,
1043  const DtString& uniqueName = DtString::nullString(),
1044  const DtString& label = DtString::nullString(),
1045  const DtSimulationAddress& addr = DtSimSendToAll,
1046  const DtUUID& startingUUID = DtUUID::nullUUID());
1047 
1049  virtual void modifyWaypoint(
1050  const DtUUID& uuid,
1051  DtString* uniqueName = 0,
1052  DtString* label = 0,
1053  DtVector* geocentricPosition = 0,
1054  const DtSimulationAddress& addr = DtSimSendToAll) const;
1055 
1056  //Routes
1057 
1062  virtual void createRoute(
1063  const DtList& vertices,
1064  const DtString& uniqueName = DtString::nullString(),
1065  const DtString& label = DtString::nullString(),
1066  const DtSimulationAddress& addr = DtSimSendToAll,
1067  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1068 
1072  virtual void createRoute(
1073  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1074  const DtList& vertices,
1075  const DtString& uniqueName = DtString::nullString(),
1076  const DtString& label = DtString::nullString(),
1077  const DtSimulationAddress& addr = DtSimSendToAll,
1078  const DtUUID& startingUUID = DtUUID::nullUUID());
1079 
1081  virtual void modifyRoute(
1082  const DtUUID& uuid,
1083  DtString* uniqueName = 0,
1084  DtString* label = 0,
1085  DtList* vertices = 0,
1086  const DtSimulationAddress& addr = DtSimSendToAll) const;
1087 
1088  //Phase Lines
1089 
1094  virtual void createPhaseLine(
1095  const DtVector& dbPoint1,
1096  const DtVector& dbPoint2,
1097  const DtString& uniqueName = DtString::nullString(),
1098  const DtString& label = DtString::nullString(),
1099  const DtSimulationAddress& addr = DtSimSendToAll,
1100  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1101 
1105  virtual void createPhaseLine(
1106  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1107  const DtVector& dbPoint1,
1108  const DtVector& dbPoint2,
1109  const DtString& uniqueName = DtString::nullString(),
1110  const DtString& label = DtString::nullString(),
1111  const DtSimulationAddress& addr = DtSimSendToAll,
1112  const DtUUID& startingUUID = DtUUID::nullUUID());
1113 
1115  virtual void modifyPhaseLine(
1116  const DtUUID& uuid,
1117  DtString* uniqueName = 0,
1118  DtString* label = 0,
1119  DtVector* newDbPoint1 = 0,
1120  DtVector* newDbPoint2 = 0,
1121  const DtSimulationAddress& addr = DtSimSendToAll) const;
1122 
1123  //Control Areas
1124 
1130  virtual void createControlArea(
1131  const DtList& vertices,
1132  const DtString& uniqueName = DtString::nullString(),
1133  const DtString& label = DtString::nullString(),
1134  const DtSimulationAddress& addr = DtSimSendToAll,
1135  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1136 
1140  virtual void createControlArea(
1141  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1142  const DtList& vertices,
1143  const DtString& uniqueName = DtString::nullString(),
1144  const DtString& label = DtString::nullString(),
1145  const DtSimulationAddress& addr = DtSimSendToAll,
1146  const DtUUID& startingUUID = DtUUID::nullUUID());
1147 
1149  virtual void modifyControlArea(
1150  const DtUUID& uuid,
1151  DtString* uniqueName = 0,
1152  DtString* label = 0,
1153  DtList* newVertices = 0,
1154  const DtSimulationAddress& addr = DtSimSendToAll) const;
1155 
1156  //Obstacles
1157 
1163  virtual void createObstacle(
1164  const DtList& vertices,
1165  const DtString& uniqueName = DtString::nullString(),
1166  const DtString& label = DtString::nullString(),
1167  const DtSimulationAddress& addr = DtSimSendToAll,
1168  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1169 
1173  virtual void createObstacle(
1174  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1175  const DtList& vertices,
1176  const DtString& uniqueName = DtString::nullString(),
1177  const DtString& label = DtString::nullString(),
1178  const DtSimulationAddress& addr = DtSimSendToAll,
1179  const DtUUID& startingUUID = DtUUID::nullUUID());
1180 
1182  virtual void modifyObstacle(
1183  const DtUUID& uuid,
1184  DtString* uniqueName = 0,
1185  DtString* label = 0,
1186  DtList* newVertices = 0,
1187  const DtSimulationAddress& addr = DtSimSendToAll) const;
1188 
1189  //Disaggregation Area
1190 
1197  virtual void createDisaggregationArea(
1198  const DtList& vertices,
1199  const DtString& uniqueName = DtString::nullString(),
1200  const DtString& label = DtString::nullString(),
1201  const DtSimulationAddress& addr = DtSimSendToAll,
1202  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1203 
1208  virtual void createDisaggregationArea(
1209  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1210  const DtList& vertices,
1211  const DtString& uniqueName = DtString::nullString(),
1212  const DtString& label = DtString::nullString(),
1213  const DtSimulationAddress& addr = DtSimSendToAll,
1214  const DtUUID& startingUUID = DtUUID::nullUUID());
1215 
1217  virtual void modifyDisaggregationArea(
1218  const DtUUID& uuid,
1219  DtString* uniqueName = 0,
1220  DtString* label = 0,
1221  DtList* newVertices = 0,
1222  const DtSimulationAddress& addr = DtSimSendToAll) const;
1223 
1224  //Overlay objects
1225 
1238  virtual void createOverlayObject(
1239  const DtEntityType& type,
1240  const DtList& vertices,
1241  const DtForceType& force,
1242  const DtString& name,
1243  const DtString& label,
1244  int color,
1245  const DtString& parentName,
1246  bool projection,
1247  bool closedFigure,
1248  const DtAppearance& appearance = DtAppearance::nullAppearance(),
1249  const DtUUID& attachTo = DtUUID::nullUUID(),
1250  char* userData = 0,
1251  int dataSize = 0,
1252  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1253  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1255  const DtSimulationAddress& addr = DtSimSendToAll,
1256  unsigned int rId = 0,
1257  std::list<DtAdminContent*>* initialAdminContent = 0,
1258  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1259  const DtUUID& uuidForCreation = DtUUID::nullUUID());
1260 
1264  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1265  DtVrfOverlayObjectModify* modifications);
1266 
1268  virtual void setPhysicalLineWidth(const DtSimulationAddress& addr,
1269  const DtUUID& entityId, double w);
1270 
1272  virtual void setPhysicalLineHeight(const DtSimulationAddress& addr,
1273  const DtUUID& entityId, double h);
1274 
1276  virtual void setCeiling(const DtSimulationAddress& addr,
1277  const DtUUID& entityId, double c);
1278 
1282  virtual void sendVrfOverlayObjectModifyMsg(
1283  const DtSimulationAddress& addr,
1284  const DtUUID& uuid,
1285  int color,
1286  const DtString& parentName,
1287  const DtUUID& attachTo,
1288  bool keepExistingAttachment = true,
1289  char* userData = 0,
1290  int len = 0) const;
1291 
1292  //Indirect artillery objects
1293 
1295  virtual void createIndirectArtillery(
1296  const DtVrfIndirectArtilleryObjectModify * params,
1297  const DtSimulationAddress& addr);
1298 
1302  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1303  DtVrfIndirectArtilleryObjectModify* modifications);
1304 
1305  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1306  const DtSimulationAddress& addr,
1307  const DtUUID& uuid,
1308  const DtVrfIndirectArtilleryObjectModify * mod) const;
1309 
1311 
1312  //-------------------------------------------------------
1313 
1317 
1320  virtual void createObject(
1321  const DtEntityType& type,
1322  DtForceType force,
1323  DtList* vertices,
1324  const DtString& name,
1325  const DtSimulationAddress& addr,
1326  const DtUUID& startingUUID = DtUUID::nullUUID());
1327 
1331  virtual void objectCreated(unsigned int requestId,
1332  const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
1333 
1335  virtual void deleteObject(const DtUUID& uuid,
1336  const DtSimulationAddress& addr = DtSimSendToAll) const;
1337 
1339  virtual void createEntity(
1340  const DtEntityType& type,
1341  const DtVector& geocentricPosition,
1342  DtForceType force,
1343  DtReal heading,
1344  const DtString& uniqueName = DtString::nullString(),
1345  const DtString& label = DtString::nullString(),
1346  const DtSimulationAddress& addr = DtSimSendToAll,
1347  bool groundClamp = true,
1348  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1349 
1353  virtual void createEntity(
1354  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1355  const DtEntityType& type,
1356  const DtVector& geocentricPosition,
1357  DtForceType force,
1358  DtReal heading,
1359  const DtString& uniqueName = DtString::nullString(),
1360  const DtString& label = DtString::nullString(),
1361  const DtSimulationAddress& addr = DtSimSendToAll,
1362  bool groundClamp = true,
1363  const DtUUID& startingUUID = DtUUID::nullUUID());
1364 
1365  virtual void createAggregate(
1366  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1367  const DtEntityType& type,
1368  const DtVector& geocentricPosition,
1369  DtForceType force,
1370  DtReal heading,
1371  const DtString& uniqueName,
1372  const DtString& label = DtString::nullString(),
1373  const DtSimulationAddress& addr = DtSimSendToAll,
1374  DtAggregateState initialAggregateState = DtDisaggregated,
1375  const DtUUID& startingUUID = DtUUID::nullUUID(),
1376  bool createSubordinates = false);
1377 
1379  virtual void createAggregate(
1380  const DtEntityType& type,
1381  const DtVector& geocentricPosition,
1382  DtForceType force,
1383  DtReal heading,
1384  DtList* entityNames = 0,
1385  const DtSimulationAddress& addr = DtSimSendToAll,
1386  DtAggregateState initialAggregateState = DtDisaggregated,
1387  unsigned int requestId = 0,
1388  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1389 
1393  virtual void createAggregate(
1394  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1395  const DtEntityType& type,
1396  const DtVector& geocentricPosition,
1397  DtForceType force,
1398  DtReal heading,
1399  DtList* entityNames = 0,
1400  const DtSimulationAddress& addr = DtSimSendToAll,
1401  DtAggregateState initialAggregateState = DtDisaggregated,
1402  const DtUUID& startingUUID = DtUUID::nullUUID());
1403 
1406  virtual void addToOrganization(
1407  const DtUUID& objectId,
1408  const DtUUID& newSuperiorId,
1409  const DtSimulationAddress& addr = DtSimSendToAll);
1410 
1414  virtual void addToForceLevelOrganization(
1415  const DtUUID& uuid,
1416  const DtSimulationAddress& addr = DtSimSendToAll);
1417 
1420  virtual void removeFromOrganization(
1421  const DtUUID& uuid,
1422  const DtSimulationAddress& addr = DtSimSendToAll);
1423 
1427  virtual void setLabel(
1428  const DtUUID& uuid, const DtString& label,
1429  const DtSimulationAddress& addr = DtSimSendToAll) const;
1430 
1435  virtual void setOverlayParent(
1436  const DtUUID& uuid, const DtString& label,
1437  const DtSimulationAddress& addr = DtSimSendToAll) const;
1438 
1442  virtual void setAltitude(
1443  const DtUUID& uuid, double altitude, bool aboveGroundLevel = false,
1444  const DtSimulationAddress& addr = DtSimSendToAll) const;
1445 
1449  virtual void setLocation(
1450  const DtUUID& uuid, DtVector coord,
1451  const DtSimulationAddress& addr = DtSimSendToAll) const;
1452 
1454  virtual void setAppearance(
1455  const DtUUID& uuid, int appearance,
1456  const DtSimulationAddress& addr = DtSimSendToAll) const;
1457 
1459  virtual void setCapabilities(
1460  const DtUUID& uuid, int capabilities,
1461  const DtSimulationAddress& addr = DtSimSendToAll) const;
1462 
1466  virtual void setHeading(
1467  const DtUUID& uuid, double degrees,
1468  const DtSimulationAddress& addr = DtSimSendToAll) const;
1469 
1473  virtual void setForce(
1474  const DtUUID& uuid, DtForceType force,
1475  const DtSimulationAddress& addr = DtSimSendToAll) const;
1476 
1482  virtual void requestSpotReports(const DtUUID& uuid, int onOff,
1483  const DtSimulationAddress& addr = DtSimSendToAll) const;
1484 
1488  virtual void requestSendTDLMessages(const DtUUID& uuid, int onOff,
1489  const DtSimulationAddress& addr = DtSimSendToAll) const;
1490 
1496  virtual void requestEngagementReports(const DtUUID& uuid, bool onOff,
1497  const DtSimulationAddress& addr = DtSimSendToAll) const;
1498 
1502  virtual void setResource(const DtUUID& uuid,
1503  const char* resourceType, double value,
1504  const DtSimulationAddress& addr = DtSimSendToAll) const;
1505 
1511  virtual void setRulesOfEngagement(
1512  const DtUUID& uuid, const char* rulesType,
1513  const DtSimulationAddress& addr = DtSimSendToAll) const;
1514 
1519  virtual void setSectorOfResponsibility(
1520  const DtUUID& uuid, double center, double size,
1521  const DtSimulationAddress& addr = DtSimSendToAll) const;
1522 
1526  virtual void setSpeed(
1527  const DtUUID& uuid, double speed,
1528  const DtSimulationAddress& addr = DtSimSendToAll) const;
1529 
1533  virtual void setCurrentSpeed(
1534  const DtUUID& uuid, double speed,
1535  const DtSimulationAddress& addr = DtSimSendToAll) const;
1536 
1540  virtual void setTarget(
1541  const DtUUID& uuid, const DtUUID& target,
1542  const DtSimulationAddress& addr = DtSimSendToAll) const;
1543 
1547  virtual void setSuperior(
1548  const DtUUID& uuid, const DtUUID& superior,
1549  const DtSimulationAddress& addr = DtSimSendToAll) const;
1550 
1552  virtual void setTaskedBySuperior(const DtUUID& uuid,
1553  const DtSimulationAddress& addr = DtSimSendToAll) const;
1554 
1558  virtual void setConcealed(const DtUUID& uuid,
1559  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
1560 
1562  virtual void setEmitter(const DtUUID& uuid,
1563  int emitterId, bool on,
1564  const DtSimulationAddress& addr = DtSimSendToAll) const;
1565 
1567  virtual void setIff(const DtUUID& uuid,
1568  bool mode1on, int mode1code,
1569  bool mode2on, int mode2code,
1570  bool mode3on, int mode3code,
1571  bool mode4on, int mode4code,
1572  DtIffAtcNavaidsAltParm4 altParm4,
1573  bool modeCon, bool useAltModeC,
1574  bool modeSon, bool emergency,
1575  bool flash, bool sti, bool modeSTcasI,
1576  int pin, bool mode5LevelSelection,
1577  unsigned int messageFormatsPresent, unsigned int nationalOrigin,
1578  unsigned int navigationSource, unsigned int figureOfMerit,
1579  const DtSimulationAddress& addr = DtSimSendToAll) const;
1580 
1582  virtual void restore(const DtUUID& uuid,
1583  const DtSimulationAddress& addr = DtSimSendToAll) const;
1584 
1588  virtual void setDestroyed(const DtUUID& uuid,
1589  const DtSimulationAddress& addr = DtSimSendToAll) const;
1590 
1594  virtual void setLifeformWeaponState(
1595  const DtUUID& uuid, DtWeaponState weapon,
1596  const DtSimulationAddress& addr) const;
1597 
1601  virtual void setLifeformPosture(
1602  const DtUUID& uuid, DtLifeformState posture,
1603  const DtSimulationAddress& addr) const;
1604 
1607  virtual void setAggregateFormation(
1608  const DtUUID& leader, const DtString& formationName,
1609  const DtSimulationAddress& addr = DtSimSendToAll) const;
1610 
1614  virtual void reorganizeAggregate(const DtUUID& leader,
1615  const DtSimulationAddress& addr = DtSimSendToAll) const;
1616 
1620  virtual void disaggregateEntity(const DtUUID& entity,
1621  const DtSimulationAddress& addr = DtSimSendToAll) const;
1622 
1626  virtual void aggregateEntity(const DtUUID& entity,
1627  const DtSimulationAddress& addr = DtSimSendToAll) const;
1628 
1631  virtual void sendSetDataMsg(
1632  const DtUUID& recipient, DtSetDataRequest* msg,
1633  const DtSimulationAddress& addr) const;
1634 
1636 
1637  //-----------------------------------------------------
1638 
1642 
1647  virtual void sendVrfObjectCreateMsg(
1648  const DtSimulationAddress& addr,
1649  unsigned int requestId,
1650  const DtString& name,
1651  const DtObjectType& type,
1652  const DtList& vertices,
1653  const DtString& label,
1654  const DtAppearance& appearance,
1655  DtForceType force,
1656  bool projection,
1657  bool closedFigure,
1658  DtReal heading,
1659  bool createSubObjects,
1660  bool clampToGroundFlag = true,
1661  const DtString& initialFormation = DtString::nullString(),
1662  DtAggregateState initialAggregateState = DtDisaggregated,
1663  const DtString& userData = DtString::nullString(),
1664  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1665  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1666  std::list<DtAdminContent*>* initialAdminContent = 0,
1667  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1668  const DtString& overlayParent = "",
1669  const DtUUID& uuidForCreation = DtUUID::nullUUID()) const;
1670 
1677  virtual void sendVrfObjectModifyMsg(
1678  const DtSimulationAddress& addr,
1679  const DtUUID& uuid,
1680  DtString* name = 0,
1681  DtList* vertices = 0,
1682  DtForceType* force = 0,
1683  DtReal* heading = 0,
1684  DtString* label = 0,
1685  DtAppearance* appearance = 0,
1686  DtString* overlayParent = 0,
1687  DtString* userData = 0) const;
1688 
1690 
1691  //------------------------------------------------------
1692 
1697 
1701  virtual void sendTaskMsg(
1702  const DtUUID& recipient, DtSimTask* task,
1703  const DtSimulationAddress& addr = DtSimSendToAll) const;
1704 
1707  virtual void moveAlongRoute(
1708  const DtUUID& entityName, const DtUUID& routeName,
1709  const DtSimulationAddress& addr = DtSimSendToAll) const;
1710 
1713  virtual void moveToWaypoint(
1714  const DtUUID& entityName, const DtUUID& waypoint,
1715  const DtSimulationAddress& addr = DtSimSendToAll) const;
1716 
1720  virtual void moveToLocation(
1721  const DtUUID& entityName, const DtVector& destinationLocation,
1722  const DtSimulationAddress& addr = DtSimSendToAll) const;
1723 
1726  virtual void patrolBetweenWaypoints(
1727  const DtUUID& uuid,
1728  const DtUUID& waypoint1, const DtUUID& waypoint2,
1729  const DtSimulationAddress& addr = DtSimSendToAll) const;
1730 
1733  virtual void patrolAlongRoute(
1734  const DtUUID& uuid, const DtUUID& route,
1735  const DtSimulationAddress& addr = DtSimSendToAll) const;
1736 
1742  virtual void followEntity(
1743  const DtUUID& uuid,
1744  const DtUUID& leader, const DtVector& offset,
1745  const DtSimulationAddress& addr = DtSimSendToAll) const;
1746 
1749  virtual void wait(
1750  const DtUUID& uuid,
1751  const DtSimulationAddress& addr = DtSimSendToAll) const;
1752 
1755  virtual void waitDuration(
1756  const DtUUID& uuid, DtTime duration,
1757  const DtSimulationAddress& addr = DtSimSendToAll) const;
1758 
1761  virtual void waitElapsed(
1762  const DtUUID& uuid, DtTime elapsed,
1763  const DtSimulationAddress& addr = DtSimSendToAll) const;
1764 
1766  virtual void skipTask(const DtUUID& uuid,
1767  const DtSimulationAddress& addr = DtSimSendToAll) const;
1768 
1770 
1771  //--------------------------------------------------------------
1772 
1776 
1779  virtual void restartPlan(const DtUUID& uuid,
1780  const DtSimulationAddress& addr = DtSimSendToAll) const;
1781 
1789  virtual void assignPlanByName(
1790  const DtUUID& uuid, const DtPlan& plan,
1791  const DtSimulationAddress& addr = DtSimSendToAll,
1792  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1793 
1795  virtual void assignMultiplePlanByName(
1796  const std::vector<DtUUID>& entities, const DtPlan& plan,
1797  const DtSimulationAddress& addr = DtSimSendToAll,
1798  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1799 
1804  virtual void requestPlan(
1805  const DtUUID& uuid,
1806  bool addStmtCallback = true,
1807  const DtSimulationAddress& addr = DtSimSendToAll) const;
1808 
1813  virtual void subscribePlan(const DtUUID& uuid,
1814  DtPlanCallbackFcn fn, void* usr,
1815  const DtSimulationAddress& addr = DtSimSendToAll);
1816 
1820  virtual void receivedPlan(const DtUUID& uuid, bool isGlobal,
1821  const std::vector<DtSimStatement*>& statements);
1822 
1828  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1829  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1830  const DtSimulationAddress& addr = DtSimSendToAll);
1831 
1832  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1833  const DtSimulationAddress& addr = DtSimSendToAll);
1834 
1838  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1839 
1842  virtual void unsubscribePlan(const DtUUID& uuid,
1843  DtPlanCallbackFcn fn, void* usr);
1844 
1847  virtual void unsubscribeAllPlans();
1848 
1853  virtual void addPlanStatementCallback(const DtUUID& uuid,
1854  DtPlanStatementCallbackFcn callback, void* usrData);
1855 
1858  virtual void removePlanStatementCallback(const DtUUID& uuid,
1859  DtPlanStatementCallbackFcn callback, void* usrData);
1860 
1863  virtual void removeAllPlanStatementCallbacks();
1864 
1870  virtual void receivedPlanStmt(const DtUUID& uuid, bool isGlobal,
1871  DtPlanStatus planStatus);
1872 
1877  virtual void addPlanCompleteCallback(const DtUUID& uuid,
1878  DtPlanCompleteCallbackFcn callback, void* usrData);
1879 
1882  virtual void removePlanCompleteCallback(const DtUUID& uuid,
1883  DtPlanCompleteCallbackFcn callback, void* usrData);
1884 
1887  virtual void removeAllPlanCompleteCallbacks();
1888 
1891  virtual void abandonPlan(const DtUUID& uuid,
1892  const DtSimulationAddress& addr = DtSimSendToAll) const;
1893 
1895 
1899 
1901  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1902 
1910  virtual void assignGlobalPlan(
1911  const DtString& name, const DtPlan& plan,
1912  const DtSimulationAddress& addr = DtSimSendToAll,
1913  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1914 
1916  virtual void deleteGlobalPlan(const DtUUID& name,
1917  const DtSimulationAddress& addr = DtSimSendToAll) const;
1918 
1920  virtual void launchGlobalPlan(const DtUUID&, const DtSimulationAddress& addr) const;
1921 
1923 
1924  //---------------------------------------------------------------
1925 
1928 
1933  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1934 
1940  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1941  const DtSimulationAddress& addr = DtSimSendToAll) const;
1942 
1948  virtual DtRadioMessageListener* radioMessageListener();
1949 
1951 
1952  //--------------------------------------------------------------
1953 
1958 
1965  virtual void embarkObject(const DtSimulationAddress& addr, const DtUUID& entity, const DtUUID& ontoEntity,
1966  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1967 
1968  virtual void disembarkObject(const DtSimulationAddress& addr, const DtUUID& entity);
1969  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtUUID& entity);
1970 
1973  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1974  const DtUUID& entityName);
1975 
1977  virtual void requestTasksAndSetsFor(const std::vector<DtUUID>& names);
1978 
1981  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1982  const DtUUID& entityName);
1983 
1985  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>& names);
1986 
1988  virtual void requestIndirectArtilleryInformation(const DtUUID&);
1989 
1994  virtual void requestResourceNames(const std::vector<DtUUID>& list,
1995  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1996 
2004  virtual void requestResources(const DtUUID& uuid = DtUUID::nullUUID(),
2005  const std::list<DtString>* list = 0,
2006  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
2007 
2011  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
2012 
2013 
2015 
2016  //---------------------------------------------------------------
2017 
2021 
2024  virtual void addObjectConsoleMessageCallback(
2025  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
2026  virtual void removeObjectConsoleMessageCallback(
2027  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
2028 
2031  virtual void setObjectNotifyLevel(const DtUUID& objectName,
2032  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
2033 
2037  virtual void logObjectConsoleToFile(const DtUUID& objectName,
2038  const DtFilename filename);
2039 
2042  virtual void stopLoggingObjectConsoleToFile(const DtUUID& objectName);
2043 
2046  virtual void addBackendConsoleMessageCallback(
2047  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
2048  virtual void removeBackendConsoleMessageCallback(
2049  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
2050 
2053  virtual void processCommentInteraction(DtCommentInteraction* inter);
2054 
2056 
2057 //-----------------------------------------------------------
2061 
2064  virtual void requestJoystickInformation(const DtUUID&, DtJoystickControlResponseFcn, void*,
2065  const DtSimulationAddress& addr = DtSimSendToAll);
2066 
2069  virtual void takeControlOf(const DtUUID&, const std::set<DtString>& functionGroups,
2070  const DtSimulationAddress& addr = DtSimSendToAll);
2071 
2074  virtual void releaseControlOf(const DtUUID&, const std::set<DtString>& functionGroups =
2075  std::set<DtString>(), const DtSimulationAddress& addr = DtSimSendToAll);
2076 
2079  virtual void sendJoystickControl(const DtUUID&, const DtString& functionGroup,
2080  const DtString& function, double value, bool repeat = false, const DtSimulationAddress& addr = DtSimSendToAll);
2081 
2083 
2084  //-----------------------------------------------------------
2085 
2090  virtual DtDefaultVrfObjectMessageFactory* vrfObjectMsgFactory();
2091  virtual DtDefaultCondExprFactory* condExprFactory();
2092  virtual DtDefaultStatementFactory* stmtFactory();
2093  virtual DtDefaultSimReportFactory* reportFactory();
2094  virtual DtDefaultSimTaskFactory* taskFactory();
2095  virtual DtDefaultSetDataRequestFactory* setDataFactory();
2096  virtual DtDefaultSimCommandFactory* simCommandFactory();
2097  virtual DtDefaultAdminContentFactory* adminContentFactory();
2099 
2100 public:
2101 
2104 
2107  static void doPendingSaveWorkCb(void* usr);
2108 
2111  static void doPendingExportWorkCb(void* usr);
2112 
2115  static void doPendingLoadWorkCb(void* usr);
2116 
2119  static void savedScenarioCb(DtSimMessage* msg, void* usr);
2120 
2123  static void exportScenarioCb(DtSimMessage* msg, void* usr);
2124 
2127  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
2128 
2131  static void receiveFileCb(const DtFilename& filename, void* usr);
2132 
2134  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
2135 
2137  static void objectCreatedCb(DtSimMessage* msg, void* usr);
2138 
2140  static void receivedPlanCb(DtSimMessage* msg, void* usr);
2141 
2143  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
2144 
2147  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2148  const DtUUID& uuid, void* usr);
2149 
2152  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2153  const DtUUID& uuid, void* usr);
2154 
2156  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
2157 
2160  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
2161 
2164  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
2165 
2167 
2168 
2169 protected:
2170 
2172  static void joystickControlResponse(DtSimMessage* msg, void* usr);
2173  virtual void processJoystickControlResponse(DtSimMessage* msg);
2174 
2178  virtual void onInit();
2179  virtual void resetStateData();
2180  virtual void emptyLists();
2181 
2183  virtual void sendAggregateAsMsg(
2184  const DtSimulationAddress& addr,
2185  unsigned int requestId,
2186  const DtObjectType& objectType,
2187  DtForceType force,
2188  const DtVector& position,
2189  DtReal heading,
2190  DtList* entityNames,
2191  DtAggregateState initialAggregateState,
2192  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
2193 
2195  virtual DtVrfConfigurationFileComposer* createComposer();
2196 
2198  virtual DtUUIDNetworkManager* createUUIDNetworkManager() const;
2199 
2202  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
2203  const DtSimulationAddress& backendAddress,
2204  DtSpatialSubdivisionType spatialSubdivisionType ,
2205  DtServerRequestResponseCallbackFcn fcn, void* usr);
2206 
2213  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
2214 
2222  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
2223  const DtSimulationAddress& addr = DtSimSendToAll,
2224  int *retiStatus = 0, DtString* retsStmt = 0) const;
2225 
2228  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
2229  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
2232  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
2233 
2236  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
2237  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
2238 
2240  static void backendStatusUpdate(const DtSimulationAddress&, void*);
2241  virtual void processBackendStatusUpdate(const DtSimulationAddress&);
2242 
2243 protected:
2244  DtExerciseConn* myExConn;
2257  DtList myBeList;
2258 
2267 
2268  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
2270  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
2272  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
2274 
2275  DtHashlist myObjectCbs;
2276 
2277  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
2280 
2281  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2284 
2287  DtFilename mySaveName;
2289  DtFilename myOverlayFilename;
2293  DtFilename myOpdName;
2307 
2310 
2313 
2316 
2326 
2331 
2334 
2337  DtFilename myTempDirectory;
2338 
2342  DtInetAddr myInetAddr;
2343 
2348  mutable unsigned int myRequestIdCounter;
2349 
2352 
2355 
2358 
2361 
2364 
2366  DtFilename myExportFile;
2367 
2370 
2374 
2377 
2381 
2383  typedef std::map<DtString, std::pair<DtJoystickControlResponseFcn, void*> > JoystickResponseCallbackInfo;
2385 
2388 
2392  std::set<DtSimulationAddress> myBackendsWithObjects;
2393 
2395  std::set<DtSimulationAddress> myBackendsLoaded;
2396  std::vector<DtString> myLoadingSimulationModelSets;
2398 };
2399 
2408 {
2409 public:
2410  DtVrfOverlayObjectModify(int color, const DtUUID& attachTo,
2411  char* userData,
2412  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
2413  DtVrfRemoteController* control);
2414 
2415  virtual ~DtVrfOverlayObjectModify();
2416 
2417  virtual int color() const;
2418  virtual const DtUUID& attachTo() const;
2419  virtual void userData(char** data, int* userDataSize);
2420  virtual DtVrfRemoteController* remoteController();
2421  virtual DtOverlayCreatedCallbackFcn userCallback();
2422 
2423 protected:
2424  int myColor;
2427  char* myUserData;
2430 };
2431 
2435 {
2436 public:
2439 
2441  virtual DtVrfRemoteController* remoteController() const;
2442  virtual void setRemoteController(DtVrfRemoteController*);
2443 
2445  virtual const DtIfIndirectArtilleryData & data() const;
2446  virtual DtIfIndirectArtilleryData & data();
2447  virtual void setData(const DtIfIndirectArtilleryData & data);
2448 
2449 protected:
2452 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)