Streamer changes exit preset status
Changing a streamer characteristic exits preset status; except for streamer length. Selection of a preset streamer when not in preset status (such as re-selecting the same preset streamer after changing one of its characteristics), sets all characteristics (including Cd and automatic checkbox); previously, the Cd and automatic checkbox were not set/reset after a manual Cd change.
This commit is contained in:
parent
156dbd5812
commit
687d460f0d
@ -40,7 +40,7 @@ public class Streamer extends RecoveryDevice {
|
|||||||
if (MathUtil.equals(this.stripLength, stripLength))
|
if (MathUtil.equals(this.stripLength, stripLength))
|
||||||
return;
|
return;
|
||||||
this.stripLength = stripLength;
|
this.stripLength = stripLength;
|
||||||
clearPreset();
|
// clearPreset();
|
||||||
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,6 +95,7 @@ public class Streamer extends RecoveryDevice {
|
|||||||
double area = getArea();
|
double area = getArea();
|
||||||
stripWidth = MathUtil.safeSqrt(area / ratio);
|
stripWidth = MathUtil.safeSqrt(area / ratio);
|
||||||
stripLength = ratio * stripWidth;
|
stripLength = ratio * stripWidth;
|
||||||
|
clearPreset(); // ----
|
||||||
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +118,7 @@ public class Streamer extends RecoveryDevice {
|
|||||||
double ratio = Math.max(getAspectRatio(), 0.01);
|
double ratio = Math.max(getAspectRatio(), 0.01);
|
||||||
stripWidth = MathUtil.safeSqrt(area / ratio);
|
stripWidth = MathUtil.safeSqrt(area / ratio);
|
||||||
stripLength = ratio * stripWidth;
|
stripLength = ratio * stripWidth;
|
||||||
|
clearPreset(); // ----
|
||||||
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,6 +138,14 @@ public class Streamer extends RecoveryDevice {
|
|||||||
if ( preset.has(ComponentPreset.WIDTH)) {
|
if ( preset.has(ComponentPreset.WIDTH)) {
|
||||||
this.stripWidth = preset.get(ComponentPreset.WIDTH);
|
this.stripWidth = preset.get(ComponentPreset.WIDTH);
|
||||||
}
|
}
|
||||||
|
// ---- Set Cd value when preset is selected after manual Cd change
|
||||||
|
double density = this.getMaterial().getDensity();
|
||||||
|
double cd;
|
||||||
|
cd = 0.034 * ((density + 0.025) / 0.105) * (stripLength + 1) / stripLength;
|
||||||
|
cd = MathUtil.min(cd, MAX_COMPUTED_CD);
|
||||||
|
this.cd = cd;
|
||||||
|
this.cdAutomatic = true;
|
||||||
|
// ----
|
||||||
super.loadFromPreset(preset);
|
super.loadFromPreset(preset);
|
||||||
// Fix the length to the stripWidth since RocketComponent assigns ComponentPreset.LENGTH to length.
|
// Fix the length to the stripWidth since RocketComponent assigns ComponentPreset.LENGTH to length.
|
||||||
this.length = this.stripWidth;
|
this.length = this.stripWidth;
|
||||||
@ -146,8 +156,6 @@ public class Streamer extends RecoveryDevice {
|
|||||||
@Override
|
@Override
|
||||||
public double getComponentCD(double mach) {
|
public double getComponentCD(double mach) {
|
||||||
double density = this.getMaterial().getDensity();
|
double density = this.getMaterial().getDensity();
|
||||||
double cd;
|
|
||||||
|
|
||||||
cd = 0.034 * ((density + 0.025) / 0.105) * (stripLength + 1) / stripLength;
|
cd = 0.034 * ((density + 0.025) / 0.105) * (stripLength + 1) / stripLength;
|
||||||
cd = MathUtil.min(cd, MAX_COMPUTED_CD);
|
cd = MathUtil.min(cd, MAX_COMPUTED_CD);
|
||||||
return cd;
|
return cd;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user