VR-Forces 4.6.1 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;
70 
71 namespace makVrfVrlinkExtToolkit
72 {
73  class DtReflectedExtendedAttributesObjectList;
74 }
75 
76 typedef void (*DtScenarioCallbackFcn)(void* usr);
77 typedef void (*DtScenarioAboutToBeSavedCallbackFcn)(DtScenario&, void* usr);
79 
81 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, void* usr);
84 typedef bool (*DtPreserveMappingsFcn)(void* usr);
85 
87 
88 typedef void (*DtBackendSaveCallbackFcn)
89  (const DtSimulationAddress& addr, DtSaveResult result, void * usr);
90 
91 typedef void (*DtScenarioSavedCallbackFcn)
92  (DtSaveResult result, const DtString& sError, void* usr);
93 
94 typedef void (*DtCheckpointSavedCallbackFcn)
95  (DtSaveResult result, double, void* usr);
96 
97 typedef void (*DtVrfObjectCreatedCallbackFcn)
98  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
99 
100 typedef void (*DtOverlayCreatedCallbackFcn)
101  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, DtVrfOverlayObjectModify* usr);
102 
104  (const DtString& name, const DtEntityIdentifier& id,
105  const DtUUID& uuid, void* usr);
106 
107 typedef void (*DtObjectConsoleMessageCallbackFcn)
108  (const DtEntityIdentifier& id, int notifyLevel, const DtString& message,
109  void* usr);
110 
112  (const DtSimulationAddress& id, int notifyLevel, const DtString& message,
113  void* usr);
114 
119  (const DtIfServerRequestResponse& response, void* usr);
120 
123 {
124 public:
125  PlanCbInfo(const DtUUID& n, bool global, DtPlanCallbackFcn f, void* usr) :
126  planName(n), isGlobal(global), fcn(f), data(usr) {}
128  bool operator==(const PlanCbInfo& orig) const
129  {
130  return (planName == orig.planName && fcn == orig.fcn && data == orig.data
131  && isGlobal == orig.isGlobal);
132  }
133 
135  bool isGlobal;
137  void* data;
138 };
139 
142 {
143 public:
144  StmtCbInfo(const DtUUID& n, bool global,
145  DtPlanStatementCallbackFcn f, void* usr) :
146  planName(n), isGlobal(global) , fcn(f), data(usr) {}
148  bool operator==(const StmtCbInfo& orig) const
149  {
150  return (planName == orig.planName && fcn == orig.fcn && data == orig.data &&
151  isGlobal == orig.isGlobal);
152  }
153 
156  bool isGlobal;
157  void* data;
158 };
159 
162 {
163 public:
164  PlanCompleteCbInfo(const DtUUID& n, bool global,
165  DtPlanCompleteCallbackFcn f, void* usr) :
166  planName(n), isGlobal(global), fcn(f), data(usr) {}
168  bool operator==(const PlanCompleteCbInfo& orig) const
169  {
170  return (planName == orig.planName && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal);
171  }
172 
175  bool isGlobal;
176  void* data;
177 };
178 
179 
200 {
201 public:
203  AttachNone=0,
205  AttachEven
206  };
207 
208 public:
209 
213 
219  DtVrfRemoteController(int receivePort = 9000);
220 
222  virtual ~DtVrfRemoteController();
223 
225  virtual DtVrfMessageInterface* vrfMessageInterface() const;
226 
228  virtual DtVrfTDLMessageInterface* vrfTDLMessageInterface() const;
229 
231  virtual DtUUIDNetworkManager* uuidNetworkManager() const;
232 
234  DtRemoteEnvironmentController* remoteEnvironmentController();
235 
237  virtual DtVrfConfigurationFileComposer* composer();
238 
240  virtual void setHostInetAddr(DtInetAddr);
241  virtual DtInetAddr hostInetAddr() const;
242 
244  virtual const DtSimulationAddress& simulationAddress() const;
245 
247  virtual int sessionId() const;
248 
252  virtual unsigned int generateRequestId() const;
253 
255 
256  //---------------------------------------------------------------
257 
261 
281  virtual void init(DtExerciseConn* exConn,
283  DtReflectedEntityList* reel = NULL,
284  DtReflectedAggregateList* ral = NULL,
285  const DtString& uuidMarkingForNonVrForces = "entity-identifier"
286 #if DtHLA
288 #endif
289  );
290  virtual void init(DtVrfMessageInterface* msgIf,
292  DtReflectedEntityList* reel = NULL,
293  DtReflectedAggregateList* ral = NULL,
294  const DtString& uuidMarkingForNonVrForces = "entity-identifier"
295 #if DtHLA
297 #endif
298  , DtVrfTDLMessageInterface* vrfTDLMsgIf = 0
299  );
300 
304  virtual void reinitialize(
306  DtReflectedEntityList* reel = NULL,
307  DtReflectedAggregateList* ral = NULL
308 #if DtHLA
310 #endif
311  );
312 
315  DtRemoteEnvironmentController* createRemoteEnvironmentController();
316 
318 
319 //-----------------------------------------------------------x
320 
324 
326  virtual const DtList& backends() const;
327 
330  virtual const DtList& pendingBackends() const;
331 
333  virtual DtVrfBackendListener* backendListener() const;
334 
336  virtual void addBackendDiscoveryCallback(
337  DtBackendCallbackFcn fcn, void* usr);
338  virtual void removeBackendDiscoveryCallback(
339  DtBackendCallbackFcn fcn, void* usr);
340 
342  virtual void addBackendRemovalCallback(
343  DtBackendCallbackFcn fcn, void* usr);
344  virtual void removeBackendRemovalCallback(
345  DtBackendCallbackFcn fcn, void* usr);
346 
350  virtual int backendsControlState() const;
351 
353  virtual int numberBackendsLoaded() const;
354 
357  virtual bool allBackendsReady() const;
358 
360  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
361 
364  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
365  const DtSimulationAddress& addr = DtSimSendToAll);
366 
377  virtual void requestBackEndSetting(std::string name,
379  const DtSimulationAddress& addr = DtSimSendToAll);
380 
383  virtual double simTime(const DtSimulationAddress* a = NULL) const;
384 
386 
387 //-----------------------------------------------------------
388 
391 
394  virtual void setSpotReportsGloballyEnabled(bool enabled);
395 
398  virtual void setTDLMessagesGloballyEnabled(bool enabled);
399 
402  virtual void setEngagementReportsGloballyEnabled(bool enabled);
403 
406  virtual void setPeriodicSnapshotSettings(bool enabled, double period, int numberOfSnapshotsToKeep);
407 
410  virtual void setDRThresholds(double translation, double rotation);
411 
413  virtual void setCommModelSettings(bool useExternalComms);
414 
416  virtual void setRoadDrivingSettings(bool driveOnLeft);
417 
420  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
421 
426  virtual void setPublishAggregateFormationRoutes(bool yesNo);
427 
429  virtual void setRotationThreshold(DtReal thresh);
430 
432  virtual void setTranslationThreshold(DtReal thresh);
433 
438  virtual void setAggDimensionThreshold(DtReal thresh);
439 
442  virtual void querySpatialSubdivisionConfiguration(
443  const DtSimulationAddress& backendAddress,
444  DtSpatialSubdivisionType spatialSubdivisionType,
445  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
446 
448  virtual void setSpatialSubdivsionConfiguration(
449  const DtSimulationAddress& backendAddress,
450  DtSpatialSubdivisionType spatialSubdivisionType,
451  const int spatialSubdivisionXResolution,
452  const int spatialSubdivisionYResolution,
453  const int spatialSubdivisionZResolution);
454 
460  virtual void processSpatialSubdivisionConfigurationCb(
461  const DtIfServerRequestResponse& rsp);
462 
464 
465  //------------------------------------------------------------
466 
471 
480  virtual bool newScenario(
481  const DtFilename& dbname,
482  const DtFilename& guidbname,
483  const DtFilename& opdname = DtFilename::nullFilename(),
484  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
485  const DtScenario* baseScenario = 0,
486  time_t startTimeOfDay = 12 * 3600,
487  DtString* errorString = 0,
488  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
489 
491  virtual bool newScenario(
492  const DtFilename& dbname,
493  const DtFilename& guidbname,
494  const std::vector<DtString>& simulationModelSetFiles,
495  const DtScenario* baseScenario = 0,
496  time_t startTimeOfDay = 12 * 3600,
497  DtString* errorString = 0,
498  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
499 
505  virtual bool newScenario(
506  const DtFilename& dbname,
507  const DtFilename& guidbname,
508  const DtFilename& opdname,
509  const DtFilename& physicalWorldName,
510  const std::vector<DtString>& simulationModelSetFiles,
511  const DtScenario* baseScenario = 0,
512  time_t startTimeOfDay = 12 * 3600,
513  DtString* errorString = 0,
514  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
515 
521  virtual void createSimulationObjectGroup(const DtSimulationAddress&, const DtString& simulationObjectGroup,
522  const DtVector& createPosition, double offsetRotation, int createFlags, DtForceType force,
523  bool storedInZipFile = false);
524 
525 
527 
531 
557  virtual bool loadScenario(const DtFilename& filename,
558  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
559  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
560  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
561  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone,
562  DtString* errorString = 0);
563  virtual bool loadScenario(const DtScenarioLoadInformation&,
564  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
565  DtString* errorString = 0);
566 
575  virtual bool loadScenario(const DtScenario& scenario,
576  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
577  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
578  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
579  DtString* errorString = 0);
580 
598  virtual bool sendLoadScenarioMessage(
599  const DtScenario& scenario,
600  const DtSimulationAddress& addr = DtSimSendToAll,
601  bool import = false,
602  bool isOrbatEnabled = false,
603  bool createGlobalEnv = false,
604  bool createGlobalDynamicTerrain = false) const;
605 
608  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
609 
612  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
613  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
614 
617  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
618  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
619 
620 
625  virtual bool rollbackToSnapshot(double simTime);
626 
629  virtual bool importScenario(const DtScenario&, const DtSimulationAddress& addr, DtString* errorString = 0);
630  virtual bool importScenario(const DtFilename&, const DtSimulationAddress& addr, DtString* errorString = 0);
631 
636  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
637  const std::map<std::string, std::string>& importData);
638 
642  virtual void setMaxWaitLoadTime(DtTime t);
643  virtual DtTime maxWaitLoadTime() const;
644 
646 
651 
654  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
655  const std::map<std::string, std::string>& importData);
656 
660  virtual DtString guiTerrainDatabaseFilename() const;
661  virtual void setGuiTerrainDatabaseFilename(DtString db);
662 
664  virtual const DtRwKeyValueList& scenarioData() const;
665  virtual void setScenarioData(const DtRwKeyValueList&);
666 
668  virtual bool isSavingScenario() const;
669 
686  virtual bool saveScenario(const DtFilename& saveName,
687  DtPreserveMappingsFcn fcn = 0, void* userData = 0, DtString* error = 0, bool saveToZip = false,
688  bool deleteExistingZip = true, double simTime = -1);
689 
696  virtual bool save(DtString& sError);
697 
702  virtual bool saveScenarioCheckpoint(const DtFilename& filename, double simTime, bool saveToZip = false, DtString* saveError = 0);
703 
706  virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
707 
710  virtual void takeBaseSnapshot();
711 
713  virtual void createGlobalDynamicTerrain(bool);
714 
716  virtual void createGlobalEnvironment(bool);
717 
721  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll, double simTime = -1,
722  const DtFilename& saveScenarioFilename = "") const;
723 
726  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
727  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
728 
732  virtual void addScenarioSavedCallback(
733  DtScenarioCallbackFcn fcn, void* usr);
734  virtual void removeScenarioSavedCallback(
735  DtScenarioCallbackFcn fcn, void* usr);
736 
738  virtual void addScenarioAboutToBeSavedCallback(
739  DtScenarioAboutToBeSavedCallbackFcn fcn, void* usr);
740  virtual void removeScenarioAboutToBeSavedCallback(
741  DtScenarioAboutToBeSavedCallbackFcn fcn, void* usr);
742 
744  virtual void addScenarioExportedCallback(
745  DtScenarioSavedCallbackFcn fcn, void* usr);
746  virtual void removeScenarioExportedCallback(
747  DtScenarioSavedCallbackFcn fcn, void* usr);
748 
750  virtual void addCheckpointSavedCallback(
751  DtCheckpointSavedCallbackFcn fcn, void* usr);
752  virtual void removeCheckpointSavedCallback(
753  DtCheckpointSavedCallbackFcn fcn, void* usr);
754 
758  virtual void addScenarioSavedCallback(
759  DtScenarioSavedCallbackFcn fcn, void* usr);
760  virtual void removeScenarioSavedCallback(
761  DtScenarioSavedCallbackFcn fcn, void* usr);
762 
770  virtual void setOpdSaveName(const DtFilename& f);
771  virtual const DtFilename& opdSaveName() const;
772 
776  virtual void setMaxWaitSaveTime(DtTime t);
777  virtual DtTime maxWaitSaveTime() const;
778 
782  virtual void setOverlayFilename(const DtFilename& overlay);
783  virtual const DtFilename& overlayFilename() const;
784 
788  virtual void setHostilityFilename(const DtFilename& hostilty);
789  virtual const DtFilename& hostilityFilename() const;
790 
791  virtual void setScenarioExtrasFilename(const DtFilename& extras);
792  virtual const DtFilename& scenarioExtrasFilename() const;
793 
797  virtual void setSelectionGroupsFilename(const DtFilename& sel);
798  virtual const DtFilename& selectionGroupsFilename() const;
799 
803  virtual void setSymbolMapFilename(const DtFilename& overlay);
804  virtual const DtFilename& symbolMapFilename() const;
805 
809  virtual void setCreateMenuFilename(const DtFilename& overlay);
810  virtual const DtFilename& createMenuFilename() const;
811 
813  virtual void saveParameterDb(const DtFilename& filename);
814 
822  virtual bool saveSimulationObjectGroup(const DtFilename& smsDirectory, const DtString& groupName,
823  const DtString& groupDescription, int creationFlags, const DtSimulationAddress& addr,
824  const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
825  DtString* saveError = 0, bool saveAsZip = false);
826 
828 
833 
839  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll,
840  const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
841 
843 
848 
852  virtual DtTime scenarioSimTimeForSave();
853 
857  virtual void setTerrainDatabaseFilename(DtScenario* scen);
858 
862  virtual void setParameterDatabaseFilename(DtScenario* scen);
863 
867  virtual void setPhysicalWorldFilename(DtScenario* scen);
868 
872  virtual void setTimeMultiplier(DtScenario* scen);
873 
877  virtual void setAutoReorganize(DtScenario* scen);
878 
882  virtual void setRandomNumberSeed(DtScenario* scen);
883 
887  virtual void setFrameRateMode(DtScenario* scen);
888 
892  virtual void setFrameDeltaTime(DtScenario* scen);
893 
897  virtual void setExerciseStartTime(DtScenario* scen);
898 
902  virtual void setExerciseStartDateAndTime(DtScenario* scen);
903 
905 
910 
913  virtual void run(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
914  virtual void pause(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
915 
917  virtual void rewind();
918 
919  virtual void exit() const;
920  virtual void step() const;
921  virtual void setTimeMultiplier(double multiplier) const;
922 
923 
925 
926  //-------------------------------------------------------
927 
934 
938  virtual void loadedScenario(
939  const DtSimulationAddress& addr, unsigned int requestId, const DtU32& capabilities);
940 
947  virtual void initializeGlobalEnvironment(
948  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
949 
955  virtual void initializeGlobalDynamicTerrain(
956  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
957 
962  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
963 
967  virtual void processSaveMessages();
968 
972  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
973 
975  virtual void completeExport();
976 
980  virtual void savedScenario(const DtSimulationAddress& addr,
981  DtSaveResult result, unsigned int requestId, bool isCheckpointSave = false, double checkpointSimTime = -1);
982 
985  virtual void doPendingSaveWork();
986 
989  virtual void doPendingExportWork();
990 
993  virtual void doPendingLoadWork();
994 
996 
997  //-------------------------------------------------------
998 
1012 
1013 
1014  //Waypoints (Note-- no way to make a subsection in doxygen; so prevent this word from appearing)
1015 
1020  virtual void createWaypoint(
1021  const DtVector& geocentricPosition,
1022  const DtString& uniqueName = DtString::nullString(),
1023  const DtString& label = DtString::nullString(),
1024  const DtSimulationAddress& addr = DtSimSendToAll,
1025  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1026 
1030  virtual void createWaypoint(
1031  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1032  const DtVector& geocentricPosition,
1033  const DtString& uniqueName = DtString::nullString(),
1034  const DtString& label = DtString::nullString(),
1035  const DtSimulationAddress& addr = DtSimSendToAll,
1036  const DtUUID& startingUUID = DtUUID::nullUUID());
1037 
1039  virtual void modifyWaypoint(
1040  const DtUUID& uuid,
1041  DtString* uniqueName = 0,
1042  DtString* label = 0,
1043  DtVector* geocentricPosition = 0,
1044  const DtSimulationAddress& addr = DtSimSendToAll) const;
1045 
1046  //Routes
1047 
1052  virtual void createRoute(
1053  const DtList& vertices,
1054  const DtString& uniqueName = DtString::nullString(),
1055  const DtString& label = DtString::nullString(),
1056  const DtSimulationAddress& addr = DtSimSendToAll,
1057  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1058 
1062  virtual void createRoute(
1063  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1064  const DtList& vertices,
1065  const DtString& uniqueName = DtString::nullString(),
1066  const DtString& label = DtString::nullString(),
1067  const DtSimulationAddress& addr = DtSimSendToAll,
1068  const DtUUID& startingUUID = DtUUID::nullUUID());
1069 
1071  virtual void modifyRoute(
1072  const DtUUID& uuid,
1073  DtString* uniqueName = 0,
1074  DtString* label = 0,
1075  DtList* vertices = 0,
1076  const DtSimulationAddress& addr = DtSimSendToAll) const;
1077 
1078  //Phase Lines
1079 
1084  virtual void createPhaseLine(
1085  const DtVector& dbPoint1,
1086  const DtVector& dbPoint2,
1087  const DtString& uniqueName = DtString::nullString(),
1088  const DtString& label = DtString::nullString(),
1089  const DtSimulationAddress& addr = DtSimSendToAll,
1090  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1091 
1095  virtual void createPhaseLine(
1096  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1097  const DtVector& dbPoint1,
1098  const DtVector& dbPoint2,
1099  const DtString& uniqueName = DtString::nullString(),
1100  const DtString& label = DtString::nullString(),
1101  const DtSimulationAddress& addr = DtSimSendToAll,
1102  const DtUUID& startingUUID = DtUUID::nullUUID());
1103 
1105  virtual void modifyPhaseLine(
1106  const DtUUID& uuid,
1107  DtString* uniqueName = 0,
1108  DtString* label = 0,
1109  DtVector* newDbPoint1 = 0,
1110  DtVector* newDbPoint2 = 0,
1111  const DtSimulationAddress& addr = DtSimSendToAll) const;
1112 
1113  //Control Areas
1114 
1120  virtual void createControlArea(
1121  const DtList& vertices,
1122  const DtString& uniqueName = DtString::nullString(),
1123  const DtString& label = DtString::nullString(),
1124  const DtSimulationAddress& addr = DtSimSendToAll,
1125  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1126 
1130  virtual void createControlArea(
1131  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1132  const DtList& vertices,
1133  const DtString& uniqueName = DtString::nullString(),
1134  const DtString& label = DtString::nullString(),
1135  const DtSimulationAddress& addr = DtSimSendToAll,
1136  const DtUUID& startingUUID = DtUUID::nullUUID());
1137 
1139  virtual void modifyControlArea(
1140  const DtUUID& uuid,
1141  DtString* uniqueName = 0,
1142  DtString* label = 0,
1143  DtList* newVertices = 0,
1144  const DtSimulationAddress& addr = DtSimSendToAll) const;
1145 
1146  //Obstacles
1147 
1153  virtual void createObstacle(
1154  const DtList& vertices,
1155  const DtString& uniqueName = DtString::nullString(),
1156  const DtString& label = DtString::nullString(),
1157  const DtSimulationAddress& addr = DtSimSendToAll,
1158  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1159 
1163  virtual void createObstacle(
1164  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1165  const DtList& vertices,
1166  const DtString& uniqueName = DtString::nullString(),
1167  const DtString& label = DtString::nullString(),
1168  const DtSimulationAddress& addr = DtSimSendToAll,
1169  const DtUUID& startingUUID = DtUUID::nullUUID());
1170 
1172  virtual void modifyObstacle(
1173  const DtUUID& uuid,
1174  DtString* uniqueName = 0,
1175  DtString* label = 0,
1176  DtList* newVertices = 0,
1177  const DtSimulationAddress& addr = DtSimSendToAll) const;
1178 
1179  //Disaggregation Area
1180 
1187  virtual void createDisaggregationArea(
1188  const DtList& vertices,
1189  const DtString& uniqueName = DtString::nullString(),
1190  const DtString& label = DtString::nullString(),
1191  const DtSimulationAddress& addr = DtSimSendToAll,
1192  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1193 
1198  virtual void createDisaggregationArea(
1199  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1200  const DtList& vertices,
1201  const DtString& uniqueName = DtString::nullString(),
1202  const DtString& label = DtString::nullString(),
1203  const DtSimulationAddress& addr = DtSimSendToAll,
1204  const DtUUID& startingUUID = DtUUID::nullUUID());
1205 
1207  virtual void modifyDisaggregationArea(
1208  const DtUUID& uuid,
1209  DtString* uniqueName = 0,
1210  DtString* label = 0,
1211  DtList* newVertices = 0,
1212  const DtSimulationAddress& addr = DtSimSendToAll) const;
1213 
1214  //Overlay objects
1215 
1228  virtual void createOverlayObject(
1229  const DtEntityType& type,
1230  const DtList& vertices,
1231  const DtForceType& force,
1232  const DtString& name,
1233  const DtString& label,
1234  int color,
1235  const DtString& parentName,
1236  bool projection,
1237  bool closedFigure,
1238  const DtAppearance& appearance = DtAppearance::nullAppearance(),
1239  const DtUUID& attachTo = DtUUID::nullUUID(),
1240  char* userData = 0,
1241  int dataSize = 0,
1242  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1243  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1245  const DtSimulationAddress& addr = DtSimSendToAll,
1246  unsigned int rId = 0,
1247  std::list<DtAdminContent*>* initialAdminContent = 0,
1248  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1249  const DtUUID& uuidForCreation = DtUUID::nullUUID());
1250 
1254  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1255  DtVrfOverlayObjectModify* modifications);
1256 
1258  virtual void setPhysicalLineWidth(const DtSimulationAddress& addr,
1259  const DtUUID& entityId, double w);
1260 
1262  virtual void setPhysicalLineHeight(const DtSimulationAddress& addr,
1263  const DtUUID& entityId, double h);
1264 
1266  virtual void setCeiling(const DtSimulationAddress& addr,
1267  const DtUUID& entityId, double c);
1268 
1272  virtual void sendVrfOverlayObjectModifyMsg(
1273  const DtSimulationAddress& addr,
1274  const DtUUID& uuid,
1275  int color,
1276  const DtString& parentName,
1277  const DtUUID& attachTo,
1278  bool keepExistingAttachment = true,
1279  char* userData = 0,
1280  int len = 0) const;
1281 
1282  //Indirect artillery objects
1283 
1285  virtual void createIndirectArtillery(
1286  const DtVrfIndirectArtilleryObjectModify * params,
1287  const DtSimulationAddress& addr);
1288 
1292  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1293  DtVrfIndirectArtilleryObjectModify* modifications);
1294 
1295  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1296  const DtSimulationAddress& addr,
1297  const DtUUID& uuid,
1298  const DtVrfIndirectArtilleryObjectModify * mod) const;
1299 
1301 
1302  //-------------------------------------------------------
1303 
1307 
1310  virtual void createObject(
1311  const DtEntityType& type,
1312  DtForceType force,
1313  DtList* vertices,
1314  const DtString& name,
1315  const DtSimulationAddress& addr,
1316  const DtUUID& startingUUID = DtUUID::nullUUID());
1317 
1321  virtual void objectCreated(unsigned int requestId,
1322  const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
1323 
1325  virtual void deleteObject(const DtUUID& uuid,
1326  const DtSimulationAddress& addr = DtSimSendToAll) const;
1327 
1329  virtual void createEntity(
1330  const DtEntityType& type,
1331  const DtVector& geocentricPosition,
1332  DtForceType force,
1333  DtReal heading,
1334  const DtString& uniqueName = DtString::nullString(),
1335  const DtString& label = DtString::nullString(),
1336  const DtSimulationAddress& addr = DtSimSendToAll,
1337  bool groundClamp = true,
1338  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1339 
1343  virtual void createEntity(
1344  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1345  const DtEntityType& type,
1346  const DtVector& geocentricPosition,
1347  DtForceType force,
1348  DtReal heading,
1349  const DtString& uniqueName = DtString::nullString(),
1350  const DtString& label = DtString::nullString(),
1351  const DtSimulationAddress& addr = DtSimSendToAll,
1352  bool groundClamp = true,
1353  const DtUUID& startingUUID = DtUUID::nullUUID());
1354 
1355  virtual void createAggregate(
1356  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1357  const DtEntityType& type,
1358  const DtVector& geocentricPosition,
1359  DtForceType force,
1360  DtReal heading,
1361  const DtString& uniqueName,
1362  const DtString& label = DtString::nullString(),
1363  const DtSimulationAddress& addr = DtSimSendToAll,
1364  DtAggregateState initialAggregateState = DtDisaggregated,
1365  const DtUUID& startingUUID = DtUUID::nullUUID());
1366 
1368  virtual void createAggregate(
1369  const DtEntityType& type,
1370  const DtVector& geocentricPosition,
1371  DtForceType force,
1372  DtReal heading,
1373  DtList* entityNames = 0,
1374  const DtSimulationAddress& addr = DtSimSendToAll,
1375  DtAggregateState initialAggregateState = DtDisaggregated,
1376  unsigned int requestId = 0,
1377  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
1378 
1382  virtual void createAggregate(
1383  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1384  const DtEntityType& type,
1385  const DtVector& geocentricPosition,
1386  DtForceType force,
1387  DtReal heading,
1388  DtList* entityNames = 0,
1389  const DtSimulationAddress& addr = DtSimSendToAll,
1390  DtAggregateState initialAggregateState = DtDisaggregated,
1391  const DtUUID& startingUUID = DtUUID::nullUUID());
1392 
1395  virtual void addToOrganization(
1396  const DtUUID& objectId,
1397  const DtUUID& newSuperiorId,
1398  const DtSimulationAddress& addr = DtSimSendToAll);
1399 
1403  virtual void addToForceLevelOrganization(
1404  const DtUUID& uuid,
1405  const DtSimulationAddress& addr = DtSimSendToAll);
1406 
1409  virtual void removeFromOrganization(
1410  const DtUUID& uuid,
1411  const DtSimulationAddress& addr = DtSimSendToAll);
1412 
1416  virtual void setLabel(
1417  const DtUUID& uuid, const DtString& label,
1418  const DtSimulationAddress& addr = DtSimSendToAll) const;
1419 
1424  virtual void setOverlayParent(
1425  const DtUUID& uuid, const DtString& label,
1426  const DtSimulationAddress& addr = DtSimSendToAll) const;
1427 
1431  virtual void setAltitude(
1432  const DtUUID& uuid, double altitude, bool aboveGroundLevel = false,
1433  const DtSimulationAddress& addr = DtSimSendToAll) const;
1434 
1438  virtual void setLocation(
1439  const DtUUID& uuid, DtVector coord,
1440  const DtSimulationAddress& addr = DtSimSendToAll) const;
1441 
1443  virtual void setAppearance(
1444  const DtUUID& uuid, int appearance,
1445  const DtSimulationAddress& addr = DtSimSendToAll) const;
1446 
1448  virtual void setCapabilities(
1449  const DtUUID& uuid, int capabilities,
1450  const DtSimulationAddress& addr = DtSimSendToAll) const;
1451 
1455  virtual void setHeading(
1456  const DtUUID& uuid, double degrees,
1457  const DtSimulationAddress& addr = DtSimSendToAll) const;
1458 
1462  virtual void setForce(
1463  const DtUUID& uuid, DtForceType force,
1464  const DtSimulationAddress& addr = DtSimSendToAll) const;
1465 
1471  virtual void requestSpotReports(const DtUUID& uuid, int onOff,
1472  const DtSimulationAddress& addr = DtSimSendToAll) const;
1473 
1477  virtual void requestSendTDLMessages(const DtUUID& uuid, int onOff,
1478  const DtSimulationAddress& addr = DtSimSendToAll) const;
1479 
1485  virtual void requestEngagementReports(const DtUUID& uuid, bool onOff,
1486  const DtSimulationAddress& addr = DtSimSendToAll) const;
1487 
1491  virtual void setResource(const DtUUID& uuid,
1492  const char* resourceType, double value,
1493  const DtSimulationAddress& addr = DtSimSendToAll) const;
1494 
1500  virtual void setRulesOfEngagement(
1501  const DtUUID& uuid, const char* rulesType,
1502  const DtSimulationAddress& addr = DtSimSendToAll) const;
1503 
1508  virtual void setSectorOfResponsibility(
1509  const DtUUID& uuid, double center, double size,
1510  const DtSimulationAddress& addr = DtSimSendToAll) const;
1511 
1515  virtual void setSpeed(
1516  const DtUUID& uuid, double speed,
1517  const DtSimulationAddress& addr = DtSimSendToAll) const;
1518 
1522  virtual void setCurrentSpeed(
1523  const DtUUID& uuid, double speed,
1524  const DtSimulationAddress& addr = DtSimSendToAll) const;
1525 
1529  virtual void setTarget(
1530  const DtUUID& uuid, const DtUUID& target,
1531  const DtSimulationAddress& addr = DtSimSendToAll) const;
1532 
1536  virtual void setSuperior(
1537  const DtUUID& uuid, const DtUUID& superior,
1538  const DtSimulationAddress& addr = DtSimSendToAll) const;
1539 
1541  virtual void setTaskedBySuperior(const DtUUID& uuid,
1542  const DtSimulationAddress& addr = DtSimSendToAll) const;
1543 
1547  virtual void setConcealed(const DtUUID& uuid,
1548  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
1549 
1551  virtual void setEmitter(const DtUUID& uuid,
1552  int emitterId, bool on,
1553  const DtSimulationAddress& addr = DtSimSendToAll) const;
1554 
1556  virtual void setIff(const DtUUID& uuid,
1557  bool mode1on, int mode1code,
1558  bool mode2on, int mode2code,
1559  bool mode3on, int mode3code,
1560  bool mode4on, int mode4code,
1561  DtIffAtcNavaidsAltParm4 altParm4,
1562  bool modeCon, bool useAltModeC,
1563  bool modeSon, bool emergency,
1564  bool flash, bool sti, bool modeSTcasI,
1565  int pin, bool mode5LevelSelection,
1566  unsigned int messageFormatsPresent, unsigned int nationalOrigin,
1567  unsigned int navigationSource, unsigned int figureOfMerit,
1568  const DtSimulationAddress& addr = DtSimSendToAll) const;
1569 
1571  virtual void restore(const DtUUID& uuid,
1572  const DtSimulationAddress& addr = DtSimSendToAll) const;
1573 
1577  virtual void setDestroyed(const DtUUID& uuid,
1578  const DtSimulationAddress& addr = DtSimSendToAll) const;
1579 
1583  virtual void setLifeformWeaponState(
1584  const DtUUID& uuid, DtWeaponState weapon,
1585  const DtSimulationAddress& addr) const;
1586 
1590  virtual void setLifeformPosture(
1591  const DtUUID& uuid, DtLifeformState posture,
1592  const DtSimulationAddress& addr) const;
1593 
1596  virtual void setAggregateFormation(
1597  const DtUUID& leader, const DtString& formationName,
1598  const DtSimulationAddress& addr = DtSimSendToAll) const;
1599 
1603  virtual void reorganizeAggregate(const DtUUID& leader,
1604  const DtSimulationAddress& addr = DtSimSendToAll) const;
1605 
1609  virtual void disaggregateEntity(const DtUUID& entity,
1610  const DtSimulationAddress& addr = DtSimSendToAll) const;
1611 
1615  virtual void aggregateEntity(const DtUUID& entity,
1616  const DtSimulationAddress& addr = DtSimSendToAll) const;
1617 
1620  virtual void sendSetDataMsg(
1621  const DtUUID& recipient, DtSetDataRequest* msg,
1622  const DtSimulationAddress& addr) const;
1623 
1625 
1626  //-----------------------------------------------------
1627 
1631 
1636  virtual void sendVrfObjectCreateMsg(
1637  const DtSimulationAddress& addr,
1638  unsigned int requestId,
1639  const DtString& name,
1640  const DtObjectType& type,
1641  const DtList& vertices,
1642  const DtString& label,
1643  const DtAppearance& appearance,
1644  DtForceType force,
1645  bool projection,
1646  bool closedFigure,
1647  DtReal heading,
1648  bool createSubObjects,
1649  bool clampToGroundFlag = true,
1650  const DtString& initialFormation = DtString::nullString(),
1651  DtAggregateState initialAggregateState = DtDisaggregated,
1652  const DtString& userData = DtString::nullString(),
1653  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1654  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1655  std::list<DtAdminContent*>* initialAdminContent = 0,
1656  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1657  const DtString& overlayParent = "",
1658  const DtUUID& uuidForCreation = DtUUID::nullUUID()) const;
1659 
1666  virtual void sendVrfObjectModifyMsg(
1667  const DtSimulationAddress& addr,
1668  const DtUUID& uuid,
1669  DtString* name = 0,
1670  DtList* vertices = 0,
1671  DtForceType* force = 0,
1672  DtReal* heading = 0,
1673  DtString* label = 0,
1674  DtAppearance* appearance = 0,
1675  DtString* overlayParent = 0,
1676  DtString* userData = 0) const;
1677 
1679 
1680  //------------------------------------------------------
1681 
1686 
1690  virtual void sendTaskMsg(
1691  const DtUUID& recipient, DtSimTask* task,
1692  const DtSimulationAddress& addr = DtSimSendToAll) const;
1693 
1696  virtual void moveAlongRoute(
1697  const DtUUID& entityName, const DtUUID& routeName,
1698  const DtSimulationAddress& addr = DtSimSendToAll) const;
1699 
1702  virtual void moveToWaypoint(
1703  const DtUUID& entityName, const DtUUID& waypoint,
1704  const DtSimulationAddress& addr = DtSimSendToAll) const;
1705 
1709  virtual void moveToLocation(
1710  const DtUUID& entityName, const DtVector& destinationLocation,
1711  const DtSimulationAddress& addr = DtSimSendToAll) const;
1712 
1715  virtual void patrolBetweenWaypoints(
1716  const DtUUID& uuid,
1717  const DtUUID& waypoint1, const DtUUID& waypoint2,
1718  const DtSimulationAddress& addr = DtSimSendToAll) const;
1719 
1722  virtual void patrolAlongRoute(
1723  const DtUUID& uuid, const DtUUID& route,
1724  const DtSimulationAddress& addr = DtSimSendToAll) const;
1725 
1731  virtual void followEntity(
1732  const DtUUID& uuid,
1733  const DtUUID& leader, const DtVector& offset,
1734  const DtSimulationAddress& addr = DtSimSendToAll) const;
1735 
1738  virtual void wait(
1739  const DtUUID& uuid,
1740  const DtSimulationAddress& addr = DtSimSendToAll) const;
1741 
1744  virtual void waitDuration(
1745  const DtUUID& uuid, DtTime duration,
1746  const DtSimulationAddress& addr = DtSimSendToAll) const;
1747 
1750  virtual void waitElapsed(
1751  const DtUUID& uuid, DtTime elapsed,
1752  const DtSimulationAddress& addr = DtSimSendToAll) const;
1753 
1755  virtual void skipTask(const DtUUID& uuid,
1756  const DtSimulationAddress& addr = DtSimSendToAll) const;
1757 
1759 
1760  //--------------------------------------------------------------
1761 
1765 
1768  virtual void restartPlan(const DtUUID& uuid,
1769  const DtSimulationAddress& addr = DtSimSendToAll) const;
1770 
1778  virtual void assignPlanByName(
1779  const DtUUID& uuid, const DtPlan& plan,
1780  const DtSimulationAddress& addr = DtSimSendToAll,
1781  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1782 
1784  virtual void assignMultiplePlanByName(
1785  const std::vector<DtUUID>& entities, const DtPlan& plan,
1786  const DtSimulationAddress& addr = DtSimSendToAll,
1787  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1788 
1793  virtual void requestPlan(
1794  const DtUUID& uuid,
1795  bool addStmtCallback = true,
1796  const DtSimulationAddress& addr = DtSimSendToAll) const;
1797 
1802  virtual void subscribePlan(const DtUUID& uuid,
1803  DtPlanCallbackFcn fn, void* usr,
1804  const DtSimulationAddress& addr = DtSimSendToAll);
1805 
1809  virtual void receivedPlan(const DtUUID& uuid, bool isGlobal,
1810  const std::vector<DtSimStatement*>& statements);
1811 
1817  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1818  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1819  const DtSimulationAddress& addr = DtSimSendToAll);
1820 
1821  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1822  const DtSimulationAddress& addr = DtSimSendToAll);
1823 
1827  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1828 
1831  virtual void unsubscribePlan(const DtUUID& uuid,
1832  DtPlanCallbackFcn fn, void* usr);
1833 
1836  virtual void unsubscribeAllPlans();
1837 
1842  virtual void addPlanStatementCallback(const DtUUID& uuid,
1843  DtPlanStatementCallbackFcn callback, void* usrData);
1844 
1847  virtual void removePlanStatementCallback(const DtUUID& uuid,
1848  DtPlanStatementCallbackFcn callback, void* usrData);
1849 
1852  virtual void removeAllPlanStatementCallbacks();
1853 
1859  virtual void receivedPlanStmt(const DtUUID& uuid, bool isGlobal,
1860  DtPlanStatus planStatus);
1861 
1866  virtual void addPlanCompleteCallback(const DtUUID& uuid,
1867  DtPlanCompleteCallbackFcn callback, void* usrData);
1868 
1871  virtual void removePlanCompleteCallback(const DtUUID& uuid,
1872  DtPlanCompleteCallbackFcn callback, void* usrData);
1873 
1876  virtual void removeAllPlanCompleteCallbacks();
1877 
1880  virtual void abandonPlan(const DtUUID& uuid,
1881  const DtSimulationAddress& addr = DtSimSendToAll) const;
1882 
1884 
1888 
1890  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1891 
1899  virtual void assignGlobalPlan(
1900  const DtString& name, const DtPlan& plan,
1901  const DtSimulationAddress& addr = DtSimSendToAll,
1902  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1903 
1905  virtual void deleteGlobalPlan(const DtUUID& name,
1906  const DtSimulationAddress& addr = DtSimSendToAll) const;
1907 
1909  virtual void launchGlobalPlan(const DtUUID&, const DtSimulationAddress& addr) const;
1910 
1912 
1913  //---------------------------------------------------------------
1914 
1917 
1922  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1923 
1929  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1930  const DtSimulationAddress& addr = DtSimSendToAll) const;
1931 
1937  virtual DtRadioMessageListener* radioMessageListener();
1938 
1940 
1941  //--------------------------------------------------------------
1942 
1947 
1954  virtual void embarkObject(const DtSimulationAddress& addr, const DtUUID& entity, const DtUUID& ontoEntity,
1955  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1956 
1957  virtual void disembarkObject(const DtSimulationAddress& addr, const DtUUID& entity);
1958  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtUUID& entity);
1959 
1962  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1963  const DtUUID& entityName);
1964 
1966  virtual void requestTasksAndSetsFor(const std::vector<DtUUID>& names);
1967 
1970  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1971  const DtUUID& entityName);
1972 
1974  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>& names);
1975 
1977  virtual void requestIndirectArtilleryInformation(const DtUUID&);
1978 
1983  virtual void requestResourceNames(const std::vector<DtUUID>& list,
1984  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1985 
1993  virtual void requestResources(const DtUUID& uuid = DtUUID::nullUUID(),
1994  const std::list<DtString>* list = 0,
1995  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1996 
2000  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
2001 
2002 
2004 
2005  //---------------------------------------------------------------
2006 
2010 
2013  virtual void addObjectConsoleMessageCallback(
2014  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
2015  virtual void removeObjectConsoleMessageCallback(
2016  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
2017 
2020  virtual void setObjectNotifyLevel(const DtUUID& objectName,
2021  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
2022 
2026  virtual void logObjectConsoleToFile(const DtUUID& objectName,
2027  const DtFilename filename);
2028 
2031  virtual void stopLoggingObjectConsoleToFile(const DtUUID& objectName);
2032 
2035  virtual void addBackendConsoleMessageCallback(
2036  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
2037  virtual void removeBackendConsoleMessageCallback(
2038  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
2039 
2042  virtual void processCommentInteraction(DtCommentInteraction* inter);
2043 
2045 
2046 //-----------------------------------------------------------
2050 
2053  virtual void requestJoystickInformation(const DtUUID&, DtJoystickControlResponseFcn, void*,
2054  const DtSimulationAddress& addr = DtSimSendToAll);
2055 
2058  virtual void takeControlOf(const DtUUID&, const std::set<DtString>& functionGroups,
2059  const DtSimulationAddress& addr = DtSimSendToAll);
2060 
2063  virtual void releaseControlOf(const DtUUID&, const std::set<DtString>& functionGroups =
2064  std::set<DtString>(), const DtSimulationAddress& addr = DtSimSendToAll);
2065 
2068  virtual void sendJoystickControl(const DtUUID&, const DtString& functionGroup,
2069  const DtString& function, double value, bool repeat = false, const DtSimulationAddress& addr = DtSimSendToAll);
2070 
2072 
2073  //-----------------------------------------------------------
2074 
2079  virtual DtDefaultVrfObjectMessageFactory* vrfObjectMsgFactory();
2080  virtual DtDefaultCondExprFactory* condExprFactory();
2081  virtual DtDefaultStatementFactory* stmtFactory();
2082  virtual DtDefaultSimReportFactory* reportFactory();
2083  virtual DtDefaultSimTaskFactory* taskFactory();
2084  virtual DtDefaultSetDataRequestFactory* setDataFactory();
2085  virtual DtDefaultSimCommandFactory* simCommandFactory();
2086  virtual DtDefaultAdminContentFactory* adminContentFactory();
2088 
2089 public:
2090 
2093 
2096  static void doPendingSaveWorkCb(void* usr);
2097 
2100  static void doPendingExportWorkCb(void* usr);
2101 
2104  static void doPendingLoadWorkCb(void* usr);
2105 
2108  static void savedScenarioCb(DtSimMessage* msg, void* usr);
2109 
2112  static void exportScenarioCb(DtSimMessage* msg, void* usr);
2113 
2116  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
2117 
2120  static void receiveFileCb(const DtFilename& filename, void* usr);
2121 
2123  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
2124 
2126  static void objectCreatedCb(DtSimMessage* msg, void* usr);
2127 
2129  static void receivedPlanCb(DtSimMessage* msg, void* usr);
2130 
2132  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
2133 
2136  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2137  const DtUUID& uuid, void* usr);
2138 
2141  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2142  const DtUUID& uuid, void* usr);
2143 
2145  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
2146 
2149  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
2150 
2153  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
2154 
2156 
2157 
2158 protected:
2159 
2161  static void joystickControlResponse(DtSimMessage* msg, void* usr);
2162  virtual void processJoystickControlResponse(DtSimMessage* msg);
2163 
2167  virtual void onInit();
2168  virtual void resetStateData();
2169  virtual void emptyLists();
2170 
2172  virtual void sendAggregateAsMsg(
2173  const DtSimulationAddress& addr,
2174  unsigned int requestId,
2175  const DtObjectType& objectType,
2176  DtForceType force,
2177  const DtVector& position,
2178  DtReal heading,
2179  DtList* entityNames,
2180  DtAggregateState initialAggregateState,
2181  const DtUUID& startingUUID = DtUUID::nullUUID()) const;
2182 
2184  virtual DtVrfConfigurationFileComposer* createComposer();
2185 
2187  virtual DtUUIDNetworkManager* createUUIDNetworkManager() const;
2188 
2191  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
2192  const DtSimulationAddress& backendAddress,
2193  DtSpatialSubdivisionType spatialSubdivisionType ,
2194  DtServerRequestResponseCallbackFcn fcn, void* usr);
2195 
2202  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
2203 
2211  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
2212  const DtSimulationAddress& addr = DtSimSendToAll,
2213  int *retiStatus = 0, DtString* retsStmt = 0) const;
2214 
2217  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
2218  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
2221  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
2222 
2225  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
2226  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
2227 
2229  static void backendStatusUpdate(const DtSimulationAddress&, void*);
2230  virtual void processBackendStatusUpdate(const DtSimulationAddress&);
2231 
2232 protected:
2233  DtExerciseConn* myExConn;
2246  DtList myBeList;
2247 
2256 
2257  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
2259  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
2261  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
2263 
2264  DtHashlist myObjectCbs;
2265 
2266  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
2269 
2270  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2273 
2276  DtFilename mySaveName;
2278  DtFilename myOverlayFilename;
2282  DtFilename myOpdName;
2296 
2299 
2302 
2305 
2315 
2320 
2323 
2326  DtFilename myTempDirectory;
2327 
2331  DtInetAddr myInetAddr;
2332 
2337  mutable unsigned int myRequestIdCounter;
2338 
2341 
2344 
2347 
2350 
2353 
2355  DtFilename myExportFile;
2356 
2359 
2363 
2366 
2370 
2372  typedef std::map<DtString, std::pair<DtJoystickControlResponseFcn, void*> > JoystickResponseCallbackInfo;
2374 
2377 
2381  std::set<DtSimulationAddress> myBackendsWithObjects;
2382 
2384  std::set<DtSimulationAddress> myBackendsLoaded;
2385  std::vector<DtString> myLoadingSimulationModelSets;
2387 };
2388 
2397 {
2398 public:
2399  DtVrfOverlayObjectModify(int color, const DtUUID& attachTo,
2400  char* userData,
2401  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
2402  DtVrfRemoteController* control);
2403 
2404  virtual ~DtVrfOverlayObjectModify();
2405 
2406  virtual int color() const;
2407  virtual const DtUUID& attachTo() const;
2408  virtual void userData(char** data, int* userDataSize);
2409  virtual DtVrfRemoteController* remoteController();
2410  virtual DtOverlayCreatedCallbackFcn userCallback();
2411 
2412 protected:
2413  int myColor;
2416  char* myUserData;
2419 };
2420 
2424 {
2425 public:
2428 
2430  virtual DtVrfRemoteController* remoteController() const;
2431  virtual void setRemoteController(DtVrfRemoteController*);
2432 
2434  virtual const DtIfIndirectArtilleryData & data() const;
2435  virtual DtIfIndirectArtilleryData & data();
2436  virtual void setData(const DtIfIndirectArtilleryData & data);
2437 
2438 protected:
2441 };

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)