VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Protected Attributes
DtNavBot Class Referenceabstract

Classes

struct  CollisionAvoidanceConfiguration
 
struct  NavigationConfiguration
 

Public Types

enum  NavigationMethod { NavigationMethodShortcut = 0, NavigationMethodSpline = 1 }
 
enum  PathStatus {
  PathStatusInactive, PathStatusComputing, PathStatusHasPath, PathStatusArrived,
  PathStatusNoValidPath, PathStatusLeavingArea, PathStatusFindingTransitionPoint, PathStatusNoValidPathDestOutside,
  PathStatusNoValidPathStartOutside
}
 
typedef DtNavBot *(* DtNavBotCreatorFcn )()
 
typedef bool(* DtNavBotPathLocationEvalFcn )(const DtNavTag &navTag, float slope, float elevationChange, float *costMultiplier, void *userData)
 

Public Member Functions

virtual ~DtNavBot ()
 
virtual void init (DtNavArea *world, const DtString &profile, double radius, double height, DtNavigationPriorityType queryQueuePriority, NavigationConfiguration navConfig=NavigationConfiguration(), CollisionAvoidanceConfiguration collAvoidConfig=CollisionAvoidanceConfiguration())=0
 
virtual void setPosition (const DtVector &localPos)=0
 
virtual void setPositionInvalid ()=0
 
virtual void setQueryQueuePriority (const DtNavigationPriorityType &queryQueuePriority)=0
 
virtual void botUpdate (const DtVector &localPos, double dT)=0
 
virtual void setDestination (const DtVector &localPos, bool forceOutsideArea=false)=0
 
virtual void setDesiredSpeed (double speed)=0
 
virtual void clearFollowedPath ()=0
 
virtual void clearDestination ()=0
 
virtual DtVector currentDestination () const =0
 
virtual void resetDestination ()=0
 
virtual int getTriangleIndex () const =0
 
virtual void getTriangleVertices (DtVector &corner1, DtVector &corner2, DtVector &corner3) const =0
 
virtual DtVector getPointOnTriangle (const DtVector &localLocation) const =0
 
virtual DtVector getOutputVelocity ()=0
 
virtual void setPathEvalFcn (DtNavBotPathLocationEvalFcn fcn, void *user)=0
 
virtual PathStatus pathStatus (double atDistance)=0
 
virtual DtString pathStatusString ()=0
 
virtual bool hasArrived (double arrivalDistance)=0
 
virtual bool currentPath (std::vector< DtVector > &path)=0
 
virtual bool abstractPath (std::vector< DtVector > &path)=0
 
virtual bool currentPathEdge (DtVector &edgeStart, DtVector &edgeEnd)=0
 
virtual void getNavPathAsRw (DtRwBinaryData &)=0
 
virtual bool setPath (DtRwBinaryData &)=0
 
virtual unsigned currentAbstractPathIndex ()=0
 
virtual void setUseAbstractGraph (bool yesNo)=0
 
virtual void resetUseAbstractGraph ()=0
 
virtual bool usingAbstractGraph () const =0
 
virtual DtNavTag navTagAtPosition (const DtVector &localPos) const =0
 
virtual DtNavTag upcomingNavTagOnPath () const =0
 
virtual void upcomingNavTagsOnPath (double distance, DtNavTagAndLocationList &navTags) const =0
 
virtual void setCollisionAvoidanceEnabled (bool enable)=0
 
virtual void setNavigationMethod (NavigationMethod navMethod)=0
 
virtual NavigationMethod navigationMethod () const =0
 
virtual DtVector performMovement (double dt)=0
 
virtual DtVector groundClamp (const DtVector &localPos, DtVector &normal)=0
 

Static Public Member Functions

static DtNavBotcreate ()
 
static void setNavBotCreatorFcn (DtNavBotCreatorFcn fcn)
 

Static Protected Attributes

static DtNavBotCreatorFcn theNavBotCreatorFcn
 

Member Typedef Documentation

typedef DtNavBot*(* DtNavBot::DtNavBotCreatorFcn)()
typedef bool(* DtNavBot::DtNavBotPathLocationEvalFcn)(const DtNavTag &navTag, float slope, float elevationChange, float *costMultiplier, void *userData)

Member Enumeration Documentation

Enumerator
NavigationMethodShortcut 
NavigationMethodSpline 
Enumerator
PathStatusInactive 
PathStatusComputing 

Not actively trying to move.

PathStatusHasPath 

Currently computing a path.

PathStatusArrived 

Has a valid path to move along.

PathStatusNoValidPath 

Has arrived at destination.

PathStatusLeavingArea 

Failed to calculate a path.

PathStatusFindingTransitionPoint 

Arrived at edge of area.

PathStatusNoValidPathDestOutside 

Calculating a transition point.

PathStatusNoValidPathStartOutside 

Failed to calculate a path, destination is outside nav.

Constructor & Destructor Documentation

