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;
111 virtual void clearCollisionStateData();
117 virtual void clearingCollision();
121 virtual bool isInsideObstruction(
const DtCollision* potentialCollision,
double& clearingDistance);
129 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
136 bool isAppreciablyMoving(
DtVector velocity,
double velocityTolerance)
const;
146 bool setDefaultPortValuesForAvoidance();
154 bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
155 const DtVector& obstructionVelocity,
156 int& obstructionDirectionSign)
const;
170 void avoidMovingObstruction(
const DtCollision& potentialCollision);
179 void avoidNonMovingObstruction(
const DtCollision& potentialCollision);
183 virtual void calculateAvoidanceByVertices(
const DtVector & vertex1,
const DtVector & vertex2,
double entityBoundingVolumeRadius,
187 virtual void calculateAvoidanceUsingBoundingVolume(
const DtCollision& potentialCollision,
188 double entityBoundingVolumeRadius,
DtVector & localVectorToDestination,
189 DtVector & localVectorToObstruciton);
200 void startClearingCollision(
double clearingDistance);
215 bool calculateMyEntityCollisionBV();
225 virtual bool createPSR();
227 virtual void computeClearingHeading(
const DtVector& localVertex1,
229 double& clearingHeading)
const;
231 virtual void getObstructionFootprint(
const DtCollision& collision,