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:
SND\wo80_cp
2014-01-14 21:16:08 +00:00
parent 7fd0fe2341
commit d76842d2f6
15 changed files with 1638 additions and 8 deletions
+12 -8
View File
@@ -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);