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>
Repaint the scrollpane on returning to 2D view from 3D view. This forces
the scrollbar to be repainted rather than show the remnants of the 3D
rendering.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
GLJPanel handles display scaling better than the GLCanvas does natively.
Change to use the GLJPanel always when rendering in 3D mode. FBO
(offscreen rendering) will be set on the GLJPanel via the
GLCapabilities.
Also, ensure when creating a Graphics2D object from a GLOverlay to set
the current transform to the default transform for the component. The
default transform of the swing components will take into account the
scaling of the screen that it is rendered on. By setting the transform
of the overlay, we can be sure that it gets the scaling information as
well.
Fixes#854
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
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>
Calls invalidate() as the last action inside MotorInformationPanel.updateData(), forcing a redraw of the panel. This makes sure the panel is large enough to display all of its contents
Also, clean up display of the compatible cases a little bit by adding a space between cases, and wrapping in <html></html> tags to allow line breaks.
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>
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>
The GlyphVector.getVisualBounds() does not include leading or trailing
spaces. Account for this when drawing stability information by
increasing the unitwidth by the length of one space.
Additionally, the code is inefficient in that it creates a new Font
object each and every time a new text string is created for graphical
display. This is unnecessary and adds overhead to the VM memory
requirements.
Fixes#880
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Exporting the rocket to a rocksim format should use the extension .rkt
rather than .ork. However, refactoring the code between save as and
export in commit 4924773 in correctly used the .ork extension in the
exportAsAction.
Fixes#872
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Explicitly set the glViewport size on reshape in order to ensure it is
rendered at the full scale of the viewport. Not doing so causes the
display to render very small.
Fixes#790
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Make the points in the fin point scale figure red (once again) to better
show the location of the points.
Fixes#856
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Commit 312e90 updated finset count and tests for FinSets but not
the TrapezoidFinSetTest.testMultiplicity()
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
When setting up the view for 3D figures, the Y span is doubled
incorrectly. This appears to be legacy behavior and the BoundingBox
itself accounts for the full span. Removing the 2x scaling resolves the
rocket scaling appropriately.
Fixes#788
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Adjust the colors in the freeform fin editor to use a blue hue as
was used in previous releases. Major grid lines are slightly darker
than minor grid lines. Also Adjust selected point color to be red.
Additionally, adjust the minor and major tick size to scale with the
current selection.
Fixes#836Fixes#837
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
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>
The snap store review team has approved auto-connecting the plugs
for OpenRocket to allow the application to access the .openrocket
and .java/.userPrefs directories on Linux without needing user
interaction.
This patch adjusts the snapcraft.yaml definition per the feedback at
https://forum.snapcraft.io/t/request-for-personal-files-for-openrocket/20579/5
This patch will also migrate the java preferences from the user's
home directory to the $SNAP_COMMON directory since write access will
not be allowed to the default preferences api.
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
2D side view renderings of mass components within body tubes
were adjusted forward based off the radius of the object. This
change corrects the X position adjustement and makes it consistent
with 15.03 and 3D renderings.
Closes#785Closes#828
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
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()
Only set the CG and CP for the 3D renderings when the length
is greater than 0. This makes the 3D rendering behavior consistent
with the 2D side view
Fixes#776
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>