VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
baseEntityStateRepository.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 1992-2025 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "stateRepository.h"
14 #include <vlpi/thresholder.h>
15 #include <vlpi/entityType.h>
16 #include <vlutil/vlTime.h>
17 #include <matrix/vlDcm.h>
18 
21 
22 #if DtHLA
24 #else
25 class DT_DLL_VL DtDisObjectManager;
26 #endif
27 
28 
37 {
38 public:
39 
42 
44  virtual ~DtBaseEntityStateRepository();
45 
48 
51  const DtBaseEntityStateRepository& orig);
52 
54  virtual DtStateRepository* clone(bool copy = false) const;
55 
61  void setTimeStampType(DtTimeStampType type);
62  DtTimeStampType timeStampType() const;
63 
76 
77 
80  virtual void setAll(
81  const DtVector& loc,
82  const DtVector32& vel,
83  const DtTaitBryan& ori,
84  const DtVector32& acc,
85  const DtVector32& rotVel,
86  DtTime t);
87 
90  virtual void setAll(
91  const DtVector& loc,
92  const DtVector32& vel,
93  const DtTaitBryan& ori,
94  const DtVector32& acc,
95  const DtVector32& rotVel);
96 
99  virtual void setLocation(const DtVector & location, DtTime aTime);
102  virtual void setLocation(const DtVector & location);
103 
104 
108  virtual const DtVector &location(DtTime aTime) const;
113  virtual const DtVector &location() const;
114 
115 
118  virtual const DtVector & lastSetLocation() const;
119 
121  virtual void setVelocity(const DtVector32 & Velocity, DtTime aTime);
124  virtual void setVelocity(const DtVector32 & Velocity);
126  virtual const DtVector32 & velocity(DtTime aTime) const;
128  virtual const DtVector32 & velocity() const;
129 
130 
133  virtual const DtVector32 & lastSetVelocity() const;
134 
136  virtual void setAcceleration(const DtVector32 & Acceleration, DtTime aTime);
138  virtual void setAcceleration(const DtVector32 & Acceleration);
140  virtual const DtVector32 & acceleration(DtTime aTime) const;
142  virtual const DtVector32 & acceleration() const;
143 
146  virtual const DtVector32 & lastSetAcceleration() const;
147 
149  virtual void setOrientation(const DtTaitBryan& orient, DtTime aTime);
151  virtual void setOrientation(const DtTaitBryan& orient);
152 
154  virtual const DtTaitBryan& orientation(DtTime aTime) const;
156  virtual const DtTaitBryan& orientation() const;
157 
160  virtual const DtTaitBryan& lastSetOrientation() const;
161 
163  virtual void setRotationalVelocity(const DtVector32 & BodyRates, DtTime aTime);
165  virtual void setRotationalVelocity(const DtVector32 & BodyRates);
167  virtual const DtVector32 & rotationalVelocity(DtTime aTime) const;
169  virtual const DtVector32 & rotationalVelocity() const;
170 
173  virtual const DtVector32 & lastSetRotationalVelocity() const;
174 
176  virtual void setFrozen(bool on);
178  virtual bool frozen() const;
179 
181  virtual void setAlgorithm(DtDeadReckonTypes alg);
183 
184  virtual DtDeadReckonTypes algorithm() const;
186 
189  static void setDefaultDeadReckoner(DtDeadReckoner* val);
190 
192  static void setDefaultSmoother(DtSmoother* val);
193 
196  static void setDefaultRelativeDeadReckoner(DtDeadReckoner* val);
197 
200  static void setDefaultRelativeSmoother(DtSmoother* val);
201 
202 
218 
219 
220 
222  virtual void setRelativeLocation(const DtVector & location, DtTime aTime);
225  virtual void setRelativeLocation(const DtVector & location);
228  virtual const DtVector & relativeLocation(DtTime aTime) const;
231  virtual const DtVector & relativeLocation() const;
232 
235  virtual const DtVector & lastSetRelativeLocation() const;
236 
239  virtual void setRelativeVelocity(const DtVector32 & Velocity, DtTime aTime);
242  virtual void setRelativeVelocity(const DtVector32 & Velocity);
245  virtual const DtVector32 & relativeVelocity(DtTime aTime) const;
248  virtual const DtVector32 & relativeVelocity() const;
249 
252  virtual const DtVector32 & lastSetRelativeVelocity() const;
253 
256  virtual void setRelativeAcceleration(const DtVector32 & Acceleration,
257  DtTime aTime);
260  virtual void setRelativeAcceleration(const DtVector32 & Acceleration);
263  virtual const DtVector32 & relativeAcceleration(DtTime aTime) const;
266  virtual const DtVector32 & relativeAcceleration() const;
267 
270  virtual const DtVector32 & lastSetRelativeAcceleration() const;
271 
273  virtual void setRelativeOrientation(const DtTaitBryan& orient,
274  DtTime aTime);
276  virtual void setRelativeOrientation(const DtTaitBryan& orient);
278  virtual const DtTaitBryan& relativeOrientation(DtTime aTime) const;
280  virtual const DtTaitBryan& relativeOrientation() const;
281 
284  virtual const DtTaitBryan& lastSetRelativeOrientation() const;
285 
287  virtual void setRelativeRotationalVelocity(const DtVector32 & BodyRates,
288  DtTime aTime);
290  virtual void setRelativeRotationalVelocity(const DtVector32 & BodyRates);
292  virtual const DtVector32 & relativeRotationalVelocity(DtTime aTime) const;
294  virtual const DtVector32 & relativeRotationalVelocity() const;
295 
298  virtual const DtVector32 & lastSetRelativeRotationalVelocity() const;
299 
301  virtual void setRelativeFrozen(bool onOff);
303  virtual bool relativeFrozen() const;
304 
306  virtual void setRelativeAlgorithm(DtDeadReckonTypes alg);
308  virtual DtDeadReckonTypes relativeAlgorithm() const;
309 
311 
321 
322 
324  virtual const DtGlobalObjectDesignator& hostGlobalId() const;
325 
331  virtual void setHostGlobalId( const DtGlobalObjectDesignator& id );
332 
335  virtual void clearHostGlobalId();
336 
338  virtual const DtNature& nature() const;
340  virtual void setNature( const DtNature newVal );
341 
343  virtual const DtPosition& partPosition() const;
345  virtual void setPartPosition( const DtPosition newVal );
346 
348  virtual const DtStationName& stationName() const;
350  virtual void setStationName( const DtStationName newVal );
351 
353  virtual const DtU16& stationNumber() const;
355  virtual void setStationNumber( const DtU16 newVal );
356 
358  virtual const DtVector & relativePosition() const;
360  virtual void setRelativePosition( const DtVector & newVal );
361 
363  virtual const DtFloat32& range() const;
365  virtual void setRange( const DtFloat32 newVal );
366 
368  virtual const DtFloat32& bearing() const;
370  virtual void setBearing( const DtFloat32 newVal );
371 
373 
374 
375 
382 
383 #if DtHLA
384  virtual void setHlaObjectManager( DtHlaObjectManager* mgr );
385 #else
386  virtual void setDisObjectManager( DtDisObjectManager* mgr );
387 #endif
388 
395  virtual void setAmAsSeenByRemote( bool val );
396 
398  virtual const DtDcm & bodyToGeoc(DtTime aTime) const;
400  virtual const DtDcm & bodyToGeoc() const;
401 
403  virtual const DtDcm & relativeBodyToHost(DtTime aTime) const;
405  virtual const DtDcm & relativeBodyToHost() const;
406 
408  virtual void setEntityId(const DtEntityIdentifier& id);
410  virtual const DtEntityIdentifier& entityId() const;
411 
413  virtual void setEntityType(const DtEntityType& type);
415  virtual const DtEntityType& entityType() const;
416 
417 #if DtHLA
418  virtual void setFederateId(const DtFederateId& id);
421  virtual const DtFederateId& federateId() const;
422 #endif
423 
431  virtual void setApproximator(DtApproximator* approx);
432  virtual DtApproximator* approximator() const;
433 
434  virtual void setRelativeApproximator(DtApproximator* approx);
435  virtual DtApproximator* relativeApproximator() const;
437 
438 
443  virtual void useDeadReckoner(DtDeadReckoner* dr);
444 
449  virtual void useRelativeDeadReckoner(DtDeadReckoner* dr);
450 
452  virtual void useDeadReckoner(bool yesNo = true);
454  virtual void useRelativeDeadReckoner(bool yesNo = true);
455 
457  virtual DtDeadReckoner* usingDeadReckoner();
459  virtual DtDeadReckoner* usingRelativeDeadReckoner();
460 
465  virtual void useSmoother(DtSmoother* sm);
466 
471  virtual void useRelativeSmoother(DtSmoother* sm);
472 
474  virtual void useSmoother(bool yesNo = true);
476  virtual void useRelativeSmoother(bool yesNo = true);
477 
479  virtual DtSmoother* usingSmoother();
481  virtual DtSmoother* usingRelativeSmoother();
482 
485  virtual DtThresholder* thresholder();
486 
489  virtual const DtThresholder& thresholder() const;
490 
493  virtual DtClock* clock() const;
496  virtual void setClock(DtClock* clock);
497 
500  virtual void printData() const;
501 
503  void printDataToStream(std::ostream &str) const;
504 
506  friend class DtBaseEntityDecoder;
507  virtual void setTimeForSets( DtTime time );
508  virtual DtTime timeForSets() const;
509 
512  void computeSpatialFromRelativeSpatial();
513 
514 protected:
515 
518  DtBaseEntityStateRepository* self() const;
519 
520 public:
521 
524  DtBaseEntityStateRepository* hostEsr() const;
525 
526 protected:
527 
531 
535 
539 
543 
549 
557  bool myFrozen;
558 
567 
581 
583 #if DtHLA
584  DtHlaObjectManager* myObjectManager;
586 #else
587  DtDisObjectManager* myObjectManager;
588 #endif
589 
593 
601 
609 
615 
617 #if DtHLA
618  mutable DtFederateId myFederateId;
620 #endif
623 
624 protected:
626 };
627 
629 {
630  return &myThresholder;
631 }
632 
634 {
635  return myThresholder;
636 }
637 
639  DtTimeStampType type)
640 {
641  myTimeStampType = type;
642 }
643 
645 {
646  return myTimeStampType;
647 }
648 
650 {
651  return myEntityType;
652 }
653 
655  const DtEntityType& type)
656 {
657  myEntityType = type;
658 }
659 
660 inline const DtEntityIdentifier&
662 {
663  return myEntityId;
664 }
665 
667  const DtEntityIdentifier& id)
668 {
669  myEntityId = id;
670 }
671 
672 #if DtHLA
674 {
677  return myFederateId;
678 }
679 
681  const DtFederateId& id)
682 {
683  myEntityId.setSite(id.siteId());
684  myEntityId.setHost(id.applicationId());
685 }
686 #endif
687 
689 
691  ) const
692 {
694 }
695 
697  ) const
698 {
699  return myLastSetOrientation;
700 }
701 
703  ) const
704 {
705  return myLastSetAcceleration;
706 }
707 
709 {
710  return myLastSetVelocity;
711 }
712 
714 {
715  return myLastSetLocation;
716 }
717 
719 
720 inline const DtVector32 &
722 {
724 }
725 
726 inline const DtTaitBryan&
728 {
730 }
731 
732 inline const DtVector32 &
734 {
736 }
737 
738 inline const DtVector32 &
740 {
742 }
743 
744 inline const DtVector &
746 {
748 }
749 
751 {
752  myAmAsSeenByRemote = val;
753 }
virtual const DtFederateId & federateId() const
The federate ID (part of entity ID).
Definition: baseEntityStateRepository.h:673
DtPosition myPartPosition
Definition: baseEntityStateRepository.h:575
virtual void setAmAsSeenByRemote(bool val)
Mark this state repository as an AsSeenByRemote copy.
Definition: baseEntityStateRepository.h:750
DtTaitBryan myRelativeOrientation
Definition: baseEntityStateRepository.h:563
DtApproximator * myRelativeApproximator
Definition: baseEntityStateRepository.h:534
virtual void setEntityType(const DtEntityType &type)
Set the entity type.
Definition: baseEntityStateRepository.h:654
A DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
static DtSmoother * theDfltSmoother
Definition: baseEntityStateRepository.h:546
void setTimeStampType(DtTimeStampType type)
Set/Get flag indicating whether we&#39;re using absolute timestamps for dead reckoning.
Definition: baseEntityStateRepository.h:638
DtTaitBryan myOrientation
Definition: baseEntityStateRepository.h:554
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual void setEntityId(const DtEntityIdentifier &id)
Set the entity&#39;s identifier.
Definition: baseEntityStateRepository.h:666
Instances of DtBaseEntityDecoder are used to decode a base entity state message into a state reposito...
Definition: baseEntityDecoder.h:41
DtFloat32 myBearing
Definition: baseEntityStateRepository.h:580
Instances of DtBaseEntityStateRepository are used to maintain basic state information needed by all k...
Definition: baseEntityStateRepository.h:36
static DtSmoother * theDfltRelativeSmoother
Definition: baseEntityStateRepository.h:548
Contains the DtEntityType and DtRadioEntityType class declarations.
Instances of DtThresholder store thresholding information used to determine what attributes of an ent...
Definition: thresholder.h:20
DtDeadReckoner * myRelativeDeadReckoner
Definition: baseEntityStateRepository.h:538
DtNature
IsPartOf PDU enums.
Definition: disEnums.h:2533
DtStationName
Definition: disEnums.h:2555
This file contains the declaration of DtClock and DtTime.
Used to set and maintain time in a simulation.
Definition: vlTime.h:25
virtual DtThresholder * thresholder()
Returns the SR&#39;s thresholder, which contains thresholds needed for encoding.
Definition: baseEntityStateRepository.h:628
bool myAmAsSeenByRemote
This flag is checked by the spatial attribute accessors and if it&#39;s false, calls computeSpatialFromRe...
Definition: baseEntityStateRepository.h:592
void setSite(int site)
Sets the site Id for this instance.
DtVector myLastSetLocation
place holder variables for spatial data.
Definition: baseEntityStateRepository.h:596
This file declares DtDcm and several helper classes and functions.
int host() const
Gets the hostId (or applicationID) for this instance.
DtVector myRelativeLocation
relativeSpatial attributes
Definition: baseEntityStateRepository.h:560
DtDeadReckonTypes myAlgorithm
Definition: baseEntityStateRepository.h:556
DtVector32 myLastSetRelativeRotationalVelocity
Definition: baseEntityStateRepository.h:608
DtPosition
Definition: disEnums.h:2548
virtual void setFederateId(const DtFederateId &id)
Set the federate ID (part of entity ID).
Definition: baseEntityStateRepository.h:680
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
DtSmoother * mySmoother
Holds what was most recently passed to useSmoother.
Definition: baseEntityStateRepository.h:541
DtThresholder myThresholder
Definition: baseEntityStateRepository.h:622
DtSmoother * myRelativeSmoother
Definition: baseEntityStateRepository.h:542
DtTaitBryan myLastSetRelativeOrientation
Definition: baseEntityStateRepository.h:607
virtual const DtVector32 & lastSetRelativeVelocity() const
Return the value last passed to setVelocity, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:739
DtDcm myRelativeBodyToHost
Definition: baseEntityStateRepository.h:612
bool myHostGlobalIdSetFlag
Definition: baseEntityStateRepository.h:573
DtApproximator * myApproximator
Holds what&#39;s currently being used as our approximator.
Definition: baseEntityStateRepository.h:533
static DtDeadReckoner * theDfltDeadReckoner
Static defaults.
Definition: baseEntityStateRepository.h:545
virtual const DtTaitBryan & lastSetRelativeOrientation() const
Return the value last passed to setOrientation, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:727
DtVector myLastSetRelativeLocation
place holder variables for relative spatial data.
Definition: baseEntityStateRepository.h:604
DtNature myNature
Definition: baseEntityStateRepository.h:574
bool myFrozen
Definition: baseEntityStateRepository.h:557
void setApplicationId(DtU16 id)
sets the applicationId (also know as the host ID) for this class
Definition: vlVector.h:224
DtClock * myClock
Clock to be used for dead reckoning calculations – it is set to the same clock used by the exConn...
Definition: baseEntityStateRepository.h:530
DtDcm myBodyToGeoc
Definition: baseEntityStateRepository.h:610
DtVector32 myRelativeAcceleration
Definition: baseEntityStateRepository.h:562
DtEntityType myEntityType
Definition: baseEntityStateRepository.h:621
DtVector myLocation
spatial attributes
Definition: baseEntityStateRepository.h:551
DtGlobalObjectDesignator myHostGlobalId
isPartOf attributes Never set myHostGlobalId outside of the mutator function setHostGlobalId() this w...
Definition: baseEntityStateRepository.h:572
DtApproximator is an abstract base class.
Definition: approximator.h:24
virtual const DtEntityIdentifier & entityId() const
The entity&#39;s identifier.
Definition: baseEntityStateRepository.h:661
DtTimeStampType timeStampType() const
Definition: baseEntityStateRepository.h:644
Definition: vlVector.h:162
virtual DtStateRepository * clone(bool copy=false) const
Return a copy/empty object of the same type as this.
DtVector32 myVelocity
Definition: baseEntityStateRepository.h:552
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
DtU16 myStationNumber
Definition: baseEntityStateRepository.h:577
DtDeadReckonTypes myRelativeAlgorithm
Definition: baseEntityStateRepository.h:565
DtVector32 myLastSetAcceleration
Definition: baseEntityStateRepository.h:598
virtual const DtVector & lastSetRelativeLocation() const
Return the value last passed to setLocation, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:745
DtVector32 myLastSetRotationalVelocity
Definition: baseEntityStateRepository.h:600
DtVector32 myLastSetVelocity
Definition: baseEntityStateRepository.h:597
DtFederateId myFederateId
Set by call to federateId.
Definition: baseEntityStateRepository.h:619
virtual const DtEntityType & entityType() const
The entity type.
Definition: baseEntityStateRepository.h:649
Instances of DtTrigonometricSmoother are used to provide approximated position and orientation inform...
Definition: trigonometricSmoother.h:25
DtVector32 myRelativeRotationalVelocity
Definition: baseEntityStateRepository.h:564
DtFloat32 myRange
Definition: baseEntityStateRepository.h:579
virtual const DtVector32 & lastSetRotationalVelocity() const
Return the value last passed to setRotationalVelocity, regardless of whether we have an approximator...
Definition: baseEntityStateRepository.h:690
bool myRelativeBodyToHostDirty
Definition: baseEntityStateRepository.h:613
DtDcms are used to represent orientation for an object.
Definition: vlDcm.h:39
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
virtual const DtVector32 & lastSetVelocity() const
Return the value last passed to setVelocity, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:708
class DtHlaObjectManager:
Definition: hlaObjectManager.h:30
bool myBodyToGeocDirty
Definition: baseEntityStateRepository.h:611
DtVector32 myLastSetRelativeAcceleration
Definition: baseEntityStateRepository.h:606
static DtDeadReckoner * theDfltRelativeDeadReckoner
Definition: baseEntityStateRepository.h:547
DtTimeStampType myTimeStampType
Definition: baseEntityStateRepository.h:614
virtual const DtVector32 & lastSetRelativeAcceleration() const
Return the value last passed to setAcceleration, regardless of whether we have an approximator...
Definition: baseEntityStateRepository.h:733
virtual void printData() const
Print State Data to the DtInfo Stream.
DtTimeStampType
Definition: vlTimeStampType.h:16
int site() const
Gets the site Id for this instance.
bool myRelativeFrozen
Definition: baseEntityStateRepository.h:566
virtual const DtVector32 & lastSetAcceleration() const
The value last passed to setAcceleration, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:702
DtDeadReckonTypes
Definition: disEnums.h:1013
void setHost(int host)
Sets the hostId (or applicationID) for this instance.
DtStationName myStationName
Definition: baseEntityStateRepository.h:576
Instances of DtString are used to represent strings.
Definition: vlString.h:36
virtual void printDataToStream(std::ostream &stream) const
Prints the State Data to the stream specified.
DtDeadReckoner * myDeadReckoner
Holds what was most recently passed to useDeadReckoner.
Definition: baseEntityStateRepository.h:537
DtEntityIdentifier myEntityId
Definition: baseEntityStateRepository.h:616
DtVector32 myLastSetRelativeVelocity
Definition: baseEntityStateRepository.h:605
DtVector32 myRotationalVelocity
Definition: baseEntityStateRepository.h:555
void setSiteId(DtU16 siteId)
sets the siteId for this class
virtual const DtVector32 & lastSetRelativeRotationalVelocity() const
Return the value last passed value to setRotationalVelocity, regardless of whether we have an approxi...
Definition: baseEntityStateRepository.h:721
DtStateRepository & operator=(const DtStateRepository &orig)
assignment operator
DtTaitBryan myLastSetOrientation
Definition: baseEntityStateRepository.h:599
DtVector32 myAcceleration
Definition: baseEntityStateRepository.h:553
virtual const DtVector & lastSetLocation() const
Return the value last passed to setLocation, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:713
DtVector32 myRelativeVelocity
Definition: baseEntityStateRepository.h:561
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
virtual const DtTaitBryan & lastSetOrientation() const
The value last passed to setOrientation, regardless of whether we have an approximator.
Definition: baseEntityStateRepository.h:696
DtTime myTimeForSets
Definition: baseEntityStateRepository.h:625
Instances of DtDeadReckoner are used to provide approximated position and orientation information for...
Definition: deadReckoner.h:30
DtVector myRelativePosition
Definition: baseEntityStateRepository.h:578

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)