VR-Link API Documentation for HLA 1516
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
54
virtual
void
setLocation
(
const
DtVector
& loc,
DtTime
curTime );
55
58
virtual
const
DtVector
&
approxLocation
(
DtTime
curTime )
const
;
59
61
virtual
const
DtVector
& deadReckonedLocation(
DtTime
curTime )
const
;
62
64
virtual
void
setVelocity
(
const
DtVector32
& vel,
DtTime
curTime );
65
68
virtual
const
DtVector32
&
approxVelocity
(
DtTime
curTime )
const
;
69
71
virtual
const
DtVector32
& deadReckonedVelocity(
DtTime
curTime )
const
;
72
74
virtual
void
setOrientation
(
const
DtTaitBryan
& ori,
DtTime
curTime );
75
78
virtual
const
DtTaitBryan
&
approxEuler
(
DtTime
curTime )
const
;
79
81
virtual
const
DtTaitBryan
& deadReckonedEuler(
DtTime
curTime )
const
;
82
84
virtual
const
DtTime
&
locationUpdateTime
()
const
;
85
87
virtual
const
DtTime
&
velocityUpdateTime
()
const
;
88
90
virtual
const
DtTime
&
orientationUpdateTime
()
const
;
91
93
virtual
void
setAcceleration
(
const
DtVector32
& acc,
DtTime
curTime );
94
virtual
const
DtVector32
&
acceleration
(
DtTime
curTime )
const
;
95
97
virtual
void
setRotationalVelocity
(
const
DtVector32
& vel,
DtTime
curTime );
98
virtual
const
DtVector32
&
rotationalVelocity
(
DtTime
curTime )
const
;
99
102
virtual
const
DtDcm
&
approxBodyToGeoc
(
DtTime
curTime )
const
;
103
105
virtual
const
DtDcm
& deadReckonedBodyToGeoc(
DtTime
curTime )
const
;
106
109
virtual
void
setAlgorithm(
DtDeadReckonTypes
alg );
110
virtual
DtDeadReckonTypes
algorithm()
const
;
111
114
117
virtual
int
isRotational()
const
;
118
123
virtual
void
deadReckonPosition(
DtTime
dt,
const
DtVector
& oldPos,
124
const
DtVector32
& oldVel,
const
DtVector32
& oldAccel,
125
DtVector32
& newVel,
DtVector
& newPos )
const
;
126
131
virtual
void
deadReckonOrientation(
DtTime
dt,
const
DtDcm
& old_b2w,
132
const
DtDirectedRotRate
& drr,
DtDcm
& new_b2w )
const
;
133
135
138
141
static
int
isRotational(
DtDeadReckonTypes
algorithm );
142
144
static
void
deadReckonPosition(
DtTime
dt,
DtDeadReckonTypes
algorithm,
145
const
DtVector
& oldPos,
const
DtVector32
& oldVel,
const
DtVector32
& oldAccel,
146
DtVector32
& newVel,
DtVector
& newPos );
147
149
static
void
deadReckonOrientation(
DtTime
dt,
DtDeadReckonTypes
algorithm,
150
const
DtDcm
& old_b2w,
const
DtDirectedRotRate
& drr,
DtDcm
& new_b2w );
152
153
protected
:
154
158
virtual
void
deadReckonLoc(
DtTime
curTime )
const
;
159
163
virtual
void
deadReckonBodyToGeoc(
DtTime
curTime )
const
;
164
168
virtual
void
deadReckonEuler(
DtTime
curTime )
const
;
169
170
protected
:
171
172
DtVector
myLocAtTimeOfValidity
;
173
DtVector32
myVelAtTimeOfValidity
;
174
DtTime
mySimTimePosDataValid
;
175
DtDcm
myBodyToGeocAtTimeOfValidity
;
176
DtTime
mySimTimeOrientDataValid
;
177
178
mutable
DtVector
myDRLoc
;
179
mutable
DtVector32
myDRVel
;
180
mutable
DtTime
myDRPosTime
;
181
mutable
DtDcm
myDRBodyToGeoc
;
182
mutable
DtTime
myDRBodyToGeocTime
;
183
mutable
DtTaitBryan
myDREuler
;
184
mutable
DtTime
myDREulerTime
;
185
186
DtDirectedRotRate
myDirectedRotRate
;
187
DtDeadReckonTypes
myAlgorithm
;
188
DtVector32
myAccel
;
189
DtBodyRates
myRotVel
;
190
191
};
192
193
inline
const
DtVector
&
DtDeadReckoner::deadReckonedLocation
(
DtTime
curTime )
const
194
{
195
deadReckonLoc
( curTime );
196
return
myDRLoc
;
197
}
198
199
inline
const
DtVector
&
DtDeadReckoner::approxLocation
(
DtTime
curTime )
const
200
{
201
return
deadReckonedLocation
( curTime );
202
}
203
204
inline
const
DtVector32
&
DtDeadReckoner::deadReckonedVelocity
(
DtTime
curTime )
const
205
{
206
deadReckonLoc
( curTime );
207
return
myDRVel
;
208
}
209
210
inline
const
DtVector32
&
DtDeadReckoner::approxVelocity
(
DtTime
curTime )
const
211
{
212
return
deadReckonedVelocity
( curTime );
213
}
214
215
inline
const
DtDcm
&
DtDeadReckoner::deadReckonedBodyToGeoc
(
DtTime
curTime )
const
216
{
217
deadReckonBodyToGeoc
( curTime );
218
return
myDRBodyToGeoc
;
219
}
220
221
inline
const
DtDcm
&
DtDeadReckoner::approxBodyToGeoc
(
DtTime
curTime )
const
222
{
223
return
deadReckonedBodyToGeoc
( curTime );
224
}
225
226
inline
const
DtTaitBryan
&
DtDeadReckoner::deadReckonedEuler
(
DtTime
curTime )
const
227
{
228
deadReckonEuler
( curTime );
229
return
myDREuler
;
230
}
231
232
inline
const
DtTaitBryan
&
DtDeadReckoner::approxEuler
(
DtTime
curTime )
const
233
{
234
return
deadReckonedEuler
( curTime );
235
}
236
237
inline
const
DtTime
&
DtDeadReckoner::locationUpdateTime
()
const
238
{
239
return
mySimTimePosDataValid
;
240
}
241
242
inline
const
DtTime
&
DtDeadReckoner::velocityUpdateTime
()
const
243
{
244
// This is the same as Position, because velocity is recalculated
245
// jointly in this implementation of deadreckoning.
246
return
mySimTimePosDataValid
;
247
}
248
249
inline
const
DtTime
&
DtDeadReckoner::orientationUpdateTime
()
const
250
{
251
return
mySimTimeOrientDataValid
;
252
}
253
254
inline
void
DtDeadReckoner::setAlgorithm
(
DtDeadReckonTypes
alg )
255
{
256
myAlgorithm
= alg;
257
}
258
259
inline
DtDeadReckonTypes
DtDeadReckoner::algorithm
()
const
260
{
261
return
myAlgorithm
;
262
}
263
264
inline
const
DtVector32
&
DtDeadReckoner::acceleration
(
DtTime
curTime )
const
265
{
266
return
myAccel
;
267
}
268
269
inline
const
DtVector32
&
DtDeadReckoner::rotationalVelocity
(
DtTime
curTime )
const
270
{
271
return
myRotVel
;
272
}
Document ID: Generated on Mon Feb 6 18:36:34 EST 2017 from SVN revision 173107
Copyright © 2005-2016 VT MÄK. All Rights Reserved (
www.mak.com
)