public Dictionary <Vector2, List <Vector2> > GenDelaunay() { Dictionary <Vector2, List <Vector2> > points = new Dictionary <Vector2, List <Vector2> >(); int m_pointCount = 20; List <Vector2> m_points; float m_mapWidth = 25; float m_mapHeight = 12; List <LineSegment> m_edges = null; List <LineSegment> m_spanningTree; List <LineSegment> m_delaunayTriangulation; List <uint> colors = new List <uint>(); m_points = new List <Vector2>(); for (int i = 0; i < m_pointCount; i++) { colors.Add(0); m_points.Add(new Vector2( Random.Range(2f, m_mapWidth - 2f), Random.Range(2f, m_mapHeight)) ); } Delaunay.Voronoi v = new Delaunay.Voronoi(m_points, colors, new Rect(2f, 2f, m_mapWidth, m_mapHeight)); m_edges = v.VoronoiDiagram(); m_spanningTree = v.SpanningTree(KruskalType.MINIMUM); m_delaunayTriangulation = v.DelaunayTriangulation(); foreach (Vector2 coord in m_points) { points.Add(coord, v.NeighborSitesForSite(coord)); } return(points); }