package org.simantics.plant3d.scenegraph;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import org.simantics.g3d.math.MathTools;
import org.simantics.g3d.property.annotations.GetPropertyValue;
@RelatedSetValue(Plant3D.URIs.HasTurnRadius)
@SetPropertyValue(Plant3D.URIs.HasTurnRadius)
public void setTurnRadius(double turnRadius) {
+ if (this.turnRadius[0] == turnRadius)
+ return;
this.turnRadius[0] = turnRadius;
firePropertyChanged(Plant3D.URIs.HasTurnRadius);
firePropertyChanged(Plant3D.URIs.HasTurnRadiusArray);
@RelatedSetValue(Plant3D.URIs.HasTurnRadiusArray)
@SetPropertyValue(Plant3D.URIs.HasTurnRadiusArray)
public void setTurnRadiusArray(double[] turnRadiusArray) {
- if (turnRadiusArray == null || turnRadiusArray.length == 0)
+ if (turnRadiusArray == null || turnRadiusArray.length == 0 || Arrays.equals(this.turnRadius, turnRadiusArray))
return;
this.turnRadius = turnRadiusArray;
firePropertyChanged(Plant3D.URIs.HasTurnRadiusArray);
@RelatedSetValue(Plant3D.URIs.HasPipeDiameter)
@SetPropertyValue(Plant3D.URIs.HasPipeDiameter)
public void setPipeDiameter(double pipeDiameter) {
- this.pipeDiameter = pipeDiameter;
+ if (Objects.equals(this.pipeDiameter, pipeDiameter))
+ return;
+
+ this.pipeDiameter = pipeDiameter;
firePropertyChanged(Plant3D.URIs.HasPipeDiameter);
}