]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java
Merge "Utilize SVGNode's transformation when generating SVG image"
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / SCLScenegraph.java
index 4e4811c5a15fe066d6ecf645accbe8fc26a4ca93..ef2fb5d66cbeff9faa4f5458dc91955be12fea98 100644 (file)
@@ -821,7 +821,7 @@ public class SCLScenegraph {
                 parentBuilder.append(SELECTION_SECTION, "\n</g>");
                 parentBuilder.append(MAIN_SECTION, "\n</g>");
                 
-            } else if (node instanceof SelectionNode) {
+            } else if (isSelection0(node)) {
                 
                 SelectionNode n = (SelectionNode)node;
                 SingleElementNode parentSEN = (SingleElementNode)NodeUtil.getNearestParentOfType(node, SingleElementNode.class);
@@ -849,6 +849,14 @@ public class SCLScenegraph {
                     parentBuilder2.append(SELECTION_MASK_SECTION,"\n</g>");
                    
                 }
+            } else if (node instanceof SelectionNode) {
+
+                Element doc = renderSVGNode(svgGenerator, (IG2DNode)node);
+                String svg = printSVGDocument(doc);
+                parentBuilder.append(MAIN_SECTION, "<g>");
+                parentBuilder.append(MAIN_SECTION, svg);
+                parentBuilder.append(MAIN_SECTION, "\n</g>");
+
             } else if (node instanceof SVGNode) {
                 SVGNode svg = (SVGNode)node;
                 AffineTransform at = svg.getTransform();
@@ -897,6 +905,17 @@ public class SCLScenegraph {
 
         }
         
+        private boolean isSelection0(IG2DNode node) {
+            
+            if(node instanceof SelectionNode) {
+                SelectionNode sn = (SelectionNode)node;
+                return sn.getSelectionId() == 0;
+            } else {
+                return false;
+            }
+            
+        }
+        
         private RenderSVGContext getParentBuilder(IG2DNode node) {
             
             INode parentSEN = NodeUtil.getNearestParentOfType(node, SingleElementNode.class);