X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2FG2DParentNode.java;h=a752e9253eedf1149b1d6860fe8e2586ffdaf539;hb=HEAD;hp=838eb893e52b392b78a8796adf4e6e10e17fd7cc;hpb=de8cf4f7d7035bdc8d07ef0b03253ef44485d29c;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DParentNode.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DParentNode.java index 838eb893e..a752e9253 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DParentNode.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DParentNode.java @@ -122,6 +122,15 @@ public class G2DParentNode extends ParentNode implements IG2DNode, Ini g2d.setTransform(ot); } + @Override + public void refresh() { + for (IG2DNode node : getSortedNodes()) { + if (node.validate()) { + node.refresh(); + } + } + } + @Override public void accept(IG2DNodeVisitor visitor) { visitor.enter(this); @@ -340,14 +349,17 @@ public class G2DParentNode extends ParentNode implements IG2DNode, Ini Rectangle2D bounds = null; while(it.hasNext()) { IG2DNode node = it.next(); - Rectangle2D b = node.getBounds(); + Rectangle2D b = node.getBoundsInLocal(ignoreNulls); if(b == null && !ignoreNulls) return null; if(b != null) { - if(bounds == null) { - bounds = b.getFrame(); - } else { - bounds.add(b); + if(!GeometryUtils.isUndefinedRectangle(b)) { + b = node.localToParent(b); + if(bounds == null) { + bounds = b.getFrame(); + } else { + bounds.add(b); + } } } } @@ -602,4 +614,5 @@ public class G2DParentNode extends ParentNode implements IG2DNode, Ini public void synchronizeTransform(double[] data) { this.setTransform(new AffineTransform(data)); } + }