From 6e2d79e1565f80cfb7cc47d36ca0bfd6e2fe708e Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 21 Nov 2023 00:45:23 +0100 Subject: [PATCH] [#2409] Don't use fixed precision for shape parameter --- core/src/net/sf/openrocket/unit/GeneralUnit.java | 12 +++++++++--- core/src/net/sf/openrocket/unit/UnitGroup.java | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/net/sf/openrocket/unit/GeneralUnit.java b/core/src/net/sf/openrocket/unit/GeneralUnit.java index 7d62c34d2..18e1af513 100644 --- a/core/src/net/sf/openrocket/unit/GeneralUnit.java +++ b/core/src/net/sf/openrocket/unit/GeneralUnit.java @@ -7,6 +7,7 @@ public class GeneralUnit extends Unit { @SuppressWarnings("unused") private final int significantNumbers; private final int decimalRounding; + private final double stepValue; // Values smaller that this are rounded using decimal rounding // [pre-calculated as 10^(significantNumbers-1)] @@ -23,14 +24,19 @@ public class GeneralUnit extends Unit { public GeneralUnit(double multiplier, String unit, int significantNumbers) { this(multiplier, unit, significantNumbers, 10); } - + public GeneralUnit(double multiplier, String unit, int significantNumbers, int decimalRounding) { + this(multiplier, unit, significantNumbers, decimalRounding, 1.0); + } + + public GeneralUnit(double multiplier, String unit, int significantNumbers, int decimalRounding, double stepValue) { super(multiplier, unit); assert(significantNumbers>0); assert(decimalRounding>0); this.significantNumbers = significantNumbers; this.decimalRounding = decimalRounding; + this.stepValue = stepValue; double d=1; double e=10; @@ -188,13 +194,13 @@ public class GeneralUnit extends Unit { @Override public double getNextValue(double value) { // TODO: HIGH: Auto-generated method stub - return value+1; + return value + stepValue; } @Override public double getPreviousValue(double value) { // TODO: HIGH: Auto-generated method stub - return value-1; + return value - stepValue; } diff --git a/core/src/net/sf/openrocket/unit/UnitGroup.java b/core/src/net/sf/openrocket/unit/UnitGroup.java index c79272a64..3f011f279 100644 --- a/core/src/net/sf/openrocket/unit/UnitGroup.java +++ b/core/src/net/sf/openrocket/unit/UnitGroup.java @@ -166,7 +166,7 @@ public class UnitGroup { UNITS_AREA.addUnit(new GeneralUnit(pow2(0.3048), "ft" + SQUARED)); UNITS_SHAPE_PARAMETER = new UnitGroup(); - UNITS_SHAPE_PARAMETER.addUnit(new FixedPrecisionUnit("" + ZWSP, 0.1)); // zero-width space + UNITS_SHAPE_PARAMETER.addUnit(new GeneralUnit(1, "" + ZWSP, 1, 10, 0.1)); UNITS_STABILITY = new UnitGroup();