diff --git a/Triangle.NET/TestApp/FormMain.cs b/Triangle.NET/TestApp/FormMain.cs
index e328b66..66043b5 100644
--- a/Triangle.NET/TestApp/FormMain.cs
+++ b/Triangle.NET/TestApp/FormMain.cs
@@ -626,8 +626,13 @@ namespace MeshExplorer
{
if (mesh != null)
{
- mesh.Check();
- ShowLog();
+ bool isConsistent, isDelaunay;
+ mesh.Check(out isConsistent, out isDelaunay);
+
+ if (!isConsistent || !isDelaunay)
+ {
+ ShowLog();
+ }
}
}
diff --git a/Triangle.NET/Triangle/Geometry/Edge.cs b/Triangle.NET/Triangle/Geometry/Edge.cs
index c754a0f..07d7bc6 100644
--- a/Triangle.NET/Triangle/Geometry/Edge.cs
+++ b/Triangle.NET/Triangle/Geometry/Edge.cs
@@ -22,7 +22,8 @@ namespace TriangleNet.Geometry
///
public int P0
{
- get; private set;
+ get;
+ private set;
}
///
@@ -30,7 +31,8 @@ namespace TriangleNet.Geometry
///
public int P1
{
- get; private set;
+ get;
+ private set;
}
///
@@ -38,7 +40,8 @@ namespace TriangleNet.Geometry
///
public int Boundary
{
- get; private set;
+ get;
+ private set;
}
///
diff --git a/Triangle.NET/Triangle/Geometry/EdgeEnumerator.cs b/Triangle.NET/Triangle/Geometry/EdgeEnumerator.cs
index 5984e95..81ba7fc 100644
--- a/Triangle.NET/Triangle/Geometry/EdgeEnumerator.cs
+++ b/Triangle.NET/Triangle/Geometry/EdgeEnumerator.cs
@@ -20,6 +20,7 @@ namespace TriangleNet.Geometry
IEnumerator triangles;
Otri tri = default(Otri);
Otri neighbor = default(Otri);
+ Osub sub = default(Osub);
Edge current;
Vertex p1, p2;
@@ -82,7 +83,10 @@ namespace TriangleNet.Geometry
p1 = tri.Org();
p2 = tri.Dest();
- current = new Edge(p1.id, p2.id);
+ tri.SegPivot(ref sub);
+
+ // Boundary mark of dummysub is 0, so we don't need to worry about that.
+ current = new Edge(p1.id, p2.id, sub.seg.boundary);
}
tri.orient++;
diff --git a/Triangle.NET/Triangle/Geometry/InputGeometry.cs b/Triangle.NET/Triangle/Geometry/InputGeometry.cs
index 66afa94..1461137 100644
--- a/Triangle.NET/Triangle/Geometry/InputGeometry.cs
+++ b/Triangle.NET/Triangle/Geometry/InputGeometry.cs
@@ -86,7 +86,7 @@ namespace TriangleNet.Geometry
///
/// Gets the list of input segments.
///
- public IEnumerable Segments
+ public ICollection Segments
{
get { return segments; }
}
@@ -94,7 +94,7 @@ namespace TriangleNet.Geometry
///
/// Gets the list of input holes.
///
- public IEnumerable Holes
+ public ICollection Holes
{
get { return holes; }
}
@@ -102,7 +102,7 @@ namespace TriangleNet.Geometry
///
/// Gets the list of regions.
///
- public IEnumerable Regions
+ public ICollection Regions
{
get { return regions; }
}
diff --git a/Triangle.NET/Triangle/Mesh.cs b/Triangle.NET/Triangle/Mesh.cs
index 9f68495..0d3214b 100644
--- a/Triangle.NET/Triangle/Mesh.cs
+++ b/Triangle.NET/Triangle/Mesh.cs
@@ -516,10 +516,12 @@ namespace TriangleNet
///
/// Check mesh consistency and (constrained) Delaunay property.
///
- public void Check()
+ /// Value indicating if mesh topology is consistent.
+ /// Value indicating if mesh is Delaunay.
+ public void Check(out bool isConsistent, out bool isDelaunay)
{
- quality.CheckMesh();
- quality.CheckDelaunay();
+ isConsistent = quality.CheckMesh();
+ isDelaunay = quality.CheckDelaunay();
}
#region Options
diff --git a/Triangle.NET/Triangle/Quality.cs b/Triangle.NET/Triangle/Quality.cs
index 4ad3afe..5857090 100644
--- a/Triangle.NET/Triangle/Quality.cs
+++ b/Triangle.NET/Triangle/Quality.cs
@@ -123,21 +123,20 @@ namespace TriangleNet
}
}
- if (horrors == 0)
+ if (horrors == 0 && Behavior.Verbose)
{
- if (Behavior.Verbose)
- {
- logger.Info("In my studied opinion, the mesh appears to be consistent.");
- }
- }
- else if (horrors == 1)
- {
- logger.Info("Precisely one festering wound discovered.");
- }
- else
- {
- logger.Info(horrors + " abominations witnessed.");
+ logger.Info("Mesh topology appears to be consistent.");
+ //logger.Info("In my studied opinion, the mesh appears to be consistent.");
}
+ //else if (horrors == 1)
+ //{
+ // logger.Info("Precisely one festering wound discovered.");
+ //}
+ //else
+ //{
+ // logger.Info(horrors + " abominations witnessed.");
+ //}
+
// Restore the status of exact arithmetic.
Behavior.NoExact = saveexact;
@@ -212,21 +211,21 @@ namespace TriangleNet
}
}
- if (horrors == 0)
+
+ if (horrors == 0 && Behavior.Verbose)
{
- if (Behavior.Verbose)
- {
- logger.Info("By virtue of my perceptive intelligence, I declare the mesh Delaunay.");
- }
- }
- else if (horrors == 1)
- {
- logger.Info("Precisely one terrifying transgression identified.");
- }
- else
- {
- logger.Info(horrors + " obscenities viewed with horror.");
+ logger.Info("Mesh is Delaunay.");
+ //logger.Info("By virtue of my perceptive intelligence, I declare the mesh Delaunay.");
}
+ //else if (horrors == 1)
+ //{
+ // logger.Info("Precisely one terrifying transgression identified.");
+ //}
+ //else
+ //{
+ // logger.Info(horrors + " obscenities viewed with horror.");
+ //}
+
// Restore the status of exact arithmetic.
Behavior.NoExact = saveexact;