VR-Link API Documentation for HLA 4
 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-2025 MAK Technologies, Inc
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 
DtTime myLastSetTime
Definition: trigonometricSmoother.h:155
virtual const DtVector32 & approxVelocity(DtTime curTime) const
Get the approximated (i.e.
Definition: deadReckoner.h:220
DtTime myLastSetOriTime
Definition: trigonometricSmoother.h:159
DtTime myOriTau
Definition: trigonometricSmoother.h:158
virtual void setRotationalVelocity(const DtVector32 &vel, DtTime curTime)
Set/Get absolute rotational velocity.
virtual const DtTaitBryan & approxEuler(DtTime curTime) const
Get the approximated (i.e.
Definition: deadReckoner.h:242
DtTime myTau2
Definition: trigonometricSmoother.h:151
DtTime myPostSmoothOriTime
Definition: trigonometricSmoother.h:160
bool mySmoothEnable
Definition: trigonometricSmoother.h:172
DtVector mySmoothPos
Definition: trigonometricSmoother.h:144
static double theTimeTolerance
Definition: trigonometricSmoother.h:137
DtTrigonometricSmoother DtSmoother
Compatibility.
Definition: trigonometricSmoother.h:183
virtual void setVelocity(const DtVector32 &vel, DtTime curTime)
Set absolute velocity.
virtual void setAll(const DtVector &loc, const DtVector32 &vel, const DtTaitBryan &ori, const DtVector32 &acc, const DtVector32 &rotVel, DtTime t)
Coherently set all DR parameters, thus avoiding DR computations associated with a partial set...
DtTrigonometricSmoother * self() const
Get rid of constness on the "this" pointer in order to access non-const functions from const member f...
Definition: trigonometricSmoother.h:176
virtual const DtVector32 & acceleration(DtTime curTime) const
Definition: deadReckoner.h:274
DtDcm mySmoothOmegaMx
Definition: trigonometricSmoother.h:166
bool myOriIsDirty
Definition: trigonometricSmoother.h:170
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
static bool theMasterSmoothEnable
Definition: trigonometricSmoother.h:138
DtTime myTau
Definition: trigonometricSmoother.h:150
bool operator==(const DtDeadReckoner &orig) const
equality Operator.
DtTime myTauSq4Inv
Definition: trigonometricSmoother.h:154
virtual void setAcceleration(const DtVector32 &acc, DtTime curTime)
Set/Get absolute acceleration.
static DtTime theDfltSmoothPeriod
Definition: trigonometricSmoother.h:139
DtTime myPostSmoothTime
Definition: trigonometricSmoother.h:156
Definition: vlVector.h:224
DtTime myLastSmoothTbTime
Definition: trigonometricSmoother.h:162
DtVector myV1
Definition: trigonometricSmoother.h:147
DtApproximator is an abstract base class.
Definition: approximator.h:24
DtVector myA1
Definition: trigonometricSmoother.h:148
Definition: vlVector.h:162
DtVector mySmoothRotAxis
Definition: trigonometricSmoother.h:167
DtDcm mySmoothOri
Definition: trigonometricSmoother.h:165
virtual const DtVector32 & rotationalVelocity(DtTime curTime) const
Definition: deadReckoner.h:279
bool myTbIsDirty
Definition: trigonometricSmoother.h:171
virtual void setOrientation(const DtTaitBryan &ori, DtTime curTime)
Set absolute orientation.
#define DT_DLL_VLPROTIND
Definition: vlMachineTypes.h:110
virtual const DtVector & approxLocation(DtTime curTime) const
Get the approximated (i.e.
Definition: deadReckoner.h:209
DtVector myLastDrPos
Definition: trigonometricSmoother.h:142
DtTime myHalfSmoothTime
Definition: trigonometricSmoother.h:157
virtual DtApproximator * clone() const
Create a copy of this object.
Instances of DtTrigonometricSmoother are used to provide approximated position and orientation inform...
Definition: trigonometricSmoother.h:25
DtTaitBryan mySmoothTb
Definition: trigonometricSmoother.h:168
virtual void setLocation(const DtVector &loc, DtTime curTime)
Set absolute location.
DtVector32 myLastDrVel
Definition: trigonometricSmoother.h:143
DtDcms are used to represent orientation for an object.
Definition: vlDcm.h:39
DtTime myTau2Inv
Definition: trigonometricSmoother.h:152
Contains the DtDeadReckoner class declaration.
DtVector myA2
Definition: trigonometricSmoother.h:149
DtTime myTauSq4
Definition: trigonometricSmoother.h:153
virtual const DtDcm & approxBodyToGeoc(DtTime curTime) const
Get the approximated (i.e.
Definition: deadReckoner.h:231
DtDeadReckoner & operator=(const DtDeadReckoner &orig)
Assignment Operator.
bool myIsDirty
Definition: trigonometricSmoother.h:169
DtDcm myLastDrOri
Definition: trigonometricSmoother.h:164
double mySmoothRotRate
Definition: trigonometricSmoother.h:163
DtTime myLastSmoothOriTime
Definition: trigonometricSmoother.h:161
DtVector32 mySmoothVel
Definition: trigonometricSmoother.h:145
DtVector myX1
Definition: trigonometricSmoother.h:146
Instances of DtDeadReckoner are used to provide approximated position and orientation information for...
Definition: deadReckoner.h:30

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)