VR-Link API Documentation for HLA 1.3
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vlpi
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
25
class
DT_DLL_VLPROTIND
DtTrigonometricSmoother
:
public
DtDeadReckoner
26
{
27
public
:
29
DtTrigonometricSmoother
();
31
virtual
~
DtTrigonometricSmoother
();
33
DtTrigonometricSmoother
(
const
DtTrigonometricSmoother
& src );
35
DtTrigonometricSmoother
&
operator=
(
const
DtTrigonometricSmoother
& src );
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
;
138
static
bool
theMasterSmoothEnable
;
139
static
DtTime
theDfltSmoothPeriod
;
140
141
protected
:
142
DtVector
myLastDrPos
;
143
DtVector32
myLastDrVel
;
144
DtVector
mySmoothPos
;
145
DtVector32
mySmoothVel
;
146
DtVector
myX1
;
147
DtVector
myV1
;
148
DtVector
myA1
;
149
DtVector
myA2
;
150
DtTime
myTau
;
151
DtTime
myTau2
;
152
DtTime
myTau2Inv
;
153
DtTime
myTauSq4
;
154
DtTime
myTauSq4Inv
;
155
DtTime
myLastSetTime
;
156
DtTime
myPostSmoothTime
;
157
DtTime
myHalfSmoothTime
;
158
DtTime
myOriTau
;
159
DtTime
myLastSetOriTime
;
160
DtTime
myPostSmoothOriTime
;
161
DtTime
myLastSmoothOriTime
;
162
DtTime
myLastSmoothTbTime
;
163
double
mySmoothRotRate
;
164
DtDcm
myLastDrOri
;
165
DtDcm
mySmoothOri
;
166
DtDcm
mySmoothOmegaMx
;
167
DtVector
mySmoothRotAxis
;
168
DtTaitBryan
mySmoothTb
;
169
bool
myIsDirty
;
170
bool
myOriIsDirty
;
171
bool
myTbIsDirty
;
172
bool
mySmoothEnable
;
173
};
174
175
176
inline
DtTrigonometricSmoother
*
DtTrigonometricSmoother::self
()
const
177
{
178
return
(
DtTrigonometricSmoother
*)
this
;
179
}
180
181
183
typedef
DtTrigonometricSmoother
DtSmoother
;
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
)