getRightmostEdge method
Implementation
DirectedEdge? getRightmostEdge() {
List edges = getEdges();
int size = edges.length;
if (size < 1) return null;
DirectedEdge de0 = edges[0] as DirectedEdge;
if (size == 1) return de0;
DirectedEdge deLast = edges[size - 1] as DirectedEdge;
int quad0 = de0.getQuadrant();
int quad1 = deLast.getQuadrant();
if (Quadrant.isNorthern(quad0) && Quadrant.isNorthern(quad1))
return de0;
else if (!Quadrant.isNorthern(quad0) && !Quadrant.isNorthern(quad1))
return deLast;
else {
// edges are in different hemispheres - make sure we return one that is non-horizontal
//Assert.isTrue(de0.getDy() != 0, "should never return horizontal edge!");
DirectedEdge? nonHorizontalEdge = null;
if (de0.getDy() != 0)
return de0;
else if (deLast.getDy() != 0) return deLast;
}
// TODO assert("found two horizontal edges incident on node");
return null;
}