X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FInlineComponent.java;h=ed4917df6717cfc78fd726afbafde98abe727423;hb=bd522622ca0d62dff1b2025680b042e7ffebc279;hp=eb5c1a288492326fea3daef4a4a4f8a86aea953e;hpb=0e8931c5a23f45d7ee25131c9df97c4667484b4e;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/InlineComponent.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/InlineComponent.java index eb5c1a28..ed4917df 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/InlineComponent.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/InlineComponent.java @@ -36,6 +36,9 @@ public class InlineComponent extends PipelineComponent { public void setType(String type) throws Exception{ this.type = type; controlPoint = ControlPointFactory.create(this); + syncNext(); + syncPrevious(); + syncBranch0(); } @@ -54,6 +57,10 @@ public class InlineComponent extends PipelineComponent { return !controlPoint.isFixed(); } + public boolean isModifialble() { + return controlPoint.isMod(); + } + public boolean isSizeChange() { return controlPoint.isSizeChange(); } @@ -82,12 +89,8 @@ public class InlineComponent extends PipelineComponent { if (controlPoint.getRotationAngle() != null && Math.abs(controlPoint.getRotationAngle()-angle) < MathTools.NEAR_ZERO) return; controlPoint.setRotationAngle(angle); - try { - PipingRules.requestUpdate(getControlPoint()); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + PipingRules.requestUpdate(getControlPoint()); + } @RelatedGetValue(Plant3D.URIs.IsReversed) @@ -108,12 +111,7 @@ public class InlineComponent extends PipelineComponent { return; } controlPoint.setReversed(reverse); - try { - PipingRules.requestUpdate(getControlPoint()); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + PipingRules.requestUpdate(getControlPoint()); } @Override @@ -121,15 +119,21 @@ public class InlineComponent extends PipelineComponent { super.updateParameters(); if (!isVariableLength()) { Map calculated = getCalculatedParameters(); - if (calculated.containsKey("length")) { - controlPoint.setLength((Double)calculated.get("length")); - } + if (calculated.containsKey("offset")) { controlPoint.setOffset((Double)calculated.get("offset")); componentCalculatedOffset = true; } else { componentCalculatedOffset = false; } + + Map total = getTotalParameters(); + + if (total.containsKey("length")) { + controlPoint.setLength((Double)total.get("length")); + } + + PipingRules.requestUpdate(getControlPoint()); } } @@ -153,7 +157,7 @@ public class InlineComponent extends PipelineComponent { private void updateOffset() { if (!componentCalculatedOffset && getControlPoint().isOffset()) { - getControlPoint().setOffset(getPipeRun().getPipeDiameter()*0.5 - getAlternativePipeRun().getPipeDiameter()*0.5); + getControlPoint().setOffset(getPipeRun().getInsideDiameter()*0.5 - getAlternativePipeRun().getInsideDiameter()*0.5); } } @@ -161,10 +165,10 @@ public class InlineComponent extends PipelineComponent { public Map updateParameterMap() { Map map = new HashMap(); if (controlPoint != null) { - if (!Double.isNaN(controlPoint.getLength())) + if (!Double.isNaN(controlPoint.getLength()) && controlPoint.isVariableLength()) map.put("length", controlPoint.getLength()); if (controlPoint.isDualInline()) { - PipeControlPoint sub = controlPoint.getSubPoint().get(0); + PipeControlPoint sub = controlPoint.getDualSub(); PipeRun pipeRun2 = sub.getPipeRun(); if (pipeRun2 != null) { map.put("radius2", pipeRun2.getPipeDiameter() * 0.5);