X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Frocketcomponent%2FLaunchLug.java;h=437094368d7483486b2936c596846b938d4d5d19;hb=4095cb0dd61a75b7b6b0bd811f8e803af5b27919;hp=5614e07710c1cd0edfa1ed07818ce9e9684b181d;hpb=da1c2a7f13fc0e3e84f36981a3bb996f2254f766;p=debian%2Fopenrocket diff --git a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java index 5614e077..43709436 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java +++ b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Collection; 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; import net.sf.openrocket.util.Coordinate; import net.sf.openrocket.util.MathUtil; @@ -43,6 +45,7 @@ public class LaunchLug extends ExternalComponent implements Coaxial { return; this.radius = radius; this.thickness = Math.min(this.thickness, this.radius); + clearPreset(); fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } @@ -65,6 +68,7 @@ public class LaunchLug extends ExternalComponent implements Coaxial { if (MathUtil.equals(this.thickness, thickness)) return; this.thickness = MathUtil.clamp(thickness, 0, radius); + clearPreset(); fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } @@ -109,6 +113,29 @@ public class LaunchLug extends ExternalComponent implements Coaxial { + @Override + protected void loadFromPreset(ComponentPreset preset) { + if ( preset.has(ComponentPreset.OUTER_DIAMETER) ) { + double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER); + this.radius = outerDiameter/2.0; + if ( preset.has(ComponentPreset.INNER_DIAMETER) ) { + double innerDiameter = preset.get(ComponentPreset.INNER_DIAMETER); + this.thickness = (outerDiameter-innerDiameter) / 2.0; + } + } + + super.loadFromPreset(preset); + + fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); + } + + + @Override + public Type getPresetType() { + return ComponentPreset.Type.LAUNCH_LUG; + } + + @Override public Coordinate[] shiftCoordinates(Coordinate[] array) { array = super.shiftCoordinates(array);