VR-Link API Documentation for DIS
baseEntitySR.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 #ifndef DtBaseEntityStateRepository_H_
10 #define DtBaseEntityStateRepository_H_
11 
12 #include "stateRep.h"
13 #include <vlpi/thresholder.h>
14 #include <vlutil/vlTime.h>
15 #include <matrix/vlDcm.h>
16 
19 class DT_DLL_VL DtSmoother;
20 
21 #if DtHLA
22 class DT_DLL_VL DtHlaObjectManager;
23 #else
25 #endif
26 
27 
36 {
37 public:
38 
41 
43  virtual ~DtBaseEntityStateRepository();
44 
47 
50  const DtBaseEntityStateRepository& orig);
51 
53  virtual DtStateRepository* clone(bool copy = false) const;
54 
60  void setTimeStampType(DtTimeStampType type);
61  DtTimeStampType timeStampType() const;
62 
75 
76 
79  virtual void setLocation(const DtVector & location, DtTime aTime);
82  virtual void setLocation(const DtVector & location);
83 
84 
88  virtual const DtVector &location(DtTime aTime) const;
93  virtual const DtVector &location() const;
94 
95 
98  virtual const DtVector & lastSetLocation() const;
99 
101  virtual void setVelocity(const DtVector & Velocity, DtTime aTime);
104  virtual void setVelocity(const DtVector & Velocity);
106  virtual const DtVector & velocity(DtTime aTime) const;
108  virtual const DtVector & velocity() const;
109 
110 
113  virtual const DtVector & lastSetVelocity() const;
114 
116  virtual void setAcceleration(const DtVector & Acceleration, DtTime aTime);
118  virtual void setAcceleration(const DtVector & Acceleration);
120  virtual const DtVector & acceleration(DtTime aTime) const;
122  virtual const DtVector & acceleration() const;
123 
126  virtual const DtVector & lastSetAcceleration() const;
127 
129  virtual void setOrientation(const DtTaitBryan& orient, DtTime aTime);
131  virtual void setOrientation(const DtTaitBryan& orient);
132 
134  virtual const DtTaitBryan& orientation(DtTime aTime) const;
136  virtual const DtTaitBryan& orientation() const;
137 
140  virtual const DtTaitBryan& lastSetOrientation() const;
141 
143  virtual void setRotationalVelocity(const DtVector & BodyRates, DtTime aTime);
145  virtual void setRotationalVelocity(const DtVector & BodyRates);
147  virtual const DtVector & rotationalVelocity(DtTime aTime) const;
149  virtual const DtVector & rotationalVelocity() const;
150 
153  virtual const DtVector & lastSetRotationalVelocity() const;
154 
156  virtual void setFrozen(bool on);
158  virtual bool frozen() const;
159 
161  virtual void setAlgorithm(DtDeadReckonTypes alg);
163 
164  virtual DtDeadReckonTypes algorithm() const;
166 
167 
168 
184 
185 
186 
188  virtual void setRelativeLocation(const DtVector & location, DtTime aTime);
191  virtual void setRelativeLocation(const DtVector & location);
194  virtual const DtVector & relativeLocation(DtTime aTime) const;
197  virtual const DtVector & relativeLocation() const;
198 
201  virtual const DtVector & lastSetRelativeLocation() const;
202 
205  virtual void setRelativeVelocity(const DtVector & Velocity, DtTime aTime);
208  virtual void setRelativeVelocity(const DtVector & Velocity);
211  virtual const DtVector & relativeVelocity(DtTime aTime) const;
214  virtual const DtVector & relativeVelocity() const;
215 
218  virtual const DtVector & lastSetRelativeVelocity() const;
219 
222  virtual void setRelativeAcceleration(const DtVector & Acceleration,
223  DtTime aTime);
226  virtual void setRelativeAcceleration(const DtVector & Acceleration);
229  virtual const DtVector & relativeAcceleration(DtTime aTime) const;
232  virtual const DtVector & relativeAcceleration() const;
233 
236  virtual const DtVector & lastSetRelativeAcceleration() const;
237 
239  virtual void setRelativeOrientation(const DtTaitBryan& orient,
240  DtTime aTime);
242  virtual void setRelativeOrientation(const DtTaitBryan& orient);
244  virtual const DtTaitBryan& relativeOrientation(DtTime aTime) const;
246  virtual const DtTaitBryan& relativeOrientation() const;
247 
250  virtual const DtTaitBryan& lastSetRelativeOrientation() const;
251 
253  virtual void setRelativeRotationalVelocity(const DtVector & BodyRates,
254  DtTime aTime);
256  virtual void setRelativeRotationalVelocity(const DtVector & BodyRates);
258  virtual const DtVector & relativeRotationalVelocity(DtTime aTime) const;
260  virtual const DtVector & relativeRotationalVelocity() const;
261 
264  virtual const DtVector & lastSetRelativeRotationalVelocity() const;
265 
267  virtual void setRelativeFrozen(bool onOff);
269  virtual bool relativeFrozen() const;
270 
272  virtual void setRelativeAlgorithm(DtDeadReckonTypes alg);
274  virtual DtDeadReckonTypes relativeAlgorithm() const;
275 
277 
287 
288 
290  virtual const DtGlobalObjectDesignator& hostGlobalId() const;
291 
297  virtual void setHostGlobalId( const DtGlobalObjectDesignator& id );
298 
301  virtual void clearHostGlobalId();
302 
304  virtual const DtNature& nature() const;
306  virtual void setNature( const DtNature newVal );
307 
309  virtual const DtPosition& partPosition() const;
311  virtual void setPartPosition( const DtPosition newVal );
312 
314  virtual const DtStationName& stationName() const;
316  virtual void setStationName( const DtStationName newVal );
317 
319  virtual const DtU16& stationNumber() const;
321  virtual void setStationNumber( const DtU16 newVal );
322 
324  virtual const DtVector & relativePosition() const;
326  virtual void setRelativePosition( const DtVector & newVal );
327 
329  virtual const DtFloat32& range() const;
331  virtual void setRange( const DtFloat32 newVal );
332 
334  virtual const DtFloat32& bearing() const;
336  virtual void setBearing( const DtFloat32 newVal );
337 
339 
340 
341 
348 
349 #if DtHLA
350  virtual void setHlaObjectManager( DtHlaObjectManager* mgr );
351 #else
352  virtual void setDisObjectManager( DtDisObjectManager* mgr );
353 #endif
354 
361  virtual void setAmAsSeenByRemote( bool val );
362 
364  virtual const DtDcm & bodyToGeoc(DtTime aTime) const;
366  virtual const DtDcm & bodyToGeoc() const;
367 
369  virtual const DtDcm & relativeBodyToHost(DtTime aTime) const;
371  virtual const DtDcm & relativeBodyToHost() const;
372 
374  virtual void setEntityId(const DtEntityIdentifier& id);
376  virtual const DtEntityIdentifier& entityId() const;
377 
379  virtual void setEntityType(const DtEntityType& type);
381  virtual const DtEntityType& entityType() const;
382 
383 #if DtHLA
384 
385  virtual void setFederateId(const DtFederateId& id);
387  virtual const DtFederateId& federateId() const;
388 #endif
389 
396  virtual void setApproximator(DtApproximator* approx);
397  virtual DtApproximator* approximator() const;
398 
399  virtual void setRelativeApproximator(DtApproximator* approx);
400  virtual DtApproximator* relativeApproximator() const;
401 
402 
406  virtual void useDeadReckoner(DtDeadReckoner* dr);
407 
411  virtual void useRelativeDeadReckoner(DtDeadReckoner* dr);
412 
414  virtual void useDeadReckoner(bool yesNo = true);
416  virtual void useRelativeDeadReckoner(bool yesNo = true);
417 
419  virtual DtDeadReckoner* usingDeadReckoner();
421  virtual DtDeadReckoner* usingRelativeDeadReckoner();
422 
426  virtual void useSmoother(DtSmoother* sm);
427 
431  virtual void useRelativeSmoother(DtSmoother* sm);
432 
434  virtual void useSmoother(bool yesNo = true);
436  virtual void useRelativeSmoother(bool yesNo = true);
437 
439  virtual DtSmoother* usingSmoother();
441  virtual DtSmoother* usingRelativeSmoother();
442 
445  virtual DtThresholder* thresholder();
446 
449  virtual const DtThresholder& thresholder() const;
450 
453  virtual DtClock* clock() const;
456  virtual void setClock(DtClock* clock);
457 
460  virtual void printData() const;
461 
463  void printDataToStream(std::ostream &str) const;
464 
466  friend class DtBaseEntityDecoder;
467  virtual void setTimeForSets( DtTime time );
468  virtual DtTime timeForSets() const;
469 
472  void computeSpatialFromRelativeSpatial();
473 
474 protected:
475 
478  DtBaseEntityStateRepository* self() const;
479 
480 public:
481 
484  DtBaseEntityStateRepository* hostEsr() const;
485 
486 protected:
487 
491 
495 
499 
503 
509 
517  bool myFrozen;
518 
527 
541 
543 #if DtHLA
544 
545  DtHlaObjectManager* myObjectManager;
546 #else
548 #endif
549 
553 
561 
569 
575 
577 #if DtHLA
578 
579  mutable DtFederateId myFederateId;
580 #endif
583 
584 protected:
586 };
587 
589 {
590  return &myThresholder;
591 }
592 
594 {
595  return myThresholder;
596 }
597 
599  DtTimeStampType type)
600 {
601  myTimeStampType = type;
602 }
603 
605 {
606  return myTimeStampType;
607 }
608 
610 {
611  return myEntityType;
612 }
613 
615  const DtEntityType& type)
616 {
617  myEntityType = type;
618 }
619 
620 inline const DtEntityIdentifier&
622 {
623  return myEntityId;
624 }
625 
627  const DtEntityIdentifier& id)
628 {
629  myEntityId = id;
630 }
631 
632 #if DtHLA
633 inline const DtFederateId& DtBaseEntityStateRepository::federateId() const
634 {
635  myFederateId.setSiteId(myEntityId.site());
636  myFederateId.setApplicationId(myEntityId.host());
637  return myFederateId;
638 }
639 
640 inline void DtBaseEntityStateRepository::setFederateId(
641  const DtFederateId& id)
642 {
643  myEntityId.setSite(id.siteId());
644  myEntityId.setHost(id.applicationId());
645 }
646 #endif
647 
649 
651  ) const
652 {
654 }
655 
657  ) const
658 {
659  return myLastSetOrientation;
660 }
661 
663  ) const
664 {
665  return myLastSetAcceleration;
666 }
667 
669 {
670  return myLastSetVelocity;
671 }
672 
674 {
675  return myLastSetLocation;
676 }
677 
679 
680 inline const DtVector &
682 {
684 }
685 
686 inline const DtTaitBryan&
688 {
690 }
691 
692 inline const DtVector &
694 {
696 }
697 
698 inline const DtVector &
700 {
702 }
703 
704 inline const DtVector &
706 {
708 }
709 
711 {
712  myAmAsSeenByRemote = val;
713 }
714 
715 #endif
716 
717 
718 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)