Recast Navigation
Navigation-mesh Toolset for Games
Recast.cpp File Reference
#include "Recast.h"
#include "RecastAlloc.h"
#include "RecastAssert.h"
#include <math.h>
#include <string.h>
#include <stdio.h>
#include <stdarg.h>

Functions

float rcSqrt (float x)
 Returns the square root of the value. More...
 
rcHeightfieldrcAllocHeightfield ()
 Allocates a heightfield object using the Recast allocator. More...
 
void rcFreeHeightField (rcHeightfield *heightfield)
 Frees the specified heightfield object using the Recast allocator. More...
 
rcCompactHeightfieldrcAllocCompactHeightfield ()
 Allocates a compact heightfield object using the Recast allocator. More...
 
void rcFreeCompactHeightfield (rcCompactHeightfield *compactHeightfield)
 Frees the specified compact heightfield object using the Recast allocator. More...
 
rcHeightfieldLayerSetrcAllocHeightfieldLayerSet ()
 Allocates a heightfield layer set using the Recast allocator. More...
 
void rcFreeHeightfieldLayerSet (rcHeightfieldLayerSet *layerSet)
 Frees the specified heightfield layer set using the Recast allocator. More...
 
rcContourSetrcAllocContourSet ()
 Allocates a contour set object using the Recast allocator. More...
 
void rcFreeContourSet (rcContourSet *contourSet)
 Frees the specified contour set using the Recast allocator. More...
 
rcPolyMeshrcAllocPolyMesh ()
 Allocates a polygon mesh object using the Recast allocator. More...
 
void rcFreePolyMesh (rcPolyMesh *polyMesh)
 Frees the specified polygon mesh using the Recast allocator. More...
 
rcPolyMeshDetailrcAllocPolyMeshDetail ()
 Allocates a detail mesh object using the Recast allocator. More...
 
void rcFreePolyMeshDetail (rcPolyMeshDetail *detailMesh)
 Frees the specified detail mesh using the Recast allocator. More...
 
void rcCalcBounds (const float *verts, int numVerts, float *minBounds, float *maxBounds)
 Calculates the bounding box of an array of vertices. More...
 
void rcCalcGridSize (const float *minBounds, const float *maxBounds, const float cellSize, int *sizeX, int *sizeZ)
 Calculates the grid size based on the bounding box and grid cell size. More...
 
bool rcCreateHeightfield (rcContext *context, rcHeightfield &heightfield, int sizeX, int sizeZ, const float *minBounds, const float *maxBounds, float cellSize, float cellHeight)
 Initializes a new heightfield. More...
 
static void calcTriNormal (const float *v0, const float *v1, const float *v2, float *faceNormal)
 
void rcMarkWalkableTriangles (rcContext *context, const float walkableSlopeAngle, const float *verts, const int numVerts, const int *tris, const int numTris, unsigned char *triAreaIDs)
 Sets the area id of all triangles with a slope below the specified value to RC_WALKABLE_AREA. More...
 
void rcClearUnwalkableTriangles (rcContext *context, const float walkableSlopeAngle, const float *verts, int numVerts, const int *tris, int numTris, unsigned char *triAreaIDs)
 Sets the area id of all triangles with a slope greater than or equal to the specified value to RC_NULL_AREA. More...
 
int rcGetHeightFieldSpanCount (rcContext *context, const rcHeightfield &heightfield)
 Returns the number of spans contained in the specified heightfield. More...
 
bool rcBuildCompactHeightfield (rcContext *context, const int walkableHeight, const int walkableClimb, const rcHeightfield &heightfield, rcCompactHeightfield &compactHeightfield)
 Builds a compact heightfield representing open space, from a heightfield representing solid space. More...
 

Function Documentation

◆ calcTriNormal()

static void calcTriNormal ( const float *  v0,
const float *  v1,
const float *  v2,
float *  faceNormal 
)
static

◆ rcSqrt()

float rcSqrt ( float  x)

Returns the square root of the value.

Parameters
[in]xThe value.
Returns
The square root of the vlaue.