Recast Navigation
Navigation-mesh Toolset for Games
DetourNavMesh.h File Reference
#include "DetourAlloc.h"
#include "DetourStatus.h"

Go to the source code of this file.

Classes

struct  dtPoly
 Defines a polygon within a dtMeshTile object. More...
 
struct  dtPolyDetail
 Defines the location of detail sub-mesh data within a dtMeshTile. More...
 
struct  dtLink
 Defines a link between polygons. More...
 
struct  dtBVNode
 Bounding volume node. More...
 
struct  dtOffMeshConnection
 Defines an navigation mesh off-mesh connection within a dtMeshTile object. More...
 
struct  dtMeshHeader
 Provides high level information related to a dtMeshTile object. More...
 
struct  dtMeshTile
 Defines a navigation mesh tile. More...
 
struct  dtNavMeshParams
 Configuration parameters used to define multi-tile navigation meshes. More...
 
class  dtNavMesh
 A navigation mesh based on tiles of convex polygons. More...
 

Typedefs

typedef unsigned int dtPolyRef
 A handle to a polygon within a navigation mesh tile. More...
 
typedef unsigned int dtTileRef
 A handle to a tile within a navigation mesh. More...
 

Enumerations

enum  dtTileFlags { DT_TILE_FREE_DATA = 0x01 }
 Tile flags used for various functions and fields. More...
 
enum  dtStraightPathFlags { DT_STRAIGHTPATH_START = 0x01 , DT_STRAIGHTPATH_END = 0x02 , DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04 }
 Vertex flags returned by dtNavMeshQuery::findStraightPath. More...
 
enum  dtStraightPathOptions { DT_STRAIGHTPATH_AREA_CROSSINGS = 0x01 , DT_STRAIGHTPATH_ALL_CROSSINGS = 0x02 }
 Options for dtNavMeshQuery::findStraightPath. More...
 
enum  dtFindPathOptions { DT_FINDPATH_ANY_ANGLE = 0x02 }
 Options for dtNavMeshQuery::initSlicedFindPath and updateSlicedFindPath. More...
 
enum  dtRaycastOptions { DT_RAYCAST_USE_COSTS = 0x01 }
 Options for dtNavMeshQuery::raycast. More...
 
enum  dtDetailTriEdgeFlags { DT_DETAIL_EDGE_BOUNDARY = 0x01 }
 
enum  dtPolyTypes { DT_POLYTYPE_GROUND = 0 , DT_POLYTYPE_OFFMESH_CONNECTION = 1 }
 Flags representing the type of a navigation mesh polygon. More...
 

Functions

int dtGetDetailTriEdgeFlags (unsigned char triFlags, int edgeIndex)
 Get flags for edge in detail triangle. More...
 
dtNavMeshdtAllocNavMesh ()
 Allocates a navigation mesh object using the Detour allocator. More...
 
void dtFreeNavMesh (dtNavMesh *navmesh)
 Frees the specified navigation mesh object using the Detour allocator. More...
 

Variables

static const int DT_VERTS_PER_POLYGON = 6
 The maximum number of vertices per navigation polygon. More...
 
static const unsigned short DT_EXT_LINK = 0x8000
 A flag that indicates that an entity links to an external entity. More...
 
static const unsigned int DT_NULL_LINK = 0xffffffff
 A value that indicates the entity does not link to anything. More...
 
static const unsigned int DT_OFFMESH_CON_BIDIR = 1
 A flag that indicates that an off-mesh connection can be traversed in both directions. (Is bidirectional.) More...
 
static const int DT_MAX_AREAS = 64
 The maximum number of user defined area ids. More...
 
static const float DT_RAY_CAST_LIMIT_PROPORTIONS = 50.0f
 Limit raycasting during any angle pahfinding The limit is given as a multiple of the character radius. More...
 
Tile Serialization Constants

These constants are used to detect whether a navigation tile's data and state format is compatible with the current build.

static const int DT_NAVMESH_MAGIC = 'D'<<24 | 'N'<<16 | 'A'<<8 | 'V'
 A magic number used to detect compatibility of navigation tile data. More...
 
static const int DT_NAVMESH_VERSION = 7
 A version number used to detect compatibility of navigation tile data. More...
 
