VR-Forces Development_Version 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) 2015 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
#include "
vrfobjcore/vrfObjectReference.h
"
18
19
class
DtString
;
20
class
DtSimManager
;
21
class
Dt3dBoundingVolume;
22
class
DtGroundFollowEntityController
;
23
class
DtVrfObjectStateRepository
;
24
class
DtInputControlPortGroup;
25
class
DtCollisionInputPort
;
26
class
DtCollision
;
27
class
DtStringInputPort
;
28
class
DtActiveBotNavInterface
;
29
34
#include "
vrfmodel/vrfmodelDefines.h
"
35
class
DT_DLL_vrfmodel
DtGroundCollisionAvoidanceController
:
public
36
DtGroundAutoControllerComponent
37
{
38
39
public
:
40
43
DtGroundCollisionAvoidanceController
(
const
DtString
& name,
44
DtVrfObject
* owner,
45
DtSimManager
* simManager,
46
DtComponentDescriptor
* desc = 0,
47
DtReaderWriterRegistry
* parentRegistry = 0);
48
51
virtual
~
DtGroundCollisionAvoidanceController
();
52
56
virtual
bool
init
();
57
67
virtual
void
tick
();
68
72
virtual
double
distanceSquaredToDestination(
DtVector
offsetVector);
73
79
virtual
void
avoidCollision(
const
DtCollision
& potentialCollision);
80
83
virtual
const
char
*
type
()
const
;
84
88
static
DtSimComponent
* creator(
const
DtString
& name,
89
DtVrfObject
* owner,
90
DtSimManager
* simManager,
91
DtComponentDescriptor
* desc = 0,
92
DtReaderWriterRegistry
* parentRegistry = 0);
93
94
protected
:
97
DtGroundCollisionAvoidanceController
();
98
100
DtGroundCollisionAvoidanceController
(
const
101
DtGroundCollisionAvoidanceController
& orig);
102
104
const
DtGroundCollisionAvoidanceController
&
operator=
(
const
105
DtGroundCollisionAvoidanceController
& orig);
106
109
virtual
void
clearCollisionStateData();
110
115
virtual
void
clearingCollision();
116
121
bool
isAppreciablyMoving(
DtVector
velocity,
double
velocityTolerance)
const
;
122
132
bool
setDefaultPortValuesForAvoidance(
DtAutoTransmissionGear
currentGear);
133
140
bool
determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
141
const
DtVector
& obstructionVelocity,
142
int
& obstructionDirectionSign)
const
;
143
147
bool
followingObstruction(
const
DtUUID
& entity)
const
;
148
161
void
avoidMovingObstruction(
const
DtCollision
& potentialCollision);
162
173
void
avoidNonMovingObstruction(
const
DtCollision
& potentialCollision);
174
184
void
startClearingCollision(
double
clearingDistance);
185
199
bool
calculateCollisionBV();
200
201
bool
createPortGroups
();
202
bool
createPorts
();
203
204
protected
:
205
207
double
myClearingDistance
;
208
209
bool
myAvoidingCollision
;
210
Dt3dBoundingVolume*
myCollisionBV
;
211
212
bool
myHavePortGroup
;
213
214
DtRwUUID
myFollowEntityName
;
215
216
DtActiveBotNavInterface
*
myNavInterface
;
217
220
226
DtCollisionInputPort
*
myCollisionAvoidancePort
;
227
230
DtInputPortGroup
*
myCollisionAvoidancePortGroup
;
231
237
DtStringInputPort
*
myFollowEntityInputPort
;
238
243
DtBooleanOutputPort
*
myCollisionPort
;
245
247
};
Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (
www.mak.com
)