]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java
Remove dependencies on log4j
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / editor / P3DNodeMap.java
index a145b71ab2d542c6dae6b792122bb25ccd6f1555..00118cfd842441568b8bc85dd6cf83364d0a5bcb 100644 (file)
@@ -76,8 +76,14 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                                }
                        }
                } else if (n instanceof PipeRun) {
-                       // FIXME: may require rule based update!
                        PipeRun run = (PipeRun)n;
+                       
+                       // Check for change to turn radii and update turn components
+                       if (ids.contains(Plant3D.URIs.HasTurnRadiusArray) ||
+                               ids.contains(Plant3D.URIs.HasTurnRadius)) {
+                               requestTurnUpdates(run);
+                       }
+                       
                        Set<String> ids2 = new HashSet<String>();
                        ids2.add(Plant3D.URIs.hasGeometry);
                        for (PipeControlPoint pcp : run.getControlPoints()) {
@@ -97,12 +103,20 @@ public class P3DNodeMap extends AbstractVTKNodeMap<Resource,INode> {
                }
        }
        
+       private void requestTurnUpdates(PipeRun run) {
+               for (PipeControlPoint pcp : run.getControlPoints()) {
+                       if (pcp.isTurn())
+                               PipingRules.requestUpdate(pcp);
+               }
+       }
+       
        private void updateTransform(IP3DNode node) {
                if (DEBUG) System.out.println("P3DNodeMap update Transform " + debugString(node));
 
                node.update(view.getRenderer());
                
                if (node instanceof ParentNode<?>) {
+                       @SuppressWarnings("unchecked")
                        ParentNode<IP3DNode> p = (ParentNode<IP3DNode>)node;
                        for (IP3DNode n : p.getNodes())
                                updateTransform(n);