getRightmostEdge method

DirectedEdge? getRightmostEdge()

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;
}