/** * Only move the node if there is one of them * * @param graph2 * @param maxDistance * @param node1 * @return */ public static <T> boolean movePointsWithinTolerance( final Map<Point, Point> movedNodes, final Graph<T> graph2, final double maxDistance, final Node<T> node1) { final Graph<T> graph1 = node1.getGraph(); final List<Node<T>> nodes2 = graph2.getNodes(node1, maxDistance); if (nodes2.size() == 1) { final Node<T> node2 = nodes2.get(0); if (graph1.findNode(node2) == null) { final GeometryFactory precisionModel = graph1.getPrecisionModel(); final Point midPoint = LineSegmentUtil.midPoint(precisionModel, node1, node2); if (!node1.equals(2, midPoint)) { if (movedNodes != null) { movedNodes.put(node1.newPoint2D(), midPoint); } node1.moveNode(midPoint); } if (!node2.equals(2, midPoint)) { if (movedNodes != null) { movedNodes.put(node2.newPoint2D(), midPoint); } node2.moveNode(midPoint); } } } return true; }