Fix max slider value of thickness

This commit is contained in:
SiboVG 2022-11-10 00:18:56 +01:00
parent b9dcc908b6
commit d400947e1f
4 changed files with 15 additions and 8 deletions

View File

@ -7,8 +7,6 @@ import java.util.Collection;
import java.util.List;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.rocketcomponent.PodSet;
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
import net.sf.openrocket.util.BoundingBox;
import net.sf.openrocket.util.Coordinate;
import net.sf.openrocket.util.MathUtil;
@ -94,8 +92,14 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou
public final double getInnerRadius(double x, double theta) {
return getInnerRadius(x);
}
/**
* Returns the largest radius of the component (either the aft radius, or the fore radius).
*/
public double getMaxRadius() {
return MathUtil.max(getForeRadius(), getAftRadius());
}
/**
* Return the component wall thickness.
@ -120,7 +124,7 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou
if ((this.thickness == thickness) && !filled)
return;
this.thickness = doClamping ? MathUtil.clamp(thickness, 0, Math.max(getForeRadius(), getAftRadius())) : thickness;
this.thickness = doClamping ? MathUtil.clamp(thickness, 0, getMaxRadius()) : thickness;
filled = false;
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
clearPreset();

View File

@ -230,7 +230,6 @@ public class Transition extends SymmetricComponent implements InsideColorCompone
}
//// Radius automatics
@Override

View File

@ -133,7 +133,9 @@ public class NoseConeConfig extends RocketComponentConfig {
order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField());
panel.add(new UnitSelector(thicknessModel), "growx");
panel.add(new BasicSlider(thicknessModel.getSliderModel(0, 0.01)), "w 100lp, wrap 0px");
panel.add(new BasicSlider(thicknessModel.getSliderModel(0,
new DoubleModel(component, "MaxRadius", UnitGroup.UNITS_LENGTH))),
"w 100lp, wrap 0px");
final JCheckBox filledCheckbox = new JCheckBox(new BooleanModel(component, "Filled"));

View File

@ -170,7 +170,9 @@ public class TransitionConfig extends RocketComponentConfig {
order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField());
panel.add(new UnitSelector(thicknessModel), "growx");
panel.add(new BasicSlider(thicknessModel.getSliderModel(0, 0.01)), "w 100lp, wrap 0px");
panel.add(new BasicSlider(thicknessModel.getSliderModel(0,
new DoubleModel(component, "MaxRadius", UnitGroup.UNITS_LENGTH))),
"w 100lp, wrap 0px");
//// Filled
final JCheckBox thicknessCheckbox = new JCheckBox(new BooleanModel(component, "Filled"));