VR-Forces 4.1.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
vrfmodel
gndColAvoid.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 1999 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
11
#pragma once
12
13
#include "
vrfmodel/gndAutoCntlr.h
"
14
#include "
vrfobjcore/vrfObjIter.h
"
15
#include <vl/hostStructs.h>
16
#include "
vrfobjcore/automotivePSR.h
"
17
18
class
DtString
;
19
class
DtSimManager
;
20
class
Dt3dBoundingVolume;
21
class
DtGroundFollowEntityController
;
22
class
DtVrfObjectStateRepository
;
23
class
DtInputControlPortGroup;
24
class
DtCollisionInputPort
;
25
class
DtCollision
;
26
class
DtStringInputPort
;
27
32
#include "
vrfmodel/vrfmodelDefines.h
"
33
class
DT_DLL_vrfmodel
DtGroundCollisionAvoidanceController
:
public
34
DtGroundAutoControllerComponent
35
{
36
37
public
:
38
41
DtGroundCollisionAvoidanceController
(
const
DtString
& name,
42
DtVrfObject
* owner,
43
DtSimManager
* simManager,
44
DtComponentDescriptor
* desc = 0,
45
DtReaderWriterRegistry
* parentRegistry = 0);
46
49
virtual
~
DtGroundCollisionAvoidanceController
();
50
54
virtual
bool
init
();
55
65
virtual
void
tick
();
66
70
virtual
double
distanceSquaredToDestination(
DtVector
offsetVector);
71
77
virtual
void
avoidCollision(
const
DtCollision
& potentialCollision);
78
81
virtual
DtString
type
()
const
;
82
86
static
DtSimComponent
* creator(
const
DtString
& name,
87
DtVrfObject
* owner,
88
DtSimManager
* simManager,
89
DtComponentDescriptor
* desc = 0,
90
DtReaderWriterRegistry
* parentRegistry = 0);
91
92
protected
:
95
DtGroundCollisionAvoidanceController
();
96
98
DtGroundCollisionAvoidanceController
(
const
99
DtGroundCollisionAvoidanceController
& orig);
100
102
const
DtGroundCollisionAvoidanceController
&
operator=
(
const
103
DtGroundCollisionAvoidanceController
& orig);
104
107
virtual
void
clearCollisionStateData();
108
113
virtual
void
clearingCollision();
114
119
bool
isAppreciablyMoving(
DtVector
velocity,
double
velocityTolerance)
const
;
120
130
bool
setDefaultPortValuesForAvoidance(
DtAutoTransmissionGear
currentGear);
131
138
bool
determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
139
const
DtVector
& obstructionVelocity,
140
int
& obstructionDirectionSign)
const
;
141
145
bool
followingObstruction(
const
DtEntityIdentifier& entityID)
const
;
146
159
void
avoidMovingObstruction(
const
DtCollision
& potentialCollision);
160
171
void
avoidNonMovingObstruction(
const
DtCollision
& potentialCollision);
172
182
void
startClearingCollision(
double
clearingDistance);
183
197
bool
calculateCollisionBV();
198
199
bool
createPortGroups
();
200
bool
createPorts
();
201
202
protected
:
203
205
double
myClearingDistance
;
206
207
bool
myAvoidingCollision
;
208
Dt3dBoundingVolume*
myCollisionBV
;
209
210
DtEntityIdentifier
myObjectId
;
211
bool
myHavePortGroup
;
212
213
DtString
myFollowEntityName
;
214
217
223
DtCollisionInputPort
*
myCollisionAvoidancePort
;
224
227
DtInputPortGroup
*
myCollisionAvoidancePortGroup
;
228
234
DtStringInputPort
*
myFollowEntityInputPort
;
235
240
DtBooleanOutputPort
*
myCollisionPort
;
242
244
};
Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)