--- /dev/null
+#Fat Jar Configuration File\r
+#Thu Apr 16 10:44:22 EDT 2009\r
+onejar.license.required=true\r
+manifest.classpath=\r
+manifest.removesigners=true\r
+onejar.checkbox=false\r
+jarname=MotorSim-0.1.jar\r
+manifest.mergeall=true\r
+manifest.mainclass=com.billkuker.rocketry.motorsim.visual.CrappyEditor\r
+manifest.file=<createnew>\r
+jarname.isextern=false\r
+onejar.expand=\r
+excludes=\r
+includes=\r
-#Thu Apr 09 17:28:08 EDT 2009\r
+#Thu Apr 16 13:23:51 EDT 2009\r
eclipse.preferences.version=1\r
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\r
-org.eclipse.jdt.core.compiler.compliance=1.6\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
org.eclipse.jdt.core.compiler.debug.lineNumber=generate\r
org.eclipse.jdt.core.compiler.debug.localVariable=generate\r
org.eclipse.jdt.core.compiler.debug.sourceFile=generate\r
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
-org.eclipse.jdt.core.compiler.source=1.6\r
+org.eclipse.jdt.core.compiler.source=1.5\r
-#Thu Apr 09 17:28:08 EDT 2009\r
+#Thu Apr 16 13:17:57 EDT 2009\r
eclipse.preferences.version=1\r
internal.default.compliance=default\r
setMaximum(100);\r
addChangeListener(new ChangeListener(){\r
{ setValue(0); }\r
- @Override\r
public void stateChanged(ChangeEvent arg0) {\r
t.r = getValue();\r
t.repaint();\r
private double efficiency = 1.0;\r
\r
\r
- @Override\r
public Amount<Area> throatArea() {\r
return throatDiameter.divide(2).pow(2).times(Math.PI).to(Area.UNIT);\r
}\r
firePropertyChange("exitDiameter", old, exitDiameter);\r
}\r
\r
- @Override\r
public Amount<Force> thrust(Amount<Pressure> Po, Amount<Pressure> Pe, Amount<Pressure> Patm, final double k ){\r
double cF = thrustCoefficient(Po, Pe, Patm, k);\r
return Po.times(throatArea()).times(cF).to(Force.UNIT);\r
\r
private Amount<Length> iD;\r
\r
- @Override\r
public Amount<Pressure> burstPressure() {\r
return null;\r
}\r
\r
- @Override\r
public Amount<Volume> chamberVolume() {\r
return iD.divide(2).pow(2).times(Math.PI).times(length).to(SI.CUBIC_METRE);\r
}\r
\r
vcs.addVetoableChangeListener(new VetoableChangeListener(){\r
@SuppressWarnings("unchecked")\r
- @Override\r
public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException {\r
if ( evt.getNewValue() instanceof Amount ){\r
try {\r
return Amount.valueOf(1841, 0, SI.KILOGRAM.divide(SI.METER.pow(3))).to(VolumetricDensity.UNIT);\r
}\r
\r
- @Override\r
public CombustionProduct getCombustionProduct() {\r
return new CombustionProduct(){\r
\r
- @Override\r
public Amount<Temperature> idealCombustionTemperature() {\r
return Amount.valueOf(1600, SI.KELVIN);\r
}\r
\r
- @Override\r
public Amount<MolarWeight> effectiveMolarWeight() {\r
return Amount.valueOf("39.9 kg/kmol").to(MolarWeight.UNIT);\r
}\r
\r
- @Override\r
public double ratioOfSpecificHeats() {\r
return 1.1361;\r
}\r
\r
- @Override\r
public double ratioOfSpecificHeats2Phase() {\r
return 1.042;\r
}\r
public CombustionProduct getCombustionProduct(){\r
return new CombustionProduct(){\r
\r
- @Override\r
public Amount<Temperature> idealCombustionTemperature() {\r
return Amount.valueOf(1720, SI.KELVIN);\r
}\r
\r
- @Override\r
public Amount<MolarWeight> effectiveMolarWeight() {\r
return Amount.valueOf("41.98 kg/kmol").to(MolarWeight.UNIT);\r
}\r
\r
- @Override\r
public double ratioOfSpecificHeats() {\r
return 1.133;\r
}\r
\r
- @Override\r
public double ratioOfSpecificHeats2Phase() {\r
return 1.044;\r
}\r
this.t = t;\r
}\r
\r
- @Override\r
public Amount<Velocity> burnRate(Amount<Pressure> pressure) {\r
\r
\r
return Amount.valueOf(0, Velocity.UNIT);\r
}\r
\r
- @Override\r
public abstract Amount<VolumetricDensity> idealDensity();\r
\r
}\r
innerSurfaceInhibited = in;\r
}\r
\r
- @Override\r
public Amount<Area> surfaceArea(Amount<Length> regression) {\r
Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
if ( regression.isLessThan(zero) )\r
return total;\r
}\r
\r
- @Override\r
public Amount<Volume> volume(Amount<Length> regression) {\r
Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
\r
\r
}\r
\r
- @Override\r
public Amount<Length> webThickness() {\r
if ( innerSurfaceInhibited && outerSurfaceInhibited ){\r
return oD; //TODO gotta move this to the end\r
return iD;\r
}\r
\r
- @Override\r
public java.awt.geom.Area getCrossSection(Amount<Length> regression){\r
Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
if ( regression.isLessThan(zero) )\r
\r
Amount<Length> webThickness;\r
\r
- @Override\r
public Amount<Area> surfaceArea(Amount<Length> regression) {\r
Amount<Area> zero = Amount.valueOf(0, Area.UNIT);\r
\r
xSection.times(2)).to(Area.UNIT);\r
}\r
\r
- @Override\r
public Amount<Volume> volume(Amount<Length> regression) {\r
Amount<Volume> zero = Amount.valueOf(0, Volume.UNIT);\r
\r
}\r
\r
\r
- @Override\r
public Amount<Length> webThickness() {\r
if ( webThickness != null )\r
return webThickness;\r
return webThickness;\r
}\r
\r
- @Override\r
public java.awt.geom.Area getCrossSection(Amount<Length> regression) {\r
return xsection.getShape(regression);\r
}\r
\r
- @Override\r
public java.awt.geom.Area getSideView(Amount<Length> regression) {\r
java.awt.geom.Area res = new java.awt.geom.Area();\r
\r
\r
Amount<Length> web = null;\r
\r
- @Override\r
public Area getCrossSection(Amount<Length> regression) {\r
Area ret = new Area();\r
for( Area a : ShapeUtil.separate(shape.getShape(regression))){\r
return ret;\r
}\r
\r
- @Override\r
public Area getSideView(Amount<Length> regression) {\r
Area a = new Area();\r
Area reg = shape.getShape(regression);\r
return a;\r
}\r
\r
- @Override\r
public Amount<javax.measure.quantity.Area> surfaceArea(\r
Amount<Length> regression) {\r
Amount<javax.measure.quantity.Area> zero = Amount.valueOf(0, javax.measure.quantity.Area.UNIT);\r
\r
}\r
\r
- @Override\r
public Amount<Volume> volume(Amount<Length> regression) {\r
Area squared = new Area(square(shape.getShape(regression)));\r
Amount<javax.measure.quantity.Area> sum = Amount.valueOf(0, SI.SQUARE_METRE);\r
return v;\r
}\r
\r
- @Override\r
public Amount<Length> webThickness() {\r
if (web != null)\r
return web;\r
setValue(0);\r
}\r
\r
- @Override\r
public void stateChanged(ChangeEvent e) {\r
double t = ((SL)e.getSource()).getValue();\r
displayedTime = burn.burnTime().divide(STEPS).times(t);\r
}\r
\r
\r
- @Override\r
public Iterator<Amount<X>> iterator() {\r
return new Iterator<Amount<X>>(){\r
Amount<X> current = low;\r
\r
- @Override\r
public boolean hasNext() {\r
return current.isLessThan(high.plus(delta));\r
}\r
\r
- @Override\r
public Amount<X> next() {\r
Amount<X> ret = current;\r
current = current.plus(delta);\r
return ret;\r
}\r
- @Override\r
+ \r
public final void remove() {\r
throw new UnsupportedOperationException("Chart domain iterators are not modifiable.");\r
}\r
\r
addPropertySheetChangeListener(new PropertyChangeListener() {\r
\r
- @Override\r
public void propertyChange(PropertyChangeEvent evt) {\r
// When something changes just update the\r
// object, I want the changes to be immediate.\r
\r
if ( g instanceof MotorPart ){\r
((MotorPart)g).addPropertyChangeListener(new PropertyChangeListener(){\r
- @Override\r
public void propertyChange(PropertyChangeEvent evt) {\r
repaint();\r
area.setDomain(area.new IntervalDomain(Amount.valueOf(0, SI.MILLIMETER), grain.webThickness()));\r
setValue(0);\r
}\r
\r
- @Override\r
public void stateChanged(ChangeEvent e) {\r
double r = ((SL)e.getSource()).getValue();\r
\r
\r
if ( n instanceof MotorPart ){\r
((MotorPart)n).addPropertyChangeListener(new PropertyChangeListener(){\r
- @Override\r
public void propertyChange(PropertyChangeEvent evt) {\r
repaint();\r
}\r