move class type

This commit is contained in:
ikpil 2023-05-07 12:36:27 +09:00
parent 0f9e61f51e
commit d066523e9e
22 changed files with 106 additions and 91 deletions

View File

@ -0,0 +1,9 @@
namespace DotRecast.Core
{
public class Edge
{
public int[] vert = new int[2];
public int[] polyEdge = new int[2];
public int[] poly = new int[2];
}
}

View File

@ -31,14 +31,6 @@ namespace DotRecast.Detour.Crowd
{ {
public const int MAX_LOCAL_SEGS = 8; public const int MAX_LOCAL_SEGS = 8;
private class Segment
{
/** Segment start/end */
public Vector3f[] s = new Vector3f[2];
/** Distance for pruning. */
public float d;
}
Vector3f m_center = new Vector3f(); Vector3f m_center = new Vector3f();
List<Segment> m_segs = new List<Segment>(); List<Segment> m_segs = new List<Segment>();
@ -172,4 +164,4 @@ namespace DotRecast.Detour.Crowd
return m_segs.Count; return m_segs.Count;
} }
} }
} }

View File

@ -0,0 +1,13 @@
using DotRecast.Core;
namespace DotRecast.Detour.Crowd
{
public class Segment
{
/** Segment start/end */
public Vector3f[] s = new Vector3f[2];
/** Distance for pruning. */
public float d;
}
}

View File

