-package org.simantics.g3d.csg.actions;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import javax.vecmath.Quat4d;\r
-import javax.vecmath.Vector3d;\r
-\r
-import org.eclipse.jface.action.Action;\r
-import org.simantics.g3d.csg.scenegraph2.CSGparentNode;\r
-import org.simantics.g3d.csg.scenegraph2.CSGrootNode;\r
-import org.simantics.g3d.csg.scenegraph2.ICSGnode;\r
-\r
-public class SplitBooleanOpAction2 extends Action {\r
- private CSGrootNode root;\r
- private CSGparentNode booleanOp;\r
- \r
- public SplitBooleanOpAction2(CSGrootNode root, CSGparentNode booleanOp) {\r
- super();\r
- setText("Split");\r
- this.booleanOp = booleanOp;\r
- this.root = root;\r
- }\r
- \r
- @Override\r
- public void run() {\r
- Collection<ICSGnode> nodes = new ArrayList<ICSGnode>();\r
- nodes.addAll(booleanOp.getPrimaryChild());\r
- nodes.addAll(booleanOp.getSecondaryChild());\r
- Map<ICSGnode,Vector3d> positions = new HashMap<ICSGnode, Vector3d>();\r
- Map<ICSGnode,Quat4d> orientations = new HashMap<ICSGnode, Quat4d>();\r
- for (ICSGnode node : nodes) {\r
- positions.put(node, node.getWorldPosition());\r
- orientations.put(node, node.getWorldOrientation());\r
- node.deattach();\r
- }\r
- for (ICSGnode node : nodes) {\r
- root.addChild(node);\r
- node.setWorldPosition(positions.get(node));\r
- node.setWorldOrientation(orientations.get(node));\r
- }\r
- root.remChild(booleanOp);\r
- root.getNodeMap().commit();\r
-\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2012, 2013 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.g3d.csg.actions;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.vecmath.Quat4d;
+import javax.vecmath.Vector3d;
+
+import org.eclipse.jface.action.Action;
+import org.simantics.g3d.csg.scenegraph2.CSGparentNode;
+import org.simantics.g3d.csg.scenegraph2.CSGrootNode;
+import org.simantics.g3d.csg.scenegraph2.ICSGnode;
+
+public class SplitBooleanOpAction2 extends Action {
+ private CSGrootNode root;
+ private CSGparentNode booleanOp;
+
+ public SplitBooleanOpAction2(CSGrootNode root, CSGparentNode booleanOp) {
+ super();
+ setText("Split");
+ this.booleanOp = booleanOp;
+ this.root = root;
+ }
+
+ @Override
+ public void run() {
+ Collection<ICSGnode> nodes = new ArrayList<ICSGnode>();
+ nodes.addAll(booleanOp.getPrimaryChild());
+ nodes.addAll(booleanOp.getSecondaryChild());
+ Map<ICSGnode,Vector3d> positions = new HashMap<ICSGnode, Vector3d>();
+ Map<ICSGnode,Quat4d> orientations = new HashMap<ICSGnode, Quat4d>();
+ for (ICSGnode node : nodes) {
+ positions.put(node, node.getWorldPosition());
+ orientations.put(node, node.getWorldOrientation());
+ node.deattach();
+ }
+ for (ICSGnode node : nodes) {
+ root.addChild(node);
+ node.setWorldPosition(positions.get(node));
+ node.setWorldOrientation(orientations.get(node));
+ }
+ root.remChild(booleanOp);
+ root.getNodeMap().commit("Split");
+
+ }
+
+}