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
DtVector
& vel,
DtTime
curTime );
65
68
virtual
const
DtVector
&
approxVelocity
(
DtTime
curTime )
const
;
69
71
virtual
const
DtVector
& 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
DtVector
& acc,
DtTime
curTime );
94
virtual
const
DtVector
&
acceleration
(
DtTime
curTime )
const
;
95
97
virtual
void
setRotationalVelocity
(
const
DtVector
& vel,
DtTime
curTime );
98
virtual
const
DtVector
&
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
DtVector
& oldVel,
const
DtVector
& oldAccel,
125
DtVector
& 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
DtVector
& oldVel,
const
DtVector
& oldAccel,
146
DtVector
& newVel,
DtVector
& newPos );
147
149
static
void
deadReckonOrientation(
DtTime
dt,
DtDeadReckonTypes
algorithm,
150
const
DtDcm
& old_b2w,
const
DtDirectedRotRate
& drr,
DtDcm
& new_b2w );
151
153
154
protected
:
155
159
virtual
void
deadReckonLoc(
DtTime
curTime )
const
;
160
164
virtual
void
deadReckonBodyToGeoc(
DtTime
curTime )
const
;
165
169
virtual
void
deadReckonEuler(
DtTime
curTime )
const
;
170
171
protected
:
172
173
DtVector
myLocAtTimeOfValidity
;
174
DtVector
myVelAtTimeOfValidity
;
175
DtTime
mySimTimePosDataValid
;
176
DtDcm
myBodyToGeocAtTimeOfValidity
;
177
DtTime
mySimTimeOrientDataValid
;
178
179
mutable
DtVector
myDRLoc
;
180
mutable
DtVector
myDRVel
;
181
mutable
DtTime
myDRPosTime
;
182
mutable
DtDcm
myDRBodyToGeoc
;
183
mutable
DtTime
myDRBodyToGeocTime
;
184
mutable
DtTaitBryan
myDREuler
;
185
mutable
DtTime
myDREulerTime
;
186
187
DtDirectedRotRate
myDirectedRotRate
;
188
DtDeadReckonTypes
myAlgorithm
;
189
DtVector
myAccel
;
190
DtBodyRates
myRotVel
;
191
192
};
193
194
inline
const
DtVector
&
DtDeadReckoner::deadReckonedLocation
(
DtTime
curTime )
const
195
{
196
deadReckonLoc
( curTime );
197
return
myDRLoc
;
198
}
199
200
inline
const
DtVector
&
DtDeadReckoner::approxLocation
(
DtTime
curTime )
const
201
{
202
return
deadReckonedLocation
( curTime );
203
}
204
205
inline
const
DtVector
&
DtDeadReckoner::deadReckonedVelocity
(
DtTime
curTime )
const
206
{
207
deadReckonLoc
( curTime );
208
return
myDRVel
;
209
}
210
211
inline
const
DtVector
&
DtDeadReckoner::approxVelocity
(
DtTime
curTime )
const
212
{
213
return
deadReckonedVelocity
( curTime );
214
}
215
216
inline
const
DtDcm
&
DtDeadReckoner::deadReckonedBodyToGeoc
(
DtTime
curTime )
const
217
{
218
deadReckonBodyToGeoc
( curTime );
219
return
myDRBodyToGeoc
;
220
}
221
222
inline
const
DtDcm
&
DtDeadReckoner::approxBodyToGeoc
(
DtTime
curTime )
const
223
{
224
return
deadReckonedBodyToGeoc
( curTime );
225
}
226
227
inline
const
DtTaitBryan
&
DtDeadReckoner::deadReckonedEuler
(
DtTime
curTime )
const
228
{
229
deadReckonEuler
( curTime );
230
return
myDREuler
;
231
}
232
233
inline
const
DtTaitBryan
&
DtDeadReckoner::approxEuler
(
DtTime
curTime )
const
234
{
235
return
deadReckonedEuler
( curTime );
236
}
237
238
inline
const
DtTime
&
DtDeadReckoner::locationUpdateTime
()
const
239
{
240
return
mySimTimePosDataValid
;
241
}
242
243
inline
const
DtTime
&
DtDeadReckoner::velocityUpdateTime
()
const
244
{
245
// This is the same as Position, because velocity is recalculated
246
// jointly in this implementation of deadreckoning.
247
return
mySimTimePosDataValid
;
248
}
249
250
inline
const
DtTime
&
DtDeadReckoner::orientationUpdateTime
()
const
251
{
252
return
mySimTimeOrientDataValid
;
253
}
254
255
inline
void
DtDeadReckoner::setAlgorithm
(
DtDeadReckonTypes
alg )
256
{
257
myAlgorithm
= alg;
258
}
259
260
inline
DtDeadReckonTypes
DtDeadReckoner::algorithm
()
const
261
{
262
return
myAlgorithm
;
263
}
264
265
inline
const
DtVector
&
DtDeadReckoner::acceleration
(
DtTime
curTime )
const
266
{
267
return
myAccel
;
268
}
269
270
inline
const
DtVector
&
DtDeadReckoner::rotationalVelocity
(
DtTime
curTime )
const
271
{
272
return
myRotVel
;
273
}
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
)