@ -33,10 +33,10 @@ namespace DotRecast.Detour.Extras
private static int CreateBVTree(MeshData data, BVNode[] nodes, float quantFactor) private static int CreateBVTree(MeshData data, BVNode[] nodes, float quantFactor)
{ {
NavMeshBuilder.BVItem[] items = new NavMeshBuilder.BVItem[data.header.polyCount]; BVItem[] items = new BVItem[data.header.polyCount];
for (int i = 0; i < data.header.polyCount; i++) for (int i = 0; i < data.header.polyCount; i++)
{ {
NavMeshBuilder.BVItem it = new NavMeshBuilder.BVItem(); BVItem it = new BVItem();
items[i] = it; items[i] = it;
it.i = i; it.i = i;
Vector3f bmin = new Vector3f(); Vector3f bmin = new Vector3f();

View File

@ -8,9 +8,9 @@ namespace DotRecast.Detour.Extras.Jumplink
{ {
public class EdgeExtractor public class EdgeExtractor
{ {
public Edge[] ExtractEdges(PolyMesh mesh) public JumpEdge[] ExtractEdges(PolyMesh mesh)
{ {
List<Edge> edges = new List<Edge>(); List<JumpEdge> edges = new List<JumpEdge>();
if (mesh != null) if (mesh != null)
{ {
Vector3f orig = mesh.bmin; Vector3f orig = mesh.bmin;
@ -57,7 +57,7 @@ namespace DotRecast.Detour.Extras.Jumplink
int va = mesh.polys[p + j] * 3; int va = mesh.polys[p + j] * 3;
int vb = mesh.polys[p + nj] * 3; int vb = mesh.polys[p + nj] * 3;
Edge e = new Edge(); JumpEdge e = new JumpEdge();
e.sp.x = orig.x + mesh.verts[vb] * cs; e.sp.x = orig.x + mesh.verts[vb] * cs;
e.sp.y = orig.y + mesh.verts[vb + 1] * ch; e.sp.y = orig.y + mesh.verts[vb + 1] * ch;
e.sp.z = orig.z + mesh.verts[vb + 2] * cs; e.sp.z = orig.z + mesh.verts[vb + 2] * cs;

View File

@ -14,7 +14,7 @@ namespace DotRecast.Detour.Extras.Jumplink
public readonly Vector3f ay = new Vector3f(); public readonly Vector3f ay = new Vector3f();
public readonly Vector3f az = new Vector3f(); public readonly Vector3f az = new Vector3f();
public EdgeSampler(Edge edge, Trajectory trajectory) public EdgeSampler(JumpEdge edge, Trajectory trajectory)
{ {
this.trajectory = trajectory; this.trajectory = trajectory;
ax = VSub(edge.sq, edge.sp); ax = VSub(edge.sq, edge.sp);

View File

@ -5,7 +5,7 @@ namespace DotRecast.Detour.Extras.Jumplink
{ {
class EdgeSamplerFactory class EdgeSamplerFactory
{ {
public EdgeSampler Get(JumpLinkBuilderConfig acfg, JumpLinkType type, Edge edge) public EdgeSampler Get(JumpLinkBuilderConfig acfg, JumpLinkType type, JumpEdge edge)
{ {
EdgeSampler es = null; EdgeSampler es = null;
switch (type.Bit) switch (type.Bit)
@ -25,7 +25,7 @@ namespace DotRecast.Detour.Extras.Jumplink
} }
private EdgeSampler InitEdgeJumpSampler(JumpLinkBuilderConfig acfg, Edge edge) private EdgeSampler InitEdgeJumpSampler(JumpLinkBuilderConfig acfg, JumpEdge edge)
{ {
EdgeSampler es = new EdgeSampler(edge, new JumpTrajectory(acfg.jumpHeight)); EdgeSampler es = new EdgeSampler(edge, new JumpTrajectory(acfg.jumpHeight));
es.start.height = acfg.agentClimb * 2; es.start.height = acfg.agentClimb * 2;
@ -53,7 +53,7 @@ namespace DotRecast.Detour.Extras.Jumplink
return es; return es;
} }
private EdgeSampler InitClimbDownSampler(JumpLinkBuilderConfig acfg, Edge edge) private EdgeSampler InitClimbDownSampler(JumpLinkBuilderConfig acfg, JumpEdge edge)
{ {
EdgeSampler es = new EdgeSampler(edge, new ClimbTrajectory()); EdgeSampler es = new EdgeSampler(edge, new ClimbTrajectory());
es.start.height = acfg.agentClimb * 2; es.start.height = acfg.agentClimb * 2;

View File

@ -2,7 +2,7 @@ using DotRecast.Core;
namespace DotRecast.Detour.Extras.Jumplink namespace DotRecast.Detour.Extras.Jumplink
{ {
public class Edge public class JumpEdge
{ {
public Vector3f sp = new Vector3f(); public Vector3f sp = new Vector3f();
public Vector3f sq = new Vector3f(); public Vector3f sq = new Vector3f();

View File

@ -15,7 +15,7 @@ namespace DotRecast.Detour.Extras.Jumplink
private readonly TrajectorySampler trajectorySampler = new TrajectorySampler(); private readonly TrajectorySampler trajectorySampler = new TrajectorySampler();
private readonly JumpSegmentBuilder jumpSegmentBuilder = new JumpSegmentBuilder(); private readonly JumpSegmentBuilder jumpSegmentBuilder = new JumpSegmentBuilder();
private readonly List<Edge[]> edges; private readonly List<JumpEdge[]> edges;
private readonly IList<RecastBuilderResult> results; private readonly IList<RecastBuilderResult> results;
public JumpLinkBuilder(IList<RecastBuilderResult> results) public JumpLinkBuilder(IList<RecastBuilderResult> results)
@ -29,8 +29,8 @@ namespace DotRecast.Detour.Extras.Jumplink
List<JumpLink> links = new List<JumpLink>(); List<JumpLink> links = new List<JumpLink>();
for (int tile = 0; tile < results.Count; tile++) for (int tile = 0; tile < results.Count; tile++)
{ {
Edge[] edges = this.edges[tile]; JumpEdge[] edges = this.edges[tile];
foreach (Edge edge in edges) foreach (JumpEdge edge in edges)
{ {
links.AddRange(ProcessEdge(acfg, results[tile], type, edge)); links.AddRange(ProcessEdge(acfg, results[tile], type, edge));
} }
@ -39,7 +39,7 @@ namespace DotRecast.Detour.Extras.Jumplink
return links; return links;
} }
private List<JumpLink> ProcessEdge(JumpLinkBuilderConfig acfg, RecastBuilderResult result, JumpLinkType type, Edge edge) private List<JumpLink> ProcessEdge(JumpLinkBuilderConfig acfg, RecastBuilderResult result, JumpLinkType type, JumpEdge edge)
{ {
EdgeSampler es = edgeSamplerFactory.Get(acfg, type, edge); EdgeSampler es = edgeSamplerFactory.Get(acfg, type, edge);
groundSampler.Sample(acfg, result, es); groundSampler.Sample(acfg, result, es);
@ -88,7 +88,7 @@ namespace DotRecast.Detour.Extras.Jumplink
return links; return links;
} }
public List<Edge[]> GetEdges() public List<JumpEdge[]> GetEdges()
{ {
return edges; return edges;
} }

View File

@ -73,14 +73,7 @@ namespace DotRecast.Detour.TileCache
verts.Clear(); verts.Clear();
} }
}; };
public class Edge
{
public int[] vert = new int[2];
public int[] polyEdge = new int[2];
public int[] poly = new int[2];
};
private readonly TileCacheLayerHeaderReader reader = new TileCacheLayerHeaderReader(); private readonly TileCacheLayerHeaderReader reader = new TileCacheLayerHeaderReader();
public void BuildTileCacheRegions(TileCacheLayer layer, int walkableClimb) public void BuildTileCacheRegions(TileCacheLayer layer, int walkableClimb)

View File

@ -0,0 +1,9 @@
namespace DotRecast.Detour
{
public class BVItem
{
public readonly int[] bmin = new int[3];
public readonly int[] bmax = new int[3];
public int i;
};
}

View File

@ -30,13 +30,6 @@ namespace DotRecast.Detour
{ {
const int MESH_NULL_IDX = 0xffff; const int MESH_NULL_IDX = 0xffff;
public class BVItem
{
public readonly int[] bmin = new int[3];
public readonly int[] bmax = new int[3];
public int i;
};
private class CompareItemX : IComparer<BVItem> private class CompareItemX : IComparer<BVItem>
{ {
public int Compare(BVItem a, BVItem b) public int Compare(BVItem a, BVItem b)
@ -674,4 +667,4 @@ namespace DotRecast.Detour
return nmd; return nmd;
} }
} }
} }

View File

@ -0,0 +1,7 @@
namespace DotRecast.Recast.Demo.Tools;
public class AgentTrail
{
public float[] trail = new float[CrowdTool.AGENT_MAX_TRAIL * 3];
public int htrail;
};

View File

@ -71,14 +71,7 @@ public class CrowdTool : Tool
private readonly CrowdProfilingTool profilingTool; private readonly CrowdProfilingTool profilingTool;
private readonly CrowdAgentDebugInfo m_agentDebug = new CrowdAgentDebugInfo(); private readonly CrowdAgentDebugInfo m_agentDebug = new CrowdAgentDebugInfo();
private static readonly int AGENT_MAX_TRAIL = 64; public static readonly int AGENT_MAX_TRAIL = 64;
private class AgentTrail
{
public float[] trail = new float[AGENT_MAX_TRAIL * 3];
public int htrail;
};
private readonly Dictionary<long, AgentTrail> m_trails = new(); private readonly Dictionary<long, AgentTrail> m_trails = new();
private Vector3f m_targetPos; private Vector3f m_targetPos;
private long m_targetRef; private long m_targetRef;

View File

@ -60,7 +60,7 @@ public class JumpLinkBuilderTool : Tool
{ {
if (annotationBuilder != null) if (annotationBuilder != null)
{ {
foreach (Edge[] edges in annotationBuilder.GetEdges()) foreach (JumpEdge[] edges in annotationBuilder.GetEdges())
{ {
dd.Begin(LINES, 3.0f); dd.Begin(LINES, 3.0f);
for (int i = 0; i < edges.Length; ++i) for (int i = 0; i < edges.Length; ++i)

View File

@ -0,0 +1,11 @@
namespace DotRecast.Recast
{
public class HeightPatch
{
public int xmin;
public int ymin;
public int width;
public int height;
public int[] data;
}
}

View File

@ -0,0 +1,23 @@
using System.Collections.Generic;
namespace DotRecast.Recast
{
public class LayerRegion
{
public int id;
public int layerId;
public bool @base;
public int ymin, ymax;
public List<int> layers;
public List<int> neis;
public LayerRegion(int i)
{
id = i;
ymin = 0xFFFF;
layerId = 0xff;
layers = new List<int>();
neis = new List<int>();
}
};
}

View File

@ -34,24 +34,6 @@ namespace DotRecast.Recast
const int RC_MAX_LAYERS = RecastConstants.RC_NOT_CONNECTED; const int RC_MAX_LAYERS = RecastConstants.RC_NOT_CONNECTED;
const int RC_MAX_NEIS = 16; const int RC_MAX_NEIS = 16;
private class LayerRegion
{
public int id;
public int layerId;
public bool @base;
public int ymin, ymax;
public List<int> layers;
public List<int> neis;
public LayerRegion(int i)
{
id = i;
ymin = 0xFFFF;
layerId = 0xff;
layers = new List<int>();
neis = new List<int>();
}
};
private static void AddUnique(List<int> a, int v) private static void AddUnique(List<int> a, int v)
{ {
@ -564,4 +546,4 @@ namespace DotRecast.Recast
return lset; return lset;
} }
} }
} }

View File

@ -19,6 +19,7 @@ freely, subject to the following restrictions:
*/ */
using System; using System;
using DotRecast.Core;
namespace DotRecast.Recast namespace DotRecast.Recast
{ {
@ -29,12 +30,6 @@ namespace DotRecast.Recast
public const int MAX_MESH_VERTS_POLY = 0xffff; public const int MAX_MESH_VERTS_POLY = 0xffff;
public const int VERTEX_BUCKET_COUNT = (1 << 12); public const int VERTEX_BUCKET_COUNT = (1 << 12);
private class Edge
{
public int[] vert = new int[2];
public int[] polyEdge = new int[2];
public int[] poly = new int[2];
}
private static void BuildMeshAdjacency(int[] polys, int npolys, int nverts, int vertsPerPoly) private static void BuildMeshAdjacency(int[] polys, int npolys, int nverts, int vertsPerPoly)
{ {
@ -1381,4 +1376,4 @@ namespace DotRecast.Recast
return dst; return dst;
} }
} }
} }

View File

@ -37,14 +37,6 @@ namespace DotRecast.Recast
public const int EV_UNDEF = -1; public const int EV_UNDEF = -1;
public const int EV_HULL = -2; public const int EV_HULL = -2;
private class HeightPatch
{
public int xmin;
public int ymin;
public int width;
public int height;
public int[] data;
}
private static float Vdot2(float[] a, float[] b) private static float Vdot2(float[] a, float[] b)
{ {
@ -1692,4 +1684,4 @@ namespace DotRecast.Recast
return mesh; return mesh;
} }
} }
} }

View File

@ -30,13 +30,6 @@ namespace DotRecast.Recast
{ {
const int RC_NULL_NEI = 0xffff; const int RC_NULL_NEI = 0xffff;
public class SweepSpan
{
public int rid; // row id
public int id; // region id
public int ns; // number samples
public int nei; // neighbour id
}
public static int CalculateDistanceField(CompactHeightfield chf, int[] src) public static int CalculateDistanceField(CompactHeightfield chf, int[] src)
{ {

View File

@ -0,0 +1,10 @@
namespace DotRecast.Recast
{
public class SweepSpan
{
public int rid; // row id
public int id; // region id
public int ns; // number samples
public int nei; // neighbour id
}
}