From 5ab20816e58ef07ed7ce3b5d8e897258ec933f5d Mon Sep 17 00:00:00 2001 From: "SND\\wo80_cp" Date: Mon, 15 May 2017 16:13:21 +0000 Subject: [PATCH] USE_Z: add automatic interpolation of z coordinate git-svn-id: https://triangle.svn.codeplex.com/svn@79822 0e2699bc-83d4-4a8f-98e7-55e24ab8c7a5 --- Triangle.NET/Triangle/Geometry/Point.cs | 11 ++++++----- Triangle.NET/Triangle/Meshing/ConstraintMesher.cs | 3 +++ Triangle.NET/Triangle/Meshing/QualityMesher.cs | 6 ++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Triangle.NET/Triangle/Geometry/Point.cs b/Triangle.NET/Triangle/Geometry/Point.cs index 3fa644d..3c1fb95 100644 --- a/Triangle.NET/Triangle/Geometry/Point.cs +++ b/Triangle.NET/Triangle/Geometry/Point.cs @@ -7,10 +7,16 @@ namespace TriangleNet.Geometry { using System; + using System.Diagnostics; /// /// Represents a 2D point. /// +#if USE_Z + [DebuggerDisplay("ID {ID} [{X}, {Y}, {Z}]")] +#else + [DebuggerDisplay("ID {ID} [{X}, {Y}]")] +#endif public class Point : IComparable, IEquatable { internal int id; @@ -170,10 +176,5 @@ namespace TriangleNet.Geometry return hash; } - - public override string ToString() - { - return String.Format("[{0},{1}]", x, y); - } } } diff --git a/Triangle.NET/Triangle/Meshing/ConstraintMesher.cs b/Triangle.NET/Triangle/Meshing/ConstraintMesher.cs index 69ccada..ee42aaf 100644 --- a/Triangle.NET/Triangle/Meshing/ConstraintMesher.cs +++ b/Triangle.NET/Triangle/Meshing/ConstraintMesher.cs @@ -719,6 +719,9 @@ namespace TriangleNet.Meshing newvertex.attributes[i] = torg.attributes[i] + split * (tdest.attributes[i] - torg.attributes[i]); } #endif +#if USE_Z + newvertex.z = torg.z + split * (tdest.z - torg.z); +#endif mesh.vertices.Add(newvertex.hash, newvertex); diff --git a/Triangle.NET/Triangle/Meshing/QualityMesher.cs b/Triangle.NET/Triangle/Meshing/QualityMesher.cs index 1976e9d..edeef48 100644 --- a/Triangle.NET/Triangle/Meshing/QualityMesher.cs +++ b/Triangle.NET/Triangle/Meshing/QualityMesher.cs @@ -624,6 +624,9 @@ namespace TriangleNet.Meshing newvertex.attributes[i] = eorg.attributes[i] + split * (edest.attributes[i] - eorg.attributes[i]); } +#endif +#if USE_Z + newvertex.z = eorg.z + split * (edest.z - eorg.z); #endif if (!Behavior.NoExact) { @@ -790,6 +793,9 @@ namespace TriangleNet.Meshing { Interpolation.InterpolateAttributes(newvertex, newvertex.tri.tri, mesh.nextras); } +#endif +#if USE_Z + Interpolation.InterpolateZ(newvertex, newvertex.tri.tri); #endif mesh.vertices.Add(newvertex.hash, newvertex);