VR-Forces 4.3.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vrfmodel
groundCollisionAvoidanceController.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/groundAutoControllerComponent.h
"
14
#include "
vrfobjcore/vrfObjectIterator.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 Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (
www.mak.com
)