- These two methods did the same thing, so this patch removes the former from RocketComponent and descendants
- Wherever used, "PositionValue(...)" was replace with "AxialOffset(...)"
- Removed some extraneous redirect definitions of PositionValue(...)
- Fixed some UI references to the old method
- Rocket total mass is split into 'dryMass' and 'propellantMass'
-- each mass type has a corresponding calculation method in MassCalculator
- Calculating Inertias and Center-of-Mass FOR MOTORS assume:
- time-invariant x-coordinate
- time-decreasing density
- mass correctly tracks propellant usage, as measured by thrustCurves
- elimated MassCalcType enum: was not actually solving a problem.
- simply use motorTime: 0 for launch Double.MAX_VALUE for burnout
- NO_MOTORS is represented by a configuration without attached motors
-- try: "rocket.setSelectedConfiguration( rocket.getEmptyConfiguration())"
- 'dry mass' vs 'total mass': 90% of the time, a caller wanted 'total mass'
- total_mass = dry_mass + propellant_mass
- mass @ simulation time wasn't represented by the enum, had existing overloads anyway
- get vs calculate methods:
-- gets revalidate the cache, then retreive specific information
-- calculate simple calculate the desired information, and ignore the cache.
--- I'm particularly confident about cache reliability:
particularly as it doesn't account for changing time during simulation.
- reduced / simplified debugging messages
- Cleaned up the ThrustCurveMotor api interface
-- Converted 'getTimePoints().length' -> 'getSampleSize()'
-- Unified ThrustCurveMotor gets to the form getXXXX(double motorTime)
-- Restricted access for several methods from public -> protected
- Updated ThrustCurveMotorTest.java
Current limitations: Alpha value does not seem to be saved in .ork file, Depends on color chooser having alpha capability. Does not show up as transparent in "3D Unfinished"
- Fixed translation messages
- FlightConfiguration, MotorConfiguration
- correctly display under debug & production
- Fixed exception throw when adding empty-MotorConfiguration to a FlightConfig
- adjusted some type cast warnings
- Added 'ignore if new==current' paths in rocket configuration functions
-- These if paths break potential infinite loops
- added update code for the main-window selected configuration dropdown
-- now updates when the currently-selected configuration is removed.
- adjusted some class member names to be more descriptive
- When a component lacks an entry for the currently selected FC
-- Code would sometimes fail to create a new motor entry
- removing a flight configuration from a rocket
-- removes all component configurations tied to that configuration Id
- Pulled JComboBoxModel<FlightConfiguration> into its own class: ConfigurationModel
-- removed Rocket.toConfigArray() --> getFlightConfigurationByIndex(int,bool)
-Refactored document.getDefaultConfiguration -> getSelected...
-- because that's what it does. Default is a different thing.
-minor: minor spelling errors and unused fields/functions
- the selected configuration in a rocket is now specified by id instead of instance
- tighted up Configuration UI behavior - operations should now start from selected configuration row
- Rocket.getSelectedConfiguration will now create a new
configuration if only the default config exists
-- added additional unit tests for this behavior in: FLightConfigurationTest
- added test for saving ver 1.08 files to OpenRocketSaverTest
- Converted : "private static final long serialVersionUID ..." declarations to:
"@SuppressWarnings("serial")"
- cleaned up some other random errors:
-- tightened excessive permission modifiers -- public ->
-- change some methods from 'public' to '/*package-local*/'
-Changed default Motor Ignition event to AUTOMATIC
-enabled swing-test path under intellij
-fixed some simple compile errors in swing/test ... IntegrationTest
- added MotorConfiguration constructor which takes a template
-- this allows copy-constructing from the default
-- removed 'name' field: instead, call 'to?Description()'
- condensed & refactored a few debug methods.