1956 Commits

Author SHA1 Message Date
Raketenolli
58c721d1cb Allow rocket info to show stability margin as percentage of length
* create a new class PercentageOfLengthUnit
* add new unit to stability units
2021-07-04 20:00:02 -07:00
Sibo Van Gool
46d9841947 Fix saving inner appearance 2021-06-30 00:28:07 +02:00
Sibo Van Gool
5fa3b2cd3a Add custom outside and inside appearance 2021-06-28 20:46:45 +02:00
Miacid
54332d4355 Merge branch 'unstable' into fix-954 2021-06-26 21:10:44 -07:00
Miacid
51c1c78988 Route change events through OpenRocketDocument so Photo Studio can
receive notifications of changes to the rocket.
Dispose PhotoStudio windows on close, and add a close event to remove
event handlers, to avoid leaking resources.
2021-06-26 20:59:36 -07:00
Sibo Van Gool
c1281a6951 Add radial positioning shock cord 2021-06-26 15:58:10 -07:00
Sibo Van Gool
3f84149cb8 Updated unit tests to match new lug rotation 2021-06-26 15:23:50 -07:00
Sibo Van Gool
0fb216ae5a Default lug & rail rotation 180°, no refactor 2021-06-26 15:23:50 -07:00
Billy Olsen
965311ff4e FlightConfigurableParameterSet Predictable Orders
Change to use a LinkedHashMap instead of a HashMap in the
FlightConfigurableParameterSet. This ensures that the ordering is
consistent with the way the user added the flight configurations.

This will also be true for when reading the flight configurations from
a file. Additionally, to preserve the ordering, do not sort the
FlightConfigurationIds in getIds().

Fixes #845

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-06-04 20:48:34 -07:00
Billy Olsen
16527a2862 Update copyright year in LICENSE.txt
Update the copyright year in the license file.

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-06-04 16:56:13 -07:00
Billy Olsen
5fef01a2e0 Update Copyright information and Contributors
Add a build.copyright property to build.properties to use in the about
dialog for the copyright year. Update splashscreen image to copyright
year 2021. Update contributor list and point to URL for all
contributors.

Fixes #814

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-06-04 16:56:13 -07:00
Billy Olsen
1962cfac4e Fix FinSetTest.testTabLocation
Commit 936333a2 re-introduced the AxialMethod.ABSOLUTE as an offset
method but did not update the corresponding unit test. Add in the
expected offset value for AxialMethod.ABSOLUTE.

Fixes #931

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-06-02 19:52:35 -07:00
Joe Pfeiffer
de10d819bc
Merge pull request #920 from neilbalch/RockSim_Import_Dist_Fix
Fix #881, #907 issues
2021-05-24 16:41:19 -06:00
Joe Pfeiffer
8519e831cf
Merge pull request #893 from wolsen/fix-bug-reporter
Update Bug report dialog
2021-05-20 19:49:48 -06:00
Neil Balch
93633a27c3 Fix #907 by re-adding ABSOLUTE axial offset 2021-05-13 00:01:45 -07:00
Neil Balch
f2b15c10ea Fix #881 by inverting location value imported from RockSim 2021-05-12 19:22:21 -07:00
Neil Balch
62df54f9a1 Fix proper UTF-8 encoding for CSV export 2021-05-11 11:05:00 -07:00
Billy Olsen
1d0a2c8cf8 Update thrustcurves from latest Thrustcurve.org data
Update the thrustcurves from the latest Thrustcurve.org data. This
corrects some of the case information.

Fixes #888

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-02-22 20:03:11 -07:00
Billy Olsen
741db61320 Update Bug report dialog
Updates the Bug report dialog to send users to either raise issues
via the github issues URL for OpenRocket or to send an email to the
forum.

This removes code to auto-submit bugs from the bug report dialog. The
service does not appear to be working and github issues cannot be
anonymous which complicates auto-submission. Instead, just direct users
to the right place.

Fix #860

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2021-02-20 12:09:17 -07:00
JoePfeiffer
fefd805fcc save simulation step data after step, not before it 2021-02-05 21:55:48 -07:00
JoePfeiffer
1942f70b67 correct linear interpolation of motor CG 2021-01-29 09:29:50 -07:00
Billy Olsen
b248f74d5c Fix TrapezoidFinSetTest
Commit 312e90 updated finset count and tests for FinSets but not
the TrapezoidFinSetTest.testMultiplicity()

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2020-12-19 19:34:52 -07:00
Billy Olsen
312e90b9f7 Restore default fin count to 3 for TrapezoidFinSet
TrapezoidFinSet fin count was reduced to 1 in previous commits in order
to fix a bug. The actual problem was that the instancecount was not
persisted in the ork file. This change restores the default to 3.

