From 95f371ce06220863a6ded1f90c5a3c1aeea2894b Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Tue, 7 Jun 2016 11:58:14 +0200
Subject: [PATCH] more convenient delaunay map DrawGraph Method

---
 .../Data/Gearbox/TransmissionLossMap.cs       |  5 +++++
 VectoCore/VectoCore/Utils/DelaunayMap.cs      | 19 +++++++++++++------
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
index 86e0c3978c..11144a9f16 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
@@ -67,6 +67,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 			set { _lossMap.Extrapolated = value; }
 		}
 
+		public void DrawGraph()
+		{
+			_lossMap.DrawGraph();
+		}
+
 		public string GearName { get; private set; }
 
 		public static TransmissionLossMap ReadFromFile(string fileName, double gearRatio, string gearName)
diff --git a/VectoCore/VectoCore/Utils/DelaunayMap.cs b/VectoCore/VectoCore/Utils/DelaunayMap.cs
index d5cad22b24..b956dc5178 100644
--- a/VectoCore/VectoCore/Utils/DelaunayMap.cs
+++ b/VectoCore/VectoCore/Utils/DelaunayMap.cs
@@ -129,8 +129,9 @@ namespace TUGraz.VectoCore.Utils
 				}
 			}
 
+#if TRACE
 			DrawGraph(pointCount, triangles, superTriangle, points);
-
+#endif
 			_convexHull = triangles.FindAll(t => t.SharesVertexWith(superTriangle)).
 				SelectMany(t => t.GetEdges()).
 				Where(e => !(superTriangle.Contains(e.P1) || superTriangle.Contains(e.P2))).ToArray();
@@ -151,17 +152,23 @@ namespace TUGraz.VectoCore.Utils
 			}
 		}
 
+		public void DrawGraph()
+		{
+			const int max = 100000;
+			var superTriangle = new Triangle(new Point(max, 0), new Point(0, max), new Point(-max, -max));
+			DrawGraph(0, _triangles, superTriangle, Points.ToArray());
+		}
+
 		/// <summary>
 		/// Draws the delaunay map (except supertriangle).
 		/// </summary>
-		[Conditional("TRACE")]
 		private static void DrawGraph(int i, List<Triangle> triangles, Triangle superTriangle, Point[] points,
 			Point lastPoint = null)
 		{
-			var xmin = points.Min(p => p.X);
-			var xmax = points.Max(p => p.X);
-			var ymin = points.Min(p => p.Y);
-			var ymax = points.Max(p => p.Y);
+			var xmin = Math.Min(points.Min(p => p.X), lastPoint != null ? lastPoint.X : double.NaN);
+			var xmax = Math.Max(points.Max(p => p.X), lastPoint != null ? lastPoint.X : double.NaN);
+			var ymin = Math.Min(points.Min(p => p.Y), lastPoint != null ? lastPoint.Y : double.NaN);
+			var ymax = Math.Max(points.Max(p => p.Y), lastPoint != null ? lastPoint.Y : double.NaN);
 
 			using (var chart = new Chart { Width = 1000, Height = 1000 }) {
 				chart.ChartAreas.Add(new ChartArea("main") {
-- 
GitLab