14 #include "matrix/vlVector.h"
34 NavigationMethodShortcut = 0,
35 NavigationMethodSpline = 1
41 : myNavigationMethod(NavigationMethodShortcut)
42 , myUseAbstractGraph(true)
43 , myMinAbstractGraphReplanDistance(100.)
44 , myPropagationBoxExtent(200.)
68 : myEnableAvoidance(true)
70 , myEnableSlowDown(true)
71 , myEnablePushThrough(false)
72 , myEnableNavigation(true)
73 , myCollisionLookaheadTime(15.)
74 , myCollisionDetectionRadius(15.)
75 , myAngleEvalSpan(120)
76 , myNumAngleSamples(30)
77 , mySafetyDistance((float)0.1)
78 , myCollisionAvoidanceInfluence((float)0.8)
97 static void setNavBotCreatorFcn(DtNavBotCreatorFcn fcn);
102 NavigationConfiguration navConfig = NavigationConfiguration(),
103 CollisionAvoidanceConfiguration collAvoidConfig = CollisionAvoidanceConfiguration()) = 0;
105 virtual void setPosition(
const DtVector& localPos) = 0;
106 virtual void setPositionInvalid() = 0;
108 virtual void botUpdate(
const DtVector& localPos,
double dT) = 0;
110 virtual void setDestination(
const DtVector& localPos,
bool forceOutsideArea =
false) = 0;
111 virtual void setDesiredSpeed(
double speed) = 0;
112 virtual void clearFollowedPath() = 0;
113 virtual void clearDestination() = 0;
115 virtual void resetDestination() = 0;
117 virtual void moveAlongPath(
const std::vector<DtVector>&) = 0;
119 virtual DtVector getOutputVelocity() = 0;
121 typedef bool (*DtNavBotPathLocationEvalFcn)(
const DtNavTag& navTag,
float slope,
float elevationChange,
float* costMultiplier,
void* userData);
123 virtual void setPathEvalFcn(DtNavBotPathLocationEvalFcn fcn,
void* user) = 0;
138 virtual PathStatus pathStatus(
double atDistance) = 0;
140 virtual DtString pathStatusString() = 0;
142 virtual bool hasArrived(
double arrivalDistance) = 0;
144 virtual bool currentPath(std::vector<DtVector>& path) = 0;
145 virtual bool abstractPath(std::vector<DtVector>& path) = 0;
149 virtual unsigned currentAbstractPathIndex() = 0;
155 virtual DtNavTag upcomingNavTagOnPath()
const = 0;
162 virtual void setCollisionAvoidanceEnabled(
bool enable) = 0;
164 virtual void setNavigationMethod(NavigationMethod navMethod) = 0;
165 virtual NavigationMethod navigationMethod()
const = 0;
169 virtual DtVector performMovement(
double dt) = 0;
float myCollisionAvoidanceInfluence
Definition: navBot.h:91
Has a valid path to move along.
Definition: navBot.h:130
bool myEnablePushThrough
Definition: navBot.h:84
static DtNavBotCreatorFcn theNavBotCreatorFcn
Definition: navBot.h:176
float mySafetyDistance
Definition: navBot.h:90
bool myEnableAvoidance
Definition: navBot.h:81
Has arrived at destination.
Definition: navBot.h:131
Not actively trying to move.
Definition: navBot.h:128
double myMinAbstractGraphReplanDistance
Only relevant if using abstract graphs.
Definition: navBot.h:54
Wrapper for GameWare NavTag.
Definition: navDataTag.h:54
bool myEnableSlowDown
Definition: navBot.h:83
NavigationConfiguration()
Definition: navBot.h:40
std::vector< DtNavTagAndLocation > DtNavTagAndLocationList
Definition: navBot.h:26
float myCollisionLookaheadTime
Definition: navBot.h:86
bool myEnableNavigation
Definition: navBot.h:85
double myRadiusFactor
Factor multiplied by the bounding volume radius to generate the nav bot's radius. ...
Definition: navBot.h:61
Failed to calculate a path.
Definition: navBot.h:132
float myAngleEvalSpan
Definition: navBot.h:88
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
int myNumAngleSamples
Definition: navBot.h:89
Contains all the data and logic for navigation within a specific area.
Definition: navArea.h:181
DtVector location
Definition: navBot.h:21
Currently computing a path.
Definition: navBot.h:129
Failed to calculate a path, destination is outside nav.
Definition: navBot.h:135
float myCollisionDetectionRadius
Definition: navBot.h:87
DtNavTag navTag
Definition: navBot.h:20
unsigned int DtNavigationPriorityType
Definition: navBot.h:27
CollisionAvoidanceConfiguration()
Sets defaults.
Definition: navBot.h:67
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
double myPropagationBoxExtent
Determines the size of the box used for path planning.
Definition: navBot.h:58
#define DT_DLL_vrfNavigation
This file is used to determine how to build.
Definition: vrfNavigationDefines.h:26
virtual ~DtNavBot()
Definition: navBot.h:99
PathStatus
Definition: navBot.h:125
bool myEnableStop
Definition: navBot.h:82
Calculating a transition point.
Definition: navBot.h:134
DtNavTagAndLocation()
Definition: navBot.h:24
DtNavTagAndLocation(const DtNavTag &t, const DtVector &l)
Definition: navBot.h:23
NavigationMethod myNavigationMethod
Definition: navBot.h:48
bool myUseAbstractGraph
Indicates whether the abstract graph should be used for planning.
Definition: navBot.h:51
NavigationMethod
Definition: navBot.h:32
Arrived at edge of area.
Definition: navBot.h:133