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