From 6ead61661d146ad388f8d17a042431b0bec0d587 Mon Sep 17 00:00:00 2001 From: ikpil Date: Sat, 29 Apr 2023 13:11:38 +0900 Subject: [PATCH] 012 -> xyz --- .../Colliders/BoxCollider.cs | 28 +++++++-------- .../Colliders/CapsuleCollider.cs | 6 ++-- .../Colliders/CompositeCollider.cs | 2 +- .../Colliders/CylinderCollider.cs | 6 ++-- .../Colliders/SphereCollider.cs | 12 +++---- .../Colliders/TrimeshCollider.cs | 2 +- .../DynamicNavMesh.cs | 16 ++++----- src/DotRecast.Detour.Dynamic/DynamicTile.cs | 2 +- src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs | 26 +++++++------- .../Io/VoxelFileReader.cs | 32 ++++++++--------- .../Io/VoxelFileWriter.cs | 20 +++++------ src/DotRecast.Detour.Dynamic/VoxelQuery.cs | 36 +++++++++---------- 12 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs index 28b0c4e..f742650 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/BoxCollider.cs @@ -46,9 +46,9 @@ namespace DotRecast.Detour.Dynamic.Colliders float s0 = (i & 1) != 0 ? 1f : -1f; float s1 = (i & 2) != 0 ? 1f : -1f; float s2 = (i & 4) != 0 ? 1f : -1f; - float vx = center[0] + s0 * halfEdges[0][0] + s1 * halfEdges[1][0] + s2 * halfEdges[2][0]; - float vy = center[1] + s0 * halfEdges[0][1] + s1 * halfEdges[1][1] + s2 * halfEdges[2][1]; - float vz = center[2] + s0 * halfEdges[0][2] + s1 * halfEdges[1][2] + s2 * halfEdges[2][2]; + float vx = center.x + s0 * halfEdges[0].x + s1 * halfEdges[1].x + s2 * halfEdges[2].x; + float vy = center.y + s0 * halfEdges[0].y + s1 * halfEdges[1].y + s2 * halfEdges[2].y; + float vz = center.z + s0 * halfEdges[0].z + s1 * halfEdges[1].z + s2 * halfEdges[2].z; bounds[0] = Math.Min(bounds[0], vx); bounds[1] = Math.Min(bounds[1], vy); bounds[2] = Math.Min(bounds[2], vz); @@ -71,7 +71,7 @@ namespace DotRecast.Detour.Dynamic.Colliders Vector3f[] halfEdges = { Vector3f.Zero, - Vector3f.Of(up[0], up[1], up[2]), + Vector3f.Of(up.x, up.y, up.z), Vector3f.Zero }; RecastVectors.normalize(ref halfEdges[1]); @@ -79,16 +79,16 @@ namespace DotRecast.Detour.Dynamic.Colliders RecastVectors.normalize(ref halfEdges[0]); RecastVectors.cross(ref halfEdges[2], halfEdges[0], up); RecastVectors.normalize(ref halfEdges[2]); - halfEdges[0][0] *= extent[0]; - halfEdges[0][1] *= extent[0]; - halfEdges[0][2] *= extent[0]; - halfEdges[1][0] *= extent[1]; - halfEdges[1][1] *= extent[1]; - halfEdges[1][2] *= extent[1]; - halfEdges[2][0] *= extent[2]; - halfEdges[2][1] *= extent[2]; - halfEdges[2][2] *= extent[2]; + halfEdges[0].x *= extent.x; + halfEdges[0].y *= extent.x; + halfEdges[0].z *= extent.x; + halfEdges[1].x *= extent.y; + halfEdges[1].y *= extent.y; + halfEdges[1].z *= extent.y; + halfEdges[2].x *= extent.z; + halfEdges[2].y *= extent.z; + halfEdges[2].z *= extent.z; return halfEdges; } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs index 18163b3..d2af7cd 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CapsuleCollider.cs @@ -46,9 +46,9 @@ namespace DotRecast.Detour.Dynamic.Colliders { return new float[] { - Math.Min(start[0], end[0]) - radius, Math.Min(start[1], end[1]) - radius, - Math.Min(start[2], end[2]) - radius, Math.Max(start[0], end[0]) + radius, Math.Max(start[1], end[1]) + radius, - Math.Max(start[2], end[2]) + radius + Math.Min(start.x, end.x) - radius, Math.Min(start.y, end.y) - radius, + Math.Min(start.z, end.z) - radius, Math.Max(start.x, end.x) + radius, Math.Max(start.y, end.y) + radius, + Math.Max(start.z, end.z) + radius }; } } diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs index c3b95d4..e4a08b7 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CompositeCollider.cs @@ -72,4 +72,4 @@ namespace DotRecast.Detour.Dynamic.Colliders c.rasterize(hf, telemetry); } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs index 77e0f45..da787d3 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/CylinderCollider.cs @@ -46,9 +46,9 @@ namespace DotRecast.Detour.Dynamic.Colliders { return new float[] { - Math.Min(start[0], end[0]) - radius, Math.Min(start[1], end[1]) - radius, - Math.Min(start[2], end[2]) - radius, Math.Max(start[0], end[0]) + radius, Math.Max(start[1], end[1]) + radius, - Math.Max(start[2], end[2]) + radius + Math.Min(start.x, end.x) - radius, Math.Min(start.y, end.y) - radius, + Math.Min(start.z, end.z) - radius, Math.Max(start.x, end.x) + radius, Math.Max(start.y, end.y) + radius, + Math.Max(start.z, end.z) + radius }; } } diff --git a/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs index cb786ec..6092751 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/SphereCollider.cs @@ -44,12 +44,12 @@ namespace DotRecast.Detour.Dynamic.Colliders { return new float[] { - center[0] - radius, - center[1] - radius, - center[2] - radius, - center[0] + radius, - center[1] + radius, - center[2] + radius + center.x - radius, + center.y - radius, + center.z - radius, + center.x + radius, + center.y + radius, + center.z + radius }; } } diff --git a/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs b/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs index 3327917..dce68bb 100644 --- a/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs +++ b/src/DotRecast.Detour.Dynamic/Colliders/TrimeshCollider.cs @@ -65,4 +65,4 @@ namespace DotRecast.Detour.Dynamic.Colliders } } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs b/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs index 327aa74..b3e8264 100644 --- a/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs +++ b/src/DotRecast.Detour.Dynamic/DynamicNavMesh.cs @@ -59,9 +59,9 @@ namespace DotRecast.Detour.Dynamic config.detailSampleMaxError = voxelFile.detailSampleMaxError; builder = new RecastBuilder(); navMeshParams = new NavMeshParams(); - navMeshParams.orig[0] = voxelFile.bounds[0]; - navMeshParams.orig[1] = voxelFile.bounds[1]; - navMeshParams.orig[2] = voxelFile.bounds[2]; + navMeshParams.orig.x = voxelFile.bounds[0]; + navMeshParams.orig.y = voxelFile.bounds[1]; + navMeshParams.orig.z = voxelFile.bounds[2]; navMeshParams.tileWidth = voxelFile.cellSize * voxelFile.tileSizeX; navMeshParams.tileHeight = voxelFile.cellSize * voxelFile.tileSizeZ; navMeshParams.maxTiles = voxelFile.tiles.Count; @@ -189,10 +189,10 @@ namespace DotRecast.Detour.Dynamic return _tiles.Values; } - int minx = (int)Math.Floor((bounds[0] - navMeshParams.orig[0]) / navMeshParams.tileWidth); - int minz = (int)Math.Floor((bounds[2] - navMeshParams.orig[2]) / navMeshParams.tileHeight); - int maxx = (int)Math.Floor((bounds[3] - navMeshParams.orig[0]) / navMeshParams.tileWidth); - int maxz = (int)Math.Floor((bounds[5] - navMeshParams.orig[2]) / navMeshParams.tileHeight); + int minx = (int)Math.Floor((bounds[0] - navMeshParams.orig.x) / navMeshParams.tileWidth); + int minz = (int)Math.Floor((bounds[2] - navMeshParams.orig.z) / navMeshParams.tileHeight); + int maxx = (int)Math.Floor((bounds[3] - navMeshParams.orig.x) / navMeshParams.tileWidth); + int maxz = (int)Math.Floor((bounds[5] - navMeshParams.orig.z) / navMeshParams.tileHeight); List tiles = new List(); for (int z = minz; z <= maxz; ++z) { @@ -259,4 +259,4 @@ namespace DotRecast.Detour.Dynamic return _tiles.Values.Select(t => t.recastResult).ToList(); } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/DynamicTile.cs b/src/DotRecast.Detour.Dynamic/DynamicTile.cs index ae2eddc..6fae66b 100644 --- a/src/DotRecast.Detour.Dynamic/DynamicTile.cs +++ b/src/DotRecast.Detour.Dynamic/DynamicTile.cs @@ -65,7 +65,7 @@ namespace DotRecast.Detour.Dynamic { if (!rasterizedColliders.Contains(cid)) { - heightfield.bmax[1] = Math.Max(heightfield.bmax[1], c.bounds()[4] + heightfield.ch * 2); + heightfield.bmax.y = Math.Max(heightfield.bmax.y, c.bounds()[4] + heightfield.ch * 2); c.rasterize(heightfield, telemetry); } } diff --git a/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs b/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs index 9289f17..04161dc 100644 --- a/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs +++ b/src/DotRecast.Detour.Dynamic/Io/VoxelFile.cs @@ -103,12 +103,12 @@ namespace DotRecast.Detour.Dynamic.Io foreach (RecastBuilderResult r in results) { f.tiles.Add(new VoxelTile(r.tileX, r.tileZ, r.getSolidHeightfield())); - f.bounds[0] = Math.Min(f.bounds[0], r.getSolidHeightfield().bmin[0]); - f.bounds[1] = Math.Min(f.bounds[1], r.getSolidHeightfield().bmin[1]); - f.bounds[2] = Math.Min(f.bounds[2], r.getSolidHeightfield().bmin[2]); - f.bounds[3] = Math.Max(f.bounds[3], r.getSolidHeightfield().bmax[0]); - f.bounds[4] = Math.Max(f.bounds[4], r.getSolidHeightfield().bmax[1]); - f.bounds[5] = Math.Max(f.bounds[5], r.getSolidHeightfield().bmax[2]); + f.bounds[0] = Math.Min(f.bounds[0], r.getSolidHeightfield().bmin.x); + f.bounds[1] = Math.Min(f.bounds[1], r.getSolidHeightfield().bmin.y); + f.bounds[2] = Math.Min(f.bounds[2], r.getSolidHeightfield().bmin.z); + f.bounds[3] = Math.Max(f.bounds[3], r.getSolidHeightfield().bmax.x); + f.bounds[4] = Math.Max(f.bounds[4], r.getSolidHeightfield().bmax.y); + f.bounds[5] = Math.Max(f.bounds[5], r.getSolidHeightfield().bmax.z); } return f; @@ -148,15 +148,15 @@ namespace DotRecast.Detour.Dynamic.Io { Heightfield heightfield = vt.heightfield(); f.tiles.Add(new VoxelTile(vt.tileX, vt.tileZ, heightfield)); - f.bounds[0] = Math.Min(f.bounds[0], vt.boundsMin[0]); - f.bounds[1] = Math.Min(f.bounds[1], vt.boundsMin[1]); - f.bounds[2] = Math.Min(f.bounds[2], vt.boundsMin[2]); - f.bounds[3] = Math.Max(f.bounds[3], vt.boundsMax[0]); - f.bounds[4] = Math.Max(f.bounds[4], vt.boundsMax[1]); - f.bounds[5] = Math.Max(f.bounds[5], vt.boundsMax[2]); + f.bounds[0] = Math.Min(f.bounds[0], vt.boundsMin.x); + f.bounds[1] = Math.Min(f.bounds[1], vt.boundsMin.y); + f.bounds[2] = Math.Min(f.bounds[2], vt.boundsMin.z); + f.bounds[3] = Math.Max(f.bounds[3], vt.boundsMax.x); + f.bounds[4] = Math.Max(f.bounds[4], vt.boundsMax.y); + f.bounds[5] = Math.Max(f.bounds[5], vt.boundsMax.z); } return f; } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/Io/VoxelFileReader.cs b/src/DotRecast.Detour.Dynamic/Io/VoxelFileReader.cs index c863fc5..4b9a0ff 100644 --- a/src/DotRecast.Detour.Dynamic/Io/VoxelFileReader.cs +++ b/src/DotRecast.Detour.Dynamic/Io/VoxelFileReader.cs @@ -73,9 +73,9 @@ namespace DotRecast.Detour.Dynamic.Io file.useTiles = buf.get() != 0; file.tileSizeX = buf.getInt(); file.tileSizeZ = buf.getInt(); - file.rotation[0] = buf.getFloat(); - file.rotation[1] = buf.getFloat(); - file.rotation[2] = buf.getFloat(); + file.rotation.x = buf.getFloat(); + file.rotation.y = buf.getFloat(); + file.rotation.z = buf.getFloat(); file.bounds[0] = buf.getFloat(); file.bounds[1] = buf.getFloat(); file.bounds[2] = buf.getFloat(); @@ -102,22 +102,22 @@ namespace DotRecast.Detour.Dynamic.Io int depth = buf.getInt(); int borderSize = buf.getInt(); Vector3f boundsMin = new Vector3f(); - boundsMin[0] = buf.getFloat(); - boundsMin[1] = buf.getFloat(); - boundsMin[2] = buf.getFloat(); + boundsMin.x = buf.getFloat(); + boundsMin.y = buf.getFloat(); + boundsMin.z = buf.getFloat(); Vector3f boundsMax = new Vector3f(); - boundsMax[0] = buf.getFloat(); - boundsMax[1] = buf.getFloat(); - boundsMax[2] = buf.getFloat(); + boundsMax.x = buf.getFloat(); + boundsMax.y = buf.getFloat(); + boundsMax.z = buf.getFloat(); if (isExportedFromAstar) { // bounds are local - boundsMin[0] += file.bounds[0]; - boundsMin[1] += file.bounds[1]; - boundsMin[2] += file.bounds[2]; - boundsMax[0] += file.bounds[0]; - boundsMax[1] += file.bounds[1]; - boundsMax[2] += file.bounds[2]; + boundsMin.x += file.bounds[0]; + boundsMin.y += file.bounds[1]; + boundsMin.z += file.bounds[2]; + boundsMax.x += file.bounds[0]; + boundsMax.y += file.bounds[1]; + boundsMax.z += file.bounds[2]; } float cellSize = buf.getFloat(); @@ -139,4 +139,4 @@ namespace DotRecast.Detour.Dynamic.Io return file; } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/Io/VoxelFileWriter.cs b/src/DotRecast.Detour.Dynamic/Io/VoxelFileWriter.cs index 418ce81..aaccb15 100644 --- a/src/DotRecast.Detour.Dynamic/Io/VoxelFileWriter.cs +++ b/src/DotRecast.Detour.Dynamic/Io/VoxelFileWriter.cs @@ -51,9 +51,9 @@ namespace DotRecast.Detour.Dynamic.Io write(stream, f.useTiles); write(stream, f.tileSizeX, byteOrder); write(stream, f.tileSizeZ, byteOrder); - write(stream, f.rotation[0], byteOrder); - write(stream, f.rotation[1], byteOrder); - write(stream, f.rotation[2], byteOrder); + write(stream, f.rotation.x, byteOrder); + write(stream, f.rotation.y, byteOrder); + write(stream, f.rotation.z, byteOrder); write(stream, f.bounds[0], byteOrder); write(stream, f.bounds[1], byteOrder); write(stream, f.bounds[2], byteOrder); @@ -74,12 +74,12 @@ namespace DotRecast.Detour.Dynamic.Io write(stream, tile.width, byteOrder); write(stream, tile.depth, byteOrder); write(stream, tile.borderSize, byteOrder); - write(stream, tile.boundsMin[0], byteOrder); - write(stream, tile.boundsMin[1], byteOrder); - write(stream, tile.boundsMin[2], byteOrder); - write(stream, tile.boundsMax[0], byteOrder); - write(stream, tile.boundsMax[1], byteOrder); - write(stream, tile.boundsMax[2], byteOrder); + write(stream, tile.boundsMin.x, byteOrder); + write(stream, tile.boundsMin.y, byteOrder); + write(stream, tile.boundsMin.z, byteOrder); + write(stream, tile.boundsMax.x, byteOrder); + write(stream, tile.boundsMax.y, byteOrder); + write(stream, tile.boundsMax.z, byteOrder); write(stream, tile.cellSize, byteOrder); write(stream, tile.cellHeight, byteOrder); byte[] bytes = tile.spanData; @@ -92,4 +92,4 @@ namespace DotRecast.Detour.Dynamic.Io stream.Write(bytes); } } -} \ No newline at end of file +} diff --git a/src/DotRecast.Detour.Dynamic/VoxelQuery.cs b/src/DotRecast.Detour.Dynamic/VoxelQuery.cs index 6779e3e..1f61e9f 100644 --- a/src/DotRecast.Detour.Dynamic/VoxelQuery.cs +++ b/src/DotRecast.Detour.Dynamic/VoxelQuery.cs @@ -54,20 +54,20 @@ namespace DotRecast.Detour.Dynamic private float? traverseTiles(Vector3f start, Vector3f end) { - float relStartX = start[0] - origin[0]; - float relStartZ = start[2] - origin[2]; + float relStartX = start.x - origin.x; + float relStartZ = start.z - origin.z; int sx = (int)Math.Floor(relStartX / tileWidth); int sz = (int)Math.Floor(relStartZ / tileDepth); - int ex = (int)Math.Floor((end[0] - origin[0]) / tileWidth); - int ez = (int)Math.Floor((end[2] - origin[2]) / tileDepth); + int ex = (int)Math.Floor((end.x - origin.x) / tileWidth); + int ez = (int)Math.Floor((end.z - origin.z) / tileDepth); int dx = ex - sx; int dz = ez - sz; int stepX = dx < 0 ? -1 : 1; int stepZ = dz < 0 ? -1 : 1; float xRem = (tileWidth + (relStartX % tileWidth)) % tileWidth; float zRem = (tileDepth + (relStartZ % tileDepth)) % tileDepth; - float tx = end[0] - start[0]; - float tz = end[2] - start[2]; + float tx = end.x - start.x; + float tz = end.z - start.z; float xOffest = Math.Abs(tx < 0 ? xRem : tileWidth - xRem); float zOffest = Math.Abs(tz < 0 ? zRem : tileDepth - zRem); tx = Math.Abs(tx); @@ -112,17 +112,17 @@ namespace DotRecast.Detour.Dynamic Heightfield hf = heightfieldProvider.Invoke(x, z); if (null != hf) { - float tx = end[0] - start[0]; - float ty = end[1] - start[1]; - float tz = end[2] - start[2]; - float[] entry = { start[0] + tMin * tx, start[1] + tMin * ty, start[2] + tMin * tz }; - float[] exit = { start[0] + tMax * tx, start[1] + tMax * ty, start[2] + tMax * tz }; - float relStartX = entry[0] - hf.bmin[0]; - float relStartZ = entry[2] - hf.bmin[2]; + float tx = end.x - start.x; + float ty = end.y - start.y; + float tz = end.z - start.z; + float[] entry = { start.x + tMin * tx, start.y + tMin * ty, start.z + tMin * tz }; + float[] exit = { start.x + tMax * tx, start.y + tMax * ty, start.z + tMax * tz }; + float relStartX = entry[0] - hf.bmin.x; + float relStartZ = entry[2] - hf.bmin.z; int sx = (int)Math.Floor(relStartX / hf.cs); int sz = (int)Math.Floor(relStartZ / hf.cs); - int ex = (int)Math.Floor((exit[0] - hf.bmin[0]) / hf.cs); - int ez = (int)Math.Floor((exit[2] - hf.bmin[2]) / hf.cs); + int ex = (int)Math.Floor((exit[0] - hf.bmin.x) / hf.cs); + int ez = (int)Math.Floor((exit[2] - hf.bmin.z) / hf.cs); int dx = ex - sx; int dz = ez - sz; int stepX = dx < 0 ? -1 : 1; @@ -142,8 +142,8 @@ namespace DotRecast.Detour.Dynamic { if (sx >= 0 && sx < hf.width && sz >= 0 && sz < hf.height) { - float y1 = start[1] + ty * (tMin + t) - hf.bmin[1]; - float y2 = start[1] + ty * (tMin + Math.Min(tMaxX, tMaxZ)) - hf.bmin[1]; + float y1 = start.y + ty * (tMin + t) - hf.bmin.y; + 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]; @@ -181,4 +181,4 @@ namespace DotRecast.Detour.Dynamic return null; } } -} \ No newline at end of file +}