12 #include <vl/hostStructs.h>
18 class Dt3dBoundingVolume;
20 class DtInputControlPortGroup;
72 virtual double distanceSquaredToDestination(
DtVector offsetVector);
79 virtual void avoidCollision(
const DtCollision& potentialCollision);
83 virtual const char*
type()
const;
108 virtual bool shouldRun();
112 virtual void clearCollisionStateData();
118 virtual void clearingCollision();
122 virtual bool isInsideObstruction(
const DtCollision* potentialCollision,
double& clearingDistance);
130 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
137 bool isAppreciablyMoving(
DtVector velocity,
double velocityTolerance)
const;
147 bool setDefaultPortValuesForAvoidance();
155 bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
156 const DtVector& obstructionVelocity,
157 int& obstructionDirectionSign)
const;
171 void avoidMovingObstruction(
const DtCollision& potentialCollision);
180 void avoidNonMovingObstruction(
const DtCollision& potentialCollision);
184 virtual void calculateAvoidanceByVertices(
const DtVector & vertex1,
const DtVector & vertex2,
double entityBoundingVolumeRadius,
188 virtual void calculateAvoidanceUsingBoundingVolume(
const DtCollision& potentialCollision,
189 double entityBoundingVolumeRadius,
DtVector & localVectorToDestination,
190 DtVector & localVectorToObstruciton);
201 void startClearingCollision(
double clearingDistance);
216 bool calculateMyEntityCollisionBV();
226 virtual bool createPSR();
228 virtual void computeClearingHeading(
const DtVector& localVertex1,
230 double& clearingHeading)
const;
232 virtual void getObstructionFootprint(
const DtCollision& collision,
bool myAvoidingCollision
Definition: humanCollisionAvoidanceController.h:240
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
double myLateralClearance
The width (in meters) added to the length of the bounding volume which is checked for potential colli...
Definition: humanCollisionAvoidanceController.h:308
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Description: This repository holds all information that is common to all the forms of humans within t...
Definition: humanStateRepository.h:32
This is the DtVrfObjectNavInterface subclass for objects which are actively querying the navigation s...
Definition: activeBotNavInterface.h:26
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
DtInputPortGroup * myCollisionAvoidancePortGroup
Input Port Group Name: collision-avoidance-control Input Port Group Description:
Definition: humanCollisionAvoidanceController.h:278
virtual void registerTaskMsgCallbacks()
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
DtCollisionInputPort * myCollisionAvoidancePort
Input Port Name: potential-collision-info Input Port Description: Input Port Range: Input Port Defa...
Definition: humanCollisionAvoidanceController.h:259
DtHumanMovementControlOutputPortGroup * myHumanMovementControlOutputPortGroup
Output Group Name: movement-control .
Definition: humanCollisionAvoidanceController.h:281
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
DtBooleanOutputPort * myIsMovingPort
Output Port Name: is-moving Output Port Description: Indicates the entity is being actively moved by ...
Definition: humanCollisionAvoidanceController.h:294
double myTimeToCollide
The minimum time before a collision (in seconds) which the collision avoidance controller compares to...
Definition: humanCollisionAvoidanceController.h:302
Definition: readerWriterRegistry.h:39
virtual const char * type() const =0
Returns a string identifies the class type of component.
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
virtual bool init()
Calls setRadio()
Dt3dBoundingVolume * myCollisionBV
Definition: humanCollisionAvoidanceController.h:241
bool myHavePortGroup
Definition: humanCollisionAvoidanceController.h:243
File: simMsg.h.
Definition: simMessage.h:35
double myStoppingDistanceFactor
The factor by which the collision avoidance controller multiplies the current stopping distance to de...
Definition: humanCollisionAvoidanceController.h:314
double myClearingDistance
This is only used when clearing.
Definition: humanCollisionAvoidanceController.h:238
DtHumanCollisionAvoidancePSR * myProcessState
Container for state data associated with this component.
Definition: humanCollisionAvoidanceController.h:249
virtual void tick()
This gives the thread of control to the component.
class DtHumanCollisionAvoidancePSR:
Definition: humanCollisionAvoidancePSR.h:30
DtBooleanInputPort * myUseCollisionAvoidanceInputPort
Output Port Name: use-collision-avoidance Output Port Description: Indicates whether or not this cont...
Definition: humanCollisionAvoidanceController.h:274
virtual bool createPorts()
Called by init.
Definition: collision.h:24
virtual bool createPortGroups()
Called by init.
DtVectorInputPort * myDestinationInputPort
Input Port Name: destination Input Port Description: Specifies the current destination of the entity ...
Definition: humanCollisionAvoidanceController.h:267
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtHumanStateRepository * myLifeformState
Definition: humanCollisionAvoidanceController.h:245
An output port group that contains the ports necessary to control the movement of a human using the D...
Definition: humanMovementControlOutputPortGroup.h:22
class DtLocalVertexList:
Definition: localVertexList.h:20
DtVector myNonMvObstructionLocation
Definition: humanCollisionAvoidanceController.h:316
DtBooleanOutputPort * myCollisionPort
Output Port Name: collision Output Port Description: Specifies if there's a collision occurring Outpu...
Definition: humanCollisionAvoidanceController.h:287
DtHumanCollisionAvoidanceController is a controller that helps entities to avoid running into other e...
Definition: humanCollisionAvoidanceController.h:35