Recast Navigation  1.0.35
RecastRegion.cpp File Reference
#include <float.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "Recast.h"
#include "RecastAlloc.h"
#include "RecastAssert.h"
#include <new>

Classes

struct  rcRegion
 
struct  rcSweepSpan
 

Macros

#define _USE_MATH_DEFINES
 

Functions

static void calculateDistanceField (rcCompactHeightfield &chf, unsigned short *src, unsigned short &maxDist)
 
static unsigned short * boxBlur (rcCompactHeightfield &chf, int thr, unsigned short *src, unsigned short *dst)
 
static bool floodRegion (int x, int y, int i, unsigned short level, unsigned short r, rcCompactHeightfield &chf, unsigned short *srcReg, unsigned short *srcDist, rcIntArray &stack)
 
static unsigned short * expandRegions (int maxIter, unsigned short level, rcCompactHeightfield &chf, unsigned short *srcReg, unsigned short *srcDist, unsigned short *dstReg, unsigned short *dstDist, rcIntArray &stack, bool fillStack)
 
static void sortCellsByLevel (unsigned short startLevel, rcCompactHeightfield &chf, unsigned short *srcReg, unsigned int nbStacks, rcIntArray *stacks, unsigned short loglevelsPerStack)
 
static void appendStacks (rcIntArray &srcStack, rcIntArray &dstStack, unsigned short *srcReg)
 
static void removeAdjacentNeighbours (rcRegion &reg)
 
static void replaceNeighbour (rcRegion &reg, unsigned short oldId, unsigned short newId)
 
static bool canMergeWithRegion (const rcRegion &rega, const rcRegion &regb)
 
static void addUniqueFloorRegion (rcRegion &reg, int n)
 
static bool mergeRegions (rcRegion &rega, rcRegion &regb)
 
static bool isRegionConnectedToBorder (const rcRegion &reg)
 
static bool isSolidEdge (rcCompactHeightfield &chf, unsigned short *srcReg, int x, int y, int i, int dir)
 
static void walkContour (int x, int y, int i, int dir, rcCompactHeightfield &chf, unsigned short *srcReg, rcIntArray &cont)
 
static bool mergeAndFilterRegions (rcContext *ctx, int minRegionArea, int mergeRegionSize, unsigned short &maxRegionId, rcCompactHeightfield &chf, unsigned short *srcReg, rcIntArray &overlaps)
 
static void addUniqueConnection (rcRegion &reg, int n)
 
static bool mergeAndFilterLayerRegions (rcContext *ctx, int minRegionArea, unsigned short &maxRegionId, rcCompactHeightfield &chf, unsigned short *srcReg, rcIntArray &overlaps)
 
static void paintRectRegion (int minx, int maxx, int miny, int maxy, unsigned short regId, rcCompactHeightfield &chf, unsigned short *srcReg)
 
bool rcBuildRegionsMonotone (rcContext *ctx, rcCompactHeightfield &chf, const int borderSize, const int minRegionArea, const int mergeRegionArea)
 Builds region data for the heightfield using simple monotone partitioning. More...
 
bool rcBuildRegions (rcContext *ctx, rcCompactHeightfield &chf, const int borderSize, const int minRegionArea, const int mergeRegionArea)
 Builds region data for the heightfield using watershed partitioning. More...
 
bool rcBuildLayerRegions (rcContext *ctx, rcCompactHeightfield &chf, const int borderSize, const int minRegionArea)
 Builds region data for the heightfield by partitioning the heightfield in non-overlapping layers. More...
 

Variables

static const unsigned short RC_NULL_NEI = 0xffff
 

Macro Definition Documentation

#define _USE_MATH_DEFINES

Function Documentation

static void addUniqueConnection ( rcRegion reg,
int  n 
)
static
static void addUniqueFloorRegion ( rcRegion reg,
int  n 
)
static
static void appendStacks ( rcIntArray srcStack,
rcIntArray dstStack,
unsigned short *  srcReg 
)
static
static unsigned short* boxBlur ( rcCompactHeightfield chf,
int  thr,
unsigned short *  src,
unsigned short *  dst 
)
static
static void calculateDistanceField ( rcCompactHeightfield chf,
unsigned short *  src,
unsigned short &  maxDist 
)
static
static bool canMergeWithRegion ( const rcRegion rega,
const rcRegion regb 
)
static
static unsigned short* expandRegions ( int  maxIter,
unsigned short  level,
rcCompactHeightfield chf,
unsigned short *  srcReg,
unsigned short *  srcDist,
unsigned short *  dstReg,
unsigned short *  dstDist,
rcIntArray stack,
bool  fillStack 
)
static
static bool floodRegion ( int  x,
int  y,
int  i,
unsigned short  level,
unsigned short  r,
rcCompactHeightfield chf,
unsigned short *  srcReg,
unsigned short *  srcDist,
rcIntArray stack 
)
static
static bool isRegionConnectedToBorder ( const rcRegion reg)
static
static bool isSolidEdge ( rcCompactHeightfield chf,
unsigned short *  srcReg,
int  x,
int  y,
int  i,
int  dir 
)
static
static bool mergeAndFilterLayerRegions ( rcContext ctx,
int  minRegionArea,
unsigned short &  maxRegionId,
rcCompactHeightfield chf,
unsigned short *  srcReg,
rcIntArray overlaps 
)
static
static bool mergeAndFilterRegions ( rcContext ctx,
int  minRegionArea,
int  mergeRegionSize,
unsigned short &  maxRegionId,
rcCompactHeightfield chf,
unsigned short *  srcReg,
rcIntArray overlaps 
)
static
static bool mergeRegions ( rcRegion rega,
rcRegion regb 
)
static
static void paintRectRegion ( int  minx,
int  maxx,
int  miny,
int  maxy,
unsigned short  regId,
rcCompactHeightfield chf,
unsigned short *  srcReg 
)
static
static void removeAdjacentNeighbours ( rcRegion reg)
static
static void replaceNeighbour ( rcRegion reg,
unsigned short  oldId,
unsigned short  newId 
)
static
static void sortCellsByLevel ( unsigned short  startLevel,
rcCompactHeightfield chf,
unsigned short *  srcReg,
unsigned int  nbStacks,
rcIntArray stacks,
unsigned short  loglevelsPerStack 
)
static
static void walkContour ( int  x,
int  y,
int  i,
int  dir,
rcCompactHeightfield chf,
unsigned short *  srcReg,
rcIntArray cont 
)
static

Variable Documentation

const unsigned short RC_NULL_NEI = 0xffff
static