public final class Rectangle extends AbstractRectangleBasedGeometry<Rectangle,Polygon> implements IShape
PrecisionUtils
) to compensate for rounding effects.Constructor and Description |
---|
Rectangle()
Constructs a
Rectangle with location (0,0) and a size of (0,0). |
Rectangle(double x,
double y,
double width,
double height)
Constructs a Rectangle from the given values for its location (upper-left
corner point) and its size.
|
Rectangle(Point location,
Dimension size)
Constructs a new
Rectangle with the given location and size. |
Rectangle(Point p1,
Point p2)
|
Rectangle(Rectangle r)
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Overridden with public visibility as recommended within
Cloneable
. |
boolean |
contains(double x,
double y)
Returns whether the point given by x and y is within the boundaries of
this Rectangle.
|
boolean |
contains(double x,
double y,
double width,
double height)
Returns true in case the rectangle specified by (x, y, width, height) is
contained within this
Rectangle . |
boolean |
contains(IGeometry g)
|
boolean |
contains(Point p)
Returns whether the given point is within the boundaries of this
Rectangle.
|
boolean |
contains(Rectangle r)
|
boolean |
equals(double x,
double y,
double width,
double height)
Returns
true if this Rectangle's x, y, width, and height
values are identical to the provided ones. |
boolean |
equals(java.lang.Object o)
Returns whether the input object is equal to this Rectangle or not.
|
double |
getArea()
Returns the area of this
Rectangle , i.e. the product of its width
and height. |
Point |
getBottom()
Returns a new Point representing the middle point of the bottom side of
this Rectangle.
|
Point |
getBottomLeft()
Returns a new Point representing the bottom left point of this Rectangle.
|
Point |
getBottomRight()
Returns a new Point representing the bottom right point of this
Rectangle.
|
Rectangle |
getCopy()
Returns a new Rectangle which has the exact same parameters as this
Rectangle.
|
Rectangle |
getIntersected(Rectangle rect)
Returns a new Rectangle which has the intersection of this Rectangle and
the rectangle provided as input.
|
Point |
getLeft()
Returns a new Point representing the middle point of the left hand side
of this Rectangle.
|
Polyline |
getOutline()
|
Line[] |
getOutlineSegments()
|
Point[] |
getPoints()
|
Point |
getRight()
Returns a new Point which represents the middle point of the right hand
side of this Rectangle.
|
Polygon |
getRotatedCCW(Angle alpha)
Rotates this
Rectangle counter-clock-wise by the given
Angle around the center Point of this Rectangle
(see AbstractRectangleBasedGeometry.getCenter() ). |
Polygon |
getRotatedCCW(Angle alpha,
double cx,
double cy)
|
Polygon |
getRotatedCCW(Angle alpha,
Point center)
|
Polygon |
getRotatedCW(Angle alpha)
Rotates this
Rectangle clock-wise by the given Angle
around the center (AbstractRectangleBasedGeometry.getCenter() ) of
this Rectangle . |
Polygon |
getRotatedCW(Angle alpha,
double cx,
double cy)
|
Polygon |
getRotatedCW(Angle alpha,
Point center)
|
Point |
getTop()
Returns a new Point which represents the middle point of the top side of
this Rectangle.
|
Point |
getTopLeft()
Returns a new Point which represents the top left hand corner of this
Rectangle.
|
Point |
getTopRight()
Returns a new Point which represents the top right hand corner of this
Rectangle.
|
Polygon |
getTransformed(AffineTransform t)
|
Rectangle |
getTransposed()
Returns a new rectangle whose width and height have been interchanged, as
well as its x and y values.
|
Rectangle |
getUnioned(Point p)
Returns a new Rectangle which contains both this Rectangle and the Point
supplied as input.
|
Rectangle |
getUnioned(Rectangle rect)
Returns a new Rectangle which contains both this Rectangle and the
Rectangle supplied as input.
|
int |
hashCode() |
Rectangle |
intersect(Rectangle r)
|
boolean |
isEmpty()
Returns
true if this Rectangle's width or height is less
than or equal to 0. |
Path |
toPath()
|
Polygon |
toPolygon()
|
java.lang.String |
toString() |
boolean |
touches(IGeometry g)
|
boolean |
touches(Line l)
|
boolean |
touches(Rectangle r)
|
Rectangle |
transpose()
Switches the x and y values, as well as the width and height of this
Rectangle.
|
Rectangle |
union(double x,
double y)
|
Rectangle |
union(double x,
double y,
double w,
double h)
|
Rectangle |
union(Point p)
|
Rectangle |
union(Rectangle r)
|
expand, expand, getBounds, getCenter, getExpanded, getExpanded, getHeight, getLocation, getScaled, getScaled, getScaled, getScaled, getScaled, getScaled, getShrinked, getShrinked, getSize, getTranslated, getTranslated, getWidth, getX, getY, scale, scale, scale, scale, scale, scale, setBounds, setBounds, setBounds, setHeight, setLocation, setLocation, setSize, setSize, setWidth, setX, setY, shrink, shrink, translate, translate
public Rectangle()
Rectangle
with location (0,0) and a size of (0,0).public Rectangle(double x, double y, double width, double height)
public Rectangle(Point location, Dimension size)
Rectangle
with the given location and size.public boolean contains(double x, double y)
x
- the x-coordinate of the point to testy
- the y-coordinate of the point to testpublic boolean contains(double x, double y, double width, double height)
Rectangle
.x
- The x coordinate of the rectangle to be tested for containmenty
- The y coordinate of the rectangle to be tested for containmentwidth
- The width of the rectangle to be tested for containmentheight
- The height of the rectangle to be tested for containmenttrue
if the rectangle characterized by (x,y, width,
height) is (imprecisely) fully contained within this
Rectangle
, false
otherwisepublic boolean contains(Point p)
public boolean contains(Rectangle r)
r
- the other Rectangle
to test for being contained by
this Rectangle
true
if this Rectangle
contains the other
Rectangle
, otherwise false
IShape.contains(IGeometry)
public boolean equals(double x, double y, double width, double height)
true
if this Rectangle's x, y, width, and height
values are identical to the provided ones.x
- The x value to testy
- The y value to testwidth
- The width value to testheight
- The height value to testtrue
if this Rectangle's x, y, width, and height
values are (imprecisely) equal to the provided ones,
false
otherwisepublic boolean equals(java.lang.Object o)
equals
in class java.lang.Object
o
- Object being tested for equalitypublic double getArea()
Rectangle
, i.e. the product of its width
and height.Rectangle
public Point getBottom()
public Point getBottomLeft()
public Point getBottomRight()
public Rectangle getCopy()
public Rectangle getIntersected(Rectangle rect)
rect
- Rectangle provided to test for intersectionpublic Point getLeft()
public Polyline getOutline()
IShape
getOutline
in interface IShape
ICurve
representing this IShape
's outline.public Line[] getOutlineSegments()
getOutlineSegments
in interface IShape
Line
representations of this
Rectangle
's borders.public Point[] getPoints()
Point
s representing the top-left, top-right,
bottom-right, and bottom-left border points of this Rectangle
.Rectangle
public Point getRight()
public Polygon getRotatedCCW(Angle alpha)
Rectangle
counter-clock-wise by the given
Angle
around the center Point
of this Rectangle
(see AbstractRectangleBasedGeometry.getCenter()
).getRotatedCCW
in interface IRotatable<Polygon>
alpha
- The rotation Angle
.Polygon
IRotatable.getRotatedCCW(Angle, Point)
public Polygon getRotatedCCW(Angle alpha, double cx, double cy)
Rectangle
counter-clock-wise by the given
Angle
around the given Point
.
If the rotation Angle
is not an integer multiple of 90 degrees,
the resulting figure cannot be expressed as a Rectangle
object.
That's why this method returns a Polygon
instead.getRotatedCCW
in interface IRotatable<Polygon>
alpha
- the rotation anglecx
- x-component of the center point for the rotationcy
- y-component of the center point for the rotationPolygon
public Polygon getRotatedCCW(Angle alpha, Point center)
Rectangle
counter-clock-wise by the given
Angle
around the given Point
.
If the rotation Angle
is not an integer multiple of 90 degrees,
the resulting figure cannot be expressed as a Rectangle
object.
That's why this method returns a Polygon
instead.getRotatedCCW
in interface IRotatable<Polygon>
alpha
- the rotation anglecenter
- the center point for the rotationPolygon
public Polygon getRotatedCW(Angle alpha)
Rectangle
clock-wise by the given Angle
around the center (AbstractRectangleBasedGeometry.getCenter()
) of
this Rectangle
.getRotatedCW
in interface IRotatable<Polygon>
alpha
- the rotation Angle
Polygon
IRotatable.getRotatedCW(Angle, Point)
public Polygon getRotatedCW(Angle alpha, double cx, double cy)
Rectangle
clock-wise by the given Angle
alpha around the given Point
(cx, cy).
If the rotation Angle
is not an integer multiple of 90 degrees,
the resulting figure cannot be expressed as a Rectangle
object.
That's why this method returns a Polygon
instead.getRotatedCW
in interface IRotatable<Polygon>
alpha
- the rotation anglecx
- x-component of the center point for the rotationcy
- y-component of the center point for the rotationPolygon
public Polygon getRotatedCW(Angle alpha, Point center)
Rectangle
clock-wise by the given Angle
alpha around the given Point
.
If the rotation Angle
is not an integer multiple of 90 degrees,
the resulting figure cannot be expressed as a Rectangle
object.
That's why this method returns a Polygon
instead.getRotatedCW
in interface IRotatable<Polygon>
alpha
- the rotation anglecenter
- the center point for the rotationPolygon
public Point getTop()
public Point getTopLeft()
public Point getTopRight()
public Polygon getTransformed(AffineTransform t)
getTransformed
in interface IGeometry
getTransformed
in interface IShape
t
- The AffineTransform
to be appliedPath
representation of this
IGeometry
IGeometry.getTransformed(AffineTransform)
public Rectangle getTransposed()
public Rectangle getUnioned(Point p)
p
- Point for calculating unionpublic Rectangle getUnioned(Rectangle rect)
rect
- Rectangle for calculating unionpublic boolean isEmpty()
true
if this Rectangle's width or height is less
than or equal to 0.true
if this Rectangle is (imprecisely) considered
to be emptypublic Path toPath()
IGeometry
toPath
in interface IGeometry
Path
representation for this IGeometry
.IGeometry.toPath()
public Polygon toPolygon()
Rectangle
into a Polygon
representation.
The control points used to construct the polygon are the border points
returned by getPoints()
.public java.lang.String toString()
toString
in class java.lang.Object
public boolean touches(Line l)
public boolean touches(Rectangle r)
Rectangle
and the given other
Rectangle
touch, i.e. whether they have at least one point in
common.r
- The Rectangle
to testtrue
if this Rectangle
and the given
Rectangle
share at least one common point,
false
otherwise.IGeometry.touches(IGeometry)
public Rectangle transpose()
this
for conveniencepublic Rectangle union(double x, double y)
public Rectangle union(double x, double y, double w, double h)
public Rectangle union(Point p)
p
- The Point
to union withthis
for conveniencepublic Rectangle union(Rectangle r)
r
- The Rectangle
to union withthis
for conveniencepublic java.lang.Object clone()
Cloneable
.clone
in class java.lang.Object
public final int hashCode()
hashCode
in class java.lang.Object
Object.hashCode()
Copyright (c) 2014 itemis AG, and others. All rights reserved.