From 53d5ca95054537e133230e1b6ae658354eabad4e Mon Sep 17 00:00:00 2001 From: "SND\\wo80_cp" Date: Fri, 27 Jun 2014 21:36:29 +0000 Subject: [PATCH] Update rendering code git-svn-id: https://triangle.svn.codeplex.com/svn@75115 0e2699bc-83d4-4a8f-98e7-55e24ab8c7a5 --- Triangle.NET/TestApp/FormMain.cs | 2 +- .../Triangle.Rendering/GDI/LayerRenderer.cs | 10 +++++++++- Triangle.NET/Triangle.Rendering/IRenderContext.cs | 2 +- Triangle.NET/Triangle.Rendering/IRenderLayer.cs | 9 +++++---- Triangle.NET/Triangle.Rendering/RenderContext.cs | 7 +++---- Triangle.NET/Triangle.Rendering/RenderLayer.cs | 13 +++++++------ Triangle.NET/Triangle.Rendering/RenderManager.cs | 12 ++++++++---- 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/Triangle.NET/TestApp/FormMain.cs b/Triangle.NET/TestApp/FormMain.cs index 5d1d220..04adb1c 100644 --- a/Triangle.NET/TestApp/FormMain.cs +++ b/Triangle.NET/TestApp/FormMain.cs @@ -619,7 +619,7 @@ namespace MeshExplorer this.voronoi = new SimpleVoronoi(mesh); } - renderManager.Set(voronoi, false); + renderManager.Set(voronoi.Points, voronoi.Edges, false); } private void ShowLog() diff --git a/Triangle.NET/Triangle.Rendering/GDI/LayerRenderer.cs b/Triangle.NET/Triangle.Rendering/GDI/LayerRenderer.cs index da7da34..9dd2074 100644 --- a/Triangle.NET/Triangle.Rendering/GDI/LayerRenderer.cs +++ b/Triangle.NET/Triangle.Rendering/GDI/LayerRenderer.cs @@ -104,7 +104,15 @@ namespace TriangleNet.Rendering.GDI private void RenderVoronoi(IRenderLayer layer) { - meshRenderer.RenderEdges(layer.Points.Data, layer.Indices.Data, Context.ColorManager.VoronoiLine); + if (RenderManager.VORONOI_DEBUG) + { + meshRenderer.RenderEdges(layer.Points.Data, layer.Indices.Data, Pens.Purple); + meshRenderer.RenderPoints(layer.Points.Data, layer.Points.Size, 0, layer.Count, Brushes.Red); + } + else + { + meshRenderer.RenderEdges(layer.Points.Data, layer.Indices.Data, Context.ColorManager.VoronoiLine); + } } } } diff --git a/Triangle.NET/Triangle.Rendering/IRenderContext.cs b/Triangle.NET/Triangle.Rendering/IRenderContext.cs index 1103763..fac3ae5 100644 --- a/Triangle.NET/Triangle.Rendering/IRenderContext.cs +++ b/Triangle.NET/Triangle.Rendering/IRenderContext.cs @@ -22,7 +22,7 @@ namespace TriangleNet.Rendering void Add(IPolygon data); void Add(IMesh data, bool reset); - void Add(IVoronoi voronoi, bool reset); + void Add(Point[] points, IEnumerable edges, bool reset); void Add(float[] values); void Add(int[] partition); diff --git a/Triangle.NET/Triangle.Rendering/IRenderLayer.cs b/Triangle.NET/Triangle.Rendering/IRenderLayer.cs index 4371f8b..01d35c6 100644 --- a/Triangle.NET/Triangle.Rendering/IRenderLayer.cs +++ b/Triangle.NET/Triangle.Rendering/IRenderLayer.cs @@ -1,12 +1,13 @@  namespace TriangleNet.Rendering { - using System.Drawing; + using System.Collections.Generic; using TriangleNet.Geometry; using TriangleNet.Meshing; using TriangleNet.Rendering.Buffer; using TriangleNet.Rendering.Util; - using TriangleNet.Voronoi.Legacy; + + using Color = System.Drawing.Color; public interface IRenderLayer { @@ -25,11 +26,11 @@ namespace TriangleNet.Rendering BoundingBox SetPoints(IBuffer buffer); BoundingBox SetPoints(IPolygon poly); BoundingBox SetPoints(IMesh mesh); - BoundingBox SetPoints(IVoronoi voronoi); + BoundingBox SetPoints(Point[] points); void SetPolygon(IPolygon poly); void SetPolygon(IMesh mesh); void SetMesh(IMesh mesh, bool elements); - void SetMesh(IVoronoi voronoi); + void SetMesh(IEnumerable edges); // TODO: better put these into a subclass. diff --git a/Triangle.NET/Triangle.Rendering/RenderContext.cs b/Triangle.NET/Triangle.Rendering/RenderContext.cs index ffd4dc9..3c759f5 100644 --- a/Triangle.NET/Triangle.Rendering/RenderContext.cs +++ b/Triangle.NET/Triangle.Rendering/RenderContext.cs @@ -117,11 +117,10 @@ namespace TriangleNet.Rendering RenderLayers[3].IsActive = true; } - // Voronoi - public void Add(IVoronoi voronoi, bool reset) + public void Add(Point[] points, IEnumerable edges, bool reset) { - RenderLayers[4].SetPoints(voronoi); - RenderLayers[4].SetMesh(voronoi); + RenderLayers[4].SetPoints(points); + RenderLayers[4].SetMesh(edges); RenderLayers[4].IsActive = true; } diff --git a/Triangle.NET/Triangle.Rendering/RenderLayer.cs b/Triangle.NET/Triangle.Rendering/RenderLayer.cs index 9ebe91f..992fc66 100644 --- a/Triangle.NET/Triangle.Rendering/RenderLayer.cs +++ b/Triangle.NET/Triangle.Rendering/RenderLayer.cs @@ -1,12 +1,13 @@  namespace TriangleNet.Rendering { - using System.Drawing; + using System.Collections.Generic; using TriangleNet.Geometry; using TriangleNet.Meshing; using TriangleNet.Rendering.Buffer; using TriangleNet.Rendering.Util; - using TriangleNet.Voronoi.Legacy; + + using Color = System.Drawing.Color; public class RenderLayer : IRenderLayer { @@ -107,11 +108,11 @@ namespace TriangleNet.Rendering return bounds; } - public BoundingBox SetPoints(IVoronoi voronoi) + public BoundingBox SetPoints(Point[] vertices) { BoundingBox bounds = new BoundingBox(); - points = BufferHelper.CreateVertexBuffer(voronoi.Points, ref bounds); + points = BufferHelper.CreateVertexBuffer(vertices, ref bounds); count = points.Count / points.Size; return bounds; @@ -127,9 +128,9 @@ namespace TriangleNet.Rendering indices = BufferHelper.CreateIndexBuffer(mesh.Segments, 2); } - public void SetMesh(IVoronoi voronoi) + public void SetMesh(IEnumerable edges) { - indices = BufferHelper.CreateIndexBuffer(voronoi.Edges, 2); + indices = BufferHelper.CreateIndexBuffer(edges, 2); } public void SetMesh(IMesh mesh, bool elements) diff --git a/Triangle.NET/Triangle.Rendering/RenderManager.cs b/Triangle.NET/Triangle.Rendering/RenderManager.cs index c0c9044..38b8213 100644 --- a/Triangle.NET/Triangle.Rendering/RenderManager.cs +++ b/Triangle.NET/Triangle.Rendering/RenderManager.cs @@ -7,10 +7,12 @@ namespace TriangleNet.Rendering using TriangleNet.Meshing; using TriangleNet.Rendering.GDI; using TriangleNet.Rendering.Util; - using TriangleNet.Voronoi.Legacy; public class RenderManager { + // TODO: delete + public static bool VORONOI_DEBUG = false; + IRenderControl control; IRenderContext context; IRenderer renderer; @@ -112,10 +114,12 @@ namespace TriangleNet.Rendering } } - // Voronoi - public void Set(IVoronoi voronoi, bool reset, bool refresh = true) + /// + /// Set data for Voronoi layer. + /// + public void Set(Point[] points, IEnumerable edges, bool reset, bool refresh = true) { - context.Add(voronoi, reset); + context.Add(points, edges, reset); if (refresh) {