]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGNodeMap.java
Remove dependencies on log4j
[simantics/3d.git] / org.simantics.g3d.csg / src / org / simantics / g3d / csg / editor / CSGNodeMap.java
index b4eaa148903d71b793dd09335d2cb88caf178269..89d05585dd3ace98ca09a1470e68b9baffe9362d 100644 (file)
@@ -16,9 +16,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
+import org.simantics.db.Resource;
 import org.simantics.db.Session;
 import org.simantics.g3d.csg.scenegraph2.CSGrootNode;
 import org.simantics.g3d.csg.scenegraph2.ICSGnode;
+import org.simantics.g3d.scenegraph.base.INode;
 import org.simantics.g3d.scenegraph.base.ParentNode;
 import org.simantics.g3d.vtk.awt.InteractiveVtkPanel;
 import org.simantics.g3d.vtk.common.AbstractVTKNodeMap;
@@ -27,11 +29,9 @@ import org.simantics.objmap.graph.IMapping;
 import vtk.vtkProp;
 import vtk.vtkProp3D;
 
-public class CSGNodeMap extends AbstractVTKNodeMap<ICSGnode> {
+public class CSGNodeMap extends AbstractVTKNodeMap<Resource,ICSGnode> {
        
-
-       
-       public CSGNodeMap(Session session, IMapping mapping, InteractiveVtkPanel panel, CSGrootNode rootNode) {
+       public CSGNodeMap(Session session, IMapping<Resource,INode> mapping, InteractiveVtkPanel panel, CSGrootNode rootNode) {
                super(session, mapping, panel, rootNode);
                rootNode.setNodeMap(this);
        }
@@ -87,20 +87,17 @@ public class CSGNodeMap extends AbstractVTKNodeMap<ICSGnode> {
                view.lock();
                
                node.visualize(view);
+               
+               map(node, node.getActors());
 
-               for (vtkProp3D act : node.getActors()) {
-                       nodeToActor.add(node, act);
-            actorToNode.put(act, node);
-               }
-
-        view.unlock();
+               view.unlock();
 
        }
        
        
        
        private boolean hasActor(ICSGnode node) {
-               List<vtkProp> list = nodeToActor.getValues(node);
+               Collection<vtkProp> list = getRenderObjects(node);
                if (list == null || list.size() == 0)
                        return false;
                return true;
@@ -110,16 +107,11 @@ public class CSGNodeMap extends AbstractVTKNodeMap<ICSGnode> {
                if (Thread.currentThread() != view.getThreadQueue().getThread())
                        throw new RuntimeException("Illegal thread.");
 
-               List<vtkProp> list = nodeToActor.getValues(node);
-               if (list != null) {
-                       for (vtkProp obj : list) {
-                               actorToNode.remove(obj);        
-                       }
-                       nodeToActor.remove(node);
+               Collection<vtkProp> list = getRenderObjects(node);
+               if (list.size() > 0) {
+                   removeMap(node);
                        view.lock();
-                       
                        node.stopVisualize();
-                       
                        view.unlock();
                }
        }