VR-Link API Documentation for HLA Evolved
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
deadReckoner.h
Go to the documentation of this file.
1
/****************************************************************************
2
* Copyright (c) 2014 VT MAK
3
* All rights reserved.
4
****************************************************************************/
5
9
10
#pragma once
11
12
#include <
vlpi/approximator.h
>
13
#include <
vlpi/disEnums.h
>
14
15
#include <
matrix/vlTaitBryan.h
>
16
#include <
matrix/vlVector.h
>
17
#include <
matrix/vlDcm.h
>
18
30
class
DT_DLL_VLPROTIND
DtDeadReckoner
:
public
DtApproximator
31
{
32
public
:
33
35
DtDeadReckoner
();
36
38
DtDeadReckoner
(
const
DtDeadReckoner
& orig );
39
41
virtual
~
DtDeadReckoner
();
42
44
DtDeadReckoner
&
operator =
(
const
DtDeadReckoner
& orig );
45
47
bool
operator ==
(
const
DtDeadReckoner
& orig )
const
;
48
51
virtual
DtApproximator
*
clone
()
const
;
52
55
virtual
void
setAll
(
56
const
DtVector
& loc,
57
const
DtVector32
& vel,
58
const
DtTaitBryan
& ori,
59
const
DtVector32
& acc,
60
const
DtVector32
& rotVel,
61
DtTime
t);
62
64
virtual
void
setLocation
(
const
DtVector
& loc,
DtTime
curTime );
65
68
virtual
const
DtVector
&
approxLocation
(
DtTime
curTime )
const
;
69
71
virtual
const
DtVector
& deadReckonedLocation(
DtTime
curTime )
const
;
72
74
virtual
void
setVelocity
(
const
DtVector32
& vel,
DtTime
curTime );
75
78
virtual
const
DtVector32
&
approxVelocity
(
DtTime
curTime )
const
;
79
81
virtual
const
DtVector32
& deadReckonedVelocity(
DtTime
curTime )
const
;
82
84
virtual
void
setOrientation
(
const
DtTaitBryan
& ori,
DtTime
curTime );
85
88
virtual
const
DtTaitBryan
&
approxEuler
(
DtTime
curTime )
const
;
89
91
virtual
const
DtTaitBryan
& deadReckonedEuler(
DtTime
curTime )
const
;
92
94
virtual
const
DtTime
&
locationUpdateTime
()
const
;
95
97
virtual
const
DtTime
&
velocityUpdateTime
()
const
;
98
100
virtual
const
DtTime
&
orientationUpdateTime
()
const
;
101
103
virtual
void
setAcceleration
(
const
DtVector32
& acc,
DtTime
curTime );
104
virtual
const
DtVector32
&
acceleration
(
DtTime
curTime )
const
;
105
107
virtual
void
setRotationalVelocity
(
const
DtVector32
& vel,
DtTime
curTime );
108
virtual
const
DtVector32
&
rotationalVelocity
(
DtTime
curTime )
const
;
109
112
virtual
const
DtDcm
&
approxBodyToGeoc
(
DtTime
curTime )
const
;
113
115
virtual
const
DtDcm
& deadReckonedBodyToGeoc(
DtTime
curTime )
const
;
116
119
virtual
void
setAlgorithm(
DtDeadReckonTypes
alg );
120
virtual
DtDeadReckonTypes
algorithm()
const
;
121
124
127
virtual
int
isRotational()
const
;
128
133
virtual
void
deadReckonPosition(
DtTime
dt,
const
DtVector
& oldPos,
134
const
DtVector32
& oldVel,
const
DtVector32
& oldAccel,
135
DtVector32
& newVel,
DtVector
& newPos )
const
;
136
141
virtual
void
deadReckonOrientation(
DtTime
dt,
const
DtDcm
& old_b2w,
142
const
DtDirectedRotRate
& drr,
DtDcm
& new_b2w )
const
;
143
145
148
151
static
int
isRotational(
DtDeadReckonTypes
algorithm );
152
154
static
void
deadReckonPosition(
DtTime
dt,
DtDeadReckonTypes
algorithm,
155
const
DtVector
& oldPos,
const
DtVector32
& oldVel,
const
DtVector32
& oldAccel,
156
DtVector32
& newVel,
DtVector
& newPos );
157
159
static
void
deadReckonOrientation(
DtTime
dt,
DtDeadReckonTypes
algorithm,
160
const
DtDcm
& old_b2w,
const
DtDirectedRotRate
& drr,
DtDcm
& new_b2w );
162
163
protected
:
164
168
virtual
void
deadReckonLoc(
DtTime
curTime )
const
;
169
173
virtual
void
deadReckonBodyToGeoc(
DtTime
curTime )
const
;
174
178
virtual
void
deadReckonEuler(
DtTime
curTime )
const
;
179
180
protected
:
181
182
DtVector
myLocAtTimeOfValidity
;
183
DtVector32
myVelAtTimeOfValidity
;
184
DtTime
mySimTimePosDataValid
;
185
DtDcm
myBodyToGeocAtTimeOfValidity
;
186
DtTime
mySimTimeOrientDataValid
;
187
188
mutable
DtVector
myDRLoc
;
189
mutable
DtVector32
myDRVel
;
190
mutable
DtTime
myDRPosTime
;
191
mutable
DtDcm
myDRBodyToGeoc
;
192
mutable
DtTime
myDRBodyToGeocTime
;
193
mutable
DtTaitBryan
myDREuler
;
194
mutable
DtTime
myDREulerTime
;
195
196
DtDirectedRotRate
myDirectedRotRate
;
197
DtDeadReckonTypes
myAlgorithm
;
198
DtVector32
myAccel
;
199
DtBodyRates
myRotVel
;
200
201
};
202
203
inline
const
DtVector
&
DtDeadReckoner::deadReckonedLocation
(
DtTime
curTime )
const
204
{
205
deadReckonLoc
( curTime );
206
return
myDRLoc
;
207
}
208
209
inline
const
DtVector
&
DtDeadReckoner::approxLocation
(
DtTime
curTime )
const
210
{
211
return
deadReckonedLocation
( curTime );
212
}
213
214
inline
const
DtVector32
&
DtDeadReckoner::deadReckonedVelocity
(
DtTime
curTime )
const
215
{
216
deadReckonLoc
( curTime );
217
return
myDRVel
;
218
}
219
220
inline
const
DtVector32
&
DtDeadReckoner::approxVelocity
(
DtTime
curTime )
const
221
{
222
return
deadReckonedVelocity
( curTime );
223
}
224
225
inline
const
DtDcm
&
DtDeadReckoner::deadReckonedBodyToGeoc
(
DtTime
curTime )
const
226
{
227
deadReckonBodyToGeoc
( curTime );
228
return
myDRBodyToGeoc
;
229
}
230
231
inline
const
DtDcm
&
DtDeadReckoner::approxBodyToGeoc
(
DtTime
curTime )
const
232
{
233
return
deadReckonedBodyToGeoc
( curTime );
234
}
235
236
inline
const
DtTaitBryan
&
DtDeadReckoner::deadReckonedEuler
(
DtTime
curTime )
const
237
{
238
deadReckonEuler
( curTime );
239
return
myDREuler
;
240
}
241
242
inline
const
DtTaitBryan
&
DtDeadReckoner::approxEuler
(
DtTime
curTime )
const
243
{
244
return
deadReckonedEuler
( curTime );
245
}
246
247
inline
const
DtTime
&
DtDeadReckoner::locationUpdateTime
()
const
248
{
249
return
mySimTimePosDataValid
;
250
}
251
252
inline
const
DtTime
&
DtDeadReckoner::velocityUpdateTime
()
const
253
{
254
// This is the same as Position, because velocity is recalculated
255
// jointly in this implementation of deadreckoning.
256
return
mySimTimePosDataValid
;
257
}
258
259
inline
const
DtTime
&
DtDeadReckoner::orientationUpdateTime
()
const
260
{
261
return
mySimTimeOrientDataValid
;
262
}
263
264
inline
void
DtDeadReckoner::setAlgorithm
(
DtDeadReckonTypes
alg )
265
{
266
myAlgorithm
= alg;
267
}
268
269
inline
DtDeadReckonTypes
DtDeadReckoner::algorithm
()
const
270
{
271
return
myAlgorithm
;
272
}
273
274
inline
const
DtVector32
&
DtDeadReckoner::acceleration
(
DtTime
curTime )
const
275
{
276
return
myAccel
;
277
}
278
279
inline
const
DtVector32
&
DtDeadReckoner::rotationalVelocity
(
DtTime
curTime )
const
280
{
281
return
myRotVel
;
282
}
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
)