Recast Navigation  1.0.35
RecastMesh.cpp File Reference
#include <math.h>
#include <string.h>
#include <stdio.h>
#include "Recast.h"
#include "RecastAlloc.h"
#include "RecastAssert.h"

Classes

struct  rcEdge
 

Macros

#define _USE_MATH_DEFINES
 

Functions

static bool buildMeshAdjacency (unsigned short *polys, const int npolys, const int nverts, const int vertsPerPoly)
 
int computeVertexHash (int x, int y, int z)
 
static unsigned short addVertex (unsigned short x, unsigned short y, unsigned short z, unsigned short *verts, int *firstVert, int *nextVert, int &nv)
 
int prev (int i, int n)
 
int next (int i, int n)
 
int area2 (const int *a, const int *b, const int *c)
 
bool xorb (bool x, bool y)
 
bool left (const int *a, const int *b, const int *c)
 
bool leftOn (const int *a, const int *b, const int *c)
 
bool collinear (const int *a, const int *b, const int *c)
 
static bool intersectProp (const int *a, const int *b, const int *c, const int *d)
 
static bool between (const int *a, const int *b, const int *c)
 
static bool intersect (const int *a, const int *b, const int *c, const int *d)
 
static bool vequal (const int *a, const int *b)
 
static bool diagonalie (int i, int j, int n, const int *verts, int *indices)
 
static bool inCone (int i, int j, int n, const int *verts, int *indices)
 
static bool diagonal (int i, int j, int n, const int *verts, int *indices)
 
static bool diagonalieLoose (int i, int j, int n, const int *verts, int *indices)
 
static bool inConeLoose (int i, int j, int n, const int *verts, int *indices)
 
static bool diagonalLoose (int i, int j, int n, const int *verts, int *indices)
 
static int triangulate (int n, const int *verts, int *indices, int *tris)
 
static int countPolyVerts (const unsigned short *p, const int nvp)
 
bool uleft (const unsigned short *a, const unsigned short *b, const unsigned short *c)
 
static int getPolyMergeValue (unsigned short *pa, unsigned short *pb, const unsigned short *verts, int &ea, int &eb, const int nvp)
 
static void mergePolys (unsigned short *pa, unsigned short *pb, int ea, int eb, unsigned short *tmp, const int nvp)
 
template<typename T >
static void pushFront (T v, T *arr, T &an)
 
template<typename T >
static void pushBack (T v, T *arr, T &an)
 
static bool canRemoveVertex (rcContext *ctx, rcPolyMesh &mesh, const unsigned short rem)
 
static bool removeVertex (rcContext *ctx, rcPolyMesh &mesh, const unsigned short rem, const int maxTris)
 
bool rcBuildPolyMesh (rcContext *ctx, rcContourSet &cset, const int nvp, rcPolyMesh &mesh)
 Builds a polygon mesh from the provided contours. More...
 
bool rcMergePolyMeshes (rcContext *ctx, rcPolyMesh **meshes, const int nmeshes, rcPolyMesh &mesh)
 Merges multiple polygon meshes into a single mesh. More...
 
bool rcCopyPolyMesh (rcContext *ctx, const rcPolyMesh &src, rcPolyMesh &dst)
 Copies the poly mesh data from src to dst. More...
 

Variables

static const int VERTEX_BUCKET_COUNT = (1<<12)
 

Macro Definition Documentation

#define _USE_MATH_DEFINES

Function Documentation

static unsigned short addVertex ( unsigned short  x,
unsigned short  y,
unsigned short  z,
unsigned short *  verts,
int *  firstVert,
int *  nextVert,
int &  nv 
)
static
int area2 ( const int *  a,
const int *  b,
const int *  c 
)
inline
static bool between ( const int *  a,
const int *  b,
const int *  c 
)
static
static bool buildMeshAdjacency ( unsigned short *  polys,
const int  npolys,
const int  nverts,
const int  vertsPerPoly 
)
static
static bool canRemoveVertex ( rcContext ctx,
rcPolyMesh mesh,
const unsigned short  rem 
)
static
bool collinear ( const int *  a,
const int *  b,
const int *  c 
)
inline
int computeVertexHash ( int  x,
int  y,
int  z 
)
inline
static int countPolyVerts ( const unsigned short *  p,
const int  nvp 
)
static
static bool diagonal ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static bool diagonalie ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static bool diagonalieLoose ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static bool diagonalLoose ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static int getPolyMergeValue ( unsigned short *  pa,
unsigned short *  pb,
const unsigned short *  verts,
int &  ea,
int &  eb,
const int  nvp 
)
static
static bool inCone ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static bool inConeLoose ( int  i,
int  j,
int  n,
const int *  verts,
int *  indices 
)
static
static bool intersect ( const int *  a,
const int *  b,
const int *  c,
const int *  d 
)
static
static bool intersectProp ( const int *  a,
const int *  b,
const int *  c,
const int *  d 
)
static
bool left ( const int *  a,
const int *  b,
const int *  c 
)
inline
bool leftOn ( const int *  a,
const int *  b,
const int *  c 
)
inline
static void mergePolys ( unsigned short *  pa,
unsigned short *  pb,
int  ea,
int  eb,
unsigned short *  tmp,
const int  nvp 
)
static
int next ( int  i,
int  n 
)
inline
int prev ( int  i,
int  n 
)
inline
template<typename T >
static void pushBack ( v,
T *  arr,
T &  an 
)
static
template<typename T >
static void pushFront ( v,
T *  arr,
T &  an 
)
static
static bool removeVertex ( rcContext ctx,
rcPolyMesh mesh,
const unsigned short  rem,
const int  maxTris 
)
static
static int triangulate ( int  n,
const int *  verts,
int *  indices,
int *  tris 
)
static
bool uleft ( const unsigned short *  a,
const unsigned short *  b,
const unsigned short *  c 
)
inline
static bool vequal ( const int *  a,
const int *  b 
)
static
bool xorb ( bool  x,
bool  y 
)
inline

Variable Documentation

const int VERTEX_BUCKET_COUNT = (1<<12)
static