]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DParentNode.java
G2DParentNode handles "undefined" child bounds separately
[simantics/platform.git] / bundles / org.simantics.scenegraph / src / org / simantics / scenegraph / g2d / G2DParentNode.java
index 838eb893e52b392b78a8796adf4e6e10e17fd7cc..af8c5630dc84c88c46c350b07c540ee9926e9ae6 100644 (file)
@@ -122,6 +122,15 @@ public class G2DParentNode extends ParentNode<IG2DNode> implements IG2DNode, Ini
             g2d.setTransform(ot);
     }
 
             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);
     @Override
     public void accept(IG2DNodeVisitor visitor) {
         visitor.enter(this);
@@ -344,10 +353,12 @@ public class G2DParentNode extends ParentNode<IG2DNode> implements IG2DNode, Ini
             if(b == null && !ignoreNulls)
                 return null;
             if(b != null) {
             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);
+                    }
                 }
             }
         }
                 }
             }
         }
@@ -602,4 +613,5 @@ public class G2DParentNode extends ParentNode<IG2DNode> implements IG2DNode, Ini
        public void synchronizeTransform(double[] data) {
                this.setTransform(new AffineTransform(data));
        }
        public void synchronizeTransform(double[] data) {
                this.setTransform(new AffineTransform(data));
        }
+
 }
 }