bugfix - bmin, bmax ref

This commit is contained in:
ikpil 2023-04-01 01:04:24 +09:00
parent c81c2aded9
commit a01b0f8aa0
2 changed files with 6 additions and 6 deletions

View File

@ -358,7 +358,7 @@ namespace DotRecast.Detour.TileCache
}
// Cylinder obstacle
public long addObstacle(float[] pos, float radius, float height)
public long addObstacle(Vector3f pos, float radius, float height)
{
TileCacheObstacle ob = allocObstacle();
ob.type = TileCacheObstacle.TileCacheObstacleType.CYLINDER;
@ -457,7 +457,7 @@ namespace DotRecast.Detour.TileCache
CompressedTile tile = m_tiles[decodeTileIdTile(i)];
Vector3f tbmin = new Vector3f();
Vector3f tbmax = new Vector3f();
calcTightTileBounds(tile.header, tbmin, tbmax);
calcTightTileBounds(tile.header, ref tbmin, ref tbmax);
if (overlapBounds(bmin, bmax, tbmin, tbmax))
{
results.Add(i);
@ -501,7 +501,7 @@ namespace DotRecast.Detour.TileCache
// Find touched tiles.
Vector3f bmin = new Vector3f();
Vector3f bmax = new Vector3f();
getObstacleBounds(ob, bmin, bmax);
getObstacleBounds(ob, ref bmin, ref bmax);
ob.touched = queryTiles(bmin, bmax);
// Add tiles to update list.
ob.pending.Clear();
@ -682,7 +682,7 @@ namespace DotRecast.Detour.TileCache
return layer;
}
void calcTightTileBounds(TileCacheLayerHeader header, Vector3f bmin, Vector3f bmax)
void calcTightTileBounds(TileCacheLayerHeader header, ref Vector3f bmin, ref Vector3f bmax)
{
float cs = m_params.cs;
bmin[0] = header.bmin[0] + header.minx * cs;
@ -693,7 +693,7 @@ namespace DotRecast.Detour.TileCache
bmax[2] = header.bmin[2] + (header.maxy + 1) * cs;
}
void getObstacleBounds(TileCacheObstacle ob, Vector3f bmin, Vector3f bmax)
void getObstacleBounds(TileCacheObstacle ob, ref Vector3f bmin, ref Vector3f bmax)
{
if (ob.type == TileCacheObstacle.TileCacheObstacleType.CYLINDER)
{

View File

@ -46,7 +46,7 @@ public class TempObstaclesTest : AbstractTileCacheTest
MeshTile tile = tiles[0];
Assert.That(tile.data.header.vertCount, Is.EqualTo(16));
Assert.That(tile.data.header.polyCount, Is.EqualTo(6));
long o = tc.addObstacle(new float[] { -1.815208f, 9.998184f, -20.307983f }, 1f, 2f);
long o = tc.addObstacle(Vector3f.Of(-1.815208f, 9.998184f, -20.307983f), 1f, 2f);
bool upToDate = tc.update();
Assert.That(upToDate, Is.True);
tiles = tc.getNavMesh().getTilesAt(1, 4);