]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java
Allow multiple radii for turns.
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / PipelineComponent.java
index 35df6121bb9575b30375619cad1b83f228ebbb49..c0feb668d183ff090dad98fa81ed844cce02ab0b 100644 (file)
@@ -467,12 +467,7 @@ public abstract class PipelineComponent extends GeometryNode {
                super.setOrientation(orientation);
                if (getControlPoint() != null) {
                        getControlPoint()._setWorldOrientation(getWorldOrientation());
-                       try {
-                               PipingRules.requestUpdate(getControlPoint());
-                       } catch (Exception e) {
-                               // TODO Auto-generated catch block
-                               e.printStackTrace();
-                       }       
+                       PipingRules.requestUpdate(getControlPoint());
                }
        }
        
@@ -483,12 +478,7 @@ public abstract class PipelineComponent extends GeometryNode {
                super.setPosition(position);
                if (getControlPoint() != null) {
                        getControlPoint()._setWorldPosition(getWorldPosition());
-                       try {
-                               PipingRules.requestUpdate(getControlPoint());
-                       } catch (Exception e) {
-                               // TODO Auto-generated catch block
-                               e.printStackTrace();
-                       }
+                       PipingRules.requestUpdate(getControlPoint());
                }
        }
        
@@ -514,7 +504,7 @@ public abstract class PipelineComponent extends GeometryNode {
                        case END:
                                return null;
                        case TURN: {
-                               double r = getPipeRun().getTurnRadius();
+                               double r = ((TurnComponent)this).getTurnRadius();
                                double a = pcp.getTurnAngle();
                                return a*r;
                        }
@@ -523,6 +513,24 @@ public abstract class PipelineComponent extends GeometryNode {
                }
        }
        
+       /**
+        * Returns diameter of the pipe
+        * @return
+        */
+       public Double getDiameter() {
+           return getPipeRun().getPipeDiameter();
+       }
+       
+       /**
+        * Returns secondary diameter of the pipe for size change components
+        * @return
+        */
+       public Double getDiameter2() {
+           if (getAlternativePipeRun() == null)
+               return null;
+           return getAlternativePipeRun().getPipeDiameter();
+       }
+       
        public void getEnds(Tuple3d p1, Tuple3d p2) {
                getControlPoint().getControlPointEnds(p1, p2);
        }
@@ -574,7 +582,7 @@ public abstract class PipelineComponent extends GeometryNode {
                case TURN: {
                        Vector3d loc = pcp.getRealPosition(PositionType.PREVIOUS);
                        
-                       double r = getPipeRun().getTurnRadius();
+                       double r = ((TurnComponent)this).getTurnRadius();
                        double a = pcp.getTurnAngle();
                        double pipeRadius = pcp.getPipeRun().getPipeDiameter() / 2;
                        
@@ -631,7 +639,7 @@ public abstract class PipelineComponent extends GeometryNode {
                        double r2 = getAlternativePipeRun().getPipeDiameter() / 2;
                        return pcp.getLength() * Math.PI * (r1*r1 + r1*r2 + r2*r2) / 4;
                case TURN: {
-                       double r = getPipeRun().getTurnRadius();
+                       double r = ((TurnComponent)this).getTurnRadius();
                        double a = pcp.getTurnAngle();
                        return r * a * Math.PI * pipeRadius * pipeRadius;
                }