Skip to content

Commit

Permalink
Borders of some rotated shapes not correctly updated when located out…
Browse files Browse the repository at this point in the history
…side the page

Borders of some rotated shapes not correctly updated when located outside the page
https://bugs.launchpad.net/latexdraw/+bug/1584487
  • Loading branch information
arnobl committed May 22, 2016
1 parent 490eb38 commit 91e0de7
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 42 deletions.
2 changes: 2 additions & 0 deletions latexdraw-core/net.sf.latexdraw/release_note.txt
Expand Up @@ -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
Expand Down
@@ -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.<br>
* <br>
Expand Down Expand Up @@ -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());
}
}
Expand Down
@@ -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.<br>
*<br>
Expand Down Expand Up @@ -167,8 +166,8 @@ public void updateBorder() {
final List<IPoint> 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) {
Expand Down
@@ -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;
Expand All @@ -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.<br>
* <br>
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit 91e0de7

Please sign in to comment.