X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Feditor%2FP3DNodeMap.java;h=8daee3a530e9286a725bf5b0a113f711fd507f86;hb=b93886889422a3111b05a6944b3bcb2cdd8c416a;hp=f7bb42306aad6690a9088d35e8eac79d5ccac054;hpb=a1def49a6c4e5d661a08d21253c47e431eb12ddf;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java b/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java index f7bb4230..8daee3a5 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java @@ -30,7 +30,7 @@ import org.simantics.plant3d.scenegraph.controlpoint.PipingRules; import vtk.vtkProp; import vtk.vtkProp3D; -public class P3DNodeMap extends AbstractVTKNodeMap { +public class P3DNodeMap extends AbstractVTKNodeMap { private static final boolean DEBUG = false; @@ -71,7 +71,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap { if (ids.contains(id)) { node.visualize(view); updateRenderObjectsFor(node); - updateTransform(node); + //updateTransform(node); break; } } @@ -83,7 +83,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap { 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 { 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 { 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 { private boolean hasActor(IP3DVisualNode node) { - List list = nodeToActor.getValues(node); + Collection list = getRenderObjects(node); if (list == null || list.size() == 0) return false; return true; @@ -181,17 +183,12 @@ public class P3DNodeMap 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); - view.lock(); - - node.stopVisualize(); - - view.unlock(); + Collection list = getRenderObjects(node); + if (list.size() > 0) { + removeMap(node); + view.lock(); + node.stopVisualize(); + view.unlock(); } } @@ -265,7 +262,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap { } else if (graph.isInstanceOf(r, P3D.PipeRun)) { pipeRuns.add(r); } else { - throw new DatabaseException("Unknown resource " + r); + throw new DatabaseException("Unknown resource " + r+ " " + mapping.get(r)); } } Set nozzles = new HashSet<>(); @@ -274,7 +271,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap { if (graph.isInstanceOf(n, P3D.Nozzle)) { nozzles.add(n); } else { - throw new DatabaseException("Unknown nozzle resource " + n); + throw new DatabaseException("Unknown nozzle resource " + n+ " " + mapping.get(n)); } } } @@ -285,7 +282,7 @@ public class P3DNodeMap extends AbstractVTKNodeMap { if (graph.isInstanceOf(c, P3D.PipelineComponent)) { components.add(c); } else { - throw new DatabaseException("Unknown component resource " + c); + throw new DatabaseException("Unknown component resource " + c + " " + mapping.get(c)); } } } @@ -293,11 +290,11 @@ public class P3DNodeMap extends AbstractVTKNodeMap { for (Resource c : components) { for (Resource connected : graph.getObjects(c, P3D.Connects)) { if (!components.contains(connected) && !nozzles.contains(connected)) { - throw new DatabaseException("Unbrowsable component resource " + connected + " connected to " + c); + throw new DatabaseException("Unbrowsable component resource " + connected + " " + mapping.get(connected) +" connected to " + c + " " + mapping.get(c)); } Collection connectedConnected = graph.getObjects(connected, P3D.Connects); if (!connectedConnected.contains(c)) { - throw new DatabaseException("Component resource " + c + " is connected to " + connected +", but its has no connection back."); + throw new DatabaseException("Component resource " + c + " " + mapping.get(c) + " is connected to " + connected + " " + mapping.get(connected) +", but its has no connection back."); } } }