]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java
Allow multiple radii for turns.
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / editor / P3DNodeMap.java
index fce61be4abc5ef5e4146a341e4f7b3f9eea801ae..8daee3a530e9286a725bf5b0a113f711fd507f86 100644 (file)
@@ -71,7 +71,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                                if (ids.contains(id)) {
                                        node.visualize(view);
                                        updateRenderObjectsFor(node);
-                                       updateTransform(node);
+                                       //updateTransform(node);
                                        break;
                                }
                        }
@@ -83,7 +83,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                        for (PipeControlPoint pcp : run.getControlPoints()) {
                                updateActor(pcp, ids2);
                        }
-               }
+               } 
                
                if (ids.contains(G3D.URIs.hasPosition) || 
                        ids.contains(G3D.URIs.hasOrientation) ||
@@ -91,6 +91,10 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                        ids.contains(G3D.URIs.hasWorldOrientation)) {
                        updateTransform(node);
                }
+               if (ids.contains(Plant3D.URIs.HasTurnRadiusIndex)) {
+                   node.visualize(view);
+                   updateRenderObjectsFor(node);
+               }
        }
        
        private void updateTransform(IP3DNode node) {
@@ -150,10 +154,8 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                
                node.visualize(view);
 
-               for (vtkProp3D act : node.getActors()) {
-                       nodeToActor.add(node, act);
-                       actorToNode.put(act, node);
-               }
+               map(node, node.getActors());
+               
                if (DEBUG) System.out.println("Added " + node.getActors().size() + " actors");
                
                if (node instanceof P3DParentNode<?>) {
@@ -171,7 +173,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
        
        
        private boolean hasActor(IP3DVisualNode node) {
-               List<vtkProp> list = nodeToActor.getValues(node);
+               Collection<vtkProp> list = getRenderObjects(node);
                if (list == null || list.size() == 0)
                        return false;
                return true;
@@ -181,17 +183,12 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                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);
-                       view.lock();
-                       
-                       node.stopVisualize();
-                       
-                       view.unlock();
+               Collection<vtkProp> list = getRenderObjects(node);
+               if (list.size() > 0) {
+                   removeMap(node);
+                   view.lock();
+                   node.stopVisualize();
+                   view.unlock();
                }
        }