X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2Fcontrolpoint%2FPipeControlPoint.java;h=8f1b9a88bb6b7bf72ea20f866453deea1b76cc2b;hb=9f84331c9967c88e0e5550ce91f2b7e364a5cb6d;hp=9e9beb9c37711e63012c006b4221839de8cfb819;hpb=68314736ee2b8da184a5e01e88b719b4fd64ab49;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipeControlPoint.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipeControlPoint.java index 9e9beb9c..8f1b9a88 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipeControlPoint.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/controlpoint/PipeControlPoint.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Objects; import javax.vecmath.AxisAngle4d; import javax.vecmath.Matrix3d; @@ -379,9 +380,10 @@ public class PipeControlPoint extends G3DNode implements IP3DNode { } public void setLength(double l) { - if (Double.isInfinite(l) || Double.isNaN(l)) { + if (this.length == l) + return; + if (Double.isInfinite(l) || Double.isNaN(l)) return; - } if (Math.abs(this.length-l) < MathTools.NEAR_ZERO) return; this.length = l; @@ -429,6 +431,8 @@ public class PipeControlPoint extends G3DNode implements IP3DNode { } if (this.turnAngle != null && Math.abs(this.turnAngle-turnAngle) < MathTools.NEAR_ZERO) return; + if (Objects.equals(this.turnAngle, turnAngle)) + return; this.turnAngle = turnAngle; firePropertyChanged("turnAngle"); } @@ -446,6 +450,8 @@ public class PipeControlPoint extends G3DNode implements IP3DNode { } if (this.offset != null && Math.abs(this.offset-offset) < MathTools.NEAR_ZERO) return; + if (Objects.equals(this.offset, offset)) + return; this.offset = offset; firePropertyChanged("offset"); } @@ -456,11 +462,15 @@ public class PipeControlPoint extends G3DNode implements IP3DNode { } if (this.rotationAngle != null && Math.abs(this.rotationAngle-rotationAngle) < MathTools.NEAR_ZERO) return; + if (Objects.equals(rotationAngle, rotationAngle)) + return; this.rotationAngle = rotationAngle; firePropertyChanged("rotationAngle"); } public void setReversed(Boolean reversed) { + if (this.reversed == reversed) + return; this.reversed = reversed; firePropertyChanged("reversed"); } @@ -1603,7 +1613,7 @@ public class PipeControlPoint extends G3DNode implements IP3DNode { component._setWorldPosition(getWorldPosition()); updateSubPoint(); } - + private void updateSubPoint() { if (isOffset()) { if (next == null && previous == null) {