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
\r
import org.jscience.physics.amount.Amount;\r
\r
-public class CylindricalChamber implements Chamber {\r
- \r
- private Amount<Length> length;\r
+public class CylindricalChamber implements Chamber, ICylindricalChamber {\r
\r
- private Amount<Length> iD;\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
public void setID(Amount<Length> id) {\r
iD = id;\r
}\r
+ \r
+ public Amount<Length> getOD() {\r
+ return oD;\r
+ }\r
+\r
+ public void setOD(Amount<Length> oD) {\r
+ 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