15 #include <vl/hostStructs.h>
21 class Dt3dBoundingVolume;
23 class DtInputControlPortGroup;
74 virtual double distanceSquaredToDestination(
DtVector offsetVector);
81 virtual void avoidCollision(
const DtCollision& potentialCollision);
85 virtual const char*
type()
const;
110 virtual bool shouldRun();
114 virtual void clearCollisionStateData();
120 virtual void clearingCollision();
124 virtual bool isInsideObstruction(
const DtCollision* potentialCollision,
double& clearingDistance);
132 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
139 bool isAppreciablyMoving(
DtVector velocity,
double velocityTolerance)
const;
149 bool setDefaultPortValuesForAvoidance();
157 bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
158 const DtVector& obstructionVelocity,
159 int& obstructionDirectionSign)
const;
173 void avoidMovingObstruction(
const DtCollision& potentialCollision);
182 void avoidNonMovingObstruction(
const DtCollision& potentialCollision);
186 virtual void calculateAvoidanceByVertices(
const DtVector & vertex1,
const DtVector & vertex2,
double entityBoundingVolumeRadius,
190 virtual void calculateAvoidanceUsingBoundingVolume(
const DtCollision& potentialCollision,
191 double entityBoundingVolumeRadius,
DtVector & localVectorToDestination,
192 DtVector & localVectorToObstruciton);
203 void startClearingCollision(
double clearingDistance);
218 bool calculateMyEntityCollisionBV();
228 virtual bool createPSR();
230 virtual void computeClearingHeading(
const DtVector& localVertex1,
232 double& clearingHeading)
const;
234 virtual void getObstructionFootprint(
const DtCollision& collision,