diff --git a/RecastDebugDraw_8h_source.html b/RecastDebugDraw_8h_source.html index 8d889556..8c53da0c 100644 --- a/RecastDebugDraw_8h_source.html +++ b/RecastDebugDraw_8h_source.html @@ -147,13 +147,13 @@ $(document).ready(function(){initNavTree('RecastDebugDraw_8h_source.html',''); i
duDebugDrawHeightfieldLayers
void duDebugDrawHeightfieldLayers(duDebugDraw *dd, const struct rcHeightfieldLayerSet &lset)
Definition: RecastDebugDraw.cpp:424
duDebugDrawContours
void duDebugDrawContours(struct duDebugDraw *dd, const struct rcContourSet &cset, const float alpha=1.0f)
duDebugDraw
Abstract debug draw interface.
Definition: DebugDraw.h:35
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
-
rcHeightfieldLayerSet
Represents a set of heightfield layers.
Definition: Recast.h:404
-
rcHeightfieldLayer
Represents a heightfield layer within a layer set.
Definition: Recast.h:382
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
+
rcHeightfieldLayerSet
Represents a set of heightfield layers.
Definition: Recast.h:406
+
rcHeightfieldLayer
Represents a heightfield layer within a layer set.
Definition: Recast.h:384
rcHeightfield
A dynamic heightfield representing obstructed space.
Definition: Recast.h:313
-
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:485
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:487
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
diff --git a/RecastDump_8h_source.html b/RecastDump_8h_source.html index 8b44411b..b133002e 100644 --- a/RecastDump_8h_source.html +++ b/RecastDump_8h_source.html @@ -145,10 +145,10 @@ $(document).ready(function(){initNavTree('RecastDump_8h_source.html',''); initRe
duFileIO::write
virtual bool write(const void *ptr, const size_t size)=0
duFileIO::read
virtual bool read(void *ptr, const size_t size)=0
duFileIO::~duFileIO
virtual ~duFileIO()
Definition: RecastDump.cpp:27
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
-
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:485
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
+
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:487
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
diff --git a/RecastFilter_8cpp.html b/RecastFilter_8cpp.html index d5478acc..4c2d0605 100644 --- a/RecastFilter_8cpp.html +++ b/RecastFilter_8cpp.html @@ -98,13 +98,13 @@ $(document).ready(function(){initNavTree('RecastFilter_8cpp.html',''); initResiz

Functions

void rcFilterLowHangingWalkableObstacles (rcContext *context, const int walkableClimb, rcHeightfield &heightfield) - Marks non-walkable spans as walkable if their maximum is within walkableClimb of a walkable neighbor. More...
+ Marks non-walkable spans as walkable if their maximum is within walkableClimb of the span below them. More...
  void rcFilterLedgeSpans (rcContext *context, const int walkableHeight, const int walkableClimb, rcHeightfield &heightfield)  Marks spans that are ledges as not-walkable. More...
  void rcFilterWalkableLowHeightSpans (rcContext *context, const int walkableHeight, rcHeightfield &heightfield) - Marks walkable spans as not walkable if the clearance above the span is less than the specified height. More...
+ Marks walkable spans as not walkable if the clearance above the span is less than the specified walkableHeight. More...
  diff --git a/Recast_8h.html b/Recast_8h.html index 36841f71..1b931b8a 100644 --- a/Recast_8h.html +++ b/Recast_8h.html @@ -342,13 +342,13 @@ Functions  Rasterizes a triangle list into the specified heightfield. More...
  void rcFilterLowHangingWalkableObstacles (rcContext *context, int walkableClimb, rcHeightfield &heightfield) - Marks non-walkable spans as walkable if their maximum is within walkableClimb of a walkable neighbor. More...
+ Marks non-walkable spans as walkable if their maximum is within walkableClimb of the span below them. More...
  void rcFilterLedgeSpans (rcContext *context, int walkableHeight, int walkableClimb, rcHeightfield &heightfield)  Marks spans that are ledges as not-walkable. More...
  void rcFilterWalkableLowHeightSpans (rcContext *context, int walkableHeight, rcHeightfield &heightfield) - Marks walkable spans as not walkable if the clearance above the span is less than the specified height. More...
+ Marks walkable spans as not walkable if the clearance above the span is less than the specified walkableHeight. More...
  int rcGetHeightFieldSpanCount (rcContext *context, const rcHeightfield &heightfield)  Returns the number of spans contained in the specified heightfield. More...
@@ -551,11 +551,11 @@ Variables RC_TIMER_FILTER_BORDER 

The time to filter ledge spans. (See: rcFilterLedgeSpans)

-RC_TIMER_FILTER_WALKABLE 

The time to filter low height spans. (See: rcFilterWalkableLowHeightSpans)

+RC_TIMER_FILTER_WALKABLE 

The time to filter low height spans. (See: rcFilterWalkableLowHeightSpans)

RC_TIMER_MEDIAN_AREA 

The time to apply the median filter. (See: rcMedianFilterWalkableArea)

-RC_TIMER_FILTER_LOW_OBSTACLES 

The time to filter low obstacles. (See: rcFilterLowHangingWalkableObstacles)

+RC_TIMER_FILTER_LOW_OBSTACLES 

The time to filter low obstacles. (See: rcFilterLowHangingWalkableObstacles)

RC_TIMER_BUILD_POLYMESH 

The time to build the polygon mesh. (See: rcBuildPolyMesh)

diff --git a/Recast_8h_source.html b/Recast_8h_source.html index 2f4c692a..982afc84 100644 --- a/Recast_8h_source.html +++ b/Recast_8h_source.html @@ -281,449 +281,451 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
321  float cs;
322  float ch;
323  rcSpan** spans;
-
324  rcSpanPool* pools;
-
325  rcSpan* freelist;
-
326 
-
327 private:
-
328  // Explicitly-disabled copy constructor and copy assignment operator.
-
329  rcHeightfield(const rcHeightfield&);
-
330  rcHeightfield& operator=(const rcHeightfield&);
-
331 };
-
332 
-
334 struct rcCompactCell
-
335 {
-
336  unsigned int index : 24;
-
337  unsigned int count : 8;
-
338 };
-
339 
-
341 struct rcCompactSpan
-
342 {
-
343  unsigned short y;
-
344  unsigned short reg;
-
345  unsigned int con : 24;
-
346  unsigned int h : 8;
-
347 };
-
348 
-
351 struct rcCompactHeightfield
-
352 {
-
353  rcCompactHeightfield();
-
354  ~rcCompactHeightfield();
-
355 
-
356  int width;
-
357  int height;
-
358  int spanCount;
-
359  int walkableHeight;
-
360  int walkableClimb;
-
361  int borderSize;
-
362  unsigned short maxDistance;
-
363  unsigned short maxRegions;
-
364  float bmin[3];
-
365  float bmax[3];
-
366  float cs;
-
367  float ch;
-
368  rcCompactCell* cells;
-
369  rcCompactSpan* spans;
-
370  unsigned short* dist;
-
371  unsigned char* areas;
-
372 
-
373 private:
-
374  // Explicitly-disabled copy constructor and copy assignment operator.
-
375  rcCompactHeightfield(const rcCompactHeightfield&);
-
376  rcCompactHeightfield& operator=(const rcCompactHeightfield&);
-
377 };
-
378 
-
381 struct rcHeightfieldLayer
-
382 {
-
383  float bmin[3];
-
384  float bmax[3];
-
385  float cs;
-
386  float ch;
-
387  int width;
-
388  int height;
-
389  int minx;
-
390  int maxx;
-
391  int miny;
-
392  int maxy;
-
393  int hmin;
-
394  int hmax;
-
395  unsigned char* heights;
-
396  unsigned char* areas;
-
397  unsigned char* cons;
-
398 };
-
399 
-
403 struct rcHeightfieldLayerSet
-
404 {
-
405  rcHeightfieldLayerSet();
-
406  ~rcHeightfieldLayerSet();
-
407 
-
408  rcHeightfieldLayer* layers;
-
409  int nlayers;
-
410 
-
411 private:
-
412  // Explicitly-disabled copy constructor and copy assignment operator.
-
413  rcHeightfieldLayerSet(const rcHeightfieldLayerSet&);
-
414  rcHeightfieldLayerSet& operator=(const rcHeightfieldLayerSet&);
-
415 };
-
416 
-
418 struct rcContour
-
419 {
-
420  int* verts;
-
421  int nverts;
-
422  int* rverts;
-
423  int nrverts;
-
424  unsigned short reg;
-
425  unsigned char area;
-
426 };
-
427 
-
430 struct rcContourSet
-
431 {
-
432  rcContourSet();
-
433  ~rcContourSet();
-
434 
-
435  rcContour* conts;
-
436  int nconts;
-
437  float bmin[3];
-
438  float bmax[3];
-
439  float cs;
-
440  float ch;
-
441  int width;
-
442  int height;
-
443  int borderSize;
-
444  float maxError;
-
445 
-
446 private:
-
447  // Explicitly-disabled copy constructor and copy assignment operator.
-
448  rcContourSet(const rcContourSet&);
-
449  rcContourSet& operator=(const rcContourSet&);
-
450 };
-
451 
-
454 struct rcPolyMesh
-
455 {
-
456  rcPolyMesh();
-
457  ~rcPolyMesh();
-
458 
-
459  unsigned short* verts;
-
460  unsigned short* polys;
-
461  unsigned short* regs;
-
462  unsigned short* flags;
-
463  unsigned char* areas;
-
464  int nverts;
-
465  int npolys;
-
466  int maxpolys;
-
467  int nvp;
-
468  float bmin[3];
-
469  float bmax[3];
-
470  float cs;
-
471  float ch;
-
472  int borderSize;
-
473  float maxEdgeError;
-
474 
-
475 private:
-
476  // Explicitly-disabled copy constructor and copy assignment operator.
-
477  rcPolyMesh(const rcPolyMesh&);
-
478  rcPolyMesh& operator=(const rcPolyMesh&);
-
479 };
-
480 
-
484 struct rcPolyMeshDetail
-
485 {
-
486  rcPolyMeshDetail();
-
487 
-
488  unsigned int* meshes;
-
489  float* verts;
-
490  unsigned char* tris;
-
491  int nmeshes;
-
492  int nverts;
-
493  int ntris;
-
494 
-
495 private:
-
496  // Explicitly-disabled copy constructor and copy assignment operator.
-
497  rcPolyMeshDetail(const rcPolyMeshDetail&);
-
498  rcPolyMeshDetail& operator=(const rcPolyMeshDetail&);
-
499 };
-
500 
-
505 
-
510 rcHeightfield* rcAllocHeightfield();
-
511 
-
516 void rcFreeHeightField(rcHeightfield* heightfield);
-
517 
-
522 rcCompactHeightfield* rcAllocCompactHeightfield();
-
523 
-
528 void rcFreeCompactHeightfield(rcCompactHeightfield* compactHeightfield);
-
529 
-
534 rcHeightfieldLayerSet* rcAllocHeightfieldLayerSet();
-
535 
-
540 void rcFreeHeightfieldLayerSet(rcHeightfieldLayerSet* layerSet);
-
541 
-
546 rcContourSet* rcAllocContourSet();
-
547 
-
552 void rcFreeContourSet(rcContourSet* contourSet);
-
553 
-
558 rcPolyMesh* rcAllocPolyMesh();
-
559 
-
564 void rcFreePolyMesh(rcPolyMesh* polyMesh);
-
565 
-
570 rcPolyMeshDetail* rcAllocPolyMeshDetail();
-
571 
-
576 void rcFreePolyMeshDetail(rcPolyMeshDetail* detailMesh);
-
577 
+
324 
+
325  // memory pool for rcSpan instances.
+
326  rcSpanPool* pools;
+
327  rcSpan* freelist;
+
328 
+
329 private:
+
330  // Explicitly-disabled copy constructor and copy assignment operator.
+
331  rcHeightfield(const rcHeightfield&);
+
332  rcHeightfield& operator=(const rcHeightfield&);
+
333 };
+
334 
+
336 struct rcCompactCell
+
337 {
+
338  unsigned int index : 24;
+
339  unsigned int count : 8;
+
340 };
+
341 
+
343 struct rcCompactSpan
+
344 {
+
345  unsigned short y;
+
346  unsigned short reg;
+
347  unsigned int con : 24;
+
348  unsigned int h : 8;
+
349 };
+
350 
+
353 struct rcCompactHeightfield
+
354 {
+
355  rcCompactHeightfield();
+
356  ~rcCompactHeightfield();
+
357 
+
358  int width;
+
359  int height;
+
360  int spanCount;
+
361  int walkableHeight;
+
362  int walkableClimb;
+
363  int borderSize;
+
364  unsigned short maxDistance;
+
365  unsigned short maxRegions;
+
366  float bmin[3];
+
367  float bmax[3];
+
368  float cs;
+
369  float ch;
+
370  rcCompactCell* cells;
+
371  rcCompactSpan* spans;
+
372  unsigned short* dist;
+
373  unsigned char* areas;
+
374 
+
375 private:
+
376  // Explicitly-disabled copy constructor and copy assignment operator.
+
377  rcCompactHeightfield(const rcCompactHeightfield&);
+
378  rcCompactHeightfield& operator=(const rcCompactHeightfield&);
+
379 };
+
380 
+
383 struct rcHeightfieldLayer
+
384 {
+
385  float bmin[3];
+
386  float bmax[3];
+
387  float cs;
+
388  float ch;
+
389  int width;
+
390  int height;
+
391  int minx;
+
392  int maxx;
+
393  int miny;
+
394  int maxy;
+
395  int hmin;
+
396  int hmax;
+
397  unsigned char* heights;
+
398  unsigned char* areas;
+
399  unsigned char* cons;
+
400 };
+
401 
+
405 struct rcHeightfieldLayerSet
+
406 {
+
407  rcHeightfieldLayerSet();
+
408  ~rcHeightfieldLayerSet();
+
409 
+
410  rcHeightfieldLayer* layers;
+
411  int nlayers;
+
412 
+
413 private:
+
414  // Explicitly-disabled copy constructor and copy assignment operator.
+
415  rcHeightfieldLayerSet(const rcHeightfieldLayerSet&);
+
416  rcHeightfieldLayerSet& operator=(const rcHeightfieldLayerSet&);
+
417 };
+
418 
+
420 struct rcContour
+
421 {
+
422  int* verts;
+
423  int nverts;
+
424  int* rverts;
+
425  int nrverts;
+
426  unsigned short reg;
+
427  unsigned char area;
+
428 };
+
429 
+
432 struct rcContourSet
+
433 {
+
434  rcContourSet();
+
435  ~rcContourSet();
+
436 
+
437  rcContour* conts;
+
438  int nconts;
+
439  float bmin[3];
+
440  float bmax[3];
+
441  float cs;
+
442  float ch;
+
443  int width;
+
444  int height;
+
445  int borderSize;
+
446  float maxError;
+
447 
+
448 private:
+
449  // Explicitly-disabled copy constructor and copy assignment operator.
+
450  rcContourSet(const rcContourSet&);
+
451  rcContourSet& operator=(const rcContourSet&);
+
452 };
+
453 
+
456 struct rcPolyMesh
+
457 {
+
458  rcPolyMesh();
+
459  ~rcPolyMesh();
+
460 
+
461  unsigned short* verts;
+
462  unsigned short* polys;
+
463  unsigned short* regs;
+
464  unsigned short* flags;
+
465  unsigned char* areas;
+
466  int nverts;
+
467  int npolys;
+
468  int maxpolys;
+
469  int nvp;
+
470  float bmin[3];
+
471  float bmax[3];
+
472  float cs;
+
473  float ch;
+
474  int borderSize;
+
475  float maxEdgeError;
+
476 
+
477 private:
+
478  // Explicitly-disabled copy constructor and copy assignment operator.
+
479  rcPolyMesh(const rcPolyMesh&);
+
480  rcPolyMesh& operator=(const rcPolyMesh&);
+
481 };
+
482 
+
486 struct rcPolyMeshDetail
+
487 {
+
488  rcPolyMeshDetail();
+
489 
+
490  unsigned int* meshes;
+
491  float* verts;
+
492  unsigned char* tris;
+
493  int nmeshes;
+
494  int nverts;
+
495  int ntris;
+
496 
+
497 private:
+
498  // Explicitly-disabled copy constructor and copy assignment operator.
+
499  rcPolyMeshDetail(const rcPolyMeshDetail&);
+
500  rcPolyMeshDetail& operator=(const rcPolyMeshDetail&);
+
501 };
+
502 
+
507 
+
512 rcHeightfield* rcAllocHeightfield();
+
513 
+
518 void rcFreeHeightField(rcHeightfield* heightfield);
+
519 
+
524 rcCompactHeightfield* rcAllocCompactHeightfield();
+
525 
+
530 void rcFreeCompactHeightfield(rcCompactHeightfield* compactHeightfield);
+
531 
+
536 rcHeightfieldLayerSet* rcAllocHeightfieldLayerSet();
+
537 
+
542 void rcFreeHeightfieldLayerSet(rcHeightfieldLayerSet* layerSet);
+
543 
+
548 rcContourSet* rcAllocContourSet();
+
549 
+
554 void rcFreeContourSet(rcContourSet* contourSet);
+
555 
+
560 rcPolyMesh* rcAllocPolyMesh();
+
561 
+
566 void rcFreePolyMesh(rcPolyMesh* polyMesh);
+
567 
+
572 rcPolyMeshDetail* rcAllocPolyMeshDetail();
+
573 
+
578 void rcFreePolyMeshDetail(rcPolyMeshDetail* detailMesh);
579 
-
585 static const unsigned short RC_BORDER_REG = 0x8000;
-
586 
-
593 static const unsigned short RC_MULTIPLE_REGS = 0;
-
594 
-
602 static const int RC_BORDER_VERTEX = 0x10000;
-
603 
-
609 static const int RC_AREA_BORDER = 0x20000;
-
610 
-
613 enum rcBuildContoursFlags
-
614 {
-
615  RC_CONTOUR_TESS_WALL_EDGES = 0x01,
-
616  RC_CONTOUR_TESS_AREA_EDGES = 0x02
-
617 };
-
618 
-
623 static const int RC_CONTOUR_REG_MASK = 0xffff;
-
624 
-
628 static const unsigned short RC_MESH_NULL_IDX = 0xffff;
-
629 
-
633 static const unsigned char RC_NULL_AREA = 0;
-
634 
-
638 static const unsigned char RC_WALKABLE_AREA = 63;
-
639 
-
642 static const int RC_NOT_CONNECTED = 0x3f;
-
643 
-
646 
-
650 template<class T> inline void rcSwap(T& a, T& b) { T t = a; a = b; b = t; }
-
651 
-
656 template<class T> inline T rcMin(T a, T b) { return a < b ? a : b; }
-
657 
-
662 template<class T> inline T rcMax(T a, T b) { return a > b ? a : b; }
-
663 
-
667 template<class T> inline T rcAbs(T a) { return a < 0 ? -a : a; }
-
668 
-
672 template<class T> inline T rcSqr(T a) { return a * a; }
-
673 
-
679 template<class T> inline T rcClamp(T value, T minInclusive, T maxInclusive)
-
680 {
-
681  return value < minInclusive ? minInclusive: (value > maxInclusive ? maxInclusive : value);
-
682 }
-
683 
-
687 float rcSqrt(float x);
-
688 
-
692 
-
697 inline void rcVcross(float* dest, const float* v1, const float* v2)
-
698 {
-
699  dest[0] = v1[1]*v2[2] - v1[2]*v2[1];
-
700  dest[1] = v1[2]*v2[0] - v1[0]*v2[2];
-
701  dest[2] = v1[0]*v2[1] - v1[1]*v2[0];
-
702 }
-
703 
-
708 inline float rcVdot(const float* v1, const float* v2)
-
709 {
-
710  return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
-
711 }
-
712 
-
718 inline void rcVmad(float* dest, const float* v1, const float* v2, const float s)
-
719 {
-
720  dest[0] = v1[0]+v2[0]*s;
-
721  dest[1] = v1[1]+v2[1]*s;
-
722  dest[2] = v1[2]+v2[2]*s;
-
723 }
-
724 
-
729 inline void rcVadd(float* dest, const float* v1, const float* v2)
-
730 {
-
731  dest[0] = v1[0]+v2[0];
-
732  dest[1] = v1[1]+v2[1];
-
733  dest[2] = v1[2]+v2[2];
-
734 }
-
735 
-
740 inline void rcVsub(float* dest, const float* v1, const float* v2)
-
741 {
-
742  dest[0] = v1[0]-v2[0];
-
743  dest[1] = v1[1]-v2[1];
-
744  dest[2] = v1[2]-v2[2];
-
745 }
-
746 
-
750 inline void rcVmin(float* mn, const float* v)
-
751 {
-
752  mn[0] = rcMin(mn[0], v[0]);
-
753  mn[1] = rcMin(mn[1], v[1]);
-
754  mn[2] = rcMin(mn[2], v[2]);
-
755 }
-
756 
-
760 inline void rcVmax(float* mx, const float* v)
-
761 {
-
762  mx[0] = rcMax(mx[0], v[0]);
-
763  mx[1] = rcMax(mx[1], v[1]);
-
764  mx[2] = rcMax(mx[2], v[2]);
-
765 }
-
766 
-
770 inline void rcVcopy(float* dest, const float* v)
-
771 {
-
772  dest[0] = v[0];
-
773  dest[1] = v[1];
-
774  dest[2] = v[2];
-
775 }
-
776 
-
781 inline float rcVdist(const float* v1, const float* v2)
-
782 {
-
783  float dx = v2[0] - v1[0];
-
784  float dy = v2[1] - v1[1];
-
785  float dz = v2[2] - v1[2];
-
786  return rcSqrt(dx*dx + dy*dy + dz*dz);
-
787 }
-
788 
-
793 inline float rcVdistSqr(const float* v1, const float* v2)
-
794 {
-
795  float dx = v2[0] - v1[0];
-
796  float dy = v2[1] - v1[1];
-
797  float dz = v2[2] - v1[2];
-
798  return dx*dx + dy*dy + dz*dz;
-
799 }
-
800 
-
803 inline void rcVnormalize(float* v)
-
804 {
-
805  float d = 1.0f / rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2]));
-
806  v[0] *= d;
-
807  v[1] *= d;
-
808  v[2] *= d;
-
809 }
-
810 
-
815 
-
822 void rcCalcBounds(const float* verts, int numVerts, float* minBounds, float* maxBounds);
-
823 
-
831 void rcCalcGridSize(const float* minBounds, const float* maxBounds, float cellSize, int* sizeX, int* sizeZ);
-
832 
-
848 bool rcCreateHeightfield(rcContext* context, rcHeightfield& heightfield, int sizeX, int sizeZ,
-
849  const float* minBounds, const float* maxBounds,
-
850  float cellSize, float cellHeight);
-
851 
-
871 void rcMarkWalkableTriangles(rcContext* context, float walkableSlopeAngle, const float* verts, int numVerts,
-
872  const int* tris, int numTris, unsigned char* triAreaIDs);
-
873 
-
892 void rcClearUnwalkableTriangles(rcContext* context, float walkableSlopeAngle, const float* verts, int numVerts,
-
893  const int* tris, int numTris, unsigned char* triAreaIDs);
-
894 
-
913 bool rcAddSpan(rcContext* context, rcHeightfield& heightfield,
-
914  int x, int z,
-
915  unsigned short spanMin, unsigned short spanMax,
-
916  unsigned char areaID, int flagMergeThreshold);
-
917 
-
935 bool rcRasterizeTriangle(rcContext* context,
-
936  const float* v0, const float* v1, const float* v2,
-
937  unsigned char areaID, rcHeightfield& heightfield, int flagMergeThreshold = 1);
-
938 
-
955 bool rcRasterizeTriangles(rcContext* context,
-
956  const float* verts, int numVerts,
-
957  const int* tris, const unsigned char* triAreaIDs, int numTris,
-
958  rcHeightfield& heightfield, int flagMergeThreshold = 1);
-
959 
-
976 bool rcRasterizeTriangles(rcContext* context,
-
977  const float* verts, int numVerts,
-
978  const unsigned short* tris, const unsigned char* triAreaIDs, int numTris,
-
979  rcHeightfield& heightfield, int flagMergeThreshold = 1);
-
980 
-
997 bool rcRasterizeTriangles(rcContext* context,
-
998  const float* verts, const unsigned char* triAreaIDs, int numTris,
-
999  rcHeightfield& heightfield, int flagMergeThreshold = 1);
-
1000 
+
581 
+
587 static const unsigned short RC_BORDER_REG = 0x8000;
+
588 
+
595 static const unsigned short RC_MULTIPLE_REGS = 0;
+
596 
+
604 static const int RC_BORDER_VERTEX = 0x10000;
+
605 
+
611 static const int RC_AREA_BORDER = 0x20000;
+
612 
+
615 enum rcBuildContoursFlags
+
616 {
+
617  RC_CONTOUR_TESS_WALL_EDGES = 0x01,
+
618  RC_CONTOUR_TESS_AREA_EDGES = 0x02
+
619 };
+
620 
+
625 static const int RC_CONTOUR_REG_MASK = 0xffff;
+
626 
+
630 static const unsigned short RC_MESH_NULL_IDX = 0xffff;
+
631 
+
635 static const unsigned char RC_NULL_AREA = 0;
+
636 
+
640 static const unsigned char RC_WALKABLE_AREA = 63;
+
641 
+
644 static const int RC_NOT_CONNECTED = 0x3f;
+
645 
+
648 
+
652 template<class T> inline void rcSwap(T& a, T& b) { T t = a; a = b; b = t; }
+
653 
+
658 template<class T> inline T rcMin(T a, T b) { return a < b ? a : b; }
+
659 
+
664 template<class T> inline T rcMax(T a, T b) { return a > b ? a : b; }
+
665 
+
669 template<class T> inline T rcAbs(T a) { return a < 0 ? -a : a; }
+
670 
+
674 template<class T> inline T rcSqr(T a) { return a * a; }
+
675 
+
681 template<class T> inline T rcClamp(T value, T minInclusive, T maxInclusive)
+
682 {
+
683  return value < minInclusive ? minInclusive: (value > maxInclusive ? maxInclusive : value);
+
684 }
+
685 
+
689 float rcSqrt(float x);
+
690 
+
694 
+
699 inline void rcVcross(float* dest, const float* v1, const float* v2)
+
700 {
+
701  dest[0] = v1[1]*v2[2] - v1[2]*v2[1];
+
702  dest[1] = v1[2]*v2[0] - v1[0]*v2[2];
+
703  dest[2] = v1[0]*v2[1] - v1[1]*v2[0];
+
704 }
+
705 
+
710 inline float rcVdot(const float* v1, const float* v2)
+
711 {
+
712  return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
+
713 }
+
714 
+
720 inline void rcVmad(float* dest, const float* v1, const float* v2, const float s)
+
721 {
+
722  dest[0] = v1[0]+v2[0]*s;
+
723  dest[1] = v1[1]+v2[1]*s;
+
724  dest[2] = v1[2]+v2[2]*s;
+
725 }
+
726 
+
731 inline void rcVadd(float* dest, const float* v1, const float* v2)
+
732 {
+
733  dest[0] = v1[0]+v2[0];
+
734  dest[1] = v1[1]+v2[1];
+
735  dest[2] = v1[2]+v2[2];
+
736 }
+
737 
+
742 inline void rcVsub(float* dest, const float* v1, const float* v2)
+
743 {
+
744  dest[0] = v1[0]-v2[0];
+
745  dest[1] = v1[1]-v2[1];
+
746  dest[2] = v1[2]-v2[2];
+
747 }
+
748 
+
752 inline void rcVmin(float* mn, const float* v)
+
753 {
+
754  mn[0] = rcMin(mn[0], v[0]);
+
755  mn[1] = rcMin(mn[1], v[1]);
+
756  mn[2] = rcMin(mn[2], v[2]);
+
757 }
+
758 
+
762 inline void rcVmax(float* mx, const float* v)
+
763 {
+
764  mx[0] = rcMax(mx[0], v[0]);
+
765  mx[1] = rcMax(mx[1], v[1]);
+
766  mx[2] = rcMax(mx[2], v[2]);
+
767 }
+
768 
+
772 inline void rcVcopy(float* dest, const float* v)
+
773 {
+
774  dest[0] = v[0];
+
775  dest[1] = v[1];
+
776  dest[2] = v[2];
+
777 }
+
778 
+
783 inline float rcVdist(const float* v1, const float* v2)
+
784 {
+
785  float dx = v2[0] - v1[0];
+
786  float dy = v2[1] - v1[1];
+
787  float dz = v2[2] - v1[2];
+
788  return rcSqrt(dx*dx + dy*dy + dz*dz);
+
789 }
+
790 
+
795 inline float rcVdistSqr(const float* v1, const float* v2)
+
796 {
+
797  float dx = v2[0] - v1[0];
+
798  float dy = v2[1] - v1[1];
+
799  float dz = v2[2] - v1[2];
+
800  return dx*dx + dy*dy + dz*dz;
+
801 }
+
802 
+
805 inline void rcVnormalize(float* v)
+
806 {
+
807  float d = 1.0f / rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2]));
+
808  v[0] *= d;
+
809  v[1] *= d;
+
810  v[2] *= d;
+
811 }
+
812 
+
817 
+
824 void rcCalcBounds(const float* verts, int numVerts, float* minBounds, float* maxBounds);
+
825 
+
833 void rcCalcGridSize(const float* minBounds, const float* maxBounds, float cellSize, int* sizeX, int* sizeZ);
+
834 
+
850 bool rcCreateHeightfield(rcContext* context, rcHeightfield& heightfield, int sizeX, int sizeZ,
+
851  const float* minBounds, const float* maxBounds,
+
852  float cellSize, float cellHeight);
+
853 
+
873 void rcMarkWalkableTriangles(rcContext* context, float walkableSlopeAngle, const float* verts, int numVerts,
+
874  const int* tris, int numTris, unsigned char* triAreaIDs);
+
875 
+
894 void rcClearUnwalkableTriangles(rcContext* context, float walkableSlopeAngle, const float* verts, int numVerts,
+
895  const int* tris, int numTris, unsigned char* triAreaIDs);
+
896 
+
915 bool rcAddSpan(rcContext* context, rcHeightfield& heightfield,
+
916  int x, int z,
+
917  unsigned short spanMin, unsigned short spanMax,
+
918  unsigned char areaID, int flagMergeThreshold);
+
919 
+
937 bool rcRasterizeTriangle(rcContext* context,
+
938  const float* v0, const float* v1, const float* v2,
+
939  unsigned char areaID, rcHeightfield& heightfield, int flagMergeThreshold = 1);
+
940 
+
957 bool rcRasterizeTriangles(rcContext* context,
+
958  const float* verts, int numVerts,
+
959  const int* tris, const unsigned char* triAreaIDs, int numTris,
+
960  rcHeightfield& heightfield, int flagMergeThreshold = 1);
+
961 
+
978 bool rcRasterizeTriangles(rcContext* context,
+
979  const float* verts, int numVerts,
+
980  const unsigned short* tris, const unsigned char* triAreaIDs, int numTris,
+
981  rcHeightfield& heightfield, int flagMergeThreshold = 1);
+
982 
+
999 bool rcRasterizeTriangles(rcContext* context,
+
1000  const float* verts, const unsigned char* triAreaIDs, int numTris,
+
1001  rcHeightfield& heightfield, int flagMergeThreshold = 1);
+
1002 
1018 void rcFilterLowHangingWalkableObstacles(rcContext* context, int walkableClimb, rcHeightfield& heightfield);
1019 
1038 void rcFilterLedgeSpans(rcContext* context, int walkableHeight, int walkableClimb, rcHeightfield& heightfield);
1039 
-
1052 void rcFilterWalkableLowHeightSpans(rcContext* context, int walkableHeight, rcHeightfield& heightfield);
-
1053 
-
1059 int rcGetHeightFieldSpanCount(rcContext* context, const rcHeightfield& heightfield);
-
1060 
-
1065 
-
1085 bool rcBuildCompactHeightfield(rcContext* context, int walkableHeight, int walkableClimb,
-
1086  const rcHeightfield& heightfield, rcCompactHeightfield& compactHeightfield);
-
1087 
-
1102 bool rcErodeWalkableArea(rcContext* context, int erosionRadius, rcCompactHeightfield& compactHeightfield);
-
1103 
-
1115 bool rcMedianFilterWalkableArea(rcContext* context, rcCompactHeightfield& compactHeightfield);
-
1116 
-
1127 void rcMarkBoxArea(rcContext* context, const float* boxMinBounds, const float* boxMaxBounds, unsigned char areaId,
-
1128  rcCompactHeightfield& compactHeightfield);
-
1129 
-
1147 void rcMarkConvexPolyArea(rcContext* context, const float* verts, int numVerts,
-
1148  float minY, float maxY, unsigned char areaId,
-
1149  rcCompactHeightfield& compactHeightfield);
-
1150 
-
1164 int rcOffsetPoly(const float* verts, int numVerts, float offset, float* outVerts, int maxOutVerts);
-
1165 
-
1178 void rcMarkCylinderArea(rcContext* context, const float* position, float radius, float height,
-
1179  unsigned char areaId, rcCompactHeightfield& compactHeightfield);
-
1180 
-
1186 bool rcBuildDistanceField(rcContext* ctx, rcCompactHeightfield& chf);
-
1187 
-
1199 bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf, int borderSize, int minRegionArea, int mergeRegionArea);
-
1200 
-
1210 bool rcBuildLayerRegions(rcContext* ctx, rcCompactHeightfield& chf, int borderSize, int minRegionArea);
-
1211 
-
1223 bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
-
1224  int borderSize, int minRegionArea, int mergeRegionArea);
-
1225 
-
1230 inline void rcSetCon(rcCompactSpan& span, int direction, int neighborIndex)
-
1231 {
-
1232  const unsigned int shift = (unsigned int)direction * 6;
-
1233  const unsigned int con = span.con;
-
1234  span.con = (con & ~(0x3f << shift)) | (((unsigned int)neighborIndex & 0x3f) << shift);
-
1235 }
-
1236 
-
1241 inline int rcGetCon(const rcCompactSpan& span, int direction)
-
1242 {
-
1243  const unsigned int shift = (unsigned int)direction * 6;
-
1244  return (span.con >> shift) & 0x3f;
-
1245 }
-
1246 
-
1250 inline int rcGetDirOffsetX(int direction)
-
1251 {
-
1252  static const int offset[4] = { -1, 0, 1, 0, };
-
1253  return offset[direction & 0x03];
-
1254 }
-
1255 
-
1256 // TODO (graham): Rename this to rcGetDirOffsetZ
-
1260 inline int rcGetDirOffsetY(int direction)
-
1261 {
-
1262  static const int offset[4] = { 0, 1, 0, -1 };
-
1263  return offset[direction & 0x03];
-
1264 }
-
1265 
-
1270 inline int rcGetDirForOffset(int offsetX, int offsetZ)
-
1271 {
-
1272  static const int dirs[5] = { 3, 0, -1, 2, 1 };
-
1273  return dirs[((offsetZ + 1) << 1) + offsetX];
-
1274 }
-
1275 
-
1280 
-
1291 bool rcBuildHeightfieldLayers(rcContext* ctx, const rcCompactHeightfield& chf,
-
1292  int borderSize, int walkableHeight,
-
1293  rcHeightfieldLayerSet& lset);
-
1294 
-
1306 bool rcBuildContours(rcContext* ctx, const rcCompactHeightfield& chf,
-
1307  float maxError, int maxEdgeLen,
-
1308  rcContourSet& cset, int buildFlags = RC_CONTOUR_TESS_WALL_EDGES);
-
1309 
-
1318 bool rcBuildPolyMesh(rcContext* ctx, const rcContourSet& cset, const int nvp, rcPolyMesh& mesh);
-
1319 
-
1327 bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh);
-
1328 
-
1339 bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompactHeightfield& chf,
-
1340  float sampleDist, float sampleMaxError,
-
1341  rcPolyMeshDetail& dmesh);
-
1342 
-
1349 bool rcCopyPolyMesh(rcContext* ctx, const rcPolyMesh& src, rcPolyMesh& dst);
-
1350 
-
1358 bool rcMergePolyMeshDetails(rcContext* ctx, rcPolyMeshDetail** meshes, const int nmeshes, rcPolyMeshDetail& mesh);
-
1359 
+
1054 void rcFilterWalkableLowHeightSpans(rcContext* context, int walkableHeight, rcHeightfield& heightfield);
+
1055 
+
1061 int rcGetHeightFieldSpanCount(rcContext* context, const rcHeightfield& heightfield);
+
1062 
+
1067 
+
1087 bool rcBuildCompactHeightfield(rcContext* context, int walkableHeight, int walkableClimb,
+
1088  const rcHeightfield& heightfield, rcCompactHeightfield& compactHeightfield);
+
1089 
+
1104 bool rcErodeWalkableArea(rcContext* context, int erosionRadius, rcCompactHeightfield& compactHeightfield);
+
1105 
+
1117 bool rcMedianFilterWalkableArea(rcContext* context, rcCompactHeightfield& compactHeightfield);
+
1118 
+
1129 void rcMarkBoxArea(rcContext* context, const float* boxMinBounds, const float* boxMaxBounds, unsigned char areaId,
+
1130  rcCompactHeightfield& compactHeightfield);
+
1131 
+
1149 void rcMarkConvexPolyArea(rcContext* context, const float* verts, int numVerts,
+
1150  float minY, float maxY, unsigned char areaId,
+
1151  rcCompactHeightfield& compactHeightfield);
+
1152 
+
1166 int rcOffsetPoly(const float* verts, int numVerts, float offset, float* outVerts, int maxOutVerts);
+
1167 
+
1180 void rcMarkCylinderArea(rcContext* context, const float* position, float radius, float height,
+
1181  unsigned char areaId, rcCompactHeightfield& compactHeightfield);
+
1182 
+
1188 bool rcBuildDistanceField(rcContext* ctx, rcCompactHeightfield& chf);
+
1189 
+
1201 bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf, int borderSize, int minRegionArea, int mergeRegionArea);
+
1202 
+
1212 bool rcBuildLayerRegions(rcContext* ctx, rcCompactHeightfield& chf, int borderSize, int minRegionArea);
+
1213 
+
1225 bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
+
1226  int borderSize, int minRegionArea, int mergeRegionArea);
+
1227 
+
1232 inline void rcSetCon(rcCompactSpan& span, int direction, int neighborIndex)
+
1233 {
+
1234  const unsigned int shift = (unsigned int)direction * 6;
+
1235  const unsigned int con = span.con;
+
1236  span.con = (con & ~(0x3f << shift)) | (((unsigned int)neighborIndex & 0x3f) << shift);
+
1237 }
+
1238 
+
1243 inline int rcGetCon(const rcCompactSpan& span, int direction)
+
1244 {
+
1245  const unsigned int shift = (unsigned int)direction * 6;
+
1246  return (span.con >> shift) & 0x3f;
+
1247 }
+
1248 
+
1252 inline int rcGetDirOffsetX(int direction)
+
1253 {
+
1254  static const int offset[4] = { -1, 0, 1, 0, };
+
1255  return offset[direction & 0x03];
+
1256 }
+
1257 
+
1258 // TODO (graham): Rename this to rcGetDirOffsetZ
+
1262 inline int rcGetDirOffsetY(int direction)
+
1263 {
+
1264  static const int offset[4] = { 0, 1, 0, -1 };
+
1265  return offset[direction & 0x03];
+
1266 }
+
1267 
+
1272 inline int rcGetDirForOffset(int offsetX, int offsetZ)
+
1273 {
+
1274  static const int dirs[5] = { 3, 0, -1, 2, 1 };
+
1275  return dirs[((offsetZ + 1) << 1) + offsetX];
+
1276 }
+
1277 
+
1282 
+
1293 bool rcBuildHeightfieldLayers(rcContext* ctx, const rcCompactHeightfield& chf,
+
1294  int borderSize, int walkableHeight,
+
1295  rcHeightfieldLayerSet& lset);
+
1296 
+
1308 bool rcBuildContours(rcContext* ctx, const rcCompactHeightfield& chf,
+
1309  float maxError, int maxEdgeLen,
+
1310  rcContourSet& cset, int buildFlags = RC_CONTOUR_TESS_WALL_EDGES);
+
1311 
+
1320 bool rcBuildPolyMesh(rcContext* ctx, const rcContourSet& cset, const int nvp, rcPolyMesh& mesh);
+
1321 
+
1329 bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh);
+
1330 
+
1341 bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompactHeightfield& chf,
+
1342  float sampleDist, float sampleMaxError,
+
1343  rcPolyMeshDetail& dmesh);
+
1344 
+
1351 bool rcCopyPolyMesh(rcContext* ctx, const rcPolyMesh& src, rcPolyMesh& dst);
+
1352 
+
1360 bool rcMergePolyMeshDetails(rcContext* ctx, rcPolyMeshDetail** meshes, const int nmeshes, rcPolyMeshDetail& mesh);
1361 
-
1362 #endif // RECAST_H
1363 
+
1364 #endif // RECAST_H
1365 
-
1366 // Due to the large amount of detail documentation for this file,
-
1367 // the content normally located at the end of the header file has been separated
-
1368 // out to a file in /Docs/Extern.
-
rcVdot
float rcVdot(const float *v1, const float *v2)
Derives the dot product of two vectors.
Definition: Recast.h:708
+
1367 
+
1368 // Due to the large amount of detail documentation for this file,
+
1369 // the content normally located at the end of the header file has been separated
+
1370 // out to a file in /Docs/Extern.
+
rcVdot
float rcVdot(const float *v1, const float *v2)
Derives the dot product of two vectors.
Definition: Recast.h:710
rcTimerLabel
rcTimerLabel
Recast performance timer categories.
Definition: Recast.h:40
RC_TIMER_BUILD_REGIONS_FILTER
@ RC_TIMER_BUILD_REGIONS_FILTER
The time to filter out small regions. (See: rcBuildRegions, rcBuildRegionsMonotone)
Definition: Recast.h:90
RC_TIMER_BUILD_POLYMESHDETAIL
@ RC_TIMER_BUILD_POLYMESHDETAIL
The time to build the polygon mesh detail. (See: rcBuildPolyMeshDetail)
Definition: Recast.h:94
@@ -754,44 +756,44 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
RC_TIMER_BUILD_REGIONS
@ RC_TIMER_BUILD_REGIONS
The total time to build the regions. (See: rcBuildRegions, rcBuildRegionsMonotone)
Definition: Recast.h:82
RC_TIMER_FILTER_LOW_OBSTACLES
@ RC_TIMER_FILTER_LOW_OBSTACLES
The time to filter low obstacles. (See: rcFilterLowHangingWalkableObstacles)
Definition: Recast.h:62
RC_TIMER_MEDIAN_AREA
@ RC_TIMER_MEDIAN_AREA
The time to apply the median filter. (See: rcMedianFilterWalkableArea)
Definition: Recast.h:60
-
rcVdist
float rcVdist(const float *v1, const float *v2)
Returns the distance between two points.
Definition: Recast.h:781
-
rcVmad
void rcVmad(float *dest, const float *v1, const float *v2, const float s)
Performs a scaled vector addition.
Definition: Recast.h:718
+
rcVdist
float rcVdist(const float *v1, const float *v2)
Returns the distance between two points.
Definition: Recast.h:783
+
rcVmad
void rcVmad(float *dest, const float *v1, const float *v2, const float s)
Performs a scaled vector addition.
Definition: Recast.h:720
rcSqrt
float rcSqrt(float x)
Returns the square root of the value.
Definition: Recast.cpp:53
RC_SPAN_MAX_HEIGHT
static const int RC_SPAN_MAX_HEIGHT
Defines the maximum value for rcSpan::smin and rcSpan::smax.
Definition: Recast.h:286
-
rcSwap
void rcSwap(T &a, T &b)
Swaps the values of the two parameters.
Definition: Recast.h:650
-
rcVcross
void rcVcross(float *dest, const float *v1, const float *v2)
Derives the cross product of two vectors.
Definition: Recast.h:697
-
rcVmax
void rcVmax(float *mx, const float *v)
Selects the maximum value of each element from the specified vectors.
Definition: Recast.h:760
-
RC_NULL_AREA
static const unsigned char RC_NULL_AREA
Represents the null area.
Definition: Recast.h:633
+
rcSwap
void rcSwap(T &a, T &b)
Swaps the values of the two parameters.
Definition: Recast.h:652
+
rcVcross
void rcVcross(float *dest, const float *v1, const float *v2)
Derives the cross product of two vectors.
Definition: Recast.h:699
+
rcVmax
void rcVmax(float *mx, const float *v)
Selects the maximum value of each element from the specified vectors.
Definition: Recast.h:762
+
RC_NULL_AREA
static const unsigned char RC_NULL_AREA
Represents the null area.
Definition: Recast.h:635
RC_SPANS_PER_POOL
static const int RC_SPANS_PER_POOL
The number of spans allocated per span spool.
Definition: Recast.h:290
-
RC_AREA_BORDER
static const int RC_AREA_BORDER
Area border flag.
Definition: Recast.h:609
-
RC_WALKABLE_AREA
static const unsigned char RC_WALKABLE_AREA
The default area id used to indicate a walkable polygon.
Definition: Recast.h:638
+
RC_AREA_BORDER
static const int RC_AREA_BORDER
Area border flag.
Definition: Recast.h:611
+
RC_WALKABLE_AREA
static const unsigned char RC_WALKABLE_AREA
The default area id used to indicate a walkable polygon.
Definition: Recast.h:640
rcIgnoreUnused
void rcIgnoreUnused(const T &)
Used to ignore unused function parameters and silence any compiler warnings.
Definition: Recast.h:26
-
rcVsub
void rcVsub(float *dest, const float *v1, const float *v2)
Performs a vector subtraction.
Definition: Recast.h:740
-
rcBuildContoursFlags
rcBuildContoursFlags
Contour build flags.
Definition: Recast.h:614
-
RC_CONTOUR_TESS_WALL_EDGES
@ RC_CONTOUR_TESS_WALL_EDGES
Tessellate solid (impassable) edges during contour simplification.
Definition: Recast.h:615
-
RC_CONTOUR_TESS_AREA_EDGES
@ RC_CONTOUR_TESS_AREA_EDGES
Tessellate edges between areas during contour simplification.
Definition: Recast.h:616
-
RC_NOT_CONNECTED
static const int RC_NOT_CONNECTED
The value returned by rcGetCon if the specified direction is not connected to another span.
Definition: Recast.h:642
-
RC_MESH_NULL_IDX
static const unsigned short RC_MESH_NULL_IDX
An value which indicates an invalid index within a mesh.
Definition: Recast.h:628
+
rcVsub
void rcVsub(float *dest, const float *v1, const float *v2)
Performs a vector subtraction.
Definition: Recast.h:742
+
rcBuildContoursFlags
rcBuildContoursFlags
Contour build flags.
Definition: Recast.h:616
+
RC_CONTOUR_TESS_WALL_EDGES
@ RC_CONTOUR_TESS_WALL_EDGES
Tessellate solid (impassable) edges during contour simplification.
Definition: Recast.h:617
+
RC_CONTOUR_TESS_AREA_EDGES
@ RC_CONTOUR_TESS_AREA_EDGES
Tessellate edges between areas during contour simplification.
Definition: Recast.h:618
+
RC_NOT_CONNECTED
static const int RC_NOT_CONNECTED
The value returned by rcGetCon if the specified direction is not connected to another span.
Definition: Recast.h:644
+
RC_MESH_NULL_IDX
static const unsigned short RC_MESH_NULL_IDX
An value which indicates an invalid index within a mesh.
Definition: Recast.h:630
RC_SPAN_HEIGHT_BITS
static const int RC_SPAN_HEIGHT_BITS
Defines the number of bits allocated to rcSpan::smin and rcSpan::smax.
Definition: Recast.h:284
rcLogCategory
rcLogCategory
Recast log categories.
Definition: Recast.h:31
RC_LOG_WARNING
@ RC_LOG_WARNING
A warning log entry.
Definition: Recast.h:33
RC_LOG_PROGRESS
@ RC_LOG_PROGRESS
A progress log entry.
Definition: Recast.h:32
RC_LOG_ERROR
@ RC_LOG_ERROR
An error log entry.
Definition: Recast.h:34
-
RC_CONTOUR_REG_MASK
static const int RC_CONTOUR_REG_MASK
Applied to the region id field of contour vertices in order to extract the region id.
Definition: Recast.h:623
-
RC_BORDER_VERTEX
static const int RC_BORDER_VERTEX
Border vertex flag.
Definition: Recast.h:602
-
rcSqr
T rcSqr(T a)
Returns the square of the value.
Definition: Recast.h:672
-
rcVcopy
void rcVcopy(float *dest, const float *v)
Performs a vector copy.
Definition: Recast.h:770
-
rcVdistSqr
float rcVdistSqr(const float *v1, const float *v2)
Returns the square of the distance between two points.
Definition: Recast.h:793
-
rcMin
T rcMin(T a, T b)
Returns the minimum of two values.
Definition: Recast.h:656
-
rcVmin
void rcVmin(float *mn, const float *v)
Selects the minimum value of each element from the specified vectors.
Definition: Recast.h:750
-
RC_MULTIPLE_REGS
static const unsigned short RC_MULTIPLE_REGS
Polygon touches multiple regions.
Definition: Recast.h:593
-
rcVadd
void rcVadd(float *dest, const float *v1, const float *v2)
Performs a vector addition.
Definition: Recast.h:729
-
RC_BORDER_REG
static const unsigned short RC_BORDER_REG
Heightfield border flag.
Definition: Recast.h:585
+
RC_CONTOUR_REG_MASK
static const int RC_CONTOUR_REG_MASK
Applied to the region id field of contour vertices in order to extract the region id.
Definition: Recast.h:625
+
RC_BORDER_VERTEX
static const int RC_BORDER_VERTEX
Border vertex flag.
Definition: Recast.h:604
+
rcSqr
T rcSqr(T a)
Returns the square of the value.
Definition: Recast.h:674
+
rcVcopy
void rcVcopy(float *dest, const float *v)
Performs a vector copy.
Definition: Recast.h:772
+
rcVdistSqr
float rcVdistSqr(const float *v1, const float *v2)
Returns the square of the distance between two points.
Definition: Recast.h:795
+
rcMin
T rcMin(T a, T b)
Returns the minimum of two values.
Definition: Recast.h:658
+
rcVmin
void rcVmin(float *mn, const float *v)
Selects the minimum value of each element from the specified vectors.
Definition: Recast.h:752
+
RC_MULTIPLE_REGS
static const unsigned short RC_MULTIPLE_REGS
Polygon touches multiple regions.
Definition: Recast.h:595
+
rcVadd
void rcVadd(float *dest, const float *v1, const float *v2)
Performs a vector addition.
Definition: Recast.h:731
+
RC_BORDER_REG
static const unsigned short RC_BORDER_REG
Heightfield border flag.
Definition: Recast.h:587
RC_PI
static const float RC_PI
The value of PI used by Recast.
Definition: Recast.h:23
-
rcMax
T rcMax(T a, T b)
Returns the maximum of two values.
Definition: Recast.h:662
-
rcVnormalize
void rcVnormalize(float *v)
Normalizes the vector.
Definition: Recast.h:803
-
rcClamp
T rcClamp(T value, T minInclusive, T maxInclusive)
Clamps the value to the specified range.
Definition: Recast.h:679
-
rcAbs
T rcAbs(T a)
Returns the absolute value.
Definition: Recast.h:667
+
rcMax
T rcMax(T a, T b)
Returns the maximum of two values.
Definition: Recast.h:664
+
rcVnormalize
void rcVnormalize(float *v)
Normalizes the vector.
Definition: Recast.h:805
+
rcClamp
T rcClamp(T value, T minInclusive, T maxInclusive)
Clamps the value to the specified range.
Definition: Recast.h:681
+
rcAbs
T rcAbs(T a)
Returns the absolute value.
Definition: Recast.h:669
rcContext
Provides an interface for optional logging and performance tracking of the Recast build process.
Definition: Recast.h:115
rcContext::~rcContext
virtual ~rcContext()
Definition: Recast.h:120
rcContext::enableLog
void enableLog(bool state)
Enables or disables logging.
Definition: Recast.h:124
@@ -814,8 +816,8 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
rcScopedTimer
A helper to first start a timer and then stop it when this helper goes out of scope.
Definition: Recast.h:197
rcScopedTimer::~rcScopedTimer
~rcScopedTimer()
Definition: Recast.h:203
rcScopedTimer::rcScopedTimer
rcScopedTimer(rcContext *ctx, const rcTimerLabel label)
Constructs an instance and starts the timer.
Definition: Recast.h:202
-
rcFilterLowHangingWalkableObstacles
void rcFilterLowHangingWalkableObstacles(rcContext *context, int walkableClimb, rcHeightfield &heightfield)
Marks non-walkable spans as walkable if their maximum is within walkableClimb of a walkable neighbor.
Definition: RecastFilter.cpp:24
-
rcFilterWalkableLowHeightSpans
void rcFilterWalkableLowHeightSpans(rcContext *context, int walkableHeight, rcHeightfield &heightfield)
Marks walkable spans as not walkable if the clearance above the span is less than the specified heigh...
Definition: RecastFilter.cpp:162
+
rcFilterLowHangingWalkableObstacles
void rcFilterLowHangingWalkableObstacles(rcContext *context, int walkableClimb, rcHeightfield &heightfield)
Marks non-walkable spans as walkable if their maximum is within walkableClimb of the span below them.
Definition: RecastFilter.cpp:29
+
rcFilterWalkableLowHeightSpans
void rcFilterWalkableLowHeightSpans(rcContext *context, int walkableHeight, rcHeightfield &heightfield)
Marks walkable spans as not walkable if the clearance above the span is less than the specified walka...
Definition: RecastFilter.cpp:162
rcMarkConvexPolyArea
void rcMarkConvexPolyArea(rcContext *context, const float *verts, int numVerts, float minY, float maxY, unsigned char areaId, rcCompactHeightfield &compactHeightfield)
Applies the area id to the all spans within the specified convex polygon.
Definition: RecastArea.cpp:432
rcAllocPolyMesh
rcPolyMesh * rcAllocPolyMesh()
Allocates a polygon mesh object using the Recast allocator.
Definition: Recast.cpp:222
rcRasterizeTriangle
bool rcRasterizeTriangle(rcContext *context, const float *v0, const float *v1, const float *v2, unsigned char areaID, rcHeightfield &heightfield, int flagMergeThreshold=1)
Rasterizes a single triangle into the specified heightfield.
Definition: RecastRasterization.cpp:457
@@ -836,13 +838,13 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
rcFreeHeightfieldLayerSet
void rcFreeHeightfieldLayerSet(rcHeightfieldLayerSet *layerSet)
Frees the specified heightfield layer set using the Recast allocator.
Definition: Recast.cpp:165
rcBuildHeightfieldLayers
bool rcBuildHeightfieldLayers(rcContext *ctx, const rcCompactHeightfield &chf, int borderSize, int walkableHeight, rcHeightfieldLayerSet &lset)
Builds a layer set from the specified compact heightfield.
Definition: RecastLayers.cpp:104
rcMergePolyMeshDetails
bool rcMergePolyMeshDetails(rcContext *ctx, rcPolyMeshDetail **meshes, const int nmeshes, rcPolyMeshDetail &mesh)
Merges multiple detail meshes into a single detail mesh.
Definition: RecastMeshDetail.cpp:1401
-
rcGetDirOffsetY
int rcGetDirOffsetY(int direction)
Gets the standard height (z-axis) offset for the specified direction.
Definition: Recast.h:1260
-
rcGetDirOffsetX
int rcGetDirOffsetX(int direction)
Gets the standard width (x-axis) offset for the specified direction.
Definition: Recast.h:1250
+
rcGetDirOffsetY
int rcGetDirOffsetY(int direction)
Gets the standard height (z-axis) offset for the specified direction.
Definition: Recast.h:1262
+
rcGetDirOffsetX
int rcGetDirOffsetX(int direction)
Gets the standard width (x-axis) offset for the specified direction.
Definition: Recast.h:1252
rcMedianFilterWalkableArea
bool rcMedianFilterWalkableArea(rcContext *context, rcCompactHeightfield &compactHeightfield)
Applies a median filter to walkable area types (based on area id), removing noise.
Definition: RecastArea.cpp:289
rcBuildPolyMesh
bool rcBuildPolyMesh(rcContext *ctx, const rcContourSet &cset, const int nvp, rcPolyMesh &mesh)
Builds a polygon mesh from the provided contours.
Definition: RecastMesh.cpp:990
rcAddSpan
bool rcAddSpan(rcContext *context, rcHeightfield &heightfield, int x, int z, unsigned short spanMin, unsigned short spanMax, unsigned char areaID, int flagMergeThreshold)
Adds a span to the specified heightfield.
Definition: RecastRasterization.cpp:191
rcCalcGridSize
void rcCalcGridSize(const float *minBounds, const float *maxBounds, float cellSize, int *sizeX, int *sizeZ)
Calculates the grid size based on the bounding box and grid cell size.
Definition: Recast.cpp:300
-
rcSetCon
void rcSetCon(rcCompactSpan &span, int direction, int neighborIndex)
Sets the neighbor connection data for the specified direction.
Definition: Recast.h:1230
+
rcSetCon
void rcSetCon(rcCompactSpan &span, int direction, int neighborIndex)
Sets the neighbor connection data for the specified direction.
Definition: Recast.h:1232
rcCalcBounds
void rcCalcBounds(const float *verts, int numVerts, float *minBounds, float *maxBounds)
Calculates the bounding box of an array of vertices.
Definition: Recast.cpp:287
rcFreeCompactHeightfield
void rcFreeCompactHeightfield(rcCompactHeightfield *compactHeightfield)
Frees the specified compact heightfield object using the Recast allocator.
Definition: Recast.cpp:127
rcMergePolyMeshes
bool rcMergePolyMeshes(rcContext *ctx, rcPolyMesh **meshes, const int nmeshes, rcPolyMesh &mesh)
Merges multiple polygon meshes into a single mesh.
Definition: RecastMesh.cpp:1309
@@ -850,44 +852,44 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
rcGetHeightFieldSpanCount
int rcGetHeightFieldSpanCount(rcContext *context, const rcHeightfield &heightfield)
Returns the number of spans contained in the specified heightfield.
Definition: Recast.cpp:384
rcBuildRegionsMonotone
bool rcBuildRegionsMonotone(rcContext *ctx, rcCompactHeightfield &chf, int borderSize, int minRegionArea, int mergeRegionArea)
Builds region data for the heightfield using simple monotone partitioning.
Definition: RecastRegion.cpp:1357
rcClearUnwalkableTriangles
void rcClearUnwalkableTriangles(rcContext *context, 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_NUL...
Definition: Recast.cpp:360
-
rcGetCon
int rcGetCon(const rcCompactSpan &span, int direction)
Gets neighbor connection data for the specified direction.
Definition: Recast.h:1241
-
rcFilterLedgeSpans
void rcFilterLedgeSpans(rcContext *context, int walkableHeight, int walkableClimb, rcHeightfield &heightfield)
Marks spans that are ledges as not-walkable.
Definition: RecastFilter.cpp:62
+
rcGetCon
int rcGetCon(const rcCompactSpan &span, int direction)
Gets neighbor connection data for the specified direction.
Definition: Recast.h:1243
+
rcFilterLedgeSpans
void rcFilterLedgeSpans(rcContext *context, int walkableHeight, int walkableClimb, rcHeightfield &heightfield)
Marks spans that are ledges as not-walkable.
Definition: RecastFilter.cpp:67
rcRasterizeTriangles
bool rcRasterizeTriangles(rcContext *context, const float *verts, int numVerts, const int *tris, const unsigned char *triAreaIDs, int numTris, rcHeightfield &heightfield, int flagMergeThreshold=1)
Rasterizes an indexed triangle mesh into the specified heightfield.
Definition: RecastRasterization.cpp:477
rcAllocHeightfieldLayerSet
rcHeightfieldLayerSet * rcAllocHeightfieldLayerSet()
Allocates a heightfield layer set using the Recast allocator.
Definition: Recast.cpp:160
rcCopyPolyMesh
bool rcCopyPolyMesh(rcContext *ctx, const rcPolyMesh &src, rcPolyMesh &dst)
Copies the poly mesh data from src to dst.
Definition: RecastMesh.cpp:1487
rcBuildContours
bool rcBuildContours(rcContext *ctx, const rcCompactHeightfield &chf, float maxError, int maxEdgeLen, rcContourSet &cset, int buildFlags=RC_CONTOUR_TESS_WALL_EDGES)
Builds a contour set from the region outlines in the provided compact heightfield.
Definition: RecastContour.cpp:823
rcFreeContourSet
void rcFreeContourSet(rcContourSet *contourSet)
Frees the specified contour set using the Recast allocator.
Definition: Recast.cpp:193
rcErodeWalkableArea
bool rcErodeWalkableArea(rcContext *context, int erosionRadius, rcCompactHeightfield &compactHeightfield)
Erodes the walkable area within the heightfield by the specified radius.
Definition: RecastArea.cpp:75
-
rcGetDirForOffset
int rcGetDirForOffset(int offsetX, int offsetZ)
Gets the direction for the specified offset.
Definition: Recast.h:1270
+
rcGetDirForOffset
int rcGetDirForOffset(int offsetX, int offsetZ)
Gets the direction for the specified offset.
Definition: Recast.h:1272
rcBuildRegions
bool rcBuildRegions(rcContext *ctx, rcCompactHeightfield &chf, int borderSize, int minRegionArea, int mergeRegionArea)
Builds region data for the heightfield using watershed partitioning.
Definition: RecastRegion.cpp:1530
rcOffsetPoly
int rcOffsetPoly(const float *verts, int numVerts, float offset, float *outVerts, int maxOutVerts)
Expands a convex polygon along its vertex normals by the given offset amount.
Definition: RecastArea.cpp:532
-
rcCompactCell
Provides information on the content of a cell column in a compact heightfield.
Definition: Recast.h:335
-
rcCompactCell::count
unsigned int count
Number of spans in the column.
Definition: Recast.h:337
-
rcCompactCell::index
unsigned int index
Index to the first span in the column.
Definition: Recast.h:336
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
-
rcCompactHeightfield::walkableHeight
int walkableHeight
The walkable height used during the build of the field. (See: rcConfig::walkableHeight)
Definition: Recast.h:359
-
rcCompactHeightfield::spans
rcCompactSpan * spans
Array of spans. [Size: spanCount].
Definition: Recast.h:369
-
rcCompactHeightfield::height
int height
The height of the heightfield. (Along the z-axis in cell units.)
Definition: Recast.h:357
+
rcCompactCell
Provides information on the content of a cell column in a compact heightfield.
Definition: Recast.h:337
+
rcCompactCell::count
unsigned int count
Number of spans in the column.
Definition: Recast.h:339
+
rcCompactCell::index
unsigned int index
Index to the first span in the column.
Definition: Recast.h:338
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
+
rcCompactHeightfield::walkableHeight
int walkableHeight
The walkable height used during the build of the field. (See: rcConfig::walkableHeight)
Definition: Recast.h:361
+
rcCompactHeightfield::spans
rcCompactSpan * spans
Array of spans. [Size: spanCount].
Definition: Recast.h:371
+
rcCompactHeightfield::height
int height
The height of the heightfield. (Along the z-axis in cell units.)
Definition: Recast.h:359
rcCompactHeightfield::rcCompactHeightfield
rcCompactHeightfield()
Definition: Recast.cpp:132
-
rcCompactHeightfield::maxDistance
unsigned short maxDistance
The maximum distance value of any span within the field.
Definition: Recast.h:362
-
rcCompactHeightfield::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:367
-
rcCompactHeightfield::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:365
-
rcCompactHeightfield::borderSize
int borderSize
The AABB border size used during the build of the field. (See: rcConfig::borderSize)
Definition: Recast.h:361
-
rcCompactHeightfield::maxRegions
unsigned short maxRegions
The maximum region id of any span within the field.
Definition: Recast.h:363
-
rcCompactHeightfield::spanCount
int spanCount
The number of spans in the heightfield.
Definition: Recast.h:358
-
rcCompactHeightfield::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:366
-
rcCompactHeightfield::width
int width
The width of the heightfield. (Along the x-axis in cell units.)
Definition: Recast.h:356
-
rcCompactHeightfield::cells
rcCompactCell * cells
Array of cells. [Size: width*height].
Definition: Recast.h:368
-
rcCompactHeightfield::areas
unsigned char * areas
Array containing area id data. [Size: spanCount].
Definition: Recast.h:371
-
rcCompactHeightfield::walkableClimb
int walkableClimb
The walkable climb used during the build of the field. (See: rcConfig::walkableClimb)
Definition: Recast.h:360
-
rcCompactHeightfield::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:364
+
rcCompactHeightfield::maxDistance
unsigned short maxDistance
The maximum distance value of any span within the field.
Definition: Recast.h:364
+
rcCompactHeightfield::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:369
+
rcCompactHeightfield::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:367
+
rcCompactHeightfield::borderSize
int borderSize
The AABB border size used during the build of the field. (See: rcConfig::borderSize)
Definition: Recast.h:363
+
rcCompactHeightfield::maxRegions
unsigned short maxRegions
The maximum region id of any span within the field.
Definition: Recast.h:365
+
rcCompactHeightfield::spanCount
int spanCount
The number of spans in the heightfield.
Definition: Recast.h:360
+
rcCompactHeightfield::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:368
+
rcCompactHeightfield::width
int width
The width of the heightfield. (Along the x-axis in cell units.)
Definition: Recast.h:358
+
rcCompactHeightfield::cells
rcCompactCell * cells
Array of cells. [Size: width*height].
Definition: Recast.h:370
+
rcCompactHeightfield::areas
unsigned char * areas
Array containing area id data. [Size: spanCount].
Definition: Recast.h:373
+
rcCompactHeightfield::walkableClimb
int walkableClimb
The walkable climb used during the build of the field. (See: rcConfig::walkableClimb)
Definition: Recast.h:362
+
rcCompactHeightfield::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:366
rcCompactHeightfield::~rcCompactHeightfield
~rcCompactHeightfield()
Definition: Recast.cpp:152
-
rcCompactHeightfield::dist
unsigned short * dist
Array containing border distance data. [Size: spanCount].
Definition: Recast.h:370
-
rcCompactSpan
Represents a span of unobstructed space within a compact heightfield.
Definition: Recast.h:342
-
rcCompactSpan::y
unsigned short y
The lower extent of the span. (Measured from the heightfield's base.)
Definition: Recast.h:343
-
rcCompactSpan::h
unsigned int h
The height of the span. (Measured from y.)
Definition: Recast.h:346
-
rcCompactSpan::con
unsigned int con
Packed neighbor connection data.
Definition: Recast.h:345
-
rcCompactSpan::reg
unsigned short reg
The id of the region the span belongs to. (Or zero if not in a region.)
Definition: Recast.h:344
+
rcCompactHeightfield::dist
unsigned short * dist
Array containing border distance data. [Size: spanCount].
Definition: Recast.h:372
+
rcCompactSpan
Represents a span of unobstructed space within a compact heightfield.
Definition: Recast.h:344
+
rcCompactSpan::y
unsigned short y
The lower extent of the span. (Measured from the heightfield's base.)
Definition: Recast.h:345
+
rcCompactSpan::h
unsigned int h
The height of the span. (Measured from y.)
Definition: Recast.h:348
+
rcCompactSpan::con
unsigned int con
Packed neighbor connection data.
Definition: Recast.h:347
+
rcCompactSpan::reg
unsigned short reg
The id of the region the span belongs to. (Or zero if not in a region.)
Definition: Recast.h:346
rcConfig
Specifies a configuration to use when performing Recast builds.
Definition: Recast.h:217
rcConfig::maxVertsPerPoly
int maxVertsPerPoly
The maximum number of vertices allowed for polygons generated during the contour to polygon conversio...
Definition: Recast.h:272
rcConfig::maxEdgeLen
int maxEdgeLen
The maximum allowed length for contour edges along the border of the mesh. [Limit: >=0] [Units: vx].
Definition: Recast.h:257
@@ -908,85 +910,85 @@ $(document).ready(function(){initNavTree('Recast_8h_source.html',''); initResiza
rcConfig::cs
float cs
The xz-plane cell size to use for fields. [Limit: > 0] [Units: wu].
Definition: Recast.h:231
rcConfig::minRegionArea
int minRegionArea
The minimum number of cells allowed to form isolated island areas. [Limit: >=0] [Units: vx].
Definition: Recast.h:264
rcConfig::bmin
float bmin[3]
The minimum bounds of the field's AABB. [(x, y, z)] [Units: wu].
Definition: Recast.h:237
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
rcContourSet::rcContourSet
rcContourSet()
Definition: Recast.cpp:198
-
rcContourSet::height
int height
The height of the set. (Along the z-axis in cell units.)
Definition: Recast.h:442
-
rcContourSet::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:439
-
rcContourSet::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:437
-
rcContourSet::nconts
int nconts
The number of contours in the set.
Definition: Recast.h:436
+
rcContourSet::height
int height
The height of the set. (Along the z-axis in cell units.)
Definition: Recast.h:444
+
rcContourSet::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:441
+
rcContourSet::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:439
+
rcContourSet::nconts
int nconts
The number of contours in the set.
Definition: Recast.h:438
rcContourSet::~rcContourSet
~rcContourSet()
Definition: Recast.cpp:212
-
rcContourSet::conts
rcContour * conts
An array of the contours in the set. [Size: nconts].
Definition: Recast.h:435
-
rcContourSet::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:440
-
rcContourSet::borderSize
int borderSize
The AABB border size used to generate the source data from which the contours were derived.
Definition: Recast.h:443
-
rcContourSet::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:438
-
rcContourSet::width
int width
The width of the set. (Along the x-axis in cell units.)
Definition: Recast.h:441
-
rcContourSet::maxError
float maxError
The max edge error that this contour set was simplified with.
Definition: Recast.h:444
-
rcContour
Represents a simple, non-overlapping contour in field space.
Definition: Recast.h:419
-
rcContour::nrverts
int nrverts
The number of vertices in the raw contour.
Definition: Recast.h:423
-
rcContour::area
unsigned char area
The area id of the contour.
Definition: Recast.h:425
-
rcContour::rverts
int * rverts
Raw contour vertex and connection data. [Size: 4 * nrverts].
Definition: Recast.h:422
-
rcContour::verts
int * verts
Simplified contour vertex and connection data. [Size: 4 * nverts].
Definition: Recast.h:420
-
rcContour::reg
unsigned short reg
The region id of the contour.
Definition: Recast.h:424
-
rcContour::nverts
int nverts
The number of vertices in the simplified contour.
Definition: Recast.h:421
-
rcHeightfieldLayerSet
Represents a set of heightfield layers.
Definition: Recast.h:404
+
rcContourSet::conts
rcContour * conts
An array of the contours in the set. [Size: nconts].
Definition: Recast.h:437
+
rcContourSet::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:442
+
rcContourSet::borderSize
int borderSize
The AABB border size used to generate the source data from which the contours were derived.
Definition: Recast.h:445
+
rcContourSet::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:440
+
rcContourSet::width
int width
The width of the set. (Along the x-axis in cell units.)
Definition: Recast.h:443
+
rcContourSet::maxError
float maxError
The max edge error that this contour set was simplified with.
Definition: Recast.h:446
+
rcContour
Represents a simple, non-overlapping contour in field space.
Definition: Recast.h:421
+
rcContour::nrverts
int nrverts
The number of vertices in the raw contour.
Definition: Recast.h:425
+
rcContour::area
unsigned char area
The area id of the contour.
Definition: Recast.h:427
+
rcContour::rverts
int * rverts
Raw contour vertex and connection data. [Size: 4 * nrverts].
Definition: Recast.h:424
+
rcContour::verts
int * verts
Simplified contour vertex and connection data. [Size: 4 * nverts].
Definition: Recast.h:422
+
rcContour::reg
unsigned short reg
The region id of the contour.
Definition: Recast.h:426
+
rcContour::nverts
int nverts
The number of vertices in the simplified contour.
Definition: Recast.h:423
+
rcHeightfieldLayerSet
Represents a set of heightfield layers.
Definition: Recast.h:406
rcHeightfieldLayerSet::rcHeightfieldLayerSet
rcHeightfieldLayerSet()
Definition: Recast.cpp:170
-
rcHeightfieldLayerSet::layers
rcHeightfieldLayer * layers
The layers in the set. [Size: nlayers].
Definition: Recast.h:408
+
rcHeightfieldLayerSet::layers
rcHeightfieldLayer * layers
The layers in the set. [Size: nlayers].
Definition: Recast.h:410
rcHeightfieldLayerSet::~rcHeightfieldLayerSet
~rcHeightfieldLayerSet()
Definition: Recast.cpp:176
-
rcHeightfieldLayerSet::nlayers
int nlayers
The number of layers in the set.
Definition: Recast.h:409
-
rcHeightfieldLayer
Represents a heightfield layer within a layer set.
Definition: Recast.h:382
-
rcHeightfieldLayer::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:384
-
rcHeightfieldLayer::cons
unsigned char * cons
Packed neighbor connection information. [Size: Same as heights].
Definition: Recast.h:397
-
rcHeightfieldLayer::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:386
-
rcHeightfieldLayer::height
int height
The height of the heightfield. (Along the z-axis in cell units.)
Definition: Recast.h:388
-
rcHeightfieldLayer::width
int width
The width of the heightfield. (Along the x-axis in cell units.)
Definition: Recast.h:387
-
rcHeightfieldLayer::hmin
int hmin
The minimum height bounds of usable data. (Along the y-axis.)
Definition: Recast.h:393
-
rcHeightfieldLayer::areas
unsigned char * areas
Area ids. [Size: Same as heights].
Definition: Recast.h:396
-
rcHeightfieldLayer::hmax
int hmax
The maximum height bounds of usable data. (Along the y-axis.)
Definition: Recast.h:394
-
rcHeightfieldLayer::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:383
-
rcHeightfieldLayer::maxx
int maxx
The maximum x-bounds of usable data.
Definition: Recast.h:390
-
rcHeightfieldLayer::heights
unsigned char * heights
The heightfield. [Size: width * height].
Definition: Recast.h:395
-
rcHeightfieldLayer::maxy
int maxy
The maximum y-bounds of usable data. (Along the z-axis.)
Definition: Recast.h:392
-
rcHeightfieldLayer::minx
int minx
The minimum x-bounds of usable data.
Definition: Recast.h:389
-
rcHeightfieldLayer::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:385
-
rcHeightfieldLayer::miny
int miny
The minimum y-bounds of usable data. (Along the z-axis.)
Definition: Recast.h:391
+
rcHeightfieldLayerSet::nlayers
int nlayers
The number of layers in the set.
Definition: Recast.h:411
+
rcHeightfieldLayer
Represents a heightfield layer within a layer set.
Definition: Recast.h:384
+
rcHeightfieldLayer::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:386
+
rcHeightfieldLayer::cons
unsigned char * cons
Packed neighbor connection information. [Size: Same as heights].
Definition: Recast.h:399
+
rcHeightfieldLayer::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:388
+
rcHeightfieldLayer::height
int height
The height of the heightfield. (Along the z-axis in cell units.)
Definition: Recast.h:390
+
rcHeightfieldLayer::width
int width
The width of the heightfield. (Along the x-axis in cell units.)
Definition: Recast.h:389
+
rcHeightfieldLayer::hmin
int hmin
The minimum height bounds of usable data. (Along the y-axis.)
Definition: Recast.h:395
+
rcHeightfieldLayer::areas
unsigned char * areas
Area ids. [Size: Same as heights].
Definition: Recast.h:398
+
rcHeightfieldLayer::hmax
int hmax
The maximum height bounds of usable data. (Along the y-axis.)
Definition: Recast.h:396
+
rcHeightfieldLayer::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:385
+
rcHeightfieldLayer::maxx
int maxx
The maximum x-bounds of usable data.
Definition: Recast.h:392
+
rcHeightfieldLayer::heights
unsigned char * heights
The heightfield. [Size: width * height].
Definition: Recast.h:397
+
rcHeightfieldLayer::maxy
int maxy
The maximum y-bounds of usable data. (Along the z-axis.)
Definition: Recast.h:394
+
rcHeightfieldLayer::minx
int minx
The minimum x-bounds of usable data.
Definition: Recast.h:391
+
rcHeightfieldLayer::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:387
+
rcHeightfieldLayer::miny
int miny
The minimum y-bounds of usable data. (Along the z-axis.)
Definition: Recast.h:393
rcHeightfield
A dynamic heightfield representing obstructed space.
Definition: Recast.h:313
rcHeightfield::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:319
-
rcHeightfield::freelist
rcSpan * freelist
The next free span.
Definition: Recast.h:325
+
rcHeightfield::freelist
rcSpan * freelist
The next free span.
Definition: Recast.h:327
rcHeightfield::spans
rcSpan ** spans
Heightfield of spans (width*height).
Definition: Recast.h:323
rcHeightfield::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:322
rcHeightfield::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:321
rcHeightfield::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:320
rcHeightfield::height
int height
The height of the heightfield. (Along the z-axis in cell units.)
Definition: Recast.h:318
-
rcHeightfield::pools
rcSpanPool * pools
Linked list of span pools.
Definition: Recast.h:324
+
rcHeightfield::pools
rcSpanPool * pools
Linked list of span pools.
Definition: Recast.h:326
rcHeightfield::width
int width
The width of the heightfield. (Along the x-axis in cell units.)
Definition: Recast.h:317
rcHeightfield::~rcHeightfield
~rcHeightfield()
Definition: Recast.cpp:109
rcHeightfield::rcHeightfield
rcHeightfield()
Definition: Recast.cpp:96
-
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:485
-
rcPolyMeshDetail::tris
unsigned char * tris
The mesh triangles. [Size: 4*ntris].
Definition: Recast.h:490
-
rcPolyMeshDetail::verts
float * verts
The mesh vertices. [Size: 3*nverts].
Definition: Recast.h:489
-
rcPolyMeshDetail::meshes
unsigned int * meshes
The sub-mesh data. [Size: 4*nmeshes].
Definition: Recast.h:488
-
rcPolyMeshDetail::nverts
int nverts
The number of vertices in verts.
Definition: Recast.h:492
-
rcPolyMeshDetail::ntris
int ntris
The number of triangles in tris.
Definition: Recast.h:493
+
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:487
+
rcPolyMeshDetail::tris
unsigned char * tris
The mesh triangles. [Size: 4*ntris].
Definition: Recast.h:492
+
rcPolyMeshDetail::verts
float * verts
The mesh vertices. [Size: 3*nverts].
Definition: Recast.h:491
+
rcPolyMeshDetail::meshes
unsigned int * meshes
The sub-mesh data. [Size: 4*nmeshes].
Definition: Recast.h:490
+
rcPolyMeshDetail::nverts
int nverts
The number of vertices in verts.
Definition: Recast.h:494
+
rcPolyMeshDetail::ntris
int ntris
The number of triangles in tris.
Definition: Recast.h:495
rcPolyMeshDetail::rcPolyMeshDetail
rcPolyMeshDetail()
Definition: Recast.cpp:277
-
rcPolyMeshDetail::nmeshes
int nmeshes
The number of sub-meshes defined by meshes.
Definition: Recast.h:491
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcPolyMeshDetail::nmeshes
int nmeshes
The number of sub-meshes defined by meshes.
Definition: Recast.h:493
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
rcPolyMesh::rcPolyMesh
rcPolyMesh()
Definition: Recast.cpp:232
rcPolyMesh::~rcPolyMesh
~rcPolyMesh()
Definition: Recast.cpp:251
-
rcPolyMesh::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:470
-
rcPolyMesh::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:468
-
rcPolyMesh::polys
unsigned short * polys
Polygon and neighbor data. [Length: maxpolys * 2 * nvp].
Definition: Recast.h:460
-
rcPolyMesh::regs
unsigned short * regs
The region id assigned to each polygon. [Length: maxpolys].
Definition: Recast.h:461
-
rcPolyMesh::borderSize
int borderSize
The AABB border size used to generate the source data from which the mesh was derived.
Definition: Recast.h:472
-
rcPolyMesh::areas
unsigned char * areas
The area id assigned to each polygon. [Length: maxpolys].
Definition: Recast.h:463
-
rcPolyMesh::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:471
-
rcPolyMesh::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:469
-
rcPolyMesh::nvp
int nvp
The maximum number of vertices per polygon.
Definition: Recast.h:467
-
rcPolyMesh::maxEdgeError
float maxEdgeError
The max error of the polygon edges in the mesh.
Definition: Recast.h:473
-
rcPolyMesh::flags
unsigned short * flags
The user defined flags for each polygon. [Length: maxpolys].
Definition: Recast.h:462
-
rcPolyMesh::npolys
int npolys
The number of polygons.
Definition: Recast.h:465
-
rcPolyMesh::verts
unsigned short * verts
The mesh vertices. [Form: (x, y, z) * nverts].
Definition: Recast.h:459
-
rcPolyMesh::nverts
int nverts
The number of vertices.
Definition: Recast.h:464
-
rcPolyMesh::maxpolys
int maxpolys
The number of allocated polygons.
Definition: Recast.h:466
+
rcPolyMesh::cs
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:472
+
rcPolyMesh::bmin
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:470
+
rcPolyMesh::polys
unsigned short * polys
Polygon and neighbor data. [Length: maxpolys * 2 * nvp].
Definition: Recast.h:462
+
rcPolyMesh::regs
unsigned short * regs
The region id assigned to each polygon. [Length: maxpolys].
Definition: Recast.h:463
+
rcPolyMesh::borderSize
int borderSize
The AABB border size used to generate the source data from which the mesh was derived.
Definition: Recast.h:474
+
rcPolyMesh::areas
unsigned char * areas
The area id assigned to each polygon. [Length: maxpolys].
Definition: Recast.h:465
+
rcPolyMesh::ch
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:473
+
rcPolyMesh::bmax
float bmax[3]
The maximum bounds in world space. [(x, y, z)].
Definition: Recast.h:471
+
rcPolyMesh::nvp
int nvp
The maximum number of vertices per polygon.
Definition: Recast.h:469
+
rcPolyMesh::maxEdgeError
float maxEdgeError
The max error of the polygon edges in the mesh.
Definition: Recast.h:475
+
rcPolyMesh::flags
unsigned short * flags
The user defined flags for each polygon. [Length: maxpolys].
Definition: Recast.h:464
+
rcPolyMesh::npolys
int npolys
The number of polygons.
Definition: Recast.h:467
+
rcPolyMesh::verts
unsigned short * verts
The mesh vertices. [Form: (x, y, z) * nverts].
Definition: Recast.h:461
+
rcPolyMesh::nverts
int nverts
The number of vertices.
Definition: Recast.h:466
+
rcPolyMesh::maxpolys
int maxpolys
The number of allocated polygons.
Definition: Recast.h:468
rcSpanPool
A memory pool used for quick allocation of spans within a heightfield.
Definition: Recast.h:305
rcSpanPool::items
rcSpan items[RC_SPANS_PER_POOL]
Array of spans in the pool.
Definition: Recast.h:307
rcSpanPool::next
rcSpanPool * next
The next span pool.
Definition: Recast.h:306
diff --git a/Sample__Debug_8h_source.html b/Sample__Debug_8h_source.html index 409e3fce..21b62370 100644 --- a/Sample__Debug_8h_source.html +++ b/Sample__Debug_8h_source.html @@ -179,9 +179,9 @@ $(document).ready(function(){initNavTree('Sample__Debug_8h_source.html',''); ini
Sample_Debug::Sample_Debug
Sample_Debug()
Definition: Sample_Debug.cpp:51
Sample
Definition: Sample.h:100
dtPolyRef
unsigned int dtPolyRef
A handle to a polygon within a navigation mesh tile.
Definition: DetourNavMesh.h:48
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
diff --git a/Sample__SoloMesh_8h_source.html b/Sample__SoloMesh_8h_source.html index 0c56a079..5fae986c 100644 --- a/Sample__SoloMesh_8h_source.html +++ b/Sample__SoloMesh_8h_source.html @@ -220,12 +220,12 @@ $(document).ready(function(){initNavTree('Sample__SoloMesh_8h_source.html','');
Sample_SoloMesh::handleMeshChanged
virtual void handleMeshChanged(class InputGeom *geom)
Definition: Sample_SoloMesh.cpp:353
Sample_SoloMesh::cleanup
void cleanup()
Definition: Sample_SoloMesh.cpp:64
Sample
Definition: Sample.h:100
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
rcConfig
Specifies a configuration to use when performing Recast builds.
Definition: Recast.h:217
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
rcHeightfield
A dynamic heightfield representing obstructed space.
Definition: Recast.h:313
-
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:485
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:487
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
diff --git a/Sample__TileMesh_8h_source.html b/Sample__TileMesh_8h_source.html index a2774d52..2e0a9fdd 100644 --- a/Sample__TileMesh_8h_source.html +++ b/Sample__TileMesh_8h_source.html @@ -269,12 +269,12 @@ $(document).ready(function(){initNavTree('Sample__TileMesh_8h_source.html','');
Sample
Definition: Sample.h:100
dtNavMesh
A navigation mesh based on tiles of convex polygons.
Definition: DetourNavMesh.h:339
BuildSettings
Definition: InputGeom.h:35
-
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:352
+
rcCompactHeightfield
A compact, static heightfield representing unobstructed space.
Definition: Recast.h:354
rcConfig
Specifies a configuration to use when performing Recast builds.
Definition: Recast.h:217
-
rcContourSet
Represents a group of related contours.
Definition: Recast.h:431
+
rcContourSet
Represents a group of related contours.
Definition: Recast.h:433
rcHeightfield
A dynamic heightfield representing obstructed space.
Definition: Recast.h:313
-
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:485
-
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:455
+
rcPolyMeshDetail
Contains triangle meshes that represent detailed height data associated with the polygons in its asso...
Definition: Recast.h:487
+
rcPolyMesh
Represents a polygon mesh suitable for use in building a navigation mesh.
Definition: Recast.h:457
diff --git a/group__recast.html b/group__recast.html index da2c9b42..b75c2c67 100644 --- a/group__recast.html +++ b/group__recast.html @@ -197,13 +197,13 @@ Classes  Rasterizes a triangle list into the specified heightfield. More...
  void rcFilterLowHangingWalkableObstacles (rcContext *context, int walkableClimb, rcHeightfield &heightfield) - Marks non-walkable spans as walkable if their maximum is within walkableClimb of a walkable neighbor. More...
+ Marks non-walkable spans as walkable if their maximum is within walkableClimb of the span below them. More...
  void rcFilterLedgeSpans (rcContext *context, int walkableHeight, int walkableClimb, rcHeightfield &heightfield)  Marks spans that are ledges as not-walkable. More...
  void rcFilterWalkableLowHeightSpans (rcContext *context, int walkableHeight, rcHeightfield &heightfield) - Marks walkable spans as not walkable if the clearance above the span is less than the specified height. More...
+ Marks walkable spans as not walkable if the clearance above the span is less than the specified walkableHeight. More...
  int rcGetHeightFieldSpanCount (rcContext *context, const rcHeightfield &heightfield)  Returns the number of spans contained in the specified heightfield. More...
@@ -1507,10 +1507,10 @@ Classes
-

Marks non-walkable spans as walkable if their maximum is within walkableClimb of a walkable neighbor.

-

Allows the formation of walkable regions that will flow over low lying objects such as curbs, and up structures such as stairways.

-

Two neighboring spans are walkable if: rcAbs(currentSpan.smax - neighborSpan.smax) < walkableClimb

-
Warning
Will override the effect of rcFilterLedgeSpans. So if both filters are used, call rcFilterLedgeSpans after calling this filter.
+

Marks non-walkable spans as walkable if their maximum is within walkableClimb of the span below them.

+

This removes small obstacles that the agent would be able to walk over such as curbs, and also allows agents to move up structures such as stairs.

+

Obstacle spans are marked walkable if: obstacleSpan.smax - walkableSpan.smax < walkableClimb

+
Warning
Will override the effect of rcFilterLedgeSpans. If both filters are used, call rcFilterLedgeSpans only after applying this filter.
See also
rcHeightfield, rcConfig
Parameters
@@ -1555,8 +1555,8 @@ Classes
-

Marks walkable spans as not walkable if the clearance above the span is less than the specified height.

-

For this filter, the clearance above the span is the distance from the span's maximum to the next higher span's minimum. (Same grid column.)

+

Marks walkable spans as not walkable if the clearance above the span is less than the specified walkableHeight.

+

For this filter, the clearance above the span is the distance from the span's maximum to the minimum of the next higher span in the same column. If there is no higher span in the column, the clearance is computed as the distance from the top of the span to the maximum heightfield height.

See also
rcHeightfield, rcConfig
Parameters
diff --git a/structrcCompactHeightfield.html b/structrcCompactHeightfield.html index fcc2a396..d3d42597 100644 --- a/structrcCompactHeightfield.html +++ b/structrcCompactHeightfield.html @@ -224,19 +224,19 @@ Direction 3 = (0, -1)
}
}
}
-
static const unsigned char RC_NULL_AREA
Represents the null area.
Definition: Recast.h:633
-
static const unsigned char RC_WALKABLE_AREA
The default area id used to indicate a walkable polygon.
Definition: Recast.h:638
-
static const int RC_NOT_CONNECTED
The value returned by rcGetCon if the specified direction is not connected to another span.
Definition: Recast.h:642
-
int rcGetDirOffsetY(int direction)
Gets the standard height (z-axis) offset for the specified direction.
Definition: Recast.h:1260
-
int rcGetDirOffsetX(int direction)
Gets the standard width (x-axis) offset for the specified direction.
Definition: Recast.h:1250
-
int rcGetCon(const rcCompactSpan &span, int direction)
Gets neighbor connection data for the specified direction.
Definition: Recast.h:1241
-
Provides information on the content of a cell column in a compact heightfield.
Definition: Recast.h:335
-
unsigned int count
Number of spans in the column.
Definition: Recast.h:337
-
unsigned int index
Index to the first span in the column.
Definition: Recast.h:336
-
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:367
-
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:366
-
Represents a span of unobstructed space within a compact heightfield.
Definition: Recast.h:342
-
unsigned short y
The lower extent of the span. (Measured from the heightfield's base.)
Definition: Recast.h:343
+
static const unsigned char RC_NULL_AREA
Represents the null area.
Definition: Recast.h:635
+
static const unsigned char RC_WALKABLE_AREA
The default area id used to indicate a walkable polygon.
Definition: Recast.h:640
+
static const int RC_NOT_CONNECTED
The value returned by rcGetCon if the specified direction is not connected to another span.
Definition: Recast.h:644
+
int rcGetDirOffsetY(int direction)
Gets the standard height (z-axis) offset for the specified direction.
Definition: Recast.h:1262
+
int rcGetDirOffsetX(int direction)
Gets the standard width (x-axis) offset for the specified direction.
Definition: Recast.h:1252
+
int rcGetCon(const rcCompactSpan &span, int direction)
Gets neighbor connection data for the specified direction.
Definition: Recast.h:1243
+
Provides information on the content of a cell column in a compact heightfield.
Definition: Recast.h:337
+
unsigned int count
Number of spans in the column.
Definition: Recast.h:339
+
unsigned int index
Index to the first span in the column.
Definition: Recast.h:338
+
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:369
+
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:368
+
Represents a span of unobstructed space within a compact heightfield.
Definition: Recast.h:344
+
unsigned short y
The lower extent of the span. (Measured from the heightfield's base.)
Definition: Recast.h:345
See also
rcAllocCompactHeightfield, rcFreeCompactHeightfield, rcBuildCompactHeightfield

Constructor & Destructor Documentation

diff --git a/structrcContour.html b/structrcContour.html index d40869d4..e9ac8134 100644 --- a/structrcContour.html +++ b/structrcContour.html @@ -243,10 +243,10 @@ Public Attributes
{
// The edge represents a transition between different areas.
}
-
static const int RC_AREA_BORDER
Area border flag.
Definition: Recast.h:609
-
static const int RC_CONTOUR_REG_MASK
Applied to the region id field of contour vertices in order to extract the region id.
Definition: Recast.h:623
-
static const int RC_BORDER_VERTEX
Border vertex flag.
Definition: Recast.h:602
-
int * verts
Simplified contour vertex and connection data. [Size: 4 * nverts].
Definition: Recast.h:420
+
static const int RC_AREA_BORDER
Area border flag.
Definition: Recast.h:611
+
static const int RC_CONTOUR_REG_MASK
Applied to the region id field of contour vertices in order to extract the region id.
Definition: Recast.h:625
+
static const int RC_BORDER_VERTEX
Border vertex flag.
Definition: Recast.h:604
+
int * verts
Simplified contour vertex and connection data. [Size: 4 * nverts].
Definition: Recast.h:422
diff --git a/structrcPolyMesh.html b/structrcPolyMesh.html index 1993e46a..ce4cb646 100644 --- a/structrcPolyMesh.html +++ b/structrcPolyMesh.html @@ -196,10 +196,10 @@ Public Attributes
// Do something with the vertices.
}
}
-
static const unsigned short RC_MESH_NULL_IDX
An value which indicates an invalid index within a mesh.
Definition: Recast.h:628
-
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:470
-
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:471
-
int nvp
The maximum number of vertices per polygon.
Definition: Recast.h:467
+
static const unsigned short RC_MESH_NULL_IDX
An value which indicates an invalid index within a mesh.
Definition: Recast.h:630
+
float cs
The size of each cell. (On the xz-plane.)
Definition: Recast.h:472
+
float ch
The height of each cell. (The minimum increment along the y-axis.)
Definition: Recast.h:473
+
int nvp
The maximum number of vertices per polygon.
Definition: Recast.h:469
See also
rcAllocPolyMesh, rcFreePolyMesh, rcBuildPolyMesh

Constructor & Destructor Documentation

@@ -492,8 +492,8 @@ Edges 3->4 and 4->8 are border edges not shared with any other polygon.
float worldX = bmin[0] + verts[i*3+0] * cs
float worldY = bmin[1] + verts[i*3+1] * ch
float worldZ = bmin[2] + verts[i*3+2] * cs
-
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:468
-
unsigned short * verts
The mesh vertices. [Form: (x, y, z) * nverts].
Definition: Recast.h:459
+
float bmin[3]
The minimum bounds in world space. [(x, y, z)].
Definition: Recast.h:470
+
unsigned short * verts
The mesh vertices. [Form: (x, y, z) * nverts].
Definition: Recast.h:461
diff --git a/structrcPolyMeshDetail.html b/structrcPolyMeshDetail.html index 4569499f..98bca85e 100644 --- a/structrcPolyMeshDetail.html +++ b/structrcPolyMeshDetail.html @@ -192,9 +192,9 @@ Public Attributes
// Do something with the vertex.
}
}
-
unsigned char * tris
The mesh triangles. [Size: 4*ntris].
Definition: Recast.h:490
-
float * verts
The mesh vertices. [Size: 3*nverts].
Definition: Recast.h:489
-
int ntris
The number of triangles in tris.
Definition: Recast.h:493
+
unsigned char * tris
The mesh triangles. [Size: 4*ntris].
Definition: Recast.h:492
+
float * verts
The mesh vertices. [Size: 3*nverts].
Definition: Recast.h:491
+
int ntris
The number of triangles in tris.
Definition: Recast.h:495