From 97c1112c56fca381c35d92657af6dbb5e98b8fc6 Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Thu, 5 Mar 2020 23:58:39 -0700 Subject: [PATCH 1/5] Fix ground hit velocity calculation The ground hit velocity is calculated by taking the last recorded total velocity for the flight data and using that as the ground hit velocity if the last altitude measurement is less than 10 m. This method worked until commit f11a3e4 introduced the ability to track and report all events that happened after a GROUND_HIT event. That commit introduced a GroundStepper that will step between the GROUND_HIT event and the SIMULATION_END event and will always add a measurement to the flight data to record the rocket being on the ground. A better way of measuring the ground hit velocity is to interpolate the velocity at the time the GROUND_HIT event, as that would actually be the appropriate ground hit velocity. Closes #576 Signed-off-by: Billy Olsen --- core/src/net/sf/openrocket/simulation/FlightData.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/core/src/net/sf/openrocket/simulation/FlightData.java b/core/src/net/sf/openrocket/simulation/FlightData.java index d0d3d79e4..b31b2f360 100644 --- a/core/src/net/sf/openrocket/simulation/FlightData.java +++ b/core/src/net/sf/openrocket/simulation/FlightData.java @@ -195,13 +195,7 @@ public class FlightData { maxMachNumber = branch.getMaximum(FlightDataType.TYPE_MACH_NUMBER); flightTime = branch.getLast(FlightDataType.TYPE_TIME); - if (branch.getLast(FlightDataType.TYPE_ALTITUDE) < 10) { - groundHitVelocity = branch.getLast(FlightDataType.TYPE_VELOCITY_TOTAL); - } else { - groundHitVelocity = Double.NaN; - } - // Time to apogee List time = branch.get(FlightDataType.TYPE_TIME); List altitude = branch.get(FlightDataType.TYPE_ALTITUDE); @@ -236,6 +230,10 @@ public class FlightData { double t = event.getTime(); List velocity = branch.get(FlightDataType.TYPE_VELOCITY_TOTAL); deploymentVelocity = MathUtil.interpolate( time, velocity, t); + } else if (event.getType() == FlightEvent.Type.GROUND_HIT) { + double t = event.getTime(); + List velocity = branch.get(FlightDataType.TYPE_VELOCITY_TOTAL); + groundHitVelocity = MathUtil.interpolate( time, velocity, t); } } From a82d4085e277d17cf9a1ff45948bcf51dd06b09c Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Fri, 6 Mar 2020 07:37:46 -0700 Subject: [PATCH 2/5] Fix typo in method name Fix the spelling of 'interesting' in the method FlightData.calculateInterestingValues. Signed-off-by: Billy Olsen --- core/src/net/sf/openrocket/simulation/FlightData.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/net/sf/openrocket/simulation/FlightData.java b/core/src/net/sf/openrocket/simulation/FlightData.java index b31b2f360..e7f24f806 100644 --- a/core/src/net/sf/openrocket/simulation/FlightData.java +++ b/core/src/net/sf/openrocket/simulation/FlightData.java @@ -101,7 +101,7 @@ public class FlightData { for (FlightDataBranch b : branches) this.addBranch(b); - calculateIntrestingValues(); + calculateInterestingValues(); } @@ -126,7 +126,7 @@ public class FlightData { branches.add(branch); if (branches.size() == 1) { - calculateIntrestingValues(); + calculateInterestingValues(); } } @@ -185,7 +185,7 @@ public class FlightData { * Calculate the max. altitude/velocity/acceleration, time to apogee, flight time * and ground hit velocity. */ - private void calculateIntrestingValues() { + private void calculateInterestingValues() { if (branches.isEmpty()) return; From ddfe7c5c903a61008ac7535e75977c673c14804f Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Tue, 10 Mar 2020 11:16:06 -0700 Subject: [PATCH 3/5] Add unit tests for FlightData Add unit tests to cover some of the FlightData object and some of the calculations. This specifically covers the bits for FlightData.getGroundHitVelocity() where the ground hit velocity is calculated from a FlightDataBranch consisting of a series of data points and events occuring during flight. Signed-off-by: Billy Olsen --- .../openrocket/simulation/TestFlightData.java | 285 ++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 core/test/net/sf/openrocket/simulation/TestFlightData.java diff --git a/core/test/net/sf/openrocket/simulation/TestFlightData.java b/core/test/net/sf/openrocket/simulation/TestFlightData.java new file mode 100644 index 000000000..d9620d529 --- /dev/null +++ b/core/test/net/sf/openrocket/simulation/TestFlightData.java @@ -0,0 +1,285 @@ +package net.sf.openrocket.simulation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import net.sf.openrocket.aerodynamics.WarningSet; + +/** + * Tests the FlightData object. + * + * @author Billy Olsen + */ +public class TestFlightData { + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#FlightData()}. + */ + @Test + public void testFlightData() { + FlightData data = new FlightData(); + + WarningSet warnings = data.getWarningSet(); + assertNotNull(warnings); + assertTrue(warnings.isEmpty()); + + assertEquals(0, data.getBranchCount()); + assertEquals(Double.NaN, data.getDeploymentVelocity(), 0.00); + assertEquals(Double.NaN, data.getFlightTime(), 0.00); + assertEquals(Double.NaN, data.getGroundHitVelocity(), 0.00); + assertEquals(Double.NaN, data.getLaunchRodVelocity(), 0.00); + assertEquals(Double.NaN, data.getMaxAcceleration(), 0.00); + assertEquals(Double.NaN, data.getMaxAltitude(), 0.00); + assertEquals(Double.NaN, data.getMaxMachNumber(), 0.00); + assertEquals(Double.NaN, data.getTimeToApogee(), 0.00); + + } + + /** + * Tests flight data created from summary data. + */ + @Test + public void testFlightDataFromSummaryData() { + double deploymentVelocity = 14.8; + double flightTime = 69.1; + double groundHitVelocity = 3.4; + double launchRodVelocity = 17.5; + double maxAcceleration = 156.2; + double maxVelocity = 105.9; + double maxAltitude = 355.1; + double maxMachNumber = 0.31; + double timeToApogee = 7.96; + + FlightData data = new FlightData(maxAltitude, maxVelocity, maxAcceleration, + maxMachNumber, timeToApogee, flightTime, + groundHitVelocity, launchRodVelocity, + deploymentVelocity); + + WarningSet warnings = data.getWarningSet(); + assertNotNull(warnings); + assertTrue(warnings.isEmpty()); + + assertEquals(0, data.getBranchCount()); + assertEquals(deploymentVelocity, data.getDeploymentVelocity(), 0.00); + assertEquals(flightTime, data.getFlightTime(), 0.00); + assertEquals(groundHitVelocity, data.getGroundHitVelocity(), 0.00); + assertEquals(launchRodVelocity, data.getLaunchRodVelocity(), 0.00); + assertEquals(maxAcceleration, data.getMaxAcceleration(), 0.00); + assertEquals(maxAltitude, data.getMaxAltitude(), 0.00); + assertEquals(maxMachNumber, data.getMaxMachNumber(), 0.00); + assertEquals(timeToApogee, data.getTimeToApogee(), 0.00); + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#FlightData(net.sf.openrocket.simulation.FlightDataBranch[])}. + */ + @Test + public void testFlightDataFlightDataBranchArray() { + FlightData data = new FlightData(new FlightDataBranch("Test", FlightDataType.TYPE_TIME)); + + WarningSet warnings = data.getWarningSet(); + assertNotNull(warnings); + assertTrue(warnings.isEmpty()); + + assertEquals(1, data.getBranchCount()); + + data = new FlightData(new FlightDataBranch("Test 1", FlightDataType.TYPE_TIME), + new FlightDataBranch("Test 2", FlightDataType.TYPE_TIME)); + + warnings = data.getWarningSet(); + assertNotNull(warnings); + assertTrue(warnings.isEmpty()); + + assertEquals(2, data.getBranchCount()); + } + + private FlightDataBranch createFlightDataBranch(final String name, final FlightDataType dataType, final double[] values) { + final FlightDataBranch branch = new FlightDataBranch(name, dataType); + addDataPoints(branch, dataType, values); + return branch; + } + + private void addDataPoints(final FlightDataBranch branch, final FlightDataType dataType, final double[] values) { + for (int i=0; i < values.length; i++) { + branch.addPoint(); + branch.setValue(dataType, values[i]); + } + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#getMaxAltitude()}. + */ + @Test + public void testGetMaxAltitudeCalculated() { + final double[] altitudes = new double[] { + 10.5, + 37.771, + 37.5, + 5.1, + 0.0 + }; + FlightDataBranch branch = + createFlightDataBranch("Test Max Alt", FlightDataType.TYPE_ALTITUDE, altitudes); + + FlightData data = new FlightData(branch); + + assertEquals(37.771, data.getMaxAltitude(), 0.000); + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#getMaxVelocity()}. + */ + @Test + public void testGetMaxVelocityCalculated() { + final double[] velocities = new double[] { + 10.5, + 23.7, + 35.5, + 30.1, + 0.0 + }; + FlightDataBranch branch = + createFlightDataBranch("Test Max Velocity", FlightDataType.TYPE_VELOCITY_TOTAL, velocities); + + FlightData data = new FlightData(branch); + + assertEquals(35.5, data.getMaxVelocity(), 0.000); + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#getMaxMachNumber()}. + */ + @Test + public void testGetMaxMachNumberCalculated() { + final double[] machs = new double[] { + 0.1, + 0.2, + 0.333, + 0.3, + 0.1 + }; + FlightDataBranch branch = + createFlightDataBranch("Test Max Mach", FlightDataType.TYPE_MACH_NUMBER, machs); + + FlightData data = new FlightData(branch); + + assertEquals(0.333, data.getMaxMachNumber(), 0.000); + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#getFlightTime()}. + */ + @Test + public void testGetFlightTime() { + final double[] times = new double[] { + 1.0, + 5.0, + 15.0, + 20.1, + 30.2 + }; + FlightDataBranch branch = + createFlightDataBranch("Test Flight Time", FlightDataType.TYPE_TIME, times); + + // Flight time is calculated as the last time entry + FlightData data = new FlightData(branch); + assertEquals(30.2, data.getFlightTime(), 0.000); + } + + /** + * Test method for {@link net.sf.openrocket.simulation.FlightData#getGroundHitVelocity()}. + */ + @Test + public void testGetGroundHitVelocity() { + /* + * Setup a flight profile where there is data logged for every second. + * The time events will start at 1, rather than 0 so the time into the + * data log is the index + 1.0 seconds. + * + * i.e. at second 1, the velocity becomes 1.2 m/s, the altitude of the + * rocket is 1.2, and the LiftOff event is saved. + * + * This loosely approximates a flight of about 21 seconds where it + * flies up quickly and comes down quickly. The actual flight profile + * is not as important as the fact that a profile exists. + * + * Each array is stored as + */ + final double[] velocities = new double[] { + // launch to burn out + 1.2, 15.0, 31.1, 45.6, + // burn out to apogee + 33.6, 21.2, 14.1, 6.8, 0.0, + // apogee to ejection charge + 2.4, 4.7, 8.6, 9.23, + // ejection charge to parachute deployment + 7.1, 6.2, 6.2, 6.2, 6.2, + // parachute deployment to ground hit + 6.2, 0.0, 0.0 + }; + final double[] altitudes = new double[] { + // launch to burn out + 1.2, 16.2, 47.3, 92.9, + // burn out to apogee + 126.5, 147.7, 161.8, 168.6, 168.6, + // apogee to ejection charge + 166.2, 161.5, 152.9, 143.67, + // ejection charge to parachute deployment + 136.57, 113.81, 91.05, 68.29, 45.53, + // parachute deployment to ground hit + 22.77, 0.0, 0.0 + }; + final FlightEvent.Type[] eventTypes = new FlightEvent.Type[] { + // launch to burn out + FlightEvent.Type.LIFTOFF, FlightEvent.Type.LAUNCHROD, + FlightEvent.Type.ALTITUDE, FlightEvent.Type.BURNOUT, + + // burn out to apogee + FlightEvent.Type.ALTITUDE, FlightEvent.Type.ALTITUDE, + FlightEvent.Type.ALTITUDE, FlightEvent.Type.ALTITUDE, + FlightEvent.Type.APOGEE, + + // apogee to ejection charge + FlightEvent.Type.ALTITUDE, FlightEvent.Type.ALTITUDE, + FlightEvent.Type.ALTITUDE, FlightEvent.Type.EJECTION_CHARGE, + + // ejection charge to parachute deployment + FlightEvent.Type.ALTITUDE, FlightEvent.Type.RECOVERY_DEVICE_DEPLOYMENT, + FlightEvent.Type.ALTITUDE, FlightEvent.Type.ALTITUDE, + FlightEvent.Type.ALTITUDE, + + // parachute deployment to ground hit + FlightEvent.Type.GROUND_HIT, FlightEvent.Type.ALTITUDE, + FlightEvent.Type.SIMULATION_END + }; + + assertEquals(velocities.length, eventTypes.length); + assertEquals(velocities.length, altitudes.length); + + // This flight data branch only needs to record for time, + // altitude and velocity. + FlightDataBranch branch = + new FlightDataBranch("Ground Hit Velocities", + FlightDataType.TYPE_TIME, + FlightDataType.TYPE_ALTITUDE, + FlightDataType.TYPE_VELOCITY_TOTAL); + + for (int i = 0; i < velocities.length; i++) { + branch.addPoint(); + // the data entries are 1 second ahead of the index + double time = i + 1.0; + branch.setValue(FlightDataType.TYPE_TIME, time); + branch.setValue(FlightDataType.TYPE_ALTITUDE, altitudes[i]); + branch.setValue(FlightDataType.TYPE_VELOCITY_TOTAL, velocities[i]); + branch.addEvent(new FlightEvent(eventTypes[i], time)); + } + + FlightData data = new FlightData(branch); + + assertEquals(6.2, data.getGroundHitVelocity(), 0.000); + } + +} From a2168ed84f4e8d2465ac92ea244ccd0af39a7b70 Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Wed, 4 Mar 2020 16:58:26 -0700 Subject: [PATCH 4/5] Notify all event listeners when DoubleModel.setValue called Previous refactoring of the event listeners lost notifications to classes which care about changes to the DoubleModel. One such example is the UnitSelector. Ensure that all the ChangeEventListeners and StateChangeEventListeners are called when the setValue method is invoked. Closes #553 Signed-off-by: Billy Olsen --- swing/src/net/sf/openrocket/gui/adaptors/DoubleModel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swing/src/net/sf/openrocket/gui/adaptors/DoubleModel.java b/swing/src/net/sf/openrocket/gui/adaptors/DoubleModel.java index 6fb903c53..b9df44786 100644 --- a/swing/src/net/sf/openrocket/gui/adaptors/DoubleModel.java +++ b/swing/src/net/sf/openrocket/gui/adaptors/DoubleModel.java @@ -770,6 +770,8 @@ public class DoubleModel implements StateChangeListener, ChangeSource, Invalidat try { setMethod.invoke(source, v / multiplier); + // Make sure to notify all the listeners that have registered + fireStateChanged(); } catch (IllegalArgumentException e) { throw new BugException("Unable to invoke setMethod of " + this, e); } catch (IllegalAccessException e) { From 630b5eca584a6662837245c7ff0a28a75cb61d26 Mon Sep 17 00:00:00 2001 From: Daniel_M_Williams Date: Sat, 7 Mar 2020 20:50:27 -0500 Subject: [PATCH 5/5] [upgrade][jar] upgrades slf4j logging libraries from 1.7.5 => 1.7.30 - updates ant build - updates Intellij build - updates Eclipse build --- .idea/artifacts/openrocket_jar.xml | 20 +++++++------------- core/.classpath | 2 +- core/OpenRocket Core.iml | 18 +++++++++--------- core/lib/slf4j-api-1.7.30.jar | Bin 0 -> 41472 bytes core/lib/slf4j-api-1.7.5.jar | Bin 26084 -> 0 bytes lib-test/OpenRocket Test Libraries.iml | 9 +++++++++ swing/.classpath | 2 +- swing/OpenRocket Swing.iml | 18 +++++++++--------- swing/build.xml | 5 ++--- 9 files changed, 38 insertions(+), 36 deletions(-) create mode 100644 core/lib/slf4j-api-1.7.30.jar delete mode 100644 core/lib/slf4j-api-1.7.5.jar diff --git a/.idea/artifacts/openrocket_jar.xml b/.idea/artifacts/openrocket_jar.xml index 019f1369a..119b4f763 100644 --- a/.idea/artifacts/openrocket_jar.xml +++ b/.idea/artifacts/openrocket_jar.xml @@ -10,29 +10,16 @@ - - - - - - - - - - - - - @@ -45,6 +32,13 @@ + + + + + + + \ No newline at end of file diff --git a/core/.classpath b/core/.classpath index 18f644a33..163c5b1c5 100644 --- a/core/.classpath +++ b/core/.classpath @@ -16,7 +16,7 @@ - + diff --git a/core/OpenRocket Core.iml b/core/OpenRocket Core.iml index f0cdceef9..8afb18531 100644 --- a/core/OpenRocket Core.iml +++ b/core/OpenRocket Core.iml @@ -80,15 +80,6 @@ - - - - - - - - - @@ -127,5 +118,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/lib/slf4j-api-1.7.30.jar b/core/lib/slf4j-api-1.7.30.jar new file mode 100644 index 0000000000000000000000000000000000000000..29ac26fb8cad7ef5934377a8c269c4e521520e5c GIT binary patch literal 41472 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

