From b2a631a8fc3cdd4c5ff57cd2db18d5ac6975c422 Mon Sep 17 00:00:00 2001 From: ikpil Date: Thu, 8 Jun 2023 20:53:03 +0900 Subject: [PATCH] changed class names by c++ recastnavigation --- src/DotRecast.Core/{Edge.cs => RcEdge.cs} | 2 +- .../Colliders/AbstractCollider.cs | 2 +- .../Colliders/BoxCollider.cs | 2 +- .../Colliders/CapsuleCollider.cs | 2 +- .../Colliders/CompositeCollider.cs | 2 +- .../Colliders/ConvexTrimeshCollider.cs | 2 +- .../Colliders/CylinderCollider.cs | 2 +- .../Colliders/ICollider.cs | 2 +- .../Colliders/SphereCollider.cs | 2 +- .../Colliders/TrimeshCollider.cs | 2 +- .../DynamicNavMesh.cs | 2 +- src/DotRecast.Detour.Dynamic/DynamicTile.cs | 14 +- .../DynamicTileCheckpoint.cs | 14 +- src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs | 8 +- src/DotRecast.Detour.Dynamic/Io/VoxelTile.cs | 26 +-- src/DotRecast.Detour.Dynamic/VoxelQuery.cs | 8 +- .../Jumplink/EdgeExtractor.cs | 4 +- .../Jumplink/TrajectorySampler.cs | 8 +- .../TileCacheBuilder.cs | 16 +- .../Draw/RecastDebugDraw.cs | 76 ++++----- .../Builder/AbstractNavMeshBuilder.cs | 4 +- .../Builder/SoloNavMeshBuilder.cs | 2 +- .../Builder/TileNavMeshBuilder.cs | 2 +- src/DotRecast.Recast/CompareDiagDist.cs | 8 +- src/DotRecast.Recast/CompareHoles.cs | 4 +- src/DotRecast.Recast/ContourRegion.cs | 9 -- src/DotRecast.Recast/PolyMeshRaycast.cs | 2 +- .../{CompactCell.cs => RcCompactCell.cs} | 2 +- ...Heightfield.cs => RcCompactHeightfield.cs} | 6 +- .../{CompactSpan.cs => RcCompactSpan.cs} | 2 +- .../{RecastConfig.cs => RcConfig.cs} | 10 +- .../{RecastConstants.cs => RcConstants.cs} | 2 +- .../{Contour.cs => RcContour.cs} | 2 +- .../{ContourHole.cs => RcContourHole.cs} | 4 +- src/DotRecast.Recast/RcContourRegion.cs | 9 ++ .../{ContourSet.cs => RcContourSet.cs} | 4 +- .../{HeightPatch.cs => RcHeightPatch.cs} | 2 +- .../{Heightfield.cs => RcHeightfield.cs} | 8 +- ...ghtfieldLayer.cs => RcHeightfieldLayer.cs} | 2 +- ...ldLayerSet.cs => RcHeightfieldLayerSet.cs} | 4 +- .../{LayerRegion.cs => RcLayerRegion.cs} | 4 +- .../{PolyMesh.cs => RcPolyMesh.cs} | 2 +- ...{PolyMeshDetail.cs => RcPolyMeshDetail.cs} | 2 +- ...tialDiagonal.cs => RcPotentialDiagonal.cs} | 2 +- .../{Region.cs => RcRegion.cs} | 4 +- src/DotRecast.Recast/{Span.cs => RcSpan.cs} | 4 +- .../{SweepSpan.cs => RcSweepSpan.cs} | 2 +- src/DotRecast.Recast/Recast.cs | 2 +- src/DotRecast.Recast/RecastArea.cs | 55 ++++--- src/DotRecast.Recast/RecastBuilder.cs | 40 ++--- src/DotRecast.Recast/RecastBuilderConfig.cs | 6 +- src/DotRecast.Recast/RecastBuilderResult.cs | 22 +-- src/DotRecast.Recast/RecastCommon.cs | 4 +- src/DotRecast.Recast/RecastCompact.cs | 36 ++--- src/DotRecast.Recast/RecastContour.cs | 66 ++++---- .../RecastFilledVolumeRasterization.cs | 14 +- src/DotRecast.Recast/RecastFilter.cs | 20 +-- src/DotRecast.Recast/RecastLayers.cs | 58 ++++--- src/DotRecast.Recast/RecastMesh.cs | 32 ++-- src/DotRecast.Recast/RecastMeshDetail.cs | 48 +++--- src/DotRecast.Recast/RecastRasterization.cs | 22 +-- src/DotRecast.Recast/RecastRegion.cs | 152 +++++++++--------- src/DotRecast.Recast/RecastVoxelization.cs | 8 +- .../RecastTestMeshBuilder.cs | 6 +- .../VoxelQueryTest.cs | 4 +- .../Io/MeshSetReaderWriterTest.cs | 4 +- .../RecastTestMeshBuilder.cs | 6 +- .../TestDetourBuilder.cs | 6 +- .../TestTiledNavMeshBuilder.cs | 6 +- .../TestTileLayerBuilder.cs | 12 +- .../DotRecast.Recast.Test/RecastLayersTest.cs | 14 +- .../RecastSoloMeshTest.cs | 20 +-- test/DotRecast.Recast.Test/RecastTest.cs | 2 +- .../RecastTileMeshTest.cs | 8 +- 74 files changed, 486 insertions(+), 491 deletions(-) rename src/DotRecast.Core/{Edge.cs => RcEdge.cs} (86%) delete mode 100644 src/DotRecast.Recast/ContourRegion.cs rename src/DotRecast.Recast/{CompactCell.cs => RcCompactCell.cs} (97%) rename src/DotRecast.Recast/{CompactHeightfield.cs => RcCompactHeightfield.cs} (96%) rename src/DotRecast.Recast/{CompactSpan.cs => RcCompactSpan.cs} (97%) rename src/DotRecast.Recast/{RecastConfig.cs => RcConfig.cs} (95%) rename src/DotRecast.Recast/{RecastConstants.cs => RcConstants.cs} (98%) rename src/DotRecast.Recast/{Contour.cs => RcContour.cs} (98%) rename src/DotRecast.Recast/{ContourHole.cs => RcContourHole.cs} (65%) create mode 100644 src/DotRecast.Recast/RcContourRegion.cs rename src/DotRecast.Recast/{ContourSet.cs => RcContourSet.cs} (95%) rename src/DotRecast.Recast/{HeightPatch.cs => RcHeightPatch.cs} (84%) rename src/DotRecast.Recast/{Heightfield.cs => RcHeightfield.cs} (90%) rename src/DotRecast.Recast/{HeightfieldLayer.cs => RcHeightfieldLayer.cs} (97%) rename src/DotRecast.Recast/{HeightfieldLayerSet.cs => RcHeightfieldLayerSet.cs} (90%) rename src/DotRecast.Recast/{LayerRegion.cs => RcLayerRegion.cs} (86%) rename src/DotRecast.Recast/{PolyMesh.cs => RcPolyMesh.cs} (98%) rename src/DotRecast.Recast/{PolyMeshDetail.cs => RcPolyMeshDetail.cs} (97%) rename src/DotRecast.Recast/{PotentialDiagonal.cs => RcPotentialDiagonal.cs} (71%) rename src/DotRecast.Recast/{Region.cs => RcRegion.cs} (91%) rename src/DotRecast.Recast/{Span.cs => RcSpan.cs} (96%) rename src/DotRecast.Recast/{SweepSpan.cs => RcSweepSpan.cs} (86%) diff --git a/src/DotRecast.Core/Edge.cs b/src/DotRecast.Core/RcEdge.cs similarity index 86% rename from src/DotRecast.Core/Edge.cs rename to src/DotRecast.Core/RcEdge.cs index 33941d2..ebfd7d8 100644 --- a/src/DotRecast.Core/Edge.cs +++ b/src/DotRecast.Core/RcEdge.cs @@ -1,6 +1,6 @@ namespace DotRecast.Core { - public class Edge + public class RcEdge { public int[] vert = new int[2]; public int[] polyEdge = new int[2]; diff --git a/src/DotRecast.Detour.Dynamic/Colliders/AbstractCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/AbstractCollider.cs index eae13f5..36c7709 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/AbstractCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/AbstractCollider.cs @@ -38,6 +38,6 @@ namespace DotRecast.Detour.Dynamic.Colliders return _bounds; } - public abstract void Rasterize(Heightfield hf, Telemetry telemetry); + public abstract void Rasterize(RcHeightfield hf, Telemetry telemetry); } } \ No newline at end of file diff --git a/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs index fe1a818..e7fa087 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs @@ -60,7 +60,7 @@ namespace DotRecast.Detour.Dynamic.Colliders return bounds; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { RecastFilledVolumeRasterization.RasterizeBox( hf, center, halfEdges, area, (int)Math.Floor(flagMergeThreshold / hf.ch), telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs index 31c5fc9..8a0830c 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs @@ -36,7 +36,7 @@ namespace DotRecast.Detour.Dynamic.Colliders this.radius = radius; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { RecastFilledVolumeRasterization.RasterizeCapsule(hf, start, end, radius, area, (int)Math.Floor(flagMergeThreshold / hf.ch), telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs index 8637300..df14135 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs @@ -66,7 +66,7 @@ namespace DotRecast.Detour.Dynamic.Colliders return bounds; } - public void Rasterize(Heightfield hf, Telemetry telemetry) + public void Rasterize(RcHeightfield hf, Telemetry telemetry) { foreach (var c in colliders) c.Rasterize(hf, telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/ConvexTrimeshCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/ConvexTrimeshCollider.cs index 684f8e5..4e0f46e 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/ConvexTrimeshCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/ConvexTrimeshCollider.cs @@ -40,7 +40,7 @@ namespace DotRecast.Detour.Dynamic.Colliders this.triangles = triangles; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { RecastFilledVolumeRasterization.RasterizeConvex(hf, vertices, triangles, area, (int)Math.Floor(flagMergeThreshold / hf.ch), telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs index 61bb032..b62f313 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs @@ -36,7 +36,7 @@ namespace DotRecast.Detour.Dynamic.Colliders this.radius = radius; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { RecastFilledVolumeRasterization.RasterizeCylinder(hf, start, end, radius, area, (int)Math.Floor(flagMergeThreshold / hf.ch), telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/ICollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/ICollider.cs index 847d998..4d466fd 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/ICollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/ICollider.cs @@ -23,6 +23,6 @@ namespace DotRecast.Detour.Dynamic.Colliders public interface ICollider { float[] Bounds(); - void Rasterize(Heightfield hf, Telemetry telemetry); + void Rasterize(RcHeightfield hf, Telemetry telemetry); } } \ No newline at end of file diff --git a/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs index 9585072..6a573de 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs @@ -34,7 +34,7 @@ namespace DotRecast.Detour.Dynamic.Colliders this.radius = radius; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { RecastFilledVolumeRasterization.RasterizeSphere(hf, center, radius, area, (int)Math.Floor(flagMergeThreshold / hf.ch), telemetry); diff --git a/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs index f9ffe5c..b9f4ff0 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs @@ -56,7 +56,7 @@ namespace DotRecast.Detour.Dynamic.Colliders return bounds; } - public override void Rasterize(Heightfield hf, Telemetry telemetry) + public override void Rasterize(RcHeightfield hf, Telemetry telemetry) { for (int i = 0; i < triangles.Length; i += 3) { diff --git a/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs b/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs index 48b71f9..967c074 100644 --- a/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs +++ b/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs @@ -88,7 +88,7 @@ namespace DotRecast.Detour.Dynamic return new VoxelQuery(navMeshParams.orig, navMeshParams.tileWidth, navMeshParams.tileHeight, LookupHeightfield); } - private Heightfield LookupHeightfield(int x, int z) + private RcHeightfield LookupHeightfield(int x, int z) { return GetTileAt(x, z)?.checkpoint.heightfield; } diff --git a/src/DotRecast.Detour.Dynamic/DynamicTile.cs b/src/DotRecast.Detour.Dynamic/DynamicTile.cs index 756d71b..5d9f559 100644 --- a/src/DotRecast.Detour.Dynamic/DynamicTile.cs +++ b/src/DotRecast.Detour.Dynamic/DynamicTile.cs @@ -46,7 +46,7 @@ namespace DotRecast.Detour.Dynamic { if (dirty) { - Heightfield heightfield = BuildHeightfield(config, telemetry); + RcHeightfield heightfield = BuildHeightfield(config, telemetry); RecastBuilderResult r = BuildRecast(builder, config, voxelTile, heightfield, telemetry); NavMeshDataCreateParams option = NavMeshCreateParams(voxelTile.tileX, voxelTile.tileZ, voxelTile.cellSize, voxelTile.cellHeight, config, r); @@ -57,10 +57,10 @@ namespace DotRecast.Detour.Dynamic return false; } - private Heightfield BuildHeightfield(DynamicNavMeshConfig config, Telemetry telemetry) + private RcHeightfield BuildHeightfield(DynamicNavMeshConfig config, Telemetry telemetry) { ICollection rasterizedColliders = checkpoint != null ? checkpoint.colliders : ImmutableHashSet.Empty; - Heightfield heightfield = checkpoint != null ? checkpoint.heightfield : voxelTile.Heightfield(); + RcHeightfield heightfield = checkpoint != null ? checkpoint.heightfield : voxelTile.Heightfield(); foreach (var (cid, c) in colliders) { if (!rasterizedColliders.Contains(cid)) @@ -79,9 +79,9 @@ namespace DotRecast.Detour.Dynamic } private RecastBuilderResult BuildRecast(RecastBuilder builder, DynamicNavMeshConfig config, VoxelTile vt, - Heightfield heightfield, Telemetry telemetry) + RcHeightfield heightfield, Telemetry telemetry) { - RecastConfig rcConfig = new RecastConfig(config.useTiles, config.tileSizeX, config.tileSizeZ, vt.borderSize, + RcConfig rcConfig = new RcConfig(config.useTiles, config.tileSizeX, config.tileSizeZ, vt.borderSize, config.partitionType, vt.cellSize, vt.cellHeight, config.walkableSlopeAngle, true, true, true, config.walkableHeight, config.walkableRadius, config.walkableClimb, config.minRegionArea, config.regionMergeArea, config.maxEdgeLen, config.maxSimplificationError, @@ -119,8 +119,8 @@ namespace DotRecast.Detour.Dynamic private NavMeshDataCreateParams NavMeshCreateParams(int tilex, int tileZ, float cellSize, float cellHeight, DynamicNavMeshConfig config, RecastBuilderResult rcResult) { - PolyMesh m_pmesh = rcResult.GetMesh(); - PolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); + RcPolyMesh m_pmesh = rcResult.GetMesh(); + RcPolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); NavMeshDataCreateParams option = new NavMeshDataCreateParams(); for (int i = 0; i < m_pmesh.npolys; ++i) { diff --git a/src/DotRecast.Detour.Dynamic/DynamicTileCheckpoint.cs b/src/DotRecast.Detour.Dynamic/DynamicTileCheckpoint.cs index 41a3804..a1626c8 100644 --- a/src/DotRecast.Detour.Dynamic/DynamicTileCheckpoint.cs +++ b/src/DotRecast.Detour.Dynamic/DynamicTileCheckpoint.cs @@ -23,28 +23,28 @@ namespace DotRecast.Detour.Dynamic { public class DynamicTileCheckpoint { - public readonly Heightfield heightfield; + public readonly RcHeightfield heightfield; public readonly ISet colliders; - public DynamicTileCheckpoint(Heightfield heightfield, ISet colliders) + public DynamicTileCheckpoint(RcHeightfield heightfield, ISet colliders) { this.colliders = colliders; this.heightfield = Clone(heightfield); } - private Heightfield Clone(Heightfield source) + private RcHeightfield Clone(RcHeightfield source) { - Heightfield clone = new Heightfield(source.width, source.height, source.bmin, source.bmax, source.cs, + RcHeightfield clone = new RcHeightfield(source.width, source.height, source.bmin, source.bmax, source.cs, source.ch, source.borderSize); for (int z = 0, pz = 0; z < source.height; z++, pz += source.width) { for (int x = 0; x < source.width; x++) { - Span span = source.spans[pz + x]; - Span prevCopy = null; + RcSpan span = source.spans[pz + x]; + RcSpan prevCopy = null; while (span != null) { - Span copy = new Span(); + RcSpan copy = new RcSpan(); copy.smin = span.smin; copy.smax = span.smax; copy.area = span.area; diff --git a/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs b/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs index 5a95c20..3d9d7eb 100644 --- a/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs +++ b/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs @@ -61,17 +61,17 @@ namespace DotRecast.Detour.Dynamic.Io tiles.Add(tile); } - public RecastConfig GetConfig(VoxelTile tile, PartitionType partitionType, int maxPolyVerts, int regionMergeSize, + public RcConfig GetConfig(VoxelTile tile, PartitionType partitionType, int maxPolyVerts, int regionMergeSize, bool filterLowHangingObstacles, bool filterLedgeSpans, bool filterWalkableLowHeightSpans, AreaModification walkbableAreaMod, bool buildMeshDetail, float detailSampleDist, float detailSampleMaxError) { - return new RecastConfig(useTiles, tileSizeX, tileSizeZ, tile.borderSize, partitionType, cellSize, tile.cellHeight, + return new RcConfig(useTiles, tileSizeX, tileSizeZ, tile.borderSize, partitionType, cellSize, tile.cellHeight, walkableSlopeAngle, filterLowHangingObstacles, filterLedgeSpans, filterWalkableLowHeightSpans, walkableHeight, walkableRadius, walkableClimb, minRegionArea, regionMergeArea, maxEdgeLen, maxSimplificationError, maxPolyVerts, buildMeshDetail, detailSampleDist, detailSampleMaxError, walkbableAreaMod); } - public static VoxelFile From(RecastConfig config, List results) + public static VoxelFile From(RcConfig config, List results) { VoxelFile f = new VoxelFile(); f.version = 1; @@ -146,7 +146,7 @@ namespace DotRecast.Detour.Dynamic.Io }; foreach (VoxelTile vt in mesh.VoxelTiles()) { - Heightfield heightfield = vt.Heightfield(); + RcHeightfield heightfield = vt.Heightfield(); f.tiles.Add(new VoxelTile(vt.tileX, vt.tileZ, heightfield)); f.bounds[0] = Math.Min(f.bounds[0], vt.boundsMin.x); f.bounds[1] = Math.Min(f.bounds[1], vt.boundsMin.y); diff --git a/src/DotRecast.Detour.Dynamic/Io/VoxelTile.cs b/src/DotRecast.Detour.Dynamic/Io/VoxelTile.cs index a04fc3a..ca349f4 100644 --- a/src/DotRecast.Detour.Dynamic/Io/VoxelTile.cs +++ b/src/DotRecast.Detour.Dynamic/Io/VoxelTile.cs @@ -51,7 +51,7 @@ namespace DotRecast.Detour.Dynamic.Io spanData = ToByteArray(buffer, width, depth, VoxelFile.PREFERRED_BYTE_ORDER); } - public VoxelTile(int tileX, int tileZ, Heightfield heightfield) + public VoxelTile(int tileX, int tileZ, RcHeightfield heightfield) { this.tileX = tileX; this.tileZ = tileZ; @@ -65,25 +65,25 @@ namespace DotRecast.Detour.Dynamic.Io spanData = SerializeSpans(heightfield, VoxelFile.PREFERRED_BYTE_ORDER); } - public Heightfield Heightfield() + public RcHeightfield Heightfield() { return VoxelFile.PREFERRED_BYTE_ORDER == RcByteOrder.BIG_ENDIAN ? HeightfieldBE() : HeightfieldLE(); } - private Heightfield HeightfieldBE() + private RcHeightfield HeightfieldBE() { - Heightfield hf = new Heightfield(width, depth, boundsMin, boundsMax, cellSize, cellHeight, borderSize); + RcHeightfield hf = new RcHeightfield(width, depth, boundsMin, boundsMax, cellSize, cellHeight, borderSize); int position = 0; for (int z = 0, pz = 0; z < depth; z++, pz += width) { for (int x = 0; x < width; x++) { - Span prev = null; + RcSpan prev = null; int spanCount = ByteUtils.GetShortBE(spanData, position); position += 2; for (int s = 0; s < spanCount; s++) { - Span span = new Span(); + RcSpan span = new RcSpan(); span.smin = ByteUtils.GetIntBE(spanData, position); position += 4; span.smax = ByteUtils.GetIntBE(spanData, position); @@ -107,20 +107,20 @@ namespace DotRecast.Detour.Dynamic.Io return hf; } - private Heightfield HeightfieldLE() + private RcHeightfield HeightfieldLE() { - Heightfield hf = new Heightfield(width, depth, boundsMin, boundsMax, cellSize, cellHeight, borderSize); + RcHeightfield hf = new RcHeightfield(width, depth, boundsMin, boundsMax, cellSize, cellHeight, borderSize); int position = 0; for (int z = 0, pz = 0; z < depth; z++, pz += width) { for (int x = 0; x < width; x++) { - Span prev = null; + RcSpan prev = null; int spanCount = ByteUtils.GetShortLE(spanData, position); position += 2; for (int s = 0; s < spanCount; s++) { - Span span = new Span(); + RcSpan span = new RcSpan(); span.smin = ByteUtils.GetIntLE(spanData, position); position += 4; span.smax = ByteUtils.GetIntLE(spanData, position); @@ -144,7 +144,7 @@ namespace DotRecast.Detour.Dynamic.Io return hf; } - private byte[] SerializeSpans(Heightfield heightfield, RcByteOrder order) + private byte[] SerializeSpans(RcHeightfield heightfield, RcByteOrder order) { int[] counts = new int[heightfield.width * heightfield.height]; int totalCount = 0; @@ -152,7 +152,7 @@ namespace DotRecast.Detour.Dynamic.Io { for (int x = 0; x < heightfield.width; x++) { - Span span = heightfield.spans[pz + x]; + RcSpan span = heightfield.spans[pz + x]; while (span != null) { counts[pz + x]++; @@ -169,7 +169,7 @@ namespace DotRecast.Detour.Dynamic.Io for (int x = 0; x < heightfield.width; x++) { position = ByteUtils.PutShort(counts[pz + x], data, position, order); - Span span = heightfield.spans[pz + x]; + RcSpan span = heightfield.spans[pz + x]; while (span != null) { position = ByteUtils.PutInt(span.smin, data, position, order); diff --git a/src/DotRecast.Detour.Dynamic/VoxelQuery.cs b/src/DotRecast.Detour.Dynamic/VoxelQuery.cs index efcfbeb..2a17cc7 100644 --- a/src/DotRecast.Detour.Dynamic/VoxelQuery.cs +++ b/src/DotRecast.Detour.Dynamic/VoxelQuery.cs @@ -32,9 +32,9 @@ namespace DotRecast.Detour.Dynamic private readonly RcVec3f origin; private readonly float tileWidth; private readonly float tileDepth; - private readonly Func heightfieldProvider; + private readonly Func heightfieldProvider; - public VoxelQuery(RcVec3f origin, float tileWidth, float tileDepth, Func heightfieldProvider) + public VoxelQuery(RcVec3f origin, float tileWidth, float tileDepth, Func heightfieldProvider) { this.origin = origin; this.tileWidth = tileWidth; @@ -109,7 +109,7 @@ namespace DotRecast.Detour.Dynamic private float? TraversHeightfield(int x, int z, RcVec3f start, RcVec3f end, float tMin, float tMax) { - Heightfield hf = heightfieldProvider.Invoke(x, z); + RcHeightfield hf = heightfieldProvider.Invoke(x, z); if (null != hf) { float tx = end.x - start.x; @@ -146,7 +146,7 @@ namespace DotRecast.Detour.Dynamic float y2 = start.y + ty * (tMin + Math.Min(tMaxX, tMaxZ)) - hf.bmin.y; float ymin = Math.Min(y1, y2) / hf.ch; float ymax = Math.Max(y1, y2) / hf.ch; - Span span = hf.spans[sx + sz * hf.width]; + RcSpan span = hf.spans[sx + sz * hf.width]; while (span != null) { if (span.smin <= ymin && span.smax >= ymax) diff --git a/src/DotRecast.Detour.Extras/Jumplink/EdgeExtractor.cs b/src/DotRecast.Detour.Extras/Jumplink/EdgeExtractor.cs index 8d8dfd6..2fb90d4 100644 --- a/src/DotRecast.Detour.Extras/Jumplink/EdgeExtractor.cs +++ b/src/DotRecast.Detour.Extras/Jumplink/EdgeExtractor.cs @@ -1,14 +1,14 @@ using System.Collections.Generic; using DotRecast.Core; using DotRecast.Recast; -using static DotRecast.Recast.RecastConstants; +using static DotRecast.Recast.RcConstants; namespace DotRecast.Detour.Extras.Jumplink { public class EdgeExtractor { - public JumpEdge[] ExtractEdges(PolyMesh mesh) + public JumpEdge[] ExtractEdges(RcPolyMesh mesh) { List edges = new List(); if (mesh != null) diff --git a/src/DotRecast.Detour.Extras/Jumplink/TrajectorySampler.cs b/src/DotRecast.Detour.Extras/Jumplink/TrajectorySampler.cs index dda3195..b8dba34 100644 --- a/src/DotRecast.Detour.Extras/Jumplink/TrajectorySampler.cs +++ b/src/DotRecast.Detour.Extras/Jumplink/TrajectorySampler.cs @@ -7,7 +7,7 @@ namespace DotRecast.Detour.Extras.Jumplink { class TrajectorySampler { - public void Sample(JumpLinkBuilderConfig acfg, Heightfield heightfield, EdgeSampler es) + public void Sample(JumpLinkBuilderConfig acfg, RcHeightfield heightfield, EdgeSampler es) { int nsamples = es.start.gsamples.Length; for (int i = 0; i < nsamples; ++i) @@ -32,7 +32,7 @@ namespace DotRecast.Detour.Extras.Jumplink } } - private bool SampleTrajectory(JumpLinkBuilderConfig acfg, Heightfield solid, RcVec3f pa, RcVec3f pb, Trajectory tra) + private bool SampleTrajectory(JumpLinkBuilderConfig acfg, RcHeightfield solid, RcVec3f pa, RcVec3f pb, Trajectory tra) { float cs = Math.Min(acfg.cellSize, acfg.cellHeight); float d = RcVec3f.Dist2D(pa, pb) + Math.Abs(pa.y - pb.y); @@ -50,7 +50,7 @@ namespace DotRecast.Detour.Extras.Jumplink return true; } - private bool CheckHeightfieldCollision(Heightfield solid, float x, float ymin, float ymax, float z) + private bool CheckHeightfieldCollision(RcHeightfield solid, float x, float ymin, float ymax, float z) { int w = solid.width; int h = solid.height; @@ -65,7 +65,7 @@ namespace DotRecast.Detour.Extras.Jumplink return false; } - Span s = solid.spans[ix + iz * w]; + RcSpan s = solid.spans[ix + iz * w]; if (s == null) { return false; diff --git a/src/DotRecast.Detour.TileCache/TileCacheBuilder.cs b/src/DotRecast.Detour.TileCache/TileCacheBuilder.cs index ec83fa1..4d5b850 100644 --- a/src/DotRecast.Detour.TileCache/TileCacheBuilder.cs +++ b/src/DotRecast.Detour.TileCache/TileCacheBuilder.cs @@ -756,10 +756,10 @@ namespace DotRecast.Detour.TileCache int nextEdge = nverts; int edgeCount = 0; - Edge[] edges = new Edge[maxEdgeCount]; + RcEdge[] edges = new RcEdge[maxEdgeCount]; for (int i = 0; i < maxEdgeCount; i++) { - edges[i] = new Edge(); + edges[i] = new RcEdge(); } for (int i = 0; i < nverts; i++) @@ -778,7 +778,7 @@ namespace DotRecast.Detour.TileCache : polys[t + j + 1]; if (v0 < v1) { - Edge edge = edges[edgeCount]; + RcEdge edge = edges[edgeCount]; edge.vert[0] = v0; edge.vert[1] = v1; edge.poly[0] = i; @@ -809,7 +809,7 @@ namespace DotRecast.Detour.TileCache bool found = false; for (int e = firstEdge[v1]; e != DT_TILECACHE_NULL_IDX; e = firstEdge[nextEdge + e]) { - Edge edge = edges[e]; + RcEdge edge = edges[e]; if (edge.vert[1] == v0 && edge.poly[0] == edge.poly[1]) { edge.poly[1] = i; @@ -822,7 +822,7 @@ namespace DotRecast.Detour.TileCache if (!found) { // Matching edge not found, it is an open edge, add it. - Edge edge = edges[edgeCount]; + RcEdge edge = edges[edgeCount]; edge.vert[0] = v1; edge.vert[1] = v0; edge.poly[0] = (short)i; @@ -868,7 +868,7 @@ namespace DotRecast.Detour.TileCache for (int m = 0; m < edgeCount; ++m) { - Edge e = edges[m]; + RcEdge e = edges[m]; // Skip connected edges. if (e.poly[0] != e.poly[1]) continue; @@ -908,7 +908,7 @@ namespace DotRecast.Detour.TileCache for (int m = 0; m < edgeCount; ++m) { - Edge e = edges[m]; + RcEdge e = edges[m]; // Skip connected edges. if (e.poly[0] != e.poly[1]) continue; @@ -939,7 +939,7 @@ namespace DotRecast.Detour.TileCache // Store adjacency for (int i = 0; i < edgeCount; ++i) { - Edge e = edges[i]; + RcEdge e = edges[i]; if (e.poly[0] != e.poly[1]) { int p0 = e.poly[0] * maxVertsPerPoly * 2; diff --git a/src/DotRecast.Recast.Demo/Draw/RecastDebugDraw.cs b/src/DotRecast.Recast.Demo/Draw/RecastDebugDraw.cs index 5f1a897..d09392b 100644 --- a/src/DotRecast.Recast.Demo/Draw/RecastDebugDraw.cs +++ b/src/DotRecast.Recast.Demo/Draw/RecastDebugDraw.cs @@ -476,7 +476,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawCompactHeightfieldSolid(CompactHeightfield chf) + public void DebugDrawCompactHeightfieldSolid(RcCompactHeightfield chf) { float cs = chf.cs; float ch = chf.ch; @@ -489,11 +489,11 @@ public class RecastDebugDraw : DebugDraw { float fx = chf.bmin.x + x * cs; float fz = chf.bmin.z + y * cs; - CompactCell c = chf.cells[x + y * chf.width]; + RcCompactCell c = chf.cells[x + y * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int area = chf.areas[i]; int color; @@ -501,7 +501,7 @@ public class RecastDebugDraw : DebugDraw { color = DuRGBA(0, 192, 255, 64); } - else if (area == RecastConstants.RC_NULL_AREA) + else if (area == RcConstants.RC_NULL_AREA) { color = DuRGBA(0, 0, 0, 64); } @@ -522,7 +522,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawRegionConnections(ContourSet cset) + public void DebugDrawRegionConnections(RcContourSet cset) { float alpha = 1f; @@ -536,7 +536,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; + RcContour cont = cset.conts[i]; RcVec3f pos = GetContourCenter(cont, orig, cs, ch); for (int j = 0; j < cont.nverts; ++j) { @@ -546,7 +546,7 @@ public class RecastDebugDraw : DebugDraw continue; } - Contour cont2 = FindContourFromSet(cset, (short)cont.verts[v + 3]); + RcContour cont2 = FindContourFromSet(cset, (short)cont.verts[v + 3]); if (cont2 != null) { RcVec3f pos2 = GetContourCenter(cont2, orig, cs, ch); @@ -563,7 +563,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; + RcContour cont = cset.conts[i]; int col = DuDarkenCol(DuIntToCol(cont.reg, a)); RcVec3f pos = GetContourCenter(cont, orig, cs, ch); Vertex(pos, col); @@ -572,7 +572,7 @@ public class RecastDebugDraw : DebugDraw End(); } - private RcVec3f GetContourCenter(Contour cont, RcVec3f orig, float cs, float ch) + private RcVec3f GetContourCenter(RcContour cont, RcVec3f orig, float cs, float ch) { RcVec3f center = new RcVec3f(); center.x = 0; @@ -601,7 +601,7 @@ public class RecastDebugDraw : DebugDraw return center; } - private Contour FindContourFromSet(ContourSet cset, int reg) + private RcContour FindContourFromSet(RcContourSet cset, int reg) { for (int i = 0; i < cset.conts.Count; ++i) { @@ -614,7 +614,7 @@ public class RecastDebugDraw : DebugDraw return null; } - public void DebugDrawRawContours(ContourSet cset, float alpha) + public void DebugDrawRawContours(RcContourSet cset, float alpha) { RcVec3f orig = cset.bmin; float cs = cset.cs; @@ -626,7 +626,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour c = cset.conts[i]; + RcContour c = cset.conts[i]; int color = DuIntToCol(c.reg, a); for (int j = 0; j < c.nrverts; ++j) @@ -662,7 +662,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour c = cset.conts[i]; + RcContour c = cset.conts[i]; int color = DuDarkenCol(DuIntToCol(c.reg, a)); for (int j = 0; j < c.nrverts; ++j) @@ -673,7 +673,7 @@ public class RecastDebugDraw : DebugDraw int v3 = c.rverts[j * 4 + 3]; float off = 0; int colv = color; - if ((v3 & RecastConstants.RC_BORDER_VERTEX) != 0) + if ((v3 & RcConstants.RC_BORDER_VERTEX) != 0) { colv = DuRGBA(255, 255, 255, a); off = ch * 2; @@ -689,7 +689,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawContours(ContourSet cset) + public void DebugDrawContours(RcContourSet cset) { float alpha = 1f; RcVec3f orig = cset.bmin; @@ -702,7 +702,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour c = cset.conts[i]; + RcContour c = cset.conts[i]; if (c.nverts == 0) { continue; @@ -720,7 +720,7 @@ public class RecastDebugDraw : DebugDraw int vb0 = c.verts[j * 4]; int vb1 = c.verts[j * 4 + 1]; int vb2 = c.verts[j * 4 + 2]; - int col = (va3 & RecastConstants.RC_AREA_BORDER) != 0 ? bcolor : color; + int col = (va3 & RcConstants.RC_AREA_BORDER) != 0 ? bcolor : color; float fx = orig.x + va0 * cs; float fy = orig.y + (va1 + 1 + (i & 1)) * ch; @@ -740,7 +740,7 @@ public class RecastDebugDraw : DebugDraw for (int i = 0; i < cset.conts.Count; ++i) { - Contour c = cset.conts[i]; + RcContour c = cset.conts[i]; int color = DuDarkenCol(DuIntToCol(c.reg, a)); for (int j = 0; j < c.nverts; ++j) @@ -751,7 +751,7 @@ public class RecastDebugDraw : DebugDraw int v3 = c.verts[j * 4 + 3]; float off = 0; int colv = color; - if ((v3 & RecastConstants.RC_BORDER_VERTEX) != 0) + if ((v3 & RcConstants.RC_BORDER_VERTEX) != 0) { colv = DuRGBA(255, 255, 255, a); off = ch * 2; @@ -767,7 +767,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawHeightfieldSolid(Heightfield hf) + public void DebugDrawHeightfieldSolid(RcHeightfield hf) { if (!FrustumTest(hf.bmin, hf.bmax)) { @@ -792,7 +792,7 @@ public class RecastDebugDraw : DebugDraw { float fx = orig.x + x * cs; float fz = orig.z + y * cs; - Span s = hf.spans[x + y * w]; + RcSpan s = hf.spans[x + y * w]; while (s != null) { AppendBox(fx, orig.y + s.smin * ch, fz, fx + cs, orig.y + s.smax * ch, fz + cs, fcol); @@ -804,7 +804,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawHeightfieldWalkable(Heightfield hf) + public void DebugDrawHeightfieldWalkable(RcHeightfield hf) { RcVec3f orig = hf.bmin; float cs = hf.cs; @@ -824,14 +824,14 @@ public class RecastDebugDraw : DebugDraw { float fx = orig.x + x * cs; float fz = orig.z + y * cs; - Span s = hf.spans[x + y * w]; + RcSpan s = hf.spans[x + y * w]; while (s != null) { if (s.area == SampleAreaModifications.SAMPLE_POLYAREA_TYPE_WALKABLE) { fcol[0] = DuRGBA(64, 128, 160, 255); } - else if (s.area == RecastConstants.RC_NULL_AREA) + else if (s.area == RcConstants.RC_NULL_AREA) { fcol[0] = DuRGBA(64, 64, 64, 255); } @@ -849,7 +849,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawCompactHeightfieldRegions(CompactHeightfield chf) + public void DebugDrawCompactHeightfieldRegions(RcCompactHeightfield chf) { float cs = chf.cs; float ch = chf.ch; @@ -862,11 +862,11 @@ public class RecastDebugDraw : DebugDraw { float fx = chf.bmin.x + x * cs; float fz = chf.bmin.z + y * cs; - CompactCell c = chf.cells[x + y * chf.width]; + RcCompactCell c = chf.cells[x + y * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; float fy = chf.bmin.y + (s.y) * ch; int color; if (s.reg != 0) @@ -889,7 +889,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawCompactHeightfieldDistance(CompactHeightfield chf) + public void DebugDrawCompactHeightfieldDistance(RcCompactHeightfield chf) { if (chf.dist == null) { @@ -915,11 +915,11 @@ public class RecastDebugDraw : DebugDraw { float fx = chf.bmin.x + x * cs; float fz = chf.bmin.z + y * cs; - CompactCell c = chf.cells[x + y * chf.width]; + RcCompactCell c = chf.cells[x + y * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; float fy = chf.bmin.y + (s.y + 1) * ch; char cd = (char)(chf.dist[i] * dscale); int color = DuRGBA(cd, cd, cd, 255); @@ -934,7 +934,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawPolyMesh(PolyMesh mesh) + public void DebugDrawPolyMesh(RcPolyMesh mesh) { int nvp = mesh.nvp; float cs = mesh.cs; @@ -953,7 +953,7 @@ public class RecastDebugDraw : DebugDraw { color = DuRGBA(0, 192, 255, 64); } - else if (area == RecastConstants.RC_NULL_AREA) + else if (area == RcConstants.RC_NULL_AREA) { color = DuRGBA(0, 0, 0, 64); } @@ -965,7 +965,7 @@ public class RecastDebugDraw : DebugDraw int[] vi = new int[3]; for (int j = 2; j < nvp; ++j) { - if (mesh.polys[p + j] == RecastConstants.RC_MESH_NULL_IDX) + if (mesh.polys[p + j] == RcConstants.RC_MESH_NULL_IDX) { break; } @@ -996,7 +996,7 @@ public class RecastDebugDraw : DebugDraw int p = i * nvp * 2; for (int j = 0; j < nvp; ++j) { - if (mesh.polys[p + j] == RecastConstants.RC_MESH_NULL_IDX) + if (mesh.polys[p + j] == RcConstants.RC_MESH_NULL_IDX) { break; } @@ -1006,7 +1006,7 @@ public class RecastDebugDraw : DebugDraw continue; } - int nj = (j + 1 >= nvp || mesh.polys[p + j + 1] == RecastConstants.RC_MESH_NULL_IDX) ? 0 : j + 1; + int nj = (j + 1 >= nvp || mesh.polys[p + j + 1] == RcConstants.RC_MESH_NULL_IDX) ? 0 : j + 1; int[] vi = { mesh.polys[p + j], mesh.polys[p + nj] }; for (int k = 0; k < 2; ++k) @@ -1030,7 +1030,7 @@ public class RecastDebugDraw : DebugDraw int p = i * nvp * 2; for (int j = 0; j < nvp; ++j) { - if (mesh.polys[p + j] == RecastConstants.RC_MESH_NULL_IDX) + if (mesh.polys[p + j] == RcConstants.RC_MESH_NULL_IDX) { break; } @@ -1040,7 +1040,7 @@ public class RecastDebugDraw : DebugDraw continue; } - int nj = (j + 1 >= nvp || mesh.polys[p + j + 1] == RecastConstants.RC_MESH_NULL_IDX) ? 0 : j + 1; + int nj = (j + 1 >= nvp || mesh.polys[p + j + 1] == RcConstants.RC_MESH_NULL_IDX) ? 0 : j + 1; int[] vi = { mesh.polys[p + j], mesh.polys[p + nj] }; int col = colb; @@ -1076,7 +1076,7 @@ public class RecastDebugDraw : DebugDraw End(); } - public void DebugDrawPolyMeshDetail(PolyMeshDetail dmesh) + public void DebugDrawPolyMeshDetail(RcPolyMeshDetail dmesh) { Begin(DebugDrawPrimitives.TRIS); diff --git a/src/DotRecast.Recast.DemoTool/Builder/AbstractNavMeshBuilder.cs b/src/DotRecast.Recast.DemoTool/Builder/AbstractNavMeshBuilder.cs index ac25c31..5d00c78 100644 --- a/src/DotRecast.Recast.DemoTool/Builder/AbstractNavMeshBuilder.cs +++ b/src/DotRecast.Recast.DemoTool/Builder/AbstractNavMeshBuilder.cs @@ -9,8 +9,8 @@ namespace DotRecast.Recast.DemoTool.Builder float m_cellHeight, float m_agentHeight, float m_agentRadius, float m_agentMaxClimb, RecastBuilderResult rcResult) { - PolyMesh m_pmesh = rcResult.GetMesh(); - PolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); + RcPolyMesh m_pmesh = rcResult.GetMesh(); + RcPolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); NavMeshDataCreateParams option = new NavMeshDataCreateParams(); for (int i = 0; i < m_pmesh.npolys; ++i) { diff --git a/src/DotRecast.Recast.DemoTool/Builder/SoloNavMeshBuilder.cs b/src/DotRecast.Recast.DemoTool/Builder/SoloNavMeshBuilder.cs index f885b25..cbd03db 100644 --- a/src/DotRecast.Recast.DemoTool/Builder/SoloNavMeshBuilder.cs +++ b/src/DotRecast.Recast.DemoTool/Builder/SoloNavMeshBuilder.cs @@ -53,7 +53,7 @@ namespace DotRecast.Recast.DemoTool.Builder float detailSampleDist, float detailSampleMaxError, bool filterLowHangingObstacles, bool filterLedgeSpans, bool filterWalkableLowHeightSpans) { - RecastConfig cfg = new RecastConfig(partitionType, cellSize, cellHeight, agentMaxSlope, filterLowHangingObstacles, + RcConfig cfg = new RcConfig(partitionType, cellSize, cellHeight, agentMaxSlope, filterLowHangingObstacles, filterLedgeSpans, filterWalkableLowHeightSpans, agentHeight, agentRadius, agentMaxClimb, regionMinSize, regionMergeSize, edgeMaxLen, edgeMaxError, vertsPerPoly, detailSampleDist, detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_WALKABLE, true); diff --git a/src/DotRecast.Recast.DemoTool/Builder/TileNavMeshBuilder.cs b/src/DotRecast.Recast.DemoTool/Builder/TileNavMeshBuilder.cs index 5280ed2..2d9936b 100644 --- a/src/DotRecast.Recast.DemoTool/Builder/TileNavMeshBuilder.cs +++ b/src/DotRecast.Recast.DemoTool/Builder/TileNavMeshBuilder.cs @@ -54,7 +54,7 @@ namespace DotRecast.Recast.DemoTool.Builder int vertsPerPoly, float detailSampleDist, float detailSampleMaxError, bool filterLowHangingObstacles, bool filterLedgeSpans, bool filterWalkableLowHeightSpans, int tileSize) { - RecastConfig cfg = new RecastConfig(true, tileSize, tileSize, RecastConfig.CalcBorder(agentRadius, cellSize), + RcConfig cfg = new RcConfig(true, tileSize, tileSize, RcConfig.CalcBorder(agentRadius, cellSize), partitionType, cellSize, cellHeight, agentMaxSlope, filterLowHangingObstacles, filterLedgeSpans, filterWalkableLowHeightSpans, agentHeight, agentRadius, agentMaxClimb, regionMinSize * regionMinSize * cellSize * cellSize, diff --git a/src/DotRecast.Recast/CompareDiagDist.cs b/src/DotRecast.Recast/CompareDiagDist.cs index d694755..058607c 100644 --- a/src/DotRecast.Recast/CompareDiagDist.cs +++ b/src/DotRecast.Recast/CompareDiagDist.cs @@ -2,12 +2,12 @@ namespace DotRecast.Recast { - public class CompareDiagDist : IComparer + public class CompareDiagDist : IComparer { - public int Compare(PotentialDiagonal va, PotentialDiagonal vb) + public int Compare(RcPotentialDiagonal va, RcPotentialDiagonal vb) { - PotentialDiagonal a = va; - PotentialDiagonal b = vb; + RcPotentialDiagonal a = va; + RcPotentialDiagonal b = vb; return a.dist.CompareTo(b.dist); } } diff --git a/src/DotRecast.Recast/CompareHoles.cs b/src/DotRecast.Recast/CompareHoles.cs index 07c33e9..c0e153b 100644 --- a/src/DotRecast.Recast/CompareHoles.cs +++ b/src/DotRecast.Recast/CompareHoles.cs @@ -2,9 +2,9 @@ namespace DotRecast.Recast { - public class CompareHoles : IComparer + public class CompareHoles : IComparer { - public int Compare(ContourHole a, ContourHole b) + public int Compare(RcContourHole a, RcContourHole b) { if (a.minx == b.minx) { diff --git a/src/DotRecast.Recast/ContourRegion.cs b/src/DotRecast.Recast/ContourRegion.cs deleted file mode 100644 index ab0c5ea..0000000 --- a/src/DotRecast.Recast/ContourRegion.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace DotRecast.Recast -{ - public class ContourRegion - { - public Contour outline; - public ContourHole[] holes; - public int nholes; - } -} \ No newline at end of file diff --git a/src/DotRecast.Recast/PolyMeshRaycast.cs b/src/DotRecast.Recast/PolyMeshRaycast.cs index 5e1a186..eeb43ac 100644 --- a/src/DotRecast.Recast/PolyMeshRaycast.cs +++ b/src/DotRecast.Recast/PolyMeshRaycast.cs @@ -41,7 +41,7 @@ namespace DotRecast.Recast return null; } - private static float? Raycast(PolyMesh poly, PolyMeshDetail meshDetail, RcVec3f sp, RcVec3f sq) + private static float? Raycast(RcPolyMesh poly, RcPolyMeshDetail meshDetail, RcVec3f sp, RcVec3f sq) { if (meshDetail != null) { diff --git a/src/DotRecast.Recast/CompactCell.cs b/src/DotRecast.Recast/RcCompactCell.cs similarity index 97% rename from src/DotRecast.Recast/CompactCell.cs rename to src/DotRecast.Recast/RcCompactCell.cs index 50367b6..07be110 100644 --- a/src/DotRecast.Recast/CompactCell.cs +++ b/src/DotRecast.Recast/RcCompactCell.cs @@ -21,7 +21,7 @@ freely, subject to the following restrictions: namespace DotRecast.Recast { /** Provides information on the content of a cell column in a compact heightfield. */ - public class CompactCell + public class RcCompactCell { /** Index to the first span in the column. */ public int index; diff --git a/src/DotRecast.Recast/CompactHeightfield.cs b/src/DotRecast.Recast/RcCompactHeightfield.cs similarity index 96% rename from src/DotRecast.Recast/CompactHeightfield.cs rename to src/DotRecast.Recast/RcCompactHeightfield.cs index 7af4361..372c8c7 100644 --- a/src/DotRecast.Recast/CompactHeightfield.cs +++ b/src/DotRecast.Recast/RcCompactHeightfield.cs @@ -23,7 +23,7 @@ using DotRecast.Core; namespace DotRecast.Recast { /** A compact, static heightfield representing unobstructed space. */ - public class CompactHeightfield + public class RcCompactHeightfield { /** The width of the heightfield. (Along the x-axis in cell units.) */ public int width; @@ -62,10 +62,10 @@ namespace DotRecast.Recast public float ch; /** Array of cells. [Size: #width*#height] */ - public CompactCell[] cells; + public RcCompactCell[] cells; /** Array of spans. [Size: #spanCount] */ - public CompactSpan[] spans; + public RcCompactSpan[] spans; /** Array containing border distance data. [Size: #spanCount] */ public int[] dist; diff --git a/src/DotRecast.Recast/CompactSpan.cs b/src/DotRecast.Recast/RcCompactSpan.cs similarity index 97% rename from src/DotRecast.Recast/CompactSpan.cs rename to src/DotRecast.Recast/RcCompactSpan.cs index 6c3bd27..de1e55d 100644 --- a/src/DotRecast.Recast/CompactSpan.cs +++ b/src/DotRecast.Recast/RcCompactSpan.cs @@ -21,7 +21,7 @@ freely, subject to the following restrictions: namespace DotRecast.Recast { /** Represents a span of unobstructed space within a compact heightfield. */ - public class CompactSpan + public class RcCompactSpan { /** The lower extent of the span. (Measured from the heightfield's base.) */ public int y; diff --git a/src/DotRecast.Recast/RecastConfig.cs b/src/DotRecast.Recast/RcConfig.cs similarity index 95% rename from src/DotRecast.Recast/RecastConfig.cs rename to src/DotRecast.Recast/RcConfig.cs index e3f068e..045d4b3 100644 --- a/src/DotRecast.Recast/RecastConfig.cs +++ b/src/DotRecast.Recast/RcConfig.cs @@ -22,9 +22,7 @@ using System; namespace DotRecast.Recast { - using static RecastConstants; - - public class RecastConfig + public class RcConfig { public readonly PartitionType partitionType; @@ -118,7 +116,7 @@ namespace DotRecast.Recast /** * Non-tiled build configuration */ - public RecastConfig(PartitionType partitionType, float cellSize, float cellHeight, float agentHeight, float agentRadius, + public RcConfig(PartitionType partitionType, float cellSize, float cellHeight, float agentHeight, float agentRadius, float agentMaxClimb, float agentMaxSlope, int regionMinSize, int regionMergeSize, float edgeMaxLen, float edgeMaxError, int vertsPerPoly, float detailSampleDist, float detailSampleMaxError, AreaModification walkableAreaMod) : this(partitionType, cellSize, cellHeight, agentMaxSlope, true, true, true, agentHeight, agentRadius, agentMaxClimb, @@ -130,7 +128,7 @@ namespace DotRecast.Recast /** * Non-tiled build configuration */ - public RecastConfig(PartitionType partitionType, float cellSize, float cellHeight, float agentMaxSlope, + public RcConfig(PartitionType partitionType, float cellSize, float cellHeight, float agentMaxSlope, bool filterLowHangingObstacles, bool filterLedgeSpans, bool filterWalkableLowHeightSpans, float agentHeight, float agentRadius, float agentMaxClimb, int regionMinSize, int regionMergeSize, float edgeMaxLen, float edgeMaxError, int vertsPerPoly, float detailSampleDist, float detailSampleMaxError, AreaModification walkableAreaMod, @@ -142,7 +140,7 @@ namespace DotRecast.Recast // Note: area = size*size in [Units: wu] } - public RecastConfig(bool useTiles, int tileSizeX, int tileSizeZ, int borderSize, PartitionType partitionType, + public RcConfig(bool useTiles, int tileSizeX, int tileSizeZ, int borderSize, PartitionType partitionType, float cellSize, float cellHeight, float agentMaxSlope, bool filterLowHangingObstacles, bool filterLedgeSpans, bool filterWalkableLowHeightSpans, float agentHeight, float agentRadius, float agentMaxClimb, float minRegionArea, float mergeRegionArea, float edgeMaxLen, float edgeMaxError, int vertsPerPoly, bool buildMeshDetail, diff --git a/src/DotRecast.Recast/RecastConstants.cs b/src/DotRecast.Recast/RcConstants.cs similarity index 98% rename from src/DotRecast.Recast/RecastConstants.cs rename to src/DotRecast.Recast/RcConstants.cs index 2fc4ac4..9d340c5 100644 --- a/src/DotRecast.Recast/RecastConstants.cs +++ b/src/DotRecast.Recast/RcConstants.cs @@ -20,7 +20,7 @@ freely, subject to the following restrictions: namespace DotRecast.Recast { - public static class RecastConstants + public static class RcConstants { public const int RC_NULL_AREA = 0; public const int RC_NOT_CONNECTED = 0x3f; diff --git a/src/DotRecast.Recast/Contour.cs b/src/DotRecast.Recast/RcContour.cs similarity index 98% rename from src/DotRecast.Recast/Contour.cs rename to src/DotRecast.Recast/RcContour.cs index 52eb92d..2deb6d5 100644 --- a/src/DotRecast.Recast/Contour.cs +++ b/src/DotRecast.Recast/RcContour.cs @@ -21,7 +21,7 @@ freely, subject to the following restrictions: namespace DotRecast.Recast { /** Represents a simple, non-overlapping contour in field space. */ - public class Contour + public class RcContour { /** Simplified contour vertex and connection data. [Size: 4 * #nverts] */ public int[] verts; diff --git a/src/DotRecast.Recast/ContourHole.cs b/src/DotRecast.Recast/RcContourHole.cs similarity index 65% rename from src/DotRecast.Recast/ContourHole.cs rename to src/DotRecast.Recast/RcContourHole.cs index cbb9ea7..6c3b027 100644 --- a/src/DotRecast.Recast/ContourHole.cs +++ b/src/DotRecast.Recast/RcContourHole.cs @@ -1,10 +1,10 @@ namespace DotRecast.Recast { - public class ContourHole + public class RcContourHole { public int leftmost; public int minx; public int minz; - public Contour contour; + public RcContour contour; } } \ No newline at end of file diff --git a/src/DotRecast.Recast/RcContourRegion.cs b/src/DotRecast.Recast/RcContourRegion.cs new file mode 100644 index 0000000..9e8f715 --- /dev/null +++ b/src/DotRecast.Recast/RcContourRegion.cs @@ -0,0 +1,9 @@ +namespace DotRecast.Recast +{ + public class RcContourRegion + { + public RcContour outline; + public RcContourHole[] holes; + public int nholes; + } +} \ No newline at end of file diff --git a/src/DotRecast.Recast/ContourSet.cs b/src/DotRecast.Recast/RcContourSet.cs similarity index 95% rename from src/DotRecast.Recast/ContourSet.cs rename to src/DotRecast.Recast/RcContourSet.cs index ef864b3..b360be6 100644 --- a/src/DotRecast.Recast/ContourSet.cs +++ b/src/DotRecast.Recast/RcContourSet.cs @@ -24,10 +24,10 @@ using DotRecast.Core; namespace DotRecast.Recast { /** Represents a group of related contours. */ - public class ContourSet + public class RcContourSet { /** A list of the contours in the set. */ - public List conts = new List(); + public List conts = new List(); /** The minimum bounds in world space. [(x, y, z)] */ public RcVec3f bmin = new RcVec3f(); diff --git a/src/DotRecast.Recast/HeightPatch.cs b/src/DotRecast.Recast/RcHeightPatch.cs similarity index 84% rename from src/DotRecast.Recast/HeightPatch.cs rename to src/DotRecast.Recast/RcHeightPatch.cs index 8360200..072aa13 100644 --- a/src/DotRecast.Recast/HeightPatch.cs +++ b/src/DotRecast.Recast/RcHeightPatch.cs @@ -1,6 +1,6 @@ namespace DotRecast.Recast { - public class HeightPatch + public class RcHeightPatch { public int xmin; public int ymin; diff --git a/src/DotRecast.Recast/Heightfield.cs b/src/DotRecast.Recast/RcHeightfield.cs similarity index 90% rename from src/DotRecast.Recast/Heightfield.cs rename to src/DotRecast.Recast/RcHeightfield.cs index ffb927d..c27e3b6 100644 --- a/src/DotRecast.Recast/Heightfield.cs +++ b/src/DotRecast.Recast/RcHeightfield.cs @@ -23,7 +23,7 @@ using DotRecast.Core; namespace DotRecast.Recast { /** Represents a heightfield layer within a layer set. */ - public class Heightfield + public class RcHeightfield { /** The width of the heightfield. (Along the x-axis in cell units.) */ public readonly int width; @@ -44,12 +44,12 @@ namespace DotRecast.Recast public readonly float ch; /** Heightfield of spans (width*height). */ - public readonly Span[] spans; + public readonly RcSpan[] spans; /** Border size in cell units */ public readonly int borderSize; - public Heightfield(int width, int height, RcVec3f bmin, RcVec3f bmax, float cs, float ch, int borderSize) + public RcHeightfield(int width, int height, RcVec3f bmin, RcVec3f bmax, float cs, float ch, int borderSize) { this.width = width; this.height = height; @@ -58,7 +58,7 @@ namespace DotRecast.Recast this.cs = cs; this.ch = ch; this.borderSize = borderSize; - spans = new Span[width * height]; + spans = new RcSpan[width * height]; } } } \ No newline at end of file diff --git a/src/DotRecast.Recast/HeightfieldLayer.cs b/src/DotRecast.Recast/RcHeightfieldLayer.cs similarity index 97% rename from src/DotRecast.Recast/HeightfieldLayer.cs rename to src/DotRecast.Recast/RcHeightfieldLayer.cs index 6f4b7b2..3e35219 100644 --- a/src/DotRecast.Recast/HeightfieldLayer.cs +++ b/src/DotRecast.Recast/RcHeightfieldLayer.cs @@ -4,7 +4,7 @@ namespace DotRecast.Recast { /// Represents a heightfield layer within a layer set. /// @see rcHeightfieldLayerSet - public class HeightfieldLayer + public class RcHeightfieldLayer { public RcVec3f bmin = new RcVec3f(); diff --git a/src/DotRecast.Recast/HeightfieldLayerSet.cs b/src/DotRecast.Recast/RcHeightfieldLayerSet.cs similarity index 90% rename from src/DotRecast.Recast/HeightfieldLayerSet.cs rename to src/DotRecast.Recast/RcHeightfieldLayerSet.cs index 435b57b..27797d5 100644 --- a/src/DotRecast.Recast/HeightfieldLayerSet.cs +++ b/src/DotRecast.Recast/RcHeightfieldLayerSet.cs @@ -25,8 +25,8 @@ namespace DotRecast.Recast /// Represents a set of heightfield layers. /// @ingroup recast /// @see rcAllocHeightfieldLayerSet, rcFreeHeightfieldLayerSet - public class HeightfieldLayerSet + public class RcHeightfieldLayerSet { - public HeightfieldLayer[] layers; /// < The layers in the set. [Size: #nlayers] + public RcHeightfieldLayer[] layers; /// < The layers in the set. [Size: #nlayers] } } \ No newline at end of file diff --git a/src/DotRecast.Recast/LayerRegion.cs b/src/DotRecast.Recast/RcLayerRegion.cs similarity index 86% rename from src/DotRecast.Recast/LayerRegion.cs rename to src/DotRecast.Recast/RcLayerRegion.cs index a6bb3c8..7de3803 100644 --- a/src/DotRecast.Recast/LayerRegion.cs +++ b/src/DotRecast.Recast/RcLayerRegion.cs @@ -2,7 +2,7 @@ namespace DotRecast.Recast { - public class LayerRegion + public class RcLayerRegion { public int id; public int layerId; @@ -11,7 +11,7 @@ namespace DotRecast.Recast public List layers; public List neis; - public LayerRegion(int i) + public RcLayerRegion(int i) { id = i; ymin = 0xFFFF; diff --git a/src/DotRecast.Recast/PolyMesh.cs b/src/DotRecast.Recast/RcPolyMesh.cs similarity index 98% rename from src/DotRecast.Recast/PolyMesh.cs rename to src/DotRecast.Recast/RcPolyMesh.cs index f937794..149149c 100644 --- a/src/DotRecast.Recast/PolyMesh.cs +++ b/src/DotRecast.Recast/RcPolyMesh.cs @@ -23,7 +23,7 @@ using DotRecast.Core; namespace DotRecast.Recast { /** Represents a polygon mesh suitable for use in building a navigation mesh. */ - public class PolyMesh + public class RcPolyMesh { /** The mesh vertices. [Form: (x, y, z) coordinates * #nverts] */ public int[] verts; diff --git a/src/DotRecast.Recast/PolyMeshDetail.cs b/src/DotRecast.Recast/RcPolyMeshDetail.cs similarity index 97% rename from src/DotRecast.Recast/PolyMeshDetail.cs rename to src/DotRecast.Recast/RcPolyMeshDetail.cs index 9a5c68d..73ac597 100644 --- a/src/DotRecast.Recast/PolyMeshDetail.cs +++ b/src/DotRecast.Recast/RcPolyMeshDetail.cs @@ -24,7 +24,7 @@ namespace DotRecast.Recast * Contains triangle meshes that represent detailed height data associated with the polygons in its associated polygon * mesh object. */ - public class PolyMeshDetail + public class RcPolyMeshDetail { /** The sub-mesh data. [Size: 4*#nmeshes] */ public int[] meshes; diff --git a/src/DotRecast.Recast/PotentialDiagonal.cs b/src/DotRecast.Recast/RcPotentialDiagonal.cs similarity index 71% rename from src/DotRecast.Recast/PotentialDiagonal.cs rename to src/DotRecast.Recast/RcPotentialDiagonal.cs index 1195b73..8b04328 100644 --- a/src/DotRecast.Recast/PotentialDiagonal.cs +++ b/src/DotRecast.Recast/RcPotentialDiagonal.cs @@ -1,6 +1,6 @@ namespace DotRecast.Recast { - public class PotentialDiagonal + public class RcPotentialDiagonal { public int dist; public int vert; diff --git a/src/DotRecast.Recast/Region.cs b/src/DotRecast.Recast/RcRegion.cs similarity index 91% rename from src/DotRecast.Recast/Region.cs rename to src/DotRecast.Recast/RcRegion.cs index c7c7c13..9be4c60 100644 --- a/src/DotRecast.Recast/Region.cs +++ b/src/DotRecast.Recast/RcRegion.cs @@ -2,7 +2,7 @@ namespace DotRecast.Recast { - public class Region + public class RcRegion { public int spanCount; // Number of spans belonging to this region public int id; // ID of the region @@ -15,7 +15,7 @@ namespace DotRecast.Recast public List connections; public List floors; - public Region(int i) + public RcRegion(int i) { id = i; ymin = 0xFFFF; diff --git a/src/DotRecast.Recast/Span.cs b/src/DotRecast.Recast/RcSpan.cs similarity index 96% rename from src/DotRecast.Recast/Span.cs rename to src/DotRecast.Recast/RcSpan.cs index 12fef7a..068c073 100644 --- a/src/DotRecast.Recast/Span.cs +++ b/src/DotRecast.Recast/RcSpan.cs @@ -21,7 +21,7 @@ freely, subject to the following restrictions: namespace DotRecast.Recast { /** Represents a span in a heightfield. */ - public class Span + public class RcSpan { /** The lower limit of the span. [Limit: < smax] */ public int smin; @@ -33,6 +33,6 @@ namespace DotRecast.Recast public int area; /** The next span higher up in column. */ - public Span next; + public RcSpan next; } } \ No newline at end of file diff --git a/src/DotRecast.Recast/SweepSpan.cs b/src/DotRecast.Recast/RcSweepSpan.cs similarity index 86% rename from src/DotRecast.Recast/SweepSpan.cs rename to src/DotRecast.Recast/RcSweepSpan.cs index 6d63ab5..4dcb80b 100644 --- a/src/DotRecast.Recast/SweepSpan.cs +++ b/src/DotRecast.Recast/RcSweepSpan.cs @@ -1,6 +1,6 @@ namespace DotRecast.Recast { - public class SweepSpan + public class RcSweepSpan { public int rid; // row id public int id; // region id diff --git a/src/DotRecast.Recast/Recast.cs b/src/DotRecast.Recast/Recast.cs index 83f0b59..c85df63 100644 --- a/src/DotRecast.Recast/Recast.cs +++ b/src/DotRecast.Recast/Recast.cs @@ -23,7 +23,7 @@ using DotRecast.Core; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; public static class Recast { diff --git a/src/DotRecast.Recast/RecastArea.cs b/src/DotRecast.Recast/RecastArea.cs index c229514..a64663f 100644 --- a/src/DotRecast.Recast/RecastArea.cs +++ b/src/DotRecast.Recast/RecastArea.cs @@ -23,9 +23,9 @@ using DotRecast.Core; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; - public class RecastArea + public static class RecastArea { /// @par /// @@ -35,7 +35,7 @@ namespace DotRecast.Recast /// This method is usually called immediately after the heightfield has been built. /// /// @see rcCompactHeightfield, rcBuildCompactHeightfield, rcConfig::walkableRadius - public static void ErodeWalkableArea(Telemetry ctx, int radius, CompactHeightfield chf) + public static void ErodeWalkableArea(Telemetry ctx, int radius, RcCompactHeightfield chf) { int w = chf.width; int h = chf.height; @@ -48,7 +48,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (chf.areas[i] == RC_NULL_AREA) @@ -57,7 +57,7 @@ namespace DotRecast.Recast } else { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int nc = 0; for (int dir = 0; dir < 4; ++dir) { @@ -88,10 +88,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, 0) != RC_NOT_CONNECTED) { @@ -99,7 +99,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(0); int ay = y + RecastCommon.GetDirOffsetY(0); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 0); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; nd = Math.Min(dist[ai] + 2, 255); if (nd < dist[i]) dist[i] = nd; @@ -122,7 +122,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(3); int ay = y + RecastCommon.GetDirOffsetY(3); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 3); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; nd = Math.Min(dist[ai] + 2, 255); if (nd < dist[i]) dist[i] = nd; @@ -147,10 +147,10 @@ namespace DotRecast.Recast { for (int x = w - 1; x >= 0; --x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, 2) != RC_NOT_CONNECTED) { @@ -158,7 +158,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(2); int ay = y + RecastCommon.GetDirOffsetY(2); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 2); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; nd = Math.Min(dist[ai] + 2, 255); if (nd < dist[i]) dist[i] = nd; @@ -181,7 +181,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(1); int ay = y + RecastCommon.GetDirOffsetY(1); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 1); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; nd = Math.Min(dist[ai] + 2, 255); if (nd < dist[i]) dist[i] = nd; @@ -215,7 +215,7 @@ namespace DotRecast.Recast /// such as #rcMarkBoxArea, #rcMarkConvexPolyArea, and #rcMarkCylinderArea. /// /// @see rcCompactHeightfield - public bool MedianFilterWalkableArea(Telemetry ctx, CompactHeightfield chf) + public static bool MedianFilterWalkableArea(Telemetry ctx, RcCompactHeightfield chf) { int w = chf.width; int h = chf.height; @@ -228,10 +228,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) { areas[i] = chf.areas[i]; @@ -252,7 +252,7 @@ namespace DotRecast.Recast if (chf.areas[ai] != RC_NULL_AREA) nei[dir * 2 + 0] = chf.areas[ai]; - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; int dir2 = (dir + 1) & 0x3; if (RecastCommon.GetCon(@as, dir2) != RC_NOT_CONNECTED) { @@ -283,7 +283,7 @@ namespace DotRecast.Recast /// The value of spacial parameters are in world units. /// /// @see rcCompactHeightfield, rcMedianFilterWalkableArea - public void MarkBoxArea(Telemetry ctx, float[] bmin, float[] bmax, AreaModification areaMod, CompactHeightfield chf) + public void MarkBoxArea(Telemetry ctx, float[] bmin, float[] bmax, AreaModification areaMod, RcCompactHeightfield chf) { ctx.StartTimer("MARK_BOX_AREA"); @@ -316,10 +316,10 @@ namespace DotRecast.Recast { for (int x = minx; x <= maxx; ++x) { - CompactCell c = chf.cells[x + z * chf.width]; + RcCompactCell c = chf.cells[x + z * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (s.y >= miny && s.y <= maxy) { if (chf.areas[i] != RC_NULL_AREA) @@ -358,7 +358,7 @@ namespace DotRecast.Recast /// /// @see rcCompactHeightfield, rcMedianFilterWalkableArea public static void MarkConvexPolyArea(Telemetry ctx, float[] verts, float hmin, float hmax, AreaModification areaMod, - CompactHeightfield chf) + RcCompactHeightfield chf) { ctx.StartTimer("MARK_CONVEXPOLY_AREA"); @@ -405,10 +405,10 @@ namespace DotRecast.Recast { for (int x = minx; x <= maxx; ++x) { - CompactCell c = chf.cells[x + z * chf.width]; + RcCompactCell c = chf.cells[x + z * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) continue; if (s.y >= miny && s.y <= maxy) @@ -430,7 +430,7 @@ namespace DotRecast.Recast ctx.StopTimer("MARK_CONVEXPOLY_AREA"); } - int OffsetPoly(float[] verts, int nverts, float offset, float[] outVerts, int maxOutVerts) + public static int OffsetPoly(float[] verts, int nverts, float offset, float[] outVerts, int maxOutVerts) { float MITER_LIMIT = 1.20f; @@ -513,8 +513,7 @@ namespace DotRecast.Recast /// The value of spacial parameters are in world units. /// /// @see rcCompactHeightfield, rcMedianFilterWalkableArea - public void MarkCylinderArea(Telemetry ctx, float[] pos, float r, float h, AreaModification areaMod, - CompactHeightfield chf) + public static void MarkCylinderArea(Telemetry ctx, float[] pos, float r, float h, AreaModification areaMod, RcCompactHeightfield chf) { ctx.StartTimer("MARK_CYLINDER_AREA"); @@ -557,10 +556,10 @@ namespace DotRecast.Recast { for (int x = minx; x <= maxx; ++x) { - CompactCell c = chf.cells[x + z * chf.width]; + RcCompactCell c = chf.cells[x + z * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) continue; diff --git a/src/DotRecast.Recast/RecastBuilder.cs b/src/DotRecast.Recast/RecastBuilder.cs index 387b4c1..43f05a1 100644 --- a/src/DotRecast.Recast/RecastBuilder.cs +++ b/src/DotRecast.Recast/RecastBuilder.cs @@ -41,7 +41,7 @@ namespace DotRecast.Recast this.progressListener = progressListener; } - public List BuildTiles(IInputGeomProvider geom, RecastConfig cfg, TaskFactory taskFactory) + public List BuildTiles(IInputGeomProvider geom, RcConfig cfg, TaskFactory taskFactory) { RcVec3f bmin = geom.GetMeshBoundsMin(); RcVec3f bmax = geom.GetMeshBoundsMax(); @@ -60,7 +60,7 @@ namespace DotRecast.Recast } - public Task BuildTilesAsync(IInputGeomProvider geom, RecastConfig cfg, int threads, List results, TaskFactory taskFactory, CancellationToken cancellationToken) + public Task BuildTilesAsync(IInputGeomProvider geom, RcConfig cfg, int threads, List results, TaskFactory taskFactory, CancellationToken cancellationToken) { RcVec3f bmin = geom.GetMeshBoundsMin(); RcVec3f bmax = geom.GetMeshBoundsMax(); @@ -78,7 +78,7 @@ namespace DotRecast.Recast return task; } - private Task BuildSingleThreadAsync(IInputGeomProvider geom, RecastConfig cfg, RcVec3f bmin, RcVec3f bmax, + private Task BuildSingleThreadAsync(IInputGeomProvider geom, RcConfig cfg, RcVec3f bmin, RcVec3f bmax, int tw, int th, List results) { RcAtomicInteger counter = new RcAtomicInteger(0); @@ -93,7 +93,7 @@ namespace DotRecast.Recast return Task.CompletedTask; } - private Task BuildMultiThreadAsync(IInputGeomProvider geom, RecastConfig cfg, RcVec3f bmin, RcVec3f bmax, + private Task BuildMultiThreadAsync(IInputGeomProvider geom, RcConfig cfg, RcVec3f bmin, RcVec3f bmax, int tw, int th, List results, TaskFactory taskFactory, CancellationToken cancellationToken) { RcAtomicInteger counter = new RcAtomicInteger(0); @@ -143,7 +143,7 @@ namespace DotRecast.Recast return Task.WhenAll(tasks.ToArray()); } - private RecastBuilderResult BuildTile(IInputGeomProvider geom, RecastConfig cfg, RcVec3f bmin, RcVec3f bmax, int tx, + private RecastBuilderResult BuildTile(IInputGeomProvider geom, RcConfig cfg, RcVec3f bmin, RcVec3f bmax, int tx, int ty, RcAtomicInteger counter, int total) { RecastBuilderResult result = Build(geom, new RecastBuilderConfig(cfg, bmin, bmax, tx, ty)); @@ -157,20 +157,20 @@ namespace DotRecast.Recast public RecastBuilderResult Build(IInputGeomProvider geom, RecastBuilderConfig builderCfg) { - RecastConfig cfg = builderCfg.cfg; + RcConfig cfg = builderCfg.cfg; Telemetry ctx = new Telemetry(); // // Step 1. Rasterize input polygon soup. // - Heightfield solid = RecastVoxelization.BuildSolidHeightfield(geom, builderCfg, ctx); + RcHeightfield solid = RecastVoxelization.BuildSolidHeightfield(geom, builderCfg, ctx); return Build(builderCfg.tileX, builderCfg.tileZ, geom, cfg, solid, ctx); } - public RecastBuilderResult Build(int tileX, int tileZ, IConvexVolumeProvider geom, RecastConfig cfg, Heightfield solid, + public RecastBuilderResult Build(int tileX, int tileZ, IConvexVolumeProvider geom, RcConfig cfg, RcHeightfield solid, Telemetry ctx) { FilterHeightfield(solid, cfg, ctx); - CompactHeightfield chf = BuildCompactHeightfield(geom, cfg, ctx, solid); + RcCompactHeightfield chf = BuildCompactHeightfield(geom, cfg, ctx, solid); // Partition the heightfield so that we can use simple algorithm later // to triangulate the walkable areas. @@ -235,20 +235,20 @@ namespace DotRecast.Recast // // Create contours. - ContourSet cset = RecastContour.BuildContours(ctx, chf, cfg.maxSimplificationError, cfg.maxEdgeLen, - RecastConstants.RC_CONTOUR_TESS_WALL_EDGES); + RcContourSet cset = RecastContour.BuildContours(ctx, chf, cfg.maxSimplificationError, cfg.maxEdgeLen, + RcConstants.RC_CONTOUR_TESS_WALL_EDGES); // // Step 6. Build polygons mesh from contours. // - PolyMesh pmesh = RecastMesh.BuildPolyMesh(ctx, cset, cfg.maxVertsPerPoly); + RcPolyMesh pmesh = RecastMesh.BuildPolyMesh(ctx, cset, cfg.maxVertsPerPoly); // // Step 7. Create detail mesh which allows to access approximate height // on each polygon. // - PolyMeshDetail dmesh = cfg.buildMeshDetail + RcPolyMeshDetail dmesh = cfg.buildMeshDetail ? RecastMeshDetail.BuildPolyMeshDetail(ctx, pmesh, chf, cfg.detailSampleDist, cfg.detailSampleMaxError) : null; return new RecastBuilderResult(tileX, tileZ, solid, chf, cset, pmesh, dmesh, ctx); @@ -257,7 +257,7 @@ namespace DotRecast.Recast /* * Step 2. Filter walkable surfaces. */ - private void FilterHeightfield(Heightfield solid, RecastConfig cfg, Telemetry ctx) + private void FilterHeightfield(RcHeightfield solid, RcConfig cfg, Telemetry ctx) { // Once all geometry is rasterized, we do initial pass of filtering to // remove unwanted overhangs caused by the conservative rasterization @@ -281,13 +281,13 @@ namespace DotRecast.Recast /* * Step 3. Partition walkable surface to simple regions. */ - private CompactHeightfield BuildCompactHeightfield(IConvexVolumeProvider volumeProvider, RecastConfig cfg, Telemetry ctx, - Heightfield solid) + private RcCompactHeightfield BuildCompactHeightfield(IConvexVolumeProvider volumeProvider, RcConfig cfg, Telemetry ctx, + RcHeightfield solid) { // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours // between walkable cells will be calculated. - CompactHeightfield chf = RecastCompact.BuildCompactHeightfield(ctx, cfg.walkableHeight, cfg.walkableClimb, solid); + RcCompactHeightfield chf = RecastCompact.BuildCompactHeightfield(ctx, cfg.walkableHeight, cfg.walkableClimb, solid); // Erode the walkable area by agent radius. RecastArea.ErodeWalkableArea(ctx, cfg.walkableRadius, chf); @@ -303,12 +303,12 @@ namespace DotRecast.Recast return chf; } - public HeightfieldLayerSet BuildLayers(IInputGeomProvider geom, RecastBuilderConfig builderCfg) + public RcHeightfieldLayerSet BuildLayers(IInputGeomProvider geom, RecastBuilderConfig builderCfg) { Telemetry ctx = new Telemetry(); - Heightfield solid = RecastVoxelization.BuildSolidHeightfield(geom, builderCfg, ctx); + RcHeightfield solid = RecastVoxelization.BuildSolidHeightfield(geom, builderCfg, ctx); FilterHeightfield(solid, builderCfg.cfg, ctx); - CompactHeightfield chf = BuildCompactHeightfield(geom, builderCfg.cfg, ctx, solid); + RcCompactHeightfield chf = BuildCompactHeightfield(geom, builderCfg.cfg, ctx, solid); return RecastLayers.BuildHeightfieldLayers(ctx, chf, builderCfg.cfg.walkableHeight); } } diff --git a/src/DotRecast.Recast/RecastBuilderConfig.cs b/src/DotRecast.Recast/RecastBuilderConfig.cs index 0908709..1407f81 100644 --- a/src/DotRecast.Recast/RecastBuilderConfig.cs +++ b/src/DotRecast.Recast/RecastBuilderConfig.cs @@ -24,7 +24,7 @@ namespace DotRecast.Recast { public class RecastBuilderConfig { - public readonly RecastConfig cfg; + public readonly RcConfig cfg; public readonly int tileX; public readonly int tileZ; @@ -41,11 +41,11 @@ namespace DotRecast.Recast /** The maximum bounds of the field's AABB. [(x, y, z)] [Units: wu] **/ public readonly RcVec3f bmax = new RcVec3f(); - public RecastBuilderConfig(RecastConfig cfg, RcVec3f bmin, RcVec3f bmax) : this(cfg, bmin, bmax, 0, 0) + public RecastBuilderConfig(RcConfig cfg, RcVec3f bmin, RcVec3f bmax) : this(cfg, bmin, bmax, 0, 0) { } - public RecastBuilderConfig(RecastConfig cfg, RcVec3f bmin, RcVec3f bmax, int tileX, int tileZ) + public RecastBuilderConfig(RcConfig cfg, RcVec3f bmin, RcVec3f bmax, int tileX, int tileZ) { this.tileX = tileX; this.tileZ = tileZ; diff --git a/src/DotRecast.Recast/RecastBuilderResult.cs b/src/DotRecast.Recast/RecastBuilderResult.cs index f883ead..4f36763 100644 --- a/src/DotRecast.Recast/RecastBuilderResult.cs +++ b/src/DotRecast.Recast/RecastBuilderResult.cs @@ -4,14 +4,14 @@ { public readonly int tileX; public readonly int tileZ; - private readonly CompactHeightfield chf; - private readonly ContourSet cs; - private readonly PolyMesh pmesh; - private readonly PolyMeshDetail dmesh; - private readonly Heightfield solid; + private readonly RcCompactHeightfield chf; + private readonly RcContourSet cs; + private readonly RcPolyMesh pmesh; + private readonly RcPolyMeshDetail dmesh; + private readonly RcHeightfield solid; private readonly Telemetry telemetry; - public RecastBuilderResult(int tileX, int tileZ, Heightfield solid, CompactHeightfield chf, ContourSet cs, PolyMesh pmesh, PolyMeshDetail dmesh, Telemetry ctx) + public RecastBuilderResult(int tileX, int tileZ, RcHeightfield solid, RcCompactHeightfield chf, RcContourSet cs, RcPolyMesh pmesh, RcPolyMeshDetail dmesh, Telemetry ctx) { this.tileX = tileX; this.tileZ = tileZ; @@ -23,27 +23,27 @@ telemetry = ctx; } - public PolyMesh GetMesh() + public RcPolyMesh GetMesh() { return pmesh; } - public PolyMeshDetail GetMeshDetail() + public RcPolyMeshDetail GetMeshDetail() { return dmesh; } - public CompactHeightfield GetCompactHeightfield() + public RcCompactHeightfield GetCompactHeightfield() { return chf; } - public ContourSet GetContourSet() + public RcContourSet GetContourSet() { return cs; } - public Heightfield GetSolidHeightfield() + public RcHeightfield GetSolidHeightfield() { return solid; } diff --git a/src/DotRecast.Recast/RecastCommon.cs b/src/DotRecast.Recast/RecastCommon.cs index ba87d85..1da3138 100644 --- a/src/DotRecast.Recast/RecastCommon.cs +++ b/src/DotRecast.Recast/RecastCommon.cs @@ -32,7 +32,7 @@ namespace DotRecast.Recast /// @param[in] span The span to update. /// @param[in] direction The direction to set. [Limits: 0 <= value < 4] /// @param[in] neighborIndex The index of the neighbor span. - public static void SetCon(CompactSpan span, int direction, int neighborIndex) + public static void SetCon(RcCompactSpan span, int direction, int neighborIndex) { int shift = direction * 6; int con = span.con; @@ -43,7 +43,7 @@ namespace DotRecast.Recast /// @param[in] span The span to check. /// @param[in] direction The direction to check. [Limits: 0 <= value < 4] /// @return The neighbor connection data for the specified direction, or #RC_NOT_CONNECTED if there is no connection. - public static int GetCon(CompactSpan s, int dir) + public static int GetCon(RcCompactSpan s, int dir) { int shift = dir * 6; return (s.con >> shift) & 0x3f; diff --git a/src/DotRecast.Recast/RecastCompact.cs b/src/DotRecast.Recast/RecastCompact.cs index 82be555..504575a 100644 --- a/src/DotRecast.Recast/RecastCompact.cs +++ b/src/DotRecast.Recast/RecastCompact.cs @@ -18,15 +18,15 @@ freely, subject to the following restrictions: using System; using static DotRecast.Core.RcMath; -using static DotRecast.Recast.RecastConstants; +using static DotRecast.Recast.RcConstants; namespace DotRecast.Recast { - public class RecastCompact + public static class RecastCompact { private const int MAX_LAYERS = RC_NOT_CONNECTED - 1; - private const int MAX_HEIGHT = RecastConstants.SPAN_MAX_HEIGHT; + private const int MAX_HEIGHT = RcConstants.SPAN_MAX_HEIGHT; /// @par /// @@ -37,12 +37,12 @@ namespace DotRecast.Recast /// See the #rcConfig documentation for more information on the configuration parameters. /// /// @see rcAllocCompactHeightfield, rcHeightfield, rcCompactHeightfield, rcConfig - public static CompactHeightfield BuildCompactHeightfield(Telemetry ctx, int walkableHeight, int walkableClimb, - Heightfield hf) + public static RcCompactHeightfield BuildCompactHeightfield(Telemetry ctx, int walkableHeight, int walkableClimb, + RcHeightfield hf) { ctx.StartTimer("BUILD_COMPACTHEIGHTFIELD"); - CompactHeightfield chf = new CompactHeightfield(); + RcCompactHeightfield chf = new RcCompactHeightfield(); int w = hf.width; int h = hf.height; int spanCount = GetHeightFieldSpanCount(hf); @@ -60,17 +60,17 @@ namespace DotRecast.Recast chf.bmax.y += walkableHeight * hf.ch; chf.cs = hf.cs; chf.ch = hf.ch; - chf.cells = new CompactCell[w * h]; - chf.spans = new CompactSpan[spanCount]; + chf.cells = new RcCompactCell[w * h]; + chf.spans = new RcCompactSpan[spanCount]; chf.areas = new int[spanCount]; for (int i = 0; i < chf.cells.Length; i++) { - chf.cells[i] = new CompactCell(); + chf.cells[i] = new RcCompactCell(); } for (int i = 0; i < chf.spans.Length; i++) { - chf.spans[i] = new CompactSpan(); + chf.spans[i] = new RcCompactSpan(); } // Fill in cells and spans. @@ -79,11 +79,11 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - Span s = hf.spans[x + y * w]; + RcSpan s = hf.spans[x + y * w]; // If there are no spans at this cell, just leave the data to index=0, count=0. if (s == null) continue; - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; c.index = idx; c.count = 0; while (s != null) @@ -110,10 +110,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; for (int dir = 0; dir < 4; ++dir) { @@ -126,10 +126,10 @@ namespace DotRecast.Recast // Iterate over all neighbour spans and check if any of the is // accessible from current cell. - CompactCell nc = chf.cells[nx + ny * w]; + RcCompactCell nc = chf.cells[nx + ny * w]; for (int k = nc.index, nk = nc.index + nc.count; k < nk; ++k) { - CompactSpan ns = chf.spans[k]; + RcCompactSpan ns = chf.spans[k]; int bot = Math.Max(s.y, ns.y); int top = Math.Min(s.y + s.h, ns.y + ns.h); @@ -164,7 +164,7 @@ namespace DotRecast.Recast return chf; } - private static int GetHeightFieldSpanCount(Heightfield hf) + private static int GetHeightFieldSpanCount(RcHeightfield hf) { int w = hf.width; int h = hf.height; @@ -173,7 +173,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - for (Span s = hf.spans[x + y * w]; s != null; s = s.next) + for (RcSpan s = hf.spans[x + y * w]; s != null; s = s.next) { if (s.area != RC_NULL_AREA) spanCount++; diff --git a/src/DotRecast.Recast/RecastContour.cs b/src/DotRecast.Recast/RecastContour.cs index a189700..b9e4bf2 100644 --- a/src/DotRecast.Recast/RecastContour.cs +++ b/src/DotRecast.Recast/RecastContour.cs @@ -23,14 +23,14 @@ using System.Collections.Generic; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; public static class RecastContour { - private static CornerHeight GetCornerHeight(int x, int y, int i, int dir, CompactHeightfield chf) + private static CornerHeight GetCornerHeight(int x, int y, int i, int dir, RcCompactHeightfield chf) { bool isBorderVertex = false; - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int ch = s.y; int dirp = (dir + 1) & 0x3; @@ -48,7 +48,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(dir); int ay = y + RecastCommon.GetDirOffsetY(dir); int ai = chf.cells[ax + ay * chf.width].index + RecastCommon.GetCon(s, dir); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; ch = Math.Max(ch, @as.y); regs[1] = chf.spans[ai].reg | (chf.areas[ai] << 16); if (RecastCommon.GetCon(@as, dirp) != RC_NOT_CONNECTED) @@ -56,7 +56,7 @@ namespace DotRecast.Recast int ax2 = ax + RecastCommon.GetDirOffsetX(dirp); int ay2 = ay + RecastCommon.GetDirOffsetY(dirp); int ai2 = chf.cells[ax2 + ay2 * chf.width].index + RecastCommon.GetCon(@as, dirp); - CompactSpan as2 = chf.spans[ai2]; + RcCompactSpan as2 = chf.spans[ai2]; ch = Math.Max(ch, as2.y); regs[2] = chf.spans[ai2].reg | (chf.areas[ai2] << 16); } @@ -67,7 +67,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(dirp); int ay = y + RecastCommon.GetDirOffsetY(dirp); int ai = chf.cells[ax + ay * chf.width].index + RecastCommon.GetCon(s, dirp); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; ch = Math.Max(ch, @as.y); regs[3] = chf.spans[ai].reg | (chf.areas[ai] << 16); if (RecastCommon.GetCon(@as, dir) != RC_NOT_CONNECTED) @@ -75,7 +75,7 @@ namespace DotRecast.Recast int ax2 = ax + RecastCommon.GetDirOffsetX(dir); int ay2 = ay + RecastCommon.GetDirOffsetY(dir); int ai2 = chf.cells[ax2 + ay2 * chf.width].index + RecastCommon.GetCon(@as, dir); - CompactSpan as2 = chf.spans[ai2]; + RcCompactSpan as2 = chf.spans[ai2]; ch = Math.Max(ch, as2.y); regs[2] = chf.spans[ai2].reg | (chf.areas[ai2] << 16); } @@ -105,7 +105,7 @@ namespace DotRecast.Recast return new CornerHeight(ch, isBorderVertex); } - private static void WalkContour(int x, int y, int i, CompactHeightfield chf, int[] flags, List points) + private static void WalkContour(int x, int y, int i, RcCompactHeightfield chf, int[] flags, List points) { // Choose the first non-connected edge int dir = 0; @@ -144,7 +144,7 @@ namespace DotRecast.Recast } int r = 0; - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, dir) != RC_NOT_CONNECTED) { int ax = x + RecastCommon.GetDirOffsetX(dir); @@ -172,10 +172,10 @@ namespace DotRecast.Recast int ni = -1; int nx = x + RecastCommon.GetDirOffsetX(dir); int ny = y + RecastCommon.GetDirOffsetY(dir); - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, dir) != RC_NOT_CONNECTED) { - CompactCell nc = chf.cells[nx + ny * chf.width]; + RcCompactCell nc = chf.cells[nx + ny * chf.width]; ni = nc.index + RecastCommon.GetCon(s, dir); } @@ -548,7 +548,7 @@ namespace DotRecast.Recast } } - private static void MergeContours(Contour ca, Contour cb, int ia, int ib) + private static void MergeContours(RcContour ca, RcContour cb, int ia, int ib) { int maxVerts = ca.nverts + cb.nverts + 2; int[] verts = new int[maxVerts * 4]; @@ -587,7 +587,7 @@ namespace DotRecast.Recast } // Finds the lowest leftmost vertex of a contour. - private static int[] FindLeftMostVertex(Contour contour) + private static int[] FindLeftMostVertex(RcContour contour) { int minx = contour.verts[0]; int minz = contour.verts[2]; @@ -607,7 +607,7 @@ namespace DotRecast.Recast return new int[] { minx, minz, leftmost }; } - private static void MergeRegionHoles(Telemetry ctx, ContourRegion region) + private static void MergeRegionHoles(Telemetry ctx, RcContourRegion region) { // Sort holes from left to right. for (int i = 0; i < region.nholes; i++) @@ -624,18 +624,18 @@ namespace DotRecast.Recast for (int i = 0; i < region.nholes; i++) maxVerts += region.holes[i].contour.nverts; - PotentialDiagonal[] diags = new PotentialDiagonal[maxVerts]; + RcPotentialDiagonal[] diags = new RcPotentialDiagonal[maxVerts]; for (int pd = 0; pd < maxVerts; pd++) { - diags[pd] = new PotentialDiagonal(); + diags[pd] = new RcPotentialDiagonal(); } - Contour outline = region.outline; + RcContour outline = region.outline; // Merge holes into the outline one by one. for (int i = 0; i < region.nholes; i++) { - Contour hole = region.holes[i].contour; + RcContour hole = region.holes[i].contour; int index = -1; int bestVertex = region.holes[i].leftmost; @@ -713,13 +713,13 @@ namespace DotRecast.Recast /// See the #rcConfig documentation for more information on the configuration parameters. /// /// @see rcAllocContourSet, rcCompactHeightfield, rcContourSet, rcConfig - public static ContourSet BuildContours(Telemetry ctx, CompactHeightfield chf, float maxError, int maxEdgeLen, + public static RcContourSet BuildContours(Telemetry ctx, RcCompactHeightfield chf, float maxError, int maxEdgeLen, int buildFlags) { int w = chf.width; int h = chf.height; int borderSize = chf.borderSize; - ContourSet cset = new ContourSet(); + RcContourSet cset = new RcContourSet(); ctx.StartTimer("CONTOURS"); cset.bmin = chf.bmin; @@ -750,11 +750,11 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { int res = 0; - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.spans[i].reg == 0 || (chf.spans[i].reg & RC_BORDER_REG) != 0) { flags[i] = 0; @@ -790,7 +790,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (flags[i] == 0 || flags[i] == 0xf) @@ -820,7 +820,7 @@ namespace DotRecast.Recast // Create contour. if (simplified.Count / 4 >= 3) { - Contour cont = new Contour(); + RcContour cont = new RcContour(); cset.conts.Add(cont); cont.nverts = simplified.Count / 4; @@ -872,7 +872,7 @@ namespace DotRecast.Recast int nholes = 0; for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; + RcContour cont = cset.conts[i]; // If the contour is wound backwards, it is a hole. winding[i] = CalcAreaOfPolygon2D(cont.verts, cont.nverts) < 0 ? -1 : 1; if (winding[i] < 0) @@ -884,15 +884,15 @@ namespace DotRecast.Recast // Collect outline contour and holes contours per region. // We assume that there is one outline and multiple holes. int nregions = chf.maxRegions + 1; - ContourRegion[] regions = new ContourRegion[nregions]; + RcContourRegion[] regions = new RcContourRegion[nregions]; for (int i = 0; i < nregions; i++) { - regions[i] = new ContourRegion(); + regions[i] = new RcContourRegion(); } for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; + RcContour cont = cset.conts[i]; // Positively would contours are outlines, negative holes. if (winding[i] > 0) { @@ -914,10 +914,10 @@ namespace DotRecast.Recast { if (regions[i].nholes > 0) { - regions[i].holes = new ContourHole[regions[i].nholes]; + regions[i].holes = new RcContourHole[regions[i].nholes]; for (int nh = 0; nh < regions[i].nholes; nh++) { - regions[i].holes[nh] = new ContourHole(); + regions[i].holes[nh] = new RcContourHole(); } regions[i].nholes = 0; @@ -926,8 +926,8 @@ namespace DotRecast.Recast for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; - ContourRegion reg = regions[cont.reg]; + RcContour cont = cset.conts[i]; + RcContourRegion reg = regions[cont.reg]; if (winding[i] < 0) reg.holes[reg.nholes++].contour = cont; } @@ -935,7 +935,7 @@ namespace DotRecast.Recast // Finally merge each regions holes into the outline. for (int i = 0; i < nregions; i++) { - ContourRegion reg = regions[i]; + RcContourRegion reg = regions[i]; if (reg.nholes == 0) continue; diff --git a/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs b/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs index 9397bb7..44f6c7a 100644 --- a/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs +++ b/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs @@ -19,7 +19,7 @@ freely, subject to the following restrictions: using System; using DotRecast.Core; using static DotRecast.Core.RcMath; -using static DotRecast.Recast.RecastConstants; +using static DotRecast.Recast.RcConstants; namespace DotRecast.Recast @@ -29,7 +29,7 @@ namespace DotRecast.Recast private const float EPSILON = 0.00001f; private static readonly int[] BOX_EDGES = new[] { 0, 1, 0, 2, 0, 4, 1, 3, 1, 5, 2, 3, 2, 6, 3, 7, 4, 5, 4, 6, 5, 7, 6, 7 }; - public static void RasterizeSphere(Heightfield hf, RcVec3f center, float radius, int area, int flagMergeThr, Telemetry ctx) + public static void RasterizeSphere(RcHeightfield hf, RcVec3f center, float radius, int area, int flagMergeThr, Telemetry ctx) { ctx.StartTimer("RASTERIZE_SPHERE"); float[] bounds = @@ -42,7 +42,7 @@ namespace DotRecast.Recast ctx.StopTimer("RASTERIZE_SPHERE"); } - public static void RasterizeCapsule(Heightfield hf, RcVec3f start, RcVec3f end, float radius, int area, int flagMergeThr, + public static void RasterizeCapsule(RcHeightfield hf, RcVec3f start, RcVec3f end, float radius, int area, int flagMergeThr, Telemetry ctx) { ctx.StartTimer("RASTERIZE_CAPSULE"); @@ -58,7 +58,7 @@ namespace DotRecast.Recast ctx.StopTimer("RASTERIZE_CAPSULE"); } - public static void RasterizeCylinder(Heightfield hf, RcVec3f start, RcVec3f end, float radius, int area, int flagMergeThr, + public static void RasterizeCylinder(RcHeightfield hf, RcVec3f start, RcVec3f end, float radius, int area, int flagMergeThr, Telemetry ctx) { ctx.StartTimer("RASTERIZE_CYLINDER"); @@ -74,7 +74,7 @@ namespace DotRecast.Recast ctx.StopTimer("RASTERIZE_CYLINDER"); } - public static void RasterizeBox(Heightfield hf, RcVec3f center, RcVec3f[] halfEdges, int area, int flagMergeThr, + public static void RasterizeBox(RcHeightfield hf, RcVec3f center, RcVec3f[] halfEdges, int area, int flagMergeThr, Telemetry ctx) { ctx.StartTimer("RASTERIZE_BOX"); @@ -126,7 +126,7 @@ namespace DotRecast.Recast ctx.StopTimer("RASTERIZE_BOX"); } - public static void RasterizeConvex(Heightfield hf, float[] vertices, int[] triangles, int area, int flagMergeThr, + public static void RasterizeConvex(RcHeightfield hf, float[] vertices, int[] triangles, int area, int flagMergeThr, Telemetry ctx) { ctx.StartTimer("RASTERIZE_CONVEX"); @@ -188,7 +188,7 @@ namespace DotRecast.Recast planes[p][3] = planes[p][0] * vertices[vert] + planes[p][1] * vertices[vert + 1] + planes[p][2] * vertices[vert + 2]; } - private static void RasterizationFilledShape(Heightfield hf, float[] bounds, int area, int flagMergeThr, + private static void RasterizationFilledShape(RcHeightfield hf, float[] bounds, int area, int flagMergeThr, Func intersection) { if (!OverlapBounds(hf.bmin, hf.bmax, bounds)) diff --git a/src/DotRecast.Recast/RecastFilter.cs b/src/DotRecast.Recast/RecastFilter.cs index 38536bd..7a7e1ec 100644 --- a/src/DotRecast.Recast/RecastFilter.cs +++ b/src/DotRecast.Recast/RecastFilter.cs @@ -22,9 +22,9 @@ using System; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; - public class RecastFilter + public static class RecastFilter { /// @par /// @@ -37,7 +37,7 @@ namespace DotRecast.Recast /// #rcFilterLedgeSpans after calling this filter. /// /// @see rcHeightfield, rcConfig - public static void FilterLowHangingWalkableObstacles(Telemetry ctx, int walkableClimb, Heightfield solid) + public static void FilterLowHangingWalkableObstacles(Telemetry ctx, int walkableClimb, RcHeightfield solid) { ctx.StartTimer("FILTER_LOW_OBSTACLES"); @@ -48,11 +48,11 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - Span ps = null; + RcSpan ps = null; bool previousWalkable = false; int previousArea = RC_NULL_AREA; - for (Span s = solid.spans[x + y * w]; s != null; ps = s, s = s.next) + for (RcSpan s = solid.spans[x + y * w]; s != null; ps = s, s = s.next) { bool walkable = s.area != RC_NULL_AREA; // If current span is not walkable, but there is walkable @@ -84,7 +84,7 @@ namespace DotRecast.Recast /// A span is a ledge if: RcAbs(currentSpan.smax - neighborSpan.smax) > walkableClimb /// /// @see rcHeightfield, rcConfig - public static void FilterLedgeSpans(Telemetry ctx, int walkableHeight, int walkableClimb, Heightfield solid) + public static void FilterLedgeSpans(Telemetry ctx, int walkableHeight, int walkableClimb, RcHeightfield solid) { ctx.StartTimer("FILTER_LEDGE"); @@ -96,7 +96,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - for (Span s = solid.spans[x + y * w]; s != null; s = s.next) + for (RcSpan s = solid.spans[x + y * w]; s != null; s = s.next) { // Skip non walkable spans. if (s.area == RC_NULL_AREA) @@ -124,7 +124,7 @@ namespace DotRecast.Recast } // From minus infinity to the first span. - Span ns = solid.spans[dx + dy * w]; + RcSpan ns = solid.spans[dx + dy * w]; int nbot = -walkableClimb; int ntop = ns != null ? ns.smin : SPAN_MAX_HEIGHT; // Skip neightbour if the gap between the spans is too small. @@ -177,7 +177,7 @@ namespace DotRecast.Recast /// maximum to the next higher span's minimum. (Same grid column.) /// /// @see rcHeightfield, rcConfig - public static void FilterWalkableLowHeightSpans(Telemetry ctx, int walkableHeight, Heightfield solid) + public static void FilterWalkableLowHeightSpans(Telemetry ctx, int walkableHeight, RcHeightfield solid) { ctx.StartTimer("FILTER_WALKABLE"); @@ -190,7 +190,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - for (Span s = solid.spans[x + y * w]; s != null; s = s.next) + for (RcSpan s = solid.spans[x + y * w]; s != null; s = s.next) { int bot = (s.smax); int top = s.next != null ? s.next.smin : SPAN_MAX_HEIGHT; diff --git a/src/DotRecast.Recast/RecastLayers.cs b/src/DotRecast.Recast/RecastLayers.cs index c7c0a63..6ed4dcc 100644 --- a/src/DotRecast.Recast/RecastLayers.cs +++ b/src/DotRecast.Recast/RecastLayers.cs @@ -25,13 +25,11 @@ using DotRecast.Core; namespace DotRecast.Recast { using static RecastCommon; - using static RecastConstants; - - using static RecastRegion; + using static RcConstants; - public class RecastLayers + public static class RecastLayers { - const int RC_MAX_LAYERS = RecastConstants.RC_NOT_CONNECTED; + const int RC_MAX_LAYERS = RcConstants.RC_NOT_CONNECTED; const int RC_MAX_NEIS = 16; @@ -53,7 +51,7 @@ namespace DotRecast.Recast return (amin > bmax || amax < bmin) ? false : true; } - public static HeightfieldLayerSet BuildHeightfieldLayers(Telemetry ctx, CompactHeightfield chf, int walkableHeight) + public static RcHeightfieldLayerSet BuildHeightfieldLayers(Telemetry ctx, RcCompactHeightfield chf, int walkableHeight) { ctx.StartTimer("RC_TIMER_BUILD_LAYERS"); int w = chf.width; @@ -62,10 +60,10 @@ namespace DotRecast.Recast int[] srcReg = new int[chf.spanCount]; Array.Fill(srcReg, 0xFF); int nsweeps = chf.width; // Math.Max(chf.width, chf.height); - SweepSpan[] sweeps = new SweepSpan[nsweeps]; + RcSweepSpan[] sweeps = new RcSweepSpan[nsweeps]; for (int i = 0; i < sweeps.Length; i++) { - sweeps[i] = new SweepSpan(); + sweeps[i] = new RcSweepSpan(); } // Partition walkable area into monotone regions. @@ -80,11 +78,11 @@ namespace DotRecast.Recast for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) continue; int sid = 0xFF; @@ -165,7 +163,7 @@ namespace DotRecast.Recast // Remap local sweep ids to region ids. for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (srcReg[i] != 0xff) @@ -175,12 +173,12 @@ namespace DotRecast.Recast } int nregs = regId; - LayerRegion[] regs = new LayerRegion[nregs]; + RcLayerRegion[] regs = new RcLayerRegion[nregs]; // Construct regions for (int i = 0; i < nregs; ++i) { - regs[i] = new LayerRegion(i); + regs[i] = new RcLayerRegion(i); } // Find region neighbours and overlapping regions. @@ -189,13 +187,13 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; lregs.Clear(); for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int ri = srcReg[i]; if (ri == 0xff) continue; @@ -228,8 +226,8 @@ namespace DotRecast.Recast { if (lregs[i] != lregs[j]) { - LayerRegion ri = regs[lregs[i]]; - LayerRegion rj = regs[lregs[j]]; + RcLayerRegion ri = regs[lregs[i]]; + RcLayerRegion rj = regs[lregs[j]]; AddUnique(ri.layers, lregs[j]); AddUnique(rj.layers, lregs[i]); } @@ -245,7 +243,7 @@ namespace DotRecast.Recast for (int i = 0; i < nregs; ++i) { - LayerRegion root = regs[i]; + RcLayerRegion root = regs[i]; // Skip already visited. if (root.layerId != 0xff) continue; @@ -261,11 +259,11 @@ namespace DotRecast.Recast // Pop front int pop = stack[0]; // TODO : 여기에 stack 처럼 작동하게 했는데, 스택인지는 모르겠음 stack.RemoveAt(0); - LayerRegion reg = regs[pop]; + RcLayerRegion reg = regs[pop]; foreach (int nei in reg.neis) { - LayerRegion regn = regs[nei]; + RcLayerRegion regn = regs[nei]; // Skip already visited. if (regn.layerId != 0xff) continue; @@ -299,7 +297,7 @@ namespace DotRecast.Recast for (int i = 0; i < nregs; ++i) { - LayerRegion ri = regs[i]; + RcLayerRegion ri = regs[i]; if (!ri.@base) continue; @@ -313,7 +311,7 @@ namespace DotRecast.Recast { if (i == j) continue; - LayerRegion rj = regs[j]; + RcLayerRegion rj = regs[j]; if (!rj.@base) continue; @@ -360,7 +358,7 @@ namespace DotRecast.Recast // Merge for (int j = 0; j < nregs; ++j) { - LayerRegion rj = regs[j]; + RcLayerRegion rj = regs[j]; if (rj.layerId == oldId) { rj.@base = false; @@ -417,11 +415,11 @@ namespace DotRecast.Recast bmax.x -= borderSize * chf.cs; bmax.z -= borderSize * chf.cs; - HeightfieldLayerSet lset = new HeightfieldLayerSet(); - lset.layers = new HeightfieldLayer[layerId]; + RcHeightfieldLayerSet lset = new RcHeightfieldLayerSet(); + lset.layers = new RcHeightfieldLayer[layerId]; for (int i = 0; i < lset.layers.Length; i++) { - lset.layers[i] = new HeightfieldLayer(); + lset.layers[i] = new RcHeightfieldLayer(); } // Store layers. @@ -429,7 +427,7 @@ namespace DotRecast.Recast { int curId = i; - HeightfieldLayer layer = lset.layers[i]; + RcHeightfieldLayer layer = lset.layers[i]; int gridSize = lw * lh; @@ -475,10 +473,10 @@ namespace DotRecast.Recast { int cx = borderSize + x; int cy = borderSize + y; - CompactCell c = chf.cells[cx + cy * w]; + RcCompactCell c = chf.cells[cx + cy * w]; for (int j = c.index, nj = c.index + c.count; j < nj; ++j) { - CompactSpan s = chf.spans[j]; + RcCompactSpan s = chf.spans[j]; // Skip unassigned regions. if (srcReg[j] == 0xff) continue; @@ -515,7 +513,7 @@ namespace DotRecast.Recast portal |= (char)(1 << dir); // Update height so that it matches on both // sides of the portal. - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (@as.y > hmin) layer.heights[idx] = Math.Max(layer.heights[idx], (char)(@as.y - hmin)); } diff --git a/src/DotRecast.Recast/RecastMesh.cs b/src/DotRecast.Recast/RecastMesh.cs index 29011f8..d37d0f5 100644 --- a/src/DotRecast.Recast/RecastMesh.cs +++ b/src/DotRecast.Recast/RecastMesh.cs @@ -23,9 +23,9 @@ using DotRecast.Core; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; - public class RecastMesh + public static class RecastMesh { public const int MAX_MESH_VERTS_POLY = 0xffff; public const int VERTEX_BUCKET_COUNT = (1 << 12); @@ -41,7 +41,7 @@ namespace DotRecast.Recast int nextEdge = nverts; int edgeCount = 0; - Edge[] edges = new Edge[maxEdgeCount]; + RcEdge[] edges = new RcEdge[maxEdgeCount]; for (int i = 0; i < nverts; i++) firstEdge[i] = RC_MESH_NULL_IDX; @@ -59,7 +59,7 @@ namespace DotRecast.Recast : polys[t + j + 1]; if (v0 < v1) { - Edge edge = new Edge(); + RcEdge edge = new RcEdge(); edges[edgeCount] = edge; edge.vert[0] = v0; edge.vert[1] = v1; @@ -90,7 +90,7 @@ namespace DotRecast.Recast { for (int e = firstEdge[v1]; e != RC_MESH_NULL_IDX; e = firstEdge[nextEdge + e]) { - Edge edge = edges[e]; + RcEdge edge = edges[e]; if (edge.vert[1] == v0 && edge.poly[0] == edge.poly[1]) { edge.poly[1] = i; @@ -105,7 +105,7 @@ namespace DotRecast.Recast // Store adjacency for (int i = 0; i < edgeCount; ++i) { - Edge e = edges[i]; + RcEdge e = edges[i]; if (e.poly[0] != e.poly[1]) { int p0 = e.poly[0] * vertsPerPoly * 2; @@ -574,7 +574,7 @@ namespace DotRecast.Recast return an; } - private static bool CanRemoveVertex(Telemetry ctx, PolyMesh mesh, int rem) + private static bool CanRemoveVertex(Telemetry ctx, RcPolyMesh mesh, int rem) { int nvp = mesh.nvp; @@ -677,7 +677,7 @@ namespace DotRecast.Recast return true; } - private static void RemoveVertex(Telemetry ctx, PolyMesh mesh, int rem, int maxTris) + private static void RemoveVertex(Telemetry ctx, RcPolyMesh mesh, int rem, int maxTris) { int nvp = mesh.nvp; @@ -964,10 +964,10 @@ namespace DotRecast.Recast /// limit must be retricted to <= #DT_VERTS_PER_POLYGON. /// /// @see rcAllocPolyMesh, rcContourSet, rcPolyMesh, rcConfig - public static PolyMesh BuildPolyMesh(Telemetry ctx, ContourSet cset, int nvp) + public static RcPolyMesh BuildPolyMesh(Telemetry ctx, RcContourSet cset, int nvp) { ctx.StartTimer("POLYMESH"); - PolyMesh mesh = new PolyMesh(); + RcPolyMesh mesh = new RcPolyMesh(); mesh.bmin = cset.bmin; mesh.bmax = cset.bmax; mesh.cs = cset.cs; @@ -1020,7 +1020,7 @@ namespace DotRecast.Recast for (int i = 0; i < cset.conts.Count; ++i) { - Contour cont = cset.conts[i]; + RcContour cont = cset.conts[i]; // Skip null contours. if (cont.nverts < 3) @@ -1209,13 +1209,13 @@ namespace DotRecast.Recast } /// @see rcAllocPolyMesh, rcPolyMesh - public static PolyMesh MergePolyMeshes(Telemetry ctx, PolyMesh[] meshes, int nmeshes) + public static RcPolyMesh MergePolyMeshes(Telemetry ctx, RcPolyMesh[] meshes, int nmeshes) { if (nmeshes == 0 || meshes == null) return null; ctx.StartTimer("MERGE_POLYMESH"); - PolyMesh mesh = new PolyMesh(); + RcPolyMesh mesh = new RcPolyMesh(); mesh.nvp = meshes[0].nvp; mesh.cs = meshes[0].cs; mesh.ch = meshes[0].ch; @@ -1254,7 +1254,7 @@ namespace DotRecast.Recast for (int i = 0; i < nmeshes; ++i) { - PolyMesh pmesh = meshes[i]; + RcPolyMesh pmesh = meshes[i]; int ox = (int)Math.Floor((pmesh.bmin.x - mesh.bmin.x) / mesh.cs + 0.5f); int oz = (int)Math.Floor((pmesh.bmin.z - mesh.bmin.z) / mesh.cs + 0.5f); @@ -1338,9 +1338,9 @@ namespace DotRecast.Recast return mesh; } - public static PolyMesh CopyPolyMesh(Telemetry ctx, PolyMesh src) + public static RcPolyMesh CopyPolyMesh(Telemetry ctx, RcPolyMesh src) { - PolyMesh dst = new PolyMesh(); + RcPolyMesh dst = new RcPolyMesh(); dst.nverts = src.nverts; dst.npolys = src.npolys; diff --git a/src/DotRecast.Recast/RecastMeshDetail.cs b/src/DotRecast.Recast/RecastMeshDetail.cs index dee52b1..774ae51 100644 --- a/src/DotRecast.Recast/RecastMeshDetail.cs +++ b/src/DotRecast.Recast/RecastMeshDetail.cs @@ -23,17 +23,17 @@ using System.Collections.Generic; using DotRecast.Core; using static DotRecast.Core.RcMath; using static DotRecast.Recast.RecastCommon; -using static DotRecast.Recast.RecastConstants; +using static DotRecast.Recast.RcConstants; namespace DotRecast.Recast { - public class RecastMeshDetail + public static class RecastMeshDetail { public const int MAX_VERTS = 127; public const int MAX_TRIS = 255; // Max tris for delaunay is 2n-2-k (n=num verts, k=num hull verts). public const int MAX_VERTS_PER_EDGE = 32; - public const int RC_UNSET_HEIGHT = RecastConstants.SPAN_MAX_HEIGHT; + public const int RC_UNSET_HEIGHT = RcConstants.SPAN_MAX_HEIGHT; public const int EV_UNDEF = -1; public const int EV_HULL = -2; @@ -346,7 +346,7 @@ namespace DotRecast.Recast } private static int GetHeight(float fx, float fy, float fz, float cs, float ics, float ch, int radius, - HeightPatch hp) + RcHeightPatch hp) { int ix = (int)Math.Floor(fx * ics + 0.01f); int iz = (int)Math.Floor(fz * ics + 0.01f); @@ -832,7 +832,7 @@ namespace DotRecast.Recast } static int BuildPolyDetail(Telemetry ctx, float[] @in, int nin, float sampleDist, float sampleMaxError, - int heightSearchRadius, CompactHeightfield chf, HeightPatch hp, float[] verts, List tris) + int heightSearchRadius, RcCompactHeightfield chf, RcHeightPatch hp, float[] verts, List tris) { List samples = new List(512); @@ -1113,8 +1113,8 @@ namespace DotRecast.Recast return nverts; } - static void SeedArrayWithPolyCenter(Telemetry ctx, CompactHeightfield chf, int[] meshpoly, int poly, int npoly, - int[] verts, int bs, HeightPatch hp, List array) + static void SeedArrayWithPolyCenter(Telemetry ctx, RcCompactHeightfield chf, int[] meshpoly, int poly, int npoly, + int[] verts, int bs, RcHeightPatch hp, List array) { // Note: Reads to the compact heightfield are offset by border size (bs) // since border size offset is already removed from the polymesh vertices. @@ -1136,10 +1136,10 @@ namespace DotRecast.Recast continue; } - CompactCell c = chf.cells[(ax + bs) + (az + bs) * chf.width]; + RcCompactCell c = chf.cells[(ax + bs) + (az + bs) * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni && dmin > 0; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int d = Math.Abs(ay - s.y); if (d < dmin) { @@ -1215,7 +1215,7 @@ namespace DotRecast.Recast dirs[3] = dirs[directDir]; dirs[directDir] = tmp; - CompactSpan cs = chf.spans[ci]; + RcCompactSpan cs = chf.spans[ci]; for (int i = 0; i < 4; ++i) { @@ -1258,7 +1258,7 @@ namespace DotRecast.Recast array.Add(cy + bs); array.Add(ci); Array.Fill(hp.data, RC_UNSET_HEIGHT, 0, (hp.width * hp.height) - (0)); - CompactSpan cs2 = chf.spans[ci]; + RcCompactSpan cs2 = chf.spans[ci]; hp.data[cx - hp.xmin + (cy - hp.ymin) * hp.width] = cs2.y; } @@ -1271,8 +1271,8 @@ namespace DotRecast.Recast queue.Add(v3); } - static void GetHeightData(Telemetry ctx, CompactHeightfield chf, int[] meshpolys, int poly, int npoly, int[] verts, - int bs, HeightPatch hp, int region) + static void GetHeightData(Telemetry ctx, RcCompactHeightfield chf, int[] meshpolys, int poly, int npoly, int[] verts, + int bs, RcHeightPatch hp, int region) { // Note: Reads to the compact heightfield are offset by border size (bs) // since border size offset is already removed from the polymesh vertices. @@ -1295,10 +1295,10 @@ namespace DotRecast.Recast for (int hx = 0; hx < hp.width; hx++) { int x = hp.xmin + hx + bs; - CompactCell c = chf.cells[x + y * chf.width]; + RcCompactCell c = chf.cells[x + y * chf.width]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (s.reg == region) { // Store height @@ -1314,7 +1314,7 @@ namespace DotRecast.Recast int ax = x + GetDirOffsetX(dir); int ay = y + GetDirOffsetY(dir); int ai = chf.cells[ax + ay * chf.width].index + GetCon(s, dir); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (@as.reg != region) { border = true; @@ -1360,7 +1360,7 @@ namespace DotRecast.Recast queue = queue.GetRange(RETRACT_SIZE * 3, queue.Count - (RETRACT_SIZE * 3)); } - CompactSpan cs = chf.spans[ci]; + RcCompactSpan cs = chf.spans[ci]; for (int dir = 0; dir < 4; ++dir) { if (GetCon(cs, dir) == RC_NOT_CONNECTED) @@ -1384,7 +1384,7 @@ namespace DotRecast.Recast } int ai = chf.cells[ax + ay * chf.width].index + GetCon(cs, dir); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; hp.data[hx + hy * hp.width] = @as.y; Push3(queue, ax, ay, ai); @@ -1423,7 +1423,7 @@ namespace DotRecast.Recast /// See the #rcConfig documentation for more information on the configuration parameters. /// /// @see rcAllocPolyMeshDetail, rcPolyMesh, rcCompactHeightfield, rcPolyMeshDetail, rcConfig - public static PolyMeshDetail BuildPolyMeshDetail(Telemetry ctx, PolyMesh mesh, CompactHeightfield chf, + public static RcPolyMeshDetail BuildPolyMeshDetail(Telemetry ctx, RcPolyMesh mesh, RcCompactHeightfield chf, float sampleDist, float sampleMaxError) { ctx.StartTimer("POLYMESHDETAIL"); @@ -1432,7 +1432,7 @@ namespace DotRecast.Recast return null; } - PolyMeshDetail dmesh = new PolyMeshDetail(); + RcPolyMeshDetail dmesh = new RcPolyMeshDetail(); int nvp = mesh.nvp; float cs = mesh.cs; float ch = mesh.ch; @@ -1442,7 +1442,7 @@ namespace DotRecast.Recast List tris = new List(512); float[] verts = new float[256 * 3]; - HeightPatch hp = new HeightPatch(); + RcHeightPatch hp = new RcHeightPatch(); int nPolyVerts = 0; int maxhw = 0, maxhh = 0; @@ -1615,9 +1615,9 @@ namespace DotRecast.Recast } /// @see rcAllocPolyMeshDetail, rcPolyMeshDetail - PolyMeshDetail MergePolyMeshDetails(Telemetry ctx, PolyMeshDetail[] meshes, int nmeshes) + RcPolyMeshDetail MergePolyMeshDetails(Telemetry ctx, RcPolyMeshDetail[] meshes, int nmeshes) { - PolyMeshDetail mesh = new PolyMeshDetail(); + RcPolyMeshDetail mesh = new RcPolyMeshDetail(); ctx.StartTimer("MERGE_POLYMESHDETAIL"); @@ -1647,7 +1647,7 @@ namespace DotRecast.Recast // Merge datas. for (int i = 0; i < nmeshes; ++i) { - PolyMeshDetail dm = meshes[i]; + RcPolyMeshDetail dm = meshes[i]; if (dm == null) { continue; diff --git a/src/DotRecast.Recast/RecastRasterization.cs b/src/DotRecast.Recast/RecastRasterization.cs index 275166c..8e1dbd1 100644 --- a/src/DotRecast.Recast/RecastRasterization.cs +++ b/src/DotRecast.Recast/RecastRasterization.cs @@ -21,11 +21,11 @@ freely, subject to the following restrictions: using System; using DotRecast.Core; using static DotRecast.Core.RcMath; -using static DotRecast.Recast.RecastConstants; +using static DotRecast.Recast.RcConstants; namespace DotRecast.Recast { - public class RecastRasterization + public static class RecastRasterization { /** * Check whether two bounding boxes overlap @@ -80,12 +80,12 @@ namespace DotRecast.Recast * The merge theshold. [Limit: >= 0] [Units: vx] * @see Heightfield, Span. */ - public static void AddSpan(Heightfield heightfield, int x, int y, int spanMin, int spanMax, int areaId, + public static void AddSpan(RcHeightfield heightfield, int x, int y, int spanMin, int spanMax, int areaId, int flagMergeThreshold) { int idx = x + y * heightfield.width; - Span s = new Span(); + RcSpan s = new RcSpan(); s.smin = spanMin; s.smax = spanMax; s.area = areaId; @@ -98,8 +98,8 @@ namespace DotRecast.Recast return; } - Span prev = null; - Span cur = heightfield.spans[idx]; + RcSpan prev = null; + RcSpan cur = heightfield.spans[idx]; // Insert and merge spans. while (cur != null) @@ -128,7 +128,7 @@ namespace DotRecast.Recast s.area = Math.Max(s.area, cur.area); // Remove current span. - Span next = cur.next; + RcSpan next = cur.next; if (prev != null) prev.next = next; else @@ -254,7 +254,7 @@ namespace DotRecast.Recast * @param flagMergeThreshold * The threshold in which area flags will be merged */ - private static void RasterizeTri(float[] verts, int v0, int v1, int v2, int area, Heightfield hf, RcVec3f hfBBMin, + private static void RasterizeTri(float[] verts, int v0, int v1, int v2, int area, RcHeightfield hf, RcVec3f hfBBMin, RcVec3f hfBBMax, float cellSize, float inverseCellSize, float inverseCellHeight, int flagMergeThreshold) { RcVec3f tmin = new RcVec3f(); @@ -397,7 +397,7 @@ namespace DotRecast.Recast * The distance where the walkable flag is favored over the non-walkable flag. [Limit: >= 0] [Units: vx] * @see Heightfield */ - public static void RasterizeTriangle(Heightfield heightfield, float[] verts, int v0, int v1, int v2, int area, + public static void RasterizeTriangle(RcHeightfield heightfield, float[] verts, int v0, int v1, int v2, int area, int flagMergeThreshold, Telemetry ctx) { ctx.StartTimer("RASTERIZE_TRIANGLES"); @@ -428,7 +428,7 @@ namespace DotRecast.Recast * The distance where the walkable flag is favored over the non-walkable flag. [Limit: >= 0] [Units: vx] * @see Heightfield */ - public static void RasterizeTriangles(Heightfield heightfield, float[] verts, int[] tris, int[] areaIds, int numTris, + public static void RasterizeTriangles(RcHeightfield heightfield, float[] verts, int[] tris, int[] areaIds, int numTris, int flagMergeThreshold, Telemetry ctx) { ctx.StartTimer("RASTERIZE_TRIANGLES"); @@ -465,7 +465,7 @@ namespace DotRecast.Recast * The distance where the walkable flag is favored over the non-walkable flag. [Limit: >= 0] [Units: vx] * @see Heightfield */ - public static void RasterizeTriangles(Heightfield heightfield, float[] verts, int[] areaIds, int numTris, + public static void RasterizeTriangles(RcHeightfield heightfield, float[] verts, int[] areaIds, int numTris, int flagMergeThreshold, Telemetry ctx) { ctx.StartTimer("RASTERIZE_TRIANGLES"); diff --git a/src/DotRecast.Recast/RecastRegion.cs b/src/DotRecast.Recast/RecastRegion.cs index e430078..05885eb 100644 --- a/src/DotRecast.Recast/RecastRegion.cs +++ b/src/DotRecast.Recast/RecastRegion.cs @@ -24,14 +24,14 @@ using System.Linq; namespace DotRecast.Recast { - using static RecastConstants; + using static RcConstants; - public class RecastRegion + public static class RecastRegion { const int RC_NULL_NEI = 0xffff; - public static int CalculateDistanceField(CompactHeightfield chf, int[] src) + public static int CalculateDistanceField(RcCompactHeightfield chf, int[] src) { int maxDist; int w = chf.width; @@ -48,10 +48,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int area = chf.areas[i]; int nc = 0; @@ -82,10 +82,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, 0) != RC_NOT_CONNECTED) { @@ -93,7 +93,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(0); int ay = y + RecastCommon.GetDirOffsetY(0); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 0); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (src[ai] + 2 < src[i]) { src[i] = src[ai] + 2; @@ -118,7 +118,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(3); int ay = y + RecastCommon.GetDirOffsetY(3); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 3); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (src[ai] + 2 < src[i]) { src[i] = src[ai] + 2; @@ -145,10 +145,10 @@ namespace DotRecast.Recast { for (int x = w - 1; x >= 0; --x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (RecastCommon.GetCon(s, 2) != RC_NOT_CONNECTED) { @@ -156,7 +156,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(2); int ay = y + RecastCommon.GetDirOffsetY(2); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 2); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (src[ai] + 2 < src[i]) { src[i] = src[ai] + 2; @@ -181,7 +181,7 @@ namespace DotRecast.Recast int ax = x + RecastCommon.GetDirOffsetX(1); int ay = y + RecastCommon.GetDirOffsetY(1); int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, 1); - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; if (src[ai] + 2 < src[i]) { src[i] = src[ai] + 2; @@ -212,7 +212,7 @@ namespace DotRecast.Recast return maxDist; } - private static int[] BoxBlur(CompactHeightfield chf, int thr, int[] src) + private static int[] BoxBlur(RcCompactHeightfield chf, int thr, int[] src) { int w = chf.width; int h = chf.height; @@ -224,10 +224,10 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int cd = src[i]; if (cd <= thr) { @@ -245,7 +245,7 @@ namespace DotRecast.Recast int ai = chf.cells[ax + ay * w].index + RecastCommon.GetCon(s, dir); d += src[ai]; - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; int dir2 = (dir + 1) & 0x3; if (RecastCommon.GetCon(@as, dir2) != RC_NOT_CONNECTED) { @@ -273,7 +273,7 @@ namespace DotRecast.Recast return dst; } - private static bool FloodRegion(int x, int y, int i, int level, int r, CompactHeightfield chf, int[] srcReg, + private static bool FloodRegion(int x, int y, int i, int level, int r, RcCompactHeightfield chf, int[] srcReg, int[] srcDist, List stack) { int w = chf.width; @@ -303,7 +303,7 @@ namespace DotRecast.Recast stack.RemoveAt(stack.Count - 1); - CompactSpan cs = chf.spans[ci]; + RcCompactSpan cs = chf.spans[ci]; // Check if any of the neighbours already have a valid region set. int ar = 0; @@ -332,7 +332,7 @@ namespace DotRecast.Recast break; } - CompactSpan @as = chf.spans[ai]; + RcCompactSpan @as = chf.spans[ai]; int dir2 = (dir + 1) & 0x3; if (RecastCommon.GetCon(@as, dir2) != RC_NOT_CONNECTED) @@ -391,7 +391,7 @@ namespace DotRecast.Recast return count > 0; } - private static int[] ExpandRegions(int maxIter, int level, CompactHeightfield chf, int[] srcReg, int[] srcDist, + private static int[] ExpandRegions(int maxIter, int level, RcCompactHeightfield chf, int[] srcReg, int[] srcDist, List stack, bool fillStack) { int w = chf.width; @@ -405,7 +405,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (chf.dist[i] >= level && srcReg[i] == 0 && chf.areas[i] != RC_NULL_AREA) @@ -452,7 +452,7 @@ namespace DotRecast.Recast int r = srcReg[i]; int d2 = 0xffff; int area = chf.areas[i]; - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; for (int dir = 0; dir < 4; ++dir) { if (RecastCommon.GetCon(s, dir) == RC_NOT_CONNECTED) @@ -517,7 +517,7 @@ namespace DotRecast.Recast return srcReg; } - private static void SortCellsByLevel(int startLevel, CompactHeightfield chf, int[] srcReg, int nbStacks, + private static void SortCellsByLevel(int startLevel, RcCompactHeightfield chf, int[] srcReg, int nbStacks, List> stacks, int loglevelsPerStack) // the levels per stack (2 in our case) as a bit shift { int w = chf.width; @@ -534,7 +534,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (chf.areas[i] == RC_NULL_AREA || srcReg[i] != 0) @@ -580,7 +580,7 @@ namespace DotRecast.Recast - private static void RemoveAdjacentNeighbours(Region reg) + private static void RemoveAdjacentNeighbours(RcRegion reg) { // Remove adjacent duplicates. for (int i = 0; i < reg.connections.Count && reg.connections.Count > 1;) @@ -597,7 +597,7 @@ namespace DotRecast.Recast } } - private static void ReplaceNeighbour(Region reg, int oldId, int newId) + private static void ReplaceNeighbour(RcRegion reg, int oldId, int newId) { bool neiChanged = false; for (int i = 0; i < reg.connections.Count; ++i) @@ -623,7 +623,7 @@ namespace DotRecast.Recast } } - private static bool CanMergeWithRegion(Region rega, Region regb) + private static bool CanMergeWithRegion(RcRegion rega, RcRegion regb) { if (rega.areaType != regb.areaType) { @@ -655,7 +655,7 @@ namespace DotRecast.Recast return true; } - private static void AddUniqueFloorRegion(Region reg, int n) + private static void AddUniqueFloorRegion(RcRegion reg, int n) { if (!reg.floors.Contains(n)) { @@ -663,7 +663,7 @@ namespace DotRecast.Recast } } - private static bool MergeRegions(Region rega, Region regb) + private static bool MergeRegions(RcRegion rega, RcRegion regb) { int aid = rega.id; int bid = regb.id; @@ -730,16 +730,16 @@ namespace DotRecast.Recast return true; } - private static bool IsRegionConnectedToBorder(Region reg) + private static bool IsRegionConnectedToBorder(RcRegion reg) { // Region is connected to border if // one of the neighbours is null id. return reg.connections.Contains(0); } - private static bool IsSolidEdge(CompactHeightfield chf, int[] srcReg, int x, int y, int i, int dir) + private static bool IsSolidEdge(RcCompactHeightfield chf, int[] srcReg, int x, int y, int i, int dir) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int r = 0; if (RecastCommon.GetCon(s, dir) != RC_NOT_CONNECTED) { @@ -757,13 +757,13 @@ namespace DotRecast.Recast return true; } - private static void WalkContour(int x, int y, int i, int dir, CompactHeightfield chf, int[] srcReg, + private static void WalkContour(int x, int y, int i, int dir, RcCompactHeightfield chf, int[] srcReg, List cont) { int startDir = dir; int starti = i; - CompactSpan ss = chf.spans[i]; + RcCompactSpan ss = chf.spans[i]; int curReg = 0; if (RecastCommon.GetCon(ss, dir) != RC_NOT_CONNECTED) { @@ -778,7 +778,7 @@ namespace DotRecast.Recast int iter = 0; while (++iter < 40000) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (IsSolidEdge(chf, srcReg, x, y, i, dir)) { @@ -807,7 +807,7 @@ namespace DotRecast.Recast int ny = y + RecastCommon.GetDirOffsetY(dir); if (RecastCommon.GetCon(s, dir) != RC_NOT_CONNECTED) { - CompactCell nc = chf.cells[nx + ny * chf.width]; + RcCompactCell nc = chf.cells[nx + ny * chf.width]; ni = nc.index + RecastCommon.GetCon(s, dir); } @@ -848,18 +848,18 @@ namespace DotRecast.Recast } private static int MergeAndFilterRegions(Telemetry ctx, int minRegionArea, int mergeRegionSize, int maxRegionId, - CompactHeightfield chf, int[] srcReg, List overlaps) + RcCompactHeightfield chf, int[] srcReg, List overlaps) { int w = chf.width; int h = chf.height; int nreg = maxRegionId + 1; - Region[] regions = new Region[nreg]; + RcRegion[] regions = new RcRegion[nreg]; // Construct regions for (int i = 0; i < nreg; ++i) { - regions[i] = new Region(i); + regions[i] = new RcRegion(i); } // Find edge of a region and find connections around the contour. @@ -867,7 +867,7 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { int r = srcReg[i]; @@ -876,7 +876,7 @@ namespace DotRecast.Recast continue; } - Region reg = regions[r]; + RcRegion reg = regions[r]; reg.spanCount++; // Update floors. @@ -935,7 +935,7 @@ namespace DotRecast.Recast List trace = new List(32); for (int i = 0; i < nreg; ++i) { - Region reg = regions[i]; + RcRegion reg = regions[i]; if (reg.id == 0 || (reg.id & RC_BORDER_REG) != 0) { continue; @@ -967,7 +967,7 @@ namespace DotRecast.Recast int ri = stack[^1]; stack.RemoveAt(stack.Count - 1); - Region creg = regions[ri]; + RcRegion creg = regions[ri]; spanCount += creg.spanCount; trace.Add(ri); @@ -980,7 +980,7 @@ namespace DotRecast.Recast continue; } - Region neireg = regions[creg.connections[j]]; + RcRegion neireg = regions[creg.connections[j]]; if (neireg.visited) { continue; @@ -1019,7 +1019,7 @@ namespace DotRecast.Recast mergeCount = 0; for (int i = 0; i < nreg; ++i) { - Region reg = regions[i]; + RcRegion reg = regions[i]; if (reg.id == 0 || (reg.id & RC_BORDER_REG) != 0) { continue; @@ -1053,7 +1053,7 @@ namespace DotRecast.Recast continue; } - Region mreg = regions[reg.connections[j]]; + RcRegion mreg = regions[reg.connections[j]]; if (mreg.id == 0 || (mreg.id & RC_BORDER_REG) != 0 || mreg.overlap) { continue; @@ -1070,7 +1070,7 @@ namespace DotRecast.Recast if (mergeId != reg.id) { int oldId = reg.id; - Region target = regions[mergeId]; + RcRegion target = regions[mergeId]; // Merge neighbours. if (MergeRegions(target, reg)) @@ -1161,7 +1161,7 @@ namespace DotRecast.Recast return maxRegionId; } - private static void AddUniqueConnection(Region reg, int n) + private static void AddUniqueConnection(RcRegion reg, int n) { if (!reg.connections.Contains(n)) { @@ -1170,18 +1170,18 @@ namespace DotRecast.Recast } private static int MergeAndFilterLayerRegions(Telemetry ctx, int minRegionArea, int maxRegionId, - CompactHeightfield chf, int[] srcReg, List overlaps) + RcCompactHeightfield chf, int[] srcReg, List overlaps) { int w = chf.width; int h = chf.height; int nreg = maxRegionId + 1; - Region[] regions = new Region[nreg]; + RcRegion[] regions = new RcRegion[nreg]; // Construct regions for (int i = 0; i < nreg; ++i) { - regions[i] = new Region(i); + regions[i] = new RcRegion(i); } // Find region neighbours and overlapping regions. @@ -1190,20 +1190,20 @@ namespace DotRecast.Recast { for (int x = 0; x < w; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; lregs.Clear(); for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; int ri = srcReg[i]; if (ri == 0 || ri >= nreg) { continue; } - Region reg = regions[ri]; + RcRegion reg = regions[ri]; reg.spanCount++; reg.areaType = chf.areas[i]; @@ -1241,8 +1241,8 @@ namespace DotRecast.Recast { if (lregs[i] != lregs[j]) { - Region ri = regions[lregs[i]]; - Region rj = regions[lregs[j]]; + RcRegion ri = regions[lregs[i]]; + RcRegion rj = regions[lregs[j]]; AddUniqueFloorRegion(ri, lregs[j]); AddUniqueFloorRegion(rj, lregs[i]); } @@ -1263,7 +1263,7 @@ namespace DotRecast.Recast List stack = new List(32); for (int i = 1; i < nreg; ++i) { - Region root = regions[i]; + RcRegion root = regions[i]; // Skip already visited. if (root.id != 0) { @@ -1281,13 +1281,13 @@ namespace DotRecast.Recast // Pop front var idx = stack[0]; stack.RemoveAt(0); - Region reg = regions[idx]; + RcRegion reg = regions[idx]; int ncons = reg.connections.Count; for (int j = 0; j < ncons; ++j) { int nei = reg.connections[j]; - Region regn = regions[nei]; + RcRegion regn = regions[nei]; // Skip already visited. if (regn.id != 0) { @@ -1415,7 +1415,7 @@ namespace DotRecast.Recast /// and rcCompactHeightfield::dist fields. /// /// @see rcCompactHeightfield, rcBuildRegions, rcBuildRegionsMonotone - public static void BuildDistanceField(Telemetry ctx, CompactHeightfield chf) + public static void BuildDistanceField(Telemetry ctx, RcCompactHeightfield chf) { ctx.StartTimer("DISTANCEFIELD"); int[] src = new int[chf.spanCount]; @@ -1439,7 +1439,7 @@ namespace DotRecast.Recast ctx.StopTimer("DISTANCEFIELD"); } - private static void PaintRectRegion(int minx, int maxx, int miny, int maxy, int regId, CompactHeightfield chf, + private static void PaintRectRegion(int minx, int maxx, int miny, int maxy, int regId, RcCompactHeightfield chf, int[] srcReg) { int w = chf.width; @@ -1447,7 +1447,7 @@ namespace DotRecast.Recast { for (int x = minx; x < maxx; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { if (chf.areas[i] != RC_NULL_AREA) @@ -1478,7 +1478,7 @@ namespace DotRecast.Recast /// @warning The distance field must be created using #rcBuildDistanceField before attempting to build regions. /// /// @see rcCompactHeightfield, rcCompactSpan, rcBuildDistanceField, rcBuildRegionsMonotone, rcConfig - public static void BuildRegionsMonotone(Telemetry ctx, CompactHeightfield chf, int minRegionArea, + public static void BuildRegionsMonotone(Telemetry ctx, RcCompactHeightfield chf, int minRegionArea, int mergeRegionArea) { ctx.StartTimer("REGIONS"); @@ -1491,10 +1491,10 @@ namespace DotRecast.Recast int[] srcReg = new int[chf.spanCount]; int nsweeps = Math.Max(chf.width, chf.height); - SweepSpan[] sweeps = new SweepSpan[nsweeps]; + RcSweepSpan[] sweeps = new RcSweepSpan[nsweeps]; for (int i = 0; i < sweeps.Length; i++) { - sweeps[i] = new SweepSpan(); + sweeps[i] = new RcSweepSpan(); } // Mark border regions. @@ -1533,11 +1533,11 @@ namespace DotRecast.Recast for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) { continue; @@ -1611,7 +1611,7 @@ namespace DotRecast.Recast // Remap IDs for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { @@ -1661,7 +1661,7 @@ namespace DotRecast.Recast /// @warning The distance field must be created using #rcBuildDistanceField before attempting to build regions. /// /// @see rcCompactHeightfield, rcCompactSpan, rcBuildDistanceField, rcBuildRegionsMonotone, rcConfig - public static void BuildRegions(Telemetry ctx, CompactHeightfield chf, int minRegionArea, + public static void BuildRegions(Telemetry ctx, RcCompactHeightfield chf, int minRegionArea, int mergeRegionArea) { ctx.StartTimer("REGIONS"); @@ -1786,7 +1786,7 @@ namespace DotRecast.Recast ctx.StopTimer("REGIONS"); } - public static void BuildLayerRegions(Telemetry ctx, CompactHeightfield chf, int minRegionArea) + public static void BuildLayerRegions(Telemetry ctx, RcCompactHeightfield chf, int minRegionArea) { ctx.StartTimer("REGIONS"); @@ -1797,10 +1797,10 @@ namespace DotRecast.Recast int[] srcReg = new int[chf.spanCount]; int nsweeps = Math.Max(chf.width, chf.height); - SweepSpan[] sweeps = new SweepSpan[nsweeps]; + RcSweepSpan[] sweeps = new RcSweepSpan[nsweeps]; for (int i = 0; i < sweeps.Length; i++) { - sweeps[i] = new SweepSpan(); + sweeps[i] = new RcSweepSpan(); } // Mark border regions. @@ -1839,11 +1839,11 @@ namespace DotRecast.Recast for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { - CompactSpan s = chf.spans[i]; + RcCompactSpan s = chf.spans[i]; if (chf.areas[i] == RC_NULL_AREA) { continue; @@ -1917,7 +1917,7 @@ namespace DotRecast.Recast // Remap IDs for (int x = borderSize; x < w - borderSize; ++x) { - CompactCell c = chf.cells[x + y * w]; + RcCompactCell c = chf.cells[x + y * w]; for (int i = c.index, ni = c.index + c.count; i < ni; ++i) { diff --git a/src/DotRecast.Recast/RecastVoxelization.cs b/src/DotRecast.Recast/RecastVoxelization.cs index f491620..7fdc45c 100644 --- a/src/DotRecast.Recast/RecastVoxelization.cs +++ b/src/DotRecast.Recast/RecastVoxelization.cs @@ -21,15 +21,15 @@ using DotRecast.Recast.Geom; namespace DotRecast.Recast { - public class RecastVoxelization + public static class RecastVoxelization { - public static Heightfield BuildSolidHeightfield(IInputGeomProvider geomProvider, RecastBuilderConfig builderCfg, + public static RcHeightfield BuildSolidHeightfield(IInputGeomProvider geomProvider, RecastBuilderConfig builderCfg, Telemetry ctx) { - RecastConfig cfg = builderCfg.cfg; + RcConfig cfg = builderCfg.cfg; // Allocate voxel heightfield where we rasterize our input data to. - Heightfield solid = new Heightfield(builderCfg.width, builderCfg.height, builderCfg.bmin, builderCfg.bmax, cfg.cs, cfg.ch, cfg.borderSize); + RcHeightfield solid = new RcHeightfield(builderCfg.width, builderCfg.height, builderCfg.bmin, builderCfg.bmax, cfg.cs, cfg.ch, cfg.borderSize); // Allocate array that can hold triangle area types. // If you have multiple meshes you need to process, allocate diff --git a/test/DotRecast.Detour.Crowd.Test/RecastTestMeshBuilder.cs b/test/DotRecast.Detour.Crowd.Test/RecastTestMeshBuilder.cs index 61f1f88..c89a242 100644 --- a/test/DotRecast.Detour.Crowd.Test/RecastTestMeshBuilder.cs +++ b/test/DotRecast.Detour.Crowd.Test/RecastTestMeshBuilder.cs @@ -51,19 +51,19 @@ public class RecastTestMeshBuilder int m_regionMinSize, int m_regionMergeSize, float m_edgeMaxLen, float m_edgeMaxError, int m_vertsPerPoly, float m_detailSampleDist, float m_detailSampleMaxError) { - RecastConfig cfg = new RecastConfig(m_partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, + RcConfig cfg = new RcConfig(m_partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_agentMaxSlope, m_regionMinSize, m_regionMergeSize, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); RecastBuilderConfig bcfg = new RecastBuilderConfig(cfg, m_geom.GetMeshBoundsMin(), m_geom.GetMeshBoundsMax()); RecastBuilder rcBuilder = new RecastBuilder(); RecastBuilderResult rcResult = rcBuilder.Build(m_geom, bcfg); - PolyMesh m_pmesh = rcResult.GetMesh(); + RcPolyMesh m_pmesh = rcResult.GetMesh(); for (int i = 0; i < m_pmesh.npolys; ++i) { m_pmesh.flags[i] = 1; } - PolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); + RcPolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); NavMeshDataCreateParams option = new NavMeshDataCreateParams(); option.verts = m_pmesh.verts; option.vertCount = m_pmesh.nverts; diff --git a/test/DotRecast.Detour.Dynamic.Test/VoxelQueryTest.cs b/test/DotRecast.Detour.Dynamic.Test/VoxelQueryTest.cs index 73c0b0a..42b93ba 100644 --- a/test/DotRecast.Detour.Dynamic.Test/VoxelQueryTest.cs +++ b/test/DotRecast.Detour.Dynamic.Test/VoxelQueryTest.cs @@ -39,7 +39,7 @@ public class VoxelQueryTest [Test] public void ShouldTraverseTiles() { - var hfProvider = new Mock>(); + var hfProvider = new Mock>(); // Given List captorX = new(); @@ -47,7 +47,7 @@ public class VoxelQueryTest hfProvider .Setup(e => e.Invoke(It.IsAny(), It.IsAny())) - .Returns((Heightfield)null) + .Returns((RcHeightfield)null) .Callback((x, z) => { captorX.Add(x); diff --git a/test/DotRecast.Detour.Test/Io/MeshSetReaderWriterTest.cs b/test/DotRecast.Detour.Test/Io/MeshSetReaderWriterTest.cs index 411bf70..326583a 100644 --- a/test/DotRecast.Detour.Test/Io/MeshSetReaderWriterTest.cs +++ b/test/DotRecast.Detour.Test/Io/MeshSetReaderWriterTest.cs @@ -74,8 +74,8 @@ public class MeshSetReaderWriterTest { for (int x = 0; x < tw; ++x) { - RecastConfig cfg = new RecastConfig(true, m_tileSize, m_tileSize, - RecastConfig.CalcBorder(m_agentRadius, m_cellSize), PartitionType.WATERSHED, m_cellSize, m_cellHeight, + RcConfig cfg = new RcConfig(true, m_tileSize, m_tileSize, + RcConfig.CalcBorder(m_agentRadius, m_cellSize), PartitionType.WATERSHED, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); diff --git a/test/DotRecast.Detour.Test/RecastTestMeshBuilder.cs b/test/DotRecast.Detour.Test/RecastTestMeshBuilder.cs index 8e3d4d5..e1860e5 100644 --- a/test/DotRecast.Detour.Test/RecastTestMeshBuilder.cs +++ b/test/DotRecast.Detour.Test/RecastTestMeshBuilder.cs @@ -52,19 +52,19 @@ public class RecastTestMeshBuilder int m_regionMinSize, int m_regionMergeSize, float m_edgeMaxLen, float m_edgeMaxError, int m_vertsPerPoly, float m_detailSampleDist, float m_detailSampleMaxError) { - RecastConfig cfg = new RecastConfig(m_partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, + RcConfig cfg = new RcConfig(m_partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_agentMaxSlope, m_regionMinSize, m_regionMergeSize, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); RecastBuilderConfig bcfg = new RecastBuilderConfig(cfg, m_geom.GetMeshBoundsMin(), m_geom.GetMeshBoundsMax()); RecastBuilder rcBuilder = new RecastBuilder(); RecastBuilderResult rcResult = rcBuilder.Build(m_geom, bcfg); - PolyMesh m_pmesh = rcResult.GetMesh(); + RcPolyMesh m_pmesh = rcResult.GetMesh(); for (int i = 0; i < m_pmesh.npolys; ++i) { m_pmesh.flags[i] = 1; } - PolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); + RcPolyMeshDetail m_dmesh = rcResult.GetMeshDetail(); NavMeshDataCreateParams option = new NavMeshDataCreateParams(); option.verts = m_pmesh.verts; option.vertCount = m_pmesh.nverts; diff --git a/test/DotRecast.Detour.Test/TestDetourBuilder.cs b/test/DotRecast.Detour.Test/TestDetourBuilder.cs index c16b925..3cfa69b 100644 --- a/test/DotRecast.Detour.Test/TestDetourBuilder.cs +++ b/test/DotRecast.Detour.Test/TestDetourBuilder.cs @@ -28,7 +28,7 @@ public class TestDetourBuilder : DetourBuilder { RecastBuilder rcBuilder = new RecastBuilder(); RecastBuilderResult rcResult = rcBuilder.Build(geom, rcConfig); - PolyMesh pmesh = rcResult.GetMesh(); + RcPolyMesh pmesh = rcResult.GetMesh(); if (applyRecastDemoFlags) { @@ -58,13 +58,13 @@ public class TestDetourBuilder : DetourBuilder } } - PolyMeshDetail dmesh = rcResult.GetMeshDetail(); + RcPolyMeshDetail dmesh = rcResult.GetMeshDetail(); NavMeshDataCreateParams option = GetNavMeshCreateParams(rcConfig.cfg, pmesh, dmesh, agentHeight, agentRadius, agentMaxClimb); return Build(option, x, y); } - public NavMeshDataCreateParams GetNavMeshCreateParams(RecastConfig rcConfig, PolyMesh pmesh, PolyMeshDetail dmesh, + public NavMeshDataCreateParams GetNavMeshCreateParams(RcConfig rcConfig, RcPolyMesh pmesh, RcPolyMeshDetail dmesh, float agentHeight, float agentRadius, float agentMaxClimb) { NavMeshDataCreateParams option = new NavMeshDataCreateParams(); diff --git a/test/DotRecast.Detour.Test/TestTiledNavMeshBuilder.cs b/test/DotRecast.Detour.Test/TestTiledNavMeshBuilder.cs index f76ae6c..8c283e1 100644 --- a/test/DotRecast.Detour.Test/TestTiledNavMeshBuilder.cs +++ b/test/DotRecast.Detour.Test/TestTiledNavMeshBuilder.cs @@ -67,7 +67,7 @@ public class TestTiledNavMeshBuilder navMesh = new NavMesh(navMeshParams, 6); // Build all tiles - RecastConfig cfg = new RecastConfig(true, m_tileSize, m_tileSize, RecastConfig.CalcBorder(m_agentRadius, m_cellSize), + RcConfig cfg = new RcConfig(true, m_tileSize, m_tileSize, RcConfig.CalcBorder(m_agentRadius, m_cellSize), m_partitionType, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); @@ -78,7 +78,7 @@ public class TestTiledNavMeshBuilder foreach (RecastBuilderResult result in rcResult) { - PolyMesh pmesh = result.GetMesh(); + RcPolyMesh pmesh = result.GetMesh(); if (pmesh.npolys == 0) { continue; @@ -97,7 +97,7 @@ public class TestTiledNavMeshBuilder option.polyFlags = pmesh.flags; option.polyCount = pmesh.npolys; option.nvp = pmesh.nvp; - PolyMeshDetail dmesh = result.GetMeshDetail(); + RcPolyMeshDetail dmesh = result.GetMeshDetail(); option.detailMeshes = dmesh.meshes; option.detailVerts = dmesh.verts; option.detailVertsCount = dmesh.nverts; diff --git a/test/DotRecast.Detour.TileCache.Test/TestTileLayerBuilder.cs b/test/DotRecast.Detour.TileCache.Test/TestTileLayerBuilder.cs index 576e8c8..7dccc64 100644 --- a/test/DotRecast.Detour.TileCache.Test/TestTileLayerBuilder.cs +++ b/test/DotRecast.Detour.TileCache.Test/TestTileLayerBuilder.cs @@ -42,7 +42,7 @@ public class TestTileLayerBuilder : AbstractTileLayersBuilder private const int m_vertsPerPoly = 6; private const float m_detailSampleDist = 6.0f; private const float m_detailSampleMaxError = 1.0f; - private readonly RecastConfig rcConfig; + private readonly RcConfig rcConfig; private const int m_tileSize = 48; protected readonly IInputGeomProvider geom; private readonly int tw; @@ -51,7 +51,7 @@ public class TestTileLayerBuilder : AbstractTileLayersBuilder public TestTileLayerBuilder(IInputGeomProvider geom) { this.geom = geom; - rcConfig = new RecastConfig(true, m_tileSize, m_tileSize, RecastConfig.CalcBorder(m_agentRadius, m_cellSize), + rcConfig = new RcConfig(true, m_tileSize, m_tileSize, RcConfig.CalcBorder(m_agentRadius, m_cellSize), PartitionType.WATERSHED, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); @@ -77,14 +77,14 @@ public class TestTileLayerBuilder : AbstractTileLayersBuilder protected override List Build(int tx, int ty, RcByteOrder order, bool cCompatibility) { - HeightfieldLayerSet lset = GetHeightfieldSet(tx, ty); + RcHeightfieldLayerSet lset = GetHeightfieldSet(tx, ty); List result = new(); if (lset != null) { TileCacheBuilder builder = new TileCacheBuilder(); for (int i = 0; i < lset.layers.Length; ++i) { - HeightfieldLayer layer = lset.layers[i]; + RcHeightfieldLayer layer = lset.layers[i]; // Store header TileCacheLayerHeader header = new TileCacheLayerHeader(); @@ -114,13 +114,13 @@ public class TestTileLayerBuilder : AbstractTileLayersBuilder return result; } - protected HeightfieldLayerSet GetHeightfieldSet(int tx, int ty) + protected RcHeightfieldLayerSet GetHeightfieldSet(int tx, int ty) { RecastBuilder rcBuilder = new RecastBuilder(); RcVec3f bmin = geom.GetMeshBoundsMin(); RcVec3f bmax = geom.GetMeshBoundsMax(); RecastBuilderConfig cfg = new RecastBuilderConfig(rcConfig, bmin, bmax, tx, ty); - HeightfieldLayerSet lset = rcBuilder.BuildLayers(geom, cfg); + RcHeightfieldLayerSet lset = rcBuilder.BuildLayers(geom, cfg); return lset; } } \ No newline at end of file diff --git a/test/DotRecast.Recast.Test/RecastLayersTest.cs b/test/DotRecast.Recast.Test/RecastLayersTest.cs index 7527442..ba423eb 100644 --- a/test/DotRecast.Recast.Test/RecastLayersTest.cs +++ b/test/DotRecast.Recast.Test/RecastLayersTest.cs @@ -24,7 +24,7 @@ using NUnit.Framework; namespace DotRecast.Recast.Test; -using static RecastConstants; +using static RcConstants; [Parallelizable] public class RecastLayersTest @@ -56,7 +56,7 @@ public class RecastLayersTest [Test] public void TestDungeon() { - HeightfieldLayerSet lset = Build("dungeon.obj", 3, 2); + RcHeightfieldLayerSet lset = Build("dungeon.obj", 3, 2); Assert.That(lset.layers.Length, Is.EqualTo(1)); Assert.That(lset.layers[0].width, Is.EqualTo(48)); Assert.That(lset.layers[0].hmin, Is.EqualTo(51)); @@ -74,7 +74,7 @@ public class RecastLayersTest [Test] public void Test() { - HeightfieldLayerSet lset = Build("nav_test.obj", 3, 2); + RcHeightfieldLayerSet lset = Build("nav_test.obj", 3, 2); Assert.That(lset.layers.Length, Is.EqualTo(3)); Assert.That(lset.layers[0].width, Is.EqualTo(48)); Assert.That(lset.layers[0].hmin, Is.EqualTo(13)); @@ -116,7 +116,7 @@ public class RecastLayersTest [Test] public void Test2() { - HeightfieldLayerSet lset = Build("nav_test.obj", 2, 4); + RcHeightfieldLayerSet lset = Build("nav_test.obj", 2, 4); Assert.That(lset.layers.Length, Is.EqualTo(2)); Assert.That(lset.layers[0].width, Is.EqualTo(48)); Assert.That(lset.layers[0].hmin, Is.EqualTo(13)); @@ -143,16 +143,16 @@ public class RecastLayersTest Assert.That(lset.layers[1].cons[1600], Is.EqualTo(0)); } - private HeightfieldLayerSet Build(string filename, int x, int y) + private RcHeightfieldLayerSet Build(string filename, int x, int y) { IInputGeomProvider geom = ObjImporter.Load(Loader.ToBytes(filename)); RecastBuilder builder = new RecastBuilder(); - RecastConfig cfg = new RecastConfig(true, m_tileSize, m_tileSize, RecastConfig.CalcBorder(m_agentRadius, m_cellSize), + RcConfig cfg = new RcConfig(true, m_tileSize, m_tileSize, RcConfig.CalcBorder(m_agentRadius, m_cellSize), m_partitionType, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); RecastBuilderConfig bcfg = new RecastBuilderConfig(cfg, geom.GetMeshBoundsMin(), geom.GetMeshBoundsMax(), x, y); - HeightfieldLayerSet lset = builder.BuildLayers(geom, bcfg); + RcHeightfieldLayerSet lset = builder.BuildLayers(geom, bcfg); return lset; } } diff --git a/test/DotRecast.Recast.Test/RecastSoloMeshTest.cs b/test/DotRecast.Recast.Test/RecastSoloMeshTest.cs index 26d2d9b..e0a6f96 100644 --- a/test/DotRecast.Recast.Test/RecastSoloMeshTest.cs +++ b/test/DotRecast.Recast.Test/RecastSoloMeshTest.cs @@ -25,7 +25,7 @@ using NUnit.Framework; namespace DotRecast.Recast.Test; -using static RecastConstants; +using static RcConstants; [Parallelizable] public class RecastSoloMeshTest @@ -106,7 +106,7 @@ public class RecastSoloMeshTest // // Init build configuration from GUI - RecastConfig cfg = new RecastConfig(partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, + RcConfig cfg = new RcConfig(partitionType, m_cellSize, m_cellHeight, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_agentMaxSlope, m_regionMinSize, m_regionMergeSize, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); RecastBuilderConfig bcfg = new RecastBuilderConfig(cfg, bmin, bmax); @@ -115,7 +115,7 @@ public class RecastSoloMeshTest // // Allocate voxel heightfield where we rasterize our input data to. - Heightfield m_solid = new Heightfield(bcfg.width, bcfg.height, bcfg.bmin, bcfg.bmax, cfg.cs, cfg.ch, cfg.borderSize); + RcHeightfield m_solid = new RcHeightfield(bcfg.width, bcfg.height, bcfg.bmin, bcfg.bmax, cfg.cs, cfg.ch, cfg.borderSize); foreach (TriMesh geom in geomProvider.Meshes()) { @@ -155,7 +155,7 @@ public class RecastSoloMeshTest // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours // between walkable cells will be calculated. - CompactHeightfield m_chf = RecastCompact.BuildCompactHeightfield(m_ctx, cfg.walkableHeight, cfg.walkableClimb, + RcCompactHeightfield m_chf = RecastCompact.BuildCompactHeightfield(m_ctx, cfg.walkableHeight, cfg.walkableClimb, m_solid); // Erode the walkable area by agent radius. @@ -234,8 +234,8 @@ public class RecastSoloMeshTest // // Create contours. - ContourSet m_cset = RecastContour.BuildContours(m_ctx, m_chf, cfg.maxSimplificationError, cfg.maxEdgeLen, - RecastConstants.RC_CONTOUR_TESS_WALL_EDGES); + RcContourSet m_cset = RecastContour.BuildContours(m_ctx, m_chf, cfg.maxSimplificationError, cfg.maxEdgeLen, + RcConstants.RC_CONTOUR_TESS_WALL_EDGES); Assert.That(m_cset.conts.Count, Is.EqualTo(expContours), "Contours"); // @@ -243,7 +243,7 @@ public class RecastSoloMeshTest // // Build polygon navmesh from the contours. - PolyMesh m_pmesh = RecastMesh.BuildPolyMesh(m_ctx, m_cset, cfg.maxVertsPerPoly); + RcPolyMesh m_pmesh = RecastMesh.BuildPolyMesh(m_ctx, m_cset, cfg.maxVertsPerPoly); Assert.That(m_pmesh.nverts, Is.EqualTo(expVerts), "Mesh Verts"); Assert.That(m_pmesh.npolys, Is.EqualTo(expPolys), "Mesh Polys"); @@ -252,7 +252,7 @@ public class RecastSoloMeshTest // on each polygon. // - PolyMeshDetail m_dmesh = RecastMeshDetail.BuildPolyMeshDetail(m_ctx, m_pmesh, m_chf, cfg.detailSampleDist, + RcPolyMeshDetail m_dmesh = RecastMeshDetail.BuildPolyMeshDetail(m_ctx, m_pmesh, m_chf, cfg.detailSampleDist, cfg.detailSampleMaxError); Assert.That(m_dmesh.nmeshes, Is.EqualTo(expDetMeshes), "Mesh Detail Meshes"); Assert.That(m_dmesh.nverts, Is.EqualTo(expDetVerts), "Mesh Detail Verts"); @@ -268,7 +268,7 @@ public class RecastSoloMeshTest } } - private void SaveObj(string filename, PolyMesh mesh) + private void SaveObj(string filename, RcPolyMesh mesh) { try { @@ -308,7 +308,7 @@ public class RecastSoloMeshTest } } - private void SaveObj(string filename, PolyMeshDetail dmesh) + private void SaveObj(string filename, RcPolyMeshDetail dmesh) { try { diff --git a/test/DotRecast.Recast.Test/RecastTest.cs b/test/DotRecast.Recast.Test/RecastTest.cs index 9bd5f8c..ebb1735 100644 --- a/test/DotRecast.Recast.Test/RecastTest.cs +++ b/test/DotRecast.Recast.Test/RecastTest.cs @@ -20,7 +20,7 @@ using NUnit.Framework; namespace DotRecast.Recast.Test; -using static RecastConstants; +using static RcConstants; [Parallelizable] public class RecastTest diff --git a/test/DotRecast.Recast.Test/RecastTileMeshTest.cs b/test/DotRecast.Recast.Test/RecastTileMeshTest.cs index 4cb8194..b7cb635 100644 --- a/test/DotRecast.Recast.Test/RecastTileMeshTest.cs +++ b/test/DotRecast.Recast.Test/RecastTileMeshTest.cs @@ -29,7 +29,7 @@ using NUnit.Framework; namespace DotRecast.Recast.Test; -using static RecastConstants; +using static RcConstants; [Parallelizable] public class RecastTileMeshTest @@ -62,7 +62,7 @@ public class RecastTileMeshTest { IInputGeomProvider geom = ObjImporter.Load(Loader.ToBytes(filename)); RecastBuilder builder = new RecastBuilder(); - RecastConfig cfg = new RecastConfig(true, m_tileSize, m_tileSize, RecastConfig.CalcBorder(m_agentRadius, m_cellSize), + RcConfig cfg = new RcConfig(true, m_tileSize, m_tileSize, RcConfig.CalcBorder(m_agentRadius, m_cellSize), m_partitionType, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); @@ -97,7 +97,7 @@ public class RecastTileMeshTest { IInputGeomProvider geom = ObjImporter.Load(Loader.ToBytes("dungeon.obj")); RecastBuilder builder = new RecastBuilder(); - RecastConfig cfg = new RecastConfig(true, m_tileSize, m_tileSize, RecastConfig.CalcBorder(m_agentRadius, m_cellSize), + RcConfig cfg = new RcConfig(true, m_tileSize, m_tileSize, RcConfig.CalcBorder(m_agentRadius, m_cellSize), m_partitionType, m_cellSize, m_cellHeight, m_agentMaxSlope, true, true, true, m_agentHeight, m_agentRadius, m_agentMaxClimb, m_regionMinArea, m_regionMergeArea, m_edgeMaxLen, m_edgeMaxError, m_vertsPerPoly, true, m_detailSampleDist, m_detailSampleMaxError, SampleAreaModifications.SAMPLE_AREAMOD_GROUND); @@ -124,7 +124,7 @@ public class RecastTileMeshTest Console.WriteLine(" Time MT : " + (t3 - t2) / TimeSpan.TicksPerMillisecond); } - private void Build(IInputGeomProvider geom, RecastBuilder builder, RecastConfig cfg, int threads, bool validate) + private void Build(IInputGeomProvider geom, RecastBuilder builder, RcConfig cfg, int threads, bool validate) { CancellationTokenSource cts = new CancellationTokenSource(); List tiles = new();