public class XRectangle2D extends Rectangle2D implements Serializable
x, y,
width and height, this class store rectangle's coordinates into the following
fields: xmin, xmax, ymin et ymax. Methods likes contains and intersects are faster, which make this class more appropriate for using
intensively inside a loop. Furthermore, this class work correctly with infinites and NaN values.Rectangle2D.Double, Rectangle2D.Float| Modifier and Type | Field and Description |
|---|---|
static Rectangle2D |
INFINITY
An immutable instance of a
Rectangle2D with bounds extending toward infinities. |
protected double |
xmax
Maximal x coordinate.
|
protected double |
xmin
Minimal x coordinate.
|
protected double |
ymax
Maximal y coordinate.
|
protected double |
ymin
Minimal y coordinate.
|
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP| Constructor and Description |
|---|
XRectangle2D()
Construct a default rectangle.
|
XRectangle2D(double x,
double y,
double width,
double height)
Construct a rectangle with the specified location and dimension.
|
XRectangle2D(Rectangle2D rect)
Construct a rectangle with the same coordinates than the supplied rectangle.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(double x,
double y)
Adds a point, specified by the double precision arguments
x and y, to this
Rectangle2D. |
void |
add(Rectangle2D rect)
Adds a
Rectangle2D object to this Rectangle2D. |
boolean |
contains(double x,
double y)
Tests if a specified coordinate is inside the boundary of this
Rectangle2D. |
boolean |
contains(double x,
double y,
double width,
double height)
Tests if the interior of this
Rectangle2D entirely contains the specified set of
rectangular coordinates. |
boolean |
contains(Rectangle2D rect)
Tests if the interior of this shape entirely contains the specified rectangle.
|
static boolean |
containsInclusive(Rectangle2D outter,
Rectangle2D inner)
Tests if the interior of the
inner rectangle is contained in the interior and/or the
edge of the outter rectangle. |
static XRectangle2D |
createFromExtremums(double xmin,
double ymin,
double xmax,
double ymax)
Create a rectangle using maximal x and y values rather than width and
height.
|
Rectangle2D |
createIntersection(Rectangle2D rect)
Returns a new
Rectangle2D object representing the intersection of this Rectangle2D with the specified Rectangle2D. |
Rectangle2D |
createUnion(Rectangle2D rect)
Returns a new
Rectangle2D object representing the union of this Rectangle2D
with the specified Rectangle2D. |
static boolean |
equalsEpsilon(Rectangle2D rect1,
Rectangle2D rect2)
Returns
true if the two rectangles are equals up to an epsilon value. |
double |
getCenterX()
Returns the X coordinate of the center of the rectangle.
|
double |
getCenterY()
Returns the Y coordinate of the center of the rectangle.
|
double |
getHeight()
Returns the height of the framing rectangle in
double precision. |
double |
getMaxX()
Returns the largest X coordinate of the rectangle.
|
double |
getMaxY()
Returns the largest Y coordinate of the rectangle.
|
double |
getMinX()
Returns the smallest X coordinate of the rectangle.
|
double |
getMinY()
Returns the smallest Y coordinate of the rectangle.
|
double |
getWidth()
Returns the width of the framing rectangle in
double precision. |
double |
getX()
Returns the X coordinate of the upper left corner of the framing rectangle in
double
precision. |
double |
getY()
Returns the Y coordinate of the upper left corner of the framing rectangle in
double
precision. |
static boolean |
intersectInclusive(Rectangle2D rect1,
Rectangle2D rect2)
Tests if the interior and/or the edge of two rectangles intersect.
|
static boolean |
intersectInclusive(Shape shape,
Rectangle2D rect)
Tests if the interior of the
Shape intersects the interior of a specified rectangle. |
boolean |
intersects(double x,
double y,
double width,
double height)
Tests if the interior of this
Rectangle2D intersects the interior of a specified set
of rectangular coordinates. |
boolean |
intersects(Rectangle2D rect)
Tests if the interior of this shape intersects the interior
of a specified rectangle.
|
boolean |
isEmpty()
Determines whether the
RectangularShape is empty. |
int |
outcode(double x,
double y)
Determines where the specified coordinates lie with respect to this
Rectangle2D. |
void |
setRect(double x,
double y,
double width,
double height)
Sets the location and size of this
Rectangle2D to the specified double values. |
void |
setRect(Rectangle2D r)
Sets this
Rectangle2D to be the same as the specified Rectangle2D. |
String |
toString()
Returns the
String representation of this Rectangle2D. |
add, equals, getBounds2D, getPathIterator, getPathIterator, hashCode, intersect, intersectsLine, intersectsLine, outcode, setFrame, unionclone, contains, getBounds, getFrame, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalpublic static final Rectangle2D INFINITY
Rectangle2D with bounds extending toward infinities. The
getMinX() and getMinY() methods return always Double.NEGATIVE_INFINITY, while the getMaxX() and getMaxY() methods
return always Double.POSITIVE_INFINITY. This rectangle can be used as
argument in the XRectangle2D constructor for initializing a new XRectangle2D
to infinite bounds.protected double xmin
protected double ymin
protected double xmax
protected double ymax
public XRectangle2D()
(0,0,0,0).public XRectangle2D(double x,
double y,
double width,
double height)
Rectangle2D for consistency.public XRectangle2D(Rectangle2D rect)
rect - The rectangle, or null in none (in which case this constructor is
equivalents to the no-argument constructor). Use INFINITY for initializing this
XRectangle2D with infinite bounds.public static XRectangle2D createFromExtremums(double xmin, double ymin, double xmax, double ymax)
public boolean isEmpty()
RectangularShape is empty. When the RectangularShape
is empty, it encloses no area.isEmpty in class RectangularShapetrue if the RectangularShape is empty; false otherwise.public double getX()
double
precision.getX in class RectangularShapepublic double getY()
double
precision.getY in class RectangularShapepublic double getWidth()
double precision.getWidth in class RectangularShapepublic double getHeight()
double precision.getHeight in class RectangularShapepublic double getMinX()
getMinX in class RectangularShapepublic double getMinY()
getMinY in class RectangularShapepublic double getMaxX()
getMaxX in class RectangularShapepublic double getMaxY()
getMaxY in class RectangularShapepublic double getCenterX()
getCenterX in class RectangularShapepublic double getCenterY()
getCenterY in class RectangularShapepublic void setRect(double x,
double y,
double width,
double height)
Rectangle2D to the specified double values.setRect in class Rectangle2Dx - the x coordinates to which to set the location of the upper left corner
of this Rectangle2Dy - the y coordinates to which to set the location of the upper left corner
of this Rectangle2Dwidth - the value to use to set the width of this Rectangle2Dheight - the value to use to set the height of this Rectangle2Dpublic void setRect(Rectangle2D r)
Rectangle2D to be the same as the specified Rectangle2D.setRect in class Rectangle2Dr - the specified Rectangle2Dpublic boolean intersects(double x,
double y,
double width,
double height)
Rectangle2D intersects the interior of a specified set
of rectangular coordinates.intersects in interface Shapeintersects in class Rectangle2Dx - the x coordinates of the upper left corner of the specified set of
rectangular coordinatesy - the y coordinates of the upper left corner of the specified set of
rectangular coordinateswidth - the width of the specified set of rectangular coordinatesheight - the height of the specified set of rectangular coordinatestrue if this Rectangle2D intersects the interior of a specified set
of rectangular coordinates; false otherwise.public boolean intersects(Rectangle2D rect)
Rectangle2D
implementation in order to work correctly with infinites and NaN values.intersects in interface Shapeintersects in class RectangularShaperect - the specified rectangle.true if this shape and the specified rectangle intersect each other.intersectInclusive(Rectangle2D, Rectangle2D)public static boolean intersectInclusive(Rectangle2D rect1, Rectangle2D rect2)
intersects(Rectangle2D) except for the following points:
Shape contract). However, rectangle with negative width or
height are still considered as empty.
rect1 - The first rectangle to test.rect2 - The second rectangle to test.true if the interior and/or the edge of the two specified rectangles
intersects.public static boolean intersectInclusive(Shape shape, Rectangle2D rect)
Shape intersects the interior of a specified rectangle.
This method might conservatively return true when there is a high probability that
the rectangle and the shape intersect, but the calculations to accurately determine this
intersection are prohibitively expensive. This is similar to Shape.intersects(Rectangle2D), except that this method tests also rectangle with zero
width or height (which
are empty according Shape contract). However,
rectangle with negative width or height are still considered as empty. intersectInclusive(Rectangle2D, Rectangle2D) behavior, at least for rectangle with zero
width or height.shape - The shape.rect - The rectangle to test for inclusion.true if the interior of the shape and the interior of the specified rectangle
intersect, or are both highly likely to intersect.public static boolean equalsEpsilon(Rectangle2D rect1, Rectangle2D rect2)
true if the two rectangles are equals up to an epsilon value.public boolean contains(double x,
double y,
double width,
double height)
Rectangle2D entirely contains the specified set of
rectangular coordinates.contains in interface Shapecontains in class Rectangle2Dx - the x coordinates of the upper left corner of the specified set of
rectangular coordinatesy - the y coordinates of the upper left corner of the specified set of
rectangular coordinateswidth - the width of the specified set of rectangular coordinatesheight - the height of the specified set of rectangular coordinatestrue if this Rectangle2D entirely contains specified set of
rectangular coordinates; false otherwise.public boolean contains(Rectangle2D rect)
Rectangle2D implementation in order to work correctly with
infinites and NaN values.contains in interface Shapecontains in class RectangularShaperect - the specified rectangle.true if this shape entirely contains the specified rectangle.public boolean contains(double x,
double y)
Rectangle2D.contains in interface Shapecontains in class Rectangle2Dx - the x coordinates to test.y - the y coordinates to test.true if the specified coordinates are inside the boundary of this Rectangle2D; false otherwise.public static boolean containsInclusive(Rectangle2D outter, Rectangle2D inner)
inner rectangle is contained in the interior and/or the
edge of the outter rectangle. This method is similar to contains(Rectangle2D) except for the following points:
This method is said inclusive because it tests bounds as closed interval rather
then open interval (the default Java2D behavior). Usage of closed interval is required if at
least one rectangle may be the bounding box of a perfectly horizontal or vertical line; such
a bounding box has 0 width or height.outter - The first rectangle to test.inner - The second rectangle to test.true if the interior of inner is inside the interior and/or the edge
of outter.public int outcode(double x,
double y)
Rectangle2D. This
method computes a binary OR of the appropriate mask values indicating, for each side of this
Rectangle2D, whether or not the specified coordinates are on the same side of the
edge as the rest of this Rectangle2D.outcode in class Rectangle2DRectangle2D.OUT_LEFT,
Rectangle2D.OUT_TOP,
Rectangle2D.OUT_RIGHT,
Rectangle2D.OUT_BOTTOMpublic Rectangle2D createIntersection(Rectangle2D rect)
Rectangle2D object representing the intersection of this Rectangle2D with the specified Rectangle2D.createIntersection in class Rectangle2Drect - the Rectangle2D to be intersected with this Rectangle2DRectangle2D contained in both the specified Rectangle2D
and in this Rectangle2D.public Rectangle2D createUnion(Rectangle2D rect)
Rectangle2D object representing the union of this Rectangle2D
with the specified Rectangle2D.createUnion in class Rectangle2Drect - the Rectangle2D to be combined with this Rectangle2DRectangle2D containing both the specified Rectangle2D
and this Rectangle2D.public void add(double x,
double y)
x and y, to this
Rectangle2D. The resulting Rectangle2D is the smallest Rectangle2D
that contains both the original Rectangle2D and the specified point.
After adding a point, a call to contains with the added point as an argument does
not necessarily return true. The contains method does not return true
for points on the right or bottom edges of a rectangle. Therefore, if the added point falls
on the left or bottom edge of the enlarged rectangle, contains returns false
for that point.
add in class Rectangle2Dpublic void add(Rectangle2D rect)
Rectangle2D object to this Rectangle2D. The resulting Rectangle2D is the union of the two Rectangle2D objects.add in class Rectangle2Drect - the Rectangle2D to add to this Rectangle2D.Copyright © 1996–2019 Geotools. All rights reserved.