forked from mirror/DotRecast
soh-1
This commit is contained in:
parent
f81975d97a
commit
29fab9f5b2
|
@ -137,12 +137,12 @@ namespace DotRecast.Detour
|
|||
}
|
||||
|
||||
// Randomly pick point on polygon.
|
||||
float[] verts = new float[3 * m_nav.GetMaxVertsPerPoly()];
|
||||
float[] areas = new float[m_nav.GetMaxVertsPerPoly()];
|
||||
RcArrays.Copy(tile.data.verts, poly.verts[0] * 3, verts, 0, 3);
|
||||
Span<float> verts = stackalloc float[3 * m_nav.GetMaxVertsPerPoly()];
|
||||
Span<float> areas = stackalloc float[m_nav.GetMaxVertsPerPoly()];
|
||||
RcSpans.Copy(tile.data.verts, poly.verts[0] * 3, verts, 0, 3);
|
||||
for (int j = 1; j < poly.vertCount; ++j)
|
||||
{
|
||||
RcArrays.Copy(tile.data.verts, poly.verts[j] * 3, verts, j * 3, 3);
|
||||
RcSpans.Copy(tile.data.verts, poly.verts[j] * 3, verts, j * 3, 3);
|
||||
}
|
||||
|
||||
float s = frand.Next();
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace DotRecast.Detour
|
|||
/// @param[in] b Vertex B. [(x, y, z)]
|
||||
/// @param[in] c Vertex C. [(x, y, z)]
|
||||
/// @return The signed xz-plane area of the triangle.
|
||||
public static float TriArea2D(float[] verts, int a, int b, int c)
|
||||
public static float TriArea2D(Span<float> verts, int a, int b, int c)
|
||||
{
|
||||
float abx = verts[b] - verts[a];
|
||||
float abz = verts[b + 2] - verts[a + 2];
|
||||
|
@ -165,7 +165,7 @@ namespace DotRecast.Detour
|
|||
|
||||
// Returns a random point in a convex polygon.
|
||||
// Adapted from Graphics Gems article.
|
||||
public static RcVec3f RandomPointInConvexPoly(float[] pts, int npts, float[] areas, float s, float t)
|
||||
public static RcVec3f RandomPointInConvexPoly(Span<float> pts, int npts, Span<float> areas, float s, float t)
|
||||
{
|
||||
// Calc triangle araes
|
||||
float areasum = 0.0f;
|
||||
|
|
|
@ -19,13 +19,11 @@ freely, subject to the following restrictions:
|
|||
using System;
|
||||
using DotRecast.Core;
|
||||
using DotRecast.Core.Numerics;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
|
||||
namespace DotRecast.Detour.Test;
|
||||
|
||||
|
||||
public class RandomPointTest : AbstractDetourTest
|
||||
{
|
||||
[Test]
|
||||
|
@ -78,7 +76,7 @@ public class RandomPointTest : AbstractDetourTest
|
|||
randomPt = nextRandomPt;
|
||||
|
||||
status = navmesh.GetTileAndPolyByRef(randomRef, out var tile, out var poly);
|
||||
|
||||
|
||||
float[] bmin = new float[2];
|
||||
float[] bmax = new float[2];
|
||||
for (int j = 0; j < poly.vertCount; j++)
|
||||
|
|
Loading…
Reference in New Issue