]> 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 bcd28db4dd214fce84f9ac717c3171c18642715c..89d05585dd3ace98ca09a1470e68b9baffe9362d 100644 (file)
@@ -20,6 +20,7 @@ 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;
@@ -30,9 +31,7 @@ import vtk.vtkProp3D;
 
 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);
        }
@@ -88,11 +87,8 @@ public class CSGNodeMap extends AbstractVTKNodeMap<Resource,ICSGnode> {
                view.lock();
                
                node.visualize(view);
-
-               for (vtkProp3D act : node.getActors()) {
-                       nodeToActor.add(node, act);
-                       actorToNode.put(act, node);
-               }
+               
+               map(node, node.getActors());
 
                view.unlock();
 
@@ -101,7 +97,7 @@ public class CSGNodeMap extends AbstractVTKNodeMap<Resource,ICSGnode> {
        
        
        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;
@@ -111,16 +107,11 @@ public class CSGNodeMap extends AbstractVTKNodeMap<Resource,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();
                }
        }