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;
public class PipeRun extends P3DParentNode<IP3DNode> {
private double pipeDiameter = 0.1;
+ private double pipeThickness = 0.0;
private double[] turnRadius = new double[] {0.2};
@Override
@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 (this.pipeDiameter == pipeDiameter)
+ return;
+
+ this.pipeDiameter = pipeDiameter;
firePropertyChanged(Plant3D.URIs.HasPipeDiameter);
}
+ @RelatedGetValue(Plant3D.URIs.HasPipeThickness)
+ @GetPropertyValue(value=Plant3D.URIs.HasPipeThickness, name = "Wall Thickness")
+ public double getPipeThickness() {
+ return pipeThickness;
+ }
+
+ @RelatedSetValue(Plant3D.URIs.HasPipeThickness)
+ @SetPropertyValue(Plant3D.URIs.HasPipeThickness)
+ public void setPipeThickness(double pipeThickness) {
+ if (this.pipeThickness == pipeThickness)
+ return;
+
+ this.pipeThickness = pipeThickness;
+ firePropertyChanged(Plant3D.URIs.HasPipeThickness);
+ }
+
+ public double getInsideDiameter() {
+ return pipeDiameter - 2 * pipeThickness;
+ }
+
@RelatedElementsAdd(Plant3D.URIs.children)
public void addChild(PipelineComponent node) {
addNode(Plant3D.URIs.children,node);