X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.csg%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fcsg%2Feditor%2FCSGNodeMap.java;h=89d05585dd3ace98ca09a1470e68b9baffe9362d;hb=HEAD;hp=bcd28db4dd214fce84f9ac717c3171c18642715c;hpb=9070983be64f9f107e0a6388549aad475fcd9d76;p=simantics%2F3d.git diff --git a/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGNodeMap.java b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGNodeMap.java index bcd28db4..89d05585 100644 --- a/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGNodeMap.java +++ b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGNodeMap.java @@ -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 { - - - public CSGNodeMap(Session session, IMapping mapping, InteractiveVtkPanel panel, CSGrootNode rootNode) { + public CSGNodeMap(Session session, IMapping mapping, InteractiveVtkPanel panel, CSGrootNode rootNode) { super(session, mapping, panel, rootNode); rootNode.setNodeMap(this); } @@ -88,11 +87,8 @@ public class CSGNodeMap extends AbstractVTKNodeMap { 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 { private boolean hasActor(ICSGnode node) { - List list = nodeToActor.getValues(node); + Collection list = getRenderObjects(node); if (list == null || list.size() == 0) return false; return true; @@ -111,16 +107,11 @@ public class CSGNodeMap extends AbstractVTKNodeMap { if (Thread.currentThread() != view.getThreadQueue().getThread()) throw new RuntimeException("Illegal thread."); - List list = nodeToActor.getValues(node); - if (list != null) { - for (vtkProp obj : list) { - actorToNode.remove(obj); - } - nodeToActor.remove(node); + Collection list = getRenderObjects(node); + if (list.size() > 0) { + removeMap(node); view.lock(); - node.stopVisualize(); - view.unlock(); } }