X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FPipeRun.java;h=36710e4fee17d16a5c10bed8f16b0059a38485e8;hb=b93886889422a3111b05a6944b3bcb2cdd8c416a;hp=9e163c2e79ba70669ca10e16a75b08c4a7596905;hpb=d00bd5522f6a92bbfeb2a72a7d28ba25c3f36fed;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipeRun.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipeRun.java index 9e163c2e..36710e4f 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipeRun.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipeRun.java @@ -29,7 +29,7 @@ import vtk.vtkRenderer; public class PipeRun extends P3DParentNode { private double pipeDiameter = 0.1; - private double turnRadius = 0.2; + private double[] turnRadius = new double[] {0.2}; @Override public void update(vtkRenderer ren) { @@ -54,15 +54,31 @@ public class PipeRun extends P3DParentNode { @RelatedGetValue(Plant3D.URIs.HasTurnRadius) @GetPropertyValue(value=Plant3D.URIs.HasTurnRadius, name = "Elbow radius") public double getTurnRadius() { - return turnRadius; + return turnRadius[0]; } @RelatedSetValue(Plant3D.URIs.HasTurnRadius) @SetPropertyValue(Plant3D.URIs.HasTurnRadius) public void setTurnRadius(double turnRadius) { - this.turnRadius = turnRadius; + this.turnRadius[0] = turnRadius; firePropertyChanged(Plant3D.URIs.HasTurnRadius); - } + firePropertyChanged(Plant3D.URIs.HasTurnRadiusArray); + } + + @RelatedGetValue(Plant3D.URIs.HasTurnRadiusArray) + @GetPropertyValue(value=Plant3D.URIs.HasTurnRadiusArray, name = "Elbow radius array") + public double[] getTurnRadiusArray() { + return turnRadius; + } + + @RelatedSetValue(Plant3D.URIs.HasTurnRadiusArray) + @SetPropertyValue(Plant3D.URIs.HasTurnRadiusArray) + public void setTurnRadiusArray(double[] turnRadiusArray) { + if (turnRadiusArray == null || turnRadiusArray.length == 0) + return; + this.turnRadius = turnRadiusArray; + firePropertyChanged(Plant3D.URIs.HasTurnRadiusArray); + } @RelatedGetValue(Plant3D.URIs.HasPipeDiameter) @GetPropertyValue(value=Plant3D.URIs.HasPipeDiameter, name = "Diameter") @@ -105,31 +121,38 @@ public class PipeRun extends P3DParentNode { Collections.sort(coll, new ComponentComparator()); return coll; } + private static String PIPECP = "pipecp"; + public void addChild(PipeControlPoint node) { - addNode("pipecp",node); + addNode(PIPECP,node); } public void remChild(PipeControlPoint node) { - removeNode("pipecp", node); + removeNode(PIPECP, node); } public void deattachChild(PipeControlPoint node) { - deattachNode("pipecp", node); + deattachNode(PIPECP, node); } public Collection getControlPoints() { Collection coll = new ArrayList(); - for (IG3DNode n : getNodes("pipecp")) { + for (IG3DNode n : getNodes(PIPECP)) { coll.add((PipeControlPoint)n); } return coll; } + public boolean equalSpecs(PipeRun other) { if (!MathTools.equals(pipeDiameter,other.pipeDiameter)) return false; - if (!MathTools.equals(turnRadius,other.turnRadius)) - return false; + if (turnRadius.length != other.turnRadius.length) + return false; + for (int i = 0; i < turnRadius.length; i++) { + if (!MathTools.equals(turnRadius[i],other.turnRadius[i])) + return false; + } return true; } @@ -158,4 +181,5 @@ public class PipeRun extends P3DParentNode { } } + }