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
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
22
class
DT_DLL_VLPROTIND
DtSmoother
:
public
DtDeadReckoner
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
;
118
static
bool
theMasterSmoothEnable
;
119
static
DtTime
theDfltSmoothPeriod
;
120
121
protected
:
122
DtVector
myLastDrPos
;
123
DtVector
myLastDrVel
;
124
DtVector
mySmoothPos
;
125
DtVector
mySmoothVel
;
126
DtVector
myX1
;
127
DtVector
myV1
;
128
DtVector
myA1
;
129
DtVector
myA2
;
130
DtTime
myTau
;
131
DtTime
myTau2
;
132
DtTime
myTau2Inv
;
133
DtTime
myTauSq4
;
134
DtTime
myTauSq4Inv
;
135
DtTime
myLastSetTime
;
136
DtTime
myPostSmoothTime
;
137
DtTime
myHalfSmoothTime
;
138
DtTime
myOriTau
;
139
DtTime
myLastSetOriTime
;
140
DtTime
myPostSmoothOriTime
;
141
DtTime
myLastSmoothOriTime
;
142
DtTime
myLastSmoothTbTime
;
143
double
mySmoothRotRate
;
144
DtDcm
myLastDrOri
;
145
DtDcm
mySmoothOri
;
146
DtDcm
mySmoothOmegaMx
;
147
DtVector
mySmoothRotAxis
;
148
DtTaitBryan
mySmoothTb
;
149
bool
myIsDirty
;
150
bool
myOriIsDirty
;
151
bool
myTbIsDirty
;
152
bool
mySmoothEnable
;
153
};
154
155
156
inline
DtSmoother
*
DtSmoother::self
()
const
157
{
158
return
(
DtSmoother
*)
this
;
159
}
160
161
#endif
162
Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (
www.mak.com
)