X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2Fcontrolpoint%2FPipingRules.java;h=57ee4ba86a382e9ac49ed7253ccdaf03f0a248e4;hb=a899aac9dd52296206f302a20a8e7bae2501cf2c;hp=58873b0f1003d5f64156b3c16a42def1cb8cccd4;hpb=a53efc63bed07331a3a2f9879f266e41cbe738cb;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipingRules.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipingRules.java index 58873b0f..57ee4ba8 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipingRules.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipingRules.java @@ -864,7 +864,8 @@ public class PipingRules { double l2next = icp.getInlineLength(); double l2 = l2prev + l2next; double l2s = l2 * l2; - if (l > l2s) { + double diff = l - l2s; + if (diff >= MIN_INLINE_LENGTH) { if (allowInsertRemove) { dir.normalize(); double length = Math.sqrt(l) - l2; // true length of the variable length component @@ -988,16 +989,19 @@ public class PipingRules { other = u.end; position = u.startPoint; dcpStart = true; + if (!u.reversed) + canMoveOther = true; inlineEnd = u.end.isInline(); } else { dcp = u.end; other = u.start; position = u.endPoint; + if (u.reversed) + canMoveOther = true; inlineEnd = u.start.isInline(); } - canMoveOther = !(other == u.updated); - + Vector3d directedDirection = direction(dcp, dcpStart ? Direction.NEXT : Direction.PREVIOUS); if (directedDirection == null) { //updateTurnControlPointTurn(dcp, dcp.getPrevious(), dcp.getNext()); @@ -1286,7 +1290,7 @@ public class PipingRules { R = tr / t; if (R <= curr) break; - curr = R*1.01; + curr = R*1.001; iter--; } return curr;