[#1204] Fix overrideCGX slider length

This commit is contained in:
SiboVG 2022-03-03 02:50:53 +01:00
parent 930881dae6
commit e7e96ca715

View File

@ -6,7 +6,6 @@ import java.awt.Container;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
@ -340,15 +339,30 @@ public class RocketComponentConfig extends JPanel {
// Calculate suitable length for slider
DoubleModel length;
if (component instanceof ComponentAssembly) {
double l = 0;
Iterator<RocketComponent> iterator = component.iterator(false);
double minL = Double.MAX_VALUE;
double maxL = Double.MIN_VALUE;
while (iterator.hasNext()) {
RocketComponent c = iterator.next();
if (c.getAxialMethod() == AxialMethod.AFTER)
l += c.getLength();
double compPos = c.getAxialOffset(AxialMethod.ABSOLUTE);
if (compPos < minL) {
minL = compPos;
}
double compLen = c.getLength();
if (c instanceof FinSet) {
compLen = ((FinSet) c).getInstanceBoundingBox().span().x;
}
if (compPos + compLen > maxL) {
maxL = compPos + compLen;
}
}
length = new DoubleModel(l);
length = new DoubleModel(maxL - minL);
} else if (component instanceof FinSet) {
double compLen = ((FinSet) component).getInstanceBoundingBox().span().x;
length = new DoubleModel(compLen);
} else {
length = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
}