diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index c770f3471..9c07ea077 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -387,7 +387,7 @@ simedtdlg.checkbox.ttip.Intowind2 = A zero launchrod angle will point directly u simedtdlg.checkbox.ttip.Intowind3 = A negative launchrod angle will launch with the wind.
If you uncheck this box you can point the launchrod any direction you please. simedtdlg.checkbox.ttip.Intowind4 = If you uncheck this box you can point the launchrod any direction you please. simedtdlg.lbl.Angle = Angle: -simedtdlg.lbl.ttip.Angle = The angle of the launch rod from vertical.
Positive angles point upwind. +simedtdlg.lbl.ttip.Angle = The angle of the launch rod from vertical.
Positive angles point North of launch. simedtdlg.lbl.Direction = Direction: simedtdlg.lbl.ttip.Direction1 = Direction of the launch rod relative to the wind.
simedtdlg.lbl.ttip.Direction2 = - @@ -1643,6 +1643,7 @@ FlightDataType.TYPE_VELOCITY_TOTAL = Total velocity FlightDataType.TYPE_ACCELERATION_TOTAL = Total acceleration FlightDataType.TYPE_POSITION_X = Position East of launch FlightDataType.TYPE_POSITION_Y = Position North of launch +FlightDataType.TYPE_UPWIND = Position upwind FlightDataType.TYPE_POSITION_XY = Lateral distance FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction FlightDataType.TYPE_VELOCITY_XY = Lateral velocity diff --git a/core/resources/l10n/messages_cs.properties b/core/resources/l10n/messages_cs.properties index 535fe403d..e6b4bd9c1 100644 --- a/core/resources/l10n/messages_cs.properties +++ b/core/resources/l10n/messages_cs.properties @@ -1253,9 +1253,10 @@ FlightDataType.TYPE_VELOCITY_Z = Svisl FlightDataType.TYPE_ACCELERATION_Z = Svislé zrychlení FlightDataType.TYPE_VELOCITY_TOTAL = Celková rychlost FlightDataType.TYPE_ACCELERATION_TOTAL = Celkové zrychlení -FlightDataType.TYPE_POSITION_X = Pozice proti vetru -FlightDataType.TYPE_POSITION_Y = Pozice po vetru +FlightDataType.TYPE_POSITION_X = Pozice v\u00fdchodn\u011b od startu +FlightDataType.TYPE_POSITION_Y = Pozice severn\u011b od startu FlightDataType.TYPE_POSITION_XY = Bocní vzdálenost +FlightDataType.TYPE_UPWIND = Pozice proti vetru FlightDataType.TYPE_POSITION_DIRECTION = Bocní smer FlightDataType.TYPE_VELOCITY_XY = Bocní rychlost FlightDataType.TYPE_ACCELERATION_XY = Bocní zrychlení diff --git a/core/resources/l10n/messages_de.properties b/core/resources/l10n/messages_de.properties index 93456531b..1a19e171a 100644 --- a/core/resources/l10n/messages_de.properties +++ b/core/resources/l10n/messages_de.properties @@ -1312,8 +1312,9 @@ FlightDataType.TYPE_VELOCITY_Z = Vertikalgeschwindigkeit FlightDataType.TYPE_ACCELERATION_Z = Vertikalbeschleunigung FlightDataType.TYPE_VELOCITY_TOTAL = Gesamtgeschwindigkeit FlightDataType.TYPE_ACCELERATION_TOTAL = Gesamtbeschleunigung -FlightDataType.TYPE_POSITION_X = Position upwind -FlightDataType.TYPE_POSITION_Y = Position parallel to wind +FlightDataType.TYPE_POSITION_X = Position East of launch +FlightDataType.TYPE_POSITION_Y = Position North of launch +FlightDataType.TYPE_UPWIND = Position upwind FlightDataType.TYPE_POSITION_XY = Lateral distance FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction FlightDataType.TYPE_VELOCITY_XY = Lateral velocity diff --git a/core/resources/l10n/messages_es.properties b/core/resources/l10n/messages_es.properties index 15416c61d..854454004 100644 --- a/core/resources/l10n/messages_es.properties +++ b/core/resources/l10n/messages_es.properties @@ -310,9 +310,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coeficiente de amortiguaci\u00f FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coeficiente del momento del cabeceo FlightDataType.TYPE_PITCH_RATE = Tasa de cabeceo FlightDataType.TYPE_POSITION_DIRECTION = Direcci\u00f3n lateral -FlightDataType.TYPE_POSITION_X = Posici\u00f3n contra el viento +FlightDataType.TYPE_POSITION_X = Posici\u00f3n al este del lanzamiento FlightDataType.TYPE_POSITION_XY = Distancia lateral -FlightDataType.TYPE_POSITION_Y = Posici\u00f3n a favor del viento +FlightDataType.TYPE_POSITION_Y = Posici\u00f3n al norte del lanzamiento +FlightDataType.TYPE_UPWIND = Posici\u00f3n contra el viento FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Presi\u00f3n del Coeficiente de rozamiento FlightDataType.TYPE_MOTOR_MASS = Masa del propulsor FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de referencia diff --git a/core/resources/l10n/messages_fr.properties b/core/resources/l10n/messages_fr.properties index 181838f72..ff7e21f78 100644 --- a/core/resources/l10n/messages_fr.properties +++ b/core/resources/l10n/messages_fr.properties @@ -301,9 +301,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coefficient d'amortissement de FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coefficient de moment de tangage FlightDataType.TYPE_PITCH_RATE = Taux de tangage FlightDataType.TYPE_POSITION_DIRECTION = Direction lat\u00E9rale -FlightDataType.TYPE_POSITION_X = Position contre le vent +FlightDataType.TYPE_POSITION_X = Position \u00e0 l'est du lancement FlightDataType.TYPE_POSITION_XY = Distance lat\u00E9rale -FlightDataType.TYPE_POSITION_Y = Position parall\u00E8le au vent +FlightDataType.TYPE_POSITION_Y = Position au nord du lancement +FlightDataType.TYPE_UPWIND = Position contre le vent FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coefficient de tra\u00EEn\u00E9e de pression FlightDataType.TYPE_MOTOR_MASS = Masse du propergol FlightDataType.TYPE_REFERENCE_AREA = Surface de r\u00E9f\u00E9rence diff --git a/core/resources/l10n/messages_it.properties b/core/resources/l10n/messages_it.properties index 99c664f0d..3b3480173 100644 --- a/core/resources/l10n/messages_it.properties +++ b/core/resources/l10n/messages_it.properties @@ -1316,9 +1316,10 @@ FlightDataType.TYPE_VELOCITY_Z = Velocita' verticale FlightDataType.TYPE_ACCELERATION_Z = Accelerazione verticale FlightDataType.TYPE_VELOCITY_TOTAL = Velocita' totale FlightDataType.TYPE_ACCELERATION_TOTAL = Accelerazione totale -FlightDataType.TYPE_POSITION_X = Posizione sopravento -FlightDataType.TYPE_POSITION_Y = Posizione parallela al vento +FlightDataType.TYPE_POSITION_X = Posizione a est del lancio +FlightDataType.TYPE_POSITION_Y = Posizione a nord di lancio FlightDataType.TYPE_POSITION_XY = Distanza laterale +FlightDataType.TYPE_UPWIND = Posizione sopravento FlightDataType.TYPE_POSITION_DIRECTION = Direzione laterale FlightDataType.TYPE_VELOCITY_XY = Velocita' laterale FlightDataType.TYPE_ACCELERATION_XY = Accelerazione laterale diff --git a/core/resources/l10n/messages_ja.properties b/core/resources/l10n/messages_ja.properties index 09c788dc7..361172b3b 100644 --- a/core/resources/l10n/messages_ja.properties +++ b/core/resources/l10n/messages_ja.properties @@ -1374,8 +1374,9 @@ FlightDataType.TYPE_VELOCITY_Z = \u5782\u76F4\u65B9\u5411\u901F\u5EA6 FlightDataType.TYPE_ACCELERATION_Z = \u5782\u76F4\u65B9\u5411\u52A0\u901F\u5EA6 FlightDataType.TYPE_VELOCITY_TOTAL = Total \u901F\u5EA6 FlightDataType.TYPE_ACCELERATION_TOTAL = Total \u52A0\u901F\u5EA6 -FlightDataType.TYPE_POSITION_X = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E -FlightDataType.TYPE_POSITION_Y = \u98A8\u3068\u5782\u76F4\u65B9\u5411\u4F4D\u7F6E +FlightDataType.TYPE_POSITION_Y = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E +FlightDataType.TYPE_POSITION_X = \u98A8\u3068\u5782\u76F4\u65B9\u5411\u4F4D\u7F6E +FlightDataType.TYPE_UPWIND = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E FlightDataType.TYPE_POSITION_XY = \u6C34\u5E73\u65B9\u5411\u8DDD\u96E2 FlightDataType.TYPE_POSITION_DIRECTION = \u6C34\u5E73\u65B9\u5411\u5411\u304D FlightDataType.TYPE_VELOCITY_XY = \u901F\u5EA6\uFF08\u5074\u9762\uFF09 diff --git a/core/resources/l10n/messages_pl.properties b/core/resources/l10n/messages_pl.properties index ac5384fa1..5c2c9a552 100644 --- a/core/resources/l10n/messages_pl.properties +++ b/core/resources/l10n/messages_pl.properties @@ -1257,8 +1257,9 @@ FlightDataType.TYPE_ACCELERATION_Z = Przyspieszenie pionowe FlightDataType.TYPE_VELOCITY_TOTAL = Pr\u0119dko\u015B\u0107 ca\u0142kowita FlightDataType.TYPE_ACCELERATION_TOTAL = Przyspieszenie ca\u0142kowite - FlightDataType.TYPE_POSITION_X = Pozycja do nawietrznej - FlightDataType.TYPE_POSITION_Y = Pozycja równoleg\u0142a do wiatru + FlightDataType.TYPE_POSITION_X = Pozycja na wsch\u00f3d od startu + FlightDataType.TYPE_POSITION_Y = Pozycja na p\u00f3\u0142noc od startu + FlightDataType.TYPE_UPWIND = Pozycja do nawietrznej FlightDataType.TYPE_POSITION_XY = Odleg\u0142o\u015B\u0107 boczna FlightDataType.TYPE_POSITION_DIRECTION = Kierunek boczny FlightDataType.TYPE_VELOCITY_XY = Pr\u0119dko\u015B\u0107 boczna diff --git a/core/resources/l10n/messages_pt.properties b/core/resources/l10n/messages_pt.properties index fc1d3e0d4..f83bbda35 100644 --- a/core/resources/l10n/messages_pt.properties +++ b/core/resources/l10n/messages_pt.properties @@ -290,9 +290,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coeficiente de arremesso de amo FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coeficiente de momento de Pitch FlightDataType.TYPE_PITCH_RATE = Taxa de arremesso FlightDataType.TYPE_POSITION_DIRECTION = Dire\u00e7\u00e3o lateral -FlightDataType.TYPE_POSITION_X = Posi\u00e7\u00e3o a favor do vento +FlightDataType.TYPE_POSITION_X = Posi\u00e7\u00e3o a Este do lan\u00e7amento FlightDataType.TYPE_POSITION_XY = Dist\u00e2ncia lateral -FlightDataType.TYPE_POSITION_Y = Posi\u00e7\u00e3o paralela ao vento +FlightDataType.TYPE_POSITION_Y = Posi\u00e7\u00e3o Norte do lan\u00e7amento +FlightDataType.TYPE_UPWIND = Posi\u00e7\u00e3o a favor do vento FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coeficiente de arrasto de press\u00e3o FlightDataType.TYPE_MOTOR_MASS = Massa do propelente FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de refer\u00eancia diff --git a/core/resources/l10n/messages_ru.properties b/core/resources/l10n/messages_ru.properties index a60b361d5..7d10419b0 100644 --- a/core/resources/l10n/messages_ru.properties +++ b/core/resources/l10n/messages_ru.properties @@ -1466,8 +1466,9 @@ FlightDataType.TYPE_VELOCITY_Z = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043 FlightDataType.TYPE_ACCELERATION_Z = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 FlightDataType.TYPE_VELOCITY_TOTAL = \u041e\u0431\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c FlightDataType.TYPE_ACCELERATION_TOTAL = \u041e\u0431\u0449\u0435\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 -FlightDataType.TYPE_POSITION_X = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430 -FlightDataType.TYPE_POSITION_Y = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0435\u0442\u0440\u0443 +FlightDataType.TYPE_POSITION_Y = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430 +FlightDataType.TYPE_POSITION_X = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0435\u0442\u0440\u0443 +FlightDataType.TYPE_UPWIND = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430 FlightDataType.TYPE_POSITION_XY = \u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f FlightDataType.TYPE_POSITION_DIRECTION = \u0411\u043e\u043a\u043e\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 FlightDataType.TYPE_VELOCITY_XY = \u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c diff --git a/core/resources/l10n/messages_uk_UA.properties b/core/resources/l10n/messages_uk_UA.properties index ed4b301c9..d333269b7 100644 --- a/core/resources/l10n/messages_uk_UA.properties +++ b/core/resources/l10n/messages_uk_UA.properties @@ -1472,8 +1472,9 @@ FlightDataType.TYPE_VELOCITY_Z = Vertical velocity FlightDataType.TYPE_ACCELERATION_Z = Vertical acceleration FlightDataType.TYPE_VELOCITY_TOTAL = Total velocity FlightDataType.TYPE_ACCELERATION_TOTAL = Total acceleration -FlightDataType.TYPE_POSITION_X = Position upwind -FlightDataType.TYPE_POSITION_Y = Position parallel to wind +FlightDataType.TYPE_POSITION_X = Position East of launch +FlightDataType.TYPE_POSITION_Y = Position North of launch +FlightDataType.TYPE_UPWIND = Position upwind FlightDataType.TYPE_POSITION_XY = Lateral distance FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction FlightDataType.TYPE_VELOCITY_XY = Lateral velocity diff --git a/core/resources/l10n/messages_zh_CN.properties b/core/resources/l10n/messages_zh_CN.properties index 26b7181a4..1c11bcd99 100644 --- a/core/resources/l10n/messages_zh_CN.properties +++ b/core/resources/l10n/messages_zh_CN.properties @@ -326,9 +326,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = \u4FEF\u4EF0\u963B\u5C3C\u7CFB\ FlightDataType.TYPE_PITCH_MOMENT_COEFF = \u4FEF\u4EF0\u529B\u77E9\u7CFB\u6570 FlightDataType.TYPE_PITCH_RATE = \u4FEF\u4EF0\u89D2\u901F\u5EA6 FlightDataType.TYPE_POSITION_DIRECTION = \u6C34\u5E73\u65B9\u5411 -FlightDataType.TYPE_POSITION_X = \u8FCE\u98CE\u4F4D\u7F6E +FlightDataType.TYPE_POSITION_Y = \u8FCE\u98CE\u4F4D\u7F6E FlightDataType.TYPE_POSITION_XY = \u6A2A\u5411\u8DE8\u8DDD -FlightDataType.TYPE_POSITION_Y = \u5E73\u884C\u98CE\u4F4D\u7F6E +FlightDataType.TYPE_POSITION_X = \u5E73\u884C\u98CE\u4F4D\u7F6E +FlightDataType.TYPE_UPWIND = \u8FCE\u98CE\u4F4D\u7F6E FlightDataType.TYPE_PRESSURE_DRAG_COEFF = \u538B\u5DEE\u963B\u529B\u7CFB\u6570 FlightDataType.TYPE_MOTOR_MASS = \u63A8\u8FDB\u5242\u8D28\u91CF FlightDataType.TYPE_REFERENCE_AREA = \u53C2\u8003\u9762\u79EF diff --git a/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java b/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java index e8ea6b80f..88f90516e 100644 --- a/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java +++ b/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java @@ -7,11 +7,13 @@ import net.sf.openrocket.file.DocumentLoadingContext; import net.sf.openrocket.file.simplesax.AbstractElementHandler; import net.sf.openrocket.file.simplesax.ElementHandler; import net.sf.openrocket.file.simplesax.PlainTextHandler; +import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.simulation.FlightDataBranch; import net.sf.openrocket.simulation.FlightDataType; import net.sf.openrocket.simulation.FlightEvent; import net.sf.openrocket.simulation.FlightEvent.Type; import net.sf.openrocket.simulation.customexpression.CustomExpression; +import net.sf.openrocket.startup.Application; import net.sf.openrocket.unit.UnitGroup; import org.slf4j.Logger; @@ -25,6 +27,7 @@ class FlightDataBranchHandler extends AbstractElementHandler { private static final Logger log = LoggerFactory.getLogger(FlightDataBranchHandler.class); private final SingleSimulationHandler simHandler; + private static final Translator trans = Application.getTranslator(); public FlightDataBranchHandler(String name, String typeList, SingleSimulationHandler simHandler, DocumentLoadingContext context) { this.simHandler = simHandler; @@ -80,6 +83,11 @@ class FlightDataBranchHandler extends AbstractElementHandler { return t; } } + + // Replace deprecated 'Position upwind' with new 'Position North of launch' option + if (name.equals(trans.get("FlightDataType.TYPE_UPWIND"))) { + return FlightDataType.TYPE_POSITION_Y; + } // Look in custom expressions for (CustomExpression exp : simHandler.getDocument().getCustomExpressions()) { diff --git a/core/src/net/sf/openrocket/simulation/FlightDataType.java b/core/src/net/sf/openrocket/simulation/FlightDataType.java index 55240861e..ed561400f 100644 --- a/core/src/net/sf/openrocket/simulation/FlightDataType.java +++ b/core/src/net/sf/openrocket/simulation/FlightDataType.java @@ -57,9 +57,9 @@ public class FlightDataType implements Comparable { //// Lateral position and motion - //// Position upwind + //// Position East of launch public static final FlightDataType TYPE_POSITION_X = newType(trans.get("FlightDataType.TYPE_POSITION_X"), "Px", UnitGroup.UNITS_DISTANCE, 30); - //// Position parallel to wind + //// Position North of launch public static final FlightDataType TYPE_POSITION_Y = newType(trans.get("FlightDataType.TYPE_POSITION_Y"), "Py", UnitGroup.UNITS_DISTANCE, 31); //// Lateral distance public static final FlightDataType TYPE_POSITION_XY = newType(trans.get("FlightDataType.TYPE_POSITION_XY"), "Pl", UnitGroup.UNITS_DISTANCE, 32); diff --git a/core/test-writing/asimple.ork b/core/test-writing/asimple.ork index a1305234f..34bce5c90 100644 --- a/core/test-writing/asimple.ork +++ b/core/test-writing/asimple.ork @@ -233,7 +233,7 @@ 0.05 - + @@ -311,7 +311,7 @@ 0.05 - + @@ -436,7 +436,7 @@ Recovery device deployment at high speed (24.1 m/s). - + @@ -633,7 +633,7 @@ 0.05 - + @@ -850,7 +850,7 @@ 0.05 - + diff --git a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java index 76bb6a75c..00f6f0eee 100644 --- a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java +++ b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java @@ -157,6 +157,9 @@ public class SimulationPlot { for (int i = 0; i < typeCount; i++) { // Get info FlightDataType type = filled.getType(i); + if (Objects.equals(type.getName(), "Position upwind")) { + type = FlightDataType.TYPE_POSITION_Y; + } Unit unit = filled.getUnit(i); int axis = filled.getAxis(i); String name = getLabel(type, unit);