VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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;
57 class DtIfLoadScenario;
58 class DtIfPlan;
64 class DtSettingsObject;
69 
70 typedef void (*DtScenarioCallbackFcn)(void* usr);
72 
74 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, void* usr);
77 typedef bool (*DtPreserveMappingsFcn)(void* usr);
78 
80 
81 typedef void (*DtBackendSaveCallbackFcn)
82  (const DtSimulationAddress& addr, DtSaveResult result, void * usr);
83 
84 typedef void (*DtScenarioSavedCallbackFcn)
85  (DtSaveResult result, const DtString& sError, void* usr);
86 
87 typedef void (*DtCheckpointSavedCallbackFcn)
88  (DtSaveResult result, double, void* usr);
89 
90 typedef void (*DtVrfObjectCreatedCallbackFcn)
91  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
92 
93 typedef void (*DtOverlayCreatedCallbackFcn)
94  (const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, DtVrfOverlayObjectModify* usr);
95 
97  (const DtString& name, const DtEntityIdentifier& id,
98  const DtUUID& uuid, void* usr);
99 
100 typedef void (*DtObjectConsoleMessageCallbackFcn)
101  (const DtEntityIdentifier& id, int notifyLevel, const DtString& message,
102  void* usr);
103 
105  (const DtSimulationAddress& id, int notifyLevel, const DtString& message,
106  void* usr);
107 
112  (const DtIfServerRequestResponse& response, void* usr);
113 
116 {
117 public:
118  PlanCbInfo(const DtUUID& n, bool global, DtPlanCallbackFcn f, void* usr) :
119  planName(n), isGlobal(global), fcn(f), data(usr) {}
121  bool operator==(const PlanCbInfo& orig) const
122  {
123  return (planName == orig.planName && fcn == orig.fcn && data == orig.data
124  && isGlobal == orig.isGlobal);
125  }
126 
128  bool isGlobal;
130  void* data;
131 };
132 
135 {
136 public:
137  StmtCbInfo(const DtUUID& n, bool global,
138  DtPlanStatementCallbackFcn f, void* usr) :
139  planName(n), isGlobal(global) , fcn(f), data(usr) {}
141  bool operator==(const StmtCbInfo& orig) const
142  {
143  return (planName == orig.planName && fcn == orig.fcn && data == orig.data &&
144  isGlobal == orig.isGlobal);
145  }
146 
149  bool isGlobal;
150  void* data;
151 };
152 
155 {
156 public:
157  PlanCompleteCbInfo(const DtUUID& n, bool global,
158  DtPlanCompleteCallbackFcn f, void* usr) :
159  planName(n), isGlobal(global), fcn(f), data(usr) {}
161  bool operator==(const PlanCompleteCbInfo& orig) const
162  {
163  return (planName == orig.planName && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal);
164  }
165 
168  bool isGlobal;
169  void* data;
170 };
171 
172 
193 {
194 public:
196  AttachNone=0,
198  AttachEven
199  };
200 
201 public:
202 
206 
212  DtVrfRemoteController(int receivePort = 9000);
213 
215  virtual ~DtVrfRemoteController();
216 
218  virtual DtVrfMessageInterface* vrfMessageInterface() const;
219 
221  virtual DtUUIDNetworkManager* uuidNetworkManager() const;
222 
224  DtRemoteEnvironmentController* remoteEnvironmentController();
225 
227  virtual DtVrfConfigurationFileComposer* composer();
228 
230  virtual void setHostInetAddr(DtInetAddr);
231  virtual DtInetAddr hostInetAddr() const;
232 
234  virtual const DtSimulationAddress& simulationAddress() const;
235 
237  virtual int sessionId() const;
238 
242  virtual unsigned int generateRequestId() const;
243 
245 
246  //---------------------------------------------------------------
247 
251 
271  virtual void init(DtExerciseConn* exConn,
273  DtReflectedEntityList* reel = NULL,
274  DtReflectedAggregateList* ral = NULL,
275  const DtString& uuidMarkingForNonVrForces = "entity-identifier");
276  virtual void init(DtVrfMessageInterface* msgIf,
278  DtReflectedEntityList* reel = NULL,
279  DtReflectedAggregateList* ral = NULL,
280  const DtString& uuidMarkingForNonVrForces = "entity-identifier");
284  virtual void reinitialize(
286  DtReflectedEntityList* reel = NULL,
287  DtReflectedAggregateList* ral = NULL);
288 
291  DtRemoteEnvironmentController* createRemoteEnvironmentController();
292 
294 
295 //-----------------------------------------------------------x
296 
300 
302  virtual const DtList& backends() const;
303 
306  virtual const DtList& pendingBackends() const;
307 
309  virtual DtVrfBackendListener* backendListener() const;
310 
312  virtual void addBackendDiscoveryCallback(
313  DtBackendCallbackFcn fcn, void* usr);
314  virtual void removeBackendDiscoveryCallback(
315  DtBackendCallbackFcn fcn, void* usr);
316 
318  virtual void addBackendRemovalCallback(
319  DtBackendCallbackFcn fcn, void* usr);
320  virtual void removeBackendRemovalCallback(
321  DtBackendCallbackFcn fcn, void* usr);
322 
326  virtual int backendsControlState() const;
327 
329  virtual int numberBackendsLoaded() const;
330 
333  virtual bool allBackendsReady() const;
334 
336  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
337 
340  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
341  const DtSimulationAddress& addr = DtSimSendToAll);
342 
353  virtual void requestBackEndSetting(std::string name,
355  const DtSimulationAddress& addr = DtSimSendToAll);
356 
359  virtual double simTime(const DtSimulationAddress* a = NULL) const;
360 
362 
363 //-----------------------------------------------------------
364 
367 
370  virtual void setSpotReportsGloballyEnabled(bool enabled);
371 
374  virtual void setEngagementReportsGloballyEnabled(bool enabled);
375 
378  virtual void setPeriodicSnapshotSettings(bool enabled, double period, int numberOfSnapshotsToKeep);
379 
382  virtual void setDRThresholds(double translation, double rotation);
383 
385  virtual void setCommModelSettings(bool useExternalComms);
386 
388  virtual void setRoadDrivingSettings(bool driveOnLeft);
389 
392  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
393 
398  virtual void setPublishAggregateFormationRoutes(bool yesNo);
399 
401  virtual void setRotationThreshold(DtReal thresh);
402 
404  virtual void setTranslationThreshold(DtReal thresh);
405 
410  virtual void setAggDimensionThreshold(DtReal thresh);
411 
414  virtual void querySpatialSubdivisionConfiguration(
415  const DtSimulationAddress& backendAddress,
416  DtSpatialSubdivisionType spatialSubdivisionType,
417  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
418 
420  virtual void setSpatialSubdivsionConfiguration(
421  const DtSimulationAddress& backendAddress,
422  DtSpatialSubdivisionType spatialSubdivisionType,
423  const int spatialSubdivisionXResolution,
424  const int spatialSubdivisionYResolution,
425  const int spatialSubdivisionZResolution);
426 
432  virtual void processSpatialSubdivisionConfigurationCb(
433  const DtIfServerRequestResponse& rsp);
434 
436 
437  //------------------------------------------------------------
438 
443 
452  virtual bool newScenario(
453  const DtFilename& dbname,
454  const DtFilename& guidbname,
455  const DtFilename& opdname = DtFilename::nullFilename(),
456  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
457  const DtScenario* baseScenario = 0,
458  time_t startTimeOfDay = 12 * 3600,
459  DtString* errorString = 0,
460  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
461 
463  virtual bool newScenario(
464  const DtFilename& dbname,
465  const DtFilename& guidbname,
466  const std::vector<DtString>& simulationModelSetFiles,
467  const DtScenario* baseScenario = 0,
468  time_t startTimeOfDay = 12 * 3600,
469  DtString* errorString = 0,
470  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
471 
477  virtual bool newScenario(
478  const DtFilename& dbname,
479  const DtFilename& guidbname,
480  const DtFilename& opdname,
481  const DtFilename& physicalWorldName,
482  const std::vector<DtString>& simulationModelSetFiles,
483  const DtScenario* baseScenario = 0,
484  time_t startTimeOfDay = 12 * 3600,
485  DtString* errorString = 0,
486  const DtChangeWeatherCommand& initialEnvironmentCondition = DtChangeWeatherCommand());
487 
493  virtual void createSimulationObjectGroup(const DtSimulationAddress&, const DtString& simulationObjectGroup,
494  const DtVector& createPosition, double offsetRotation, int createFlags, DtForceType force,
495  bool storedInZipFile = false);
496 
497 
499 
503 
529  virtual bool loadScenario(const DtFilename& filename,
530  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
531  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
532  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
533  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone,
534  DtString* errorString = 0);
535  virtual bool loadScenario(const DtScenarioLoadInformation&,
536  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
537  DtString* errorString = 0);
538 
547  virtual bool loadScenario(const DtScenario& scenario,
548  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
549  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
550  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
551  DtString* errorString = 0);
552 
558  virtual bool sendLoadScenarioMessage(
559  const DtScenario& scenario,
560  const DtSimulationAddress& addr = DtSimSendToAll,
561  bool import = false) const;
562 
565  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
566 
569  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
570  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
571 
574  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
575  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
576 
577 
582  virtual bool rollbackToSnapshot(double simTime);
583 
586  virtual bool importScenario(const DtScenario&, const DtSimulationAddress& addr, DtString* errorString = 0);
587  virtual bool importScenario(const DtFilename&, const DtSimulationAddress& addr, DtString* errorString = 0);
588 
593  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
594  const std::map<std::string, std::string>& importData);
595 
599  virtual void setMaxWaitLoadTime(DtTime t);
600  virtual DtTime maxWaitLoadTime() const;
601 
603 
608 
611  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
612  const std::map<std::string, std::string>& importData);
613 
617  virtual DtString guiTerrainDatabaseFilename() const;
618  virtual void setGuiTerrainDatabaseFilename(DtString db);
619 
621  virtual const DtRwKeyValueList& scenarioData() const;
622  virtual void setScenarioData(const DtRwKeyValueList&);
623 
625  virtual bool isSavingScenario() const;
626 
643  virtual bool saveScenario(const DtFilename& saveName,
644  DtPreserveMappingsFcn fcn = 0, void* userData = 0, DtString* error = 0, bool saveToZip = false,
645  bool deleteExistingZip = true, double simTime = -1);
646 
653  virtual bool save(DtString& sError);
654 
659  virtual bool saveScenarioCheckpoint(const DtFilename& filename, double simTime, bool saveToZip = false);
660 
663  virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
664 
667  virtual void takeBaseSnapshot();
668 
672  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll, double simTime = -1,
673  const DtFilename& saveScenarioFilename = "") const;
674 
677  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
678  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
679 
683  virtual void addScenarioSavedCallback(
684  DtScenarioCallbackFcn fcn, void* usr);
685  virtual void removeScenarioSavedCallback(
686  DtScenarioCallbackFcn fcn, void* usr);
687 
689  virtual void addScenarioExportedCallback(
690  DtScenarioSavedCallbackFcn fcn, void* usr);
691  virtual void removeScenarioExportedCallback(
692  DtScenarioSavedCallbackFcn fcn, void* usr);
693 
695  virtual void addCheckpointSavedCallback(
696  DtCheckpointSavedCallbackFcn fcn, void* usr);
697  virtual void removeCheckpointSavedCallback(
698  DtCheckpointSavedCallbackFcn fcn, void* usr);
699 
703  virtual void addScenarioSavedCallback(
704  DtScenarioSavedCallbackFcn fcn, void* usr);
705  virtual void removeScenarioSavedCallback(
706  DtScenarioSavedCallbackFcn fcn, void* usr);
707 
715  virtual void setOpdSaveName(const DtFilename& f);
716  virtual const DtFilename& opdSaveName() const;
717 
721  virtual void setMaxWaitSaveTime(DtTime t);
722  virtual DtTime maxWaitSaveTime() const;
723 
727  virtual void setOverlayFilename(const DtFilename& overlay);
728  virtual const DtFilename& overlayFilename() const;
729 
733  virtual void setHostilityFilename(const DtFilename& hostilty);
734  virtual const DtFilename& hostilityFilename() const;
735 
736  virtual void setScenarioExtrasFilename(const DtFilename& extras);
737  virtual const DtFilename& scenarioExtrasFilename() const;
738 
742  virtual void setSelectionGroupsFilename(const DtFilename& sel);
743  virtual const DtFilename& selectionGroupsFilename() const;
744 
748  virtual void setSymbolMapFilename(const DtFilename& overlay);
749  virtual const DtFilename& symbolMapFilename() const;
750 
754  virtual void setCreateMenuFilename(const DtFilename& overlay);
755  virtual const DtFilename& createMenuFilename() const;
756 
758  virtual void saveParameterDb(const DtFilename& filename);
759 
767  virtual bool saveSimulationObjectGroup(const DtFilename& smsDirectory, const DtString& groupName,
768  const DtString& groupDescription, int creationFlags, const DtSimulationAddress& addr,
769  const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
770  DtString* saveError = 0, bool saveAsZip = false);
771 
773 
778 
784  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll,
785  const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
786 
788 
793 
797  virtual DtTime scenarioSimTimeForSave();
798 
802  virtual void setTerrainDatabaseFilename(DtScenario* scen);
803 
807  virtual void setParameterDatabaseFilename(DtScenario* scen);
808 
812  virtual void setPhysicalWorldFilename(DtScenario* scen);
813 
817  virtual void setTimeMultiplier(DtScenario* scen);
818 
822  virtual void setAutoReorganize(DtScenario* scen);
823 
827  virtual void setRandomNumberSeed(DtScenario* scen);
828 
832  virtual void setFrameRateMode(DtScenario* scen);
833 
837  virtual void setFrameDeltaTime(DtScenario* scen);
838 
842  virtual void setExerciseStartTime(DtScenario* scen);
843 
847  virtual void setExerciseStartDateAndTime(DtScenario* scen);
848 
850 
855 
858  virtual void run(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
859  virtual void pause(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
860 
862  virtual void rewind();
863 
864  virtual void exit() const;
865  virtual void step() const;
866  virtual void setTimeMultiplier(double multiplier) const;
867 
868 
870 
871  //-------------------------------------------------------
872 
879 
885  virtual void loadedScenario(
886  const DtSimulationAddress& addr, unsigned int requestId, const DtU32& capabilities);
887 
894  virtual void initializeGlobalEnvironment(
895  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
896 
902  virtual void initializeGlobalDynamicTerrain(
903  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
904 
909  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
910 
914  virtual void processSaveMessages();
915 
919  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
920 
922  virtual void completeExport();
923 
927  virtual void savedScenario(const DtSimulationAddress& addr,
928  DtSaveResult result, unsigned int requestId, bool isCheckpointSave = false, double checkpointSimTime = -1);
929 
932  virtual void doPendingSaveWork();
933 
936  virtual void doPendingExportWork();
937 
940  virtual void doPendingLoadWork();
941 
943 
944  //-------------------------------------------------------
945 
959 
960 
961  //Waypoints (Note-- no way to make a subsection in doxygen; so prevent this word from appearing)
962 
967  virtual void createWaypoint(
968  const DtVector& geocentricPosition,
969  const DtString& uniqueName = DtString::nullString(),
970  const DtString& label = DtString::nullString(),
971  const DtSimulationAddress& addr = DtSimSendToAll) const;
972 
976  virtual void createWaypoint(
977  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
978  const DtVector& geocentricPosition,
979  const DtString& uniqueName = DtString::nullString(),
980  const DtString& label = DtString::nullString(),
981  const DtSimulationAddress& addr = DtSimSendToAll);
982 
984  virtual void modifyWaypoint(
985  const DtUUID& uuid,
986  DtString* uniqueName = 0,
987  DtString* label = 0,
988  DtVector* geocentricPosition = 0,
989  const DtSimulationAddress& addr = DtSimSendToAll) const;
990 
991  //Routes
992 
997  virtual void createRoute(
998  const DtList& vertices,
999  const DtString& uniqueName = DtString::nullString(),
1000  const DtString& label = DtString::nullString(),
1001  const DtSimulationAddress& addr = DtSimSendToAll) const;
1002 
1006  virtual void createRoute(
1007  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1008  const DtList& vertices,
1009  const DtString& uniqueName = DtString::nullString(),
1010  const DtString& label = DtString::nullString(),
1011  const DtSimulationAddress& addr = DtSimSendToAll) ;
1012 
1014  virtual void modifyRoute(
1015  const DtUUID& uuid,
1016  DtString* uniqueName = 0,
1017  DtString* label = 0,
1018  DtList* vertices = 0,
1019  const DtSimulationAddress& addr = DtSimSendToAll) const;
1020 
1021  //Phase Lines
1022 
1027  virtual void createPhaseLine(
1028  const DtVector& dbPoint1,
1029  const DtVector& dbPoint2,
1030  const DtString& uniqueName = DtString::nullString(),
1031  const DtString& label = DtString::nullString(),
1032  const DtSimulationAddress& addr = DtSimSendToAll) const;
1033 
1037  virtual void createPhaseLine(
1038  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1039  const DtVector& dbPoint1,
1040  const DtVector& dbPoint2,
1041  const DtString& uniqueName = DtString::nullString(),
1042  const DtString& label = DtString::nullString(),
1043  const DtSimulationAddress& addr = DtSimSendToAll) ;
1044 
1046  virtual void modifyPhaseLine(
1047  const DtUUID& uuid,
1048  DtString* uniqueName = 0,
1049  DtString* label = 0,
1050  DtVector* newDbPoint1 = 0,
1051  DtVector* newDbPoint2 = 0,
1052  const DtSimulationAddress& addr = DtSimSendToAll) const;
1053 
1054  //Control Areas
1055 
1061  virtual void createControlArea(
1062  const DtList& vertices,
1063  const DtString& uniqueName = DtString::nullString(),
1064  const DtString& label = DtString::nullString(),
1065  const DtSimulationAddress& addr = DtSimSendToAll) const;
1066 
1070  virtual void createControlArea(
1071  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1072  const DtList& vertices,
1073  const DtString& uniqueName = DtString::nullString(),
1074  const DtString& label = DtString::nullString(),
1075  const DtSimulationAddress& addr = DtSimSendToAll) ;
1076 
1078  virtual void modifyControlArea(
1079  const DtUUID& uuid,
1080  DtString* uniqueName = 0,
1081  DtString* label = 0,
1082  DtList* newVertices = 0,
1083  const DtSimulationAddress& addr = DtSimSendToAll) const;
1084 
1085  //Obstacles
1086 
1092  virtual void createObstacle(
1093  const DtList& vertices,
1094  const DtString& uniqueName = DtString::nullString(),
1095  const DtString& label = DtString::nullString(),
1096  const DtSimulationAddress& addr = DtSimSendToAll) const;
1097 
1101  virtual void createObstacle(
1102  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1103  const DtList& vertices,
1104  const DtString& uniqueName = DtString::nullString(),
1105  const DtString& label = DtString::nullString(),
1106  const DtSimulationAddress& addr = DtSimSendToAll) ;
1107 
1109  virtual void modifyObstacle(
1110  const DtUUID& uuid,
1111  DtString* uniqueName = 0,
1112  DtString* label = 0,
1113  DtList* newVertices = 0,
1114  const DtSimulationAddress& addr = DtSimSendToAll) const;
1115 
1116  //Disaggregation Area
1117 
1124  virtual void createDisaggregationArea(
1125  const DtList& vertices,
1126  const DtString& uniqueName = DtString::nullString(),
1127  const DtString& label = DtString::nullString(),
1128  const DtSimulationAddress& addr = DtSimSendToAll) const;
1129 
1134  virtual void createDisaggregationArea(
1135  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1136  const DtList& vertices,
1137  const DtString& uniqueName = DtString::nullString(),
1138  const DtString& label = DtString::nullString(),
1139  const DtSimulationAddress& addr = DtSimSendToAll) ;
1140 
1142  virtual void modifyDisaggregationArea(
1143  const DtUUID& uuid,
1144  DtString* uniqueName = 0,
1145  DtString* label = 0,
1146  DtList* newVertices = 0,
1147  const DtSimulationAddress& addr = DtSimSendToAll) const;
1148 
1149  //Overlay objects
1150 
1163  virtual void createOverlayObject(
1164  const DtEntityType& type,
1165  const DtList& vertices,
1166  const DtForceType& force,
1167  const DtString& name,
1168  const DtString& label,
1169  int color,
1170  const DtString& parentName,
1171  bool projection,
1172  bool closedFigure,
1173  const DtAppearance& appearance = DtAppearance::nullAppearance(),
1174  const DtUUID& attachTo = DtUUID::nullUUID(),
1175  char* userData = 0,
1176  int dataSize = 0,
1177  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1178  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1180  const DtSimulationAddress& addr = DtSimSendToAll,
1181  unsigned int rId = 0,
1182  std::list<DtAdminContent*>* initialAdminContent = 0,
1183  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0);
1184 
1188  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1189  DtVrfOverlayObjectModify* modifications);
1190 
1192  virtual void setPhysicalLineWidth(const DtSimulationAddress& addr,
1193  const DtUUID& entityId, double w);
1194 
1196  virtual void setPhysicalLineHeight(const DtSimulationAddress& addr,
1197  const DtUUID& entityId, double h);
1198 
1200  virtual void setCeiling(const DtSimulationAddress& addr,
1201  const DtUUID& entityId, double c);
1202 
1206  virtual void sendVrfOverlayObjectModifyMsg(
1207  const DtSimulationAddress& addr,
1208  const DtUUID& uuid,
1209  int color,
1210  const DtString& parentName,
1211  const DtUUID& attachTo,
1212  bool keepExistingAttachment = true,
1213  char* userData = 0,
1214  int len = 0) const;
1215 
1216  //Indirect artillery objects
1217 
1219  virtual void createIndirectArtillery(
1220  const DtVrfIndirectArtilleryObjectModify * params,
1221  const DtSimulationAddress& addr);
1222 
1226  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid,
1227  DtVrfIndirectArtilleryObjectModify* modifications);
1228 
1229  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1230  const DtSimulationAddress& addr,
1231  const DtUUID& uuid,
1232  const DtVrfIndirectArtilleryObjectModify * mod) const;
1233 
1235 
1236  //-------------------------------------------------------
1237 
1241 
1244  virtual void createObject(
1245  const DtEntityType& type,
1246  DtForceType force,
1247  DtList* vertices,
1248  const DtString& name,
1249  const DtSimulationAddress& addr);
1250 
1254  virtual void objectCreated(unsigned int requestId,
1255  const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
1256 
1258  virtual void deleteObject(const DtUUID& uuid,
1259  const DtSimulationAddress& addr = DtSimSendToAll) const;
1260 
1262  virtual void createEntity(
1263  const DtEntityType& type,
1264  const DtVector& geocentricPosition,
1265  DtForceType force,
1266  DtReal heading,
1267  const DtString& uniqueName = DtString::nullString(),
1268  const DtString& label = DtString::nullString(),
1269  const DtSimulationAddress& addr = DtSimSendToAll,
1270  bool groundClamp = true) const;
1271 
1275  virtual void createEntity(
1276  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1277  const DtEntityType& type,
1278  const DtVector& geocentricPosition,
1279  DtForceType force,
1280  DtReal heading,
1281  const DtString& uniqueName = DtString::nullString(),
1282  const DtString& label = DtString::nullString(),
1283  const DtSimulationAddress& addr = DtSimSendToAll,
1284  bool groundClamp = true);
1285 
1286  virtual void createAggregate(
1287  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1288  const DtEntityType& type,
1289  const DtVector& geocentricPosition,
1290  DtForceType force,
1291  DtReal heading,
1292  const DtString& uniqueName,
1293  const DtString& label = DtString::nullString(),
1294  const DtSimulationAddress& addr = DtSimSendToAll,
1295  DtAggregateState initialAggregateState = DtDisaggregated);
1296 
1298  virtual void createAggregate(
1299  const DtEntityType& type,
1300  const DtVector& geocentricPosition,
1301  DtForceType force,
1302  DtReal heading,
1303  DtList* entityNames = 0,
1304  const DtSimulationAddress& addr = DtSimSendToAll,
1305  DtAggregateState initialAggregateState = DtDisaggregated,
1306  unsigned int requestId = 0) const;
1307 
1311  virtual void createAggregate(
1312  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
1313  const DtEntityType& type,
1314  const DtVector& geocentricPosition,
1315  DtForceType force,
1316  DtReal heading,
1317  DtList* entityNames = 0,
1318  const DtSimulationAddress& addr = DtSimSendToAll,
1319  DtAggregateState initialAggregateState = DtDisaggregated) ;
1320 
1323  virtual void addToOrganization(
1324  const DtUUID& objectId,
1325  const DtUUID& newSuperiorId,
1326  const DtSimulationAddress& addr = DtSimSendToAll);
1327 
1331  virtual void addToForceLevelOrganization(
1332  const DtUUID& uuid,
1333  const DtSimulationAddress& addr = DtSimSendToAll);
1334 
1337  virtual void removeFromOrganization(
1338  const DtUUID& uuid,
1339  const DtSimulationAddress& addr = DtSimSendToAll);
1340 
1344  virtual void setLabel(
1345  const DtUUID& uuid, const DtString& label,
1346  const DtSimulationAddress& addr = DtSimSendToAll) const;
1347 
1352  virtual void setOverlayParent(
1353  const DtUUID& uuid, const DtString& label,
1354  const DtSimulationAddress& addr = DtSimSendToAll) const;
1355 
1359  virtual void setAltitude(
1360  const DtUUID& uuid, double altitude, bool aboveGroundLevel = false,
1361  const DtSimulationAddress& addr = DtSimSendToAll) const;
1362 
1366  virtual void setLocation(
1367  const DtUUID& uuid, DtVector coord,
1368  const DtSimulationAddress& addr = DtSimSendToAll) const;
1369 
1371  virtual void setAppearance(
1372  const DtUUID& uuid, int appearance,
1373  const DtSimulationAddress& addr = DtSimSendToAll) const;
1374 
1376  virtual void setCapabilities(
1377  const DtUUID& uuid, int capabilities,
1378  const DtSimulationAddress& addr = DtSimSendToAll) const;
1379 
1383  virtual void setHeading(
1384  const DtUUID& uuid, double degrees,
1385  const DtSimulationAddress& addr = DtSimSendToAll) const;
1386 
1390  virtual void setForce(
1391  const DtUUID& uuid, DtForceType force,
1392  const DtSimulationAddress& addr = DtSimSendToAll) const;
1393 
1399  virtual void requestSpotReports(const DtUUID& uuid, bool onOff,
1400  const DtSimulationAddress& addr = DtSimSendToAll) const;
1401 
1407  virtual void requestEngagementReports(const DtUUID& uuid, bool onOff,
1408  const DtSimulationAddress& addr = DtSimSendToAll) const;
1409 
1413  virtual void setResource(const DtUUID& uuid,
1414  const char* resourceType, double value,
1415  const DtSimulationAddress& addr = DtSimSendToAll) const;
1416 
1422  virtual void setRulesOfEngagement(
1423  const DtUUID& uuid, const char* rulesType,
1424  const DtSimulationAddress& addr = DtSimSendToAll) const;
1425 
1430  virtual void setSectorOfResponsibility(
1431  const DtUUID& uuid, double center, double size,
1432  const DtSimulationAddress& addr = DtSimSendToAll) const;
1433 
1437  virtual void setSpeed(
1438  const DtUUID& uuid, double speed,
1439  const DtSimulationAddress& addr = DtSimSendToAll) const;
1440 
1444  virtual void setCurrentSpeed(
1445  const DtUUID& uuid, double speed,
1446  const DtSimulationAddress& addr = DtSimSendToAll) const;
1447 
1451  virtual void setTarget(
1452  const DtUUID& uuid, const DtUUID& target,
1453  const DtSimulationAddress& addr = DtSimSendToAll) const;
1454 
1458  virtual void setSuperior(
1459  const DtUUID& uuid, const DtUUID& superior,
1460  const DtSimulationAddress& addr = DtSimSendToAll) const;
1461 
1463  virtual void setTaskedBySuperior(const DtUUID& uuid,
1464  const DtSimulationAddress& addr = DtSimSendToAll) const;
1465 
1469  virtual void setConcealed(const DtUUID& uuid,
1470  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
1471 
1473  virtual void setEmitter(const DtUUID& uuid,
1474  int emitterId, bool on,
1475  const DtSimulationAddress& addr = DtSimSendToAll) const;
1476 
1478  virtual void setIff(const DtUUID& uuid,
1479  bool mode1on, int mode1code,
1480  bool mode2on, int mode2code,
1481  bool mode3on, int mode3code,
1482  bool mode4on, int mode4code,
1483  DtIffAtcNavaidsAltParm4 altParm4,
1484  bool modeCon, bool useAltModeC,
1485  bool modeSon, bool emergency,
1486  bool flash, bool sti, bool modeSTcasI,
1487  int pin, bool mode5LevelSelection,
1488  unsigned int messageFormatsPresent, unsigned int nationalOrigin,
1489  unsigned int navigationSource, unsigned int figureOfMerit,
1490  const DtSimulationAddress& addr = DtSimSendToAll) const;
1491 
1493  virtual void restore(const DtUUID& uuid,
1494  const DtSimulationAddress& addr = DtSimSendToAll) const;
1495 
1499  virtual void setDestroyed(const DtUUID& uuid,
1500  const DtSimulationAddress& addr = DtSimSendToAll) const;
1501 
1505  virtual void setLifeformWeaponState(
1506  const DtUUID& uuid, DtWeaponState weapon,
1507  const DtSimulationAddress& addr) const;
1508 
1512  virtual void setLifeformPosture(
1513  const DtUUID& uuid, DtLifeformState posture,
1514  const DtSimulationAddress& addr) const;
1515 
1518  virtual void setAggregateFormation(
1519  const DtUUID& leader, const DtString& formationName,
1520  const DtSimulationAddress& addr = DtSimSendToAll) const;
1521 
1525  virtual void reorganizeAggregate(const DtUUID& leader,
1526  const DtSimulationAddress& addr = DtSimSendToAll) const;
1527 
1531  virtual void disaggregateEntity(const DtUUID& entity,
1532  const DtSimulationAddress& addr = DtSimSendToAll) const;
1533 
1537  virtual void aggregateEntity(const DtUUID& entity,
1538  const DtSimulationAddress& addr = DtSimSendToAll) const;
1539 
1542  virtual void sendSetDataMsg(
1543  const DtUUID& recipient, DtSetDataRequest* msg,
1544  const DtSimulationAddress& addr) const;
1545 
1547 
1548  //-----------------------------------------------------
1549 
1553 
1558  virtual void sendVrfObjectCreateMsg(
1559  const DtSimulationAddress& addr,
1560  unsigned int requestId,
1561  const DtString& name,
1562  const DtObjectType& type,
1563  const DtList& vertices,
1564  const DtString& label,
1565  const DtAppearance& appearance,
1566  DtForceType force,
1567  bool projection,
1568  bool closedFigure,
1569  DtReal heading,
1570  bool createSubObjects,
1571  bool clampToGroundFlag = true,
1572  const DtString& initialFormation = DtString::nullString(),
1573  DtAggregateState initialAggregateState = DtDisaggregated,
1574  const DtString& userData = DtString::nullString(),
1575  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1576  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1577  std::list<DtAdminContent*>* initialAdminContent = 0,
1578  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1579  const DtString& overlayParent = "") const;
1580 
1587  virtual void sendVrfObjectModifyMsg(
1588  const DtSimulationAddress& addr,
1589  const DtUUID& uuid,
1590  DtString* name = 0,
1591  DtList* vertices = 0,
1592  DtForceType* force = 0,
1593  DtReal* heading = 0,
1594  DtString* label = 0,
1595  DtAppearance* appearance = 0,
1596  DtString* overlayParent = 0,
1597  DtString* userData = 0) const;
1598 
1600 
1601  //------------------------------------------------------
1602 
1607 
1611  virtual void sendTaskMsg(
1612  const DtUUID& recipient, DtSimTask* task,
1613  const DtSimulationAddress& addr = DtSimSendToAll) const;
1614 
1617  virtual void moveAlongRoute(
1618  const DtUUID& entityName, const DtUUID& routeName,
1619  const DtSimulationAddress& addr = DtSimSendToAll) const;
1620 
1623  virtual void moveToWaypoint(
1624  const DtUUID& entityName, const DtUUID& waypoint,
1625  const DtSimulationAddress& addr = DtSimSendToAll) const;
1626 
1630  virtual void moveToLocation(
1631  const DtUUID& entityName, const DtVector& destinationLocation,
1632  const DtSimulationAddress& addr = DtSimSendToAll) const;
1633 
1636  virtual void patrolBetweenWaypoints(
1637  const DtUUID& uuid,
1638  const DtUUID& waypoint1, const DtUUID& waypoint2,
1639  const DtSimulationAddress& addr = DtSimSendToAll) const;
1640 
1643  virtual void patrolAlongRoute(
1644  const DtUUID& uuid, const DtUUID& route,
1645  const DtSimulationAddress& addr = DtSimSendToAll) const;
1646 
1652  virtual void followEntity(
1653  const DtUUID& uuid,
1654  const DtUUID& leader, const DtVector& offset,
1655  const DtSimulationAddress& addr = DtSimSendToAll) const;
1656 
1659  virtual void wait(
1660  const DtUUID& uuid,
1661  const DtSimulationAddress& addr = DtSimSendToAll) const;
1662 
1665  virtual void waitDuration(
1666  const DtUUID& uuid, DtTime duration,
1667  const DtSimulationAddress& addr = DtSimSendToAll) const;
1668 
1671  virtual void waitElapsed(
1672  const DtUUID& uuid, DtTime elapsed,
1673  const DtSimulationAddress& addr = DtSimSendToAll) const;
1674 
1676  virtual void skipTask(const DtUUID& uuid,
1677  const DtSimulationAddress& addr = DtSimSendToAll) const;
1678 
1680 
1681  //--------------------------------------------------------------
1682 
1686 
1689  virtual void restartPlan(const DtUUID& uuid,
1690  const DtSimulationAddress& addr = DtSimSendToAll) const;
1691 
1699  virtual void assignPlanByName(
1700  const DtUUID& uuid, const DtPlan& plan,
1701  const DtSimulationAddress& addr = DtSimSendToAll,
1702  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1703 
1705  virtual void assignMultiplePlanByName(
1706  const std::vector<DtUUID>& entities, const DtPlan& plan,
1707  const DtSimulationAddress& addr = DtSimSendToAll,
1708  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1709 
1714  virtual void requestPlan(
1715  const DtUUID& uuid,
1716  bool addStmtCallback = true,
1717  const DtSimulationAddress& addr = DtSimSendToAll) const;
1718 
1723  virtual void subscribePlan(const DtUUID& uuid,
1724  DtPlanCallbackFcn fn, void* usr,
1725  const DtSimulationAddress& addr = DtSimSendToAll);
1726 
1730  virtual void receivedPlan(const DtUUID& uuid, bool isGlobal,
1731  const std::vector<DtSimStatement*>& statements);
1732 
1738  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1739  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1740  const DtSimulationAddress& addr = DtSimSendToAll);
1741 
1742  virtual void requestMultiplePlan(const std::vector<DtUUID>& entities,
1743  const DtSimulationAddress& addr = DtSimSendToAll);
1744 
1748  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1749 
1752  virtual void unsubscribePlan(const DtUUID& uuid,
1753  DtPlanCallbackFcn fn, void* usr);
1754 
1757  virtual void unsubscribeAllPlans();
1758 
1763  virtual void addPlanStatementCallback(const DtUUID& uuid,
1764  DtPlanStatementCallbackFcn callback, void* usrData);
1765 
1768  virtual void removePlanStatementCallback(const DtUUID& uuid,
1769  DtPlanStatementCallbackFcn callback, void* usrData);
1770 
1773  virtual void removeAllPlanStatementCallbacks();
1774 
1780  virtual void receivedPlanStmt(const DtUUID& uuid, bool isGlobal,
1781  DtPlanStatus planStatus);
1782 
1787  virtual void addPlanCompleteCallback(const DtUUID& uuid,
1788  DtPlanCompleteCallbackFcn callback, void* usrData);
1789 
1792  virtual void removePlanCompleteCallback(const DtUUID& uuid,
1793  DtPlanCompleteCallbackFcn callback, void* usrData);
1794 
1797  virtual void removeAllPlanCompleteCallbacks();
1798 
1801  virtual void abandonPlan(const DtUUID& uuid,
1802  const DtSimulationAddress& addr = DtSimSendToAll) const;
1803 
1805 
1809 
1811  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1812 
1820  virtual void assignGlobalPlan(
1821  const DtString& name, const DtPlan& plan,
1822  const DtSimulationAddress& addr = DtSimSendToAll,
1823  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1824 
1826  virtual void deleteGlobalPlan(const DtUUID& name,
1827  const DtSimulationAddress& addr = DtSimSendToAll) const;
1828 
1830  virtual void launchGlobalPlan(const DtUUID&, const DtSimulationAddress& addr) const;
1831 
1833 
1834  //---------------------------------------------------------------
1835 
1838 
1843  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1844 
1850  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1851  const DtSimulationAddress& addr = DtSimSendToAll) const;
1852 
1858  virtual DtRadioMessageListener* radioMessageListener();
1859 
1861 
1862  //--------------------------------------------------------------
1863 
1868 
1875  virtual void embarkObject(const DtSimulationAddress& addr, const DtUUID& entity, const DtUUID& ontoEntity,
1876  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1877 
1878  virtual void disembarkObject(const DtSimulationAddress& addr, const DtUUID& entity);
1879  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtUUID& entity);
1880 
1883  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1884  const DtUUID& entityName);
1885 
1887  virtual void requestTasksAndSetsFor(const std::vector<DtUUID>& names);
1888 
1891  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1892  const DtUUID& entityName);
1893 
1895  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>& names);
1896 
1898  virtual void requestIndirectArtilleryInformation(const DtUUID&);
1899 
1904  virtual void requestResourceNames(const std::vector<DtUUID>& list,
1905  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1906 
1914  virtual void requestResources(const DtUUID& uuid = DtUUID::nullUUID(),
1915  const std::list<DtString>* list = 0,
1916  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1917 
1921  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
1922 
1923 
1925 
1926  //---------------------------------------------------------------
1927 
1931 
1934  virtual void addObjectConsoleMessageCallback(
1935  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1936  virtual void removeObjectConsoleMessageCallback(
1937  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1938 
1941  virtual void setObjectNotifyLevel(const DtUUID& objectName,
1942  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
1943 
1947  virtual void logObjectConsoleToFile(const DtUUID& objectName,
1948  const DtFilename filename);
1949 
1952  virtual void stopLoggingObjectConsoleToFile(const DtUUID& objectName);
1953 
1956  virtual void addBackendConsoleMessageCallback(
1957  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1958  virtual void removeBackendConsoleMessageCallback(
1959  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1960 
1963  virtual void processCommentInteraction(DtCommentInteraction* inter);
1964 
1966 
1967 //-----------------------------------------------------------
1971 
1974  virtual void requestJoystickInformation(const DtUUID&, DtJoystickControlResponseFcn, void*,
1975  const DtSimulationAddress& addr = DtSimSendToAll);
1976 
1979  virtual void takeControlOf(const DtUUID&, const std::set<DtString>& functionGroups,
1980  const DtSimulationAddress& addr = DtSimSendToAll);
1981 
1984  virtual void releaseControlOf(const DtUUID&, const std::set<DtString>& functionGroups =
1985  std::set<DtString>(), const DtSimulationAddress& addr = DtSimSendToAll);
1986 
1989  virtual void sendJoystickControl(const DtUUID&, const DtString& functionGroup,
1990  const DtString& function, double value, bool repeat = false, const DtSimulationAddress& addr = DtSimSendToAll);
1991 
1993 
1994  //-----------------------------------------------------------
1995 
2000  virtual DtDefaultVrfObjectMessageFactory* vrfObjectMsgFactory();
2001  virtual DtDefaultCondExprFactory* condExprFactory();
2002  virtual DtDefaultStatementFactory* stmtFactory();
2003  virtual DtDefaultSimReportFactory* reportFactory();
2004  virtual DtDefaultSimTaskFactory* taskFactory();
2005  virtual DtDefaultSetDataRequestFactory* setDataFactory();
2006  virtual DtDefaultSimCommandFactory* simCommandFactory();
2007  virtual DtDefaultAdminContentFactory* adminContentFactory();
2009 
2010 public:
2011 
2014 
2017  static void doPendingSaveWorkCb(void* usr);
2018 
2021  static void doPendingExportWorkCb(void* usr);
2022 
2025  static void doPendingLoadWorkCb(void* usr);
2026 
2029  static void savedScenarioCb(DtSimMessage* msg, void* usr);
2030 
2033  static void exportScenarioCb(DtSimMessage* msg, void* usr);
2034 
2037  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
2038 
2041  static void receiveFileCb(const DtFilename& filename, void* usr);
2042 
2044  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
2045 
2047  static void objectCreatedCb(DtSimMessage* msg, void* usr);
2048 
2050  static void receivedPlanCb(DtSimMessage* msg, void* usr);
2051 
2053  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
2054 
2057  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2058  const DtUUID& uuid, void* usr);
2059 
2062  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
2063  const DtUUID& uuid, void* usr);
2064 
2066  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
2067 
2070  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
2071 
2074  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
2075 
2077 
2078 
2079 protected:
2080 
2082  static void joystickControlResponse(DtSimMessage* msg, void* usr);
2083  virtual void processJoystickControlResponse(DtSimMessage* msg);
2084 
2088  virtual void onInit();
2089  virtual void resetStateData();
2090  virtual void emptyLists();
2091 
2093  virtual void sendAggregateAsMsg(
2094  const DtSimulationAddress& addr,
2095  unsigned int requestId,
2096  const DtObjectType& objectType,
2097  DtForceType force,
2098  const DtVector& position,
2099  DtReal heading,
2100  DtList* entityNames,
2101  DtAggregateState initialAggregateState) const;
2102 
2104  virtual DtVrfConfigurationFileComposer* createComposer();
2105 
2107  virtual DtUUIDNetworkManager* createUUIDNetworkManager() const;
2108 
2111  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
2112  const DtSimulationAddress& backendAddress,
2113  DtSpatialSubdivisionType spatialSubdivisionType ,
2114  DtServerRequestResponseCallbackFcn fcn, void* usr);
2115 
2122  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
2123 
2131  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
2132  const DtSimulationAddress& addr = DtSimSendToAll,
2133  int *retiStatus = 0, DtString* retsStmt = 0) const;
2134 
2137  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
2138  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
2141  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
2142 
2145  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid, void* usr);
2146  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id, const DtUUID& uuid);
2147 
2149  static void backendStatusUpdate(const DtSimulationAddress&, void*);
2150  virtual void processBackendStatusUpdate(const DtSimulationAddress&);
2151 
2152 protected:
2153  DtExerciseConn* myExConn;
2165  DtList myBeList;
2166 
2174 
2175  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
2177  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
2179  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
2181 
2182  DtHashlist myObjectCbs;
2183 
2184  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
2187 
2188  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2191 
2193  DtFilename mySaveName;
2195  DtFilename myOverlayFilename;
2199  DtFilename myOpdName;
2213 
2216 
2219 
2222 
2232 
2237 
2240 
2243  DtFilename myTempDirectory;
2244 
2248  DtInetAddr myInetAddr;
2249 
2254  mutable unsigned int myRequestIdCounter;
2255 
2258 
2261 
2264 
2267 
2270 
2272  DtFilename myExportFile;
2273 
2276 
2280 
2283 
2287 
2289  typedef std::map<DtString, std::pair<DtJoystickControlResponseFcn, void*> > JoystickResponseCallbackInfo;
2291 
2294 
2298  std::set<DtSimulationAddress> myBackendsWithObjects;
2299 
2301  std::set<DtSimulationAddress> myBackendsLoaded;
2302  std::vector<DtString> myLoadingSimulationModelSets;
2304 };
2305 
2314 {
2315 public:
2316  DtVrfOverlayObjectModify(int color, const DtUUID& attachTo,
2317  char* userData,
2318  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
2319  DtVrfRemoteController* control);
2320 
2321  virtual ~DtVrfOverlayObjectModify();
2322 
2323  virtual int color() const;
2324  virtual const DtUUID& attachTo() const;
2325  virtual void userData(char** data, int* userDataSize);
2326  virtual DtVrfRemoteController* remoteController();
2327  virtual DtOverlayCreatedCallbackFcn userCallback();
2328 
2329 protected:
2330  int myColor;
2333  char* myUserData;
2336 };
2337 
2341 {
2342 public:
2345 
2347  virtual DtVrfRemoteController* remoteController() const;
2348  virtual void setRemoteController(DtVrfRemoteController*);
2349 
2351  virtual const DtIfIndirectArtilleryData & data() const;
2352  virtual DtIfIndirectArtilleryData & data();
2353  virtual void setData(const DtIfIndirectArtilleryData & data);
2354 
2355 protected:
2358 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)