X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Feditor%2FP3DNodeMap.java;h=00118cfd842441568b8bc85dd6cf83364d0a5bcb;hb=HEAD;hp=08ce5a07bc4f4adbc54687540de0a810ed768a01;hpb=ebfe6b0245b5cf9231cecedf0aaacd891eb5d344;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 08ce5a07..00118cfd 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DNodeMap.java @@ -76,8 +76,14 @@ public class P3DNodeMap extends AbstractVTKNodeMap { } } } 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 ids2 = new HashSet(); ids2.add(Plant3D.URIs.hasGeometry); for (PipeControlPoint pcp : run.getControlPoints()) { @@ -97,6 +103,13 @@ public class P3DNodeMap extends AbstractVTKNodeMap { } } + 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));