VR-Forces 4.2 Class Documentation
vrfController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999-2003 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: vrfController.h,v $ $Revision: 1.137 $ $State: Exp $
7 *******************************************************************************/
8 
11 
14 
15 #ifndef vrfController_H_
16 #define vrfController_H_
17 
18 #include <vrfExtProtocol/objType.h>
21 #include "vrfmsgs/ifSaveComplete.h"
23 #include "vrftasks/setDataReq.h"
24 #include "vrfutil/scenario.h"
25 #include "vrftasks/simTask.h"
26 #include "vrfplan/plan.h"
27 #include <vrfExtProtocol/objTypeEnums.h>
34 #include "vrfutil/dfltCeFactory.h"
40 
42 #include <vl/commentInter.h>
43 #include <vl/exerciseConn.h>
44 #include <vl/hostStructs.h>
45 #include <vlpi/disEnums.h>
46 #include <vlpi/appearance.h>
47 #include <vlutil/vlHashlist.h>
48 
50 #include <list>
51 
52 class DtAdminContent;
53 class DtBackendMap;
54 class DtAddressMap;
58 class DtIfLoadScenario;
59 class DtIfPlan;
63 class DtSettingsObject;
64 class DtReflectedEnvironmentProcessList;
66 
67 typedef void (*DtScenarioCallbackFcn)(void* usr);
69 
71 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, void* usr);
74 typedef bool (*DtPreserveMappingsFcn)(void* usr);
75 
76 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends,
77  void* usr);
78 
79 typedef void (*DtBackendSaveCallbackFcn)
80  (const DtSimulationAddress& addr, DtSaveResult result, void * usr);
81 
82 typedef void (*DtScenarioSavedCallbackFcn)
83  (DtSaveResult result, void* usr);
84 
85 typedef void (*DtVrfObjectCreatedCallbackFcn)
86  (const DtString& name, const DtEntityIdentifier& id, void* usr);
87 
88 typedef void (*DtOverlayCreatedCallbackFcn)
89  (const DtString& name, const DtEntityIdentifier& id, DtVrfOverlayObjectModify* usr);
90 
92  (const DtString& name, const DtEntityIdentifier& id,
93  void* usr);
94 
96  (const DtEntityIdentifier& id, int notifyLevel, const DtString& message,
97  void* usr);
98 
100  (const DtSimulationAddress& id, int notifyLevel, const DtString& message,
101  void* usr);
102 
107  (const DtIfServerRequestResponse& response, void* usr);
108 
110 {
111 public:
112  PlanCbInfo(const DtString& n, bool global, DtPlanCallbackFcn f, void* usr) :
113  name(n), isGlobal(global), fcn(f), data(usr) {}
115  bool operator==(const PlanCbInfo& orig) const
116  {
117  return (name == orig.name && fcn == orig.fcn && data == orig.data
118  && isGlobal == orig.isGlobal);
119  }
120 
122  bool isGlobal;
124  void* data;
125 };
126 
128 {
129 public:
130  StmtCbInfo(const DtString& n, bool global,
131  DtPlanStatementCallbackFcn f, void* usr) :
132  name(n), isGlobal(global) , fcn(f), data(usr) {}
134  bool operator==(const StmtCbInfo& orig) const
135  {
136  return (name == orig.name && fcn == orig.fcn && data == orig.data &&
137  isGlobal == orig.isGlobal);
138  }
139 
142  bool isGlobal;
143  void* data;
144 };
145 
147 {
148 public:
149  PlanCompleteCbInfo(const DtString& n, bool global,
150  DtPlanCompleteCallbackFcn f, void* usr) :
151  name(n), isGlobal(global), fcn(f), data(usr) {}
153  bool operator==(const PlanCompleteCbInfo& orig) const
154  {
155  return (name == orig.name && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal);
156  }
157 
160  bool isGlobal;
161  void* data;
162 };
163 
179 {
180 public:
182  AttachNone=0,
184  AttachEven
185  };
186 
187 public:
188 
194  DtVrfRemoteController(int receivePort = 9000);
195 
206  virtual void init(DtExerciseConn* exConn,
207  DtReflectedEnvironmentProcessList* rel = NULL);
208  virtual void init(DtVrfMessageInterface* msgIf,
209  DtReflectedEnvironmentProcessList* rel = NULL);
211 
212  virtual ~DtVrfRemoteController();
213 
215  virtual DtVrfMessageInterface* vrfMessageInterface() const;
216 
218  virtual const DtSimulationAddress& simulationAddress() const;
219  virtual int sessionId() const;
220 
223  virtual double simTime(const DtSimulationAddress* a = NULL) const;
224 
226  virtual const DtList& backends() const;
227 
230  virtual const DtList& pendingBackends() const;
231 
233  virtual DtVrfBackendListener* backendListener() const;
234 
236  virtual void addBackendDiscoveryCallback(
237  DtBackendCallbackFcn fcn, void* usr);
238  virtual void removeBackendDiscoveryCallback(
239  DtBackendCallbackFcn fcn, void* usr);
240 
242  virtual void addBackendRemovalCallback(
243  DtBackendCallbackFcn fcn, void* usr);
244  virtual void removeBackendRemovalCallback(
245  DtBackendCallbackFcn fcn, void* usr);
246 
250  virtual int backendsControlState() const;
251 
253  virtual int numberBackendsLoaded() const;
254 
257  virtual bool allBackendsReady() const;
258 
260  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
261 
264  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
265  const DtSimulationAddress& addr = DtSimSendToAll);
266 
277  virtual void requestBackEndSetting(std::string name,
279  const DtSimulationAddress& addr = DtSimSendToAll);
280 
283  virtual void setSpotReportsGloballyEnabled(bool enabled);
284 
287  virtual void setDRThresholds(double translation, double rotation);
288 
290  virtual void setCommModelSettings(bool useExternalComms);
291 
293  virtual void setRoadDrivingSettings(bool driveOnLeft);
294 
297  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
298 
303  virtual void setPublishAggregateFormationRoutes(bool yesNo);
304 
305  //-------------------------------------------------------
307  //-------------------------------------------------------
308 
331  virtual bool loadScenario(const DtFilename& filename,
332  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
333  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
334  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
335  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone);
336 
345  virtual bool loadScenario(const DtScenario& scenario,
346  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
347  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
348  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>());
349 
354  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
355  const std::map<std::string, std::string>& importData);
356 
359  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
360  const std::map<std::string, std::string>& importData);
361 
365  virtual DtString guiTerrainDatabaseFilename() const;
366  virtual void setGuiTerrainDatabaseFilename(DtString db);
367 
369  virtual const DtRwKeyValueList& scenarioData() const;
370  virtual void setScenarioData(const DtRwKeyValueList&);
371 
376  virtual bool newScenario(
377  const DtFilename& dbname,
378  const DtFilename& guidbname,
379  const DtFilename& opdname = DtFilename::nullFilename(),
380  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
381  const DtScenario* baseScenario = 0,
382  int startTimeOfDay = 12 * 3600);
383 
385  virtual bool newScenario(
386  const DtFilename& dbname,
387  const DtFilename& guidbname,
388  const std::vector<DtString>& simulationModelSetFiles,
389  const DtScenario* baseScenario = 0,
390  int startTimeOfDay = 12 * 3600);
391 
397  virtual bool sendLoadScenarioMessage(
398  const DtScenario& scenario,
399  const DtSimulationAddress& addr = DtSimSendToAll) const;
400 
403  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
404 
407  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
408  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
409 
412  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
413  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
414 
427  virtual bool saveScenario(const DtFilename& saveName,
428  DtPreserveMappingsFcn fcn = 0, void* userData = 0);
429 
432  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll) const;
433 
436  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
437  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
438 
443  virtual void addScenarioSavedCallback(
444  DtScenarioCallbackFcn fcn, void* usr);
445  virtual void removeScenarioSavedCallback(
446  DtScenarioCallbackFcn fcn, void* usr);
447 
450  virtual void addScenarioExportedCallback(
451  DtScenarioSavedCallbackFcn fcn, void* usr);
452  virtual void removeScenarioExportedCallback(
453  DtScenarioSavedCallbackFcn fcn, void* usr);
454 
458  virtual void addScenarioSavedCallback(
459  DtScenarioSavedCallbackFcn fcn, void* usr);
460  virtual void removeScenarioSavedCallback(
461  DtScenarioSavedCallbackFcn fcn, void* usr);
462 
464  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll);
465 
468  virtual void run(const DtSimulationAddress& addr = DtSimSendToAll) const;
469  virtual void pause(const DtSimulationAddress& addr = DtSimSendToAll) const;
470  virtual void rewind(const DtSimulationAddress& addr = DtSimSendToAll) const;
471  virtual void exit(const DtSimulationAddress& addr = DtSimSendToAll) const;
472  virtual void step(const DtSimulationAddress& addr = DtSimSendToAll) const;
474 
483  virtual void setOpdSaveName(const DtFilename& f);
484  virtual const DtFilename& opdSaveName() const;
486 
491  virtual void setMaxWaitSaveTime(DtTime t);
492  virtual DtTime maxWaitSaveTime() const;
494 
499  virtual void setMaxWaitLoadTime(DtTime t);
500  virtual DtTime maxWaitLoadTime() const;
502 
507  virtual void setOverlayFilename(const DtFilename& overlay);
508  virtual const DtFilename& overlayFilename() const;
510 
515  virtual void setHostilityFilename(const DtFilename& hostilty);
516  virtual const DtFilename& hostilityFilename() const;
518 
519  virtual void setScenarioExtrasFilename(const DtFilename& extras);
520  virtual const DtFilename& scenarioExtrasFilename() const;
521 
526  virtual void setSelectionGroupsFilename(const DtFilename& sel);
527  virtual const DtFilename& selectionGroupsFilename() const;
529 
534  virtual void setSymbolMapFilename(const DtFilename& overlay);
535  virtual const DtFilename& symbolMapFilename() const;
537 
542  virtual void setCreateMenuFilename(const DtFilename& overlay);
543  virtual const DtFilename& createMenuFilename() const;
545 
547  virtual void saveParameterDb(const DtFilename& filename);
548 
549  //-------------------------------------------------------
551  //-------------------------------------------------------
552 
554  virtual void deleteObject(const DtString& name,
555  const DtSimulationAddress& addr = DtSimSendToAll) const;
556 
558  virtual void deleteObject(const DtEntityIdentifier& id,
559  const DtSimulationAddress& addr = DtSimSendToAll) const;
560 
561  //-------------------------------------------------------
563  //-------------------------------------------------------
564 
566 
571  virtual void createWaypoint(
572  const DtVector& geocentricPosition,
573  const DtString& uniqueName = DtString::nullString(),
574  const DtString& label = DtString::nullString(),
575  const DtSimulationAddress& addr = DtSimSendToAll) const;
576 
580  virtual void createWaypoint(
581  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
582  const DtVector& geocentricPosition,
583  const DtString& uniqueName = DtString::nullString(),
584  const DtString& label = DtString::nullString(),
585  const DtSimulationAddress& addr = DtSimSendToAll);
586 
588  virtual void modifyWaypoint(
589  const DtEntityIdentifier& uniqueId,
590  DtString* uniqueName = 0,
591  DtString* label = 0,
592  DtVector* geocentricPosition = 0,
593  const DtSimulationAddress& addr = DtSimSendToAll) const;
594 
596 
601  virtual void createRoute(
602  const DtList& vertices,
603  const DtString& uniqueName = DtString::nullString(),
604  const DtString& label = DtString::nullString(),
605  const DtSimulationAddress& addr = DtSimSendToAll) const;
606 
610  virtual void createRoute(
611  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
612  const DtList& vertices,
613  const DtString& uniqueName = DtString::nullString(),
614  const DtString& label = DtString::nullString(),
615  const DtSimulationAddress& addr = DtSimSendToAll) ;
616 
618  virtual void modifyRoute(
619  const DtEntityIdentifier& uniqueId,
620  DtString* uniqueName = 0,
621  DtString* label = 0,
622  DtList* vertices = 0,
623  const DtSimulationAddress& addr = DtSimSendToAll) const;
624 
626 
631  virtual void createPhaseLine(
632  const DtVector& dbPoint1,
633  const DtVector& dbPoint2,
634  const DtString& uniqueName = DtString::nullString(),
635  const DtString& label = DtString::nullString(),
636  const DtSimulationAddress& addr = DtSimSendToAll) const;
637 
641  virtual void createPhaseLine(
642  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
643  const DtVector& dbPoint1,
644  const DtVector& dbPoint2,
645  const DtString& uniqueName = DtString::nullString(),
646  const DtString& label = DtString::nullString(),
647  const DtSimulationAddress& addr = DtSimSendToAll) ;
648 
650  virtual void modifyPhaseLine(
651  const DtEntityIdentifier& uniqueId,
652  DtString* uniqueName = 0,
653  DtString* label = 0,
654  DtVector* newDbPoint1 = 0,
655  DtVector* newDbPoint2 = 0,
656  const DtSimulationAddress& addr = DtSimSendToAll) const;
657 
659 
665  virtual void createControlArea(
666  const DtList& vertices,
667  const DtString& uniqueName = DtString::nullString(),
668  const DtString& label = DtString::nullString(),
669  const DtSimulationAddress& addr = DtSimSendToAll) const;
670 
674  virtual void createControlArea(
675  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
676  const DtList& vertices,
677  const DtString& uniqueName = DtString::nullString(),
678  const DtString& label = DtString::nullString(),
679  const DtSimulationAddress& addr = DtSimSendToAll) ;
680 
682  virtual void modifyControlArea(
683  const DtEntityIdentifier& uniqueId,
684  DtString* uniqueName = 0,
685  DtString* label = 0,
686  DtList* newVertices = 0,
687  const DtSimulationAddress& addr = DtSimSendToAll) const;
688 
690 
696  virtual void createObstacle(
697  const DtList& vertices,
698  const DtString& uniqueName = DtString::nullString(),
699  const DtString& label = DtString::nullString(),
700  const DtSimulationAddress& addr = DtSimSendToAll) const;
701 
705  virtual void createObstacle(
706  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
707  const DtList& vertices,
708  const DtString& uniqueName = DtString::nullString(),
709  const DtString& label = DtString::nullString(),
710  const DtSimulationAddress& addr = DtSimSendToAll) ;
711 
713  virtual void modifyObstacle(
714  const DtEntityIdentifier& uniqueId,
715  DtString* uniqueName = 0,
716  DtString* label = 0,
717  DtList* newVertices = 0,
718  const DtSimulationAddress& addr = DtSimSendToAll) const;
719 
721 
728  virtual void createDisaggregationArea(
729  const DtList& vertices,
730  const DtString& uniqueName = DtString::nullString(),
731  const DtString& label = DtString::nullString(),
732  const DtSimulationAddress& addr = DtSimSendToAll) const;
733 
738  virtual void createDisaggregationArea(
739  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
740  const DtList& vertices,
741  const DtString& uniqueName = DtString::nullString(),
742  const DtString& label = DtString::nullString(),
743  const DtSimulationAddress& addr = DtSimSendToAll) ;
744 
746  virtual void modifyDisaggregationArea(
747  const DtEntityIdentifier& uniqueId,
748  DtString* uniqueName = 0,
749  DtString* label = 0,
750  DtList* newVertices = 0,
751  const DtSimulationAddress& addr = DtSimSendToAll) const;
752 
766  virtual void createOverlayObject(
767  const DtEntityType& type,
768  const DtList& vertices,
769  const DtForceType& force,
770  const DtString& name,
771  const DtString& label,
772  int color,
773  const DtString& parentName,
774  bool projection,
775  bool closedFigure,
776  const DtAppearance& appearance = DtAppearance::nullAppearance(),
777  const DtString& attachTo = DtString(),
778  char* userData = 0,
779  int dataSize = 0,
781  const DtSimulationAddress& addr = DtSimSendToAll,
782  unsigned int rId = 0);
783 
784  virtual void createIndirectArtillery(
785  const DtVrfIndirectArtilleryObjectModify * params,
786  const DtSimulationAddress& addr);
787  //-------------------------------------------------------
789  //-------------------------------------------------------
790 
792  virtual void createObject(
793  const DtEntityType& type,
794  DtForceType force,
795  DtList* vertices,
796  const DtString& name,
797  const DtSimulationAddress& addr);
798 
800  virtual void createEntity(
801  const DtEntityType& type,
802  const DtVector& geocentricPosition,
803  DtForceType force,
804  DtReal heading,
805  const DtString& uniqueName = DtString::nullString(),
806  const DtString& label = DtString::nullString(),
807  const DtSimulationAddress& addr = DtSimSendToAll,
808  bool groundClamp = true) const;
809 
813  virtual void createEntity(
814  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
815  const DtEntityType& type,
816  const DtVector& geocentricPosition,
817  DtForceType force,
818  DtReal heading,
819  const DtString& uniqueName = DtString::nullString(),
820  const DtString& label = DtString::nullString(),
821  const DtSimulationAddress& addr = DtSimSendToAll,
822  bool groundClamp = true);
823 
824  virtual void createAggregate(
825  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
826  const DtEntityType& type,
827  const DtVector& geocentricPosition,
828  DtForceType force,
829  DtReal heading,
830  const DtString& uniqueName,
831  const DtString& label = DtString::nullString(),
832  const DtSimulationAddress& addr = DtSimSendToAll,
833  DtAggregateState initialAggregateState = DtDisaggregated);
834 
836  virtual void createAggregate(
837  const DtEntityType& type,
838  const DtVector& geocentricPosition,
839  DtForceType force,
840  DtReal heading,
841  DtList* entityNames = 0,
842  const DtSimulationAddress& addr = DtSimSendToAll,
843  DtAggregateState initialAggregateState = DtDisaggregated,
844  unsigned int requestId = 0) const;
845 
849  virtual void createAggregate(
850  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
851  const DtEntityType& type,
852  const DtVector& geocentricPosition,
853  DtForceType force,
854  DtReal heading,
855  DtList* entityNames = 0,
856  const DtSimulationAddress& addr = DtSimSendToAll,
857  DtAggregateState initialAggregateState = DtDisaggregated) ;
858 
861  virtual void addToOrganization(
862  const DtEntityIdentifier& objectId,
863  const DtEntityIdentifier& newSuperiorId,
864  const DtSimulationAddress& addr = DtSimSendToAll);
865 
869  virtual void addToForceLevelOrganization(
870  const DtEntityIdentifier& orjectId,
871  const DtSimulationAddress& addr = DtSimSendToAll);
872 
875  virtual void removeFromOrganization(
876  const DtEntityIdentifier& objectId,
877  const DtSimulationAddress& addr = DtSimSendToAll);
878 
884 
886  virtual void setLabel(
887  const DtEntityIdentifier& id, const DtString& label,
888  const DtSimulationAddress& addr = DtSimSendToAll) const;
889 
891  virtual void setOverlayParent(
892  const DtEntityIdentifier& id, const DtString& label,
893  const DtSimulationAddress& addr = DtSimSendToAll) const;
894 
896  virtual void setAltitude(
897  const DtString& name, double altitude,
898  const DtSimulationAddress& addr = DtSimSendToAll) const;
899 
901  virtual void setLocation(
902  const DtString& name, DtVector coord,
903  const DtSimulationAddress& addr = DtSimSendToAll) const;
904 
906  virtual void setAppearance(
907  const DtString& name, int appearance,
908  const DtSimulationAddress& addr = DtSimSendToAll) const;
909 
911  virtual void setCapabilities(
912  const DtString& name, int capabilities,
913  const DtSimulationAddress& addr = DtSimSendToAll) const;
914 
916  virtual void setHeading(
917  const DtString& name, double degrees,
918  const DtSimulationAddress& addr = DtSimSendToAll) const;
919 
921  virtual void setForce(
922  const DtString& name, DtForceType force,
923  const DtSimulationAddress& addr = DtSimSendToAll) const;
924 
928  virtual void requestSpotReports(const DtString& name, bool onOff,
929  const DtSimulationAddress& addr = DtSimSendToAll) const;
930 
934  virtual void setResource(const DtString& name,
935  const char* resourceType, double value,
936  const DtSimulationAddress& addr = DtSimSendToAll) const;
937 
941  virtual void setRulesOfEngagement(
942  const DtString& name, const char* rulesType,
943  const DtSimulationAddress& addr = DtSimSendToAll) const;
944 
946  virtual void setSectorOfResponsibility(
947  const DtString& name, double center, double size,
948  const DtSimulationAddress& addr = DtSimSendToAll) const;
949 
951  virtual void setSpeed(
952  const DtString& name, double speed,
953  const DtSimulationAddress& addr = DtSimSendToAll) const;
954 
956  virtual void setTarget(
957  const DtString& name, const DtString& target,
958  const DtSimulationAddress& addr = DtSimSendToAll) const;
959 
961  virtual void setTaskedBySuperior(const DtString& name,
962  const DtSimulationAddress& addr = DtSimSendToAll) const;
963 
965  virtual void setConcealed(const DtString& name,
966  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
967 
969  virtual void setEmitter(const DtString& name,
970  int emitterId, bool on,
971  const DtSimulationAddress& addr = DtSimSendToAll) const;
972 
974  virtual void setIff(const DtString& name,
975  bool mode1on, int mode1code,
976  bool mode2on, int mode2code,
977  bool mode3on, int mode3code,
978  bool mode4on, int mode4code,
979  DtIffAtcNavaidsAltParm4 altParm4,
980  bool mode5on, bool useAltMode5,
981  bool modeSon, bool emergency,
982  bool flash, bool sti, bool modeSTcasI,
983  const DtSimulationAddress& addr = DtSimSendToAll) const;
984 
986  virtual void restore(const DtString& name,
987  const DtSimulationAddress& addr = DtSimSendToAll) const;
988 
991  virtual void setDestroyed(const DtString& name,
992  const DtSimulationAddress& addr = DtSimSendToAll) const;
993 
997  virtual void setLifeformWeaponState(
998  const DtString& name, DtWeaponState weapon,
999  const DtSimulationAddress& addr) const;
1000 
1004  virtual void setLifeformPosture(
1005  const DtString& name, DtLifeformState posture,
1006  const DtSimulationAddress& addr) const;
1007 
1010  virtual void setAggregateFormation(
1011  const DtString& leader, const DtString& formationName,
1012  const DtSimulationAddress& addr = DtSimSendToAll) const;
1013 
1017  virtual void reorganizeAggregate(const DtString& leader,
1018  const DtSimulationAddress& addr = DtSimSendToAll) const;
1019 
1023  virtual void disaggregateEntity(const DtString& entity,
1024  const DtSimulationAddress& addr = DtSimSendToAll) const;
1025 
1029  virtual void aggregateEntity(const DtString& entity,
1030  const DtSimulationAddress& addr = DtSimSendToAll) const;
1031 
1034  virtual void sendSetDataMsg(
1035  const DtString& recipient, DtSetDataRequest* msg,
1036  const DtSimulationAddress& addr) const;
1037 
1039 
1040 
1041  //-------------------------------------------------------
1043  //-------------------------------------------------------
1044 
1048  virtual void sendVrfObjectCreateMsg(
1049  const DtSimulationAddress& addr,
1050  unsigned int requestId,
1051  const DtString& name,
1052  const DtObjectType& type,
1053  const DtList& vertices,
1054  const DtString& label,
1055  const DtAppearance& appearance,
1056  DtForceType force,
1057  bool projection,
1058  bool closedFigure,
1059  DtReal heading,
1060  bool createSubObjects,
1061  bool clampToGroundFlag = true,
1062  const DtString& initialFormation = DtString::nullString(),
1063  DtAggregateState initialAggregateState = DtDisaggregated,
1064  const DtString& userData = DtString::nullString(),
1065  std::list<DtAdminContent*>* initialAdminContent = 0,
1066  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0) const;
1067 
1074  virtual void sendVrfObjectModifyMsg(
1075  const DtSimulationAddress& addr,
1076  const DtEntityIdentifier& id,
1077  DtString* name = 0,
1078  DtList* vertices = 0,
1079  DtForceType* force = 0,
1080  DtReal* heading = 0,
1081  DtString* label = 0,
1082  DtAppearance* appearance = 0,
1083  DtString* overlayParent = 0,
1084  DtString* userData = 0) const;
1085 
1089  virtual void sendVrfOverlayObjectModifyMsg(
1090  const DtSimulationAddress& addr,
1091  const DtEntityIdentifier& id,
1092  int color,
1093  DtString parentName,
1094  DtString attachTo,
1095  bool keepExistingAttachment = true,
1096  char* userData = 0,
1097  int len = 0) const;
1098 
1099  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1100  const DtSimulationAddress& addr,
1101  const DtEntityIdentifier& id,
1102  const DtVrfIndirectArtilleryObjectModify * mod) const;
1103 
1104  //-------------------------------------------------------
1106  //-------------------------------------------------------
1107 
1110  virtual void moveAlongRoute(
1111  const DtString& entityName, const DtString& routeName,
1112  const DtSimulationAddress& addr = DtSimSendToAll) const;
1113 
1116  virtual void moveToWaypoint(
1117  const DtString& entityName, const DtString& waypoint,
1118  const DtSimulationAddress& addr = DtSimSendToAll) const;
1119 
1123  virtual void moveToLocation(
1124  const DtString& entityName, const DtVector& destinationLocation,
1125  const DtSimulationAddress& addr = DtSimSendToAll) const;
1126 
1129  virtual void patrolBetweenWaypoints(
1130  const DtString& name,
1131  const DtString& waypoint1, const DtString& waypoint2,
1132  const DtSimulationAddress& addr = DtSimSendToAll) const;
1133 
1136  virtual void patrolAlongRoute(
1137  const DtString& name, const DtString& route,
1138  const DtSimulationAddress& addr = DtSimSendToAll) const;
1139 
1145  virtual void followEntity(
1146  const DtString& name,
1147  const DtString& leader, const DtVector& offset,
1148  const DtSimulationAddress& addr = DtSimSendToAll) const;
1149 
1152  virtual void wait(
1153  const DtString& name,
1154  const DtSimulationAddress& addr = DtSimSendToAll) const;
1155 
1158  virtual void waitDuration(
1159  const DtString& name, DtTime duration,
1160  const DtSimulationAddress& addr = DtSimSendToAll) const;
1161 
1164  virtual void waitElapsed(
1165  const DtString& name, DtTime elapsed,
1166  const DtSimulationAddress& addr = DtSimSendToAll) const;
1167 
1171  virtual void sendTaskMsg(
1172  const DtString& recipient, DtSimTask* task,
1173  const DtSimulationAddress& addr = DtSimSendToAll) const;
1174 
1177  virtual void abandonPlan(const DtString& name,
1178  const DtSimulationAddress& addr = DtSimSendToAll) const;
1179 
1181  virtual void skipTask(const DtString& name,
1182  const DtSimulationAddress& addr = DtSimSendToAll) const;
1183 
1186  virtual void restartPlan(const DtString& name,
1187  const DtSimulationAddress& addr = DtSimSendToAll) const;
1188 
1196  virtual void assignPlanByName(
1197  const DtString& name, const DtPlan& plan,
1198  const DtSimulationAddress& addr = DtSimSendToAll,
1199  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1200 
1202  virtual void assignMultiplePlanByName(
1203  const std::vector<DtString>& entities, const DtPlan& plan,
1204  const DtSimulationAddress& addr = DtSimSendToAll,
1205  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1206 
1211  virtual void requestPlan(
1212  const DtString& name,
1213  bool addStmtCallback = true,
1214  const DtSimulationAddress& addr = DtSimSendToAll) const;
1215 
1220  virtual void subscribePlan(const DtString& name,
1221  DtPlanCallbackFcn fn, void* usr,
1222  const DtSimulationAddress& addr = DtSimSendToAll);
1223 
1229  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1230  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1231  const DtSimulationAddress& addr = DtSimSendToAll);
1232 
1233  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1234  const DtSimulationAddress& addr = DtSimSendToAll);
1235 
1238  virtual void unsubscribePlan(const DtString& name,
1239  DtPlanCallbackFcn fn, void* usr);
1240 
1243  virtual void unsubscribeAllPlans();
1244 
1249  virtual void addPlanStatementCallback(const DtString& name,
1250  DtPlanStatementCallbackFcn callback, void* usrData);
1251 
1254  virtual void removePlanStatementCallback(const DtString& name,
1255  DtPlanStatementCallbackFcn callback, void* usrData);
1256 
1259  virtual void removeAllPlanStatementCallbacks();
1260 
1265  virtual void addPlanCompleteCallback(const DtString& name,
1266  DtPlanCompleteCallbackFcn callback, void* usrData);
1267 
1270  virtual void removePlanCompleteCallback(const DtString& name,
1271  DtPlanCompleteCallbackFcn callback, void* usrData);
1272 
1275  virtual void removeAllPlanCompleteCallbacks();
1276 
1278 
1280  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1281 
1289  virtual void assignGlobalPlan(
1290  const DtString& name, const DtPlan& plan,
1291  const DtSimulationAddress& addr = DtSimSendToAll,
1292  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1293 
1295  virtual void deleteGlobalPlan(const DtString& name,
1296  const DtSimulationAddress& addr = DtSimSendToAll) const;
1297 
1301  virtual void requestGlobalPlan(
1302  const DtString& name,
1303  const DtSimulationAddress& addr = DtSimSendToAll) const;
1304 
1309  virtual void subscribeGlobalPlan(const DtString& name,
1310  DtPlanCallbackFcn fn, void* usr,
1311  const DtSimulationAddress& addr = DtSimSendToAll);
1312 
1315  virtual void unsubscribeGlobalPlan(const DtString& name,
1316  DtPlanCallbackFcn fn, void* usr);
1317 
1321  virtual void addGlobalPlanStatementCallback(const DtString& name,
1322  DtPlanStatementCallbackFcn callback, void* usrData);
1323 
1325  virtual void removeGlobalPlanStatementCallback(const DtString& name,
1326  DtPlanStatementCallbackFcn callback, void* usrData);
1327 
1331  virtual void addGlobalPlanCompleteCallback(const DtString& name,
1332  DtPlanCompleteCallbackFcn callback, void* usrData);
1333 
1335  virtual void removeGlobalPlanCompleteCallback(const DtString& name,
1336  DtPlanCompleteCallbackFcn callback, void* usrData);
1337 
1343  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1344 
1350  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1351  const DtSimulationAddress& addr = DtSimSendToAll) const;
1352 
1353  //-------------------------------------------------------
1354 
1358  virtual void loadedScenario(
1359  const DtSimulationAddress& addr, unsigned int requestId);
1360 
1364  virtual void processSaveMessages();
1365 
1369  virtual DtTime scenarioSimTimeForSave();
1370 
1374  virtual void setTerrainDatabaseFilename(DtScenario* scen);
1375 
1379  virtual void setParameterDatabaseFilename(DtScenario* scen);
1380 
1384  virtual void setPhysicalWorldFilename(DtScenario* scen);
1385 
1389  virtual void setTimeMultiplier(DtScenario* scen);
1390 
1394  virtual void setAutoReorganize(DtScenario* scen);
1395 
1399  virtual void setRandomNumberSeed(DtScenario* scen);
1400 
1404  virtual void setFrameRateMode(DtScenario* scen);
1405 
1409  virtual void setFrameDeltaTime(DtScenario* scen);
1410 
1414  virtual void setExerciseStartTime(DtScenario* scen);
1415 
1421  virtual bool save();
1422 
1427  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
1428 
1432  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
1433 
1435  virtual void completeExport();
1436 
1440  virtual void savedScenario(const DtSimulationAddress& addr,
1441  DtSaveResult result, unsigned int requestId);
1442 
1445  virtual void doPendingSaveWork();
1446 
1449  virtual void doPendingExportWork();
1450 
1453  virtual void doPendingLoadWork();
1454 
1457  virtual void objectCreated(unsigned int requestId,
1458  const DtString& name, const DtEntityIdentifier& id);
1459 
1461  virtual unsigned int generateRequestId() const;
1462 
1465  virtual void receivedPlan(const DtString& name, bool isGlobal,
1466  const DtList& statements);
1467 
1473  virtual void receivedPlanStmt(const DtString& name, bool isGlobal,
1474  DtPlanStatus planStatus);
1475 
1482  virtual void embarkObject(const DtSimulationAddress& addr, const DtString& entity, const DtString& ontoEntity,
1483  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1484 
1485  virtual void disembarkObject(const DtSimulationAddress& addr, const DtString& entity);
1486  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtString& entity);
1487 
1490  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1491  const DtString& entityName);
1492 
1494  virtual void requestTasksAndSetsFor(const std::vector<DtString>& names);
1495 
1498  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1499  const DtString& entityName);
1500 
1502  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& names);
1503 
1504  //-------------------------------------------------------
1506  //-------------------------------------------------------
1507 
1511  virtual DtDefaultRadioMessageFactory* radioMsgFactory();
1512  virtual DtDefaultCondExprFactory* condExprFactory();
1513  virtual DtDefaultStatementFactory* stmtFactory();
1514  virtual DtDefaultSimReportFactory* reportFactory();
1515  virtual DtDefaultSimTaskFactory* taskFactory();
1516  virtual DtDefaultSetDataRequestFactory* setDataFactory();
1517  virtual DtDefaultSimCommandFactory* simCommandFactory();
1518  virtual DtDefaultAdminContentFactory* adminContentFactory();
1519 
1520  //-------------------------------------------------------
1522  //-------------------------------------------------------
1523 
1525  virtual void setRotationThreshold(DtReal thresh);
1526 
1528  virtual void setTranslationThreshold(DtReal thresh);
1529 
1534  virtual void setAggDimensionThreshold(DtReal thresh);
1535 
1537  virtual void setHostInetAddr(DtInetAddr);
1538  virtual DtInetAddr hostInetAddr() const;
1539 
1542  virtual void querySpatialSubdivisionConfiguration(
1543  const DtSimulationAddress& backendAddress,
1544  DtSpatialSubdivisionType spatialSubdivisionType,
1545  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1546 
1548  virtual void setSpatialSubdivsionConfiguration(
1549  const DtSimulationAddress& backendAddress,
1550  DtSpatialSubdivisionType spatialSubdivisionType,
1551  const int spatialSubdivisionXResolution,
1552  const int spatialSubdivisionYResolution,
1553  const int spatialSubdivisionZResolution);
1554 
1556  virtual void requestIndirectArtilleryInformation(const DtString&);
1557 
1558  //-------------------------------------------------------
1560  //-------------------------------------------------------
1561 
1569  virtual void requestResources(const DtString& name = DtString::nullString(),
1570  const std::list<DtString>* list = 0,
1571  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1572 
1573  //-------------------------------------------------------
1575  //-------------------------------------------------------
1579  virtual void addObjectConsoleMessageCallback(
1580  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1581 
1582  virtual void removeObjectConsoleMessageCallback(
1583  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1585 
1588  virtual void setObjectNotifyLevel(const DtString& objectName,
1589  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
1590 
1594  virtual void logObjectConsoleToFile(const DtString& objectName,
1595  const DtFilename filename);
1596 
1599  virtual void stopLoggingObjectConsoleToFile(const DtString& objectName);
1600 
1601  //-------------------------------------------------------
1603  //-------------------------------------------------------
1607  virtual void addBackendConsoleMessageCallback(
1608  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1609 
1610  virtual void removeBackendConsoleMessageCallback(
1611  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1613 
1618  virtual void requestResourceNames(const std::list<DtString>& list,
1619  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1620 
1626  virtual DtRadioMessageListener* radioMessageListener();
1627 
1628  //-------------------------------------------------------
1630  //-------------------------------------------------------
1631 
1633  DtRemoteEnvironmentController* remoteEnvironmentController();
1634 
1640  virtual void initializeGlobalEnvironment(
1641  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
1642 
1645  DtRemoteEnvironmentController* createRemoteEnvironmentController();
1646 
1647 public:
1648 
1651  static void doPendingSaveWorkCb(void* usr);
1652 
1655  static void doPendingExportWorkCb(void* usr);
1656 
1659  static void doPendingLoadWorkCb(void* usr);
1660 
1663  static void savedScenarioCb(DtSimMessage* msg, void* usr);
1664 
1667  static void exportScenarioCb(DtSimMessage* msg, void* usr);
1668 
1671  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
1672 
1675  static void receiveFileCb(const DtFilename& filename, void* usr);
1676 
1678  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
1679 
1681  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1682 
1684  static void objectCreatedCb(DtSimMessage* msg, void* usr);
1685 
1687  static void receivedPlanCb(DtSimMessage* msg, void* usr);
1688 
1690  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
1691 
1694  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1695  void* usr);
1696  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1697  DtVrfOverlayObjectModify* modifications);
1698 
1701  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1702  void* usr);
1703  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1704  DtVrfIndirectArtilleryObjectModify* modifications);
1705 
1707  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
1708 
1710  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
1711 
1714  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
1715 
1718  virtual void processSpatialSubdivisionConfigurationCb(
1719  const DtIfServerRequestResponse& rsp);
1720 
1723  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
1724 
1727  virtual void processCommentInteraction(DtCommentInteraction* inter);
1728 
1729 protected:
1730 
1734  virtual void onInit();
1735  virtual void resetStateData();
1736  virtual void emptyLists();
1737 
1739  virtual void sendAggregateAsMsg(
1740  const DtSimulationAddress& addr,
1741  unsigned int requestId,
1742  const DtObjectType& objectType,
1743  DtForceType force,
1744  const DtVector& position,
1745  DtReal heading,
1746  DtList* entityNames,
1747  DtAggregateState initialAggregateState) const;
1748 
1750  virtual DtVrfConfigurationFileComposer* createComposer();
1751 
1754  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
1755  const DtSimulationAddress& backendAddress,
1756  DtSpatialSubdivisionType spatialSubdivisionType ,
1757  DtServerRequestResponseCallbackFcn fcn, void* usr);
1758 
1765  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
1766 
1774  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
1775  const DtSimulationAddress& addr = DtSimSendToAll,
1776  int *retiStatus = 0, DtString* retsStmt = 0) const;
1777 
1780  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
1781  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
1784  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
1785 
1788  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, void* usr);
1789  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id);
1790 
1791 public:
1793 
1797  virtual bool newScenario(
1798  const DtFilename& dbname,
1799  const DtFilename& guidbname,
1800  const DtFilename& opdname,
1801  const DtFilename& physicalWorldName,
1802  const std::vector<DtString>& simulationModelSetFiles,
1803  const DtScenario* baseScenario = 0,
1804  int startTimeOfDay = 12 * 3600);
1805 
1806 protected:
1807  DtExerciseConn* myExConn;
1808  DtReflectedEnvironmentProcessList* myReflectedEnvironmentProcessList;
1819  DtList myBeList;
1820 
1827 
1828  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
1830  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
1832  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
1834 
1835  DtHashlist myObjectCbs;
1836 
1837  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
1840 
1841  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
1844 
1846  DtFilename mySaveName;
1847  DtFilename myOverlayFilename;
1851  DtFilename myOpdName;
1865 
1868 
1878 
1883 
1886 
1889  DtFilename myTempDirectory;
1890 
1894  DtInetAddr myInetAddr;
1895 
1900  mutable unsigned int myRequestIdCounter;
1901 
1904 
1907 
1910 
1913 
1916 
1918  DtFilename myExportFile;
1919 
1922 
1926 };
1927 
1936 {
1937 public:
1938  DtVrfOverlayObjectModify(int color,
1939  const DtString& parentName, const DtString& attachTo,
1940  char* userData,
1941  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
1942  DtVrfRemoteController* control);
1943 
1944  virtual ~DtVrfOverlayObjectModify();
1945 
1946  virtual int color() const;
1947  virtual const DtString& parentName() const;
1948  virtual const DtString& attachTo() const;
1949  virtual void userData(char** data, int* userDataSize);
1950  virtual DtVrfRemoteController* remoteController();
1951  virtual DtOverlayCreatedCallbackFcn userCallback();
1952 
1953 protected:
1954  int myColor;
1958  char* myUserData;
1961 };
1962 
1966 {
1967 public:
1970 
1972  virtual DtVrfRemoteController* remoteController() const;
1973  virtual void setRemoteController(DtVrfRemoteController*);
1974 
1976  virtual const DtIfIndirectArtilleryData & data() const;
1977  virtual DtIfIndirectArtilleryData & data();
1978  virtual void setData(const DtIfIndirectArtilleryData & data);
1979 
1980 protected:
1983 };
1984 
1985 #endif

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)