static const int DT_NAVMESH_STATE_MAGIC = 'D'<<24 | 'N'<<16 | 'M'<<8 | 'S'
 A magic number used to detect the compatibility of navigation tile states. More...
 
static const int DT_NAVMESH_STATE_VERSION = 1
 A version number used to detect compatibility of navigation tile states. More...
 

Enumeration Type Documentation

◆ dtDetailTriEdgeFlags

Enumerator
DT_DETAIL_EDGE_BOUNDARY 

Detail triangle edge is part of the poly boundary.

◆ dtFindPathOptions

Options for dtNavMeshQuery::initSlicedFindPath and updateSlicedFindPath.

Enumerator
DT_FINDPATH_ANY_ANGLE 

use raycasts during pathfind to "shortcut" (raycast still consider costs)

◆ dtPolyTypes

Flags representing the type of a navigation mesh polygon.

Enumerator
DT_POLYTYPE_GROUND 

The polygon is a standard convex polygon that is part of the surface of the mesh.

DT_POLYTYPE_OFFMESH_CONNECTION 

The polygon is an off-mesh connection consisting of two vertices.

◆ dtRaycastOptions

Options for dtNavMeshQuery::raycast.

Enumerator
DT_RAYCAST_USE_COSTS 

Raycast should calculate movement cost along the ray and fill RaycastHit::cost.

◆ dtStraightPathFlags

Vertex flags returned by dtNavMeshQuery::findStraightPath.

Enumerator
DT_STRAIGHTPATH_START 

The vertex is the start position in the path.

DT_STRAIGHTPATH_END 

The vertex is the end position in the path.

DT_STRAIGHTPATH_OFFMESH_CONNECTION 

The vertex is the start of an off-mesh connection.

◆ dtStraightPathOptions

Options for dtNavMeshQuery::findStraightPath.

Enumerator
DT_STRAIGHTPATH_AREA_CROSSINGS 

Add a vertex at every polygon edge crossing where area changes.

DT_STRAIGHTPATH_ALL_CROSSINGS 

Add a vertex at every polygon edge crossing.

◆ dtTileFlags

Tile flags used for various functions and fields.

For an example, see dtNavMesh::addTile().

Enumerator
DT_TILE_FREE_DATA 

The navigation mesh owns the tile memory and is responsible for freeing it.

Function Documentation

◆ dtGetDetailTriEdgeFlags()

int dtGetDetailTriEdgeFlags ( unsigned char  triFlags,
int  edgeIndex 
)
inline

Get flags for edge in detail triangle.

Parameters
[in]triFlagsThe flags for the triangle (last component of detail vertices above).
[in]edgeIndexThe index of the first vertex of the edge. For instance, if 0, returns flags for edge AB.

Variable Documentation

◆ DT_EXT_LINK

const unsigned short DT_EXT_LINK = 0x8000
static

A flag that indicates that an entity links to an external entity.

(E.g. A polygon edge is a portal that links to another polygon.)

◆ DT_NAVMESH_MAGIC

const int DT_NAVMESH_MAGIC = 'D'<<24 | 'N'<<16 | 'A'<<8 | 'V'
static

A magic number used to detect compatibility of navigation tile data.

◆ DT_NAVMESH_STATE_MAGIC

const int DT_NAVMESH_STATE_MAGIC = 'D'<<24 | 'N'<<16 | 'M'<<8 | 'S'
static

A magic number used to detect the compatibility of navigation tile states.

◆ DT_NAVMESH_STATE_VERSION

const int DT_NAVMESH_STATE_VERSION = 1
static

A version number used to detect compatibility of navigation tile states.

◆ DT_NAVMESH_VERSION

const int DT_NAVMESH_VERSION = 7
static

A version number used to detect compatibility of navigation tile data.

◆ DT_NULL_LINK

const unsigned int DT_NULL_LINK = 0xffffffff
static

A value that indicates the entity does not link to anything.

◆ DT_OFFMESH_CON_BIDIR

const unsigned int DT_OFFMESH_CON_BIDIR = 1
static

A flag that indicates that an off-mesh connection can be traversed in both directions. (Is bidirectional.)

◆ DT_RAY_CAST_LIMIT_PROPORTIONS

const float DT_RAY_CAST_LIMIT_PROPORTIONS = 50.0f
static

Limit raycasting during any angle pahfinding The limit is given as a multiple of the character radius.