Add an interface to allow export of pvc motors
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / CylindricalChamber.java
index 14e97aca2487893cdfb2927070e31f966056d5f3..8405456ac5c04069e5200c86bea2e95b15186cfc 100644 (file)
@@ -1,5 +1,9 @@
 package com.billkuker.rocketry.motorsim;\r
 \r
+import java.awt.Shape;\r
+import java.awt.geom.Area;\r
+import java.awt.geom.Rectangle2D;\r
+\r
 import javax.measure.quantity.Length;\r
 import javax.measure.quantity.Pressure;\r
 import javax.measure.quantity.Volume;\r
@@ -7,13 +11,13 @@ import javax.measure.unit.SI;
 \r
 import org.jscience.physics.amount.Amount;\r
 \r
-public class CylindricalChamber implements Chamber {\r
+public class CylindricalChamber implements Chamber, ICylindricalChamber {\r
        \r
        private Amount<Length> length = Amount.valueOf(200, SI.MILLIMETER);\r
        private Amount<Length> oD = Amount.valueOf(31, SI.MILLIMETER);\r
        private Amount<Length> iD = Amount.valueOf(30, SI.MILLIMETER);\r
 \r
-       public Amount<Pressure> burstPressure() {\r
+       public Amount<Pressure> getBurstPressure() {\r
                return null;\r
        }\r
 \r
@@ -45,4 +49,21 @@ public class CylindricalChamber implements Chamber {
                this.oD = oD;\r
        }\r
 \r
+       @Override\r
+       public Shape chamberShape() {\r
+               double ir = iD.doubleValue(SI.MILLIMETER) / 2;\r
+               double or = oD.doubleValue(SI.MILLIMETER) / 2;\r
+               double lenmm = length.doubleValue(SI.MILLIMETER);\r
+               double thick = or-ir;\r
+\r
+               Rectangle2D.Double l,r,t;\r
+               l = new Rectangle2D.Double(-or,0,thick,lenmm);\r
+               r = new Rectangle2D.Double(ir, 0, thick, lenmm);\r
+               t = new Rectangle2D.Double(-or,0,or*2,thick);\r
+               Area a = new Area(l);\r
+               a.add(new Area(r));\r
+               a.add(new Area(t));\r
+               return a;\r
+       }\r
+\r
 }\r