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).
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>
Updates the print dialog to allow for simulations to be re-run
or not. Selecting the "Update simulation data" checkbox will
re-run any out of date simulations prior to generating the
design report.
Fixes#637
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Update the transparency of the exported icons so there isn't a white
background clashing with the button color. Additionally, the tube fin
and rail button small icons were updated to be more in line with other
icons.
The tube fin is bigger and has the body tube showing like other
fin small icons.
The rail button works better in a side profile rather
than an offset profile.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
It turns out that the assumption of radial symmetry is absolutely pervasive in our CP calculations. Looking at FinSetCalc.calculateNonAxialForces(), we don't actually compute the CP of a fin -- we calculate its X value, and pin it to Y=Z=0.
The only exception to this is in BarrowmanCalculator.calculateNonAxialForces(), where the pinning only takes place if there are three or more fins in a FinSet. If we remove the test for number of fins in the FinSet, we are in essence making the assumption that there are more fins *somewhere* which will end up being radially symmetric.
Rail Button icons have been updated to better match the theme
with the rest of the icons. Tube Fin icons have been updated
with a larger tube for the fin (rather than the launch lug icon)
in order to disambiguate the two options.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
FreeformFinSetTest.testFreeformCMComputation_triangleOnTransition
was broken with the last merge. This change updates the expected
area for the fin tab to be the area of the triangle under the
curve as well as update the new CG contants in the tests.
Identified in #631
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Use the FinSet.getBoundingBox() when computing the bounds for the
current configuration in FlightConfiguration.calculateBounds().
The FinSet already contains a BoundingBox method, however it returns
a larger BoundingBox than necessary to encapsulate the component.
Change the FinSet.getBoundingBox() to create a bounding box of the
smallest size to ensure a tight bounds for the FinSet. This is done
by taking each of the locations for the component and determining
where the fin tip point is and updating the BoundingBox with this
location.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Use the information provided in the getActiveInstances() in order to
calculate the length of the rocket. This change takes each component
instance and uses the component bounds and the instance's transform
in order to determine the instance's actual bounds. The length is
then calculated as the difference between the min and max X values,
using the BoundingBox.
Note, this particular change special-cases a few of the components
in order to get the right length. It is preferred to revisit each
special case in subsequent patches in order to keep this patch set
minimal for the time being.
The length calculations are already stressed during unit tests, but
the results are a bit more accurate and thus the unit tests are
updated to reflect the new values.
Fixes#452
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>