From 6e436d74d6afd92440750d8d62e007cdc579a88e Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Mon, 8 Nov 2010 15:17:07 +0000 Subject: [PATCH] Closed TODO to shift grain based on ends inhibited --- .../motorsim/grain/util/ExtrudedShapeGrain.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java b/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java index 513f5ca..d734334 100644 --- a/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java +++ b/src/com/billkuker/rocketry/motorsim/grain/util/ExtrudedShapeGrain.java @@ -2,6 +2,7 @@ package com.billkuker.rocketry.motorsim.grain.util; import java.awt.Rectangle; import java.awt.Shape; +import java.awt.geom.AffineTransform; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; @@ -124,12 +125,19 @@ public abstract class ExtrudedShapeGrain extends ExtrudedGrain { double rLenmm = rLen.doubleValue(SI.MILLIMETER); - //TODO Shift up or down based on burning ends for( java.awt.geom.Area a : ShapeUtil.separate(getCrossSection(regression))){ Rectangle2D bounds = a.getBounds2D(); Rectangle2D side = new Rectangle2D.Double(bounds.getMinX(), -rLenmm/2.0, bounds.getWidth(), rLenmm); res.add(new java.awt.geom.Area(side)); } + + //Shift up or down based on burning ends + if ( isForeEndInhibited() ){ + res.transform(AffineTransform.getTranslateInstance(0, +rLenmm/2.0)); + } + if ( isAftEndInhibited() ){ + res.transform(AffineTransform.getTranslateInstance(0, -rLenmm/2.0)); + } return res; } -- 2.30.2