/** * Checks for any coincident ends of edges. * * @return a List of the coincident edges, if any */ public Set checkCoincidentEdges() { Set coincidentEdges = new HashSet(); for (Iterator i = nodeIterator(); i.hasNext(); ) { Node node = (Node) i.next(); DirectedEdgeStar deStar = node.getOutEdges(); DirectedEdge firstDE = null; DirectedEdge prevDE = null; for (Iterator j = deStar.iterator(); j.hasNext(); ) { DirectedEdge de = (DirectedEdge) j.next(); if (firstDE == null) firstDE = de; if (prevDE != null) { if (isCoincidentEdge(de, prevDE)) { coincidentEdges.add(de.getEdge()); coincidentEdges.add(prevDE.getEdge()); } } prevDE = de; } if (firstDE != prevDE) if (isCoincidentEdge(firstDE, prevDE)) { coincidentEdges.add(firstDE.getEdge()); coincidentEdges.add(prevDE.getEdge()); } } return coincidentEdges; }
private void findRightmostEdgeAtNode() { Node node = minDe.getNode(); DirectedEdgeStar star = (DirectedEdgeStar) node.getEdges(); minDe = star.getRightmostEdge(); // the DirectedEdge returned by the previous call is not // necessarily in the forward direction. Use the sym edge if it isn't. if (!minDe.isForward()) { minDe = minDe.getSym(); minIndex = minDe.getEdge().getCoordinates().length - 1; } }