You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2021/02/27 05:43:47 UTC
svn commit: r1886971 - in /pivot/trunk/wtk:
src/org/apache/pivot/wtk/Bounds.java
test/org/apache/pivot/wtk/test/BoundsTest.java
Author: rwhitcomb
Date: Sat Feb 27 05:43:47 2021
New Revision: 1886971
URL: http://svn.apache.org/viewvc?rev=1886971&view=rev
Log:
Add "enlarge" methods to Bounds and upgrade BoundsTest.
Modified:
pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java
pivot/trunk/wtk/test/org/apache/pivot/wtk/test/BoundsTest.java
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java?rev=1886971&r1=1886970&r2=1886971&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java Sat Feb 27 05:43:47 2021
@@ -311,6 +311,31 @@ public final class Bounds implements Ser
}
/**
+ * Create a new bounds object that is both offset and expanded by a single
+ * amount in both directions. The X- and Y-offset values are moved up/left
+ * and the width and height are expanded by twice the amount. The center point
+ * of the bounds remains the same.
+ * <p> This has the same effect as {@code translate(amt, amt).expand(2*amt, 2*amt)}.
+ * @param amt The amount to expand both the X- and Y- directions.
+ * @return A new enlarged bounds.
+ */
+ public Bounds enlarge(final int amt) {
+ return new Bounds(x - amt, y - amt, width + (2 * amt), height + (2 * amt));
+ }
+
+ /**
+ * Create a new bounds object that is enlarged by different amounts in the
+ * X- and Y-directions. The center point of the bounds remains the same.
+ * <p> This has the same effect as {@code translate(dx, dy).expand(2*dx, 2*dy)}.
+ * @param dx The amount to enlarge in the X-direction.
+ * @param dy The amount to enlarge in the Y-direction.
+ * @return A new enlarged bounds.
+ */
+ public Bounds enlarge(final int dx, final int dy) {
+ return new Bounds(x - dx, y - dy, width + (2 * dx), height + (2 * dy));
+ }
+
+ /**
* @return Whether this bounded area contains the given point.
* @param point The other point to test (must not be {@code null}).
* @throws IllegalArgumentException if the point argument is {@code null}.
Modified: pivot/trunk/wtk/test/org/apache/pivot/wtk/test/BoundsTest.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/BoundsTest.java?rev=1886971&r1=1886970&r2=1886971&view=diff
==============================================================================
--- pivot/trunk/wtk/test/org/apache/pivot/wtk/test/BoundsTest.java (original)
+++ pivot/trunk/wtk/test/org/apache/pivot/wtk/test/BoundsTest.java Sat Feb 27 05:43:47 2021
@@ -42,6 +42,7 @@ public class BoundsTest {
Dimensions dim0 = new Dimensions(0, 0);
Dimensions dim1 = new Dimensions(1, 1);
+ Dimensions dim5 = new Dimensions(5);
Point p10 = new Point(10, 10);
Bounds bnd10 = new Bounds(p10, dim1);
Bounds bnd10a = new Bounds(dim1);
@@ -62,6 +63,9 @@ public class BoundsTest {
Bounds bnd6 = Bounds.decode("2, 3; 4, 5");
Bounds bnd6a = new Bounds(2, 3, 4, 5);
+ Bounds bnd7 = bnd6a.enlarge(2);
+ Bounds bnd7a = bnd6a.enlarge(1, 3);
+
assertEquals(Bounds.EMPTY, bnd0);
assertNotEquals(bndMinus1, bnd0);
assertNotEquals(bnd0, bnd1);
@@ -72,15 +76,15 @@ public class BoundsTest {
assertEquals(bnd2, bnd3);
assertEquals(bnd3, bnd3a);
- assertEquals(bndMinus1.getSize(), dim0);
- assertEquals(bnd0.getSize(), dim0);
- assertEquals(bnd1.getSize(), dim1);
+ assertEquals(dim0, bndMinus1.getSize());
+ assertEquals(dim0, bnd0.getSize());
+ assertEquals(dim1, bnd1.getSize());
assertFalse(bnd1.contains(bnd0));
assertFalse(bndMinus1.intersects(bnd0));
assertFalse(bnd0.intersects(bnd1));
- assertEquals(bnd0.intersect(bnd1), new Bounds(1, 1, -1, -1));
+ assertEquals(new Bounds(1, 1, -1, -1), bnd0.intersect(bnd1));
assertTrue(bnd5a.intersects(bnd5b));
assertTrue(bnd0.union(bnd1).equals(new Bounds(0, 0, 2, 2)));
@@ -90,7 +94,10 @@ public class BoundsTest {
assertEquals(bndN, bndAll);
assertEquals(bnd6, bnd6a);
- assertEquals(bnd6a.toString(), "Bounds [2,3;4x5]");
+ assertEquals("Bounds [2,3;4x5]", bnd6a.toString());
+
+ assertEquals("Bounds [0,1;8x9]", bnd7.toString());
+ assertEquals("Bounds [1,0;6x11]", bnd7a.toString());
}
}