14 #include "matrix/vlVector.h"
21 NavigationMethodShortcut = 0,
22 NavigationMethodSpline = 1
28 : myNavigationMethod(NavigationMethodShortcut)
29 , myUseAbstractGraph(true)
30 , myMinAbstractGraphReplanDistance(100.)
46 : myEnableAvoidance(true)
48 , myEnableSlowDown(true)
49 , myEnablePushThrough(false)
50 , myCollisionLookaheadTime(15.)
51 , myAngleEvalSpan(120)
52 , myNumAngleSamples(30)
53 , mySafetyDistance((float)0.1)
69 static void setNavBotCreatorFcn(DtNavBotCreatorFcn fcn);
74 NavigationConfiguration navConfig = NavigationConfiguration(),
75 CollisionAvoidanceConfiguration collAvoidConfig = CollisionAvoidanceConfiguration()) = 0;
77 virtual void setPosition(
const DtVector& localPos) = 0;
78 virtual void botUpdate(
const DtVector& localPos,
double dT) = 0;
80 virtual void setDestination(
const DtVector& localPos,
bool forceOutsideArea =
false) = 0;
81 virtual void setDesiredSpeed(
double speed) = 0;
82 virtual void clearFollowedPath() = 0;
83 virtual void clearDestination() = 0;
85 virtual void moveAlongPath(
const std::vector<DtVector>&) = 0;
87 virtual DtVector getOutputVelocity() = 0;
89 typedef bool (*DtNavBotPathLocationEvalFcn)(
const DtNavTag& navTag,
float* costMultiplier,
void* userData);
91 virtual void setPathEvalFcn(DtNavBotPathLocationEvalFcn fcn,
void* user) = 0;
101 PathStatusFindingTransitionPoint
104 virtual PathStatus pathStatus(
double atDistance) = 0;
106 virtual DtString pathStatusString() = 0;
108 virtual bool hasArrived(
double arrivalDistance) = 0;
110 virtual bool currentPath(std::vector<DtVector>& path) = 0;
111 virtual bool abstractPath(std::vector<DtVector>& path) = 0;
113 virtual unsigned currentAbstractPathIndex() = 0;