Merge pull request #717 from wolsen/fix/center-rocket-in-side-view

Center rocket in side-view 2d renderings
This commit is contained in:
Daniel Williams 2020-08-01 10:27:58 -04:00 committed by GitHub
commit 27df9c9a71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 10 deletions

View File

@ -1,7 +1,14 @@
package net.sf.openrocket.gui.scalefigure; package net.sf.openrocket.gui.scalefigure;
import java.awt.*; import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D; import java.awt.geom.Ellipse2D;
import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.NoninvertibleTransformException;
@ -443,17 +450,17 @@ public class RocketFigure extends AbstractScaleFigure {
*/ */
@Override @Override
protected void updateCanvasOrigin() { protected void updateCanvasOrigin() {
final int subjectFront = (int)(subjectBounds_m.getMinX()*scale); final int subjectWidth = (int)(subjectBounds_m.getWidth()*scale);
final int subjectWidth = (int)(subjectBounds_m.getWidth()*scale);
final int subjectHeight = (int)(subjectBounds_m.getHeight()*scale); final int subjectHeight = (int)(subjectBounds_m.getHeight()*scale);
final int mid_x = (Math.max(getWidth(), subjectWidth) / 2);
if (currentViewType == RocketPanel.VIEW_TYPE.BackView){ if (currentViewType == RocketPanel.VIEW_TYPE.BackView){
final int newOriginX = borderThickness_px.width + Math.max(getWidth(), subjectWidth + 2*borderThickness_px.width)/ 2; final int newOriginX = mid_x;
final int newOriginY = borderThickness_px.height + getHeight() / 2; final int newOriginY = borderThickness_px.height + getHeight() / 2;
originLocation_px = new Point(newOriginX, newOriginY); originLocation_px = new Point(newOriginX, newOriginY);
}else if (currentViewType == RocketPanel.VIEW_TYPE.SideView){ }else if (currentViewType == RocketPanel.VIEW_TYPE.SideView){
final int newOriginX = borderThickness_px.width - subjectFront; final int newOriginX = mid_x - (int) ((subjectBounds_m.getWidth() * scale) / 2);
final int newOriginY = Math.max(getHeight(), subjectHeight + 2*borderThickness_px.height )/ 2; final int newOriginY = Math.max(getHeight(), subjectHeight + 2*borderThickness_px.height )/ 2;
originLocation_px = new Point(newOriginX, newOriginY); originLocation_px = new Point(newOriginX, newOriginY);
} }

View File

@ -14,13 +14,10 @@ import java.awt.event.ComponentEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import java.awt.geom.Rectangle2D;
import java.util.EventObject;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
@ -29,9 +26,7 @@ import net.sf.openrocket.gui.components.UnitSelector;
import net.sf.openrocket.unit.Tick; import net.sf.openrocket.unit.Tick;
import net.sf.openrocket.unit.Unit; import net.sf.openrocket.unit.Unit;
import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.MathUtil; import net.sf.openrocket.util.MathUtil;
import net.sf.openrocket.util.StateChangeListener;