findEdge method

void findEdge(
  1. List dirEdgeList
)

Implementation

void findEdge(List dirEdgeList) {
  /**
   * Check all forward DirectedEdges only.  This is still general,
   * because each edge has a forward DirectedEdge.
   */
  for (DirectedEdge de in dirEdgeList) {
    if (!de.isForward()) continue;
    checkForRightmostCoordinate(de);
  }

  /**
   * If the rightmost point is a node, we need to identify which of
   * the incident edges is rightmost.
   */
  Assert.isTrue(minIndex != 0 || minCoord!.equals(minDe!.getCoordinate()!),
      "inconsistency in rightmost processing");
  if (minIndex == 0) {
    findRightmostEdgeAtNode();
  } else {
    findRightmostEdgeAtVertex();
  }
  /**
   * now check that the extreme side is the R side.
   * If not, use the sym instead.
   */
  orientedDe = minDe;
  int rightmostSide = getRightmostSide(minDe!, minIndex);
  if (rightmostSide == Position.LEFT) {
    orientedDe = minDe!.getSym();
  }
}