From 9e508cc4703391622b221a3a7aed00938be9f2ba Mon Sep 17 00:00:00 2001 From: Graydon Hoare <graydon@redhat.com> Date: Fri, 18 Jul 2003 19:20:33 +0000 Subject: [PATCH] [ ChangeLog ] 2003-07-18 Graydon Hoare <graydon@redhat.com> * java/awt/geom/CubicCurve2D.java, java/awt/geom/Line2D.java, java/awt/geom/QuadCurve2D.java, java/awt/geom/Rectangle2D.java: Fix path some calculations, make path iterators follow a consistent style. From-SVN: r69567 --- libjava/ChangeLog | 9 +++++ libjava/java/awt/geom/CubicCurve2D.java | 54 +++++++++++++------------ libjava/java/awt/geom/Line2D.java | 4 +- libjava/java/awt/geom/QuadCurve2D.java | 52 +++++++++++++----------- libjava/java/awt/geom/Rectangle2D.java | 2 +- 5 files changed, 69 insertions(+), 52 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3adf7a52200e..e65465028c89 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2003-07-18 Graydon Hoare <graydon@redhat.com> + + * java/awt/geom/CubicCurve2D.java, + java/awt/geom/Line2D.java, + java/awt/geom/QuadCurve2D.java, + java/awt/geom/Rectangle2D.java: + Fix path some calculations, make path iterators follow + a consistent style. + 2003-07-18 Mark Wielaard <mark@klomp.org> * java/util/logging/Handler.java (isLoggable): Check record level diff --git a/libjava/java/awt/geom/CubicCurve2D.java b/libjava/java/awt/geom/CubicCurve2D.java index 2d303c7f6a75..2bc0b358b190 100644 --- a/libjava/java/awt/geom/CubicCurve2D.java +++ b/libjava/java/awt/geom/CubicCurve2D.java @@ -204,7 +204,7 @@ public abstract class CubicCurve2D implements Shape, Cloneable return new PathIterator() { /** Current coordinate. */ - private int current; + private int current = 0; public int getWindingRule() { @@ -213,7 +213,7 @@ public abstract class CubicCurve2D implements Shape, Cloneable public boolean isDone() { - return current < 2; + return current >= 2; } public void next() @@ -223,52 +223,56 @@ public abstract class CubicCurve2D implements Shape, Cloneable public int currentSegment(float[] coords) { - if (current == 0) + int result; + switch (current) { + case 0: coords[0] = (float) getX1(); coords[1] = (float) getY1(); - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return SEG_MOVETO; - } - if (current == 1) - { + result = SEG_MOVETO; + break; + case 1: coords[0] = (float) getCtrlX1(); coords[1] = (float) getCtrlY1(); coords[2] = (float) getCtrlX2(); coords[3] = (float) getCtrlY2(); coords[4] = (float) getX2(); coords[5] = (float) getY2(); - if (at != null) - at.transform(coords, 0, coords, 0, 3); - return SEG_CUBICTO; + result = SEG_CUBICTO; + break; + default: + throw new NoSuchElementException("cubic iterator out of bounds"); } - throw new NoSuchElementException("cubic iterator out of bounds"); + if (at != null) + at.transform(coords, 0, coords, 0, 3); + return result; } public int currentSegment(double[] coords) { - if (current == 0) + int result; + switch (current) { + case 0: coords[0] = getX1(); coords[1] = getY1(); - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return SEG_MOVETO; - } - if (current == 1) - { + result = SEG_MOVETO; + break; + case 1: coords[0] = getCtrlX1(); coords[1] = getCtrlY1(); coords[2] = getCtrlX2(); coords[3] = getCtrlY2(); coords[4] = getX2(); coords[5] = getY2(); - if (at != null) - at.transform(coords, 0, coords, 0, 3); - return SEG_CUBICTO; - } - throw new NoSuchElementException("cubic iterator out of bounds"); + result = SEG_CUBICTO; + break; + default: + throw new NoSuchElementException("cubic iterator out of bounds"); + } + if (at != null) + at.transform(coords, 0, coords, 0, 3); + return result; } }; } diff --git a/libjava/java/awt/geom/Line2D.java b/libjava/java/awt/geom/Line2D.java index d2dd65c43419..15b2ecae80cd 100644 --- a/libjava/java/awt/geom/Line2D.java +++ b/libjava/java/awt/geom/Line2D.java @@ -668,7 +668,7 @@ public abstract class Line2D implements Shape, Cloneable return new PathIterator() { /** Current coordinate. */ - private int current; + private int current = 0; public int getWindingRule() { @@ -677,7 +677,7 @@ public abstract class Line2D implements Shape, Cloneable public boolean isDone() { - return current < 2; + return current >= 2; } public void next() diff --git a/libjava/java/awt/geom/QuadCurve2D.java b/libjava/java/awt/geom/QuadCurve2D.java index 05748fc979de..6aed05907562 100644 --- a/libjava/java/awt/geom/QuadCurve2D.java +++ b/libjava/java/awt/geom/QuadCurve2D.java @@ -215,7 +215,7 @@ public abstract class QuadCurve2D implements Shape, Cloneable return new PathIterator() { /** Current coordinate. */ - private int current; + private int current = 0; public int getWindingRule() { @@ -224,7 +224,7 @@ public abstract class QuadCurve2D implements Shape, Cloneable public boolean isDone() { - return current < 2; + return current >= 2; } public void next() @@ -234,48 +234,52 @@ public abstract class QuadCurve2D implements Shape, Cloneable public int currentSegment(float[] coords) { - if (current == 0) + int result; + switch (current) { + case 0: coords[0] = (float) getX1(); coords[1] = (float) getY1(); - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return SEG_MOVETO; - } - if (current == 1) - { + result = SEG_MOVETO; + break; + case 1: coords[0] = (float) getCtrlX(); coords[1] = (float) getCtrlY(); coords[2] = (float) getX2(); coords[3] = (float) getY2(); - if (at != null) - at.transform(coords, 0, coords, 0, 2); - return SEG_QUADTO; + result = SEG_QUADTO; + break; + default: + throw new NoSuchElementException("quad iterator out of bounds"); } - throw new NoSuchElementException("quad iterator out of bounds"); + if (at != null) + at.transform(coords, 0, coords, 0, 2); + return result; } public int currentSegment(double[] coords) { - if (current == 0) + int result; + switch (current) { + case 0: coords[0] = getX1(); coords[1] = getY1(); - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return SEG_MOVETO; - } - if (current == 1) - { + result = SEG_MOVETO; + break; + case 1: coords[0] = getCtrlX(); coords[1] = getCtrlY(); coords[2] = getX2(); coords[3] = getY2(); - if (at != null) - at.transform(coords, 0, coords, 0, 2); - return SEG_QUADTO; + result = SEG_QUADTO; + break; + default: + throw new NoSuchElementException("quad iterator out of bounds"); } - throw new NoSuchElementException("quad iterator out of bounds"); + if (at != null) + at.transform(coords, 0, coords, 0, 2); + return result; } }; } diff --git a/libjava/java/awt/geom/Rectangle2D.java b/libjava/java/awt/geom/Rectangle2D.java index e0a278a575dc..e63e1bad1349 100644 --- a/libjava/java/awt/geom/Rectangle2D.java +++ b/libjava/java/awt/geom/Rectangle2D.java @@ -395,7 +395,7 @@ public abstract class Rectangle2D extends RectangularShape return new PathIterator() { /** Current coordinate. */ - private int current = (maxx >= minx && maxy >= miny) ? 6 : 0; + private int current = (maxx <= minx && maxy <= miny) ? 6 : 0; public int getWindingRule() { -- GitLab