VR-Forces 5.0.3 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 
217  virtual void removedFromSimulation();
218 
220 
221  virtual void setNextFrameInvisible(bool);
222  virtual bool nextFrameInvisible() const;
223 
224  virtual void setNextFrameOverlay(const DtString&);
225 
226  virtual bool nextFrameSensorsKilled() const;
227  virtual void setNextFrameSensorsKilled(bool sensorsKilled);
228 
229  virtual void setNextFrameInvisibleSetByUser(bool b);
230  virtual bool nextFrameInvisibleSetByUser() const;
231 
232  virtual DtString nextFrameOverlay() const;
233 
235 
265 
268  virtual DtOutputStream& objectConsoleDebug(const DtString& channel = "") const;
269 
272  virtual DtOutputStream& objectConsoleVerbose(const DtString& channel = "") const;
273 
275  virtual DtOutputStream& objectConsoleInfo(const DtString& channel = "") const;
276 
279  virtual DtOutputStream& objectConsoleWarn(const DtString& channel = "") const;
280 
283  virtual DtOutputStream& objectConsoleError(const DtString& channel = "") const;
284 
286  int notifyLevel() const;
287  const DtObjectConsole* objectConsole() const;
289 
290  virtual void makeInvalid() override;
291 
293  bool isValid() const;
294 
295  bool publishObject() const;
296  int publishFlag() const;
297  virtual void setNextFrameIsBackgroundEntity(bool b);
298  virtual void setNextFrameIsVrfSimulated(bool);
299  virtual bool nextFrameIsVrfSimulated() const;
300 
301  virtual bool isRemoteAttachedObject() const;
302 
303  virtual void setNextFrameEngagementRules(const DtString&);
304  virtual DtString nextFrameEngagementRules() const;
305 
306  virtual void setNextFrameIsTasked(bool);
307  virtual bool nextFrameIsTasked() const;
308 
309  virtual void setNextFrameIndependentlyTasked(bool);
310  virtual bool nextFrameIndependentlyTasked() const;
311 
312  virtual void setNextFrameGlobalId(const DtString&);
313 
314  virtual void setNextFrameEntityId(const DtEntityIdentifier& id);
315  virtual DtEntityIdentifier nextFrameEntityId() const;
316 
318  virtual bool setNextFrameObjectName(const DtString&);
319  virtual DtString nextFrameObjectName() const;
320 
321  virtual void setNextFrameObjectType(const DtObjectType&);
322  virtual DtObjectType nextFrameObjectType() const;
323 
324  void setNotifyLevel(int);
326 
327  bool converting() const
328  {
329  return myConverting;
330  }
331 
333  template <typename T_Component>
334  T_Component* addStateComponent(bool checkWritable = false, bool isRemote = false)
335  {
336  if (isValid())
337  {
338  return myExternalNextFrameState->addStateComponent<T_Component>(checkWritable, isRemote);
339  }
340  else
341  {
342  throw makVrf::DtUnimplementedMethod("The addStateComponent is not implemented for this class.");
343  }
344  }
345 
347 
350  virtual bool nextFrameIsEmbarked() const;
352  virtual DtUUID nextFrameEmbarkedOn() const;
353  virtual void setNextFrameEmbarkedOn(const DtUUID& u);
354  virtual bool nextFrameIsEmbarkedOn(const DtUUID&) const;
355  virtual DtSimObjectReference nextFrameSimObjectEmbarkedOn() const;
356 
358  virtual void setNextFrameEchelonId(const DtEchelonId&);
359  virtual DtEchelonId nextFrameEchelonId() const;
360 
362  virtual void setNextFrameForceType(int);
363  virtual DtForceType nextFrameForceType() const;
364 
365  virtual void setNextFrameSessionId(int);
366  virtual int nextFrameSessionId() const;
367 
368  virtual void setNextFrameVrfMessageVersionSupported(int);
369  virtual int nextFrameVrfMessageVersionSupported() const;
370 
372  virtual void removeNextFrameExtendedData(const DtString&);
373 
375  void removeStateComponent(const makVrf::DtFrameStateInterface*);
376 
378  virtual void upgradeFromImport();
379 
382  makVrf::DtTaskVisualizationStateComponent* lineTaskVisualization(const DtString& visualName, const DtString& component);
383  makVrf::DtTaskVisualizationStateComponent* pointTaskVisualization(const DtString& visualName, const DtString& component);
384  makVrf::DtTaskVisualizationStateComponent* areaTaskVisualization(const DtString& visualName, const DtString& component);
385  makVrf::DtTaskVisualizationStateComponent* textTaskVisualization(const DtString& visualName, const DtString& component);
386  void removeTaskVisualization(makVrf::DtTaskVisualizationStateComponent*);
388 
389  makVrf::DtLaserDesignatorStateComponent* addLaserDesignator();
390  void removeLaserDesignator(makVrf::DtLaserDesignatorStateComponent*);
391 
392  makVrf::DtEmitterSystemStateComponent* addEmitterSystem();
393  void removeEmitterSystem(makVrf::DtEmitterSystemStateComponent*);
394 
395  makVrf::DtActiveSonarStateComponent* addActiveSonarSystem();
396  void removeActiveSonarSystem(makVrf::DtActiveSonarStateComponent*);
397 
398  makVrf::DtRadioTransmitterStateComponent* addRadioTransmitter();
399  void removeRadioTransmitter(makVrf::DtRadioTransmitterStateComponent*);
400 
401  makVrf::DtNavAidRadioTransmitterStateComponent* addNavAidRadioTransmitter();
402  void removeNavAidRadioTransmitter(makVrf::DtNavAidRadioTransmitterStateComponent*);
403 
404  makVrf::DtRadioReceiverStateComponent* addRadioReceiver();
405  void removeRadioReceiver(makVrf::DtRadioReceiverStateComponent*);
406 
408  makVrf::DtIffStateComponent* getOrCreateIffSystem();
409  void removeIffSystem();
410 
412  makVrf::DtUnderwaterAcousticsStateComponent* getOrCreateUnderwaterAcousticsSystem(bool isRemote = false);
413  void removeUnderwaterAcousticsSystem();
414 
415  virtual void setNextFrameUnderFire(bool b);
416  virtual bool nextFrameUnderFire() const;
417  virtual void setNextFrameInvulnerable(bool);
418  virtual bool nextFrameInvulnerable() const;
419 
420  virtual void setNextFrameUndetectable(bool);
421  virtual bool nextFrameUndetectable() const;
422 
424  virtual void setNextFrameHalfLengthWidthHeight(double length, double width, double height);
425  virtual void setNextFrameObjectGeometry(const makVrf::DtVrfObjectGeometry&);
426  virtual void setNextFrameBoundingGeometryType(DtSimBoundingGeometry::DtSimBoundingGeometryType type);
427  virtual void setNextFrameBoundingVolume(const Dt3dBoundingVolume& b);
428 
429  virtual void setNextFrameHasPlan(bool);
430  virtual bool nextFrameHasPlan() const;
431 
432  virtual void setNextFrameExecutingPlan(bool);
433  virtual bool nextFrameExecutingPlan() const;
434 
435  virtual void setNextFrameOccupantsHidden(bool);
436  virtual bool nextFrameOccupantsHidden() const;
437 
439  virtual std::map<DtString, DtString> nextFrameExtendedDataMap() const;
440 
442  virtual std::map<int, DtString> nextFrameExtendedLabels() const;
443 
444  virtual bool nextFrameIsOnTopOf(const DtSimObject* o, bool checkSupportPoints = false) const;
445  virtual bool nextFrameIsOnTopOf(const DtSimObject* o, double d, bool checkSupportPoints = false) const;
446 
448  DtLocalObjectDecorator* getOrCreateDecorator(const std::string& Decorator);
449 
451  void setLocationComplete();
452 
454  boost::signals2::signal<void ()> signal_preUpgradeFromImport;
455 
457  boost::signals2::signal<void ()> signal_postUpgradeFromImport;
458 
460  boost::signals2::signal<void ()> signal_objectInitialized;
461 
463  boost::signals2::signal<void ()> signal_objectRestored;
464 
466  boost::signals2::signal <void (DtLocalObject*)> signal_objectModifiedViaMessage;
467 
469  boost::signals2::signal <void (DtLocalObject*)> signal_newSensorContact;
470 
472  boost::signals2::signal <void (DtLocalObject*)> signal_navigationAreaChanged;
473 
475  boost::signals2::signal <void (DtLocalObject*)> signal_setLocationComplete;
476 
478  boost::signals2::signal<void ()> signal_restored;
479 
481  mutable boost::signals2::signal<void (const DtLocalObject*, ChangeFlag)> signal_objectDataChanged;
482 
484  boost::signals2::signal<void(const DtLocalObject*)> signal_localObjectAboutToBeDeleted;
485 
486  virtual void setNextFrameParameterProperties(const DtRwProperties&);
487  const DtRwProperties& nextFrameParameterProperties() const;
488 
489  virtual const DtRwProperties& nextFrameStateProperties() const;
490  virtual const DtRwProperties& stateProperties() const;
491  virtual void setNextFrameStateProperties(const DtRwProperties&);
492 
494  virtual bool nextFrameFuelLevelsFrozen() const;
495 
497  virtual bool nextFrameMunitionLevelsFrozen() const;
498 
501  virtual void setSimulationCapable(bool);
502  bool simulationCapable() const;
503 
505  virtual void setNextFrameBlockParachute(bool);
506  virtual bool nextFrameBlockParachute() const;
507 
511  virtual void setNextFrameOnTerrainSurface(bool b);
512  virtual bool nextFrameOnTerrainSurface() const;
513 
514 public:
517 
520  virtual bool createInternalState(const DtVrfObjectParameters* parameterEntry);
521 
524  virtual bool setupSubComponentTypes();
526 
529  virtual bool init();
530 
535  virtual bool create();
536 
543  static DtLocalObjectCreatorFcn setLocalObjectCreatorFunction(DtLocalObjectCreatorFcn);
544  static DtLocalObjectCreatorFcn localObjectCreatorFunction();
546 
549 
551 
554 
555  static void readDRThresholdSettingsCallback(
556  const DtSettingsObject* settings, void* usr);
557  virtual void processReadDRThresholdSettings(const DtSettingsObject* settings);
559 
561  bool isGlobalPlan() const;
562 
564  bool isSyncMatrix() const;
565 
567  virtual int publicationFlag() const;
568 
569 public:
573 
576  static void enableSingleObjectMode();
578  static bool singleObjectModeActive();
580 
581  virtual bool convertToRemoteObject(DtString& error);
582  virtual bool convertToLocalObject(DtString& error, const std::string& archiveState);
584  boost::signals2::signal<void (DtLocalObject*, DtVrfObjectHandoffData::HandoffFlag)> signal_handoffStep;
585 
586  virtual bool prepareForHandoff();
589  boost::signals2::signal<void (DtLocalObject*, DtVrfObjectHandoffData&)> signal_prepareForHandoff;
590 
591  virtual std::string archiveState() const;
592 
593 public:
594  typedef std::list<DtLuaScriptInterfaceExtension::CreatorUserPair> ScriptInterfaceExtensions;
595 
606 
607  const DtObjectResourceManager* objectResourceManager() const;
608  DtObjectResourceManager* objectResourceManager();
610 
611  virtual DtVrfObjectStateRepository* internalState();
612  virtual const DtVrfObjectStateRepository* internalState() const;
613 
617  virtual void prepareForReinitialization();
618 
621  DtVrfObjectSubComponentTypes* vrfSubComponentTypes() const;
622 
627  virtual void tick();
628 
629  virtual void startTick();
630  virtual void tickComponents();
631  virtual void endTick();
632 
634  virtual int scenarioRunId() const;
635 
638  virtual bool checkIfMoveOntoEmbarked(const DtVector& localPosition, const DtSimObject*& hit, const std::list<DtUUID>& additionalIgnore = std::list<DtUUID>());
639 
641  virtual bool checkAndDisembarkIfEmbarked(const DtVector& localPosition);
642  virtual bool lowFidelityDisembarkHitCheck(const DtVector& localPosition) const;
643  virtual bool highFidelityDisembarkHitCheck(const DtVector& localPosition) const;
644 
645 public:
648  virtual DtVrfObjectCommunicationInterface* communicationInterface();
649  virtual const DtVrfObjectCommunicationInterface* communicationInterface() const;
650  virtual DtVrfObjectTerrainPreloadManager* terrainPreloadManager();
651  virtual DtSimRadio* radio() const;
652  virtual DtSimTaskManager* taskManager() const;
653  virtual DtScriptInterfaceHandler* scriptInterfaceHandler() const;
654  virtual DtVrfObjectPlanManager* vrfObjectPlanManager() const;
655  virtual DtSimComponentManager* componentManager();
656  virtual const DtSimComponentManager* componentManager() const;
657 
662  virtual DtSetDataManager* setDataManager();
663  virtual const DtSetDataManager* setDataManager() const;
665 
666  bool initialized() const
667  {
668  return myInitialized;
669  }
670 
671 public:
674  virtual void cleanupItemsNeededForHandoff();
675  virtual bool recreateItemsNeededFromHandoff();
677 
678 protected:
681  static void logToFileCallback(const DtVrfObjectMessage* msg, void* usr);
682  virtual void processLogToFile(const DtVrfObjectMessage* msg);
683 
684  static void stopLoggingToFileCallback(const DtVrfObjectMessage* msg, void* usr);
685  virtual void processStopLoggingToFile(const DtVrfObjectMessage* msg);
687 
688 public:
691 
695  virtual void addScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
697  virtual void removeScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
699  virtual const ScriptInterfaceExtensions& scriptExtensions() const;
701 
702  virtual void setupFromMessageContent(const DtIfModifyVrfObject* ifModVrfObject);
703  virtual bool validNameLength(const DtString& name) const;
704 
705  static bool shouldArchiveExtendedAttribute(const DtString& s);
706  static void doNotArchiveAttribute(const DtString& s, bool b);
707 
711  virtual void sendVrfObjectCreated(unsigned long requestId = 0, bool requestCreated = true);
712 
714  boost::signals2::signal<void (DtLocalObject*)> signal_postInitFromParams;
715 
716 protected:
717  virtual void setupStateRepository();
718  virtual void internalStateInitializedFromParameters();
719 
724  virtual bool createCommunicationsInterface();
725  virtual void initializeCommunicationInterfaceCallbacks();
726  static void setOverlayLayerTaskCallback(const DtVrfObjectMessage* msg, void* usr);
727  virtual void processSetOverlayLayerTask(const DtVrfObjectMessage* msg);
728 
729  virtual bool createScriptInterfaceHandler();
730 
731  virtual bool createComponentManager();
732 
734  virtual bool initializeComponentManager();
735 
736  virtual bool createRadio();
737  virtual bool createVrfObjectPlanManager();
738  virtual bool createSetDataManager();
739 
740  virtual void tickDecorators();
741 
743  void createRemotelyControlledLocalObject();
744  virtual void completeSetup() override;
745 
746 protected:
747  virtual bool createTaskManager();
748 
751  virtual void createCommunicationsInterface(const DtRadioDescriptorList& descList);
752 
755  virtual void updateEntityHasTarget();
756 
757 protected:
759  void setUUID(const DtUUID&) override;
760 
761  virtual void convertedToRemote();
762 
764  virtual std::map<DtString, DtString> unarchivedData();
765 
766  virtual void clearDecorators() override;
767 
769  virtual void usingParameterSource(const DtString&) override;
770 
772  virtual void setupVrfObjectParameters() override;
773 
774  void cacheNextFrameComponents();
775  void clearNextFrameCachedComponents();
776 
777  virtual void hostChanged(const DtUUID& oldHost, const DtUUID& newHost) override;
778 
780  virtual void setupExtendedDataFromParameterData();
781 
783  virtual bool canBePlaced() const;
784 
785 protected:
787  DtLocalObject(const DtLocalObject& orig);
788 
790  DtLocalObject& operator=(const DtLocalObject& orig);
791 
792 protected:
804 
806 
809  typedef std::map<std::string, DtLocalObjectDecorator*> LocalObjectDecorators;
812 
813  boost::signals2::scoped_connection myConvertedToRemoteConnection;
815 
818 
821 
822  static std::set<DtString> theDoNotArchiveAttributes;
823 
825 
827 
830 
833 
838  bool myIsEnvironmental = false;
839 
841 
848 
850 
852 
853 public:
856  VRF4API_METHOD DtVrfObjectStateRepository* vrfState() { return internalState(); };
857  VRF4API_METHOD const DtVrfObjectStateRepository* vrfState() const { return internalState(); };
858  VRF4API_METHOD void setObjectIdentifier(const DtEntityIdentifier& id) { setNextFrameEntityId(id); };
859  VRF4API_METHOD void place(const DtReal heading, bool* dataAvailable = 0,
860  bool requireAllData = false);
861  VRF4API_METHOD void place(const DtVector& heading, bool* dataAvailable = 0,
862  bool requireAllData = false);
863  VRF4API_METHOD bool isVrfSimulated() const { return nextFrameIsVrfSimulated(); };
864  VRF4API_METHOD void invokeSetLocationCompleteCallbacks() { return setLocationComplete(); };
866 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
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:460
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:864
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:481
virtual void setUUID(const DtUUID &)
bool myCreatedStateData
Definition: localObject.h:805
bool converting() const
Definition: localObject.h:327
makVrf::DtVrfStateComponent * myNextFrameVrfStateComponent
Definition: localObject.h:845
bool myInitializing
Definition: localObject.h:819
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:478
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:857
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:457
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:832
DtVrfObjectTerrainPreloadManager * myTerrainPreloadManager
Definition: localObject.h:797
DtSimObjectReference myNextFrameSimObjectEmbarkedOn
Definition: localObject.h:849
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:803
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:466
DtSimComponentManager * myComponentManager
Definition: localObject.h:801
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:334
LocalObjectDecorators myLocalObjectDecorators
Decorator members.
Definition: localObject.h:810
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:840
boost::signals2::signal< void(DtLocalObject *)> signal_postInitFromParams
Signal sent right after the internal state is initialized from parameters.
Definition: localObject.h:714
Definition: simObjectStateRepository.h:59
Definition: stateData.h:113
bool myHasTarget
Definition: localObject.h:834
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:798
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:469
class DtIfModifyVrfObject:
Definition: ifModifyVrfObject.h:50
Definition: objectType.h:27
boost::signals2::scoped_connection myConvertedToRemoteConnection
Definition: localObject.h:813
const DtSimulationServices * simulationServices() const
Definition: simObject.h:261
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:847
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:858
boost::signals2::signal< void(const DtLocalObject *)> signal_localObjectAboutToBeDeleted
Signal sent when a local object is about to be deleted.
Definition: localObject.h:484
makVrf::DtExternalNextFrameState * myExternalNextFrameState
Definition: localObject.h:795
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:809
boost::signals2::signal< void(DtLocalObject *)> signal_setLocationComplete
Signal sent when the location has been changed by an interface content message.
Definition: localObject.h:475
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:463
bool myConverting
Will be true if this object is in the process of converting from remote to local. ...
Definition: localObject.h:829
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:594
DtSimTaskManager * myTaskManager
Definition: localObject.h:799
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:843
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:584
makVrf::DtLocationStateComponent * myNextFrameLocationStateComponent
Only set if there is no state properties state component.
Definition: localObject.h:842
DtMovementLocalObjectFacade * myMovementLocalObjectFacade
Definition: localObject.h:851
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:814
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:820
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:846
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:90
DtVrfObjectStateRepository * myInternalState
Definition: localObject.h:793
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:666
DtScriptInterfaceHandler * myScriptInterfaceHandler
Definition: localObject.h:800
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:472
makVrf::DtVrfGeometryStateComponent * myNextFrameVrfGeometryStateComponent
Definition: localObject.h:844
DtLocalObject *(* DtLocalObjectCreatorFcn)(DtSimulationServices *, const DtVrfLocalObjectCreateInformation &)
Definition: localObject.h:59
bool mySignalLocationComplete
Definition: localObject.h:837
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:835
Definition: localObject.h:100
DtVrfObjectCommunicationInterface * myCommunicationInterface
Definition: localObject.h:796
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:817
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:454
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:836
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:856
DtAppearanceLocalObjectFacade * myAppearanceLocalObjectFacade
Definition: localObject.h:824
ScriptInterfaceExtensions myScriptInterfaceExtensions
Definition: localObject.h:826
DtVrfObjectSubComponentTypes * mySubComponentTypes
Definition: localObject.h:794
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:822
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:863
DtVrfObjectPlanManager * myVrfObjectPlanManager
Definition: localObject.h:802
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:589
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 Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)