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
35
bool
operator ==
(
const
DtSmoother
& orig )
const
;
36
39
virtual
DtApproximator
*
clone
()
const
;
40
41
protected
:
42
virtual
void
resetPosSmoother(
DtTime
t );
43
virtual
void
resetOriSmoother(
DtTime
t );
44
45
public
:
47
virtual
void
setLocation
(
const
DtVector
& loc,
DtTime
t );
49
virtual
const
DtVector
&
approxLocation
(
DtTime
t )
const
;
50
52
virtual
void
setVelocity
(
const
DtVector
& vel,
DtTime
t );
54
virtual
const
DtVector
&
approxVelocity
(
DtTime
t )
const
;
55
57
virtual
void
setOrientation
(
const
DtTaitBryan
& ori,
DtTime
t );
59
virtual
const
DtTaitBryan
&
approxEuler
(
DtTime
t )
const
;
60
62
virtual
void
setAcceleration
(
const
DtVector
& acc,
DtTime
t );
63
virtual
const
DtVector
&
acceleration
(
DtTime
t )
const
;
64
66
virtual
void
setRotationalVelocity
(
const
DtVector
& vel,
DtTime
t );
67
virtual
const
DtVector
&
rotationalVelocity
(
DtTime
t )
const
;
68
70
virtual
const
DtDcm
&
approxBodyToGeoc
(
DtTime
t )
const
;
71
75
virtual
void
setSmoothPeriod(
DtTime
t );
76
virtual
DtTime
smoothPeriod()
const
;
77
81
virtual
void
setOriSmoothPeriod(
DtTime
t );
82
virtual
DtTime
oriSmoothPeriod()
const
;
83
84
virtual
void
setSmoothEnable(
bool
onOff);
85
virtual
bool
smoothEnable()
const
;
86
87
protected
:
88
virtual
const
DtVector
& smoothPosition(
DtTime
t );
89
virtual
const
DtVector
& smoothVelocity(
DtTime
t );
90
virtual
const
DtDcm
& smoothBodyToGeoc(
DtTime
t );
91
virtual
void
initSmootherParams();
92
virtual
void
initSmoothOriParams();
93
101
inline
DtSmoother
*
self
()
const
;
102
103
public
:
105
static
void
setDfltSmoothPeriod(
DtTime
smoothPeriod);
106
static
DtTime
dfltSmoothPeriod();
107
110
static
void
setMasterSmoothEnable(
bool
onOff);
111
static
bool
masterSmoothEnable();
112
113
114
static
void
rotAngleAndAxisFromRotMatrix(
115
DtVector
& n,
double
& phi,
const
DtDcm
& m );
116
static
void
rotMatrixFromRotRatesAndTime(
117
DtDcm
& m,
DtDcm
& o,
DtVector
& n,
double
& w,
const
DtVector
& r,
double
t );
118
119
protected
:
120
static
double
theTimeTolerance
;
121
static
bool
theMasterSmoothEnable
;
122
static
DtTime
theDfltSmoothPeriod
;
123
124
protected
:
125
DtVector
myLastDrPos
;
126
DtVector
myLastDrVel
;
127
DtVector
mySmoothPos
;
128
DtVector
mySmoothVel
;
129
DtVector
myX1
;
130
DtVector
myV1
;
131
DtVector
myA1
;
132
DtVector
myA2
;
133
DtTime
myTau
;
134
DtTime
myTau2
;
135
DtTime
myTau2Inv
;
136
DtTime
myTauSq4
;
137
DtTime
myTauSq4Inv
;
138
DtTime
myLastSetTime
;
139
DtTime
myPostSmoothTime
;
140
DtTime
myHalfSmoothTime
;
141
DtTime
myOriTau
;
142
DtTime
myLastSetOriTime
;
143
DtTime
myPostSmoothOriTime
;
144
DtTime
myLastSmoothOriTime
;
145
DtTime
myLastSmoothTbTime
;
146
double
mySmoothRotRate
;
147
DtDcm
myLastDrOri
;
148
DtDcm
mySmoothOri
;
149
DtDcm
mySmoothOmegaMx
;
150
DtVector
mySmoothRotAxis
;
151
DtTaitBryan
mySmoothTb
;
152
bool
myIsDirty
;
153
bool
myOriIsDirty
;
154
bool
myTbIsDirty
;
155
bool
mySmoothEnable
;
156
};
157
158
159
inline
DtSmoother
*
DtSmoother::self
()
const
160
{
161
return
(
DtSmoother
*)
this
;
162
}
163
164
#endif
165
Document ID: Generated on Fri May 15 06:36:13 EDT 2015 from SVN revision 153263
Copyright © 2005-2014 VT MÄK. All Rights Reserved (
www.mak.com
)