VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simObject.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 
11 #include "vrfStateData/stateData.h"
17 #include <boost/signals2.hpp>
18 #include <matrix/vlVector.h>
19 #include <geometry/extent.h>
20 #include <vrfutil/rwUUID.h>
21 #include <vlpi/appearance.h>
22 #include <vlpi/disEnums.h>
23 #include <matrix/vlDcm.h>
24 #include <matrix/vlTaitBryan.h>
25 #include <map>
26 #include <list>
27 #include <tbb/spin_rw_mutex.h>
28 #include <vrfutil/vrf4XAPI.h>
29 
31 
32 namespace makVrf
33 {
34  class DtIffStateComponent;
35  class DtLaserDesignatorStateComponent;
36  class DtExternalCurrentFrameState;
37  class DtStateData;
38  class DtVrfObjectGeometry;
39  class DtRwVrfKinematicState;
40 }
41 namespace MAKVRinTerra
42 {
43  class DtFeatureGeometry;
44 }
45 
48 class DtRangeItems;
49 class DtLocalVertexList;
50 class DtVertexList;
52 class DtSymbolString;
53 class DtRwProperties;
54 class DtRwReal;
56 class DtOutputStream;
57 class DtObjectConsole;
58 class Coordinate_System;
59 class DtSimObject;
60 class DtChord;
61 class DtAttachedTerrain;
62 class DtPhysicalWorld;
63 class DtSimObjectManager;
66 class Dt3dBoundingVolume;
67 class DtEntityIdentifier;
70 
74 
78 
89 {
90 private:
92  DtSimObject();
93  DtSimObject(const DtSimObject&);
94 
95 public:
98  explicit DtSimObject(const DtSimulationServices* simManager, const DtUUID& uuid);
99  explicit DtSimObject(const DtSimulationServices* simManager, const DtEntityIdentifier& id);
100  explicit DtSimObject(const DtSimulationServices* simManager, const makVrf::DtExternalCurrentFrameState*);
101 
103  virtual ~DtSimObject();
104 
105  DtSimObject& operator=(const DtUUID&);
106  DtSimObject& operator=(const DtSimObject& rhs) { return operator=(rhs.uuid()); };
107 
108  bool operator==(const DtUUID& rhs) const;
109  bool operator==(const DtSimObject& rhs) const { return (*this == rhs.uuid()); };
110 
111  bool operator!=(const DtUUID& rhs) const { return !(*this == rhs); };
112  bool operator!=(const DtSimObject& rhs) const { return !(*this == rhs); };
113 
115  const DtUUID& uuid() const;
116  const DtString& objectName() const;
117  DtString label() const;
118  DtEntityType entityType() const;
119  DtObjectType objectType() const;
120 
122  bool isClutterEntity() const;
123 
125  makVrf::DtVrfObjectGeometry objectGeometry() const;
126  Dt3dBoundingVolume boundingVolume() const;
127  DtVector localBoundingVolumeCenterPosition() const;
128  DtExtent extent() const;
129 
131  DtExtent roughExtent() const;
132  void expandExtent(DtExtent& extent) const;
133 
135  const makVrf::DtIffStateComponent* iffStateComponent() const;
136  std::vector<const makVrf::DtLaserDesignatorStateComponent*> laserDesignatorStateComponents() const;
137 
139  template <typename T_Component>
140  const T_Component* getStateComponent() const
141  {
142  return myExternalCurrentFrameState->getStateComponent<T_Component>();
143  }
144 
145  template <typename T_Component>
146  std::vector<const T_Component*> getStateComponentList() const
147  {
148  return myExternalCurrentFrameState->getStateComponentList<T_Component>();
149  }
150 
151  template <typename T_Component>
152  bool hasStateComponent() const
153  {
154  return myExternalCurrentFrameState->hasStateComponent<T_Component>();
155  }
157 
160  makVrf::DtRwVrfKinematicState kinematicState() const;
161 
164  const DtVector& worldPosition() const;
165  const DtVector&localPosition() const;
166  const DtVector&parentPosition() const;
167  double distSquaredTo(const DtVector&) const;
168 
170  bool hasLocationChanged() const;
171 
174  bool objectVerticesChanged() const;
175 
178  bool worldVerticesChanged() const;
179 
181  bool haveVerticesChanged() const;
182 
183  virtual void frameAdvanced();
184  virtual void firstFrameAdvance();
185 
187  const DtTaitBryan& topographicOrientation() const;
188  const DtTaitBryan& worldOrientation() const;
189  const DtTaitBryan& localOrientation() const;
190  const DtTaitBryan& parentOrientation() const;
191  const DtTaitBryan& localOrientationWrtDatabase() const;
192  const DtDcm& localOrientationMatrix() const;
193  const DtDcm& parentOrientationMatrix() const;
194  const DtDcm& worldOrientationMatrix() const;
195  double heading() const;
196  double pitch() const;
197  double roll() const;
199 
201  virtual bool isLocal() const;
202 
204  DtForceType forceType() const;
205 
207  const DtEntityIdentifier& entityId() const;
208  const DtEntityIdentifier& objectIdentifier() const
209  {
210  return entityId();
211  }
212 
214  bool isDestroyed() const;
215  int damageState() const;
216 
217  const DtString& globalId() const;
218 
222  bool isUnit() const;
224 
226  const DtPlatformSimObjectFacade& platformSimObjectFacade() const;
227 
229  const DtVrfSimulatedSimObjectFacade& vrfSimulatedSimObjectFacade() const;
230 
232  bool isEntityOrUnit() const;
233  bool isSimulatedObject() const { return isEntityOrUnit(); };
234 
236  bool isEntity() const;
237 
240  bool isEmbarked() const;
241 
242  bool embarkedOnHighFidelityObject() const;
243 
245  DtUUID embarkedOn() const;
246  DtSimObjectReference simObjectEmbarkedOn() const;
247  bool isEmbarkedOn(const DtUUID&) const;
249 
252  bool isValid() const;
253 
254  int sessionId() const;
255  bool isVrfSimulatedObject() const;
256 
257  bool isOnTopOf(const DtSimObject* o) const;
258 
260  bool isOnTopOf(const DtSimObject* o, double d) const;
261 
262  bool isOnTopOf(const DtSimObject* o, double d, const DtVector& position) const;
263 
265  bool isDeleted() const;
266 
268  virtual DtVrfLocalObjectCreateInformation vrfLocalObjectCreateInformation() const;
269 
271  virtual void makeInvalid();
272 
274  {
275  return mySimulationServices;
276  }
277 
280  {
281  return myParameters;
282  }
283 
287  DtVrfObjectParameters* duplicateParameters();
288 
290  double totalMass() const;
291 
292  const Coordinate_System* coordinateSystem() const;
293 
294  const DtLocalVertexList& localVertices() const;
295  const DtVertexList& worldVertices() const;
296  const DtLocalVertexList& relativeVertices() const;
297 
300  DtVector locationRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
301 
304  DtVector velocityRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
305 
308  DtVector accelerationRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
309 
312  DtTaitBryan orientationRelativeTo(const DtTaitBryan&, const DtSimObject* relativeTo) const;
313 
316  const DtRwProperties& parameterProperties() const;
317 
319  double distanceToLocalVector(const DtVector&) const;
320 
322  DtSimObjectReference simObjectReference() const;
323 
325  unsigned long long legionGlobalId() const;
326 
329  {
330  return myAwaiting;
331  }
332 
334  bool advancedFrame() const
335  {
336  return myAdvancedFrame;
337  }
338 
339  DtSimObjectReference superior() const;
340  DtUUID superiorUUID() const;
341 
342  const DtSimObjectReferenceList& attachments() const;
343 
345  bool isTopLevel() const;
346 
348  MAKVRinTerra::DtFeatureGeometry featureGeometry() const;
349 
350  const DtAttachedTerrain* terrainAttachedTo() const;
351 
352 public:
355  boost::signals2::signal<void ()> signal_objectVerticesChanged;
356 
358  mutable boost::signals2::signal<void (const DtSimObject*)> signal_extendedDataUpdated;
359 
360  mutable boost::signals2::signal<void (const DtSimObject*)> signal_simObjectDeleted;
361 
363  mutable boost::signals2::signal<void (const DtSimObject*, const DtString&)> signal_discoveredReference;
364 
366  mutable boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)> signal_uuidChanged;
367 
369  mutable boost::signals2::signal<void (const DtSimObject*, const DtString& oldName, const DtString& newName)> signal_objectRenamed;
370 
372  mutable boost::signals2::signal<void (const DtSimObject*, const DtUUID& oldSuperior, const DtUUID& newSuperior)> signal_superiorChanged;
373 
375  mutable boost::signals2::signal<void(const DtSimObject*)> signal_isClutterChanged;
376 
381  mutable boost::signals2::signal<void ()> signal_advancedFrame;
382 
384  boost::signals2::signal<void ()> signal_firstFrameAdvance;
385 
386 public:
390  virtual void clearDecorators();
391 
394  DtSimObjectDecorator* getOrCreateDecorator(const std::string& Decorator) const;
396 
398  {
399  if (myCurrentFrameSimulatedObjectStateComponent)
400  {
401  return myCurrentFrameSimulatedObjectStateComponent;
402  }
403  else if (!myCachedComponents && hasStateComponent<makVrf::DtSimulatedObjectStateComponent>())
404  {
405  return getStateComponent<makVrf::DtSimulatedObjectStateComponent>();
406  }
407  else
408  {
409  return nullptr;
410  }
411  }
412 
414  {
415  if (myCurrentFrameLocationStateComponent)
416  {
417  return myCurrentFrameLocationStateComponent;
418  }
419  else if (!myCachedComponents && hasStateComponent<makVrf::DtLocationStateComponent>())
420  {
421  return getStateComponent<makVrf::DtLocationStateComponent>();
422  }
423  else
424  {
425  return nullptr;
426  }
427  }
428 
430  {
431  if (myCurrentFrameVrfGeometryStateComponent)
432  {
433  return myCurrentFrameVrfGeometryStateComponent;
434  }
435  else if (!myCachedComponents && hasStateComponent<makVrf::DtVrfGeometryStateComponent>())
436  {
437  return getStateComponent<makVrf::DtVrfGeometryStateComponent>();
438  }
439  else
440  {
441  return nullptr;
442  }
443  }
444 
446  {
447  return myCurrentFrameEntityStateComponent;
448  }
449 
451  {
452  if (myCurrentFrameVrfStateComponent)
453  {
454  return myCurrentFrameVrfStateComponent;
455  }
456  else if (!myCachedComponents && hasStateComponent<makVrf::DtVrfStateComponent>())
457  {
458  return getStateComponent<makVrf::DtVrfStateComponent>();
459  }
460  else
461  {
462  return nullptr;
463  }
464  }
465 
466 protected:
467  void tickDecorators();
468  void cacheComponents();
469  void clearCachedComponents();
470 
471  virtual void createNavigationDecorator();
472 
473  void stateDataAdded(makVrf::DtStateData*);
474  virtual void setupVrfObjectParameters();
475  virtual void setUUID(const DtUUID&);
476  bool checkAndConnectForVrfStateComponent();
477 
478  void uuidChanged(const DtUUID&, const DtUUID&);
479  void objectNameChanged(const DtString& oldText, const DtString& newText);
480 
481  void attachmentsChanged();
482  virtual void completeSetup();
483  void extendedDataUpdated();
484  void superiorChanged();
485  virtual void isClutterChanged();
486 
487  virtual void hostChanged(const DtUUID& oldHost, const DtUUID& newHost);
488 
490  virtual void usingParameterSource(const DtString&);
491  virtual void externalFrameStateToBeDestroyed();
492 
493 private:
494  friend class DtSimObjectManager;
497  void resetUUID(const DtUUID&);
498 
499 protected:
502 
505  typedef std::map<std::string, DtSimObjectDecorator*> SimObjectDecorators;
507  mutable tbb::spin_rw_mutex mySimObjectDecoratorMutex;
509 
510  boost::signals2::scoped_connection myDeletedConnection;
511  boost::signals2::scoped_connection myAddedConnection;
512  boost::signals2::scoped_connection myUUIDChangedConnection;
513  boost::signals2::scoped_connection myObjectNameChangedConnection;
514  boost::signals2::scoped_connection myExtendedDataUpdatedConnection;
515  boost::signals2::scoped_connection myFirstFrameAdvancedConnection;
516  boost::signals2::scoped_connection mySuperiorChangedConnection;
517  boost::signals2::scoped_connection myAdvancedFrameConnection;
518  boost::signals2::scoped_connection myIsClutterChangedConnection;
519 
522  {
523  ExtentInformation() : lastSimTime(-1.), physicalFootprint(nullptr) {};
524  double lastSimTime;
528  tbb::spin_rw_mutex mutex;
529  };
530 
532  DtNavigationSimObjectDecorator* myNavigationSimDecorator = nullptr;
533 
537 
540  unsigned long long myLegionGlobalId;
541 
544 
546 
548 
552 
555  boost::signals2::scoped_connection myAttachmentsChangedConnection;
556 
560 
563  mutable tbb::spin_rw_mutex mySimObjectReferenceMutex;
564 
566  boost::signals2::scoped_connection myHostChangedConnection;
567 
568  mutable tbb::spin_rw_mutex myExternalCurrentFrameStateMutex;
569 
571 
577 
582 
583 public:
588  VRF4API_METHOD const DtSimObject* vrfState();
589  VRF4API_METHOD const DtSimObject* vrfState() const;
590  VRF4API_METHOD const DtSimObject* simState();
591  VRF4API_METHOD const DtSimObject* simState() const;
592  VRF4API_METHOD bool operator==(const DtSimObject* rhs) const { if (!rhs) return false; else return (uuid() == rhs->uuid()); };
593  VRF4API_METHOD const DtSimulationServices* simManager() const;
594  VRF4API_METHOD DtSimulationServices* simManager();
595  VRF4API_METHOD makVrf::DtVrfObjectGeometry vrfObjectGeometry() const;
596  VRF4API_METHOD const DtPhysicalWorld* physicalWorld() const;
597  VRF4API_METHOD DtSimObjectReference sharedReference() const { return simObjectReference(); };
598  VRF4API_METHOD const DtVrfObjectParameters* parameterEntry() const;
599  VRF4API_METHOD const DtSimObjectManager* simObjectManager() const;
600  VRF4API_METHOD DtSimObjectReference vrfObject() const;
601  VRF4API_METHOD DtSimObjectReference parent() const;
602  VRF4API_METHOD double currentHeading() const;
603  VRF4API_METHOD double currentPitch() const;
604  VRF4API_METHOD double currentRoll() const;
605  VRF4API_METHOD const DtString& markingText() const;
606 
607  VRF4API_METHOD bool isSpatiallyFrozen() const;
608  VRF4API_METHOD bool isFrozen() const;
609 
611  VRF4API_METHOD double speed() const;
612 
617  VRF4API_METHOD double forwardSpeed() const;
618  VRF4API_METHOD DtVector worldVelocity() const;
619  VRF4API_METHOD DtVector localVelocity() const;
620  VRF4API_METHOD DtVector bodyVelocity() const;
621  VRF4API_METHOD DtVector relativeVelocity() const;
622  VRF4API_METHOD DtVector parentVelocity() const;
623  VRF4API_METHOD DtVector rotationalVelocity() const;
624 
626  VRF4API_METHOD DtVector worldAcceleration() const;
627  VRF4API_METHOD DtVector localAcceleration() const;
628  VRF4API_METHOD DtVector relativeAcceleration() const;
629 
631 };
632 
633 #include "simObject.inl"
const makVrf::DtSimulatedObjectStateComponent * myCurrentFrameSimulatedObjectStateComponent
Definition: simObject.h:572
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool hasStateComponent() const
Definition: simObject.h:152
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:63
const makVrf::DtVrfStateComponent * currentFrameVrfStateComponent() const
Definition: simObject.h:450
const DtEntityIdentifier & objectIdentifier() const
Definition: simObject.h:208
Extent information as to what it is and when it was last calculated.
Definition: simObject.h:521
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
const makVrf::DtVrfStateComponent * myCurrentFrameVrfStateComponent
Definition: simObject.h:573
Definition: attachedTerrain.h:46
Objects may contain a collection of other objects, such as overlays or pseudo-aggregate entities...
Definition: subordinateManager.h:43
std::map< std::string, DtSimObjectDecorator * > SimObjectDecorators
Decorator members.
Definition: simObject.h:505
DtSimObjectReference mySuperior
Superior.
Definition: simObject.h:558
DtString myObjectName
This is for debug purposes only. It will get set when the bounding volume is checked (and locked) and...
Definition: simObject.h:550
std::vector< const T_Component * > getStateComponentList() const
Definition: simObject.h:146
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
const DtSimulationServices * mySimulationServices
Definition: simObject.h:500
DtVrfSimulatedSimObjectFacade * myVrfSimulatedSimObjectFacade
Definition: simObject.h:581
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: simObjectReferenceList.h:118
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
DtUUID myUUID
Once assigned, the UUID of this object. This will be valid even after the object is deleted...
Definition: simObject.h:539
1) Define the interface class that will be used to represent the next and current frames...
Definition: entityStateComponent.h:70
bool myIsDeleted
Definition: simObject.h:547
DtSimObjectReference mySimObjectReference
Back pointer to this objects reference.
Definition: simObject.h:562
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
const makVrf::DtExternalCurrentFrameState * myExternalCurrentFrameState
Definition: simObject.h:501
tbb::spin_rw_mutex myExternalCurrentFrameStateMutex
Definition: simObject.h:568
tbb::spin_rw_mutex mySimObjectReferenceMutex
Definition: simObject.h:563
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
VRF4API_METHOD bool operator==(const DtSimObject *rhs) const
This is the deprecated API that can be used as a reference to migrate 4.X code to 5...
Definition: simObject.h:592
Contains the DtUUID class declaration.
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
unsigned long long myLegionGlobalId
Definition: simObject.h:540
Definition: navigationDecorator.h:17
tbb::spin_rw_mutex mutex
Definition: simObject.h:528
boost::signals2::signal< void(const DtSimObject *, const DtString &)> signal_discoveredReference
Signal sent if this was awaiting for the base data to show up, and, it has.
Definition: simObject.h:363
boost::signals2::signal< void()> signal_firstFrameAdvance
Signal when the frame is advanced for the first time.
Definition: simObject.h:384
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:91
ExtentInformation myExtentInformation
Definition: simObject.h:531
bool advancedFrame() const
Will be true if this object has advanced at least one frame.
Definition: simObject.h:334
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::scoped_connection myIsClutterChangedConnection
Definition: simObject.h:518
bool myCachedComponents
Definition: simObject.h:578
Definition: objectType.h:27
const DtSimulationServices * simulationServices() const
Definition: simObject.h:273
DtAggregateSimObjectFacade * myAggregateSimObjectFacade
Definition: simObject.h:579
DtExtent extent
Definition: simObject.h:526
boost::signals2::signal< void(const DtSimObject *, const DtString &oldName, const DtString &newName)> signal_objectRenamed
Signal sent when the uuid of this object has changed. Sent during a frame advance.
Definition: simObject.h:369
const DtVrfObjectParameters * parameters() const
VR-Forces parameters.
Definition: simObject.h:279
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:62
This class represents the console for an individual object. It owns a set of streams for various noti...
Definition: objectConsole.h:49
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:102
Definition: coordSystem.h:54
boost::signals2::signal< void(const DtUUID &oldUUID, const DtUUID &newUUID)> signal_uuidChanged
Signal sent when the uuid of this object has changed. Sent during a frame advance.
Definition: simObject.h:366
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
boost::signals2::signal< void(const DtSimObject *)> signal_isClutterChanged
Signal sent out (during advance frame) when the is-clutter flag has been updated. ...
Definition: simObject.h:375
const makVrf::DtEntityStateComponent * currentFrameEntityStateComponent() const
Definition: simObject.h:445
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfObjectParameters * myDuplicateParameters
Definition: simObject.h:545
class DtVertexList:
Definition: vertexList.h:22
const DtVrfObjectParameters * myParameters
Referenced from the simulation services object database based on entity type.
Definition: simObject.h:543
DtObjectType myEntityType
Definition: simObject.h:551
boost::signals2::scoped_connection myDeletedConnection
Definition: simObject.h:510
DtString myAwaiting
If this object is awaiting for its reference to show up, this will be either a UUID or an entity id s...
Definition: simObject.h:536
bool operator!=(const DtUUID &rhs) const
Definition: simObject.h:111
boost::signals2::signal< void(const DtSimObject *)> signal_simObjectDeleted
Definition: simObject.h:360
boost::signals2::signal< void(const DtSimObject *)> signal_extendedDataUpdated
Signal sent out (during advance frame) when the extended data has been updated.
Definition: simObject.h:358
Definition: stateData.h:263
Definition: rangeItem.h:206
const DtUUID & uuid() const
@ Convenience accessors for various pieces of state Data
DtUUID myEmbarkedOn
Definition: simObject.h:570
This class maintains a rectangular bounding volume and an ordered list of vertices describing the phy...
Definition: vrfObjectGeometry.h:39
DtString awaiting() const
If awaiting, who awaiting for.
Definition: simObject.h:328
SimObjectDecorators mySimObjectDecorators
Decorator members.
Definition: simObject.h:506
const makVrf::DtLocationStateComponent * myCurrentFrameLocationStateComponent
Definition: simObject.h:575
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
const makVrf::DtEntityStateComponent * myCurrentFrameEntityStateComponent
Definition: simObject.h:574
This is a convenience list that will add DtSimObjectReference objects and modify the list as objects ...
Definition: simObjectReferenceList.h:23
const DtRwReal * physicalFootprint
Definition: simObject.h:525
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManager.h:42
const makVrf::DtVrfGeometryStateComponent * currentFrameVrfGeometryStateComponent() const
Definition: simObject.h:429
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:88
Contains the declaration of the DtExtent class.
boost::signals2::signal< void()> signal_objectVerticesChanged
Signal sent when the user changes the vertices via a set command. If this is a remote object...
Definition: simObject.h:355
DtSimObjectReferenceList * myAttachments
Attachments.
Definition: simObject.h:554
bool operator==(const DtSimObject &rhs) const
Definition: simObject.h:109
Definition: decoratorBase.h:30
DtPlatformSimObjectFacade * myPlatformSimObjectFacade
Definition: simObject.h:580
boost::signals2::scoped_connection myAttachmentsChangedConnection
Definition: simObject.h:555
boost::signals2::scoped_connection myExtendedDataUpdatedConnection
Definition: simObject.h:514
boost::signals2::scoped_connection myAddedConnection
Definition: simObject.h:511
boost::signals2::signal< void(const DtSimObject *, const DtUUID &oldSuperior, const DtUUID &newSuperior)> signal_superiorChanged
Signal sent when superior has changed.
Definition: simObject.h:372
Definition: rwVrfKinematicState.h:25
Contains the DtSimObjectReference class declaration.
tbb::spin_rw_mutex mySimObjectDecoratorMutex
Decorator members.
Definition: simObject.h:507
bool isSimulatedObject() const
Definition: simObject.h:233
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
const makVrf::DtLocationStateComponent * currentFrameLocationStateComponent() const
Definition: simObject.h:413
boost::signals2::scoped_connection myObjectNameChangedConnection
Definition: simObject.h:513
VRF4API_METHOD DtSimObjectReference sharedReference() const
This is the deprecated API that can be used as a reference to migrate 4.X code to 5...
Definition: simObject.h:597
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:83
DtVector lastPosition
Definition: simObject.h:527
boost::signals2::scoped_connection myUUIDChangedConnection
Definition: simObject.h:512
boost::signals2::scoped_connection mySuperiorChangedConnection
Definition: simObject.h:516
const makVrf::DtSimulatedObjectStateComponent * currentFrameSimulatedObjectStateComponent() const
Definition: simObject.h:397
class DtLocalVertexList:
Definition: localVertexList.h:20
#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
This DtPlatformSimObjectFacadeInterface class will provide API functionality for platform objects...
Definition: platformSimObjectFacade.h:24
boost::signals2::scoped_connection myAdvancedFrameConnection
Definition: simObject.h:517
bool myAdvancedFrame
Definition: simObject.h:559
bool operator!=(const DtSimObject &rhs) const
Definition: simObject.h:112
boost::signals2::signal< void()> signal_advancedFrame
Signal sent when the state data signals that the frame has been advanced WARNING: This signal will be...
Definition: simObject.h:381
boost::signals2::scoped_connection myHostChangedConnection
Definition: simObject.h:566
Represents a feature geometry.
Definition: featureGeometry.h:39
DtAttachedTerrain * myTerrainAttachedTo
Definition: simObject.h:565
DtSimObject & operator=(const DtSimObject &rhs)
Definition: simObject.h:106
This DtVrfSimulatedSimObjectFacadeInterface class will provide accessors for data that is available t...
Definition: vrfSimulatedSimObjectFacade.h:27
This DtAggregateSimObjectFacadeInterface class will provide API functionality for aggregate level cal...
Definition: aggregateSimObjectFacade.h:25
const T_Component * getStateComponent() const
General call to get any component that does not have a method.
Definition: simObject.h:140
boost::signals2::scoped_connection myFirstFrameAdvancedConnection
Definition: simObject.h:515
const makVrf::DtVrfGeometryStateComponent * myCurrentFrameVrfGeometryStateComponent
Definition: simObject.h:576

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)