VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
localObject.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
9 #include "vrfobjcore/simObject.h"
19 #include <vrfutil/echelonId.h>
20 #include <vrfutil/vrf4XAPI.h>
21 
22 namespace makVrf
23 {
24  class DtExternalCurrentFrameState;
25  class DtExternalNextFrameState;
26  class DtLaserDesignatorStateComponent;
27  class DtIffStateComponent;
28  class DtActiveSonarStateComponent;
29  class DtTaskVisualizationStateComponent;
30  class DtNavAidRadioTransmitterStateComponent;
31  class DtUnderwaterAcousticsStateComponent;
32  class DtEmitterSystemStateComponent;
33  class DtRadioReceiverStateComponent;
34  class DtFrameStateInterface;
35  class DtStatePropertiesStateComponent;
36 }
37 
39 class DtSettingsObject;
46 class DtAttachedTerrain;
48 class DtSimTaskManager;
50 class DtSimRadio;
53 class DtSetDataManager;
55 class DtVrfObjectMessage;
58 
59 typedef DtLocalObject* (*DtLocalObjectCreatorFcn)(DtSimulationServices*, const DtVrfLocalObjectCreateInformation&);
60 
62 {
64  {
74  };
75 
77 };
78 
87 {
88 protected:
93 
94 public:
96  {
97  ObjectName = 1,
102  SubordinateOfForceLevel
103  };
104 
106  virtual ~DtLocalObject();
107 
108  const makVrf::DtExternalNextFrameState* nextFrameState() const;
109  makVrf::DtExternalNextFrameState* nextFrameState();
110 
112  template <typename T_Component>
114  {
115  return nextFrameState()->getStateComponent<T_Component>();
116  }
117 
119  template <typename T_Component>
120  const T_Component* getNextFrameStateComponent() const
121  {
122  return nextFrameState()->getStateComponent<T_Component>();
123  }
124 
125  virtual DtRwProperties& nextFrameStateProperties();
126 
128  virtual void setNextFrameActivity(const DtString&);
129 
130  virtual void setNextFrameExtendedData(const DtString& key, const DtString& value);
131  virtual void setNextFrameExtendedDataMap(const std::map<DtString, DtString>&);
132  virtual void setNextFrameExtendedDataMap(const std::map<std::string, std::string>&);
133  virtual void clearNextFrameExtendedData();
134  virtual void appendNextFrameExtendedData(const std::map<DtString, DtString>& s);
135  virtual void setNextFrameExtendedLabel(int, const DtString& value);
136  virtual void clearNextFrameExtendedLabels();
137  virtual void setNextFrameExtendedLabels(const std::map<int, DtString>&);
138  virtual DtAppearance nextFrameAppearance() const;
139 
142  virtual void setNextFrameLocalPosition(const DtVector&);
143  virtual DtString nextFrameLabel() const;
144 
145  virtual const DtVector& nextFrameLocalPosition() const;
146 
147  virtual void setNextFrameWorldPosition(const DtVector&);
148  virtual const DtVector& nextFrameWorldPosition() const;
149 
150  virtual void setNextFrameParentPosition(const DtVector&);
151  virtual const DtVector& nextFrameParentPosition() const;
152 
153  virtual void setNextFrameLocalOrientationMatrix(const DtDcm&);
154  virtual const DtDcm& nextFrameLocalOrientationMatrix() const;
155 
156  virtual void setNextFrameLocalOrientationWrtDatabase(const DtTaitBryan&);
157  virtual const DtTaitBryan& nextFrameLocalOrientationWrtDatabase() const;
158 
159  virtual void setNextFrameLocalOrientation(const DtTaitBryan&);
160  virtual const DtTaitBryan& nextFrameLocalOrientation() const;
161 
162  virtual const DtTaitBryan& nextFrameTopographicOrientation() const;
163 
164  virtual void setNextFrameParentOrientation(const DtTaitBryan&);
165  virtual const DtTaitBryan& nextFrameParentOrientation() const;
166 
167  virtual void setNextFrameWorldOrientation(const DtTaitBryan&);
168  virtual void setNextFrameWorldOrientationMatrix(const DtDcm&);
169  virtual const DtTaitBryan& nextFrameWorldOrientation() const;
170  virtual const DtDcm& nextFrameWorldOrientationMatrix() const;
171 
172  virtual void setNextFrameLocalVertices(const DtList& vertices, DtVector& newGeometricCenter);
173  virtual void setNextFrameLocalVertices(const DtLocalVertexList& vertices, DtVector& newGeometricCenter);
174  virtual void removeNextFrameVertex(int iIndex);
175  virtual void addNextFrameLocalVertex(const DtVector& vertex);
176  virtual void addNextFrameLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
177 
178  virtual void setNextFrameWorldVertices(const std::vector<DtVector>& vertices, DtVector& newGeometricCenter);
179  virtual void setNextFrameWorldVertices(const DtVertexList& vertices, DtVector& newGeometricCenter);
180  virtual void setNextFrameWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
181  virtual void addNextFrameWorldVertex(const DtVector& vertex, DtVector& newGeometricCenter);
182 
184  bool nextFrameIsDestroyed() const;
185  int nextFrameDamageState() const;
186 
187  virtual void setNextFrameRelativeVertices(const DtLocalVertexList& vertices);
188 
189  virtual const DtLocalVertexList& nextFrameLocalVertices() const;
190  virtual const DtVertexList& nextFrameWorldVertices() const;
191  virtual const DtLocalVertexList& nextFrameRelativeVertices() const;
192 
193  virtual double nextFrameHeading() const;
194  virtual double nextFramePitch() const;
195  virtual double nextFrameRoll() const;
196 
198 
201  virtual void setNextFrameLabel(const DtString&);
202 
204  virtual const DtString& nextFrameExtendedData(const DtString&) const;
205 
207 
208  virtual void setNextFrameIsSubordinateOfForceLevel(bool);
209  virtual bool nextFrameIsSubordinateOfForceLevel() const;
210 
212  virtual bool nextFrameIsLocal() const;
213  bool isLocal() const override;
214 
216 
217  virtual void setNextFrameInvisible(bool);
218  virtual bool nextFrameInvisible() const;
219 
220  virtual void setNextFrameOverlay(const DtString&);
221 
222  virtual bool nextFrameSensorsKilled() const;
223  virtual void setNextFrameSensorsKilled(bool sensorsKilled);
224 
225  virtual void setNextFrameInvisibleSetByUser(bool b);
226  virtual bool nextFrameInvisibleSetByUser() const;
227 
228  virtual DtString nextFrameOverlay() const;
229 
231 
261 
264  virtual DtOutputStream& objectConsoleDebug(const DtString& channel = "") const;
265 
268  virtual DtOutputStream& objectConsoleVerbose(const DtString& channel = "") const;
269 
271  virtual DtOutputStream& objectConsoleInfo(const DtString& channel = "") const;
272 
275  virtual DtOutputStream& objectConsoleWarn(const DtString& channel = "") const;
276 
279  virtual DtOutputStream& objectConsoleError(const DtString& channel = "") const;
280 
282  int notifyLevel() const;
283  const DtObjectConsole* objectConsole() const;
285 
286  virtual void makeInvalid() override;
287 
289  bool isValid() const;
290 
291  bool publishObject() const;
292  int publishFlag() const;
293  virtual void setNextFrameIsBackgroundEntity(bool b);
294  virtual void setNextFrameIsVrfSimulated(bool);
295  virtual bool nextFrameIsVrfSimulated() const;
296 
297  virtual bool isRemoteAttachedObject() const;
298 
299  virtual void setNextFrameEngagementRules(const DtString&);
300  virtual DtString nextFrameEngagementRules() const;
301 
302  virtual void setNextFrameIsTasked(bool);
303  virtual bool nextFrameIsTasked() const;
304 
305  virtual void setNextFrameIndependentlyTasked(bool);
306  virtual bool nextFrameIndependentlyTasked() const;
307 
308  virtual void setNextFrameGlobalId(const DtString&);
309 
310  virtual void setNextFrameEntityId(const DtEntityIdentifier& id);
311  virtual DtEntityIdentifier nextFrameEntityId() const;
312 
314  virtual bool setNextFrameObjectName(const DtString&);
315  virtual DtString nextFrameObjectName() const;
316 
317  virtual void setNextFrameObjectType(const DtObjectType&);
318  virtual DtObjectType nextFrameObjectType() const;
319 
320  void setNotifyLevel(int);
322 
323  bool converting() const
324  {
325  return myConverting;
326  }
327 
329  template <typename T_Component>
330  T_Component* addStateComponent(bool checkWritable = false, bool isRemote = false)
331  {
332  if (isValid())
333  {
334  return myExternalNextFrameState->addStateComponent<T_Component>(checkWritable, isRemote);
335  }
336  else
337  {
338  throw makVrf::DtUnimplementedMethod("The addStateComponent is not implemented for this class.");
339  }
340  }
341 
343 
346  virtual bool nextFrameIsEmbarked() const;
348  virtual DtUUID nextFrameEmbarkedOn() const;
349  virtual void setNextFrameEmbarkedOn(const DtUUID& u);
350  virtual bool nextFrameIsEmbarkedOn(const DtUUID&) const;
351  virtual DtSimObjectReference nextFrameSimObjectEmbarkedOn() const;
352 
354  virtual void setNextFrameEchelonId(const DtEchelonId&);
355  virtual DtEchelonId nextFrameEchelonId() const;
356 
358  virtual void setNextFrameForceType(int);
359  virtual DtForceType nextFrameForceType() const;
360 
361  virtual void setNextFrameSessionId(int);
362  virtual int nextFrameSessionId() const;
363 
364  virtual void setNextFrameVrfMessageVersionSupported(int);
365  virtual int nextFrameVrfMessageVersionSupported() const;
366 
368  virtual void removeNextFrameExtendedData(const DtString&);
369 
371  void removeStateComponent(const makVrf::DtFrameStateInterface*);
372 
374  virtual void upgradeFromImport();
375 
378  makVrf::DtTaskVisualizationStateComponent* lineTaskVisualization(const DtString& visualName, const DtString& component);
379  makVrf::DtTaskVisualizationStateComponent* pointTaskVisualization(const DtString& visualName, const DtString& component);
380  makVrf::DtTaskVisualizationStateComponent* areaTaskVisualization(const DtString& visualName, const DtString& component);
381  makVrf::DtTaskVisualizationStateComponent* textTaskVisualization(const DtString& visualName, const DtString& component);
382  void removeTaskVisualization(makVrf::DtTaskVisualizationStateComponent*);
384 
385  makVrf::DtLaserDesignatorStateComponent* addLaserDesignator();
386  void removeLaserDesignator(makVrf::DtLaserDesignatorStateComponent*);
387 
388  makVrf::DtEmitterSystemStateComponent* addEmitterSystem();
389  void removeEmitterSystem(makVrf::DtEmitterSystemStateComponent*);
390 
391  makVrf::DtActiveSonarStateComponent* addActiveSonarSystem();
392  void removeActiveSonarSystem(makVrf::DtActiveSonarStateComponent*);
393 
394  makVrf::DtRadioTransmitterStateComponent* addRadioTransmitter();
395  void removeRadioTransmitter(makVrf::DtRadioTransmitterStateComponent*);
396 
397  makVrf::DtNavAidRadioTransmitterStateComponent* addNavAidRadioTransmitter();
398  void removeNavAidRadioTransmitter(makVrf::DtNavAidRadioTransmitterStateComponent*);
399 
400  makVrf::DtRadioReceiverStateComponent* addRadioReceiver();
401  void removeRadioReceiver(makVrf::DtRadioReceiverStateComponent*);
402 
404  makVrf::DtIffStateComponent* getOrCreateIffSystem();
405  void removeIffSystem();
406 
408  makVrf::DtUnderwaterAcousticsStateComponent* getOrCreateUnderwaterAcousticsSystem(bool isRemote = false);
409  void removeUnderwaterAcousticsSystem();
410 
411  virtual void setNextFrameUnderFire(bool b);
412  virtual bool nextFrameUnderFire() const;
413  virtual void setNextFrameInvulnerable(bool);
414  virtual bool nextFrameInvulnerable() const;
415 
416  virtual void setNextFrameUndetectable(bool);
417  virtual bool nextFrameUndetectable() const;
418 
420  virtual void setNextFrameHalfLengthWidthHeight(double length, double width, double height);
421  virtual void setNextFrameObjectGeometry(const makVrf::DtVrfObjectGeometry&);
422  virtual void setNextFrameBoundingGeometryType(DtSimBoundingGeometry::DtSimBoundingGeometryType type);
423  virtual void setNextFrameBoundingVolume(const Dt3dBoundingVolume& b);
424 
425  virtual void setNextFrameHasPlan(bool);
426  virtual bool nextFrameHasPlan() const;
427 
428  virtual void setNextFrameExecutingPlan(bool);
429  virtual bool nextFrameExecutingPlan() const;
430 
431  virtual void setNextFrameOccupantsHidden(bool);
432  virtual bool nextFrameOccupantsHidden() const;
433 
435  virtual std::map<DtString, DtString> nextFrameExtendedDataMap() const;
436 
438  virtual std::map<int, DtString> nextFrameExtendedLabels() const;
439 
440  virtual bool nextFrameIsOnTopOf(const DtSimObject* o, bool checkSupportPoints = false) const;
441  virtual bool nextFrameIsOnTopOf(const DtSimObject* o, double d, bool checkSupportPoints = false) const;
442 
444  DtLocalObjectDecorator* getOrCreateDecorator(const std::string& Decorator);
445 
447  void setLocationComplete();
448 
450  boost::signals2::signal<void ()> signal_preUpgradeFromImport;
451 
453  boost::signals2::signal<void ()> signal_postUpgradeFromImport;
454 
456  boost::signals2::signal<void ()> signal_objectInitialized;
457 
459  boost::signals2::signal<void ()> signal_objectRestored;
460 
462  boost::signals2::signal <void (DtLocalObject*)> signal_objectModifiedViaMessage;
463 
465  boost::signals2::signal <void (DtLocalObject*)> signal_newSensorContact;
466 
468  boost::signals2::signal <void (DtLocalObject*)> signal_navigationAreaChanged;
469 
471  boost::signals2::signal <void (DtLocalObject*)> signal_setLocationComplete;
472 
474  boost::signals2::signal<void ()> signal_restored;
475 
477  mutable boost::signals2::signal<void (const DtLocalObject*, ChangeFlag)> signal_objectDataChanged;
478 
480  boost::signals2::signal<void(const DtLocalObject*)> signal_localObjectAboutToBeDeleted;
481 
482  virtual void setNextFrameParameterProperties(const DtRwProperties&);
483  const DtRwProperties& nextFrameParameterProperties() const;
484 
485  virtual const DtRwProperties& nextFrameStateProperties() const;
486  virtual const DtRwProperties& stateProperties() const;
487  virtual void setNextFrameStateProperties(const DtRwProperties&);
488 
490  virtual bool nextFrameFuelLevelsFrozen() const;
491 
493  virtual bool nextFrameMunitionLevelsFrozen() const;
494 
497  virtual void setSimulationCapable(bool);
498  bool simulationCapable() const;
499 
501  virtual void setNextFrameBlockParachute(bool);
502  virtual bool nextFrameBlockParachute() const;
503 
507  virtual void setNextFrameOnTerrainSurface(bool b);
508  virtual bool nextFrameOnTerrainSurface() const;
509 
510 public:
513 
516  virtual bool createInternalState(const DtVrfObjectParameters* parameterEntry);
517 
520  virtual bool setupSubComponentTypes();
522 
525  virtual bool init();
526 
531  virtual bool create();
532 
539  static DtLocalObjectCreatorFcn setLocalObjectCreatorFunction(DtLocalObjectCreatorFcn);
540  static DtLocalObjectCreatorFcn localObjectCreatorFunction();
542 
545 
547 
550 
551  static void readDRThresholdSettingsCallback(
552  const DtSettingsObject* settings, void* usr);
553  virtual void processReadDRThresholdSettings(const DtSettingsObject* settings);
555 
557  bool isGlobalPlan() const;
558 
560  bool isSyncMatrix() const;
561 
563  virtual int publicationFlag() const;
564 
565 public:
569 
572  static void enableSingleObjectMode();
574  static bool singleObjectModeActive();
576 
577  virtual bool convertToRemoteObject(DtString& error);
578  virtual bool convertToLocalObject(DtString& error, const std::string& archiveState);
580  boost::signals2::signal<void (DtLocalObject*, DtVrfObjectHandoffData::HandoffFlag)> signal_handoffStep;
581 
582  virtual bool prepareForHandoff();
585  boost::signals2::signal<void (DtLocalObject*, DtVrfObjectHandoffData&)> signal_prepareForHandoff;
586 
587  virtual std::string archiveState() const;
588 
589 public:
590  typedef std::list<DtLuaScriptInterfaceExtension::CreatorUserPair> ScriptInterfaceExtensions;
591 
602 
603  const DtObjectResourceManager* objectResourceManager() const;
604  DtObjectResourceManager* objectResourceManager();
606 
607  virtual DtVrfObjectStateRepository* internalState();
608  virtual const DtVrfObjectStateRepository* internalState() const;
609 
613  virtual void prepareForReinitialization();
614 
617  DtVrfObjectSubComponentTypes* vrfSubComponentTypes() const;
618 
623  virtual void tick();
624 
625  virtual void startTick();
626  virtual void tickComponents();
627  virtual void endTick();
628 
630  virtual int scenarioRunId() const;
631 
634  virtual bool checkIfMoveOntoEmbarked(const DtVector& localPosition, const DtSimObject*& hit, const std::list<DtUUID>& additionalIgnore = std::list<DtUUID>());
635 
637  virtual bool checkAndDisembarkIfEmbarked(const DtVector& localPosition);
638  virtual bool lowFidelityDisembarkHitCheck(const DtVector& localPosition) const;
639  virtual bool highFidelityDisembarkHitCheck(const DtVector& localPosition) const;
640 
641 public:
644  virtual DtVrfObjectCommunicationInterface* communicationInterface();
645  virtual const DtVrfObjectCommunicationInterface* communicationInterface() const;
646  virtual DtVrfObjectTerrainPreloadManager* terrainPreloadManager();
647  virtual DtSimRadio* radio() const;
648  virtual DtSimTaskManager* taskManager() const;
649  virtual DtScriptInterfaceHandler* scriptInterfaceHandler() const;
650  virtual DtVrfObjectPlanManager* vrfObjectPlanManager() const;
651  virtual DtSimComponentManager* componentManager();
652  virtual const DtSimComponentManager* componentManager() const;
653 
658  virtual DtSetDataManager* setDataManager();
659  virtual const DtSetDataManager* setDataManager() const;
661 
662  bool initialized() const
663  {
664  return myInitialized;
665  }
666 
667 public:
670  virtual void cleanupItemsNeededForHandoff();
671  virtual bool recreateItemsNeededFromHandoff();
673 
674 protected:
677  static void logToFileCallback(const DtVrfObjectMessage* msg, void* usr);
678  virtual void processLogToFile(const DtVrfObjectMessage* msg);
679 
680  static void stopLoggingToFileCallback(const DtVrfObjectMessage* msg, void* usr);
681  virtual void processStopLoggingToFile(const DtVrfObjectMessage* msg);
683 
684 public:
687 
691  virtual void addScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
693  virtual void removeScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
695  virtual const ScriptInterfaceExtensions& scriptExtensions() const;
697 
698  virtual void setupFromMessageContent(const DtIfModifyVrfObject* ifModVrfObject);
699  virtual bool validNameLength(const DtString& name) const;
700 
701  static bool shouldArchiveExtendedAttribute(const DtString& s);
702  static void doNotArchiveAttribute(const DtString& s, bool b);
703 
707  virtual void sendVrfObjectCreated(unsigned long requestId = 0, bool requestCreated = true);
708 
710  boost::signals2::signal<void (DtLocalObject*)> signal_postInitFromParams;
711 
712 protected:
713  virtual void setupStateRepository();
714  virtual void internalStateInitializedFromParameters();
715 
720  virtual bool createCommunicationsInterface();
721  virtual void initializeCommunicationInterfaceCallbacks();
722  static void setOverlayLayerTaskCallback(const DtVrfObjectMessage* msg, void* usr);
723  virtual void processSetOverlayLayerTask(const DtVrfObjectMessage* msg);
724 
725  virtual bool createScriptInterfaceHandler();
726 
727  virtual bool createComponentManager();
728 
730  virtual bool initializeComponentManager();
731 
732  virtual bool createRadio();
733  virtual bool createVrfObjectPlanManager();
734  virtual bool createSetDataManager();
735 
736  virtual void tickDecorators();
737 
739  void createRemotelyControlledLocalObject();
740  virtual void completeSetup() override;
741 
742 protected:
743  virtual bool createTaskManager();
744 
747  virtual void createCommunicationsInterface(const DtRadioDescriptorList& descList);
748 
751  virtual void updateEntityHasTarget();
752 
753 protected:
755  void setUUID(const DtUUID&) override;
756 
757  virtual void convertedToRemote();
758 
760  virtual std::map<DtString, DtString> unarchivedData();
761 
762  virtual void clearDecorators() override;
763 
765  virtual void usingParameterSource(const DtString&) override;
766 
768  virtual void setupVrfObjectParameters() override;
769 
770  void cacheNextFrameComponents();
771  void clearNextFrameCachedComponents();
772 
773  virtual void hostChanged(const DtUUID& oldHost, const DtUUID& newHost) override;
774 
776  virtual void setupExtendedDataFromParameterData();
777 
779  virtual bool canBePlaced() const;
780 
781 protected:
783  DtLocalObject(const DtLocalObject& orig);
784 
786  DtLocalObject& operator=(const DtLocalObject& orig);
787 
788 protected:
800 
802 
805  typedef std::map<std::string, DtLocalObjectDecorator*> LocalObjectDecorators;
808 
809  boost::signals2::scoped_connection myConvertedToRemoteConnection;
811 
814 
817 
818  static std::set<DtString> theDoNotArchiveAttributes;
819 
821 
823 
826 
829 
834  bool myIsEnvironmental = false;
835 
837 
844 
846 
848 
849 public:
852  VRF4API_METHOD DtVrfObjectStateRepository* vrfState() { return internalState(); };
853  VRF4API_METHOD const DtVrfObjectStateRepository* vrfState() const { return internalState(); };
854  VRF4API_METHOD void setObjectIdentifier(const DtEntityIdentifier& id) { setNextFrameEntityId(id); };
855  VRF4API_METHOD void place(const DtReal heading, bool* dataAvailable = 0,
856  bool requireAllData = false);
857  VRF4API_METHOD void place(const DtVector& heading, bool* dataAvailable = 0,
858  bool requireAllData = false);
859  VRF4API_METHOD bool isVrfSimulated() const { return nextFrameIsVrfSimulated(); };
860  VRF4API_METHOD void invokeSetLocationCompleteCallbacks() { return setLocationComplete(); };
862 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:63
boost::signals2::signal< void()> signal_objectInitialized
Signal sent at the very end of the init() method.
Definition: localObject.h:456
Definition: scriptInterfaceHandler.h:19
VRF4API_METHOD void invokeSetLocationCompleteCallbacks()
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: localObject.h:860
T_Component * getNextFrameStateComponent()
General call to get any component that does not have a method.
Definition: localObject.h:113
Definition: localObject.h:72
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: statePropertiesStateComponent.h:93
virtual VRF4API_METHOD void setupExtendedDataFromParameterData()
If publishing parameter data also include that in the extended data map by name.
Definition: stateDataTypes.h:23
Definition: attachedTerrain.h:45
DtSimObjectDecorator * getOrCreateDecorator(const std::string &Decorator) const
This will get or create a decorator based on the decorator name. This is not virtual such that the Dt...
boost::signals2::signal< void(const DtLocalObject *, ChangeFlag)> signal_objectDataChanged
Signal sent when certain data has changed in this class from being set by the API, not from the network.
Definition: localObject.h:477
virtual void setUUID(const DtUUID &)
bool myCreatedStateData
Definition: localObject.h:801
bool converting() const
Definition: localObject.h:323
makVrf::DtVrfStateComponent * myNextFrameVrfStateComponent
Definition: localObject.h:841
bool myInitializing
Definition: localObject.h:815
DtSimObject & operator=(const DtUUID &)
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: radioTransmitterStateComponent.h:139
boost::signals2::signal< void()> signal_restored
Signal emitted when the object has been restored.
Definition: localObject.h:474
VRF4API_METHOD const DtVrfObjectStateRepository * vrfState() const
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: localObject.h:853
ChangeFlag
Definition: localObject.h:95
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
boost::signals2::signal< void()> signal_postUpgradeFromImport
Signal sent when upgrading from import. This will be called after any internal routines are called...
Definition: localObject.h:453
Definition: simRadio.h:30
unsigned int StateComponentType
Definition: stateComponent.h:55
bool mySimulationCapable
Whether or not this object is capable of simulating. Default is true.
Definition: localObject.h:828
DtVrfObjectTerrainPreloadManager * myTerrainPreloadManager
Definition: localObject.h:793
DtSimObjectReference myNextFrameSimObjectEmbarkedOn
Definition: localObject.h:845
Definition: localObject.h:98
bool isValid() const
Returns true if myExternalCurrentFrameState is not nullptr. Not virtual on purpose as even though loc...
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
DtSetDataManager * mySetDataManager
Definition: localObject.h:799
VRF4API_METHOD DtReal heading() const
Heading in radians.
boost::signals2::signal< void(DtLocalObject *)> signal_objectModifiedViaMessage
Signal sent when this object is modified via a message.
Definition: localObject.h:462
DtSimComponentManager * myComponentManager
Definition: localObject.h:797
virtual void clearDecorators()
This code will keep track of DtSimObject decorator only. The DtLocalObject will be able to use this d...
Definition: localObject.h:99
T_Component * addStateComponent(bool checkWritable=false, bool isRemote=false)
Adds the given state component by its intrinsic type.
Definition: localObject.h:330
LocalObjectDecorators myLocalObjectDecorators
Decorator members.
Definition: localObject.h:806
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Failure to recreate object for local usage so must be deleted.
Definition: localObject.h:73
DtRwProperties * myDefaultStateProperties
Definition: localObject.h:836
boost::signals2::signal< void(DtLocalObject *)> signal_postInitFromParams
Signal sent right after the internal state is initialized from parameters.
Definition: localObject.h:710
Definition: simObjectStateRepository.h:59
Definition: stateData.h:113
bool myHasTarget
Definition: localObject.h:830
The DtLocalObjectCreateInformation class is a subset of the information used in the DtIfCreateVrfObje...
Definition: vrfLocalObjectCreateInformation.h:26
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:90
const T_Component * getNextFrameStateComponent() const
General call to get any component that does not have a method.
Definition: localObject.h:120
DtSimRadio * myRadio
Definition: localObject.h:794
Definition: settingsObject.h:27
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: vrfGeometryStateComponent.h:54
boost::signals2::signal< void(DtLocalObject *)> signal_newSensorContact
Signal made available from this object to be used when a new sensor contact is made available for thi...
Definition: localObject.h:465
class DtIfModifyVrfObject:
Definition: ifModifyVrfObject.h:50
Definition: objectType.h:27
boost::signals2::scoped_connection myConvertedToRemoteConnection
Definition: localObject.h:809
const DtSimulationServices * simulationServices() const
Definition: simObject.h:262
List of DtRadioDescriptor subclasses that can be read from a RW type file. This class owns all descri...
Definition: radioDescriptorList.h:27
const makVrf::DtStatePropertiesStateComponent * myCurrentFrameStatePropertiesStateComponent
Definition: localObject.h:843
VRF4API_METHOD void setObjectIdentifier(const DtEntityIdentifier &id)
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: localObject.h:854
boost::signals2::signal< void(const DtLocalObject *)> signal_localObjectAboutToBeDeleted
Signal sent when a local object is about to be deleted.
Definition: localObject.h:480
makVrf::DtExternalNextFrameState * myExternalNextFrameState
Definition: localObject.h:791
DtVrfObjectSubComponentTypes.
Definition: vrfObjectSubComponentTypes.h:25
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: vrfStateComponent.h:55
virtual void hostChanged(const DtUUID &oldHost, const DtUUID &newHost)
This class represents the console for an individual object. It owns a set of streams for various noti...
Definition: objectConsole.h:49
virtual void completeSetup()
std::map< std::string, DtLocalObjectDecorator * > LocalObjectDecorators
Decorator members.
Definition: localObject.h:805
boost::signals2::signal< void(DtLocalObject *)> signal_setLocationComplete
Signal sent when the location has been changed by an interface content message.
Definition: localObject.h:471
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: laserDesignatorStateComponent.h:56
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
boost::signals2::signal< void()> signal_objectRestored
Signal sent after the object has been restored from the stream.
Definition: localObject.h:459
bool myConverting
Will be true if this object is in the process of converting from remote to local. ...
Definition: localObject.h:825
virtual void usingParameterSource(const DtString &)
Called when the parameter is set up, this is the source it is using.
HandoffFlag
Definition: localObject.h:63
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: activeSonarStateComponent.h:286
virtual void setupVrfObjectParameters()
std::list< DtLuaScriptInterfaceExtension::CreatorUserPair > ScriptInterfaceExtensions
Definition: localObject.h:590
DtSimTaskManager * myTaskManager
Definition: localObject.h:795
If inheriting from a base sim object proxy.
Definition: localObjectFacadeBase.h:32
class DtVertexList:
Definition: vertexList.h:22
Definition: localObject.h:101
makVrf::DtSimulatedObjectStateComponent * myNextFrameSimulatedObjectStateComponent
Definition: localObject.h:839
boost::signals2::signal< void(DtLocalObject *, DtVrfObjectHandoffData::HandoffFlag)> signal_handoffStep
Signal sent with object handoff flags for this object given the handoff state.
Definition: localObject.h:580
makVrf::DtLocationStateComponent * myNextFrameLocationStateComponent
Only set if there is no state properties state component.
Definition: localObject.h:838
DtMovementLocalObjectFacade * myMovementLocalObjectFacade
Definition: localObject.h:847
DtSimBoundingGeometryType
Definition: simBoundingGeometry.h:61
virtual void makeInvalid()
Make this invalid by clearing the myExternalCurrentFrameState. This will also set the myIsDeleted fla...
static DtLocalObjectCreatorFcn theLocalObjectCreatorFunction
Definition: localObject.h:810
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
This is the top-level resource manager for a DtLocalObject. The actual resources are stored in DtSimR...
Definition: objectResourceManager.h:21
This class maintains a rectangular bounding volume and an ordered list of vertices describing the phy...
Definition: vrfObjectGeometry.h:39
bool myInitialized
Definition: localObject.h:816
Definition: asyncJobServer.h:39
class DtVrfObjectPlanManager:
Definition: vrfObjectPlanManager.h:38
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: emitterSystemStateComponent.h:446
Definition: echelonId.h:13
This manager is on a per-DtLocalObject level, and is responsible for knowing what terrain areas an ob...
Definition: vrfObjectTerrainPreloadManager.h:36
Class Description: DtSimTaskManager manages the bookkeeping associated with starting, completing, clearing, and skipping tasks.
Definition: simTaskManager.h:52
makVrf::DtStatePropertiesStateComponent * myNextFrameStatePropertiesStateComponent
Definition: localObject.h:842
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: radioReceiverStateComponent.h:64
The DtSimComponentManager is the top level class within a DtSimObject which owns and manages all the ...
Definition: simComponentManager.h:30
DtLuaScriptInterfaceExtension *(* CreatorFcn)(void *usr)
Prototype for DtLuaScriptInterfaceExtension creator function.
Definition: luaScriptInterfaceExtension.h:37
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
DtVrfObjectStateRepository * myInternalState
Definition: localObject.h:789
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:79
The central class of a DtLocalObject for all communications to and from the object. This class manages all communications on a specific DtLocalObject, though both simulation internal communication, and communication though the simulated radios of the object. All communication is done though the use of the DtVrfObjectMessage class and its subclasses. Callbacks can be registered on this interface which will be called on receipt of a message by this entity. Messages can be sent from this entity by using the message sending functions. These messages may be sent though the SimInternal message mechanism, or the radio message system. Radios will not exist until createRadiosFromDescriptorList() or createRadiosFromDescriptorList(const DtRadioDescriptorList&amp; descList) is called.
Definition: vrfObjectCommunicationInterface.h:40
This class manages the distribution of DtSetDataRequests within a single DtLocalObject. Components of the object, or other parts of the code, register interested in particular types of set data messages and when such a message is processed by the DtSetDataManager, each of the registered parties is notified.
Definition: setDataManager.h:48
bool initialized() const
Definition: localObject.h:662
DtScriptInterfaceHandler * myScriptInterfaceHandler
Definition: localObject.h:796
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: navAidRadioTransmitterStateComponent.h:20
DtLuaScriptInterfaceExtension.
HandoffFlag handoffFlag
Definition: localObject.h:76
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
boost::signals2::signal< void(DtLocalObject *)> signal_navigationAreaChanged
Signal made available from this object to be used when the navigation area this object is in has chan...
Definition: localObject.h:468
makVrf::DtVrfGeometryStateComponent * myNextFrameVrfGeometryStateComponent
Definition: localObject.h:840
DtLocalObject *(* DtLocalObjectCreatorFcn)(DtSimulationServices *, const DtVrfLocalObjectCreateInformation &)
Definition: localObject.h:59
bool mySignalLocationComplete
Definition: localObject.h:833
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: underwaterAcousticsStateComponent.h:106
bool myControllersTicked
Definition: localObject.h:831
Definition: localObject.h:100
DtVrfObjectCommunicationInterface * myCommunicationInterface
Definition: localObject.h:792
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
DtVrfLocalObjectCreateInformation * myLocalObjectCreateInformation
Information used to originally create this object.
Definition: localObject.h:813
If the flag is Prepare, and you do not wish this object to be handed off, set the flag to Abort...
Definition: localObject.h:67
boost::signals2::signal< void()> signal_preUpgradeFromImport
Signal sent when upgrading from import. This will be called before any internal routines are called...
Definition: localObject.h:450
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: iffStateComponent.h:428
class DtLocalVertexList:
Definition: localVertexList.h:20
bool mySkipNextComponentTick
Definition: localObject.h:832
1) Define the interface class that will be used to represent the next and current frames...
Definition: taskVisualizationStateComponent.h:260
Contains the DtStateComponent class declaration.
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:22
VRF4API_METHOD DtVrfObjectStateRepository * vrfState()
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: localObject.h:852
DtAppearanceLocalObjectFacade * myAppearanceLocalObjectFacade
Definition: localObject.h:820
ScriptInterfaceExtensions myScriptInterfaceExtensions
Definition: localObject.h:822
DtVrfObjectSubComponentTypes * mySubComponentTypes
Definition: localObject.h:790
virtual void place(const DtVector &location, bool *dataAvailable=0, bool requireAllData=false)
Place entity at &#39;location&#39;, on the ground, keeping its current heading. Since no terrain intersection...
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
Definition: localObject.h:61
static std::set< DtString > theDoNotArchiveAttributes
Definition: localObject.h:818
virtual bool isLocal() const
Returns true if this object is a locally simulated object.
VRF4API_METHOD bool isVrfSimulated() const
These are backwards compatible methods that can be used if you define ALLOW_VRF4API in your header fi...
Definition: localObject.h:859
DtVrfObjectPlanManager * myVrfObjectPlanManager
Definition: localObject.h:798
boost::signals2::signal< void(DtLocalObject *, DtVrfObjectHandoffData &)> signal_prepareForHandoff
Signal sent in preparing for handoff. Set the handoffFlag to Abort if this item should not be handed ...
Definition: localObject.h:585
Definition: decoratorBase.h:40
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)