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
@@ -3042,6 +3042,10 @@
<releaseDate>2020-04-20 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Some boards (e.g. Breadboard) stop working at certain orientations</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Component leads on resistors, capacitors, etc disappear when they are very short</description>
@@ -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);
}
}