public interface Shape
PathIterator
, and has callbacks for determining bounding box,
where points and rectangles lie in relation to the shape, and tracing
the trajectory.
A point is inside if it is completely inside, or on the boundary and
adjacent points in the increasing x or y direction are completely inside.
Unclosed shapes are considered as implicitly closed when performing
contains
or intersects
.
PathIterator
,
AffineTransform
,
FlatteningPathIterator
,
GeneralPath
Modifier and Type | Method and Description |
---|---|
boolean |
contains(double x,
double y)
Test if the coordinates lie in the shape.
|
boolean |
contains(double x,
double y,
double w,
double h)
Test if a high-precision rectangle lies completely in the shape.
|
boolean |
contains(Point2D p)
Test if the point lie in the shape.
|
boolean |
contains(Rectangle2D r)
Test if a high-precision rectangle lies completely in the shape.
|
Rectangle |
getBounds()
Returns a
Rectange that bounds the shape. |
Rectangle2D |
getBounds2D()
Returns a high precision bounding box of the shape.
|
PathIterator |
getPathIterator(AffineTransform transform)
Return an iterator along the shape boundary.
|
PathIterator |
getPathIterator(AffineTransform transform,
double flatness)
Return an iterator along the flattened version of the shape boundary.
|
boolean |
intersects(double x,
double y,
double w,
double h)
Test if a high-precision rectangle intersects the shape.
|
boolean |
intersects(Rectangle2D r)
Test if a high-precision rectangle intersects the shape.
|
Rectangle getBounds()
Rectange
that bounds the shape. There is no
guarantee that this is the minimum bounding box, particularly if
the shape overflows the finite integer range of a bound. Generally,
getBounds2D
returns a tighter bound.getBounds2D()
Rectangle2D getBounds2D()
getBounds()
boolean contains(double x, double y)
x
- the x coordinatey
- the y coordinateboolean contains(Point2D p)
p
- the high-precision pointNullPointerException
- if p is nullboolean intersects(double x, double y, double w, double h)
Area
class can be used for more precise answers.x
- the x coordinate of the rectangley
- the y coordinate of the rectanglew
- the width of the rectangle, undefined results if negativeh
- the height of the rectangle, undefined results if negativeArea
boolean intersects(Rectangle2D r)
Area
class can be used for more precise answers.r
- the rectangleNullPointerException
- if r is nullintersects(double, double, double, double)
boolean contains(double x, double y, double w, double h)
Area
class can be used for more precise answers.x
- the x coordinate of the rectangley
- the y coordinate of the rectanglew
- the width of the rectangle, undefined results if negativeh
- the height of the rectangle, undefined results if negativeArea
boolean contains(Rectangle2D r)
Area
class can be used for more precise answers.r
- the rectangleNullPointerException
- if r is nullcontains(double, double, double, double)
PathIterator getPathIterator(AffineTransform transform)
transform
- an optional transform to apply to the
iterator (null
permitted).PathIterator getPathIterator(AffineTransform transform, double flatness)
If the optional transform is provided, the iterator is transformed accordingly. Each call returns a new object, independent from others in use. It is recommended, but not required, that the Shape isolate iterations from future changes to the boundary, and document this fact.
transform
- an optional transform to apply to the
iterator (null
permitted).flatness
- the maximum distance for deviation from the real boundary