public class AABBf extends Object implements Externalizable, AABBfc
| Modifier and Type | Field and Description |
|---|---|
float |
maxX
The x coordinate of the maximum corner.
|
float |
maxY
The y coordinate of the maximum corner.
|
float |
maxZ
The z coordinate of the maximum corner.
|
float |
minX
The x coordinate of the minimum corner.
|
float |
minY
The y coordinate of the minimum corner.
|
float |
minZ
The z coordinate of the minimum corner.
|
| Constructor and Description |
|---|
AABBf()
Create a new
AABBf representing the box with
(minX, minY, minZ)=(+inf, +inf, +inf) and (maxX, maxY, maxZ)=(-inf, -inf, -inf). |
AABBf(AABBf source)
Create a new
AABBf as a copy of the given source. |
AABBf(float minX,
float minY,
float minZ,
float maxX,
float maxY,
float maxZ)
Create a new
AABBf with the given minimum and maximum corner coordinates. |
AABBf(org.joml.Vector3fc min,
org.joml.Vector3fc max)
Create a new
AABBf with the given minimum and maximum corner coordinates. |
| Modifier and Type | Method and Description |
|---|---|
org.joml.Vector3d |
center(org.joml.Vector3d dest)
Return the center of the aabb
|
org.joml.Vector3f |
center(org.joml.Vector3f dest)
Return the center of the aabb
|
boolean |
containsAABB(AABBdc aabb)
Check if this AABB contains the given
AABB. |
boolean |
containsAABB(AABBfc aabb)
Check if this AABB contains the given
AABB. |
boolean |
containsAABB(AABBic aabb)
Check if this AABB contains the given
AABB. |
boolean |
containsPoint(float x,
float y,
float z)
Test whether the point
(x, y, z) lies inside this AABB. |
boolean |
containsPoint(org.joml.Vector3fc point)
Test whether the given point lies inside this AABB.
|
AABBf |
correctBounds()
Ensure that the minimum coordinates are strictly less than or equal to the maximum coordinates by swapping
them if necessary.
|
boolean |
equals(Object obj) |
org.joml.Vector3d |
extent(org.joml.Vector3d dest)
Extent of the aabb (max - min) / 2.0.
|
org.joml.Vector3f |
extent(org.joml.Vector3f dest)
Extent of the aabb (max - min) / 2.0.
|
float |
getMax(int component)
Get the maximum corner coordinate of the given component.
|
float |
getMin(int component)
Get the minimum corner coordinate of the given component.
|
org.joml.Vector3d |
getSize(org.joml.Vector3d dest)
Get the size of the aabb.
|
org.joml.Vector3f |
getSize(org.joml.Vector3f dest)
Get the size of the aabb.
|
int |
hashCode() |
AABBf |
intersection(AABBfc other)
Compute the AABB of intersection between
this and the given AABB. |
AABBf |
intersection(AABBfc other,
AABBf dest)
Compute the AABB of intersection between
this and the given AABB. |
boolean |
intersectsAABB(AABBfc other)
Test whether
this and other intersect. |
int |
intersectsLineSegment(float p0X,
float p0Y,
float p0Z,
float p1X,
float p1Y,
float p1Z,
org.joml.Vector2f result)
Determine whether the undirected line segment with the end points
(p0X, p0Y, p0Z) and (p1X, p1Y, p1Z)
intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + p0 * (p1 - p0) of the near and far point of intersection. |
int |
intersectsLineSegment(LineSegmentf lineSegment,
org.joml.Vector2f result)
Determine whether the given undirected line segment intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + p0 * (p1 - p0) of the near and far point of intersection.
|
boolean |
intersectsPlane(float a,
float b,
float c,
float d)
Test whether the plane given via its plane equation
a*x + b*y + c*z + d = 0 intersects this AABB. |
boolean |
intersectsPlane(Planef plane)
Test whether the given plane intersects this AABB.
|
boolean |
intersectsRay(float originX,
float originY,
float originZ,
float dirX,
float dirY,
float dirZ)
Test whether the given ray with the origin
(originX, originY, originZ) and direction (dirX, dirY, dirZ)
intersects this AABB. |
boolean |
intersectsRay(float originX,
float originY,
float originZ,
float dirX,
float dirY,
float dirZ,
org.joml.Vector2f result)
Determine whether the given ray with the origin
(originX, originY, originZ) and direction (dirX, dirY, dirZ)
intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + t * dir of the near and far point of intersection. |
boolean |
intersectsRay(Rayf ray)
Test whether the given ray intersects this AABB.
|
boolean |
intersectsRay(Rayf ray,
org.joml.Vector2f result)
Determine whether the given ray intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + t * dir of the near and far point of intersection.
|
boolean |
intersectsSphere(float centerX,
float centerY,
float centerZ,
float radiusSquared)
Test whether this AABB intersects the given sphere with equation
(x - centerX)^2 + (y - centerY)^2 + (z - centerZ)^2 - radiusSquared = 0. |
boolean |
intersectsSphere(Spheref sphere)
Test whether this AABB intersects the given sphere.
|
boolean |
isValid()
Check whether
this rectangle represents a valid AABB. |
float |
lengthX()
Return the length along the x component
|
float |
lengthY()
Return the length along the y component
|
float |
lengthZ()
Return the length along the z component
|
float |
maxX() |
float |
maxY() |
float |
maxZ() |
float |
minX() |
float |
minY() |
float |
minZ() |
void |
readExternal(ObjectInput in) |
AABBf |
set(AABBfc source)
Set this
AABBf to be a clone of source. |
AABBf |
setMax(float maxX,
float maxY,
float maxZ)
Set the maximum corner coordinates.
|
AABBf |
setMax(org.joml.Vector3fc max)
Set the maximum corner coordinates.
|
AABBf |
setMin(float minX,
float minY,
float minZ)
Set the minimum corner coordinates.
|
AABBf |
setMin(org.joml.Vector3fc min)
Set the minimum corner coordinates.
|
String |
toString()
Return a string representation of this AABB.
|
String |
toString(NumberFormat formatter)
Return a string representation of this AABB by formatting the vector components with the given
NumberFormat. |
AABBf |
transform(org.joml.Matrix4fc m)
Apply the given
affine transformation to this AABBf. |
AABBf |
transform(org.joml.Matrix4fc m,
AABBf dest)
|
AABBf |
translate(float x,
float y,
float z)
Translate
this by the vector (x, y, z). |
AABBf |
translate(float x,
float y,
float z,
AABBf dest)
Translate
this by the vector (x, y, z) and store the result in dest. |
AABBf |
translate(org.joml.Vector3fc xyz)
Translate
this by the given vector xyz. |
AABBf |
translate(org.joml.Vector3fc xyz,
AABBf dest)
Translate
this by the given vector xyz and store the result in dest. |
AABBf |
union(AABBf other)
Set
this to the union of this and other. |
AABBf |
union(AABBf other,
AABBf dest)
Compute the union of
this and other and store the result in dest. |
AABBf |
union(float x,
float y,
float z)
Set
this to the union of this and the given point (x, y, z). |
AABBf |
union(float x,
float y,
float z,
AABBf dest)
Compute the union of
this and the given point (x, y, z) and store the result in dest. |
AABBf |
union(org.joml.Vector3fc p)
Set
this to the union of this and the given point p. |
AABBf |
union(org.joml.Vector3fc p,
AABBf dest)
Compute the union of
this and the given point p and store the result in dest. |
void |
writeExternal(ObjectOutput out) |
public float minX
public float minY
public float minZ
public float maxX
public float maxY
public float maxZ
public AABBf()
AABBf representing the box with
(minX, minY, minZ)=(+inf, +inf, +inf) and (maxX, maxY, maxZ)=(-inf, -inf, -inf).public AABBf(AABBf source)
AABBf as a copy of the given source.source - the AABBf to copy frompublic AABBf(org.joml.Vector3fc min,
org.joml.Vector3fc max)
AABBf with the given minimum and maximum corner coordinates.min - the minimum coordinatesmax - the maximum coordinatespublic AABBf(float minX,
float minY,
float minZ,
float maxX,
float maxY,
float maxZ)
AABBf with the given minimum and maximum corner coordinates.minX - the x coordinate of the minimum cornerminY - the y coordinate of the minimum cornerminZ - the z coordinate of the minimum cornermaxX - the x coordinate of the maximum cornermaxY - the y coordinate of the maximum cornermaxZ - the z coordinate of the maximum cornerpublic AABBf set(AABBfc source)
AABBf to be a clone of source.source - the AABBf to copy frompublic float minX()
public float minY()
public float minZ()
public float maxX()
public float maxY()
public float maxZ()
public boolean isValid()
AABBfcthis rectangle represents a valid AABB.public AABBf setMin(float minX, float minY, float minZ)
minX - the x coordinate of the minimum cornerminY - the y coordinate of the minimum cornerminZ - the z coordinate of the minimum cornerpublic AABBf setMax(float maxX, float maxY, float maxZ)
maxX - the x coordinate of the maximum cornermaxY - the y coordinate of the maximum cornermaxZ - the z coordinate of the maximum cornerpublic AABBf setMin(org.joml.Vector3fc min)
min - the minimum coordinatespublic AABBf setMax(org.joml.Vector3fc max)
max - the maximum coordinatespublic float getMax(int component)
throws IllegalArgumentException
AABBfcgetMax in interface AABBfccomponent - the component, within [0..2]IllegalArgumentException - if component is not within [0..2]public float getMin(int component)
throws IllegalArgumentException
AABBfcgetMin in interface AABBfccomponent - the component, within [0..2]IllegalArgumentException - if component is not within [0..2]public org.joml.Vector3f center(org.joml.Vector3f dest)
AABBfcpublic org.joml.Vector3d center(org.joml.Vector3d dest)
AABBfcpublic org.joml.Vector3d extent(org.joml.Vector3d dest)
AABBfcpublic org.joml.Vector3f extent(org.joml.Vector3f dest)
AABBfcpublic float lengthX()
public float lengthY()
public float lengthZ()
public org.joml.Vector3f getSize(org.joml.Vector3f dest)
dest - will hold the resultpublic org.joml.Vector3d getSize(org.joml.Vector3d dest)
dest - will hold the resultpublic AABBf union(float x, float y, float z)
this to the union of this and the given point (x, y, z).x - the x coordinate of the pointy - the y coordinate of the pointz - the z coordinate of the pointpublic AABBf union(org.joml.Vector3fc p)
this to the union of this and the given point p.p - the pointpublic AABBf union(float x, float y, float z, AABBf dest)
AABBfcthis and the given point (x, y, z) and store the result in dest.public AABBf union(org.joml.Vector3fc p, AABBf dest)
AABBfcthis and the given point p and store the result in dest.public AABBf union(AABBf other)
this to the union of this and other.other - the other AABBfpublic AABBf union(AABBf other, AABBf dest)
AABBfcthis and other and store the result in dest.public AABBf correctBounds()
public AABBf translate(org.joml.Vector3fc xyz)
this by the given vector xyz.xyz - the vector to translate bypublic AABBf translate(org.joml.Vector3fc xyz, AABBf dest)
AABBfcthis by the given vector xyz and store the result in dest.public AABBf translate(float x, float y, float z)
this by the vector (x, y, z).x - the x coordinate to translate byy - the y coordinate to translate byz - the z coordinate to translate bypublic AABBf translate(float x, float y, float z, AABBf dest)
AABBfcthis by the vector (x, y, z) and store the result in dest.public AABBf intersection(AABBfc other, AABBf dest)
AABBfcthis and the given AABB.
If the two AABBs do not intersect, then the minimum coordinates of this
will have a value of Float.POSITIVE_INFINITY and the maximum coordinates will have a value of
Float.NEGATIVE_INFINITY.
intersection in interface AABBfcother - the other AABBdest - will hold the resultpublic AABBf intersection(AABBfc other)
this and the given AABB.
If the two AABBs do not intersect, then the minimum coordinates of this
will have a value of Float.POSITIVE_INFINITY and the maximum coordinates will have a value of
Float.NEGATIVE_INFINITY.
other - the other AABBpublic boolean containsAABB(AABBdc aabb)
AABBfcAABB.containsAABB in interface AABBfcaabb - the AABB to testtrue iff this AABB contains the AABB; false otherwisepublic boolean containsAABB(AABBfc aabb)
AABBfcAABB.containsAABB in interface AABBfcaabb - the AABB to testtrue iff this AABB contains the AABB; false otherwisepublic boolean containsAABB(AABBic aabb)
AABBfcAABB.containsAABB in interface AABBfcaabb - the AABB to testtrue iff this AABB contains the AABB; false otherwisepublic boolean containsPoint(float x,
float y,
float z)
AABBfc(x, y, z) lies inside this AABB.containsPoint in interface AABBfcx - the x coordinate of the pointy - the y coordinate of the pointz - the z coordinate of the pointtrue iff the given point lies inside this AABB; false otherwisepublic boolean containsPoint(org.joml.Vector3fc point)
AABBfccontainsPoint in interface AABBfcpoint - the coordinates of the pointtrue iff the given point lies inside this AABB; false otherwisepublic boolean intersectsPlane(float a,
float b,
float c,
float d)
AABBfca*x + b*y + c*z + d = 0 intersects this AABB.
Reference: http://www.lighthouse3d.com ("Geometric Approach - Testing Boxes II")
intersectsPlane in interface AABBfca - the x factor in the plane equationb - the y factor in the plane equationc - the z factor in the plane equationd - the constant in the plane equationtrue iff the plane intersects this AABB; false otherwisepublic boolean intersectsPlane(Planef plane)
AABBfcReference: http://www.lighthouse3d.com ("Geometric Approach - Testing Boxes II")
intersectsPlane in interface AABBfcplane - the planetrue iff the plane intersects this AABB; false otherwisepublic boolean intersectsAABB(AABBfc other)
AABBfcthis and other intersect.intersectsAABB in interface AABBfcother - the other AABBtrue iff both AABBs intersect; false otherwisepublic boolean intersectsSphere(float centerX,
float centerY,
float centerZ,
float radiusSquared)
AABBfc(x - centerX)^2 + (y - centerY)^2 + (z - centerZ)^2 - radiusSquared = 0.
Reference: http://stackoverflow.com
intersectsSphere in interface AABBfccenterX - the x coordinate of the center of the spherecenterY - the y coordinate of the center of the spherecenterZ - the z coordinate of the center of the sphereradiusSquared - the square radius of the spheretrue iff this AABB and the sphere intersect; false otherwisepublic boolean intersectsSphere(Spheref sphere)
AABBfcReference: http://stackoverflow.com
intersectsSphere in interface AABBfcsphere - the spheretrue iff this AABB and the sphere intersect; false otherwisepublic boolean intersectsRay(float originX,
float originY,
float originZ,
float dirX,
float dirY,
float dirZ)
AABBfc(originX, originY, originZ) and direction (dirX, dirY, dirZ)
intersects this AABB.
This method returns true for a ray whose origin lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsRay in interface AABBfcoriginX - the x coordinate of the ray's originoriginY - the y coordinate of the ray's originoriginZ - the z coordinate of the ray's origindirX - the x coordinate of the ray's directiondirY - the y coordinate of the ray's directiondirZ - the z coordinate of the ray's directiontrue if this AABB and the ray intersect; false otherwisepublic boolean intersectsRay(Rayf ray)
AABBfc
This method returns true for a ray whose origin lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsRay in interface AABBfcray - the raytrue if this AABB and the ray intersect; false otherwisepublic boolean intersectsRay(float originX,
float originY,
float originZ,
float dirX,
float dirY,
float dirZ,
org.joml.Vector2f result)
AABBfc(originX, originY, originZ) and direction (dirX, dirY, dirZ)
intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + t * dir of the near and far point of intersection.
This method returns true for a ray whose origin lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsRay in interface AABBfcoriginX - the x coordinate of the ray's originoriginY - the y coordinate of the ray's originoriginZ - the z coordinate of the ray's origindirX - the x coordinate of the ray's directiondirY - the y coordinate of the ray's directiondirZ - the z coordinate of the ray's directionresult - a vector which will hold the resulting values of the parameter
t in the ray equation p(t) = origin + t * dir of the near and far point of intersection
iff the ray intersects this AABBtrue if the given ray intersects this AABB; false otherwisepublic boolean intersectsRay(Rayf ray, org.joml.Vector2f result)
AABBfc
This method returns true for a ray whose origin lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsRay in interface AABBfcray - the rayresult - a vector which will hold the resulting values of the parameter
t in the ray equation p(t) = origin + t * dir of the near and far point of intersection
iff the ray intersects this AABBtrue if the given ray intersects this AABB; false otherwisepublic int intersectsLineSegment(float p0X,
float p0Y,
float p0Z,
float p1X,
float p1Y,
float p1Z,
org.joml.Vector2f result)
AABBfc(p0X, p0Y, p0Z) and (p1X, p1Y, p1Z)
intersects this AABB, and return the values of the parameter t in the ray equation
p(t) = origin + p0 * (p1 - p0) of the near and far point of intersection.
This method returns true for a line segment whose either end point lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsLineSegment in interface AABBfcp0X - the x coordinate of the line segment's first end pointp0Y - the y coordinate of the line segment's first end pointp0Z - the z coordinate of the line segment's first end pointp1X - the x coordinate of the line segment's second end pointp1Y - the y coordinate of the line segment's second end pointp1Z - the z coordinate of the line segment's second end pointresult - a vector which will hold the resulting values of the parameter
t in the ray equation p(t) = p0 + t * (p1 - p0) of the near and far point of intersection
iff the line segment intersects this AABBIntersectionf.INSIDE if the line segment lies completely inside of this AABB; or
Intersectionf.OUTSIDE if the line segment lies completely outside of this AABB; or
Intersectionf.ONE_INTERSECTION if one of the end points of the line segment lies inside of this AABB; or
Intersectionf.TWO_INTERSECTION if the line segment intersects two sides of this AABB or lies on an edge or a side of this AABBpublic int intersectsLineSegment(LineSegmentf lineSegment, org.joml.Vector2f result)
AABBfc
This method returns true for a line segment whose either end point lies inside this AABB.
Reference: An Efficient and Robust Ray–Box Intersection
intersectsLineSegment in interface AABBfclineSegment - the line segmentresult - a vector which will hold the resulting values of the parameter
t in the ray equation p(t) = p0 + t * (p1 - p0) of the near and far point of intersection
iff the line segment intersects this AABBIntersectionf.INSIDE if the line segment lies completely inside of this AABB; or
Intersectionf.OUTSIDE if the line segment lies completely outside of this AABB; or
Intersectionf.ONE_INTERSECTION if one of the end points of the line segment lies inside of this AABB; or
Intersectionf.TWO_INTERSECTION if the line segment intersects two sides of this AABB or lies on an edge or a side of this AABBpublic AABBf transform(org.joml.Matrix4fc m)
m - the affine transformation matrixpublic AABBf transform(org.joml.Matrix4fc m, AABBf dest)
AABBfcaffine transformation to this
AABBf and store the resulting AABB into dest.
The matrix in m must be affine.
public String toString()
This method creates a new DecimalFormat on every invocation with the format string "0.000E0;-".
public String toString(NumberFormat formatter)
AABBfcNumberFormat.toString in interface AABBfcformatter - the NumberFormat used to format the vector components withpublic void writeExternal(ObjectOutput out) throws IOException
writeExternal in interface ExternalizableIOExceptionpublic void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizableIOExceptionClassNotFoundExceptionCopyright © 2020 JOML. All rights reserved.