Add editable intergrain spacing
authorBill Kuker <bkuker@billkuker.com>
Mon, 8 Nov 2010 15:00:31 +0000 (15:00 +0000)
committerBill Kuker <bkuker@billkuker.com>
Mon, 8 Nov 2010 15:00:31 +0000 (15:00 +0000)
src/com/billkuker/rocketry/motorsim/grain/MultiGrain.java

index 7d836d57b8a84f6ab59e413fd9784395022a4923..8966bf2b5aa470ca6fdce6a0f3228e1b325abd1f 100644 (file)
@@ -51,6 +51,8 @@ public class MultiGrain implements Grain, Grain.Composite, PropertyChangeListene
        private double flush = 1;\r
        private Amount<Length> delay = Amount.valueOf(0, SI.MILLIMETER);\r
        \r
+       private Amount<Length> spacing = Amount.valueOf(5, SI.MILLIMETER);\r
+\r
        public MultiGrain(){\r
        }\r
        \r
@@ -59,6 +61,14 @@ public class MultiGrain implements Grain, Grain.Composite, PropertyChangeListene
                setGrain(g);\r
        }\r
        \r
+       public Amount<Length> getSpacing() {\r
+               return spacing;\r
+       }\r
+\r
+       public void setSpacing(Amount<Length> spacing) {\r
+               this.spacing = spacing;\r
+       }\r
+       \r
        private Amount<Length> getAdjustedRegression(Amount<Length> regression, int grain){\r
                return regression.minus(delay.times(grain)).times(Math.pow(flush,grain));\r
        }\r
@@ -95,7 +105,7 @@ public class MultiGrain implements Grain, Grain.Composite, PropertyChangeListene
                for ( int i = 0 ; i < count ; i++ ){\r
                        java.awt.geom.Area g = grain.getSideView(getAdjustedRegression(regression, i));\r
                        ret.add(g);     \r
-                       ret.transform(AffineTransform.getTranslateInstance(0, -(unburntBounds.getHeight() + 10)));\r
+                       ret.transform(AffineTransform.getTranslateInstance(0, -(unburntBounds.getHeight() + spacing.doubleValue(SI.MILLIMETER))));\r
                }\r
                return ret;\r
        }\r