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); }
private void ReorderEdges() { //trace("_edges:", _edges); var reorderer = new EdgeReorderer(Edges, VertexOrSite.Vertex); Edges = reorderer.Edges; //trace("reordered:", _edges); EdgeOrientations = reorderer.EdgeOrientations; reorderer.Dispose(); }