From 611d808c77c1ef1a96bfd4639aa59bcf6a8a9eb6 Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Thu, 23 Apr 2009 15:54:14 +0000 Subject: [PATCH] Organized grain package added moonburner --- .../rocketry/motorsim/grain/Moonburner.java | 94 +++++++++++++++++++ .../grain/{ => util}/BurningShape.java | 2 +- .../grain/{ => util}/ExtrudedShapeGrain.java | 9 +- .../grain/{ => util}/RotatedShapeGrain.java | 4 +- .../motorsim/grain/{ => util}/ShapeUtil.java | 2 +- .../motorsim/motors/example/CSlot.java | 2 +- .../motorsim/motors/example/EndBurner.java | 2 +- .../rocketry/motorsim/test/ShapeUtilTest.java | 2 +- 8 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 src/com/billkuker/rocketry/motorsim/grain/Moonburner.java rename src/com/billkuker/rocketry/motorsim/grain/{ => util}/BurningShape.java (93%) rename src/com/billkuker/rocketry/motorsim/grain/{ => util}/ExtrudedShapeGrain.java (91%) rename src/com/billkuker/rocketry/motorsim/grain/{ => util}/RotatedShapeGrain.java (94%) rename src/com/billkuker/rocketry/motorsim/grain/{ => util}/ShapeUtil.java (95%) diff --git a/src/com/billkuker/rocketry/motorsim/grain/Moonburner.java b/src/com/billkuker/rocketry/motorsim/grain/Moonburner.java new file mode 100644 index 0000000..66f61ab --- /dev/null +++ b/src/com/billkuker/rocketry/motorsim/grain/Moonburner.java @@ -0,0 +1,94 @@ +package com.billkuker.rocketry.motorsim.grain; + +import java.awt.Shape; +import java.awt.geom.Ellipse2D; +import java.beans.PropertyVetoException; + +import javax.measure.quantity.Length; +import javax.measure.unit.SI; + +import org.jscience.physics.amount.Amount; + +import com.billkuker.rocketry.motorsim.grain.util.BurningShape; +import com.billkuker.rocketry.motorsim.grain.util.ExtrudedShapeGrain; +import com.billkuker.rocketry.motorsim.visual.Editor; +import com.billkuker.rocketry.motorsim.visual.GrainPanel; + +public class Moonburner extends ExtrudedShapeGrain { + + private Amount oD = Amount.valueOf(30, SI.MILLIMETER); + private Amount iD = Amount.valueOf(10, SI.MILLIMETER); + private Amount coreOffset = Amount.valueOf(0, SI.MILLIMETER); + + public Moonburner(){ + try { + setLength(Amount.valueOf(70, SI.MILLIMETER)); + } catch (PropertyVetoException e) { + e.printStackTrace(); + } + generateGeometry(); + } + + public Amount getOD() { + return oD; + } + + public void setOD(Amount od) throws PropertyVetoException { + if (od.equals(this.oD)) + return; + fireVetoableChange("od", this.oD, od); + Amount old = this.oD; + this.oD = od; + generateGeometry(); + firePropertyChange("OD", old, oD); + } + + public Amount getID() { + return iD; + } + + public void setID(Amount id) throws PropertyVetoException { + if (id.equals(this.iD)) + return; + fireVetoableChange("id", this.iD, id); + Amount old = this.iD; + iD = id; + generateGeometry(); + firePropertyChange("ID", old, iD); + } + + public Amount getCoreOffset() { + return coreOffset; + } + + public void setCoreOffset(Amount coreOffset) + throws PropertyVetoException { + if (coreOffset.equals(this.coreOffset)) + return; + fireVetoableChange("coreOffset", this.coreOffset, coreOffset); + Amount old = this.coreOffset; + this.coreOffset = coreOffset; + generateGeometry(); + firePropertyChange("coreOffset", old, this.coreOffset); + } + + private void generateGeometry() { + double odmm = oD.doubleValue(SI.MILLIMETER); + double idmm = iD.doubleValue(SI.MILLIMETER); + double offmm = coreOffset.doubleValue(SI.MILLIMETER); + xsection = new BurningShape(); + Shape outside = new Ellipse2D.Double(0, 0, odmm, odmm); + xsection.add(outside); + xsection.inhibit(outside); + + xsection.subtract(new Ellipse2D.Double(odmm/2 - idmm/2 + offmm, odmm/2 - idmm/2 + offmm, idmm, idmm)); + webThickness = null; + } + + public static void main(String args[]) throws Exception { + Moonburner e = new Moonburner(); + new Editor(e).showAsWindow(); + new GrainPanel(e).showAsWindow(); + } + +} diff --git a/src/com/billkuker/rocketry/motorsim/grain/BurningShape.java b/src/com/billkuker/rocketry/motorsim/grain/util/BurningShape.java similarity index 93% rename from src/com/billkuker/rocketry/motorsim/grain/BurningShape.java rename to src/com/billkuker/rocketry/motorsim/grain/util/BurningShape.java index c31a9ee..c17c667 100644 --- a/src/com/billkuker/rocketry/motorsim/grain/BurningShape.java +++ b/src/com/billkuker/rocketry/motorsim/grain/util/BurningShape.java @@ -1,4 +1,4 @@ -package com.billkuker.rocketry.motorsim.grain; +package com.billkuker.rocketry.motorsim.grain.util; import java.awt.Shape; import java.awt.geom.Area; diff --git a/src/com/billkuker/rocketry/motorsim/grain/ExtrudedShapeGrain.java b/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java similarity index 91% rename from src/com/billkuker/rocketry/motorsim/grain/ExtrudedShapeGrain.java rename to src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java index ede26b6..133ac71 100644 --- a/src/com/billkuker/rocketry/motorsim/grain/ExtrudedShapeGrain.java +++ b/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java @@ -1,4 +1,4 @@ -package com.billkuker.rocketry.motorsim.grain; +package com.billkuker.rocketry.motorsim.grain.util; import java.awt.Rectangle; import java.awt.Shape; @@ -17,10 +17,11 @@ import sun.reflect.ReflectionFactory.GetReflectionFactoryAction; import com.billkuker.rocketry.motorsim.Grain; import com.billkuker.rocketry.motorsim.MotorPart; +import com.billkuker.rocketry.motorsim.grain.ExtrudedGrain; import com.billkuker.rocketry.motorsim.visual.Editor; import com.billkuker.rocketry.motorsim.visual.GrainPanel; -public class ExtrudedShapeGrain extends ExtrudedGrain { +public abstract class ExtrudedShapeGrain extends ExtrudedGrain { public static ExtrudedShapeGrain DEFAULT_GRAIN = new ExtrudedShapeGrain(){ { @@ -39,10 +40,8 @@ public class ExtrudedShapeGrain extends ExtrudedGrain { }; protected BurningShape xsection = new BurningShape(); - - Amount rStep; - Amount webThickness; + protected Amount webThickness; public Amount surfaceArea(Amount regression) { Amount zero = Amount.valueOf(0, Area.UNIT); diff --git a/src/com/billkuker/rocketry/motorsim/grain/RotatedShapeGrain.java b/src/com/billkuker/rocketry/motorsim/grain/util/RotatedShapeGrain.java similarity index 94% rename from src/com/billkuker/rocketry/motorsim/grain/RotatedShapeGrain.java rename to src/com/billkuker/rocketry/motorsim/grain/util/RotatedShapeGrain.java index 0e45060..18f0f62 100644 --- a/src/com/billkuker/rocketry/motorsim/grain/RotatedShapeGrain.java +++ b/src/com/billkuker/rocketry/motorsim/grain/util/RotatedShapeGrain.java @@ -1,4 +1,4 @@ -package com.billkuker.rocketry.motorsim.grain; +package com.billkuker.rocketry.motorsim.grain.util; import java.awt.Rectangle; import java.awt.Shape; @@ -20,7 +20,7 @@ import com.billkuker.rocketry.motorsim.Grain; import com.billkuker.rocketry.motorsim.visual.Editor; import com.billkuker.rocketry.motorsim.visual.GrainPanel; -public class RotatedShapeGrain implements Grain { +public abstract class RotatedShapeGrain implements Grain { private static Logger log = Logger.getLogger(RotatedShapeGrain.class); diff --git a/src/com/billkuker/rocketry/motorsim/grain/ShapeUtil.java b/src/com/billkuker/rocketry/motorsim/grain/util/ShapeUtil.java similarity index 95% rename from src/com/billkuker/rocketry/motorsim/grain/ShapeUtil.java rename to src/com/billkuker/rocketry/motorsim/grain/util/ShapeUtil.java index 5dbb1ec..6c8945b 100644 --- a/src/com/billkuker/rocketry/motorsim/grain/ShapeUtil.java +++ b/src/com/billkuker/rocketry/motorsim/grain/util/ShapeUtil.java @@ -1,4 +1,4 @@ -package com.billkuker.rocketry.motorsim.grain; +package com.billkuker.rocketry.motorsim.grain.util; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; diff --git a/src/com/billkuker/rocketry/motorsim/motors/example/CSlot.java b/src/com/billkuker/rocketry/motorsim/motors/example/CSlot.java index bcb71eb..ec8b037 100644 --- a/src/com/billkuker/rocketry/motorsim/motors/example/CSlot.java +++ b/src/com/billkuker/rocketry/motorsim/motors/example/CSlot.java @@ -13,7 +13,7 @@ import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle; import com.billkuker.rocketry.motorsim.CylindricalChamber; import com.billkuker.rocketry.motorsim.Motor; import com.billkuker.rocketry.motorsim.fuel.KNSU; -import com.billkuker.rocketry.motorsim.grain.ExtrudedShapeGrain; +import com.billkuker.rocketry.motorsim.grain.util.ExtrudedShapeGrain; public class CSlot extends Motor { public CSlot() { diff --git a/src/com/billkuker/rocketry/motorsim/motors/example/EndBurner.java b/src/com/billkuker/rocketry/motorsim/motors/example/EndBurner.java index 180b3d5..86a132b 100644 --- a/src/com/billkuker/rocketry/motorsim/motors/example/EndBurner.java +++ b/src/com/billkuker/rocketry/motorsim/motors/example/EndBurner.java @@ -11,7 +11,7 @@ import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle; import com.billkuker.rocketry.motorsim.CylindricalChamber; import com.billkuker.rocketry.motorsim.Motor; import com.billkuker.rocketry.motorsim.fuel.KNSU; -import com.billkuker.rocketry.motorsim.grain.RotatedShapeGrain; +import com.billkuker.rocketry.motorsim.grain.util.RotatedShapeGrain; public class EndBurner extends Motor { public EndBurner() { diff --git a/src/com/billkuker/rocketry/motorsim/test/ShapeUtilTest.java b/src/com/billkuker/rocketry/motorsim/test/ShapeUtilTest.java index 8a413b0..7971220 100644 --- a/src/com/billkuker/rocketry/motorsim/test/ShapeUtilTest.java +++ b/src/com/billkuker/rocketry/motorsim/test/ShapeUtilTest.java @@ -7,7 +7,7 @@ import java.awt.geom.Rectangle2D; import org.jscience.physics.amount.Amount; import org.junit.Test; -import com.billkuker.rocketry.motorsim.grain.ShapeUtil; +import com.billkuker.rocketry.motorsim.grain.util.ShapeUtil; public class ShapeUtilTest extends RocketTest{ -- 2.47.2