private boolean testRect()

in graphLayout/jetbrains.mps.graphLayout.orthogonalLayout/source_gen/jetbrains/mps/graphLayout/stOrthogonalLayout/LayoutOptimizer.java [96:129]


  private boolean testRect(Rectangle rect, Edge edge) {
    for (INode node : SetSequence.fromSet(MapSequence.fromMap(myLayout.getNodeLayout()).keySet())) {
      Node myNode = ((Node) node);
      if (ListSequence.fromList(edge.getAdjacentNodes()).contains(myNode)) {
        continue;
      }
      Rectangle nodeRect = myLayout.getNodeLayout(node);
      if (isInsideAndNotACorner(nodeRect.x, nodeRect.y, rect)) {
        return false;
      }
      if (isInsideAndNotACorner(nodeRect.x, nodeRect.y + nodeRect.height, rect)) {
        return false;
      }
      if (isInsideAndNotACorner(nodeRect.x + nodeRect.width, nodeRect.y, rect)) {
        return false;
      }
      if (isInsideAndNotACorner(nodeRect.x + nodeRect.width, nodeRect.y + nodeRect.height, rect)) {
        return false;
      }
    }
    for (List<Point> path : Sequence.fromIterable(MapSequence.fromMap(myLayout.getEdgeLayout()).values())) {
      for (Point p : ListSequence.fromList(path)) {
        if (isInsideAndNotACorner(p.x, p.y, rect)) {
          return false;
        }
      }
    }
    for (Rectangle labelRect : Sequence.fromIterable(MapSequence.fromMap(myLayout.getLabelLayout()).values())) {
      if (Util1D.intersects(labelRect.x, labelRect.x + labelRect.width, rect.x, rect.x + rect.width) && Util1D.intersects(labelRect.y, labelRect.y + labelRect.height, rect.y, rect.y + rect.height)) {
        return false;
      }
    }
    return true;
  }