15 #include <vl/hostStructs.h>
21 class Dt3dBoundingVolume;
23 class DtInputControlPortGroup;
73 virtual double distanceSquaredToDestination(
DtVector offsetVector);
80 virtual void avoidCollision(
const DtCollision& potentialCollision);
110 virtual void clearCollisionStateData();
116 virtual void clearingCollision();
120 virtual bool isInsideObstruction(
const DtCollision* potentialCollision,
double& clearingDistance);
128 static void taskCompleteReportCallback(
DtSimMessage * msg,
void * usr);
135 bool isAppreciablyMoving(
DtVector velocity,
double velocityTolerance)
const;
145 bool setDefaultPortValuesForAvoidance();
153 bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
154 const DtVector& obstructionVelocity,
155 int& obstructionDirectionSign)
const;
169 void avoidMovingObstruction(
const DtCollision& potentialCollision);
178 void avoidNonMovingObstruction(
const DtCollision& potentialCollision);
182 virtual void calculateAvoidanceByVertices(
const DtVector & vertex1,
const DtVector & vertex2,
double entityBoundingVolumeRadius,
186 virtual void calculateAvoidanceUsingBoundingVolume(
const DtCollision& potentialCollision,
187 double entityBoundingVolumeRadius,
DtVector & localVectorToDestination,
188 DtVector & localVectorToObstruciton);
199 void startClearingCollision(
double clearingDistance);
214 bool calculateMyEntityCollisionBV();
224 virtual bool createPSR();
226 virtual void computeClearingHeading(
const DtVector& localVertex1,
228 double& clearingHeading)
const;
230 virtual void getObstructionFootprint(
const DtCollision& collision,