VR-Link API Documentation for HLA Evolved
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
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 Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)