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