VR-Forces 4.2 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
vrfmodel
surfEntPltCtl.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2007 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
11
#pragma once
12
13
#include "
vrfobjcore/singleTaskControllerComponent.h
"
14
16
#define REDUCED_ACCELERATION_FACTOR 0.5
17
18
#define PROPORTIONAL_SPEED_CONTROL 1.0
19
20
#define PROPORTIONAL_TURN_CONTROL 5.0
21
22
23
24
25
#define DIRECT_HEADING_CONTROL_ANGLE 0.5
26
27
28
29
30
31
#define HEADING_GOAL_EPSILON 0.001
32
class DtString;
33
class
DtSimManager
;
34
class
DtAnalogOutputPort
;
35
class
DtBooleanOutputPort
;
36
class
DtSurfaceEntityActuator
;
37
class
DtVrfMovingObjectStateRepository
;
38
class
DtSurfaceEntityParameters
;
39
class
DtSurfaceEntityPilotControllerDescriptor
;
40
class
DtTaskMessage
;
41
class
DtSurfaceMovementPSR
;
42
77
78
#include "
vrfmodel/vrfmodelDefines.h
"
79
class
DT_DLL_vrfmodel
DtSurfaceEntityPilotController
:
80
public
DtSingleTaskControllerComponent
81
{
82
83
public
:
84
90
DtSurfaceEntityPilotController
(
const
DtString
& name,
91
DtVrfObject
* owner,
92
DtSimManager
* simManager,
93
DtComponentDescriptor
* desc = 0,
94
DtReaderWriterRegistry
* parentRegistry = 0);
95
99
virtual
~
DtSurfaceEntityPilotController
();
100
103
virtual
DtString
type
()
const
;
104
107
virtual
bool
init
();
108
111
virtual
void
tick
();
112
115
virtual
void
clearTask
();
117
virtual
bool
createSurfaceControlPortGroup();
118
120
virtual
DtVrfMovingObjectStateRepository
*
getSR
() {
return
myEntityState;}
121
127
static
DtReaderWriter
* provideOrderedSpeed(
void
* controller);
129
130
protected
:
135
virtual
void
moveToWithFinalSpeed(
const
DtVector
& localDestination,
136
const
double
cruiseSpeed,
const
double
finalSpeed);
139
virtual
void
moveToWithFinalSpeed(
const
double
goalHeading,
140
const
double
cruiseSpeed,
const
double
finalSpeed);
141
146
virtual
void
turn(
double
desiredRate);
147
153
virtual
void
turn(
double
desiredRate,
double
desiredHeading);
154
157
virtual
void
immediateNormalStop();
158
159
protected
:
170
virtual
double
calculateControlForTurn(
double
yawAngle,
171
double
desiredRate);
172
192
virtual
double
calculateNormalAcceleration(
double
cruiseSpeed,
193
double
distance,
double
turnAngle,
double
finalSpeed);
194
199
virtual
double
calculateNormalAcceleration(
double
desiredSpeed);
200
209
virtual
double
limitedAcceleration(
double
desiredAcceleration,
210
double
desiredSpeed);
211
219
virtual
double
followerAcceleration(
double
dT,
220
double
distance,
double
maxDeceleration,
221
double
followerSpeed,
double
leaderSpeed);
222
223
public
:
227
static
DtSimComponent
* creator(
const
DtString
& name,
228
DtVrfObject
* owner,
229
DtSimManager
* simManager,
230
DtComponentDescriptor
* desc = 0,
231
DtReaderWriterRegistry
* parentRegistry = 0);
232
233
protected
:
234
236
virtual
bool
createPortGroups
();
237
239
virtual
bool
createPorts
();
240
248
virtual
void
lookupAndCacheProcessSR();
249
253
virtual
bool
postAddComponentsInit
();
254
258
virtual
bool
decideToGiveUpTask
()
const
;
259
260
protected
:
261
263
DtSurfaceEntityPilotController
();
264
266
DtSurfaceEntityPilotController
(
267
const
DtSurfaceEntityPilotController
& orig);
268
270
const
DtSurfaceEntityPilotController
&
operator=
(
271
const
DtSurfaceEntityPilotController
& orig);
272
273
274
protected
:
275
276
DtVrfMovingObjectStateRepository
*
myEntityState
;
277
DtSurfaceEntityPilotControllerDescriptor
*
myDescriptor
;
278
280
const
DtSurfaceEntityParameters
*
myParameters
;
281
287
DtSurfaceMovementPSR
*
myProcessState
;
288
289
293
DtAnalogOutputPort
*
myAccelerationPort
;
296
DtAnalogOutputPort
*
myClampSpeedPort
;
298
DtAnalogOutputPort
*
myTurnRatePort
;
300
DtAnalogOutputPort
*
myFinalHeadingPort
;
301
305
DtOutputPortGroup
*
mySurfaceControlPortGroup
;
307
310
double
myDistanceSquared
;
311
312
};
Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)