X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FTurnComponent.java;h=794c53294a0197210674e6bb416aefa5b70401e2;hb=HEAD;hp=cd490a5d38aa9b7965e6f9b2daf3a9cf5d5f2bc3;hpb=3c9a6cf62d7a2c70f0f7b1cbfa25ba822291ac8c;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/TurnComponent.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/TurnComponent.java index cd490a5d..794c5329 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/TurnComponent.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/TurnComponent.java @@ -1,12 +1,17 @@ package org.simantics.plant3d.scenegraph; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.vecmath.Vector3d; import org.simantics.g3d.math.MathTools; +import org.simantics.g3d.property.annotations.GetComboProperty; +import org.simantics.g3d.property.annotations.GetComboPropertyValue; import org.simantics.g3d.property.annotations.GetPropertyValue; +import org.simantics.g3d.property.annotations.SetComboPropertyValue; import org.simantics.g3d.property.annotations.SetPropertyValue; import org.simantics.g3d.scenegraph.base.ParentNode; import org.simantics.g3d.tools.NodeTools; @@ -37,6 +42,9 @@ public class TurnComponent extends PipelineComponent { public void setType(String type) throws Exception{ this.type = type; controlPoint = ControlPointFactory.create(this); + syncNext(); + syncPrevious(); + syncBranch0(); } @Override @@ -110,15 +118,14 @@ public class TurnComponent extends PipelineComponent { return getControlPoint().getTurnAxis(); } - @GetPropertyValue(name="Turn Radius", value="TurnRadius", tabId = "Default") - public Double getTurnRadius() { + public Double getTurnRadius() { if (turnRadiusIndex != null) return getPipeRun().getTurnRadiusArray()[turnRadiusIndex]; return getPipeRun().getTurnRadiusArray()[0]; } @RelatedGetValue(Plant3D.URIs.HasTurnRadiusIndex) - @GetPropertyValue(name="Turn Radius Index", value=Plant3D.URIs.HasTurnRadiusIndex, tabId = "Default") + @GetComboPropertyValue(name="Turn Radius", value=Plant3D.URIs.HasTurnRadiusIndex, tabId = "Default") public Integer getTurnRadiusIndex() { // TODO: For backwards compatibility, we do not accept null values. @@ -129,11 +136,11 @@ public class TurnComponent extends PipelineComponent { } @RelatedSetValue(Plant3D.URIs.HasTurnRadiusIndex) - @SetPropertyValue(value=Plant3D.URIs.HasTurnRadiusIndex) + @SetComboPropertyValue(value=Plant3D.URIs.HasTurnRadiusIndex) public void setTurnRadiusIndex(Integer turnRadiusIndex) { if (this.turnRadiusIndex == turnRadiusIndex) return; - if (turnRadiusIndex == null) + if (turnRadiusIndex == null || turnRadiusIndex < 0) return; if (turnRadiusIndex != null && getPipeRun() != null) { if (getPipeRun().getTurnRadiusArray().length <= turnRadiusIndex) @@ -144,6 +151,15 @@ public class TurnComponent extends PipelineComponent { PipingRules.requestUpdate(getControlPoint()); } + @GetComboProperty(value=Plant3D.URIs.HasTurnRadiusIndex) + public List _getTurnRadii() { + List values = new ArrayList(); + for (double d : getPipeRun().getTurnRadiusArray()) + values.add(d); + return values; + } + + @RelatedGetValue(Plant3D.URIs.HasRotationAngle) @GetPropertyValue(name="Rotation Angle", value=Plant3D.URIs.HasRotationAngle, tabId = "Default") public Double getRotationAngle() {