| 
    A* Pathfinding Project
    3.7.4
    
   The A* Pathfinding Project for Unity 3D 
   | 
 
Voxelizer for recast graphs. More...
Voxelizer for recast graphs.
In comments: units wu are World Units, vx are Voxels
Public Member Functions | |
| Voxelize (float ch, float cs, float wc, float wh, float ms) | |
| ushort[] | BoxBlur (ushort[] src, ushort[] dst) | 
| void | BuildCompactField () | 
| void | BuildContours (float maxError, int maxEdgeLength, VoxelContourSet cset, int buildFlags) | 
| void | BuildDistanceField () | 
| void | BuildPolyMesh (VoxelContourSet cset, int nvp, out VoxelMesh mesh) | 
| Builds a polygon mesh from a contour set.   | |
| void | BuildRegions () | 
| void | BuildVoxelConnections () | 
| int | CalcAreaOfPolygon2D (int[] verts, int nverts) | 
| ushort | CalculateDistanceField (ushort[] src) | 
| void | CollectMeshes () | 
| Vector3 | CompactSpanToVector (int x, int z, int i) | 
| void | DebugDrawCompactSpans () | 
| void | DebugDrawSpans () | 
| void | ErodeVoxels (int radius) | 
| void | ErodeWalkableArea (int radius) | 
| ushort[] | ExpandRegions (int maxIterations, uint level, ushort[] srcReg, ushort[] srcDist, ushort[] dstReg, ushort[] dstDist, List< int > stack) | 
| void | FilterLedges (uint voxelWalkableHeight, int voxelWalkableClimb, float cs, float ch, Vector3 min) | 
| void | FilterLowHeightSpans (uint voxelWalkableHeight, float cs, float ch, Vector3 min) | 
| void | FilterSmallRegions (ushort[] reg, int minRegionSize, int maxRegions) | 
| Filters out or merges small regions.   | |
| bool | FloodRegion (int x, int z, int i, uint level, ushort r, ushort[] srcReg, ushort[] srcDist, List< int > stack) | 
| int | GetCornerHeight (int x, int z, int i, int dir, ref bool isBorderVertex) | 
| void | Init () | 
| void | MarkRectWithRegion (int minx, int maxx, int minz, int maxz, ushort region, ushort[] srcReg) | 
| void | OnGUI () | 
| void | RemoveDegenerateSegments (List< int > simplified) | 
| void | SimplifyContour (List< int > verts, List< int > simplified, float maxError, int maxEdgeLenght, int buildFlags) | 
| void | VectorToIndex (Vector3 p, out int x, out int z) | 
| void | VoxelizeInput () | 
| void | WalkContour (int x, int z, int i, ushort[] flags, List< int > verts) | 
Static Public Member Functions | |
| static int | Area2 (int a, int b, int c, int[] verts) | 
| static void | CollectMeshes (List< ExtraMesh > extraMeshes, Bounds bounds, out Vector3[] verts, out int[] tris) | 
| static bool | Collinear (int a, int b, int c, int[] verts) | 
| static bool | Diagonal (int i, int j, int n, int[] verts, int[] indices) | 
| Returns T iff (v_i, v_j) is a proper internal diagonal of P.   | |
| static bool | Ileft (int a, int b, int c, int[] va, int[] vb, int[] vc) | 
| static bool | InCone (int i, int j, int n, int[] verts, int[] indices) | 
| static bool | IntersectProp (int a, int b, int c, int d, int[] verts) | 
| static bool | Left (int a, int b, int c, int[] verts) | 
| Returns true iff c is strictly to the left of the directed line through a to b.   | |
| static bool | LeftOn (int a, int b, int c, int[] verts) | 
| static bool | MergeContours (ref VoxelContour ca, ref VoxelContour cb, int ia, int ib) | 
| static int | Next (int i, int n) | 
| (i+1) % n assuming 0 <= i < n   | |
| static int | Prev (int i, int n) | 
| (i-1+n) % n assuming 0 <= i < n   | |
| static bool | Xorb (bool x, bool y) | 
Public Attributes | |
| int | borderSize = 0 | 
| The size of the non-navigable border around the heightfield.   | |
| readonly float | cellHeight = 0.1F | 
| The y-axis cell size to use for fields.   | |
| readonly Vector3 | cellScale | 
| readonly Vector3 | cellScaleDivision | 
| readonly float | cellSize = 0.2F | 
| The xz-plane cell size to use for fields.   | |
| VoxelContourSet | countourSet | 
| string | debugString = "" | 
| int | depth | 
| Depth in voxels.   | |
| Bounds | forcedBounds | 
| The world AABB to rasterize.   | |
| List< ExtraMesh > | inputExtraMeshes | 
| float | maxEdgeLength = 20 | 
| The maximum allowed length for contour edges along the border of the mesh.   | |
| float | maxSlope = 30 | 
| The maximum slope that is considered walkable.   | |
| int | minRegionSize = 100 | 
| RecastGraph.RelevantGraphSurfaceMode | relevantGraphSurfaceMode | 
| VoxelArea | voxelArea | 
| Vector3 | voxelOffset | 
| readonly int | voxelWalkableClimb | 
| Maximum ledge height that is considered to still be traversable.   | |
| readonly uint | voxelWalkableHeight | 
| Minimum floor to 'ceiling' height that will still allow the floor area to be considered walkable.   | |
| int | width | 
| Width in voxels.   | |
Constants @{  | |
| const uint | NotConnected = 0x3f | 
| const int | MaxLayers = 65535 | 
| Unmotivated variable, but let's clamp the layers at 65535.   | |
| const int | MaxRegions = 500 | 
| const int | UnwalkableArea = 0 | 
| const ushort | BorderReg = 0x8000 | 
| If heightfield region ID has the following bit set, the region is on border area and excluded from many calculations.   | |
| const int | RC_BORDER_VERTEX = 0x10000 | 
| If contour region ID has the following bit set, the vertex will be later removed in order to match the segments and vertices at tile boundaries.   | |
| const int | RC_AREA_BORDER = 0x20000 | 
| const int | VERTEX_BUCKET_COUNT = 1<<12 | 
| const int | RC_CONTOUR_TESS_WALL_EDGES = 0x01 | 
| const int | RC_CONTOUR_TESS_AREA_EDGES = 0x02 | 
| const int | ContourRegMask = 0xffff | 
| Mask used with contours to extract region id.   | |
Protected Attributes | |
| int[] | inputTriangles | 
| Vector3[] | inputVertices | 
Private Member Functions | |
| Vector3 | ConvertPos (int x, int y, int z) | 
| Vector3 | ConvertPosCorrZ (int x, int y, int z) | 
| Vector3 | ConvertPosition (int x, int z, int i) | 
| Vector3 | ConvertPosWithoutOffset (int x, int y, int z) | 
| void | DrawLine (int a, int b, int[] indices, int[] verts, Color col) | 
| void | FloodOnes (List< Int3 > st1, ushort[] regs, uint level, ushort reg) | 
| void | GetClosestIndices (int[] vertsa, int nvertsa, int[] vertsb, int nvertsb, ref int ia, ref int ib) | 
| int | Triangulate (int n, int[] verts, ref int[] indices, ref int[] tris) | 
Static Private Member Functions | |
| static bool | Between (int a, int b, int c, int[] verts) | 
| static int[] | ClaimIntArr (int minCapacity, bool zero) | 
| static bool | Diagonalie (int i, int j, int n, int[] verts, int[] indices) | 
| Returns T iff (v_i, v_j) is a proper internal *or* external diagonal of P, *ignoring edges incident to v_i and v_j*.   | |
| static bool | Intersect (int a, int b, int c, int d, int[] verts) | 
| static void | ReleaseContours (VoxelContourSet cset) | 
| Releases contents of a contour set to caches.   | |
| static void | ReleaseIntArr (int[] arr) | 
| static int | union_find_find (int[] arr, int x) | 
| static void | union_find_union (int[] arr, int a, int b) | 
| static bool | Vequal (int a, int b, int[] verts) | 
Static Private Attributes | |
| static readonly int[] | emptyArr = new int[0] | 
| static List< int[]> | intArrCache = new List<int[]>() | 
| Voxelize | ( | float | ch, | 
| float | cs, | ||
| float | wc, | ||
| float | wh, | ||
| float | ms | ||
| ) | 
      
  | 
  static | 
      
  | 
  staticprivate | 
| ushort [] BoxBlur | ( | ushort[] | src, | 
| ushort[] | dst | ||
| ) | 
| void BuildCompactField | ( | ) | 
| void BuildContours | ( | float | maxError, | 
| int | maxEdgeLength, | ||
| VoxelContourSet | cset, | ||
| int | buildFlags | ||
| ) | 
| void BuildDistanceField | ( | ) | 
| void BuildPolyMesh | ( | VoxelContourSet | cset, | 
| int | nvp, | ||
| out VoxelMesh | mesh | ||
| ) | 
Builds a polygon mesh from a contour set.
| cset | contour set to build a mesh from. | 
| nvp | Maximum allowed vertices per polygon. | 
| mesh | Results will be written to this mesh. | 
| void BuildRegions | ( | ) | 
| void BuildVoxelConnections | ( | ) | 
| int CalcAreaOfPolygon2D | ( | int[] | verts, | 
| int | nverts | ||
| ) | 
| ushort CalculateDistanceField | ( | ushort[] | src | ) | 
      
  | 
  staticprivate | 
| void CollectMeshes | ( | ) | 
      
  | 
  static | 
      
  | 
  static | 
| Vector3 CompactSpanToVector | ( | int | x, | 
| int | z, | ||
| int | i | ||
| ) | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
| void DebugDrawCompactSpans | ( | ) | 
| void DebugDrawSpans | ( | ) | 
      
  | 
  static | 
Returns T iff (v_i, v_j) is a proper internal diagonal of P.
      
  | 
  staticprivate | 
Returns T iff (v_i, v_j) is a proper internal *or* external diagonal of P, *ignoring edges incident to v_i and v_j*.
      
  | 
  private | 
| void ErodeVoxels | ( | int | radius | ) | 
| void ErodeWalkableArea | ( | int | radius | ) | 
| ushort [] ExpandRegions | ( | int | maxIterations, | 
| uint | level, | ||
| ushort[] | srcReg, | ||
| ushort[] | srcDist, | ||
| ushort[] | dstReg, | ||
| ushort[] | dstDist, | ||
| List< int > | stack | ||
| ) | 
| void FilterLedges | ( | uint | voxelWalkableHeight, | 
| int | voxelWalkableClimb, | ||
| float | cs, | ||
| float | ch, | ||
| Vector3 | min | ||
| ) | 
| void FilterLowHeightSpans | ( | uint | voxelWalkableHeight, | 
| float | cs, | ||
| float | ch, | ||
| Vector3 | min | ||
| ) | 
| void FilterSmallRegions | ( | ushort[] | reg, | 
| int | minRegionSize, | ||
| int | maxRegions | ||
| ) | 
Filters out or merges small regions.
      
  | 
  private | 
| bool FloodRegion | ( | int | x, | 
| int | z, | ||
| int | i, | ||
| uint | level, | ||
| ushort | r, | ||
| ushort[] | srcReg, | ||
| ushort[] | srcDist, | ||
| List< int > | stack | ||
| ) | 
      
  | 
  private | 
| int GetCornerHeight | ( | int | x, | 
| int | z, | ||
| int | i, | ||
| int | dir, | ||
| ref bool | isBorderVertex | ||
| ) | 
      
  | 
  static | 
      
  | 
  static | 
| void Init | ( | ) | 
      
  | 
  staticprivate | 
      
  | 
  static | 
      
  | 
  static | 
Returns true iff c is strictly to the left of the directed line through a to b.
      
  | 
  static | 
| void MarkRectWithRegion | ( | int | minx, | 
| int | maxx, | ||
| int | minz, | ||
| int | maxz, | ||
| ushort | region, | ||
| ushort[] | srcReg | ||
| ) | 
      
  | 
  static | 
      
  | 
  static | 
(i+1) % n assuming 0 <= i < n
| void OnGUI | ( | ) | 
      
  | 
  static | 
(i-1+n) % n assuming 0 <= i < n
      
  | 
  staticprivate | 
Releases contents of a contour set to caches.
      
  | 
  staticprivate | 
| void RemoveDegenerateSegments | ( | List< int > | simplified | ) | 
| void SimplifyContour | ( | List< int > | verts, | 
| List< int > | simplified, | ||
| float | maxError, | ||
| int | maxEdgeLenght, | ||
| int | buildFlags | ||
| ) | 
      
  | 
  private | 
      
  | 
  staticprivate | 
      
  | 
  staticprivate | 
| void VectorToIndex | ( | Vector3 | p, | 
| out int | x, | ||
| out int | z | ||
| ) | 
      
  | 
  staticprivate | 
| void VoxelizeInput | ( | ) | 
| void WalkContour | ( | int | x, | 
| int | z, | ||
| int | i, | ||
| ushort[] | flags, | ||
| List< int > | verts | ||
| ) | 
      
  | 
  static | 
| const ushort BorderReg = 0x8000 | 
If heightfield region ID has the following bit set, the region is on border area and excluded from many calculations.
| int borderSize = 0 | 
The size of the non-navigable border around the heightfield.
[Limit: >=0] [Units: vx]
| readonly float cellHeight = 0.1F | 
The y-axis cell size to use for fields.
[Limit: > 0] [Units: wu]
| readonly Vector3 cellScale | 
| readonly Vector3 cellScaleDivision | 
| readonly float cellSize = 0.2F | 
The xz-plane cell size to use for fields.
[Limit: > 0] [Units: wu]
| const int ContourRegMask = 0xffff | 
Mask used with contours to extract region id.
| VoxelContourSet countourSet | 
| string debugString = "" | 
| int depth | 
Depth in voxels.
Must match the forcedBounds
      
  | 
  staticprivate | 
| Bounds forcedBounds | 
The world AABB to rasterize.
| List<ExtraMesh> inputExtraMeshes | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  staticprivate | 
| float maxEdgeLength = 20 | 
The maximum allowed length for contour edges along the border of the mesh.
[Limit: >= 0] [Units: vx]
| const int MaxLayers = 65535 | 
Unmotivated variable, but let's clamp the layers at 65535.
| const int MaxRegions = 500 | 
| float maxSlope = 30 | 
The maximum slope that is considered walkable.
[Limits: 0 <= value < 90] [Units: Degrees]
| int minRegionSize = 100 | 
| const uint NotConnected = 0x3f | 
| const int RC_AREA_BORDER = 0x20000 | 
| const int RC_BORDER_VERTEX = 0x10000 | 
If contour region ID has the following bit set, the vertex will be later removed in order to match the segments and vertices at tile boundaries.
| const int RC_CONTOUR_TESS_AREA_EDGES = 0x02 | 
| const int RC_CONTOUR_TESS_WALL_EDGES = 0x01 | 
| RecastGraph.RelevantGraphSurfaceMode relevantGraphSurfaceMode | 
| const int UnwalkableArea = 0 | 
| const int VERTEX_BUCKET_COUNT = 1<<12 | 
| VoxelArea voxelArea | 
| Vector3 voxelOffset | 
| readonly int voxelWalkableClimb | 
Maximum ledge height that is considered to still be traversable.
[Limit: >=0] [Units: vx]
| readonly uint voxelWalkableHeight | 
Minimum floor to 'ceiling' height that will still allow the floor area to be considered walkable.
[Limit: >= 3] [Units: vx]
| int width | 
Width in voxels.
Must match the forcedBounds