forked from bit/DotRecastNetSim
rename for unity3d
This commit is contained in:
parent
94e1922e02
commit
cab865f747
|
@ -202,7 +202,7 @@ namespace DotRecast.Detour
|
|||
public DtStatus FindRandomPointAroundCircle(long startRef, RcVec3f centerPos, float maxRadius,
|
||||
IDtQueryFilter filter, IRcRand frand, out long randomRef, out RcVec3f randomPt)
|
||||
{
|
||||
return FindRandomPointAroundCircle(startRef, centerPos, maxRadius, filter, frand, NoOpPolygonByCircleConstraint.Noop, out randomRef, out randomPt);
|
||||
return FindRandomPointAroundCircle(startRef, centerPos, maxRadius, filter, frand, DtNoOpDtPolygonByCircleConstraint.Noop, out randomRef, out randomPt);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -223,11 +223,11 @@ namespace DotRecast.Detour
|
|||
public DtStatus FindRandomPointWithinCircle(long startRef, RcVec3f centerPos, float maxRadius,
|
||||
IDtQueryFilter filter, IRcRand frand, out long randomRef, out RcVec3f randomPt)
|
||||
{
|
||||
return FindRandomPointAroundCircle(startRef, centerPos, maxRadius, filter, frand, StrictPolygonByCircleConstraint.Strict, out randomRef, out randomPt);
|
||||
return FindRandomPointAroundCircle(startRef, centerPos, maxRadius, filter, frand, DtStrictDtPolygonByCircleConstraint.Strict, out randomRef, out randomPt);
|
||||
}
|
||||
|
||||
public DtStatus FindRandomPointAroundCircle(long startRef, RcVec3f centerPos, float maxRadius,
|
||||
IDtQueryFilter filter, IRcRand frand, IPolygonByCircleConstraint constraint,
|
||||
IDtQueryFilter filter, IRcRand frand, IDtPolygonByCircleConstraint constraint,
|
||||
out long randomRef, out RcVec3f randomPt)
|
||||
{
|
||||
randomRef = startRef;
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
using DotRecast.Core;
|
||||
|
||||
namespace DotRecast.Detour
|
||||
{
|
||||
public class DtNoOpDtPolygonByCircleConstraint : IDtPolygonByCircleConstraint
|
||||
{
|
||||
public static readonly DtNoOpDtPolygonByCircleConstraint Noop = new DtNoOpDtPolygonByCircleConstraint();
|
||||
|
||||
private DtNoOpDtPolygonByCircleConstraint()
|
||||
{
|
||||
}
|
||||
|
||||
public float[] Apply(float[] polyVerts, RcVec3f circleCenter, float radius)
|
||||
{
|
||||
return polyVerts;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,14 +6,14 @@ namespace DotRecast.Detour
|
|||
/**
|
||||
* Calculate the intersection between a polygon and a circle. A dodecagon is used as an approximation of the circle.
|
||||
*/
|
||||
public class StrictPolygonByCircleConstraint : IPolygonByCircleConstraint
|
||||
public class DtStrictDtPolygonByCircleConstraint : IDtPolygonByCircleConstraint
|
||||
{
|
||||
private const int CIRCLE_SEGMENTS = 12;
|
||||
private static readonly float[] UnitCircle = MakeUnitCircle();
|
||||
|
||||
public static readonly IPolygonByCircleConstraint Strict = new StrictPolygonByCircleConstraint();
|
||||
public static readonly IDtPolygonByCircleConstraint Strict = new DtStrictDtPolygonByCircleConstraint();
|
||||
|
||||
private StrictPolygonByCircleConstraint()
|
||||
private DtStrictDtPolygonByCircleConstraint()
|
||||
{
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ using DotRecast.Core;
|
|||
|
||||
namespace DotRecast.Detour
|
||||
{
|
||||
public interface IPolygonByCircleConstraint
|
||||
public interface IDtPolygonByCircleConstraint
|
||||
{
|
||||
float[] Apply(float[] polyVerts, RcVec3f circleCenter, float radius);
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
using DotRecast.Core;
|
||||
|
||||
namespace DotRecast.Detour
|
||||
{
|
||||
public class NoOpPolygonByCircleConstraint : IPolygonByCircleConstraint
|
||||
{
|
||||
public static readonly NoOpPolygonByCircleConstraint Noop = new NoOpPolygonByCircleConstraint();
|
||||
|
||||
private NoOpPolygonByCircleConstraint()
|
||||
{
|
||||
}
|
||||
|
||||
public float[] Apply(float[] polyVerts, RcVec3f circleCenter, float radius)
|
||||
{
|
||||
return polyVerts;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -297,9 +297,9 @@ namespace DotRecast.Recast.DemoTool.Tools
|
|||
float dz = epos.z - spos.z;
|
||||
float dist = (float)Math.Sqrt(dx * dx + dz * dz);
|
||||
|
||||
IPolygonByCircleConstraint constraint = constrainByCircle
|
||||
? StrictPolygonByCircleConstraint.Strict
|
||||
: NoOpPolygonByCircleConstraint.Noop;
|
||||
IDtPolygonByCircleConstraint constraint = constrainByCircle
|
||||
? DtStrictDtPolygonByCircleConstraint.Strict
|
||||
: DtNoOpDtPolygonByCircleConstraint.Noop;
|
||||
|
||||
var frand = new FRand();
|
||||
var navQuery = _sample.GetNavMeshQuery();
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace DotRecast.Detour.Test;
|
|||
[Parallelizable]
|
||||
public class PolygonByCircleConstraintTest
|
||||
{
|
||||
private readonly IPolygonByCircleConstraint _constraint = StrictPolygonByCircleConstraint.Strict;
|
||||
private readonly IDtPolygonByCircleConstraint _constraint = DtStrictDtPolygonByCircleConstraint.Strict;
|
||||
|
||||
[Test]
|
||||
public void ShouldHandlePolygonFullyInsideCircle()
|
||||
|
|
Loading…
Reference in New Issue