public final class PVolumesBI
extends java.lang.Object
Functions over volumes.
These functions operate using the concepts of minimum-x, maximum-x, minimum-y, maximum-y, minimum-z, maximum-z, edges. It is up to individual applications to assign meaning to these edges such as "left" for minimum-x, "top" for minimum-y, or "far" for minimum-z.
| Modifier and Type | Method | Description |
|---|---|---|
static <S,T> PVolumeBI<T> |
cast(PVolumeBI<S> volume) |
Brand a given volume as belonging to a different coordinate space.
|
static <S> PVolumeBI<S> |
containing(PVolumeBI<S> a,
PVolumeBI<S> b) |
Construct a volume that will contain both
a and b. |
static <S> boolean |
contains(PVolumeBI<S> a,
PVolumeBI<S> b) |
Determine whether or not one volume contains another.
|
static <S> boolean |
containsPoint(PVolumeBI<S> a,
java.math.BigInteger x,
java.math.BigInteger y,
java.math.BigInteger z) |
Determine whether or not a volume contains a given point.
|
static <S> boolean |
couldFitInside(PVolumeBI<S> a,
PVolumeBI<S> b) |
Determine whether or not one volume could fit inside another.
|
static <S> PVolumeBI<S> |
create(java.math.BigInteger x,
java.math.BigInteger y,
java.math.BigInteger z,
java.math.BigInteger size_x,
java.math.BigInteger size_y,
java.math.BigInteger size_z) |
Create a volume of size (
size_x, size_y, size_z)
placing the minimum corner at (x, y, z). |
static <S> PVolumeBI<S> |
moveAbsolute(PVolumeBI<S> volume,
java.math.BigInteger x,
java.math.BigInteger y,
java.math.BigInteger z) |
Move the given volume to
(x, y, z). |
static <S> PVolumeBI<S> |
moveRelative(PVolumeBI<S> volume,
java.math.BigInteger x,
java.math.BigInteger y,
java.math.BigInteger z) |
Move the given volume by
(x, y, z). |
static <S> PVolumeBI<S> |
moveToOrigin(PVolumeBI<S> volume) |
Move the given volume to
(0, 0, 0). |
static <S> boolean |
overlaps(PVolumeBI<S> a,
PVolumeBI<S> b) |
Determine whether or not two volumes overlap.
|
static <S> java.lang.String |
show(PVolumeBI<S> volume) |
|
static <S> java.lang.String |
showToBuilder(PVolumeBI<S> volume,
java.lang.StringBuilder sb) |
|
static <S> PVolumeSizeBI<S> |
size(PVolumeBI<S> volume) |
|
static <S> PVolumeXYZSplitBI<S,PVolumeBI<S>> |
splitAtXYZ(PVolumeBI<S> v,
java.math.BigInteger x,
java.math.BigInteger y,
java.math.BigInteger z) |
Split the given volume at point
(x, y, z). |
public static <S> PVolumeBI<S> create(java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger z, java.math.BigInteger size_x, java.math.BigInteger size_y, java.math.BigInteger size_z)
size_x, size_y, size_z)
placing the minimum corner at (x, y, z).S - The coordinate space of the volumex - The X value of the minimum cornery - The Y value of the minimum cornerz - The Z value of the minimum cornersize_x - The size of the volume on the X axissize_y - The size of the volume on the Y axissize_z - The size of the volume on the Z axispublic static <S> boolean contains(PVolumeBI<S> a, PVolumeBI<S> b)
Determine whether or not one volume contains another.
Containing is reflexive: contains(a, a) == true.
Containing is transitive: contains(a, b) \u2192 contains(b, c) \u2192
contains(a, c).
Containing is not necessarily symmetric.
S - The coordinate space of the volumesa - Volume Ab - Volume Btrue iff a contains bpublic static <S> PVolumeBI<S> moveRelative(PVolumeBI<S> volume, java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger z)
(x, y, z).S - The coordinate space of the volumevolume - The volumex - The amount to move on the X axisy - The amount to move on the Y axisz - The amount to move on the Z axispublic static <S> PVolumeBI<S> moveAbsolute(PVolumeBI<S> volume, java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger z)
(x, y, z).S - The coordinate space of the volumevolume - The volumex - The position to which to move on the X axisy - The position to which to move on the Y axisz - The position to which to move on the Z axispublic static <S> PVolumeBI<S> moveToOrigin(PVolumeBI<S> volume)
(0, 0, 0).S - The coordinate space of the volumevolume - The volumepublic static <S,T> PVolumeBI<T> cast(PVolumeBI<S> volume)
S - The starting coordinate spaceT - The resulting coordinate spacevolume - A volumevolumepublic static <S> boolean overlaps(PVolumeBI<S> a, PVolumeBI<S> b)
Determine whether or not two volumes overlap.
Overlapping is reflexive: overlaps(a, a) == true.
Overlapping is symmetric: overlaps(a, b) == overlaps(b, a).
Overlapping is not necessarily transitive.
S - The coordinate space of the volumesa - A volumeb - A volumetrue iff a overlaps bpublic static <S> boolean couldFitInside(PVolumeBI<S> a, PVolumeBI<S> b)
Determine whether or not one volume could fit inside another.
Fitting is reflexive: couldFitInside(a, a) == true.
Fitting is transitive: couldFitInside(a, b) \u2192 couldFitInside(b,
c) \u2192 couldFitInside(a, c).
Fitting is not necessarily symmetric.
S - The coordinate space of the volumesa - A volumeb - A volumetrue iff a could fit inside bpublic static <S> PVolumeBI<S> containing(PVolumeBI<S> a, PVolumeBI<S> b)
a and b.S - The coordinate space of the volumesa - A volumeb - A volumea and bpublic static <S> boolean containsPoint(PVolumeBI<S> a, java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger z)
Determine whether or not a volume contains a given point.
S - The coordinate space of the volumea - A volumex - The X coordinate of the pointy - The Y coordinate of the pointz - The Z coordinate of the pointtrue iff a contains (x, y, z)public static <S> PVolumeXYZSplitBI<S,PVolumeBI<S>> splitAtXYZ(PVolumeBI<S> v, java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger z)
Split the given volume at point (x, y, z).
S - The coordinate space of the volumev - A volumex - The X coordinate of the pointy - The Y coordinate of the pointz - The Z coordinate of the pointtrue iff a contains (x, y, z)public static <S> java.lang.String show(PVolumeBI<S> volume)
S - The coordinate space of the volumevolume - The volumepublic static <S> PVolumeSizeBI<S> size(PVolumeBI<S> volume)
S - The coordinate space of the volumevolume - The volumepublic static <S> java.lang.String showToBuilder(PVolumeBI<S> volume, java.lang.StringBuilder sb)
S - The coordinate space of the volumevolume - The volumesb - A string builderCopyright © 2017 <code@io7m.com> http://io7m.com