示例#1
0
文件: Voronoi.cs 项目: Slazanger/SMT
        public List <Vector2f> HullPointsInOrder()
        {
            List <Edge> hullEdges = HullEdges();

            List <Vector2f> points = new List <Vector2f>();

            if (hullEdges.Count == 0)
            {
                return(points);
            }

            EdgeReorderer reorderer = new EdgeReorderer(hullEdges, typeof(Site));

            hullEdges = reorderer.Edges;
            List <LR> orientations = reorderer.EdgeOrientations;

            reorderer.Dispose();

            LR orientation;

            for (int i = 0; i < hullEdges.Count; i++)
            {
                Edge edge = hullEdges[i];
                orientation = orientations[i];
                points.Add(edge.Site(orientation).Coord);
            }
            return(points);
        }
示例#2
0
文件: Site.cs 项目: Slazanger/SMT
        private void ReorderEdges()
        {
            EdgeReorderer reorderer = new EdgeReorderer(edges, typeof(Vertex));

            edges            = reorderer.Edges;
            edgeOrientations = reorderer.EdgeOrientations;
            reorderer.Dispose();
        }