VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrfmodel
surfaceEntityActuator.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2013 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
10
#pragma once
11
12
#include "
vrfobjcore/actuatorComponent.h
"
13
#include "
vrfobjcore/vrfKinematicState.h
"
14
15
class
DtString
;
16
class
DtSimManager
;
17
class
DtSurfaceEntityStateRepository
;
18
class
DtSurfaceEntityActuatorDescriptor
;
19
class
DtConstrainedAnalogInputPort
;
20
class
DtBooleanOutputPort
;
21
class
DtSurfaceMovementPSR
;
22
class
DtUpdateRepositoryOutputPortGroup
;
23
45
#include "
vrfmodel/vrfmodelDefines.h
"
46
class
DT_DLL_vrfmodel
DtSurfaceEntityActuator
:
public
DtActuatorComponent
47
{
48
49
public
:
50
54
DtSurfaceEntityActuator
(
const
DtString
& name,
55
DtVrfObject
* owner,
56
DtSimManager
* simManager,
57
DtComponentDescriptor
* desc = 0,
58
DtReaderWriterRegistry
* parentRegistry = 0);
59
64
virtual
~
DtSurfaceEntityActuator
();
65
68
virtual
bool
init
();
69
72
virtual
const
char
*
type
()
const
;
73
76
virtual
bool
postAddComponentsInit
();
77
80
virtual
void
initProcessSR();
81
106
virtual
void
tick
();
107
113
virtual
double
calculateRudderYawAcceleration();
114
119
virtual
double
calculateResistanceYawAcceleration();
120
128
virtual
const
DtVector
calculateThrottleAcceleration();
129
134
virtual
const
DtVector
calculateDragAcceleration();
135
141
virtual
bool
clampSmallVelocityToZero();
142
145
virtual
double
stoppingSpeed();
146
153
virtual
void
useFuel(
double
fuelUsed);
154
160
virtual
double
fuelLeft()
const
;
161
165
static
DtSimComponent
* creator(
const
DtString
& name,
166
DtVrfObject
* owner,
167
DtSimManager
* simManager,
168
DtComponentDescriptor
* desc = 0,
169
DtReaderWriterRegistry
* parentRegistry = 0);
170
171
protected
:
172
175
virtual
bool
createPortGroups
();
176
179
virtual
bool
createPorts
();
180
185
virtual
void
integratePosition(
double
dT);
186
193
virtual
void
integrateOrientation(
double
dT);
194
198
void
constrainYawAcceleration(
double
& yawAcceleration,
double
yawRate,
199
double
maxYawRate,
double
dT);
200
204
virtual
void
updateRepository();
205
206
DtSurfaceEntityStateRepository
* surfaceEntityState (
void
)
const
;
207
213
virtual
bool
createPSR();
214
215
protected
:
216
218
DtSurfaceEntityActuator
();
219
221
DtSurfaceEntityActuator
222
(
const
DtSurfaceEntityActuator
& orig);
223
225
const
DtSurfaceEntityActuator
&
operator
=
226
(
const
DtSurfaceEntityActuator
& orig);
227
228
229
protected
:
230
231
DtSurfaceEntityStateRepository
*
mySurfaceEntityState
;
232
DtSurfaceEntityActuatorDescriptor
*
mySurfaceEntityActuatorDescriptor
;
233
236
239
DtInputPortGroup
*
mySurfaceControlPortGroup
;
240
246
DtConstrainedAnalogInputPort
*
myThrottlePort
;
247
253
DtConstrainedAnalogInputPort
*
myRudderPort
;
254
258
DtBooleanOutputPort
*
mySmallVelocityClampedPort
;
259
261
262
DtDcm
myBodyToLocalMatrix
;
263
DtDcm
myLocalToBodyMatrix
;
264
265
DtVector
myLocalPosition
;
266
DtVector
myRelativeVelocity
;
267
DtVector
myRelativeAcceleration
;
268
DtTaitBryan
myOrientation
;
269
DtVector
myBodyRotationRates
;
270
DtVector
myBodyRotationalAcceleration
;
271
274
DtSurfaceMovementPSR
*
myProcessState
;
275
276
bool
myOutOfFuelWarningPrinted
;
277
280
DtUpdateRepositoryOutputPortGroup
*
myUpdateRepositoryOutputPortGroup
;
281
};
282
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)