Some boards (e.g. Breadboard) stop working at certain orientations

This commit is contained in:
bancika
2020-04-24 09:26:15 +02:00
parent 5cb2e7dd2b
commit bdf93b75e2
4 changed files with 10 additions and 3 deletions
@@ -337,7 +337,8 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
@Override
public Rectangle2D getCachingBounds() {
Point finalSecondPoint = getFinalSecondPoint();
return new Rectangle2D.Double(firstPoint.x, firstPoint.y, finalSecondPoint.x - firstPoint.x + 1, finalSecondPoint.y - firstPoint.y + 1);
return new Rectangle2D.Double(Math.min(firstPoint.x, finalSecondPoint.x), Math.min(firstPoint.y, finalSecondPoint.y),
Math.abs(finalSecondPoint.x - firstPoint.x) + 2, Math.abs(finalSecondPoint.y - firstPoint.y) + 2);
}
public static enum CoordinateType {
@@ -382,7 +382,8 @@ public class Breadboard extends AbstractComponent<Void> {
@Override
public Rectangle2D getCachingBounds() {
Point finalSecondPoint = getControlPoint(1);
return new Rectangle2D.Double(point.x, point.y, finalSecondPoint.x - point.x + 1, finalSecondPoint.y - point.y + 1);
return new Rectangle2D.Double(Math.min(point.x, finalSecondPoint.x), Math.min(point.y, finalSecondPoint.y),
Math.abs(finalSecondPoint.x - point.x) + 2, Math.abs(finalSecondPoint.y - point.y) + 2);
}
public enum BreadboardSize {
@@ -700,6 +700,7 @@ public class ProtoBoard extends AbstractComponent<Void> {
@Override
public Rectangle2D getCachingBounds() {
Point finalSecondPoint = getControlPoint(1);
return new Rectangle2D.Double(point.x, point.y, finalSecondPoint.x - point.x + 1, finalSecondPoint.y - point.y + 1);
return new Rectangle2D.Double(Math.min(point.x, finalSecondPoint.x), Math.min(point.y, finalSecondPoint.y),
Math.abs(finalSecondPoint.x - point.x) + 2, Math.abs(finalSecondPoint.y - point.y) + 2);
}
}