public void findEdge(List dirEdgeList) {
    /**
     * Check all forward DirectedEdges only. This is still general, because each edge has a forward
     * DirectedEdge.
     */
    for (Iterator i = dirEdgeList.iterator(); i.hasNext(); ) {
      DirectedEdge de = (DirectedEdge) i.next();
      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();
    }
  }
 /**
  * Tests whether a given point is in an array of points. Uses a value-based test.
  *
  * @param pt a {@link Coordinate} for the test point
  * @param pts an array of {@link Coordinate}s to test
  * @return <code>true</code> if the point is in the array
  * @deprecated
  */
 public static boolean isInList(Coordinate pt, Coordinate[] pts) {
   for (int i = 0; i < pts.length; i++) {
     if (pt.equals(pts[i])) return true;
   }
   return false;
 }