VR-Forces 4.7 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
groundCollisionAvoidanceController.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2015 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
11
#pragma once
12
13
#include "
vrfmodel/groundAutoControllerComponent.h
"
14
#include <vl/hostStructs.h>
15
#include "
vrfobjcore/automotivePSR.h
"
16
#include "
vrfobjcore/vrfObjectReference.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
class
DtActiveBotNavInterface
;
28
33
#include "
vrfmodel/vrfmodelDefines.h
"
34
class
DT_DLL_vrfmodel
DtGroundCollisionAvoidanceController
:
public
35
DtGroundAutoControllerComponent
36
{
37
38
public
:
39
42
DtGroundCollisionAvoidanceController
(
const
DtString
& name,
43
DtVrfObject
* owner,
44
DtSimManager
* simManager,
45
DtComponentDescriptor
* desc = 0,
46
DtReaderWriterRegistry
* parentRegistry = 0);
47
50
virtual
~
DtGroundCollisionAvoidanceController
();
51
55
virtual
bool
init
();
56
66
virtual
void
tick
();
67
71
virtual
double
distanceSquaredToDestination();
72
78
virtual
void
avoidCollision(
const
DtCollision
& potentialCollision);
79
82
virtual
const
char
*
type
()
const
;
83
87
static
DtSimComponent
* creator(
const
DtString
& name,
88
DtVrfObject
* owner,
89
DtSimManager
* simManager,
90
DtComponentDescriptor
* desc = 0,
91
DtReaderWriterRegistry
* parentRegistry = 0);
92
93
protected
:
96
DtGroundCollisionAvoidanceController
();
97
99
DtGroundCollisionAvoidanceController
(
const
100
DtGroundCollisionAvoidanceController
& orig);
101
103
const
DtGroundCollisionAvoidanceController
&
operator=
(
const
104
DtGroundCollisionAvoidanceController
& orig);
105
108
virtual
void
clearCollisionStateData();
109
114
virtual
void
clearingCollision();
115
120
bool
isAppreciablyMoving(
DtVector
velocity,
double
velocityTolerance)
const
;
121
131
bool
setDefaultPortValuesForAvoidance(
DtAutoTransmissionGear
currentGear);
132
139
bool
determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
140
const
DtVector
& obstructionVelocity,
141
int
& obstructionDirectionSign)
const
;
142
146
bool
followingObstruction(
const
DtUUID
& entity)
const
;
147
160
void
avoidMovingObstruction(
const
DtCollision
& potentialCollision);
161
172
void
avoidNonMovingObstruction(
const
DtCollision
& potentialCollision);
173
183
void
startClearingCollision(
double
clearingDistance);
184
198
bool
calculateCollisionBV();
199
200
bool
createPortGroups
();
201
bool
createPorts
();
202
203
protected
:
204
206
double
myClearingDistance
;
207
208
bool
myAvoidingCollision
;
209
Dt3dBoundingVolume*
myCollisionBV
;
210
211
bool
myHavePortGroup
;
212
213
DtRwUUID
myFollowEntityName
;
214
217
223
DtCollisionInputPort
*
myCollisionAvoidancePort
;
224
227
DtInputPortGroup
*
myCollisionAvoidancePortGroup
;
228
234
DtStringInputPort
*
myFollowEntityInputPort
;
235
240
DtBooleanOutputPort
*
myCollisionPort
;
242
244
};
Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (
www.mak.com
)