The TubeFinSetShapes were applying the supplied transform too many
times, resulting in the the shapes being offset off the viewing area.
The offset transform is already applied to the component instance
that is provided to the TubeFinSetShapes methods, so applying the
transform resulted in the offset being moved to the right.
This change removes the transform being applied to the component
locations when retrieved and only applies a linear transformation
to the component locations when applying the base rotational
transform. Using the linear transform avoids applying the offset
in addition to the rest of the transform.
The problem existed in both the side view and the back view, however
the back view was not as obvious due to the nature of the view. The
common code between both functions applying the transform is
refactored into a common location to reduce the amount of code.
Additionally, documentation was added explaining the transform process
that is being applied to the component locations for the final shapes.
Fixes#605
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Modify code for getLongitudinalUnitInertia() and getRotationalUnitInertia() so similar functions have more similar code.
Add comments to clarify getLongitudinalUnitInertia() and getRotationalUnitInertia()
testAlphaIIIStructure
Three fins in finset, so Ixx and Iyy are reduced by a factor of 3
Ixx reduced from 5.2771946530250825E-5 to 1.7590648843416942E-5
Iyy reduced from 1.3580770106050167E-4 to 4.526923368683389E-5
Total rocket MOI changed to Ir=1.8763734635622462E-5 and
It=2.1238394331365588E-4
testFalcon9HComponentMOI
Three fins in finset, so
finset rotational MOI changed from 0.00413298 to 0.001377661595723823
finset longitudinal MOI changed from 0.01215133 to 0.004050443797127646
testFalcon9HeavyBoosterLaunchMOIs
Two finsets, each three fins. Each finset's MOI are reduced as in
testFalcon9HComponentMOI, resulting in change to totals
Ir=0.013480523485489424, It=0.07017476021288252
testFalcon9HeavyBoosterSpentMOIs
Two finsets, each three fins, as above
Ir=0.010420016485489425, It=0.06398514917026163
testFalcon9HeavyBoosterStageMassOverride
Two finsets, each three fins, as above
Ir=0.007100144485489424, It=16.030625168315694
testFalcon9HeavyComponentCMxOverride
Two finsets, each three fins, as above
Ir=0.007100144485489424, It=0.047289449862727435
testFalcon9HeavyComponentMassOverride
Two finsets, each three fins, as above
Ir=0.026027963480146098, It=0.35928666329363634
Remove extra multiplication by finCount in FinSet:getLongitudinalUnitInertia() and FinSet:getRotationalUnitInertia()
Restore check for single fin before transfering to center of fin set in FinSet:getRotationalUnitInertia()
I added parameter and return value desriptions for the method
StringUtil.isEmpty(String s).
Also, I added a test class StringUtilTest to test this method
(this method didn't have a test before).
Adds gcc as a build package to work around a recently introduced
snapcraft bug (https://bugs.launchpad.net/snapcraft/+bug/1883392) which
causes the snap to fail to build due to not having gcc for the gnome
extensions.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Gracefully handle the graphics editor options when running
from within a snap. When running in snap confinement, the graphics
editor option in the preferences panel is removed and edits to an
existing decal will use xdg-open, allowing the user to select the
appropriate application for editing using the system options.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
The Desktop.open() method does not work within a Snap confined
application because it uses gnome apis which are restricted or
only defined within the snap itself. The confined snaps allow
for xdg-open to open the default application to handle opening
the specified mime-type (application/pdf) for print previews and
printing.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Add plugs which use the personal-files interface for snaps to allow
the users to enable OpenRocket to access the ~/.java and ~/.openrocket
directories. Currently, these must be manually connected by the user,
so the launcher is updated to ensure the user experience degrades
appropriately when they are not connected.
This method allows for new installations to OpenRocket without any
changes and for users migrating to the snap from the jar to be able
to connect their existing preferences and databases.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>