VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
trigonometricSmoother.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "deadReckoner.h"
12 
26 {
27 public:
31  virtual ~DtTrigonometricSmoother();
36 
38  bool operator == (const DtTrigonometricSmoother& orig ) const;
39 
42  virtual DtApproximator* clone() const;
43 
44 protected:
45  virtual void resetPosSmoother( DtTime t );
46  virtual void resetOriSmoother( DtTime t );
47 
48 public:
51  virtual void setAll(
52  const DtVector& loc,
53  const DtVector32& vel,
54  const DtTaitBryan& ori,
55  const DtVector32& acc,
56  const DtVector32& rotVel,
57  DtTime t);
58 
60  virtual void setLocation( const DtVector& loc, DtTime t );
62  virtual const DtVector& approxLocation( DtTime t ) const;
63 
65  virtual void setVelocity( const DtVector32& vel, DtTime t );
67  virtual const DtVector32& approxVelocity( DtTime t ) const;
68 
71  const DtVector32& approxUnsmoothedVelocity( DtTime curTime ) const;
72 
74  virtual void setOrientation( const DtTaitBryan& ori, DtTime t );
76  virtual const DtTaitBryan& approxEuler( DtTime t ) const;
77 
79  virtual void setAcceleration( const DtVector32& acc, DtTime t );
80  virtual const DtVector32& acceleration( DtTime t ) const;
81 
83  virtual void setRotationalVelocity( const DtVector32& vel, DtTime t );
84  virtual const DtVector32& rotationalVelocity( DtTime t ) const;
85 
87  virtual const DtDcm& approxBodyToGeoc( DtTime t ) const;
88 
92  virtual void setSmoothPeriod( DtTime t );
93  virtual DtTime smoothPeriod() const;
94 
98  virtual void setOriSmoothPeriod( DtTime t );
99  virtual DtTime oriSmoothPeriod() const;
100 
101  virtual void setSmoothEnable(bool onOff);
102  virtual bool smoothEnable() const;
103 
104 protected:
105  virtual const DtVector& smoothPosition( DtTime t );
106  virtual const DtVector32& smoothVelocity( DtTime t );
107  virtual const DtDcm& smoothBodyToGeoc( DtTime t );
108  virtual void initSmootherParams();
109  virtual void initSmoothOriParams();
110 
118  inline DtTrigonometricSmoother* self() const;
119 
120 public:
122  static void setDfltSmoothPeriod(DtTime smoothPeriod);
123  static DtTime dfltSmoothPeriod();
124 
127  static void setMasterSmoothEnable(bool onOff);
128  static bool masterSmoothEnable();
129 
130 
131  static void rotAngleAndAxisFromRotMatrix(
132  DtVector& n, double& phi, const DtDcm& m );
133  static void rotMatrixFromRotRatesAndTime(
134  DtDcm& m, DtDcm& o, DtVector& n, double& w, const DtVector32& r, double t );
135 
136 protected:
137  static double theTimeTolerance;
140 
141 protected:
169  bool myIsDirty;
173 };
174 
175 
177 {
178  return (DtTrigonometricSmoother*)this;
179 }
180 
181 
184 

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)