virtual DtNavBot::~DtNavBot ( )
inlinevirtual

Member Function Documentation

static DtNavBot* DtNavBot::create ( )
static
static void DtNavBot::setNavBotCreatorFcn ( DtNavBotCreatorFcn  fcn)
static
virtual void DtNavBot::init ( DtNavArea world,
const DtString profile,
double  radius,
double  height,
DtNavigationPriorityType  queryQueuePriority,
NavigationConfiguration  navConfig = NavigationConfiguration(),
CollisionAvoidanceConfiguration  collAvoidConfig = CollisionAvoidanceConfiguration() 
)
pure virtual
virtual void DtNavBot::setPosition ( const DtVector localPos)
pure virtual
virtual void DtNavBot::setPositionInvalid ( )
pure virtual
virtual void DtNavBot::setQueryQueuePriority ( const DtNavigationPriorityType queryQueuePriority)
pure virtual
virtual void DtNavBot::botUpdate ( const DtVector localPos,
double  dT 
)
pure virtual
virtual void DtNavBot::setDestination ( const DtVector localPos,
bool  forceOutsideArea = false 
)
pure virtual
virtual void DtNavBot::setDesiredSpeed ( double  speed)
pure virtual
virtual void DtNavBot::clearFollowedPath ( )
pure virtual
virtual void DtNavBot::clearDestination ( )
pure virtual
virtual DtVector DtNavBot::currentDestination ( ) const
pure virtual
virtual void DtNavBot::resetDestination ( )
pure virtual
virtual int DtNavBot::getTriangleIndex ( ) const
pure virtual
virtual void DtNavBot::getTriangleVertices ( DtVector corner1,
DtVector corner2,
DtVector corner3 
) const
pure virtual
virtual DtVector DtNavBot::getPointOnTriangle ( const DtVector localLocation) const
pure virtual
virtual DtVector DtNavBot::getOutputVelocity ( )
pure virtual
virtual void DtNavBot::setPathEvalFcn ( DtNavBotPathLocationEvalFcn  fcn,
void *  user 
)
pure virtual
virtual PathStatus DtNavBot::pathStatus ( double  atDistance)
pure virtual
virtual DtString DtNavBot::pathStatusString ( )
pure virtual
Returns
A text status of the current path query, if available. Useful for debugging.
virtual bool DtNavBot::hasArrived ( double  arrivalDistance)
pure virtual
virtual bool DtNavBot::currentPath ( std::vector< DtVector > &  path)
pure virtual
virtual bool DtNavBot::abstractPath ( std::vector< DtVector > &  path)
pure virtual
virtual bool DtNavBot::currentPathEdge ( DtVector edgeStart,
DtVector edgeEnd 
)
pure virtual
virtual void DtNavBot::getNavPathAsRw ( DtRwBinaryData )
pure virtual
virtual bool DtNavBot::setPath ( DtRwBinaryData )
pure virtual

returns false if the path wasn't initialized/set successfully

virtual unsigned DtNavBot::currentAbstractPathIndex ( )
pure virtual
virtual void DtNavBot::setUseAbstractGraph ( bool  yesNo)
pure virtual

Can be used to enable or disable abstract graph usage. Takes effect the next time the destination is set.

virtual void DtNavBot::resetUseAbstractGraph ( )
pure virtual

Resets abstract graph usage to configured settings, undoing any settings from setUseAbstractGraph.

virtual bool DtNavBot::usingAbstractGraph ( ) const
pure virtual

Return true if currently using the abstract graph for path planning.

virtual DtNavTag DtNavBot::navTagAtPosition ( const DtVector localPos) const
pure virtual

Gets the nav tag of the position, if valid.

virtual DtNavTag DtNavBot::upcomingNavTagOnPath ( ) const
pure virtual

Gets the upcoming nav tag in the path.

virtual void DtNavBot::upcomingNavTagsOnPath ( double  distance,
DtNavTagAndLocationList navTags 
) const
pure virtual

Gets all nav tags within the specified distance from the current location on the path.

virtual void DtNavBot::setCollisionAvoidanceEnabled ( bool  enable)
pure virtual

Enables or disables collision avoidance. Cannot enable collision avoidance if the bot is configured to have it disabled. Only has an effect if collision avoidance is configured.

virtual void DtNavBot::setNavigationMethod ( NavigationMethod  navMethod)
pure virtual
virtual NavigationMethod DtNavBot::navigationMethod ( ) const
pure virtual
virtual DtVector DtNavBot::performMovement ( double  dt)
pure virtual

Allows the nav bot to perform movement for the entity. Returns the new entity location after processing movement for the next dt seconds.

virtual DtVector DtNavBot::groundClamp ( const DtVector localPos,
DtVector normal 
)
pure virtual

Finds a ground clamped position on the nav data near the specified local position. Also outputs the normal of the clamped position.

Member Data Documentation

DtNavBotCreatorFcn DtNavBot::theNavBotCreatorFcn
staticprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)