2283 Commits

Author SHA1 Message Date
SiboVG
78593a6749 Improve default materials for fins and nose cone 2023-12-24 14:35:51 +01:00
Joe Pfeiffer
5d3bb50f9e
Merge pull request #2412 from JoePfeiffer/fix-2403
Improve accuracy of SymmetricComponent calculations; consider shoulders in Transition moment of inertia calculations
2023-12-22 07:26:18 -07:00
Joe Pfeiffer
8c348ee2b0
Merge branch 'openrocket:unstable' into fix-acceleration-status 2023-12-20 06:00:28 -07:00
JoePfeiffer
42019237bf Merge branch 'unstable' into fix-2403 2023-12-19 14:32:59 -07:00
JoePfeiffer
5b18f73da0 Consider shoulders in moment of inertia calculations 2023-12-19 09:02:23 -07:00
JoePfeiffer
b5b3ac2b3d Create Transition::calculateProperties() to update component properties as needed instead of recalculating for shoulders every time they're called. 2023-12-13 09:57:35 -07:00
JoePfeiffer
9f13635357 Moved calculation of all body tube properties into BodyTube instead of punting some to SymmetricComponent. This is both a little faster and will let me compare the results from the two in unit tests. 2023-12-13 08:42:05 -07:00
JoePfeiffer
3e1341271c Modified integrate() to use geometry of actual frustums in geometric calculations instead of cylinder approximations. This turned into a pretty complete rewrite of integrate(), and the creation of several helper functions.
Changed the name of integrate() to calculateProperties() to better express the purpose rather than the method of calculation. It's looking forward to a future PR when I'll be modifying BodyTube to use SymmetricComponent's variable caching.
2023-12-13 08:41:11 -07:00
Sibo Van Gool
c136436284
Merge pull request #2416 from SiboVG/issue-2178
[#2178] Add South/West unit for latitude/longitude
2023-12-09 02:03:15 +01:00
Sibo Van Gool
5746aa1350
Merge pull request #2406 from SiboVG/refactor-warnings
Add Warning component source to Warning
2023-12-09 02:02:41 +01:00
SiboVG
52f33a3429 Merge branch 'unstable' into issue-2178
# Conflicts:
#	core/src/net/sf/openrocket/simulation/FlightDataType.java
#	core/src/net/sf/openrocket/unit/UnitGroup.java
#	swing/src/net/sf/openrocket/gui/dialogs/preferences/LaunchPreferencesPanel.java
#	swing/src/net/sf/openrocket/gui/dialogs/preferences/UnitsPreferencesPanel.java
#	swing/src/net/sf/openrocket/gui/simulation/SimulationConditionsPanel.java
2023-12-01 19:28:40 +01:00
SiboVG
0ff32888a1 Refactor searchable and categorizable combobox to general method
In case we want to use it for other parts of the UI :)
2023-11-25 03:00:50 +01:00
SiboVG
341ab81b79 [#2338] Use searchable and categorizable combobox for flight data type 2023-11-24 20:47:05 +01:00
SiboVG
764ebac7b0 Merge branch 'unstable' into issue-2338 2023-11-23 17:31:55 +01:00
Sibo Van Gool
ce2c9c97fe
Merge pull request #2407 from SiboVG/issue-2345
[#2345] Reintroduce motor ignition delay optimization
2023-11-23 17:31:24 +01:00
SiboVG
f3a58598d6 Merge branch 'unstable' into issue-2338 2023-11-22 23:22:34 +01:00
Sibo Van Gool
42102647b2
Merge pull request #2410 from SiboVG/fix-rasaero
Use meters->feet conversion for RASAero rod length
2023-11-22 23:09:07 +01:00
JoePfeiffer
e92e2bc3a9 Instead of incrementing through the slices of the component, multiply to recalculate each slice (from some comments in the code I suspect there were some problems with floating point error accumulating).
Increase the number of divisions to 128, so division is just an exponent change and won't cause floating point error

a little tidying
2023-11-22 11:32:32 -07:00
JoePfeiffer
ff6b23f366 merge integrateInertiaVolume() into integrate() 2023-11-21 16:40:57 -07:00
JoePfeiffer
4b1c6a4f4b eliminate SymmetricComponent::integrateInertiaSurface()
Previously, the code calculated the volume of a component, and if that volume was too small calculated its moments of inertia based on the surface instead of the volume. The decision wasn't based on the thickness of the shell (which might have made sense to me), it was the actual volume. The result is any really small component had its moments of inertia calculated using this surface method, no matter how "solid" the object was.

The cause of #2403 was that this method was used to calculate the moments of inertia in the .ork that failed, but the actual CG was used in the parallel axis theorem. This put the CG in a different place than a "surface CG" would have, so the longitudinal moment of inertia ended up less than 0 triggering the crash.

Now, if a component is so small that's volume is 0 it is assumed its contribution to moment of inertia must also be negligible, so the moments of inertia are set to 0 in this case.
2023-11-21 16:01:41 -07:00
JoePfeiffer
9fec2af7a8 Use Double.NaN to identify values that haven't been calculated. Spotting uncalculated values by checking for <0 is just asking for trouble down the line. 2023-11-21 15:54:35 -07:00
SiboVG
6e2d79e156 [#2409] Don't use fixed precision for shape parameter 2023-11-21 00:45:23 +01:00
SiboVG
c6ecc5c035 Use meters->feet conversion for RASAero rod length 2023-11-21 00:31:36 +01:00
SiboVG
8f4ccd747a [#2345] Reintroduce motor ignition delay optimization 2023-11-19 03:40:41 +01:00
SiboVG
e3b52efc84 Add message source to message 2023-11-19 01:43:05 +01:00
SiboVG
9c163fa551 Rename custom color class to ORColor 2023-11-19 00:47:55 +01:00
SiboVG
c0c00dd6c3 Merge unstable 2023-11-17 23:29:05 +01:00
SiboVG
06ca16724d Merge remote-tracking branch 'origin/unstable' into unstable 2023-11-17 23:22:35 +01:00
SiboVG
d838157209 Only support Java 17 2023-11-17 23:22:25 +01:00
JoePfeiffer
e752aa6c28 Merge branch 'unstable' into fix-acceleration-status
Fix conflicts between FlightEventsTest on the two branches
2023-11-17 11:02:04 -07:00
Joe Pfeiffer
d9a3927637
Merge pull request #2346 from JoePfeiffer/inch-surface-roughness
Add "inch" units to surface roughness
2023-11-17 09:01:01 -07:00
Joe Pfeiffer
5507ae06e1
Merge pull request #2402 from SiboVG/issue-2388
[#2388] Sync wind average speed, standard div & turbulence widgets
2023-11-17 08:59:15 -07:00
SiboVG
cdeef020b7 Set wind turbulence to 0 when average speed is 0 2023-11-17 02:08:19 +01:00
Joe Pfeiffer
7fd390e4d3
Merge branch 'openrocket:unstable' into inch-surface-roughness 2023-11-15 11:02:36 -07:00
JoePfeiffer
c0b0eab4e6 Clean up code for mass and CG overrides
For component assemblies, set CG to CG of children when overriding mass
Fix handling of "override for children"
2023-11-15 09:13:09 -07:00
JoePfeiffer
98562bcfa7 Fix comments regarding mass and CG overrides 2023-11-15 07:09:20 -07:00
SiboVG
94c2c1ef38 Major refactor of simulation options UI 2023-11-15 04:41:31 +01:00
Joe Pfeiffer
2e599f18e0
Merge branch 'openrocket:unstable' into inch-surface-roughness 2023-10-26 15:31:06 -06:00
Joe Pfeiffer
92d692f029
Merge branch 'openrocket:unstable' into fix-acceleration-status 2023-10-26 15:30:45 -06:00
JoePfeiffer
01f1dd1dc6 Avoid divide by 0 in TubeCalc when velocity is 0 by setting CD to 0 in this case. 2023-10-26 14:06:42 -06:00
Sibo Van Gool
e46c0bec2b
Merge pull request #2379 from SiboVG/issue-2378
Include radius clamping in clamping exclude
2023-10-21 01:42:44 +02:00
SiboVG
10c4d3da82 Include radius clamping in clamping exclude 2023-10-21 01:42:16 +02:00
Joe Pfeiffer
29e3166487
Merge branch 'openrocket:unstable' into inch-surface-roughness 2023-10-17 07:57:14 -06:00
Joe Pfeiffer
831ef43233
Merge branch 'openrocket:unstable' into fix-acceleration-status 2023-10-17 07:56:56 -06:00
Joe Pfeiffer
d8434e8550
Merge branch 'openrocket:unstable' into fix-2278 2023-10-15 06:42:21 -06:00
JoePfeiffer
bcdf32ecba Don't include shoulders in CG calculation for applying parallel axis theorem to longitudinal inertia, as they aren't included in calculation of longitudinal inertia itself. 2023-10-15 06:20:10 -06:00
JoePfeiffer
141b5ec845 Turned out the unpopulated column also affected CSV export; also, I left a line of debug in 2023-10-12 14:37:21 -06:00
Joe Pfeiffer
27e668cbce
Merge branch 'openrocket:unstable' into fix-acceleration-status 2023-10-12 12:35:32 -06:00
JoePfeiffer
03a6e614b8 load/save optimum delay time 2023-10-09 10:17:14 -06:00
JoePfeiffer
2759711950 Explicitly store optimum delay in flight data, instead of recalculating from flight data branch of time it's wanted 2023-10-09 10:16:49 -06:00