Rectangle implements Cloneable, Serializable { public boolean overlaps(final Rectangle rect) { return overlaps(rect, -EPS); } Rectangle(float x, float y, float width, float height);  Rectangle(float width, float height);  Rectangle(Rectangle rect); static Rectangle getCommonRectangle(Rectangle... rectangles); static Rectangle getRectangleOnRotatedPage(Rectangle rect, PdfPage page); static Rectangle calculateBBox(List<Point> points); Point[] toPointsArray(); Rectangle getIntersection(Rectangle rect); boolean contains(Rectangle rect); boolean overlaps(final Rectangle rect); boolean overlaps(final Rectangle rect, final float epsilon); Rectangle setBbox(float llx, float lly, float urx, float ury); float getX(); Rectangle setX(float x); float getY(); Rectangle setY(float y); float getWidth(); Rectangle setWidth(float width); float getHeight(); Rectangle setHeight(float height); Rectangle increaseHeight(float extra); Rectangle decreaseHeight(float extra); Rectangle increaseWidth(float extra); Rectangle decreaseWidth(float extra); float getLeft(); float getRight(); float getTop(); float getBottom(); Rectangle moveDown(float move); Rectangle moveUp(float move); Rectangle moveRight(float move); Rectangle moveLeft(float move); Rectangle applyMargins(float topIndent, float rightIndent, float bottomIndent, float leftIndent, boolean reverse); boolean intersectsLine(float x1, float y1, float x2, float y2); @Override String toString(); @Override Rectangle clone(); boolean equalsWithEpsilon(Rectangle that); boolean equalsWithEpsilon(Rectangle that, float eps); static List<Rectangle> createBoundingRectanglesFromQuadPoint(PdfArray quadPoints); static Rectangle createBoundingRectangleFromQuadPoint(PdfArray quadPoints);  }
@Test public void rectangleOverlapTest01() { Rectangle one = new Rectangle(0, 0, 10, 10); Rectangle two = new Rectangle(5, 5, 5, 5); boolean result = one.overlaps(two); Assert.assertTrue(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(2, 2, 5, 5); result = one.overlaps(two); Assert.assertTrue(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(0, 0, 10, 10); result = one.overlaps(two); Assert.assertTrue(result); }
@Test public void rectangleOverlapTest02() { Rectangle one = new Rectangle(0, 0, 10, 10); Rectangle two = new Rectangle(15, 15, 10, 10); boolean result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(15, 5, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(15, -5, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(5, -15, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(-5, -15, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(-15, -5, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(-15, 5, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(-5, 15, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); one = new Rectangle(0, 0, 10, 10); two = new Rectangle(5, 15, 10, 10); result = one.overlaps(two); Assert.assertFalse(result); }