X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Factions%2FRoutePipeAction.java;h=9f523c956be2b8ac7c08cb2f15740e45dc67c380;hb=1ca09aa9bae3ea1e3382ceff0a2a09427f173286;hp=a57fcc4c0be6d4e48db55f71710e2c1515f18be8;hpb=b6cccb572f043f3247274c52b353577ba3f1dcb1;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/actions/RoutePipeAction.java b/org.simantics.plant3d/src/org/simantics/plant3d/actions/RoutePipeAction.java index a57fcc4c..9f523c95 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/actions/RoutePipeAction.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/actions/RoutePipeAction.java @@ -310,7 +310,7 @@ public class RoutePipeAction extends vtkSwtAction { protected void activateNextPrev(PipeControlPoint start) throws Exception{ if (!reversed && start.isDualInline()) - start = start.getSubPoint().get(0); + start = start.getDualSub(); else if (reversed && start.isDualSub()) start = start.parent; @@ -1050,21 +1050,29 @@ public class RoutePipeAction extends vtkSwtAction { private PipeControlPoint endingToComponent(INode componentNode, Vector3d o, Vector3d d) { PipelineComponent component = (PipelineComponent)componentNode; PipeControlPoint pcp = component.getControlPoint(); + PipeControlPoint connect = null; if (component instanceof EndComponent) { if (pcp.getNext() != null || pcp.getPrevious() != null) return null; - return pcp; + connect = pcp; } else if (component instanceof TurnComponent) { if (pcp.getNext() == null || pcp.getPrevious() == null) - return pcp; - return null; + connect = pcp; + else + return null; } else if (component instanceof InlineComponent) { // TODO : scan all empty pcps of the component and select closest one. if (pcp.getNext() == null || pcp.getPrevious() == null) - return pcp; - return null; + connect = pcp; + else + return null; + } + if (connect != null) { + currentPosition.set(connect.getWorldPosition()); + updateCurrentPoint(); + setInfoText("Connect to " + component.getName()); + return connect; } - return null; }