Package com.itextpdf.kernel.geom
Class Rectangle
- java.lang.Object
-
- com.itextpdf.kernel.geom.Rectangle
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
PageSize
,TextRectangle
public class Rectangle extends java.lang.Object implements java.lang.Cloneable
Class that represent rectangle object.
-
-
Constructor Summary
Constructors Constructor Description Rectangle(float width, float height)
Creates new instance of rectangle with (0, 0) as the lower left point.Rectangle(float x, float y, float width, float height)
Creates new instance.Rectangle(Rectangle rect)
Creates the copy of givenRectangle
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Rectangle
applyMargins(float topIndent, float rightIndent, float bottomIndent, float leftIndent, boolean reverse)
Change the rectangle according the specified margins.static Rectangle
calculateBBox(java.util.List<Point> points)
Calculates the bounding box of passed points.Rectangle
clone()
Creates a "deep copy" of this rectangle, meaning the object returned by this method will be independent of the object being cloned.boolean
contains(Rectangle rect)
Check if this rectangle contains the passed rectangle.static Rectangle
createBoundingRectangleFromQuadPoint(PdfArray quadPoints)
Create the bounding rectangle for the given array of quadpoints.static java.util.List<Rectangle>
createBoundingRectanglesFromQuadPoint(PdfArray quadPoints)
Create a list of bounding rectangles from an 8 x n array of Quadpoints.Rectangle
decreaseHeight(float extra)
Decreases the height of rectangle by the given value.Rectangle
decreaseWidth(float extra)
Decreases the width of rectangle by the given value.boolean
equalsWithEpsilon(Rectangle that)
Compares instance of this rectangle with given deviation equals to 0.0001boolean
equalsWithEpsilon(Rectangle that, float eps)
Compares instance of this rectangle with given deviation.float
getBottom()
Gets the Y coordinate of the lower edge of the rectangle.static Rectangle
getCommonRectangle(Rectangle... rectangles)
Calculates the common rectangle which includes all the input rectangles.float
getHeight()
Gets the height of rectangle.Rectangle
getIntersection(Rectangle rect)
Get the rectangle representation of the intersection between this rectangle and the passed rectanglefloat
getLeft()
Gets the X coordinate of the left edge of the rectangle.static Rectangle
getRectangleOnRotatedPage(Rectangle rect, PdfPage page)
Gets the rectangle as it looks on the rotated page and returns the rectangle in coordinates relevant to the true page origin.float
getRight()
Gets the X coordinate of the right edge of the rectangle.float
getTop()
Gets the Y coordinate of the upper edge of the rectangle.float
getWidth()
Gets the width of rectangle.float
getX()
Gets the X coordinate of lower left point.float
getY()
Gets the Y coordinate of lower left point.Rectangle
increaseHeight(float extra)
Increases the height of rectangle by the given value.Rectangle
increaseWidth(float extra)
Increases the width of rectangle by the given value.boolean
intersectsLine(float x1, float y1, float x2, float y2)
Checks if rectangle have common points with line, specified by two points.private static boolean
linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
Rectangle
moveDown(float move)
Decreases the y coordinate.Rectangle
moveLeft(float move)
Decreases the x coordinate.Rectangle
moveRight(float move)
Increases the x coordinate.Rectangle
moveUp(float move)
Increases the y coordinate.boolean
overlaps(Rectangle rect)
Check if this rectangle and the passed rectangle overlapboolean
overlaps(Rectangle rect, float epsilon)
Check if this rectangle and the passed rectangle overlapRectangle
setBbox(float llx, float lly, float urx, float ury)
Sets the rectangle by the coordinates, specifying its lower left and upper right points.Rectangle
setHeight(float height)
Sets the height of rectangle.Rectangle
setWidth(float width)
Sets the width of rectangle.Rectangle
setX(float x)
Sets the X coordinate of lower left point.Rectangle
setY(float y)
Sets the Y coordinate of lower left point.Point[]
toPointsArray()
Convert rectangle to an array of pointsjava.lang.String
toString()
Gets the string representation of rectangle.
-
-
-
Constructor Detail
-
Rectangle
public Rectangle(float x, float y, float width, float height)
Creates new instance.- Parameters:
x
- the x coordinate of lower left pointy
- the y coordinate of lower left pointwidth
- the width valueheight
- the height value
-
Rectangle
public Rectangle(float width, float height)
Creates new instance of rectangle with (0, 0) as the lower left point.- Parameters:
width
- the width valueheight
- the height value
-
-
Method Detail
-
getCommonRectangle
public static Rectangle getCommonRectangle(Rectangle... rectangles)
Calculates the common rectangle which includes all the input rectangles.- Parameters:
rectangles
- list of input rectangles.- Returns:
- common rectangle.
-
getRectangleOnRotatedPage
public static Rectangle getRectangleOnRotatedPage(Rectangle rect, PdfPage page)
Gets the rectangle as it looks on the rotated page and returns the rectangle in coordinates relevant to the true page origin. This rectangle can be used to add annotations, fields, and other objects to the rotated page.- Parameters:
rect
- the rectangle as it looks on the rotated page.page
- the page on which one want to process the rectangle.- Returns:
- the newly created rectangle with translated coordinates.
-
calculateBBox
public static Rectangle calculateBBox(java.util.List<Point> points)
Calculates the bounding box of passed points.- Parameters:
points
- the points which appear inside the area- Returns:
- the bounding box of passed points.
-
toPointsArray
public Point[] toPointsArray()
Convert rectangle to an array of points- Returns:
- array of four extreme points of rectangle
-
getIntersection
public Rectangle getIntersection(Rectangle rect)
Get the rectangle representation of the intersection between this rectangle and the passed rectangle- Parameters:
rect
- the rectangle to find the intersection with- Returns:
- the intersection rectangle if the passed rectangles intersects with this rectangle, a rectangle representing a line if the intersection is along an edge or a rectangle representing a point if the intersection is a single point, null otherwise
-
contains
public boolean contains(Rectangle rect)
Check if this rectangle contains the passed rectangle. A rectangle will envelop itself, meaning that for any rectanglerect
the expressionrect.contains(rect)
always returns true.- Parameters:
rect
- a rectangle which is to be checked if it is fully contained inside this rectangle.- Returns:
- true if this rectangle contains the passed rectangle, false otherwise.
-
overlaps
public boolean overlaps(Rectangle rect)
Check if this rectangle and the passed rectangle overlap- Parameters:
rect
- a rectangle which is to be checked if it overlaps the passed rectangle- Returns:
- true if there is overlap of some kind
-
overlaps
public boolean overlaps(Rectangle rect, float epsilon)
Check if this rectangle and the passed rectangle overlap- Parameters:
rect
- a rectangle which is to be checked if it overlaps the passed rectangleepsilon
- if greater than zero, then this is the maximum distance that one rectangle can go to another, but they will not overlap, if less than zero, then this is the minimum required distance between the rectangles so that they do not overlap- Returns:
- true if there is overlap of some kind
-
setBbox
public Rectangle setBbox(float llx, float lly, float urx, float ury)
Sets the rectangle by the coordinates, specifying its lower left and upper right points. May be used in chain.
Note: this method will normalize coordinates, so the rectangle will have non negative width and height, and its x and y coordinates specified lower left point.- Parameters:
llx
- the X coordinate of lower left pointlly
- the Y coordinate of lower left pointurx
- the X coordinate of upper right pointury
- the Y coordinate of upper right point- Returns:
- this
Rectangle
instance.
-
getX
public float getX()
Gets the X coordinate of lower left point.- Returns:
- the X coordinate of lower left point.
-
setX
public Rectangle setX(float x)
Sets the X coordinate of lower left point. May be used in chain.- Parameters:
x
- the X coordinate of lower left point to be set.- Returns:
- this
Rectangle
instance.
-
getY
public float getY()
Gets the Y coordinate of lower left point.- Returns:
- the Y coordinate of lower left point.
-
setY
public Rectangle setY(float y)
Sets the Y coordinate of lower left point. May be used in chain.- Parameters:
y
- the Y coordinate of lower left point to be set.- Returns:
- this
Rectangle
instance.
-
getWidth
public float getWidth()
Gets the width of rectangle.- Returns:
- the width of rectangle.
-
setWidth
public Rectangle setWidth(float width)
Sets the width of rectangle. May be used in chain.- Parameters:
width
- the the width of rectangle to be set.- Returns:
- this
Rectangle
instance.
-
getHeight
public float getHeight()
Gets the height of rectangle.- Returns:
- the height of rectangle.
-
setHeight
public Rectangle setHeight(float height)
Sets the height of rectangle. May be used in chain.- Parameters:
height
- the the width of rectangle to be set.- Returns:
- this
Rectangle
instance.
-
increaseHeight
public Rectangle increaseHeight(float extra)
Increases the height of rectangle by the given value. May be used in chain.- Parameters:
extra
- the value of the extra height to be added.- Returns:
- this
Rectangle
instance.
-
decreaseHeight
public Rectangle decreaseHeight(float extra)
Decreases the height of rectangle by the given value. May be used in chain.- Parameters:
extra
- the value of the extra height to be subtracted.- Returns:
- this
Rectangle
instance.
-
increaseWidth
public Rectangle increaseWidth(float extra)
Increases the width of rectangle by the given value. May be used in chain.- Parameters:
extra
- the value of the extra wudth to be added.- Returns:
- this
Rectangle
instance.
-
decreaseWidth
public Rectangle decreaseWidth(float extra)
Decreases the width of rectangle by the given value. May be used in chain.- Parameters:
extra
- the value of the extra width to be subtracted.- Returns:
- this
Rectangle
instance.
-
getLeft
public float getLeft()
Gets the X coordinate of the left edge of the rectangle. Same as:getX()
.- Returns:
- the X coordinate of the left edge of the rectangle.
-
getRight
public float getRight()
Gets the X coordinate of the right edge of the rectangle. Same as:getX() + getWidth()
.- Returns:
- the X coordinate of the right edge of the rectangle.
-
getTop
public float getTop()
Gets the Y coordinate of the upper edge of the rectangle. Same as:getY() + getHeight()
.- Returns:
- the Y coordinate of the upper edge of the rectangle.
-
getBottom
public float getBottom()
Gets the Y coordinate of the lower edge of the rectangle. Same as:getY()
.- Returns:
- the Y coordinate of the lower edge of the rectangle.
-
moveDown
public Rectangle moveDown(float move)
Decreases the y coordinate.- Parameters:
move
- the value on which the position will be changed.- Returns:
- this
Rectangle
instance.
-
moveUp
public Rectangle moveUp(float move)
Increases the y coordinate.- Parameters:
move
- the value on which the position will be changed.- Returns:
- this
Rectangle
instance.
-
moveRight
public Rectangle moveRight(float move)
Increases the x coordinate.- Parameters:
move
- the value on which the position will be changed.- Returns:
- this
Rectangle
instance.
-
moveLeft
public Rectangle moveLeft(float move)
Decreases the x coordinate.- Parameters:
move
- the value on which the position will be changed.- Returns:
- this
Rectangle
instance.
-
applyMargins
public Rectangle applyMargins(float topIndent, float rightIndent, float bottomIndent, float leftIndent, boolean reverse)
Change the rectangle according the specified margins.- Parameters:
topIndent
- the value on which the top y coordinate will change.rightIndent
- the value on which the right x coordinate will change.bottomIndent
- the value on which the bottom y coordinate will change.leftIndent
- the value on which the left x coordinate will change.reverse
- iftrue
the rectangle will expand, otherwise it will shrink- Returns:
- the rectangle with applied margins
-
intersectsLine
public boolean intersectsLine(float x1, float y1, float x2, float y2)
Checks if rectangle have common points with line, specified by two points.- Parameters:
x1
- the x coordinate of first line's point.y1
- the y coordinate of first line's point.x2
- the x coordinate of second line's point.y2
- the y coordinate of second line's point.- Returns:
true
if rectangle have common points with line andfalse
otherwise.
-
toString
public java.lang.String toString()
Gets the string representation of rectangle.- Overrides:
toString
in classjava.lang.Object
- Returns:
- the string representation of rectangle.
-
clone
public Rectangle clone()
Creates a "deep copy" of this rectangle, meaning the object returned by this method will be independent of the object being cloned.- Overrides:
clone
in classjava.lang.Object
- Returns:
- the copied rectangle.
-
equalsWithEpsilon
public boolean equalsWithEpsilon(Rectangle that)
Compares instance of this rectangle with given deviation equals to 0.0001- Parameters:
that
- theRectangle
to compare with.- Returns:
true
if the difference between corresponding rectangle values is less than deviation andfalse
otherwise.
-
equalsWithEpsilon
public boolean equalsWithEpsilon(Rectangle that, float eps)
Compares instance of this rectangle with given deviation.- Parameters:
that
- theRectangle
to compare with.eps
- the deviation value.- Returns:
true
if the difference between corresponding rectangle values is less than deviation andfalse
otherwise.
-
linesIntersect
private static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
-
createBoundingRectanglesFromQuadPoint
public static java.util.List<Rectangle> createBoundingRectanglesFromQuadPoint(PdfArray quadPoints) throws PdfException
Create a list of bounding rectangles from an 8 x n array of Quadpoints.- Parameters:
quadPoints
- 8xn array of numbers representing 4 points- Returns:
- a list of bounding rectangles for the passed quadpoints
- Throws:
PdfException
- if the passed array's size is not a multiple of 8.
-
createBoundingRectangleFromQuadPoint
public static Rectangle createBoundingRectangleFromQuadPoint(PdfArray quadPoints) throws PdfException
Create the bounding rectangle for the given array of quadpoints.- Parameters:
quadPoints
- an array containing 8 numbers that correspond to 4 points.- Returns:
- The smallest orthogonal rectangle containing the quadpoints.
- Throws:
PdfException
- if the passed array's size is not a multiple of 8.
-
-