X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fgeometry%2FElbowGeometryProvider.java;h=d4428e495ae91fc615f6c113ce89892d2154e5b8;hb=9817ec2aa0d2afada7024d2aba0cd7562de317ed;hp=ead9f0f52292a0e9d00aa5d3e2f0cdfa8403dde7;hpb=86739231beb0535bde4abae49d2011e3a042810b;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/geometry/ElbowGeometryProvider.java b/org.simantics.plant3d/src/org/simantics/plant3d/geometry/ElbowGeometryProvider.java index ead9f0f5..d4428e49 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/geometry/ElbowGeometryProvider.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/geometry/ElbowGeometryProvider.java @@ -27,6 +27,8 @@ public class ElbowGeometryProvider extends BuiltinMeshProvider { // @Override public Collection getModel() throws Exception { + if (radius < MathTools.NEAR_ZERO || turnRadius < MathTools.NEAR_ZERO) + return Collections.emptyList(); double t = Math.tan((Math.PI - turnAngle) * 0.5); double R = 0.0; if (t > MathTools.NEAR_ZERO) @@ -38,6 +40,8 @@ public class ElbowGeometryProvider extends BuiltinMeshProvider { // @Override public Mesh getMesh() { + if (radius < MathTools.NEAR_ZERO || turnRadius < MathTools.NEAR_ZERO) + return null; double t = Math.tan((Math.PI - turnAngle) * 0.5); double R = 0.0; if (t > MathTools.NEAR_ZERO) @@ -60,6 +64,15 @@ public class ElbowGeometryProvider extends BuiltinMeshProvider { if (radius < MathTools.NEAR_ZERO) radius = MathTools.NEAR_ZERO; } + + @Override + public void updateCalculatedProperties(Map returnProps) { + double t = Math.tan((Math.PI - turnAngle) * 0.5); + double R = 0.0; + if (t > MathTools.NEAR_ZERO) + R = turnRadius / t; + returnProps.put("length", R); + } }