mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-07 12:24:58 +10:00
Improve clipping logic
This commit is contained in:
@@ -607,7 +607,7 @@
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Improved rendering performance and reduced lagging with complex projects while dragging components around</description>
|
||||
<description>Significantly improved rendering performance and reduced lagging with complex projects while dragging components around</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
|
||||
+7
-14
@@ -40,23 +40,16 @@ public abstract class AbstractMultiPartComponent<T> extends AbstractLabeledCompo
|
||||
public Rectangle2D getCachingBounds() {
|
||||
Shape[] body = getBody();
|
||||
int margin = 20;
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
double maxX = 0;
|
||||
double maxY = 0;
|
||||
Rectangle2D bounds = null;
|
||||
for (Shape a : body) {
|
||||
if (a != null) {
|
||||
Rectangle2D bounds2d = a.getBounds2D();
|
||||
if (bounds2d.getMinX() < minX)
|
||||
minX = bounds2d.getMinX();
|
||||
if (bounds2d.getMinY() < minY)
|
||||
minY = bounds2d.getMinY();
|
||||
if (bounds2d.getMaxX() > maxX)
|
||||
maxX = bounds2d.getMaxX();
|
||||
if (bounds2d.getMaxY() > maxY)
|
||||
maxY = bounds2d.getMaxY();
|
||||
bounds = bounds == null ? a.getBounds2D() : bounds.createUnion(a.getBounds2D());
|
||||
}
|
||||
}
|
||||
return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin);
|
||||
if (bounds == null) {
|
||||
bounds = new Rectangle2D.Double(getControlPoint(0).getX(), getControlPoint(0).getY(), 0, 0);
|
||||
}
|
||||
return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin,
|
||||
bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-14
@@ -274,24 +274,17 @@ public abstract class AbstractGuitarPickup extends AbstractLabeledComponent<Stri
|
||||
public Rectangle2D getCachingBounds() {
|
||||
Shape[] body = getBody();
|
||||
int margin = 20;
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
double maxX = 0;
|
||||
double maxY = 0;
|
||||
Rectangle2D bounds = null;
|
||||
for (Shape a : body) {
|
||||
if (a != null) {
|
||||
Rectangle2D bounds2d = a.getBounds2D();
|
||||
if (bounds2d.getMinX() < minX)
|
||||
minX = bounds2d.getMinX();
|
||||
if (bounds2d.getMinY() < minY)
|
||||
minY = bounds2d.getMinY();
|
||||
if (bounds2d.getMaxX() > maxX)
|
||||
maxX = bounds2d.getMaxX();
|
||||
if (bounds2d.getMaxY() > maxY)
|
||||
maxY = bounds2d.getMaxY();
|
||||
bounds = bounds == null ? a.getBounds2D() : bounds.createUnion(a.getBounds2D());
|
||||
}
|
||||
}
|
||||
return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin);
|
||||
if (bounds == null) {
|
||||
bounds = new Rectangle2D.Double(getControlPoint(0).getX(), getControlPoint(0).getY(), 0, 0);
|
||||
}
|
||||
return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin,
|
||||
bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin);
|
||||
}
|
||||
|
||||
public boolean isStacked() {
|
||||
|
||||
+7
-14
@@ -776,24 +776,17 @@ public class PotentiometerPanel extends AbstractPotentiometer implements ILayere
|
||||
public Rectangle2D getCachingBounds() {
|
||||
Shape[] body = getBody();
|
||||
int margin = 20;
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
double maxX = 0;
|
||||
double maxY = 0;
|
||||
Rectangle2D bounds = null;
|
||||
for (Shape a : body) {
|
||||
if (a != null) {
|
||||
Rectangle2D bounds2d = a.getBounds2D();
|
||||
if (bounds2d.getMinX() < minX)
|
||||
minX = bounds2d.getMinX();
|
||||
if (bounds2d.getMinY() < minY)
|
||||
minY = bounds2d.getMinY();
|
||||
if (bounds2d.getMaxX() > maxX)
|
||||
maxX = bounds2d.getMaxX();
|
||||
if (bounds2d.getMaxY() > maxY)
|
||||
maxY = bounds2d.getMaxY();
|
||||
bounds = bounds == null ? a.getBounds2D() : bounds.createUnion(a.getBounds2D());
|
||||
}
|
||||
}
|
||||
return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin);
|
||||
if (bounds == null) {
|
||||
bounds = new Rectangle2D.Double(getControlPoint(0).getX(), getControlPoint(0).getY(), 0, 0);
|
||||
}
|
||||
return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin,
|
||||
bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+7
-14
@@ -367,23 +367,16 @@ public class TransistorTO3 extends AbstractLabeledComponent<String> {
|
||||
public Rectangle2D getCachingBounds() {
|
||||
Shape[] body = getBody();
|
||||
int margin = 20;
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
double maxX = 0;
|
||||
double maxY = 0;
|
||||
Rectangle2D bounds = null;
|
||||
for (Shape a : body) {
|
||||
if (a != null) {
|
||||
Rectangle2D bounds2d = a.getBounds2D();
|
||||
if (bounds2d.getMinX() < minX)
|
||||
minX = bounds2d.getMinX();
|
||||
if (bounds2d.getMinY() < minY)
|
||||
minY = bounds2d.getMinY();
|
||||
if (bounds2d.getMaxX() > maxX)
|
||||
maxX = bounds2d.getMaxX();
|
||||
if (bounds2d.getMaxY() > maxY)
|
||||
maxY = bounds2d.getMaxY();
|
||||
bounds = bounds == null ? a.getBounds2D() : bounds.createUnion(a.getBounds2D());
|
||||
}
|
||||
}
|
||||
return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin);
|
||||
if (bounds == null) {
|
||||
bounds = new Rectangle2D.Double(getControlPoint(0).getX(), getControlPoint(0).getY(), 0, 0);
|
||||
}
|
||||
return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin,
|
||||
bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user