VR-Forces 4.1 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"
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;
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 
176 {
177 public:
179  AttachNone=0,
181  AttachEven
182  };
183 
184 public:
185 
191  DtVrfRemoteController(int receivePort = 9000);
192 
203  virtual void init(DtExerciseConn* exConn,
205  virtual void init(DtVrfMessageInterface* msgIf,
208 
209  virtual ~DtVrfRemoteController();
210 
212  virtual DtVrfMessageInterface* vrfMessageInterface() const;
213 
215  virtual const DtSimulationAddress& simulationAddress() const;
216  virtual int sessionId() const;
217 
220  virtual double simTime(const DtSimulationAddress* a = NULL) const;
221 
223  virtual const DtList& backends() const;
224 
227  virtual const DtList& pendingBackends() const;
228 
230  virtual DtVrfBackendListener* backendListener() const;
231 
233  virtual void addBackendDiscoveryCallback(
234  DtBackendCallbackFcn fcn, void* usr);
235  virtual void removeBackendDiscoveryCallback(
236  DtBackendCallbackFcn fcn, void* usr);
237 
239  virtual void addBackendRemovalCallback(
240  DtBackendCallbackFcn fcn, void* usr);
241  virtual void removeBackendRemovalCallback(
242  DtBackendCallbackFcn fcn, void* usr);
243 
247  virtual int backendsControlState() const;
248 
250  virtual int numberBackendsLoaded() const;
251 
254  virtual bool allBackendsReady() const;
255 
257  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
258 
261  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
262  const DtSimulationAddress& addr = DtSimSendToAll);
263 
274  virtual void requestBackEndSetting(std::string name,
276  const DtSimulationAddress& addr = DtSimSendToAll);
277 
280  virtual void setSpotReportsGloballyEnabled(bool enabled);
281 
284  virtual void setDRThresholds(double translation, double rotation);
285 
287  virtual void setCommModelSettings(bool useExternalComms);
288 
290  virtual void setRoadDrivingSettings(bool driveOnLeft);
291 
294  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
295 
300  virtual void setPublishAggregateFormationRoutes(bool yesNo);
301 
302  //-------------------------------------------------------
304  //-------------------------------------------------------
305 
328  virtual bool loadScenario(const DtFilename& filename,
329  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
330  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
331  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
332  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone);
333 
342  virtual bool loadScenario(const DtScenario& scenario,
343  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
344  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
345  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>());
346 
351  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
352  const std::map<std::string, std::string>& importData);
353 
356  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
357  const std::map<std::string, std::string>& importData);
358 
362  virtual DtString guiTerrainDatabaseFilename() const;
363  virtual void setGuiTerrainDatabaseFilename(DtString db);
364 
366  virtual const DtRwKeyValueList& scenarioData() const;
367  virtual void setScenarioData(const DtRwKeyValueList&);
368 
373  virtual bool newScenario(
374  const DtFilename& dbname,
375  const DtFilename& guidbname,
376  const DtFilename& opdname = DtFilename::nullFilename(),
377  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
378  const DtScenario* baseScenario = 0,
379  int startTimeOfDay = 12 * 3600);
380 
382  virtual bool newScenario(
383  const DtFilename& dbname,
384  const DtFilename& guidbname,
385  const std::vector<DtString>& simulationModelSetFiles,
386  const DtScenario* baseScenario = 0,
387  int startTimeOfDay = 12 * 3600);
388 
394  virtual bool sendLoadScenarioMessage(
395  const DtScenario& scenario,
396  const DtSimulationAddress& addr = DtSimSendToAll) const;
397 
400  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
401 
404  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
405  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
406 
409  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
410  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
411 
424  virtual bool saveScenario(const DtFilename& saveName,
425  DtPreserveMappingsFcn fcn = 0, void* userData = 0);
426 
429  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll) const;
430 
433  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
434  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
435 
440  virtual void addScenarioSavedCallback(
441  DtScenarioCallbackFcn fcn, void* usr);
442  virtual void removeScenarioSavedCallback(
443  DtScenarioCallbackFcn fcn, void* usr);
444 
447  virtual void addScenarioExportedCallback(
448  DtScenarioSavedCallbackFcn fcn, void* usr);
449  virtual void removeScenarioExportedCallback(
450  DtScenarioSavedCallbackFcn fcn, void* usr);
451 
455  virtual void addScenarioSavedCallback(
456  DtScenarioSavedCallbackFcn fcn, void* usr);
457  virtual void removeScenarioSavedCallback(
458  DtScenarioSavedCallbackFcn fcn, void* usr);
459 
461  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll);
462 
465  virtual void run(const DtSimulationAddress& addr = DtSimSendToAll) const;
466  virtual void pause(const DtSimulationAddress& addr = DtSimSendToAll) const;
467  virtual void rewind(const DtSimulationAddress& addr = DtSimSendToAll) const;
468  virtual void exit(const DtSimulationAddress& addr = DtSimSendToAll) const;
469  virtual void step(const DtSimulationAddress& addr = DtSimSendToAll) const;
471 
480  virtual void setOpdSaveName(const DtFilename& f);
481  virtual const DtFilename& opdSaveName() const;
483 
488  virtual void setMaxWaitSaveTime(DtTime t);
489  virtual DtTime maxWaitSaveTime() const;
491 
496  virtual void setMaxWaitLoadTime(DtTime t);
497  virtual DtTime maxWaitLoadTime() const;
499 
504  virtual void setOverlayFilename(const DtFilename& overlay);
505  virtual const DtFilename& overlayFilename() const;
507 
512  virtual void setHostilityFilename(const DtFilename& hostilty);
513  virtual const DtFilename& hostilityFilename() const;
515 
516  virtual void setScenarioExtrasFilename(const DtFilename& extras);
517  virtual const DtFilename& scenarioExtrasFilename() const;
518 
523  virtual void setSelectionGroupsFilename(const DtFilename& sel);
524  virtual const DtFilename& selectionGroupsFilename() const;
526 
531  virtual void setSymbolMapFilename(const DtFilename& overlay);
532  virtual const DtFilename& symbolMapFilename() const;
534 
539  virtual void setCreateMenuFilename(const DtFilename& overlay);
540  virtual const DtFilename& createMenuFilename() const;
542 
544  virtual void saveParameterDb(const DtFilename& filename);
545 
546  //-------------------------------------------------------
548  //-------------------------------------------------------
549 
551  virtual void deleteObject(const DtString& name,
552  const DtSimulationAddress& addr = DtSimSendToAll) const;
553 
555  virtual void deleteObject(const DtEntityIdentifier& id,
556  const DtSimulationAddress& addr = DtSimSendToAll) const;
557 
558  //-------------------------------------------------------
560  //-------------------------------------------------------
561 
563 
568  virtual void createWaypoint(
569  const DtVector& geocentricPosition,
570  const DtString& uniqueName = DtString::nullString(),
571  const DtString& label = DtString::nullString(),
572  const DtSimulationAddress& addr = DtSimSendToAll) const;
573 
577  virtual void createWaypoint(
578  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
579  const DtVector& geocentricPosition,
580  const DtString& uniqueName = DtString::nullString(),
581  const DtString& label = DtString::nullString(),
582  const DtSimulationAddress& addr = DtSimSendToAll);
583 
585  virtual void modifyWaypoint(
586  const DtEntityIdentifier& uniqueId,
587  DtString* uniqueName = 0,
588  DtString* label = 0,
589  DtVector* geocentricPosition = 0,
590  const DtSimulationAddress& addr = DtSimSendToAll) const;
591 
593 
598  virtual void createRoute(
599  const DtList& vertices,
600  const DtString& uniqueName = DtString::nullString(),
601  const DtString& label = DtString::nullString(),
602  const DtSimulationAddress& addr = DtSimSendToAll) const;
603 
607  virtual void createRoute(
608  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
609  const DtList& vertices,
610  const DtString& uniqueName = DtString::nullString(),
611  const DtString& label = DtString::nullString(),
612  const DtSimulationAddress& addr = DtSimSendToAll) ;
613 
615  virtual void modifyRoute(
616  const DtEntityIdentifier& uniqueId,
617  DtString* uniqueName = 0,
618  DtString* label = 0,
619  DtList* vertices = 0,
620  const DtSimulationAddress& addr = DtSimSendToAll) const;
621 
623 
628  virtual void createPhaseLine(
629  const DtVector& dbPoint1,
630  const DtVector& dbPoint2,
631  const DtString& uniqueName = DtString::nullString(),
632  const DtString& label = DtString::nullString(),
633  const DtSimulationAddress& addr = DtSimSendToAll) const;
634 
638  virtual void createPhaseLine(
639  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
640  const DtVector& dbPoint1,
641  const DtVector& dbPoint2,
642  const DtString& uniqueName = DtString::nullString(),
643  const DtString& label = DtString::nullString(),
644  const DtSimulationAddress& addr = DtSimSendToAll) ;
645 
647  virtual void modifyPhaseLine(
648  const DtEntityIdentifier& uniqueId,
649  DtString* uniqueName = 0,
650  DtString* label = 0,
651  DtVector* newDbPoint1 = 0,
652  DtVector* newDbPoint2 = 0,
653  const DtSimulationAddress& addr = DtSimSendToAll) const;
654 
656 
662  virtual void createControlArea(
663  const DtList& vertices,
664  const DtString& uniqueName = DtString::nullString(),
665  const DtString& label = DtString::nullString(),
666  const DtSimulationAddress& addr = DtSimSendToAll) const;
667 
671  virtual void createControlArea(
672  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
673  const DtList& vertices,
674  const DtString& uniqueName = DtString::nullString(),
675  const DtString& label = DtString::nullString(),
676  const DtSimulationAddress& addr = DtSimSendToAll) ;
677 
679  virtual void modifyControlArea(
680  const DtEntityIdentifier& uniqueId,
681  DtString* uniqueName = 0,
682  DtString* label = 0,
683  DtList* newVertices = 0,
684  const DtSimulationAddress& addr = DtSimSendToAll) const;
685 
687 
693  virtual void createObstacle(
694  const DtList& vertices,
695  const DtString& uniqueName = DtString::nullString(),
696  const DtString& label = DtString::nullString(),
697  const DtSimulationAddress& addr = DtSimSendToAll) const;
698 
702  virtual void createObstacle(
703  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
704  const DtList& vertices,
705  const DtString& uniqueName = DtString::nullString(),
706  const DtString& label = DtString::nullString(),
707  const DtSimulationAddress& addr = DtSimSendToAll) ;
708 
710  virtual void modifyObstacle(
711  const DtEntityIdentifier& uniqueId,
712  DtString* uniqueName = 0,
713  DtString* label = 0,
714  DtList* newVertices = 0,
715  const DtSimulationAddress& addr = DtSimSendToAll) const;
716 
718 
725  virtual void createDisaggregationArea(
726  const DtList& vertices,
727  const DtString& uniqueName = DtString::nullString(),
728  const DtString& label = DtString::nullString(),
729  const DtSimulationAddress& addr = DtSimSendToAll) const;
730 
735  virtual void createDisaggregationArea(
736  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
737  const DtList& vertices,
738  const DtString& uniqueName = DtString::nullString(),
739  const DtString& label = DtString::nullString(),
740  const DtSimulationAddress& addr = DtSimSendToAll) ;
741 
743  virtual void modifyDisaggregationArea(
744  const DtEntityIdentifier& uniqueId,
745  DtString* uniqueName = 0,
746  DtString* label = 0,
747  DtList* newVertices = 0,
748  const DtSimulationAddress& addr = DtSimSendToAll) const;
749 
763  virtual void createOverlayObject(
764  const DtEntityType& type,
765  const DtList& vertices,
766  const DtForceType& force,
767  const DtString& name,
768  const DtString& label,
769  int color,
770  const DtString& parentName,
771  bool projection,
772  bool closedFigure,
773  const DtAppearance& appearance = DtAppearance::nullAppearance(),
774  const DtString& attachTo = DtString(),
775  char* userData = 0,
776  int dataSize = 0,
778  const DtSimulationAddress& addr = DtSimSendToAll,
779  unsigned int rId = 0);
780 
781  virtual void createIndirectArtillery(
782  const DtVrfIndirectArtilleryObjectModify * params,
783  const DtSimulationAddress& addr);
784  //-------------------------------------------------------
786  //-------------------------------------------------------
787 
789  virtual void createObject(
790  const DtEntityType& type,
791  DtForceType force,
792  DtList* vertices,
793  const DtString& name,
794  const DtSimulationAddress& addr);
795 
797  virtual void createEntity(
798  const DtEntityType& type,
799  const DtVector& geocentricPosition,
800  DtForceType force,
801  DtReal heading,
802  const DtString& uniqueName = DtString::nullString(),
803  const DtString& label = DtString::nullString(),
804  const DtSimulationAddress& addr = DtSimSendToAll,
805  bool groundClamp = true) const;
806 
810  virtual void createEntity(
811  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
812  const DtEntityType& type,
813  const DtVector& geocentricPosition,
814  DtForceType force,
815  DtReal heading,
816  const DtString& uniqueName = DtString::nullString(),
817  const DtString& label = DtString::nullString(),
818  const DtSimulationAddress& addr = DtSimSendToAll,
819  bool groundClamp = true);
820 
821  virtual void createAggregate(
822  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
823  const DtEntityType& type,
824  const DtVector& geocentricPosition,
825  DtForceType force,
826  DtReal heading,
827  const DtString& uniqueName,
828  const DtString& label = DtString::nullString(),
829  const DtSimulationAddress& addr = DtSimSendToAll,
830  DtAggregateState initialAggregateState = DtDisaggregated);
831 
833  virtual void createAggregate(
834  const DtEntityType& type,
835  const DtVector& geocentricPosition,
836  DtForceType force,
837  DtReal heading,
838  DtList* entityNames = 0,
839  const DtSimulationAddress& addr = DtSimSendToAll,
840  DtAggregateState initialAggregateState = DtDisaggregated,
841  unsigned int requestId = 0) const;
842 
846  virtual void createAggregate(
847  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
848  const DtEntityType& type,
849  const DtVector& geocentricPosition,
850  DtForceType force,
851  DtReal heading,
852  DtList* entityNames = 0,
853  const DtSimulationAddress& addr = DtSimSendToAll,
854  DtAggregateState initialAggregateState = DtDisaggregated) ;
855 
858  virtual void addToOrganization(
859  const DtEntityIdentifier& objectId,
860  const DtEntityIdentifier& newSuperiorId,
861  const DtSimulationAddress& addr = DtSimSendToAll);
862 
866  virtual void addToForceLevelOrganization(
867  const DtEntityIdentifier& orjectId,
868  const DtSimulationAddress& addr = DtSimSendToAll);
869 
872  virtual void removeFromOrganization(
873  const DtEntityIdentifier& objectId,
874  const DtSimulationAddress& addr = DtSimSendToAll);
875 
881 
883  virtual void setLabel(
884  const DtEntityIdentifier& id, const DtString& label,
885  const DtSimulationAddress& addr = DtSimSendToAll) const;
886 
888  virtual void setOverlayParent(
889  const DtEntityIdentifier& id, const DtString& label,
890  const DtSimulationAddress& addr = DtSimSendToAll) const;
891 
893  virtual void setAltitude(
894  const DtString& name, double altitude,
895  const DtSimulationAddress& addr = DtSimSendToAll) const;
896 
898  virtual void setLocation(
899  const DtString& name, DtVector coord,
900  const DtSimulationAddress& addr = DtSimSendToAll) const;
901 
903  virtual void setAppearance(
904  const DtString& name, int appearance,
905  const DtSimulationAddress& addr = DtSimSendToAll) const;
906 
908  virtual void setCapabilities(
909  const DtString& name, int capabilities,
910  const DtSimulationAddress& addr = DtSimSendToAll) const;
911 
913  virtual void setHeading(
914  const DtString& name, double degrees,
915  const DtSimulationAddress& addr = DtSimSendToAll) const;
916 
918  virtual void setForce(
919  const DtString& name, DtForceType force,
920  const DtSimulationAddress& addr = DtSimSendToAll) const;
921 
925  virtual void requestSpotReports(const DtString& name, bool onOff,
926  const DtSimulationAddress& addr = DtSimSendToAll) const;
927 
931  virtual void setResource(const DtString& name,
932  const char* resourceType, double value,
933  const DtSimulationAddress& addr = DtSimSendToAll) const;
934 
938  virtual void setRulesOfEngagement(
939  const DtString& name, const char* rulesType,
940  const DtSimulationAddress& addr = DtSimSendToAll) const;
941 
943  virtual void setSectorOfResponsibility(
944  const DtString& name, double center, double size,
945  const DtSimulationAddress& addr = DtSimSendToAll) const;
946 
948  virtual void setSpeed(
949  const DtString& name, double speed,
950  const DtSimulationAddress& addr = DtSimSendToAll) const;
951 
953  virtual void setTarget(
954  const DtString& name, const DtString& target,
955  const DtSimulationAddress& addr = DtSimSendToAll) const;
956 
958  virtual void setTaskedBySuperior(const DtString& name,
959  const DtSimulationAddress& addr = DtSimSendToAll) const;
960 
962  virtual void setConcealed(const DtString& name,
963  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
964 
966  virtual void setEmitter(const DtString& name,
967  int emitterId, bool on,
968  const DtSimulationAddress& addr = DtSimSendToAll) const;
969 
971  virtual void setIff(const DtString& name,
972  bool mode1on, int mode1code,
973  bool mode2on, int mode2code,
974  bool mode3on, int mode3code,
975  bool mode4on, int mode4code,
976  DtIffAtcNavaidsAltParm4 altParm4,
977  bool mode5on, bool useAltMode5,
978  bool modeSon, bool emergency,
979  bool flash, bool sti, bool modeSTcasI,
980  const DtSimulationAddress& addr = DtSimSendToAll) const;
981 
983  virtual void restore(const DtString& name,
984  const DtSimulationAddress& addr = DtSimSendToAll) const;
985 
988  virtual void setDestroyed(const DtString& name,
989  const DtSimulationAddress& addr = DtSimSendToAll) const;
990 
994  virtual void setLifeformWeaponState(
995  const DtString& name, DtWeaponState weapon,
996  const DtSimulationAddress& addr) const;
997 
1001  virtual void setLifeformPosture(
1002  const DtString& name, DtLifeformState posture,
1003  const DtSimulationAddress& addr) const;
1004 
1007  virtual void setAggregateFormation(
1008  const DtString& leader, const DtString& formationName,
1009  const DtSimulationAddress& addr = DtSimSendToAll) const;
1010 
1014  virtual void reorganizeAggregate(const DtString& leader,
1015  const DtSimulationAddress& addr = DtSimSendToAll) const;
1016 
1020  virtual void disaggregateEntity(const DtString& entity,
1021  const DtSimulationAddress& addr = DtSimSendToAll) const;
1022 
1026  virtual void aggregateEntity(const DtString& entity,
1027  const DtSimulationAddress& addr = DtSimSendToAll) const;
1028 
1031  virtual void sendSetDataMsg(
1032  const DtString& recipient, DtSetDataRequest* msg,
1033  const DtSimulationAddress& addr) const;
1034 
1036 
1037 
1038  //-------------------------------------------------------
1040  //-------------------------------------------------------
1041 
1045  virtual void sendVrfObjectCreateMsg(
1046  const DtSimulationAddress& addr,
1047  unsigned int requestId,
1048  const DtString& name,
1049  const DtObjectType& type,
1050  const DtList& vertices,
1051  const DtString& label,
1052  const DtAppearance& appearance,
1053  DtForceType force,
1054  bool projection,
1055  bool closedFigure,
1056  DtReal heading,
1057  bool createSubObjects,
1058  bool clampToGroundFlag = true,
1059  const DtString& initialFormation = DtString::nullString(),
1060  DtAggregateState initialAggregateState = DtDisaggregated,
1061  const DtString& userData = DtString::nullString(),
1062  std::list<DtAdminContent*>* initialAdminContent = 0,
1063  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0) const;
1064 
1071  virtual void sendVrfObjectModifyMsg(
1072  const DtSimulationAddress& addr,
1073  const DtEntityIdentifier& id,
1074  DtString* name = 0,
1075  DtList* vertices = 0,
1076  DtForceType* force = 0,
1077  DtReal* heading = 0,
1078  DtString* label = 0,
1079  DtAppearance* appearance = 0,
1080  DtString* overlayParent = 0,
1081  DtString* userData = 0) const;
1082 
1086  virtual void sendVrfOverlayObjectModifyMsg(
1087  const DtSimulationAddress& addr,
1088  const DtEntityIdentifier& id,
1089  int color,
1090  DtString parentName,
1091  DtString attachTo,
1092  bool keepExistingAttachment = true,
1093  char* userData = 0,
1094  int len = 0) const;
1095 
1096  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1097  const DtSimulationAddress& addr,
1098  const DtEntityIdentifier& id,
1099  const DtVrfIndirectArtilleryObjectModify * mod) const;
1100 
1101  //-------------------------------------------------------
1103  //-------------------------------------------------------
1104 
1107  virtual void moveAlongRoute(
1108  const DtString& entityName, const DtString& routeName,
1109  const DtSimulationAddress& addr = DtSimSendToAll) const;
1110 
1113  virtual void moveToWaypoint(
1114  const DtString& entityName, const DtString& waypoint,
1115  const DtSimulationAddress& addr = DtSimSendToAll) const;
1116 
1120  virtual void moveToLocation(
1121  const DtString& entityName, const DtVector& destinationLocation,
1122  const DtSimulationAddress& addr = DtSimSendToAll) const;
1123 
1126  virtual void patrolBetweenWaypoints(
1127  const DtString& name,
1128  const DtString& waypoint1, const DtString& waypoint2,
1129  const DtSimulationAddress& addr = DtSimSendToAll) const;
1130 
1133  virtual void patrolAlongRoute(
1134  const DtString& name, const DtString& route,
1135  const DtSimulationAddress& addr = DtSimSendToAll) const;
1136 
1142  virtual void followEntity(
1143  const DtString& name,
1144  const DtString& leader, const DtVector& offset,
1145  const DtSimulationAddress& addr = DtSimSendToAll) const;
1146 
1149  virtual void wait(
1150  const DtString& name,
1151  const DtSimulationAddress& addr = DtSimSendToAll) const;
1152 
1155  virtual void waitDuration(
1156  const DtString& name, DtTime duration,
1157  const DtSimulationAddress& addr = DtSimSendToAll) const;
1158 
1161  virtual void waitElapsed(
1162  const DtString& name, DtTime elapsed,
1163  const DtSimulationAddress& addr = DtSimSendToAll) const;
1164 
1168  virtual void sendTaskMsg(
1169  const DtString& recipient, DtSimTask* task,
1170  const DtSimulationAddress& addr = DtSimSendToAll) const;
1171 
1174  virtual void abandonPlan(const DtString& name,
1175  const DtSimulationAddress& addr = DtSimSendToAll) const;
1176 
1178  virtual void skipTask(const DtString& name,
1179  const DtSimulationAddress& addr = DtSimSendToAll) const;
1180 
1183  virtual void restartPlan(const DtString& name,
1184  const DtSimulationAddress& addr = DtSimSendToAll) const;
1185 
1193  virtual void assignPlanByName(
1194  const DtString& name, const DtPlan& plan,
1195  const DtSimulationAddress& addr = DtSimSendToAll,
1196  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1197 
1199  virtual void assignMultiplePlanByName(
1200  const std::vector<DtString>& entities, const DtPlan& plan,
1201  const DtSimulationAddress& addr = DtSimSendToAll,
1202  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1203 
1208  virtual void requestPlan(
1209  const DtString& name,
1210  bool addStmtCallback = true,
1211  const DtSimulationAddress& addr = DtSimSendToAll) const;
1212 
1217  virtual void subscribePlan(const DtString& name,
1218  DtPlanCallbackFcn fn, void* usr,
1219  const DtSimulationAddress& addr = DtSimSendToAll);
1220 
1226  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1227  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1228  const DtSimulationAddress& addr = DtSimSendToAll);
1229 
1230  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1231  const DtSimulationAddress& addr = DtSimSendToAll);
1232 
1235  virtual void unsubscribePlan(const DtString& name,
1236  DtPlanCallbackFcn fn, void* usr);
1237 
1240  virtual void unsubscribeAllPlans();
1241 
1246  virtual void addPlanStatementCallback(const DtString& name,
1247  DtPlanStatementCallbackFcn callback, void* usrData);
1248 
1251  virtual void removePlanStatementCallback(const DtString& name,
1252  DtPlanStatementCallbackFcn callback, void* usrData);
1253 
1256  virtual void removeAllPlanStatementCallbacks();
1257 
1262  virtual void addPlanCompleteCallback(const DtString& name,
1263  DtPlanCompleteCallbackFcn callback, void* usrData);
1264 
1267  virtual void removePlanCompleteCallback(const DtString& name,
1268  DtPlanCompleteCallbackFcn callback, void* usrData);
1269 
1272  virtual void removeAllPlanCompleteCallbacks();
1273 
1275 
1277  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1278 
1286  virtual void assignGlobalPlan(
1287  const DtString& name, const DtPlan& plan,
1288  const DtSimulationAddress& addr = DtSimSendToAll,
1289  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1290 
1292  virtual void deleteGlobalPlan(const DtString& name,
1293  const DtSimulationAddress& addr = DtSimSendToAll) const;
1294 
1298  virtual void requestGlobalPlan(
1299  const DtString& name,
1300  const DtSimulationAddress& addr = DtSimSendToAll) const;
1301 
1306  virtual void subscribeGlobalPlan(const DtString& name,
1307  DtPlanCallbackFcn fn, void* usr,
1308  const DtSimulationAddress& addr = DtSimSendToAll);
1309 
1312  virtual void unsubscribeGlobalPlan(const DtString& name,
1313  DtPlanCallbackFcn fn, void* usr);
1314 
1318  virtual void addGlobalPlanStatementCallback(const DtString& name,
1319  DtPlanStatementCallbackFcn callback, void* usrData);
1320 
1322  virtual void removeGlobalPlanStatementCallback(const DtString& name,
1323  DtPlanStatementCallbackFcn callback, void* usrData);
1324 
1328  virtual void addGlobalPlanCompleteCallback(const DtString& name,
1329  DtPlanCompleteCallbackFcn callback, void* usrData);
1330 
1332  virtual void removeGlobalPlanCompleteCallback(const DtString& name,
1333  DtPlanCompleteCallbackFcn callback, void* usrData);
1334 
1340  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1341 
1347  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1348  const DtSimulationAddress& addr = DtSimSendToAll) const;
1349 
1350  //-------------------------------------------------------
1351 
1355  virtual void loadedScenario(
1356  const DtSimulationAddress& addr, unsigned int requestId);
1357 
1361  virtual void processSaveMessages();
1362 
1366  virtual DtTime scenarioSimTimeForSave();
1367 
1371  virtual void setTerrainDatabaseFilename(DtScenario* scen);
1372 
1376  virtual void setParameterDatabaseFilename(DtScenario* scen);
1377 
1381  virtual void setPhysicalWorldFilename(DtScenario* scen);
1382 
1386  virtual void setTimeMultiplier(DtScenario* scen);
1387 
1391  virtual void setAutoReorganize(DtScenario* scen);
1392 
1396  virtual void setRandomNumberSeed(DtScenario* scen);
1397 
1401  virtual void setFrameRateMode(DtScenario* scen);
1402 
1406  virtual void setFrameDeltaTime(DtScenario* scen);
1407 
1411  virtual void setExerciseStartTime(DtScenario* scen);
1412 
1418  virtual bool save();
1419 
1424  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
1425 
1429  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
1430 
1432  virtual void completeExport();
1433 
1437  virtual void savedScenario(const DtSimulationAddress& addr,
1438  DtSaveResult result, unsigned int requestId);
1439 
1442  virtual void doPendingSaveWork();
1443 
1446  virtual void doPendingExportWork();
1447 
1450  virtual void doPendingLoadWork();
1451 
1454  virtual void objectCreated(unsigned int requestId,
1455  const DtString& name, const DtEntityIdentifier& id);
1456 
1458  virtual unsigned int generateRequestId() const;
1459 
1462  virtual void receivedPlan(const DtString& name, bool isGlobal,
1463  const DtList& statements);
1464 
1470  virtual void receivedPlanStmt(const DtString& name, bool isGlobal,
1471  DtPlanStatus planStatus);
1472 
1479  virtual void embarkObject(const DtSimulationAddress& addr, const DtString& entity, const DtString& ontoEntity,
1480  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1481 
1482  virtual void disembarkObject(const DtSimulationAddress& addr, const DtString& entity);
1483  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtString& entity);
1484 
1487  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1488  const DtString& entityName);
1489 
1491  virtual void requestTasksAndSetsFor(const std::vector<DtString>& names);
1492 
1495  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1496  const DtString& entityName);
1497 
1499  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& names);
1500 
1501  //-------------------------------------------------------
1503  //-------------------------------------------------------
1504 
1508  virtual DtDefaultRadioMessageFactory* radioMsgFactory();
1509  virtual DtDefaultCondExprFactory* condExprFactory();
1510  virtual DtDefaultStatementFactory* stmtFactory();
1511  virtual DtDefaultSimReportFactory* reportFactory();
1512  virtual DtDefaultSimTaskFactory* taskFactory();
1513  virtual DtDefaultSetDataRequestFactory* setDataFactory();
1514  virtual DtDefaultSimCommandFactory* simCommandFactory();
1515  virtual DtDefaultAdminContentFactory* adminContentFactory();
1516 
1517  //-------------------------------------------------------
1519  //-------------------------------------------------------
1520 
1522  virtual void setRotationThreshold(DtReal thresh);
1523 
1525  virtual void setTranslationThreshold(DtReal thresh);
1526 
1531  virtual void setAggDimensionThreshold(DtReal thresh);
1532 
1534  virtual void setHostInetAddr(DtInetAddr);
1535  virtual DtInetAddr hostInetAddr() const;
1536 
1539  virtual void querySpatialSubdivisionConfiguration(
1540  const DtSimulationAddress& backendAddress,
1541  DtSpatialSubdivisionType spatialSubdivisionType,
1542  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1543 
1545  virtual void setSpatialSubdivsionConfiguration(
1546  const DtSimulationAddress& backendAddress,
1547  DtSpatialSubdivisionType spatialSubdivisionType,
1548  const int spatialSubdivisionXResolution,
1549  const int spatialSubdivisionYResolution,
1550  const int spatialSubdivisionZResolution);
1551 
1553  virtual void requestIndirectArtilleryInformation(const DtString&);
1554 
1555  //-------------------------------------------------------
1557  //-------------------------------------------------------
1558 
1566  virtual void requestResources(const DtString& name = DtString::nullString(),
1567  const std::list<DtString>* list = 0,
1568  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1569 
1570  //-------------------------------------------------------
1572  //-------------------------------------------------------
1576  virtual void addObjectConsoleMessageCallback(
1577  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1578 
1579  virtual void removeObjectConsoleMessageCallback(
1580  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1582 
1585  virtual void setObjectNotifyLevel(const DtString& objectName,
1586  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
1587 
1591  virtual void logObjectConsoleToFile(const DtString& objectName,
1592  const DtFilename filename);
1593 
1596  virtual void stopLoggingObjectConsoleToFile(const DtString& objectName);
1597 
1598  //-------------------------------------------------------
1600  //-------------------------------------------------------
1604  virtual void addBackendConsoleMessageCallback(
1605  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1606 
1607  virtual void removeBackendConsoleMessageCallback(
1608  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1610 
1615  virtual void requestResourceNames(const std::list<DtString>& list,
1616  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1617 
1623  virtual DtRadioMessageListener* radioMessageListener();
1624 
1625  //-------------------------------------------------------
1627  //-------------------------------------------------------
1628 
1630  DtRemoteEnvironmentController* remoteEnvironmentController();
1631 
1637  virtual void initializeGlobalEnvironment(
1638  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
1639 
1642  DtRemoteEnvironmentController* createRemoteEnvironmentController();
1643 
1644 public:
1645 
1648  static void doPendingSaveWorkCb(void* usr);
1649 
1652  static void doPendingExportWorkCb(void* usr);
1653 
1656  static void doPendingLoadWorkCb(void* usr);
1657 
1660  static void savedScenarioCb(DtSimMessage* msg, void* usr);
1661 
1664  static void exportScenarioCb(DtSimMessage* msg, void* usr);
1665 
1668  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
1669 
1672  static void receiveFileCb(const DtFilename& filename, void* usr);
1673 
1675  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
1676 
1678  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1679 
1681  static void objectCreatedCb(DtSimMessage* msg, void* usr);
1682 
1684  static void receivedPlanCb(DtSimMessage* msg, void* usr);
1685 
1687  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
1688 
1691  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1692  void* usr);
1693  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1694  DtVrfOverlayObjectModify* modifications);
1695 
1698  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1699  void* usr);
1700  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1701  DtVrfIndirectArtilleryObjectModify* modifications);
1702 
1704  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
1705 
1707  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
1708 
1711  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
1712 
1715  virtual void processSpatialSubdivisionConfigurationCb(
1716  const DtIfServerRequestResponse& rsp);
1717 
1720  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
1721 
1724  virtual void processCommentInteraction(DtCommentInteraction* inter);
1725 
1726 protected:
1727 
1731  virtual void onInit();
1732  virtual void resetStateData();
1733  virtual void emptyLists();
1734 
1736  virtual void sendAggregateAsMsg(
1737  const DtSimulationAddress& addr,
1738  unsigned int requestId,
1739  const DtObjectType& objectType,
1740  DtForceType force,
1741  const DtVector& position,
1742  DtReal heading,
1743  DtList* entityNames,
1744  DtAggregateState initialAggregateState) const;
1745 
1747  virtual DtVrfConfigurationFileComposer* createComposer();
1748 
1751  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
1752  const DtSimulationAddress& backendAddress,
1753  DtSpatialSubdivisionType spatialSubdivisionType ,
1754  DtServerRequestResponseCallbackFcn fcn, void* usr);
1755 
1762  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
1763 
1771  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
1772  const DtSimulationAddress& addr = DtSimSendToAll,
1773  int *retiStatus = 0, DtString* retsStmt = 0) const;
1774 
1777  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
1778  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
1781  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
1782 
1785  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, void* usr);
1786  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id);
1787 
1788 public:
1790 
1794  virtual bool newScenario(
1795  const DtFilename& dbname,
1796  const DtFilename& guidbname,
1797  const DtFilename& opdname,
1798  const DtFilename& physicalWorldName,
1799  const std::vector<DtString>& simulationModelSetFiles,
1800  const DtScenario* baseScenario = 0,
1801  int startTimeOfDay = 12 * 3600);
1802 
1803 protected:
1804  DtExerciseConn* myExConn;
1816  DtList myBeList;
1817 
1824 
1825  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
1827  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
1829  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
1831 
1832  DtHashlist myObjectCbs;
1833 
1834  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
1837 
1838  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
1841 
1843  DtFilename mySaveName;
1844  DtFilename myOverlayFilename;
1848  DtFilename myOpdName;
1862 
1865 
1875 
1880 
1883 
1886  DtFilename myTempDirectory;
1887 
1891  DtInetAddr myInetAddr;
1892 
1897  mutable unsigned int myRequestIdCounter;
1898 
1901 
1904 
1907 
1910 
1913 
1915  DtFilename myExportFile;
1916 
1919 
1923 };
1924 
1933 {
1934 public:
1935  DtVrfOverlayObjectModify(int color,
1936  const DtString& parentName, const DtString& attachTo,
1937  char* userData,
1938  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
1939  DtVrfRemoteController* control);
1940 
1941  virtual ~DtVrfOverlayObjectModify();
1942 
1943  virtual int color() const;
1944  virtual const DtString& parentName() const;
1945  virtual const DtString& attachTo() const;
1946  virtual void userData(char** data, int* userDataSize);
1947  virtual DtVrfRemoteController* remoteController();
1948  virtual DtOverlayCreatedCallbackFcn userCallback();
1949 
1950 protected:
1951  int myColor;
1955  char* myUserData;
1958 };
1959 
1963 {
1964 public:
1967 
1969  virtual DtVrfRemoteController* remoteController() const;
1970  virtual void setRemoteController(DtVrfRemoteController*);
1971 
1973  virtual const DtIfIndirectArtilleryData & data() const;
1974  virtual DtIfIndirectArtilleryData & data();
1975  virtual void setData(const DtIfIndirectArtilleryData & data);
1976 
1977 protected:
1980 };
1981 
1982 #endif

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)