Exemple #1
0
        public List <Point> HullPointsInOrder()
        {
            var hullEdges = HullEdges();

            var points = new List <Point>();

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

            var reorderer = new EdgeReorderer(hullEdges, VertexOrSite.Site);

            hullEdges = reorderer.Edges;
            var orientations = reorderer.EdgeOrientations;

            reorderer.Dispose();

            var n = hullEdges.Count;

            for (var i = 0; i < n; ++i)
            {
                var edge        = hullEdges[i];
                var orientation = orientations[i];
                points.Add(edge.Site(orientation).Coord);
            }
            return(points);
        }
Exemple #2
0
        private void ReorderEdges()
        {
            //trace("_edges:", _edges);
            var reorderer = new EdgeReorderer(Edges, VertexOrSite.Vertex);

            Edges = reorderer.Edges;
            //trace("reordered:", _edges);
            EdgeOrientations = reorderer.EdgeOrientations;
            reorderer.Dispose();
        }