+ public Double getTurnRadius() {
+ if (turnRadiusIndex != null)
+ return getPipeRun().getTurnRadiusArray()[turnRadiusIndex];
+ return getPipeRun().getTurnRadiusArray()[0];
+ }
+
+ @RelatedGetValue(Plant3D.URIs.HasTurnRadiusIndex)
+ @GetComboPropertyValue(name="Turn Radius", value=Plant3D.URIs.HasTurnRadiusIndex, tabId = "Default")
+ public Integer getTurnRadiusIndex()
+ {
+ // TODO: For backwards compatibility, we do not accept null values.
+ // One development path would allow null index, and setting custom turn radius for the component.
+ if (turnRadiusIndex == null)
+ return 0;
+ return turnRadiusIndex;
+ }
+
+ @RelatedSetValue(Plant3D.URIs.HasTurnRadiusIndex)
+ @SetComboPropertyValue(value=Plant3D.URIs.HasTurnRadiusIndex)
+ public void setTurnRadiusIndex(Integer turnRadiusIndex) {
+ if (this.turnRadiusIndex == turnRadiusIndex)
+ return;
+ if (turnRadiusIndex == null)
+ return;
+ if (turnRadiusIndex != null && getPipeRun() != null) {
+ if (getPipeRun().getTurnRadiusArray().length <= turnRadiusIndex)
+ return;
+ }
+ this.turnRadiusIndex = turnRadiusIndex;
+ firePropertyChanged(Plant3D.URIs.HasTurnRadiusIndex);
+ PipingRules.requestUpdate(getControlPoint());
+ }
+
+ @GetComboProperty(value=Plant3D.URIs.HasTurnRadiusIndex)
+ public List<Double> _getTurnRadii() {
+ List<Double> values = new ArrayList<Double>();
+ for (double d : getPipeRun().getTurnRadiusArray())
+ values.add(d);
+ return values;
+ }
+
+