Fix Quadtree;
Added topology explorer to test app; git-svn-id: https://triangle.svn.codeplex.com/svn@74355 0e2699bc-83d4-4a8f-98e7-55e24ab8c7a5
This commit is contained in:
@@ -18,7 +18,7 @@ namespace TriangleNet.Tools
|
||||
{
|
||||
QuadNode root;
|
||||
|
||||
internal ITriangle[] triangles;
|
||||
internal Dictionary<int, ITriangle> triangles;
|
||||
|
||||
internal int sizeBound;
|
||||
internal int maxDepth;
|
||||
@@ -42,7 +42,12 @@ namespace TriangleNet.Tools
|
||||
this.maxDepth = maxDepth;
|
||||
this.sizeBound = sizeBound;
|
||||
|
||||
triangles = mesh.Triangles.ToArray();
|
||||
triangles = new Dictionary<int, ITriangle>();
|
||||
|
||||
foreach (var tri in mesh.Triangles)
|
||||
{
|
||||
triangles.Add(tri.id, tri);
|
||||
}
|
||||
|
||||
int currentDepth = 0;
|
||||
|
||||
@@ -64,6 +69,7 @@ namespace TriangleNet.Tools
|
||||
if (IsPointInTriangle(point, tri.GetVertex(0), tri.GetVertex(1), tri.GetVertex(2)))
|
||||
{
|
||||
result.Add(tri);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,11 +166,11 @@ namespace TriangleNet.Tools
|
||||
if (init)
|
||||
{
|
||||
// Allocate memory upfront
|
||||
triangles.Capacity = tree.triangles.Length;
|
||||
triangles.Capacity = tree.triangles.Count;
|
||||
|
||||
foreach (var tri in tree.triangles)
|
||||
foreach (var id in tree.triangles.Keys)
|
||||
{
|
||||
triangles.Add(tri.ID);
|
||||
triangles.Add(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -208,10 +214,8 @@ namespace TriangleNet.Tools
|
||||
Point[] triangle = new Point[3];
|
||||
|
||||
// Find region for every triangle vertex
|
||||
foreach (var index in triangles)
|
||||
foreach (var tri in tree.triangles.Values)
|
||||
{
|
||||
ITriangle tri = tree.triangles[index];
|
||||
|
||||
triangle[0] = tri.GetVertex(0);
|
||||
triangle[1] = tri.GetVertex(1);
|
||||
triangle[2] = tri.GetVertex(2);
|
||||
|
||||
Reference in New Issue
Block a user