X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2FG2DParentNode.java;h=af8c5630dc84c88c46c350b07c540ee9926e9ae6;hb=e353ca45b2ad3ce36ea48336feca56e86ad0b089;hp=231b616e2a0a1a8f09497ce12941a6a562782a4c;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;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 231b616e2..af8c5630d 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,26 @@ 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); + for (IG2DNode node : getSortedNodes()) { + if (node.validate()) { + node.accept(visitor); + } + } + visitor.leave(this); + } + /** * Return the IDs of the children of this node in ascending Z order. This * method will always allocate a new result list and sort it. To get the IDs @@ -333,10 +353,12 @@ public class G2DParentNode extends ParentNode implements IG2DNode, Ini if(b == null && !ignoreNulls) return null; if(b != null) { - if(bounds == null) { - bounds = b.getFrame(); - } else { - bounds.add(b); + if(!GeometryUtils.isUndefinedRectangle(b)) { + if(bounds == null) { + bounds = b.getFrame(); + } else { + bounds.add(b); + } } } } @@ -591,4 +613,5 @@ public class G2DParentNode extends ParentNode implements IG2DNode, Ini public void synchronizeTransform(double[] data) { this.setTransform(new AffineTransform(data)); } + }