Implemented support for bulk heads. Move setting Length from BodyComponent to RocketComponent (since that is where length is defined). Added Materials handling to StructuralComponent. Added OuterDiameter and InnerDiameter to RadiusRingComponent.
This commit is contained in:
parent
d1c83cb9b4
commit
5d6da040b2
@ -52,10 +52,6 @@ public abstract class BodyComponent extends ExternalComponent {
|
||||
|
||||
@Override
|
||||
protected void loadFromPreset(ComponentPreset preset) {
|
||||
if ( preset.has(ComponentPreset.LENGTH) ) {
|
||||
this.setLength(preset.get(ComponentPreset.LENGTH));
|
||||
}
|
||||
|
||||
super.loadFromPreset(preset);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package net.sf.openrocket.rocketcomponent;
|
||||
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
import net.sf.openrocket.preset.ComponentPreset.Type;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
|
||||
|
||||
@ -12,6 +14,11 @@ public class Bulkhead extends RadiusRingComponent {
|
||||
setLength(0.002);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getPresetType() {
|
||||
return ComponentPreset.Type.BULK_HEAD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInnerRadius() {
|
||||
return 0;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.sf.openrocket.rocketcomponent;
|
||||
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
import net.sf.openrocket.util.Coordinate;
|
||||
import net.sf.openrocket.util.MathUtil;
|
||||
|
||||
@ -16,6 +17,22 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
|
||||
protected double outerRadius = 0;
|
||||
protected double innerRadius = 0;
|
||||
|
||||
@Override
|
||||
protected void loadFromPreset(ComponentPreset preset) {
|
||||
super.loadFromPreset(preset);
|
||||
if ( preset.has(ComponentPreset.OUTER_DIAMETER)) {
|
||||
this.outerRadius = preset.get(ComponentPreset.OUTER_DIAMETER) / 2.0;
|
||||
this.outerRadiusAutomatic = false;
|
||||
}
|
||||
this.innerRadiusAutomatic = false;
|
||||
if ( preset.has(ComponentPreset.INNER_DIAMETER)) {
|
||||
this.innerRadius = preset.get(ComponentPreset.INNER_DIAMETER) / 2.0;
|
||||
}
|
||||
|
||||
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getOuterRadius() {
|
||||
if (outerRadiusAutomatic && getParent() instanceof RadialParent) {
|
||||
|
@ -745,6 +745,9 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab
|
||||
* @param preset the preset to load from
|
||||
*/
|
||||
protected void loadFromPreset(ComponentPreset preset) {
|
||||
if ( preset.has(ComponentPreset.LENGTH) ) {
|
||||
this.length = preset.get(ComponentPreset.LENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.sf.openrocket.rocketcomponent;
|
||||
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
|
||||
public abstract class StructuralComponent extends InternalComponent {
|
||||
@ -12,6 +13,30 @@ public abstract class StructuralComponent extends InternalComponent {
|
||||
material = Application.getPreferences().getDefaultComponentMaterial(this.getClass(), Material.Type.BULK);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadFromPreset(ComponentPreset preset) {
|
||||
super.loadFromPreset(preset);
|
||||
if ( preset.has(ComponentPreset.MATERIAL ) ) {
|
||||
Material mat = preset.get(ComponentPreset.MATERIAL);
|
||||
if ( mat != null ) {
|
||||
this.material = mat;
|
||||
} /*
|
||||
TODO -
|
||||
else if (c.isMassOverridden()) {
|
||||
double mass = c.getOverrideMass();
|
||||
double volume = getComponentVolume();
|
||||
double density;
|
||||
if (volume > 0.00001) {
|
||||
density = mass / volume;
|
||||
} else {
|
||||
density = 1000;
|
||||
}
|
||||
mat = Material.newMaterial(Type.BULK, mat.getName(), density, true);
|
||||
setMaterial(mat);
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
public final Material getMaterial() {
|
||||
return material;
|
||||
|
Loading…
x
Reference in New Issue
Block a user