G zT8_U*Zj0OrsxBzW{82>eSF}OPTi{imW)M44YBvg+vCk&maQTmCPW8|DyMJp*tbk^O zq!jx}RSNAqIvUIVmX`l5l~MjBMzb5-EXcM-N|}gr8gqaK9tXw>W;KR6`rZiQ7RuK>5p?2wh>p^oBd){aA-PkMr)IN0{FB)6C~a1)B$Q?b-6 zOu1I229YSwJm3K-QR8(;y!9HkZW}x56ZtlFwnf52ts3DieD*LzzqkJY+X9PD=mTc= zDXV{}!yJiM#1VB*+LM}c`wnkzwAhbV6W0BdM^YSa6k zqXhWiImhV{arLmtCQ!pE66zQ7?g`0L1B%F91Cdq0le3ajkm=B}Zd1Dfb#pyXr_Tp` zIf7b`$-0;fL-+k3K|lh#zhB~hd@UJ2p)&vWwfx_?IGhzXWHH1XbkeU|+hk&62R0M~KA#AWId)8za0 z^#-%c^n_!@vFcJwBwzWu!j{_fcSu7?KYuO}=v0Iewku_h5>^g){E=8TI!Z=M6r*hw zMSU{!gX(+ud(I5HL+1j5od84cNg_{?$8Ew&+l3QQYDu&}h%Wl7`=L{+{8}OxyAcF3 z<891u8{q?)+}T+3`cGLQg-L_OG)m80UE;QjgjG?564uL7qkAhLj|n3tiuTqMIlbzx!>$d_ zX&laR)`&StI_ybDL>eW}j!RYx#AMmd>#rdGI+uGmjz*kQ}8 zXBKJwgdV65%HdtR%P%##eD*$jc|i11g=Y3ZjY!8d(<4BtdyDuAY$|m_m$j!FyDm=U zntIn5yjmN3pv+2y7qjHtum8Yx6{el1(ftH$s{C-&|Jxh#Kllivl`WMP_>p;_n(_(m zl=^F9p#aNHInM$+OZkdkBMP`H(Dv_+_{ zDBR`(QYlRsO7(U7s6v_-``;|AK6ShZ+UuITr|h^+!@P>DE+;QU5h-*!j|r=>s)=}~ z7+;R1H=HP{+$kG}b|X1Cre|}Qt#hi88?>!XG$N^WBt~YdXmrx3jy_);V$ENpPh{D2Us) z>>e5lvIq1pu8IYwYA@7Wk$|K!^FJV zD+5x)(%BafA_7hSpvOQ6qd;wbBG?j;7J@Iz95q&~X9BA;m1uC`qz__~+)6Hn`dDwC zb=vbDV1i!4X8lz+2$Omoz}0T90t|PBQr4iK!px5Z%i2pGW~n|5DRfP8XL!O+)0nbF zVipp=px>Zge{v`8sS-e@xo|Sgs64x0P0YHD-z8Ol!pM1N`XGfkK|DV(wmPhtVerty z|3-_%AvE)PYSUgKLRY>^A|~&+2c@iSx<(FeD%YLSkWUjeTUwCVO+zf^zVmP>mY4*k z;c@bi<|6vubVIPJ=3ypCS4DZr56sKWkH=#^BG4MVk&_xE_>=xo0mO_?aKV-Nx(0VQ zW0R*44^jYIs5w7<*}cA#kk;0smgYCcAbfVn=`~Sggx})tBh*gW!YMc(6+VasahqyaHn;v`wan6PT~7Y-H`e_eDF5<1{vdGwPo$(uq`*Is zk|N(`EG(2y;I!IUklT5bt>m=a0+n^FLBJVjd)jUQa3r$!M_zw@P29de-Maw}(;&h9 zA$~G6byZDv+lR!ZY#3TU3L&9#>9xUQ>7|x*1V{QEnwnXnY&jdDBvxe6bGg~B_n)H6 z5dZep;JCDO=GIbj4tmui(+Z&PwGE-ZN!A}s*PqO}lQby&#Hg< zv+Cpj|K#|QMaat5(b&N7|8NNZv;Oz)iT)AW?4uLT#StoDz87HQ4KYH&bZ+A(5xHy&cnP(7uwPdqE zxPRu#s3Exsg1?fv_9sLop+i&L$Cx(QR4Fwvr z%iJIcmK9VatuR8OOjtaBX_QB3%$kSbiC?@Ae#l@S(0EWGf6S=AS9nk~;Q^m1fBXdF zXVc~=XUIRpL--WnCN~$iPG>VRn zlC&5tUdBMvXDuo#YY4o`d>qj!Txk#!4T$0s>EGkb1D;^n_M;WFU;zM-{&SrFJ6uvt zOATuU(V#X{|UvHGb^$NTKeRg@7?u&-Jpl8N&lEO}Q?*9`Cc z_1F8o9sqmDvog0|P1y^jZrp$(Hr>;m`Cwg^UpZljBHfeVU>%|uhkpblN^w_h?VtH> z%n>O{P<<&W71$VTZH~o5JB8}I{hI@DWoU^%0znYkigh6q5S10J0jWqYnt*z-2UrkZ zN|@a!BUJXCfA}+9u=kFv2A+dwPAA*6r(L`as5b-!^bB}&^$M)L%)bP61sHoQv>EH0 z_mUchdKMYcvLC+-Iht!dksdsB{5#zHf#M0IrZCXr$Q&(pq3M4wrJ64#|loI1`Wnpej zHQ|obBpl|Tia^>hFjFxRmbDf`%s3t~I`7w0Son*Cql?f$BXcLMm+#9)Mzy??)J@+e z7%(wyZX~2Pw1Cy~JiTi*NFBFN1blI?{<3IPDlp0^YflyT$ylkSa7C3!EU^`x3 zHdRx{^l!zUL}vkUEyXM|&|lNY0AJH;9FIW=!d1vM^YuM*5#%PKnoaeRDf#^;TAZ^q zgNEwO)y=`q6QXLxCS}gZ^<*)zoNJw2=aQ-gwK!mqVxij|{*R9aYAyv_KzG$kfsmJM zrF46KgNkp2wAw^{l|xdKhLg|?a$*WJlR$rzc4?hC58{X`ix*stxf_lg1$(1ZyyXk8 zPo92J+wb*ek+s^9E(diK*;Bk^T#YD}(sQDrGTj4sK2I4r+Y5qu}6Ch!BjmbNdpVN>yr+$QagzNa4a}chm zX@7<4%I_T~fS>fpb$a8BEBC?c%pUQc>Ylvhn?vsCL0m>Ted~Y#O<6ZgRP_IrI^W4@ zG=dbh<$8pS*^!W*bV^i~Otx0aqRAR*A0@X!80{5p)}haCzKI&fs^V`RKkZlcF|=vM zhx?*ogY{Y8T58*C(Lo+LqftswvMQVet>as|RYW&ysY@P}wN$?w=310Yu0YpS(1s2+ zibyP+X*j;3{&aVlI4LP_!$nHp{>;d%aJ$lUN{^=9<@G`E@Y`u?e+4l^HYZ0vsD#Qr z`q)cx2ZdPs{o+n%YUSc}Pi`7}SANq**7fTs(CpMchBCL8+oRTR=uf(+MZBJ;5z{5D} zB7WUIAN1MWlo^khen)ZbwW<`&^V^8mwP-5twbvz4t87Ip=xmG*D@| z2O_mJxeUBJ!gfQPR9gUf|zqiIL*3`Z}-jSSt&&=S0ZVQ0UYYqFt*m z_?S~Fwydl8W%YRno|J0l7M5@ENws!KwYEvMj!Ct6gCm8*+ER*_PoE);F4_+ERA@in zv+2VHhXtYzQ?28#8Zgm!1Y<|l=?vPu%yX+vqff_iJ%ew z#ll9UL~?4~YZ9NxIi>WBBf&=ff7~rD?GVWA8{JsKCpbbUaHhHYMVVCC5x?+VJwEX_Xz|syK8dsQ=1dG?U=?$gW6OtcX1Nwz zWxNISXqv%E?Pko&11E>U+uIUxc=vs$Z3*Aw!Y=LbaEp5gIyT%9i`sGYQ5My1n1SJ@ zrUn~}KcaD1L+mCV+19;HeSO5%@&|WrP1E^Hyrk21>1xEh513s{z2zTR6NIR`mr1@! z4&Y)AYeErkPhRC=XC2`@Y?Ck={vaw&Kkv!&-D<>%qtBkTYI{8v?W)P>IYziVJIH!w zN4iHHM}1%ww?JrIVI*qu3tG=SP0L2CySPIR+aHJ=3`>ZTE@cWoU-n>Tq3~?{n+sg( zJO8N}E;Cn@H_i!AK`Jr37K)ehX%6T^<&d&P?ENS;$Clg8%uW`dQs85@?Zw9WA5 zt}#v~?JUso6*7upk7BWoW>ffdLxS-(kL}$cthpx(I` z%?h_dvF+&ky%cZTY9Bd zUd+4lVm!fF*6XB`lIt2`B5R3#7nZRFw{R(47KCp}tjQxVEA9XsNqq(50ZOP3n37Ps z5WoZPChOyNveDuhen5pi$U9_VV_yxsl#>*Wp2)I|=UF#`mtfhET_3EuQ)R*wX&50o zv}18zV)o^?gaK^Ee})B(M=oT45sv2x@|RxM8>(`o<-=1?VmVUCG{Msrd$?eE9^_l?6#NE&f>;Hm^0<%ujlgi7u~+yy17e`H!gj!xm=`zC0C~1$~EoH|_LodfT(OlxinrL@v%m%zNfuI^>^KR^vW*Z++`=LVLOC69G+&(#`Rgi=sRC zJji=%SZZ!1Bb1vqPRE;M_Tis(TDP7d-rd}$lB;cg;#xP7cckZx&2#%VYBI0?ewB6l z)@J3wrt;>rj&yP1Cc7|>A|taxKV^ibn6IRMVV&SVl0V_w%H%8M6T#@vev(Q z`mTHZRBDV-#Yn)IZuPZ4iT00YiSu9awS;84OBgo4@aY7}^&La9wcdZ<6&>O{E89p^ zCs}@Y8Lx4`&h3tiuby?~(>?#9ZLoY)b})~?-|=SBMnR}u^jO$KYOriWFnv%l(h(@}n6Yx~QR zfSwQr1ug=_wDg_4m;8BkKV@`fPdA?eaI~-Bzvqk zsp6Gd9rt?E6wIASaaEb2#lx?r+~k7!vXXOLCLag8E+jI_<4y(SSJrCixqYla--te2 zaJ(s)WV9tk=w;hoJ^y2qqL-4-&axS+O3uEBV3tK>AL9>H5-oc8p4@t;GTp_{sJAF3 zzuAUWPq?K@>zGw8+x2n|zEckqEA?zHAA3yh?Cf7?J~}91bj;o@yg0dm*>v)A`SDU0 z#*oYZ2J)%0$J9N@=6_Q0jv-}h^wkJ|<8>t-f{9a}Z1gAO!y+VhrXdM9)^5hQ_2L9s z*MVfuVAV3x#G8v>63%*@*gJA?&lRu|NQhpPeTYG6i%7Xz0MiDId_tX(Y%zj+ng438L_{(|~>jGCRpF&wbw@oH?~Z*5IsLDJcqH!g z6vJZElbImtw1s71i5NkJ+OHu^?+WTDH*kVw{=ZvSc@Xd(jszmk(aY4^q|HzUEp1?Q zP`}V@+DO{4?d2$TrVYegF)%VmDVd@aN)=Go6;P%g-W&%(-=KVCRMJpJ@=(@`i5cxPHqg~E zHIp^cg$M`)J**J|)%?$cl5ig2g6bW#2au|iG?%WSeE-M*AAnz1Cf26t;0(32{K~uI&-h@h?(usj&f0VN3`#Bao z&=Cu+6kQSp-`OF4RI)!b*P-YS_K15CZQY4pKTKwDV%Bb4s68k=g4mA`rc2Q55NU7| zpxi7YVjb=A4j`7+@(oRJY{~O2Ec9Sn=P}p@#lOV-u4p&NGaQQn^pmvpyLcCcV*@$9 z4o)N$h!Yh43J~7e8EE!B zUV$kcoTVc>WHZ?91Cf`W3*avrXTN-+5?+Sz@XZkLA($y!6G*kQ4$g%~t%bPK!mD$C zdFfo5Du83*aY-R;CMb^8)cu8}eY@as10kq6@B+CKN;8TeTvK?^I0*W;BrWKVo3t{7 z9GnY}f&_7uQ8c+UVa@1O_4SXR6#K8Nn zWUQ$Ue5M&f^#)O)pm}Hb&4N$zLWs;@IAZ0LFPsLSN`z?SP#BH&{f1j;A%GWoIbcnD zEnF+OZ4!b$idqR>#Zn1}!cBk>v^p9NrFzhp8wBA{xTOt(7RIcAuG*rn9A8juO+SuJ zh{eT^=avl=mMl+D&mC^4qS&4wVd3*DghB7%mnCX-4AfPl=wP`P1~M!yFCbdBsU^*_ wLy~_F_|sCgoJ(sQ32}8Uu906zQ3@9tRUR;02Rf(-ge>?Q=RhD900e>fFSbDM0ssI2 literal 0 HcmV?d00001 diff --git a/core/lib/slf4j-api-1.7.5.jar b/core/lib/slf4j-api-1.7.5.jar deleted file mode 100644 index 8766455d8756ebdac09d36eea2c08db90c18b124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26084 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 diff --git a/lib-test/OpenRocket Test Libraries.iml b/lib-test/OpenRocket Test Libraries.iml index c32cfac6d..7202ad899 100644 --- a/lib-test/OpenRocket Test Libraries.iml +++ b/lib-test/OpenRocket Test Libraries.iml @@ -70,5 +70,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/swing/.classpath b/swing/.classpath index 169795d31..2de126122 100644 --- a/swing/.classpath +++ b/swing/.classpath @@ -14,7 +14,7 @@ - + diff --git a/swing/OpenRocket Swing.iml b/swing/OpenRocket Swing.iml index 408d6a61b..7ac4a7284 100644 --- a/swing/OpenRocket Swing.iml +++ b/swing/OpenRocket Swing.iml @@ -71,15 +71,6 @@ - - - - - - - - - @@ -174,5 +165,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/swing/build.xml b/swing/build.xml index 0c786bd31..e7750cbd9 100644 --- a/swing/build.xml +++ b/swing/build.xml @@ -110,12 +110,11 @@ - + - - +