14 #include "matrix/vlVector.h"
31 NavigationMethodShortcut = 0,
32 NavigationMethodSpline = 1
38 : myNavigationMethod(NavigationMethodShortcut)
39 , myUseAbstractGraph(true)
40 , myMinAbstractGraphReplanDistance(100.)
41 , myPropagationBoxExtent(200.)
61 : myEnableAvoidance(true)
63 , myEnableSlowDown(true)
64 , myEnablePushThrough(false)
65 , myEnableNavigation(true)
66 , myCollisionLookaheadTime(15.)
67 , myCollisionDetectionRadius(15.)
68 , myAngleEvalSpan(120)
69 , myNumAngleSamples(30)
70 , mySafetyDistance((float)0.1)
71 , myCollisionAvoidanceInfluence((float)0.8)
90 static void setNavBotCreatorFcn(DtNavBotCreatorFcn fcn);
95 NavigationConfiguration navConfig = NavigationConfiguration(),
96 CollisionAvoidanceConfiguration collAvoidConfig = CollisionAvoidanceConfiguration()) = 0;
98 virtual void setPosition(
const DtVector& localPos) = 0;
99 virtual void botUpdate(
const DtVector& localPos,
double dT) = 0;
101 virtual void setDestination(
const DtVector& localPos,
bool forceOutsideArea =
false) = 0;
102 virtual void setDesiredSpeed(
double speed) = 0;
103 virtual void clearFollowedPath() = 0;
104 virtual void clearDestination() = 0;
106 virtual void moveAlongPath(
const std::vector<DtVector>&) = 0;
108 virtual DtVector getOutputVelocity() = 0;
110 typedef bool (*DtNavBotPathLocationEvalFcn)(
const DtNavTag& navTag,
float* costMultiplier,
void* userData);
112 virtual void setPathEvalFcn(DtNavBotPathLocationEvalFcn fcn,
void* user) = 0;
122 PathStatusFindingTransitionPoint
125 virtual PathStatus pathStatus(
double atDistance) = 0;
127 virtual DtString pathStatusString() = 0;
129 virtual bool hasArrived(
double arrivalDistance) = 0;
131 virtual bool currentPath(std::vector<DtVector>& path) = 0;
132 virtual bool abstractPath(std::vector<DtVector>& path) = 0;
134 virtual unsigned currentAbstractPathIndex() = 0;
140 virtual DtNavTag upcomingNavTagOnPath()
const = 0;