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 java.util.List;
import net.sf.openrocket.preset.ComponentPreset; 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.BoundingBox;
import net.sf.openrocket.util.Coordinate; import net.sf.openrocket.util.Coordinate;
import net.sf.openrocket.util.MathUtil; import net.sf.openrocket.util.MathUtil;
@ -95,6 +93,12 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou
return getInnerRadius(x); 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());
}
/** /**
@ -120,7 +124,7 @@ public abstract class SymmetricComponent extends BodyComponent implements BoxBou
if ((this.thickness == thickness) && !filled) if ((this.thickness == thickness) && !filled)
return; return;
this.thickness = doClamping ? MathUtil.clamp(thickness, 0, Math.max(getForeRadius(), getAftRadius())) : thickness; this.thickness = doClamping ? MathUtil.clamp(thickness, 0, getMaxRadius()) : thickness;
filled = false; filled = false;
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE); fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
clearPreset(); clearPreset();

View File

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

View File

@ -133,7 +133,9 @@ public class NoseConeConfig extends RocketComponentConfig {
order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField()); order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField());
panel.add(new UnitSelector(thicknessModel), "growx"); 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")); 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()); order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField());
panel.add(new UnitSelector(thicknessModel), "growx"); 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 //// Filled
final JCheckBox thicknessCheckbox = new JCheckBox(new BooleanModel(component, "Filled")); final JCheckBox thicknessCheckbox = new JCheckBox(new BooleanModel(component, "Filled"));