X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2Fnodes%2FSelectionNode.java;h=bd09c45745be9ab675d25f0bb073caca8cc85b0d;hb=81e3522f6cb5822f701b66a9fbf9be9f9bf97ec9;hp=b5b8c4151fc7510a5c828bdbf36b5261b737e5e3;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SelectionNode.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SelectionNode.java index b5b8c4151..bd09c4574 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SelectionNode.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SelectionNode.java @@ -35,7 +35,17 @@ public class SelectionNode extends G2DNode implements Decoration { protected transient Rectangle2D rect; protected transient BasicStroke scaledStroke; protected transient double previousScaleRecip = Double.NaN; + private boolean ignore = false; + private double paddingFactor = 5.0; + public void setIgnore(boolean value) { + ignore = value; + } + + public void setPaddingFactor(double factor) { + paddingFactor = factor; + } + @SyncField({"transform", "bounds", "color"}) public void init(AffineTransform transform, Rectangle2D bounds, Color color) { this.transform = transform; @@ -46,6 +56,8 @@ public class SelectionNode extends G2DNode implements Decoration { @Override public void render(Graphics2D g) { if (bounds == null) return; + + if (ignore) return; // Prevent exceptions during rendering. if (transform.getDeterminant() == 0) @@ -71,7 +83,7 @@ public class SelectionNode extends G2DNode implements Decoration { } g.setStroke(scaledStroke); - double padding = 5.0 * scaleRecip; + double padding = paddingFactor * scaleRecip; double paddingX = padding; double paddingY = padding; @@ -84,6 +96,10 @@ public class SelectionNode extends G2DNode implements Decoration { g.setTransform(ot); } + + public Rectangle2D getRect() { + return transform.createTransformedShape(rect).getBounds2D(); + } @Override public Rectangle2D getBoundsInLocal() {