From fdd3fb35c5ad3f03efa9a403bbf1f1402e5d37fc Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Thu, 15 Aug 2019 23:01:51 +0200 Subject: [PATCH] Add information about edges --- Assets/Voronoi/VoronoiGenerator.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Assets/Voronoi/VoronoiGenerator.cs b/Assets/Voronoi/VoronoiGenerator.cs index 182597d..d85c5ac 100644 --- a/Assets/Voronoi/VoronoiGenerator.cs +++ b/Assets/Voronoi/VoronoiGenerator.cs @@ -33,7 +33,8 @@ namespace Assets.Voronoi { public Point Point { get; internal set; } public int Index { get; internal set; } - public ISet Vertices { get; internal set; } = new HashSet(); + public List Vertices { get; internal set; } = new List(); + public List<(int, int)> Edges { get; internal set; } = new List<(int, int)>(); public Site(Point point, int index) { @@ -144,20 +145,26 @@ namespace Assets.Voronoi node.Value.Site.Vertices.Add(index); previous?.Value.Site.Vertices.Add(index); - next?.Value.Site.Vertices.Add(index); + next?.Value.Site.Vertices.Insert(0, index); if (node.Value.LeftEdge.IsComplete) { - var (a, b) = node.Value.LeftEdge.Edge; + var edge = node.Value.LeftEdge.Edge; + + node.Value.Site.Edges.Insert(0, edge); + previous?.Value.Site.Edges.Add(edge); - Voronoi.AddEdge(a, b); + Voronoi.AddEdge(edge.Item1, edge.Item2); } if (node.Value.RightEdge.IsComplete) { - var (a, b) = node.Value.RightEdge.Edge; + var edge = node.Value.RightEdge.Edge; + + node.Value.Site.Edges.Add(edge); + next?.Value.Site.Edges.Insert(0, edge); - Voronoi.AddEdge(a, b); + Voronoi.AddEdge(edge.Item1, edge.Item2); } var newEdge = new HalfEdge() { Start = @event.vertex, StartVertex = index };