|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
org.geotools.resources.geometry.XRectangle2D
public class XRectangle2D
Serializable, high-performance double-precision rectangle. Instead of using
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.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.awt.geom.Rectangle2D |
---|
java.awt.geom.Rectangle2D.Double, java.awt.geom.Rectangle2D.Float |
Field Summary | |
---|---|
static java.awt.geom.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. |
Fields inherited from class java.awt.geom.Rectangle2D |
---|
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP |
Constructor Summary | |
---|---|
XRectangle2D()
Construct a default rectangle. |
|
XRectangle2D(double x,
double y,
double width,
double height)
Construct a rectangle with the specified location and dimension. |
|
XRectangle2D(java.awt.geom.Rectangle2D rect)
Construct a rectangle with the same coordinates than the supplied rectangle. |
Method Summary | |
---|---|
void |
add(double x,
double y)
Adds a point, specified by the double precision arguments x and y , to this Rectangle2D . |
void |
add(java.awt.geom.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(java.awt.geom.Rectangle2D rect)
Tests if the interior of this shape entirely contains the specified rectangle. |
static boolean |
containsInclusive(java.awt.geom.Rectangle2D outter,
java.awt.geom.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. |
java.awt.geom.Rectangle2D |
createIntersection(java.awt.geom.Rectangle2D rect)
Returns a new Rectangle2D object representing the
intersection of this Rectangle2D with the specified
Rectangle2D . |
java.awt.geom.Rectangle2D |
createUnion(java.awt.geom.Rectangle2D rect)
Returns a new Rectangle2D object representing the
union of this Rectangle2D with the specified
Rectangle2D . |
static boolean |
equalsEpsilon(java.awt.geom.Rectangle2D rect1,
java.awt.geom.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(java.awt.geom.Rectangle2D rect1,
java.awt.geom.Rectangle2D rect2)
Tests if the interior and/or the edge of two rectangles intersect. |
static boolean |
intersectInclusive(java.awt.Shape shape,
java.awt.geom.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(java.awt.geom.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(java.awt.geom.Rectangle2D r)
Sets this Rectangle2D to be the same as the
specified Rectangle2D . |
java.lang.String |
toString()
Returns the String representation of this Rectangle2D . |
Methods inherited from class java.awt.geom.Rectangle2D |
---|
add, equals, getBounds2D, getPathIterator, getPathIterator, hashCode, intersect, intersectsLine, intersectsLine, outcode, setFrame, union |
Methods inherited from class java.awt.geom.RectangularShape |
---|
clone, contains, getBounds, getFrame, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.awt.geom.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
Constructor Detail |
---|
public XRectangle2D()
(0,0,0,0)
.
public XRectangle2D(double x, double y, double width, double height)
Rectangle2D
for consistency.
public XRectangle2D(java.awt.geom.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.Method Detail |
---|
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 java.awt.geom.RectangularShape
true
if the RectangularShape
is empty;
false
otherwise.public double getX()
double
precision.
getX
in class java.awt.geom.RectangularShape
public double getY()
double
precision.
getY
in class java.awt.geom.RectangularShape
public double getWidth()
double
precision.
getWidth
in class java.awt.geom.RectangularShape
public double getHeight()
double
precision.
getHeight
in class java.awt.geom.RectangularShape
public double getMinX()
getMinX
in class java.awt.geom.RectangularShape
public double getMinY()
getMinY
in class java.awt.geom.RectangularShape
public double getMaxX()
getMaxX
in class java.awt.geom.RectangularShape
public double getMaxY()
getMaxY
in class java.awt.geom.RectangularShape
public double getCenterX()
getCenterX
in class java.awt.geom.RectangularShape
public double getCenterY()
getCenterY
in class java.awt.geom.RectangularShape
public void setRect(double x, double y, double width, double height)
Rectangle2D
to the specified double values.
setRect
in class java.awt.geom.Rectangle2D
x
- the x coordinates to which to set the
location of the upper left corner of this Rectangle2D
y
- the y coordinates to which to set the
location of the upper left corner of this Rectangle2D
width
- the value to use to set the width of this Rectangle2D
height
- the value to use to set the height of this Rectangle2D
public void setRect(java.awt.geom.Rectangle2D r)
Rectangle2D
to be the same as the
specified Rectangle2D
.
setRect
in class java.awt.geom.Rectangle2D
r
- the specified Rectangle2D
public boolean intersects(double x, double y, double width, double height)
Rectangle2D
intersects the interior of a specified set of rectangular
coordinates.
intersects
in interface java.awt.Shape
intersects
in class java.awt.geom.Rectangle2D
x
- 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 coordinates
true
if this Rectangle2D
intersects the interior of a specified set of rectangular
coordinates; false
otherwise.public boolean intersects(java.awt.geom.Rectangle2D rect)
Rectangle2D
implementation in order to work correctly with
infinites and NaN values.
intersects
in interface java.awt.Shape
intersects
in class java.awt.geom.RectangularShape
rect
- the specified rectangle.
true
if this shape and the specified rectangle intersect each other.intersectInclusive(Rectangle2D, Rectangle2D)
public static boolean intersectInclusive(java.awt.geom.Rectangle2D rect1, java.awt.geom.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(java.awt.Shape shape, java.awt.geom.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(java.awt.geom.Rectangle2D rect1, java.awt.geom.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 java.awt.Shape
contains
in class java.awt.geom.Rectangle2D
x
- 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 coordinates
true
if this Rectangle2D
entirely contains specified set of rectangular
coordinates; false
otherwise.public boolean contains(java.awt.geom.Rectangle2D rect)
Rectangle2D
implementation in order
to work correctly with infinites and
NaN values.
contains
in interface java.awt.Shape
contains
in class java.awt.geom.RectangularShape
rect
- the specified rectangle.
true
if this shape entirely contains the specified rectangle.public boolean contains(double x, double y)
Rectangle2D
.
contains
in interface java.awt.Shape
contains
in class java.awt.geom.Rectangle2D
x
- 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(java.awt.geom.Rectangle2D outter, java.awt.geom.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:
outter
.
It tests for the edges as well.Shape
contract).
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 java.awt.geom.Rectangle2D
Rectangle2D.OUT_LEFT
,
Rectangle2D.OUT_TOP
,
Rectangle2D.OUT_RIGHT
,
Rectangle2D.OUT_BOTTOM
public java.awt.geom.Rectangle2D createIntersection(java.awt.geom.Rectangle2D rect)
Rectangle2D
object representing the
intersection of this Rectangle2D
with the specified
Rectangle2D
.
createIntersection
in class java.awt.geom.Rectangle2D
rect
- the Rectangle2D
to be intersected with this Rectangle2D
Rectangle2D
contained in both the specified
Rectangle2D
and in this Rectangle2D
.public java.awt.geom.Rectangle2D createUnion(java.awt.geom.Rectangle2D rect)
Rectangle2D
object representing the
union of this Rectangle2D
with the specified
Rectangle2D
.
createUnion
in class java.awt.geom.Rectangle2D
rect
- the Rectangle2D
to be combined with
this Rectangle2D
Rectangle2D
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 java.awt.geom.Rectangle2D
public void add(java.awt.geom.Rectangle2D rect)
Rectangle2D
object to this Rectangle2D
.
The resulting Rectangle2D
is the union of the two
Rectangle2D
objects.
add
in class java.awt.geom.Rectangle2D
rect
- the Rectangle2D
to add to this Rectangle2D
.public java.lang.String toString()
String
representation of this Rectangle2D
.
toString
in class java.lang.Object
String
representing this Rectangle2D
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |