VR-Link API Documentation for HLA Evolved
smoother.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #ifndef smoother_H_
10 #define smoother_H_
11 
12 #include "deadReckoner.h"
13 
23 {
24 public:
26  DtSmoother();
28  virtual ~DtSmoother();
30  DtSmoother( const DtSmoother& src );
32  DtSmoother& operator=( const DtSmoother& src );
33 
36  virtual DtApproximator* clone() const;
37 
38 protected:
39  virtual void resetPosSmoother( DtTime t );
40  virtual void resetOriSmoother( DtTime t );
41 
42 public:
44  virtual void setLocation( const DtVector& loc, DtTime t );
46  virtual const DtVector& approxLocation( DtTime t ) const;
47 
49  virtual void setVelocity( const DtVector& vel, DtTime t );
51  virtual const DtVector& approxVelocity( DtTime t ) const;
52 
54  virtual void setOrientation( const DtTaitBryan& ori, DtTime t );
56  virtual const DtTaitBryan& approxEuler( DtTime t ) const;
57 
59  virtual void setAcceleration( const DtVector& acc, DtTime t );
60  virtual const DtVector& acceleration( DtTime t ) const;
61 
63  virtual void setRotationalVelocity( const DtVector& vel, DtTime t );
64  virtual const DtVector& rotationalVelocity( DtTime t ) const;
65 
67  virtual const DtDcm& approxBodyToGeoc( DtTime t ) const;
68 
72  virtual void setSmoothPeriod( DtTime t );
73  virtual DtTime smoothPeriod() const;
74 
78  virtual void setOriSmoothPeriod( DtTime t );
79  virtual DtTime oriSmoothPeriod() const;
80 
81  virtual void setSmoothEnable(bool onOff);
82  virtual bool smoothEnable() const;
83 
84 protected:
85  virtual const DtVector& smoothPosition( DtTime t );
86  virtual const DtVector& smoothVelocity( DtTime t );
87  virtual const DtDcm& smoothBodyToGeoc( DtTime t );
88  virtual void initSmootherParams();
89  virtual void initSmoothOriParams();
90 
98  inline DtSmoother* self() const;
99 
100 public:
102  static void setDfltSmoothPeriod(DtTime smoothPeriod);
103  static DtTime dfltSmoothPeriod();
104 
107  static void setMasterSmoothEnable(bool onOff);
108  static bool masterSmoothEnable();
109 
110 
111  static void rotAngleAndAxisFromRotMatrix(
112  DtVector& n, double& phi, const DtDcm& m );
113  static void rotMatrixFromRotRatesAndTime(
114  DtDcm& m, DtDcm& o, DtVector& n, double& w, const DtVector& r, double t );
115 
116 protected:
117  static double theTimeTolerance;
120 
121 protected:
149  bool myIsDirty;
153 };
154 
155 
157 {
158  return (DtSmoother*)this;
159 }
160 
161 #endif
162 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)