public List <PointF> HullPointFsInOrder() { List <Edge> hullEdges = HullEdges(); List <PointF> PointFs = new List <PointF>(); if (hullEdges.Count == 0) { return(PointFs); } EdgeReorderer reorderer = new EdgeReorderer(hullEdges, typeof(Site)); hullEdges = reorderer.Edges; List <LR> orientations = reorderer.EdgeOrientations; reorderer.Dispose(); LR orientation; int n = hullEdges.Count; for (int i = 0; i < n; ++i) { Edge edge = hullEdges[i]; orientation = orientations[i]; PointFs.Add(edge.GetSite(orientation).Coord()); } return(PointFs); }
Site RightRegion(Halfedge he, Site bottomMostSite) { Edge edge = he.edge; if (edge == null) { return(bottomMostSite); } return(edge.GetSite(LR.Other(he.leftRight))); }