test code

This commit is contained in:
ikpil 2023-06-26 22:50:24 +09:00
parent 3e6e67cf25
commit 38d94b08bf
2 changed files with 41 additions and 44 deletions

View File

@ -1,29 +1,20 @@
using System;
namespace DotRecast.Core
namespace DotRecast.Core
{
public struct SegmentVert
{
public RcVec3f vmin;
public RcVec3f vmax;
public float this[int index]
public SegmentVert(float v0, float v1, float v2, float v3, float v4, float v5)
{
get => GetElement(index);
vmin.x = v0;
vmin.y = v1;
vmin.z = v2;
vmax.x = v3;
vmax.y = v4;
vmax.z = v5;
}
public float GetElement(int index)
{
switch (index)
{
case 0: return vmin.x;
case 1: return vmin.y;
case 2: return vmin.z;
case 3: return vmax.x;
case 4: return vmax.y;
case 5: return vmax.z;
default: throw new IndexOutOfRangeException($"{index}");
}
}
}
}

View File

@ -29,40 +29,44 @@ public class GetPolyWallSegmentsTest : AbstractDetourTest
{
new[]
{
22.084785f, 10.197294f, -48.341274f, 22.684784f, 10.197294f, -44.141273f, 22.684784f, 10.197294f,
-44.141273f, 23.884785f, 10.197294f, -48.041275f, 23.884785f, 10.197294f, -48.041275f, 22.084785f,
10.197294f, -48.341274f
22.084785f, 10.197294f, -48.341274f, 22.684784f, 10.197294f, -44.141273f,
22.684784f, 10.197294f, -44.141273f, 23.884785f, 10.197294f, -48.041275f,
23.884785f, 10.197294f, -48.041275f, 22.084785f, 10.197294f, -48.341274f,
},
new[]
{
27.784786f, 10.197294f, 4.158730f, 28.384785f, 10.197294f, 2.358727f, 28.384785f, 10.197294f, 2.358727f,
28.384785f, 10.197294f, -2.141273f, 28.384785f, 10.197294f, -2.141273f, 27.784786f, 10.197294f,
-2.741272f, 27.784786f, 10.197294f, -2.741272f, 19.684784f, 10.197294f, -4.241272f, 19.684784f,
10.197294f, -4.241272f, 19.684784f, 10.197294f, 4.158730f, 19.684784f, 10.197294f, 4.158730f,
27.784786f, 10.197294f, 4.158730f
27.784786f, 10.197294f, 4.158730f, 28.384785f, 10.197294f, 2.358727f,
28.384785f, 10.197294f, 2.358727f, 28.384785f, 10.197294f, -2.141273f,
28.384785f, 10.197294f, -2.141273f, 27.784786f, 10.197294f, -2.741272f,
27.784786f, 10.197294f, -2.741272f, 19.684784f, 10.197294f, -4.241272f,
19.684784f, 10.197294f, -4.241272f, 19.684784f, 10.197294f, 4.158730f,
19.684784f, 10.197294f, 4.158730f, 27.784786f, 10.197294f, 4.158730f,
},
new[]
{
22.384785f, 14.997294f, -71.741272f, 19.084785f, 16.597294f, -74.741272f, 19.084785f, 16.597294f,
-74.741272f, 18.184784f, 15.997294f, -73.541275f, 18.184784f, 15.997294f, -73.541275f, 17.884785f,
14.997294f, -72.341278f, 17.884785f, 14.997294f, -72.341278f, 17.584785f, 14.997294f, -70.841278f,
17.584785f, 14.997294f, -70.841278f, 22.084785f, 14.997294f, -70.541275f, 22.084785f, 14.997294f,
-70.541275f, 22.384785f, 14.997294f, -71.741272f
22.384785f, 14.997294f, -71.741272f, 19.084785f, 16.597294f, -74.741272f,
19.084785f, 16.597294f, -74.741272f, 18.184784f, 15.997294f, -73.541275f,
18.184784f, 15.997294f, -73.541275f, 17.884785f, 14.997294f, -72.341278f,
17.884785f, 14.997294f, -72.341278f, 17.584785f, 14.997294f, -70.841278f,
17.584785f, 14.997294f, -70.841278f, 22.084785f, 14.997294f, -70.541275f,
22.084785f, 14.997294f, -70.541275f, 22.384785f, 14.997294f, -71.741272f,
},
new[]
{
4.684784f, 10.197294f, -6.941269f, 1.984785f, 10.197294f, -8.441269f, 1.984785f, 10.197294f, -8.441269f,
-4.015217f, 10.197294f, -6.941269f, -4.015217f, 10.197294f, -6.941269f, -1.615215f, 10.197294f,
-1.541275f, -1.615215f, 10.197294f, -1.541275f, 1.384785f, 10.197294f, 1.458725f, 1.384785f,
10.197294f, 1.458725f, 7.984783f, 10.197294f, -2.441269f, 7.984783f, 10.197294f, -2.441269f,
4.684784f, 10.197294f, -6.941269f
4.684784f, 10.197294f, -6.941269f, 1.984785f, 10.197294f, -8.441269f,
1.984785f, 10.197294f, -8.441269f, -4.015217f, 10.197294f, -6.941269f,
-4.015217f, 10.197294f, -6.941269f, -1.615215f, 10.197294f, -1.541275f,
-1.615215f, 10.197294f, -1.541275f, 1.384785f, 10.197294f, 1.458725f,
1.384785f, 10.197294f, 1.458725f, 7.984783f, 10.197294f, -2.441269f,
7.984783f, 10.197294f, -2.441269f, 4.684784f, 10.197294f, -6.941269f,
},
new[]
{
-22.315216f, 6.597294f, -17.141273f, -23.815216f, 5.397294f, -13.841270f, -23.815216f, 5.397294f,
-13.841270f, -24.115217f, 4.997294f, -12.041275f, -24.115217f, 4.997294f, -12.041275f, -22.315216f,
4.997294f, -11.441269f, -22.315216f, 4.997294f, -11.441269f, -17.815216f, 5.197294f, -11.441269f,
-17.815216f, 5.197294f, -11.441269f, -22.315216f, 6.597294f, -17.141273f
-22.315216f, 6.597294f, -17.141273f, -23.815216f, 5.397294f, -13.841270f,
-23.815216f, 5.397294f, -13.841270f, -24.115217f, 4.997294f, -12.041275f,
-24.115217f, 4.997294f, -12.041275f, -22.315216f, 4.997294f, -11.441269f,
-22.315216f, 4.997294f, -11.441269f, -17.815216f, 5.197294f, -11.441269f,
-17.815216f, 5.197294f, -11.441269f, -22.315216f, 6.597294f, -17.141273f,
}
};
@ -89,10 +93,12 @@ public class GetPolyWallSegmentsTest : AbstractDetourTest
Assert.That(segmentRefs.Count, Is.EqualTo(REFS[i].Length));
for (int v = 0; v < VERTICES[i].Length / 6; v++)
{
for (int n = 0; n < 6; n++)
{
Assert.That(segmentVerts[v][n], Is.EqualTo(VERTICES[i][v * 6 + n]).Within(0.001f));
}
Assert.That(segmentVerts[v].vmin.x, Is.EqualTo(VERTICES[i][v * 6 + 0]).Within(0.001f));
Assert.That(segmentVerts[v].vmin.y, Is.EqualTo(VERTICES[i][v * 6 + 1]).Within(0.001f));
Assert.That(segmentVerts[v].vmin.z, Is.EqualTo(VERTICES[i][v * 6 + 2]).Within(0.001f));
Assert.That(segmentVerts[v].vmax.x, Is.EqualTo(VERTICES[i][v * 6 + 3]).Within(0.001f));
Assert.That(segmentVerts[v].vmax.y, Is.EqualTo(VERTICES[i][v * 6 + 4]).Within(0.001f));
Assert.That(segmentVerts[v].vmax.z, Is.EqualTo(VERTICES[i][v * 6 + 5]).Within(0.001f));
}
for (int v = 0; v < REFS[i].Length; v++)