diff --git a/latexdraw-core/net.sf.latexdraw/release_note.txt b/latexdraw-core/net.sf.latexdraw/release_note.txt index 3816faa0d..4b669f8d4 100644 --- a/latexdraw-core/net.sf.latexdraw/release_note.txt +++ b/latexdraw-core/net.sf.latexdraw/release_note.txt @@ -4,6 +4,8 @@ Version 3.3.4 Bugs fixed: - Scaling shapes does not work outside the page https://bugs.launchpad.net/latexdraw/+bug/1583116 +- Borders of some rotated shapes not correctly updated when located outside the page + https://bugs.launchpad.net/latexdraw/+bug/1584487 - Copy/paste a plotted shape does not work as expected https://bugs.launchpad.net/latexdraw/+bug/1580483 - Boundaries of a group of shapes not correctly computed when moved outside the page diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java index 2f808796f..7f166d48e 100644 --- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java +++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java @@ -1,30 +1,26 @@ package net.sf.latexdraw.glib.views.Java2D.impl; -import static java.lang.Math.cos; -import static java.lang.Math.sin; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.font.FontRenderContext; -import java.awt.geom.AffineTransform; -import java.awt.geom.Path2D; -import java.awt.geom.Rectangle2D; -import java.util.ArrayList; - import net.sf.latexdraw.glib.models.ShapeFactory; import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.AxesStyle; import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.PlottingStyle; import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.TicksStyle; import net.sf.latexdraw.glib.models.interfaces.shape.IArrow; +import net.sf.latexdraw.glib.models.interfaces.shape.IArrow.ArrowStyle; import net.sf.latexdraw.glib.models.interfaces.shape.IAxes; import net.sf.latexdraw.glib.models.interfaces.shape.IPoint; import net.sf.latexdraw.glib.models.interfaces.shape.IShape; -import net.sf.latexdraw.glib.models.interfaces.shape.IArrow.ArrowStyle; import net.sf.latexdraw.util.LNumber; +import java.awt.*; +import java.awt.font.FontRenderContext; +import java.awt.geom.AffineTransform; +import java.awt.geom.Path2D; +import java.awt.geom.Rectangle2D; +import java.util.ArrayList; + +import static java.lang.Math.cos; +import static java.lang.Math.sin; + /** * Defines a view of the IAxes model.
*
@@ -453,6 +449,7 @@ public void updateBorder() { final IPoint tl = ShapeFactory.createPoint(); final IPoint br = ShapeFactory.createPoint(); getRotatedRectangle(bound.getMinX(), bound.getMinY(), bound.getWidth(), bound.getHeight(), angle, shape.getGravityCentre(), tl, br); + System.out.println(tl + " " + br); border.setFrameFromDiagonal(tl.getX(), tl.getY(), br.getX(), br.getY()); } } diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java index 43a1e5c3d..7d3922ee3 100644 --- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java +++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java @@ -1,18 +1,17 @@ package net.sf.latexdraw.glib.views.Java2D.impl; -import java.awt.BasicStroke; -import java.awt.Graphics2D; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Line2D; -import java.util.ArrayList; -import java.util.List; - import net.sf.latexdraw.glib.models.interfaces.shape.IArrow; import net.sf.latexdraw.glib.models.interfaces.shape.IBezierCurve; import net.sf.latexdraw.glib.models.interfaces.shape.ILine; import net.sf.latexdraw.glib.models.interfaces.shape.IPoint; import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewBezierCurve; +import java.awt.*; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; + /** * Defines a view of the model IBeziershape.
*
@@ -167,8 +166,8 @@ public void updateBorder() { final List ctrlPts2 = shape.getSecondCtrlPts(); double minX = Double.MAX_VALUE; double minY = Double.MAX_VALUE; - double maxX = Double.MIN_VALUE; - double maxY = Double.MIN_VALUE; + double maxX = -Double.MAX_VALUE; + double maxY = -Double.MAX_VALUE; IPoint pt; for(final IPoint aCtrlPts1 : ctrlPts1) { diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java index c20ebcacb..c938b13a6 100644 --- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java +++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java @@ -1,21 +1,5 @@ package net.sf.latexdraw.glib.views.Java2D.impl; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.GradientPaint; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.Stroke; -import java.awt.geom.AffineTransform; -import java.awt.geom.GeneralPath; -import java.awt.geom.Line2D; -import java.awt.geom.Path2D; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; -import java.util.ArrayList; -import java.util.List; - import net.sf.latexdraw.glib.models.GLibUtilities; import net.sf.latexdraw.glib.models.ShapeFactory; import net.sf.latexdraw.glib.models.interfaces.shape.ILine; @@ -27,9 +11,13 @@ import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewArrow; import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewShape; import net.sf.latexdraw.util.LNumber; - import org.malai.picking.Picker; +import java.awt.*; +import java.awt.geom.*; +import java.util.ArrayList; +import java.util.List; + /** * Defines a view of the LShape model.
*
@@ -716,7 +704,7 @@ protected static void getRotatedRectangle(final double tlx, final double tly, fi pts[2] = ShapeFactory.createPoint(tlx+width, tly+height).rotatePoint(gravityCentre, angle); pts[3] = ShapeFactory.createPoint(tlx, tly+height).rotatePoint(gravityCentre, angle); tl.setPoint(Double.MAX_VALUE, Double.MAX_VALUE); - br.setPoint(Double.MIN_VALUE, Double.MIN_VALUE); + br.setPoint(-Double.MAX_VALUE, -Double.MAX_VALUE); // Defining the border of the rotated rectangle. for(final IPoint pt : pts) {