receive notifications of changes to the rocket.
Dispose PhotoStudio windows on close, and add a close event to remove
event handlers, to avoid leaking resources.
Spinner options in photo frame does not have an editor, so doesn't
allow for keyboard edits. Add an EditableSpinner class which
automatically sets the editor and use that instead of JSpinner.
Note: this EditableSpinner can be used throughout OR, but not including
everywhere as it is a large change at this point and I'd rather wait for
the refactor until after release, so change is small.
Fixes#873
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Restore the behavior from the 15.03 version of the flight configuration
panel. Selected flight configuration is synchronized with the rocket
panel where the design is being done and vice versa.
Fixes#916
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Relying primarily on the FBO option for capabilities passed to the
GLJPanel interferes with the part picking algorithm. Revert that
piece of the fix.
Fixes#937
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
Use the provided alpha from the color when it is available when
rendering the model in the 3d finished view. The 3d unfinished view will
continue to override the alpha to show interior components.
Additionally, enable the GL2.GL_COLOR_MATERIAL for the rendering of
the component to display the right alpha settings.
Fixes#878
Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
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>
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.
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>