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  if (myExternalCurrentFrameState)
143  {
144  return myExternalCurrentFrameState->getStateComponent<T_Component>();
145  }
146 
147  return nullptr;
148  }
149 
150  template <typename T_Component>
151  std::vector<const T_Component*> getStateComponentList() const
152  {
153  if (myExternalCurrentFrameState)
154  {
155  return myExternalCurrentFrameState->getStateComponentList<T_Component>();
156  }
157 
158  return std::vector<const T_Component*>();
159  }
160 
161  template <typename T_Component>
162  bool hasStateComponent() const
163  {
164  if (myExternalCurrentFrameState)
165  {
166  return myExternalCurrentFrameState->hasStateComponent<T_Component>();
167  }
168 
169  return false;
170  }
172 
175  makVrf::DtRwVrfKinematicState kinematicState() const;
176 
179  const DtVector& worldPosition() const;
180  const DtVector&localPosition() const;
181  const DtVector&parentPosition() const;
182  double distSquaredTo(const DtVector&) const;
183 
185  bool hasLocationChanged() const;
186 
189  bool objectVerticesChanged() const;
190 
193  bool worldVerticesChanged() const;
194 
196  bool haveVerticesChanged() const;
197 
198  virtual void frameAdvanced();
199  virtual void firstFrameAdvance();
200 
202  const DtTaitBryan& topographicOrientation() const;
203  const DtTaitBryan& worldOrientation() const;
204  const DtTaitBryan& localOrientation() const;
205  const DtTaitBryan& parentOrientation() const;
206  const DtTaitBryan& localOrientationWrtDatabase() const;
207  const DtDcm& localOrientationMatrix() const;
208  const DtDcm& parentOrientationMatrix() const;
209  const DtDcm& worldOrientationMatrix() const;
210  double heading() const;
211  double pitch() const;
212  double roll() const;
214 
216  virtual bool isLocal() const;
217 
219  DtForceType forceType() const;
220 
222  const DtEntityIdentifier& entityId() const;
223  const DtEntityIdentifier& objectIdentifier() const
224  {
225  return entityId();
226  }
227 
229  bool isDestroyed() const;
230  int damageState() const;
231 
232  const DtString& globalId() const;
233 
237  bool isUnit() const;
239 
241  const DtPlatformSimObjectFacade& platformSimObjectFacade() const;
242 
244  const DtVrfSimulatedSimObjectFacade& vrfSimulatedSimObjectFacade() const;
245 
247  bool isEntityOrUnit() const;
248  bool isSimulatedObject() const { return isEntityOrUnit(); };
249 
251  bool isEntity() const;
252 
255  bool isEmbarked() const;
256 
257  bool embarkedOnHighFidelityObject() const;
258 
260  DtUUID embarkedOn() const;
261  DtSimObjectReference simObjectEmbarkedOn() const;
262  bool isEmbarkedOn(const DtUUID&) const;
264 
267  bool isValid() const;
268 
269  int sessionId() const;
270  bool isVrfSimulatedObject() const;
271 
272  bool isOnTopOf(const DtSimObject* o) const;
273 
275  bool isOnTopOf(const DtSimObject* o, double d) const;
276 
277  bool isOnTopOf(const DtSimObject* o, double d, const DtVector& position) const;
278 
280  bool isDeleted() const;
281 
283  virtual DtVrfLocalObjectCreateInformation vrfLocalObjectCreateInformation() const;
284 
286  virtual void makeInvalid();
287 
289  {
290  return mySimulationServices;
291  }
292 
295  {
296  return myParameters;
297  }
298 
302  DtVrfObjectParameters* duplicateParameters();
303 
305  double totalMass() const;
306 
307  const Coordinate_System* coordinateSystem() const;
308 
309  const DtLocalVertexList& localVertices() const;
310  const DtVertexList& worldVertices() const;
311  const DtLocalVertexList& relativeVertices() const;
312 
315  DtVector locationRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
316 
319  DtVector velocityRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
320 
323  DtVector accelerationRelativeTo(const DtVector&, const DtSimObject* relativeTo) const;
324 
327  DtTaitBryan orientationRelativeTo(const DtTaitBryan&, const DtSimObject* relativeTo) const;
328 
331  const DtRwProperties& parameterProperties() const;
332 
334  double distanceToLocalVector(const DtVector&) const;
335 
337  DtSimObjectReference simObjectReference() const;
338 
340  unsigned long long legionGlobalId() const;
341 
344  {
345  return myAwaiting;
346  }
347 
349  bool advancedFrame() const
350  {
351  return myAdvancedFrame;
352  }
353 
354  DtSimObjectReference superior() const;
355  DtUUID superiorUUID() const;
356 
357  const DtSimObjectReferenceList& attachments() const;
358 
360  bool isTopLevel() const;
361 
363  MAKVRinTerra::DtFeatureGeometry featureGeometry() const;
364 
365  const DtAttachedTerrain* terrainAttachedTo() const;
366 
367 public:
370  boost::signals2::signal<void ()> signal_objectVerticesChanged;
371 
373  mutable boost::signals2::signal<void (const DtSimObject*)> signal_extendedDataUpdated;
374 
375  mutable boost::signals2::signal<void (const DtSimObject*)> signal_simObjectDeleted;
376 
378  mutable boost::signals2::signal<void (const DtSimObject*, const DtString&)> signal_discoveredReference;
379 
381  mutable boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)> signal_uuidChanged;
382 
384  mutable boost::signals2::signal<void (const DtSimObject*, const DtString& oldName, const DtString& newName)> signal_objectRenamed;
385 
387  mutable boost::signals2::signal<void (const DtSimObject*, const DtUUID& oldSuperior, const DtUUID& newSuperior)> signal_superiorChanged;
388 
390  mutable boost::signals2::signal<void(const DtSimObject*)> signal_isClutterChanged;
391 
396  mutable boost::signals2::signal<void ()> signal_advancedFrame;
397 
399  boost::signals2::signal<void ()> signal_firstFrameAdvance;
400 
401 public:
405  virtual void clearDecorators();
406 
409  DtSimObjectDecorator* getOrCreateDecorator(const std::string& Decorator) const;
411 
413  {
414  if (myCurrentFrameSimulatedObjectStateComponent)
415  {
416  return myCurrentFrameSimulatedObjectStateComponent;
417  }
418  else if (!myCachedComponents && hasStateComponent<makVrf::DtSimulatedObjectStateComponent>())
419  {
420  return getStateComponent<makVrf::DtSimulatedObjectStateComponent>();
421  }
422  else
423  {
424  return nullptr;
425  }
426  }
427 
429  {
430  if (myCurrentFrameLocationStateComponent)
431  {
432  return myCurrentFrameLocationStateComponent;
433  }
434  else if (!myCachedComponents && hasStateComponent<makVrf::DtLocationStateComponent>())
435  {
436  return getStateComponent<makVrf::DtLocationStateComponent>();
437  }
438  else
439  {
440  return nullptr;
441  }
442  }
443 
445  {
446  if (myCurrentFrameVrfGeometryStateComponent)
447  {
448  return myCurrentFrameVrfGeometryStateComponent;
449  }
450  else if (!myCachedComponents && hasStateComponent<makVrf::DtVrfGeometryStateComponent>())
451  {
452  return getStateComponent<makVrf::DtVrfGeometryStateComponent>();
453  }
454  else
455  {
456  return nullptr;
457  }
458  }
459 
461  {
462  return myCurrentFrameEntityStateComponent;
463  }
464 
466  {
467  if (myCurrentFrameVrfStateComponent)
468  {
469  return myCurrentFrameVrfStateComponent;
470  }
471  else if (!myCachedComponents && hasStateComponent<makVrf::DtVrfStateComponent>())
472  {
473  return getStateComponent<makVrf::DtVrfStateComponent>();
474  }
475  else
476  {
477  return nullptr;
478  }
479  }
480 
481 protected:
482  void tickDecorators();
483  void cacheComponents();
484  void clearCachedComponents();
485 
486  virtual void createNavigationDecorator();
487 
488  void stateDataAdded(makVrf::DtStateData*);
489  virtual void setupVrfObjectParameters();
490  virtual void setUUID(const DtUUID&);
491  bool checkAndConnectForVrfStateComponent();
492 
493  void uuidChanged(const DtUUID&, const DtUUID&);
494  void objectNameChanged(const DtString& oldText, const DtString& newText);
495 
496  void attachmentsChanged();
497  virtual void completeSetup();
498  void extendedDataUpdated();
499  void superiorChanged();
500  virtual void isClutterChanged();
501 
502  virtual void hostChanged(const DtUUID& oldHost, const DtUUID& newHost);
503 
505  virtual void usingParameterSource(const DtString&);
506  virtual void externalFrameStateToBeDestroyed();
507 
508 private:
509  friend class DtSimObjectManager;
512  void resetUUID(const DtUUID&);
513 
514 protected:
517 
520  typedef std::map<std::string, DtSimObjectDecorator*> SimObjectDecorators;
522  mutable tbb::spin_rw_mutex mySimObjectDecoratorMutex;
524 
525  boost::signals2::scoped_connection myDeletedConnection;
526  boost::signals2::scoped_connection myAddedConnection;
527  boost::signals2::scoped_connection myUUIDChangedConnection;
528  boost::signals2::scoped_connection myObjectNameChangedConnection;
529  boost::signals2::scoped_connection myExtendedDataUpdatedConnection;
530  boost::signals2::scoped_connection myFirstFrameAdvancedConnection;
531  boost::signals2::scoped_connection mySuperiorChangedConnection;
532  boost::signals2::scoped_connection myAdvancedFrameConnection;
533  boost::signals2::scoped_connection myIsClutterChangedConnection;
534 
537  {
538  ExtentInformation() : lastSimTime(-1.), physicalFootprint(nullptr) {};
539  double lastSimTime;
543  tbb::spin_rw_mutex mutex;
544  };
545 
547  DtNavigationSimObjectDecorator* myNavigationSimDecorator = nullptr;
548 
552 
555  unsigned long long myLegionGlobalId;
556 
559 
561 
563 
566  mutable DtObjectType myEntityType;
567 
570  boost::signals2::scoped_connection myAttachmentsChangedConnection;
571 
575 
578  mutable tbb::spin_rw_mutex mySimObjectReferenceMutex;
579 
581  boost::signals2::scoped_connection myHostChangedConnection;
582 
583  mutable tbb::spin_rw_mutex myExternalCurrentFrameStateMutex;
584 
586 
592 
597 
598 public:
603  VRF4API_METHOD const DtSimObject* vrfState();
604  VRF4API_METHOD const DtSimObject* vrfState() const;
605  VRF4API_METHOD const DtSimObject* simState();
606  VRF4API_METHOD const DtSimObject* simState() const;
607  VRF4API_METHOD bool operator==(const DtSimObject* rhs) const { if (!rhs) return false; else return (uuid() == rhs->uuid()); };
608  VRF4API_METHOD const DtSimulationServices* simManager() const;
609  VRF4API_METHOD DtSimulationServices* simManager();
610  VRF4API_METHOD makVrf::DtVrfObjectGeometry vrfObjectGeometry() const;
611  VRF4API_METHOD const DtPhysicalWorld* physicalWorld() const;
612  VRF4API_METHOD DtSimObjectReference sharedReference() const { return simObjectReference(); };
613  VRF4API_METHOD const DtVrfObjectParameters* parameterEntry() const;
614  VRF4API_METHOD const DtSimObjectManager* simObjectManager() const;
615  VRF4API_METHOD DtSimObjectReference vrfObject() const;
616  VRF4API_METHOD DtSimObjectReference parent() const;
617  VRF4API_METHOD double currentHeading() const;
618  VRF4API_METHOD double currentPitch() const;
619  VRF4API_METHOD double currentRoll() const;
620  VRF4API_METHOD const DtString& markingText() const;
621 
622  VRF4API_METHOD bool isSpatiallyFrozen() const;
623  VRF4API_METHOD bool isFrozen() const;
624 
626  VRF4API_METHOD double speed() const;
627 
632  VRF4API_METHOD double forwardSpeed() const;
633  VRF4API_METHOD DtVector worldVelocity() const;
634  VRF4API_METHOD DtVector localVelocity() const;
635  VRF4API_METHOD DtVector bodyVelocity() const;
636  VRF4API_METHOD DtVector relativeVelocity() const;
637  VRF4API_METHOD DtVector parentVelocity() const;
638  VRF4API_METHOD DtVector rotationalVelocity() const;
639 
641  VRF4API_METHOD DtVector worldAcceleration() const;
642  VRF4API_METHOD DtVector localAcceleration() const;
643  VRF4API_METHOD DtVector relativeAcceleration() const;
644 
646 };
647 
648 #include "simObject.inl"
const makVrf::DtSimulatedObjectStateComponent * myCurrentFrameSimulatedObjectStateComponent
Definition: simObject.h:587
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool hasStateComponent() const
Definition: simObject.h:162
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:465
const DtEntityIdentifier & objectIdentifier() const
Definition: simObject.h:223
Extent information as to what it is and when it was last calculated.
Definition: simObject.h:536
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
const makVrf::DtVrfStateComponent * myCurrentFrameVrfStateComponent
Definition: simObject.h:588
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:520
DtSimObjectReference mySuperior
Superior.
Definition: simObject.h:573
DtString myObjectName
This is for debug purposes only. It will get set when the bounding volume is checked (and locked) and...
Definition: simObject.h:565
std::vector< const T_Component * > getStateComponentList() const
Definition: simObject.h:151
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:515
DtVrfSimulatedSimObjectFacade * myVrfSimulatedSimObjectFacade
Definition: simObject.h:596
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:554
1) Define the interface class that will be used to represent the next and current frames...
Definition: entityStateComponent.h:79
bool myIsDeleted
Definition: simObject.h:562
DtSimObjectReference mySimObjectReference
Back pointer to this objects reference.
Definition: simObject.h:577
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
const makVrf::DtExternalCurrentFrameState * myExternalCurrentFrameState
Definition: simObject.h:516
tbb::spin_rw_mutex myExternalCurrentFrameStateMutex
Definition: simObject.h:583
tbb::spin_rw_mutex mySimObjectReferenceMutex
Definition: simObject.h:578
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:607
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:555
Definition: navigationDecorator.h:17
tbb::spin_rw_mutex mutex
Definition: simObject.h:543
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:378
boost::signals2::signal< void()> signal_firstFrameAdvance
Signal when the frame is advanced for the first time.
Definition: simObject.h:399
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:92
ExtentInformation myExtentInformation
Definition: simObject.h:546
bool advancedFrame() const
Will be true if this object has advanced at least one frame.
Definition: simObject.h:349
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:533
bool myCachedComponents
Definition: simObject.h:593
const DtSimulationServices * simulationServices() const
Definition: simObject.h:288
DtAggregateSimObjectFacade * myAggregateSimObjectFacade
Definition: simObject.h:594
DtExtent extent
Definition: simObject.h:541
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:384
const DtVrfObjectParameters * parameters() const
VR-Forces parameters.
Definition: simObject.h:294
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:66
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:381
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:390
const makVrf::DtEntityStateComponent * currentFrameEntityStateComponent() const
Definition: simObject.h:460
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfObjectParameters * myDuplicateParameters
Definition: simObject.h:560
class DtVertexList:
Definition: vertexList.h:22
const DtVrfObjectParameters * myParameters
Referenced from the simulation services object database based on entity type.
Definition: simObject.h:558
DtObjectType myEntityType
Definition: simObject.h:566
boost::signals2::scoped_connection myDeletedConnection
Definition: simObject.h:525
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:551
bool operator!=(const DtUUID &rhs) const
Definition: simObject.h:111
boost::signals2::signal< void(const DtSimObject *)> signal_simObjectDeleted
Definition: simObject.h:375
boost::signals2::signal< void(const DtSimObject *)> signal_extendedDataUpdated
Signal sent out (during advance frame) when the extended data has been updated.
Definition: simObject.h:373
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:585
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:343
SimObjectDecorators mySimObjectDecorators
Decorator members.
Definition: simObject.h:521
const makVrf::DtLocationStateComponent * myCurrentFrameLocationStateComponent
Definition: simObject.h:590
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
const makVrf::DtEntityStateComponent * myCurrentFrameEntityStateComponent
Definition: simObject.h:589
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:540
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
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:444
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:370
DtSimObjectReferenceList * myAttachments
Attachments.
Definition: simObject.h:569
bool operator==(const DtSimObject &rhs) const
Definition: simObject.h:109
Definition: decoratorBase.h:30
DtPlatformSimObjectFacade * myPlatformSimObjectFacade
Definition: simObject.h:595
boost::signals2::scoped_connection myAttachmentsChangedConnection
Definition: simObject.h:570
boost::signals2::scoped_connection myExtendedDataUpdatedConnection
Definition: simObject.h:529
boost::signals2::scoped_connection myAddedConnection
Definition: simObject.h:526
boost::signals2::signal< void(const DtSimObject *, const DtUUID &oldSuperior, const DtUUID &newSuperior)> signal_superiorChanged
Signal sent when superior has changed.
Definition: simObject.h:387
Definition: rwVrfKinematicState.h:25
Contains the DtSimObjectReference class declaration.
tbb::spin_rw_mutex mySimObjectDecoratorMutex
Decorator members.
Definition: simObject.h:522
bool isSimulatedObject() const
Definition: simObject.h:248
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
const makVrf::DtLocationStateComponent * currentFrameLocationStateComponent() const
Definition: simObject.h:428
boost::signals2::scoped_connection myObjectNameChangedConnection
Definition: simObject.h:528
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:612
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:542
boost::signals2::scoped_connection myUUIDChangedConnection
Definition: simObject.h:527
boost::signals2::scoped_connection mySuperiorChangedConnection
Definition: simObject.h:531
const makVrf::DtSimulatedObjectStateComponent * currentFrameSimulatedObjectStateComponent() const
Definition: simObject.h:412
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:532
bool myAdvancedFrame
Definition: simObject.h:574
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:396
boost::signals2::scoped_connection myHostChangedConnection
Definition: simObject.h:581
Represents a feature geometry.
Definition: featureGeometry.h:39
DtAttachedTerrain * myTerrainAttachedTo
Definition: simObject.h:580
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:530
const makVrf::DtVrfGeometryStateComponent * myCurrentFrameVrfGeometryStateComponent
Definition: simObject.h:591

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)