public final class PAreasI extends Object
Functions over areas.
These functions operate using the concepts of minimum-x, maximum-x, minimum-y, and maximum-y edges. It is up to individual applications to assign meaning to these edges such as "left" for minimum-x and "top" for minimum-y.
| Modifier and Type | Method and Description |
|---|---|
static <S> PAreaI<S> |
alignCenter(PAreaI<S> outer,
PAreaI<S> inner)
Align the area
inner such that the center of the area is equal to
the center of outer. |
static <S> PAreaI<S> |
alignHorizontallyCenter(PAreaI<S> outer,
PAreaI<S> inner)
Align the area
inner horizontally in the center of outer. |
static <S> PAreaI<S> |
alignHorizontallyMaxX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignHorizontallyMaxXOffset(PAreaI,
PAreaI, int) with a zero offset. |
static <S> PAreaI<S> |
alignHorizontallyMaxXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset)
Align the area
inner horizontally against the inside maximum-x edge
of outer. |
static <S> PAreaI<S> |
alignHorizontallyMinX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignHorizontallyMinXOffset(PAreaI, PAreaI,
int) with a zero offset. |
static <S> PAreaI<S> |
alignHorizontallyMinXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset)
Align the area
inner horizontally against the inside minimum-x edge
of outer. |
static <S> PAreaI<S> |
alignMaxYMaxX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignMaxYMaxXOffset(PAreaI, PAreaI,
int, int) with zero offsets. |
static <S> PAreaI<S> |
alignMaxYMaxXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset_x,
int offset_y)
Align the area
inner such that the maximum-y edge is at least
offset_y from the inside maximum-y edge of outer and the
maximum-x edge is at least offset_x from the inside maximum-x edge
of outer. |
static <S> PAreaI<S> |
alignMaxYMinX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignMaxYMinXOffset(PAreaI, PAreaI,
int, int) with zero offsets. |
static <S> PAreaI<S> |
alignMaxYMinXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset_x,
int offset_y)
Align the area
inner such that the maximum-y edge is at least
offset_y from the inside maximum-y edge of outer and the
minimum-x edge is at least offset_x from the inside minimum-x edge
of outer. |
static <S> PAreaI<S> |
alignMinYMaxX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignMinYMaxXOffset(PAreaI, PAreaI,
int, int) with zero offsets. |
static <S> PAreaI<S> |
alignMinYMaxXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset_x,
int offset_y)
Align the area
inner such that the minimum-y edge is at least
offset_y from the inside minimum-y edge of outer and the
maximum-x edge is at least offset_x from the inside maximum-x edge
of outer. |
static <S> PAreaI<S> |
alignMinYMinX(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignMinYMinXOffset(PAreaI, PAreaI,
int, int) with zero offsets. |
static <S> PAreaI<S> |
alignMinYMinXOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset_x,
int offset_y)
Align the area
inner such that the minimum-y edge is at least
offset_y from the inside minimum-y edge of outer and the
minimum-x edge is at least offset_x from the inside minimum-x edge
of outer. |
static <S> PAreaI<S> |
alignVerticallyCenter(PAreaI<S> outer,
PAreaI<S> inner)
Align the area
inner vertically in the center of outer. |
static <S> PAreaI<S> |
alignVerticallyMaxY(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignVerticallyMaxYOffset(PAreaI, PAreaI,
int) with a zero offset. |
static <S> PAreaI<S> |
alignVerticallyMaxYOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset)
Align the area
inner vertically against the inside maximum-y edge
of outer. |
static <S> PAreaI<S> |
alignVerticallyMinY(PAreaI<S> outer,
PAreaI<S> inner)
Equivalent to calling
alignVerticallyMinYOffset(PAreaI, PAreaI,
int) with a zero offset. |
static <S> PAreaI<S> |
alignVerticallyMinYOffset(PAreaI<S> outer,
PAreaI<S> inner,
int offset)
Align the area
inner vertically against the inside minimum-y edge
of outer. |
static <S,T> PAreaI<T> |
cast(PAreaI<S> area)
Brand a given area as belonging to a different coordinate space.
|
static <S> PAreaI<S> |
containing(PAreaI<S> a,
PAreaI<S> b)
Construct a area that will contain both
a and b. |
static <S> boolean |
contains(PAreaI<S> a,
PAreaI<S> b)
Determine whether or not one area contains another.
|
static <S> boolean |
containsPoint(PAreaI<S> a,
int x,
int y)
Determine whether or not a area contains a given point.
|
static <S> boolean |
couldFitInside(PAreaI<S> a,
PAreaI<S> b)
Determine whether or not one area could fit inside another.
|
static <S> PAreaI<S> |
create(int x,
int y,
int width,
int height)
Create an area of width
width and height height, placing
the minimum corner at (x, y). |
static <S> PAreaI<S> |
fitBetweenHorizontal(PAreaI<S> fit,
PAreaI<S> a,
PAreaI<S> b)
Attempt to fit
fit between a and b, horizontally. |
static <S> PAreaI<S> |
fitBetweenVertical(PAreaI<S> fit,
PAreaI<S> a,
PAreaI<S> b)
Attempt to fit
fit between a and b, vertically. |
static <S> PAreaI<S> |
hollowOut(PAreaI<S> outer,
int min_x_offset,
int max_x_offset,
int min_y_offset,
int max_y_offset)
Construct a new area that fits inside
outer based on the given
offsets from each edge. |
static <S> PAreaI<S> |
hollowOutEvenly(PAreaI<S> outer,
int offset)
Equivalent to calling
hollowOut(PAreaI, int, int,
int, int) with offset for all offset parameters. |
static <S> PAreaI<S> |
moveAbsolute(PAreaI<S> area,
int x,
int y)
Move the given area to
(x, y). |
static <S> PAreaI<S> |
moveRelative(PAreaI<S> area,
int x,
int y)
Move the given area by
(x, y). |
static <S> PAreaI<S> |
moveToOrigin(PAreaI<S> area)
Move the given area to
(0, 0). |
static <S> boolean |
overlaps(PAreaI<S> a,
PAreaI<S> b)
Determine whether or not two areas overlap.
|
static <S> PAreaI<S> |
scaleFromCenter(PAreaI<S> area,
int x_diff,
int y_diff)
Scale
area by adding x_diff to the width, and y_diff to the height. |
static <S> PAreaI<S> |
scaleFromMaxYMaxX(PAreaI<S> area,
int x_diff,
int y_diff)
Scale
area by adding x_diff to the width, and y_diff to the height. |
static <S> PAreaI<S> |
scaleFromMaxYMinX(PAreaI<S> area,
int x_diff,
int y_diff)
Scale
area by adding x_diff to the width, and y_diff to the height. |
static <S> PAreaI<S> |
scaleFromMinYMaxX(PAreaI<S> area,
int x_diff,
int y_diff)
Scale
area by adding x_diff to the width, and y_diff to the height. |
static <S> PAreaI<S> |
scaleFromMinYMinX(PAreaI<S> area,
int x_diff,
int y_diff)
Scale
area by adding x_diff to the width, and y_diff to the height. |
static <S> PAreaI<S> |
setSizeFromCenter(PAreaI<S> area,
int width,
int height)
Set the width and height of
area to width and height, respectively. |
static <S> PAreaI<S> |
setSizeFromMaxYMaxX(PAreaI<S> area,
int width,
int height)
Set the width and height of
area to width and height, respectively. |
static <S> PAreaI<S> |
setSizeFromMaxYMinX(PAreaI<S> area,
int width,
int height)
Set the width and height of
area to width and height, respectively. |
static <S> PAreaI<S> |
setSizeFromMinYMaxX(PAreaI<S> area,
int width,
int height)
Set the width and height of
area to width and height, respectively. |
static <S> PAreaI<S> |
setSizeFromMinYMinX(PAreaI<S> area,
int width,
int height)
Set the width and height of
area to width and height, respectively. |
static <S> String |
show(PAreaI<S> area) |
static <S> String |
showToBuilder(PAreaI<S> area,
StringBuilder sb) |
static <S> PAreaSizeI<S> |
size(PAreaI<S> area) |
static <S> PAreaXSplitI<S,PAreaI<S>> |
splitAlongParallelToX(PAreaI<S> area,
int y)
Split
area along a line parallel to the X axis placed at
y units from its own minimum-y edge. |
static <S> PAreaYSplitI<S,PAreaI<S>> |
splitAlongParallelToY(PAreaI<S> area,
int x)
Split
area along a line parallel to the Y axis placed at
x units from its own minimum-x edge. |
public static <S> PAreaI<S> create(int x, int y, int width, int height)
width and height height, placing
the minimum corner at (x, y).S - The coordinate space of the areax - The X value of the minimum cornery - The Y value of the minimum cornerwidth - The width of the areaheight - The height of the areapublic static <S> boolean contains(PAreaI<S> a, PAreaI<S> b)
Determine whether or not one area contains another.
Containing is reflexive: contains(a, a) == true.
Containing is transitive: contains(a, b) → contains(b, c) →
contains(a, c).
Containing is not necessarily symmetric.
S - The coordinate space of the areasa - Area Ab - Area Btrue iff a contains bpublic static <S> PAreaI<S> moveRelative(PAreaI<S> area, int x, int y)
(x, y).S - The coordinate space of the areaarea - The areax - The amount to move on the X axisy - The amount to move on the Y axispublic static <S> PAreaI<S> moveAbsolute(PAreaI<S> area, int x, int y)
(x, y).S - The coordinate space of the areaarea - The areax - The position to which to move on the X axisy - The position to which to move on the Y axispublic static <S> PAreaI<S> moveToOrigin(PAreaI<S> area)
(0, 0).S - The coordinate space of the areaarea - The areapublic static <S,T> PAreaI<T> cast(PAreaI<S> area)
S - The starting coordinate spaceT - The resulting coordinate spacearea - An areaareapublic static <S> PAreaI<S> alignHorizontallyCenter(PAreaI<S> outer, PAreaI<S> inner)
inner horizontally in the center of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignHorizontallyMinX(PAreaI<S> outer, PAreaI<S> inner)
alignHorizontallyMinXOffset(PAreaI, PAreaI,
int) with a zero offset.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignHorizontallyMinXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset)
inner horizontally against the inside minimum-x edge
of outer. The area will be at least offset units from the
minimum-x edge.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset - The offset from the edgepublic static <S> PAreaI<S> alignHorizontallyMaxX(PAreaI<S> outer, PAreaI<S> inner)
alignHorizontallyMaxXOffset(PAreaI,
PAreaI, int) with a zero offset.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignHorizontallyMaxXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset)
inner horizontally against the inside maximum-x edge
of outer. The area will be at least offset units from the
maximum-x edge.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset - The offset from the edgepublic static <S> PAreaI<S> alignVerticallyMinY(PAreaI<S> outer, PAreaI<S> inner)
alignVerticallyMinYOffset(PAreaI, PAreaI,
int) with a zero offset.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignVerticallyMinYOffset(PAreaI<S> outer, PAreaI<S> inner, int offset)
inner vertically against the inside minimum-y edge
of outer. The area will be at least offset units from the
minimum-y edge.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset - The offset from the edgepublic static <S> PAreaI<S> alignVerticallyMaxY(PAreaI<S> outer, PAreaI<S> inner)
alignVerticallyMaxYOffset(PAreaI, PAreaI,
int) with a zero offset.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignVerticallyMaxYOffset(PAreaI<S> outer, PAreaI<S> inner, int offset)
inner vertically against the inside maximum-y edge
of outer. The area will be at least offset units from the
maximum-y edge.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset - The offset from the edgepublic static <S> PAreaI<S> alignVerticallyCenter(PAreaI<S> outer, PAreaI<S> inner)
inner vertically in the center of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignMinYMinX(PAreaI<S> outer, PAreaI<S> inner)
alignMinYMinXOffset(PAreaI, PAreaI,
int, int) with zero offsets.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignMinYMinXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset_x, int offset_y)
inner such that the minimum-y edge is at least
offset_y from the inside minimum-y edge of outer and the
minimum-x edge is at least offset_x from the inside minimum-x edge
of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset_x - The offset from the minimum-x edgeoffset_y - The offset from the minimum-y edgepublic static <S> PAreaI<S> alignMinYMaxX(PAreaI<S> outer, PAreaI<S> inner)
alignMinYMaxXOffset(PAreaI, PAreaI,
int, int) with zero offsets.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignMinYMaxXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset_x, int offset_y)
inner such that the minimum-y edge is at least
offset_y from the inside minimum-y edge of outer and the
maximum-x edge is at least offset_x from the inside maximum-x edge
of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset_x - The offset from the maximum-x edgeoffset_y - The offset from the minimum-y edgepublic static <S> PAreaI<S> alignMaxYMinX(PAreaI<S> outer, PAreaI<S> inner)
alignMaxYMinXOffset(PAreaI, PAreaI,
int, int) with zero offsets.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignMaxYMinXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset_x, int offset_y)
inner such that the maximum-y edge is at least
offset_y from the inside maximum-y edge of outer and the
minimum-x edge is at least offset_x from the inside minimum-x edge
of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset_x - The offset from the minimum-x edgeoffset_y - The offset from the maximum-y edgepublic static <S> PAreaI<S> alignMaxYMaxX(PAreaI<S> outer, PAreaI<S> inner)
alignMaxYMaxXOffset(PAreaI, PAreaI,
int, int) with zero offsets.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> alignMaxYMaxXOffset(PAreaI<S> outer, PAreaI<S> inner, int offset_x, int offset_y)
inner such that the maximum-y edge is at least
offset_y from the inside maximum-y edge of outer and the
maximum-x edge is at least offset_x from the inside maximum-x edge
of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areaoffset_x - The offset from the maximum-x edgeoffset_y - The offset from the maximum-y edgepublic static <S> PAreaI<S> alignCenter(PAreaI<S> outer, PAreaI<S> inner)
inner such that the center of the area is equal to
the center of outer.S - The coordinate space of the areasouter - The outer areainner - The inner areapublic static <S> PAreaI<S> hollowOut(PAreaI<S> outer, int min_x_offset, int max_x_offset, int min_y_offset, int max_y_offset)
outer based on the given
offsets from each edge.S - The coordinate space of the areasouter - The containing areamin_x_offset - The offset from the minimum-x edge (must be
non-negative)max_x_offset - The offset from the maximum-x edge (must be
non-negative)min_y_offset - The offset from the minimum-y edge (must be
non-negative)max_y_offset - The offset from the maximum-y edge (must be
non-negative)public static <S> PAreaI<S> hollowOutEvenly(PAreaI<S> outer, int offset)
hollowOut(PAreaI, int, int,
int, int) with offset for all offset parameters.S - The coordinate space of the areasouter - The containing areaoffset - The offset from each edge (must be non-negative)public static <S> PAreaI<S> setSizeFromCenter(PAreaI<S> area, int width, int height)
Set the width and height of area to width and height, respectively.
The area is resized from its own center.
S - The coordinate space of the areaarea - The areawidth - The new width (must be non-negative)height - The new height (must be non-negative)public static <S> PAreaI<S> setSizeFromMinYMinX(PAreaI<S> area, int width, int height)
Set the width and height of area to width and height, respectively.
The area is resized by moving its minimum-y-minimum-x corner.
S - The coordinate space of the areaarea - The areawidth - The new width (must be non-negative)height - The new height (must be non-negative)public static <S> PAreaI<S> setSizeFromMinYMaxX(PAreaI<S> area, int width, int height)
Set the width and height of area to width and height, respectively.
The area is resized by moving its minimum-y-maximum-x corner.
S - The coordinate space of the areaarea - The areawidth - The new width (must be non-negative)height - The new height (must be non-negative)public static <S> PAreaI<S> setSizeFromMaxYMaxX(PAreaI<S> area, int width, int height)
Set the width and height of area to width and height, respectively.
The area is resized by moving its maximum-y-maximum-x corner.
S - The coordinate space of the areaarea - The areawidth - The new width (must be non-negative)height - The new height (must be non-negative)public static <S> PAreaI<S> setSizeFromMaxYMinX(PAreaI<S> area, int width, int height)
Set the width and height of area to width and height, respectively.
The area is resized by moving its maximum-y-minimum-x corner.
S - The coordinate space of the areaarea - The areawidth - The new width (must be non-negative)height - The new height (must be non-negative)public static <S> PAreaI<S> scaleFromMinYMinX(PAreaI<S> area, int x_diff, int y_diff)
Scale area by adding x_diff to the width, and y_diff to the height. The size of the resulting area is clamped so that
its width and height are always non-negative.
The area is resized by moving its minimum-y-minimum-x corner.
S - The coordinate space of the areaarea - The areax_diff - The X differencey_diff - The Y differencepublic static <S> PAreaI<S> scaleFromMinYMaxX(PAreaI<S> area, int x_diff, int y_diff)
Scale area by adding x_diff to the width, and y_diff to the height. The size of the resulting area is clamped so that
its width and height are always non-negative.
The area is resized by moving its minimum-y-maximum-x corner.
S - The coordinate space of the areaarea - The areax_diff - The X differencey_diff - The Y differencepublic static <S> PAreaI<S> scaleFromMaxYMinX(PAreaI<S> area, int x_diff, int y_diff)
Scale area by adding x_diff to the width, and y_diff to the height. The size of the resulting area is clamped so that
its width and height are always non-negative.
The area is resized by moving its maximum-y-minimum-x corner.
S - The coordinate space of the areaarea - The areax_diff - The X differencey_diff - The Y differencepublic static <S> PAreaI<S> scaleFromMaxYMaxX(PAreaI<S> area, int x_diff, int y_diff)
Scale area by adding x_diff to the width, and y_diff to the height. The size of the resulting area is clamped so that
its width and height are always non-negative.
The area is resized by moving its maximum-y-maximum-x corner.
S - The coordinate space of the areaarea - The areax_diff - The X differencey_diff - The Y differencepublic static <S> PAreaI<S> scaleFromCenter(PAreaI<S> area, int x_diff, int y_diff)
Scale area by adding x_diff to the width, and y_diff to the height. The size of the resulting area is clamped so that
its width and height are always non-negative.
The area is resized from its own center.
S - The coordinate space of the areaarea - The areax_diff - The X differencey_diff - The Y differencepublic static <S> boolean overlaps(PAreaI<S> a, PAreaI<S> b)
Determine whether or not two areas overlap.
Overlapping is reflexive: overlaps(a, a) == true.
Overlapping is symmetric: overlaps(a, b) == contains(b, a).
Overlapping is not necessarily transitive.
S - The coordinate space of the areasa - An areab - An areatrue iff a overlaps bpublic static <S> boolean couldFitInside(PAreaI<S> a, PAreaI<S> b)
Determine whether or not one area could fit inside another.
Fitting is reflexive: couldFitInside(a, a) == true.
Fitting is transitive: couldFitInside(a, b) → couldFitInside(b,
c) → couldFitInside(a, c).
Fitting is not necessarily symmetric.
S - The coordinate space of the areasa - An areab - An areatrue iff a could fit inside bpublic static <S> PAreaI<S> containing(PAreaI<S> a, PAreaI<S> b)
a and b.S - The coordinate space of the areasa - An areab - An areaa and bpublic static <S> boolean containsPoint(PAreaI<S> a, int x, int y)
Determine whether or not a area contains a given point.
S - The coordinate space of the areaa - An areax - The X coordinate of the pointy - The Y coordinate of the pointtrue iff a contains (x, y)public static <S> PAreaI<S> fitBetweenHorizontal(PAreaI<S> fit, PAreaI<S> a, PAreaI<S> b)
fit between a and b, horizontally.S - The coordinate space of the areasfit - The area to be fitteda - An areab - An areapublic static <S> PAreaI<S> fitBetweenVertical(PAreaI<S> fit, PAreaI<S> a, PAreaI<S> b)
fit between a and b, vertically.S - The coordinate space of the areasfit - The area to be fitteda - An areab - An areapublic static <S> PAreaXSplitI<S,PAreaI<S>> splitAlongParallelToX(PAreaI<S> area, int y)
area along a line parallel to the X axis placed at
y units from its own minimum-y edge.S - The coordinate space of the areasarea - The area to be splity - The relative Y coordinate of the splitting edgepublic static <S> PAreaYSplitI<S,PAreaI<S>> splitAlongParallelToY(PAreaI<S> area, int x)
area along a line parallel to the Y axis placed at
x units from its own minimum-x edge.S - The coordinate space of the areasarea - The area to be splitx - The relative X coordinate of the splitting edgepublic static <S> String show(PAreaI<S> area)
S - The coordinate space of the areaarea - The areapublic static <S> PAreaSizeI<S> size(PAreaI<S> area)
S - The coordinate space of the areaarea - The areapublic static <S> String showToBuilder(PAreaI<S> area, StringBuilder sb)
S - The coordinate space of the areaarea - The areasb - A string builderCopyright © 2017 <code@io7m.com> http://io7m.com