Fixes #850

Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2020-12-19 13:04:58 -07:00
JoePfeiffer
794fcfed4a setAxialMethod() only changes the external view of a component's position, it doesn't change the actual position. Therefore, it should be a NONFUNCTIONAL_CHANGE 2020-12-12 19:14:19 -07:00
JoePfeiffer
f5265ffcb5 Fire a change event to update the UI when FinSet::setTabOffsetMethod() is called. 2020-12-12 19:14:19 -07:00
JoePfeiffer
f8430c6504 Calculate fintab height from body radii at for and aft fintab extents, instead
of assuming constant radius body tube
2020-12-12 19:13:08 -07:00
JoePfeiffer
afbccd416d Fix call to types.toArray() in ComponentPresetDatabase.java to generate array using correct type instead of trying to do a cast. 2020-12-09 16:14:04 -07:00
JoePfeiffer
123aa2d296 In FreeformFinSet.java:update, only validate freeform fin tab length if fin length has changed (ie don't revalidate when fin tab length has changed) 2020-12-02 19:18:35 -07:00
JoePfeiffer
b5a68a7636 Add logging for debug 2020-12-02 19:18:35 -07:00
JoePfeiffer
495ef34970 Merge old findMotor() and findMotors() methods in ThrustCurveMotorSetDatabase.java
Turns out the motor digest hash function can have collisions.  Since the digest is stored in the .ork file we don't want to rewrite it as that will cause *lots* of spurious "thrust curves don't match" warnings, and I really don't want to get into looking up by some sort of new digest if it exists else old digest.

Since some motor description fields are also stored in the .ork file, I'm effectively using these as a key to resolve collisions.  Now that I need to pass them in to the findMotor() method, I'm merging it with findMotors() (which searches based on motor descriptions)

New combined method returns all motors that match digest and description;
If there are none returns all motors that match digest;
If there are none returns all motors that match description (may be empty)

Passing a digest and no other description emulates the behavior of the old findMotor() (but it may return more than one motor).
Passing description elements and no digest duplicates the behavior of the old findMotors()
2020-11-17 15:02:58 -07:00
JoePfeiffer
db64a85a3a add logging to ThrustCurveMotorSetDatabase for debug 2020-11-17 10:41:54 -07:00
Joe Pfeiffer
6582b24bc4
Merge pull request #809 from JoePfeiffer/fix-807
get rid of error message when no data for motor in specified format (fixes #807)
2020-11-07 09:43:08 -06:00
Daniel_M_Williams
6d4c1eb20d [doc] Update version string to '20-11-alpha-16' 2020-11-07 10:38:07 -05:00
JoePfeiffer
d231cb320f Get rid of a bit of duplicate code
Handle case with no data in specified format for motor
2020-11-05 10:41:15 -07:00
Daniel_M_Williams
cf8b40229b [fixes #751] Unifies angle-offset labels to 'Rotation' for component config dialogs 2020-11-01 19:51:13 -05:00
Daniel_M_Williams
c9d408a8ee [fix #801] eliminate redundant angle-offset property in LaunchLug component 2020-11-01 19:38:16 -05:00
Daniel Williams
67fed96137
Merge pull request #672 from JoePfeiffer/use-simulation-options
Use simulation options (addresses
2020-11-01 18:54:10 -05:00
JoePfeiffer
8cf94a57f0 add logging to SimulationStatus for debugging 2020-10-20 09:53:28 -06:00
Daniel_M_Williams
ccc8e4ab80 [fixes #774] Override-component-mass works correctly on massive components 2020-10-15 10:28:08 -07:00
Daniel_M_Williams
a4e7f2175c [fixes #775] component override-CoM-x works correctly
mass calculations now correctly treat the center-of-mass offset as relative to the individual
component (whereas, previously, it was an absolute offset / relative to the center of the rocket)
2020-10-15 10:28:08 -07:00
JoePfeiffer
96f46867c1 Get rid of unnecessary line feed to clean up indentation 2020-10-10 09:39:37 -06:00
JoePfeiffer
0381be91ca Check that next symmetric component, if non-null, is active 2020-09-30 20:40:28 -06:00
JoePfeiffer
796d245bbe fireChangeEvent() when activating/deactivating a stage to force recalculation of bounds on stage separation 2020-09-26 17:42:57 -06:00
JoePfeiffer
1036ac98bf add logging to BarrowmanCalculator for debugging 2020-09-26 16:41:00 -06:00
JoePfeiffer
a44c90d522 Since FlightConfiguration:getContextListAt() is now only returning contexts which are active, change name to getActiveContextListAt(). Note that it's only ever called from FlightConfiguration:getActiveInstances() and recursively, so this is making the two method names consistent. 2020-09-12 14:49:21 -06:00
JoePfeiffer
5e64b3e565 Correct FlightConfigurationTest to enable Stage 1 of Falcon9Heavy before using getActiveInstances() to obtain its component instances 2020-09-12 12:29:24 -06:00
JoePfeiffer
20ab8ef8b1 Only calculate instancemap from active components
One thing to mention is I had a choice of either adding a special case for the rocket itself, or change the result of isStageActive for stage -1 to be true instead of false as previously.  I couldn't see a place where the previous version mattered, so I changed it.
2020-09-09 17:17:10 -06:00
JoePfeiffer
206ba58a7e Modified MassCalculator unit test to test at nonzero ignition time 2020-09-09 17:10:29 -06:00
JoePfeiffer
f5d56f6e99 Correct motor mass calculation for motor ignition time
Adds the MotorClusterState from the current SimulationState to the MassCalculation constructor.  The ignition time of each motor is subtracted from the current simulationTime to calculate its current mass.

MassCalculation is also used for static analysis; in this case a synthetic time is passed (and there is no SimulationState).  In this case, a null is passed in to the MassCalculation constructor; whether or not this the case is used to determine whether or not to calculate a motor time based on its ignition time.

Also clamp motorTime from MotorClusterState to be no less than 0 when calculating motor mass.
2020-09-09 17:10:29 -06:00
JoePfeiffer
b64a3b3fa8 The simulation now uses mass data from the entire motor as a unit,
rather than separating out the propellant data.  This commit clarifies
the code by replacing instances of "propellant" with "motor" in
variable names and messages where appropriate.

It does not update the translations into other languages.
2020-09-09 17:10:29 -06:00