Interface CullFrustum
- All Known Implementing Classes:
FrustumMixin
-
Method Summary
Modifier and TypeMethodDescriptionorg.joml.Matrix4fc
org.joml.Vector4fc[]
org.joml.Vector3dc
org.joml.Vector3fc
boolean
testAab
(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler.boolean
testAab
(net.minecraft.world.phys.AABB aabb) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testAab
(org.joml.Vector3dc min, org.joml.Vector3dc max) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testAab
(org.joml.Vector3fc min, org.joml.Vector3fc max) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler.boolean
testLineSegment
(double aX, double aY, double aZ, double bX, double bY, double bZ) Test whether the given line segment, defined by the end points(aX, aY, aZ)
and(bX, bY, bZ)
, is partly or completely within the frustum defined bythis
frustum culler.default boolean
testLineSegment
(org.joml.Vector3dc a, org.joml.Vector3dc b) Test whether the given line segment, defined by the end pointsa
andb
, is partly or completely within the frustum defined bythis
frustum culler.default boolean
testLineSegment
(org.joml.Vector3fc a, org.joml.Vector3fc b) Test whether the given line segment, defined by the end pointsa
andb
, is partly or completely within the frustum defined bythis
frustum culler.boolean
testPlaneXY
(double minX, double minY, double maxX, double maxY) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testPlaneXY
(org.joml.Vector2dc min, org.joml.Vector2dc max) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testPlaneXY
(org.joml.Vector2fc min, org.joml.Vector2fc max) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler.boolean
testPlaneXZ
(double minX, float minZ, float maxX, float maxZ) Test whether the given XZ-plane (atY = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler.boolean
testPoint
(double x, double y, double z) Test whether the given point(x, y, z)
is within the frustum defined bythis
frustum culler.default boolean
testPoint
(net.minecraft.world.phys.Vec3 point) Test whether the given point is within the frustum defined bythis
frustum culler.default boolean
testPoint
(org.joml.Vector3dc point) Test whether the given point is within the frustum defined bythis
frustum culler.default boolean
testPoint
(org.joml.Vector3fc point) Test whether the given point is within the frustum defined bythis
frustum culler.boolean
testSphere
(double x, double y, double z, float r) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testSphere
(org.joml.Vector3dc center, float radius) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.default boolean
testSphere
(org.joml.Vector3fc center, float radius) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.
-
Method Details
-
testPoint
default boolean testPoint(org.joml.Vector3fc point) Test whether the given point is within the frustum defined bythis
frustum culler.- Parameters:
point
- the point to test- Returns:
true
if the given point is inside the frustum;false
otherwise
-
testPoint
default boolean testPoint(org.joml.Vector3dc point) Test whether the given point is within the frustum defined bythis
frustum culler.- Parameters:
point
- the point to test- Returns:
true
if the given point is inside the frustum;false
otherwise
-
testPoint
default boolean testPoint(net.minecraft.world.phys.Vec3 point) Test whether the given point is within the frustum defined bythis
frustum culler.- Parameters:
point
- the point to test- Returns:
true
if the given point is inside the frustum;false
otherwise
-
testPoint
boolean testPoint(double x, double y, double z) Test whether the given point(x, y, z)
is within the frustum defined bythis
frustum culler.- Parameters:
x
- the x-coordinate of the pointy
- the y-coordinate of the pointz
- the z-coordinate of the point- Returns:
true
if the given point is inside the frustum;false
otherwise
-
testSphere
default boolean testSphere(org.joml.Vector3dc center, float radius) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for spheres that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
center
- the sphere's centerradius
- the sphere's radius- Returns:
true
if the given sphere is partly or completely inside the frustum;false
otherwise
-
testSphere
default boolean testSphere(org.joml.Vector3fc center, float radius) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for spheres that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
center
- the sphere's centerradius
- the sphere's radius- Returns:
true
if the given sphere is partly or completely inside the frustum;false
otherwise
-
testSphere
boolean testSphere(double x, double y, double z, float r) Test whether the given sphere is partly or completely within or outside of the frustum defined bythis
frustum culler.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for spheres that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
x
- the x-coordinate of the sphere's centery
- the y-coordinate of the sphere's centerz
- the z-coordinate of the sphere's centerr
- the sphere's radius- Returns:
true
if the given sphere is partly or completely inside the frustum;false
otherwise
-
testAab
boolean testAab(net.minecraft.world.phys.AABB aabb) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler. The box is specified via itsmin
andmax
corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for boxes that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
aabb
- the axis-aligned box- Returns:
true
if the axis-aligned box is completely or partly inside of the frustum;false
otherwise
-
testAab
default boolean testAab(org.joml.Vector3dc min, org.joml.Vector3dc max) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler. The box is specified via itsmin
andmax
corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for boxes that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
min
- the minimum corner coordinates of the axis-aligned boxmax
- the maximum corner coordinates of the axis-aligned box- Returns:
true
if the axis-aligned box is completely or partly inside of the frustum;false
otherwise
-
testAab
default boolean testAab(org.joml.Vector3fc min, org.joml.Vector3fc max) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler. The box is specified via itsmin
andmax
corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for boxes that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
min
- the minimum corner coordinates of the axis-aligned boxmax
- the maximum corner coordinates of the axis-aligned box- Returns:
true
if the axis-aligned box is completely or partly inside of the frustum;false
otherwise
-
testAab
boolean testAab(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) Test whether the given axis-aligned box is partly or completely within or outside of the frustum defined bythis
frustum culler. The box is specified via its min and max corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for boxes that do not intersect the frustum. See iquilezles.org for an examination of this problem.Reference: Efficient View Frustum Culling
- Parameters:
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 corner- Returns:
true
if the axis-aligned box is completely or partly inside of the frustum;false
otherwise
-
testPlaneXY
default boolean testPlaneXY(org.joml.Vector2dc min, org.joml.Vector2dc max) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler. The plane is specified via itsmin
andmax
corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for planes that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
min
- the minimum corner coordinates of the XY-planemax
- the maximum corner coordinates of the XY-plane- Returns:
true
if the XY-plane is completely or partly inside of the frustum;false
otherwise
-
testPlaneXY
default boolean testPlaneXY(org.joml.Vector2fc min, org.joml.Vector2fc max) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler. The plane is specified via itsmin
andmax
corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for planes that do not intersect the frustum. See iquilezles.org for an examination of this problem.- Parameters:
min
- the minimum corner coordinates of the XY-planemax
- the maximum corner coordinates of the XY-plane- Returns:
true
if the XY-plane is completely or partly inside of the frustum;false
otherwise
-
testPlaneXY
boolean testPlaneXY(double minX, double minY, double maxX, double maxY) Test whether the given XY-plane (atZ = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler. The plane is specified via its min and max corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for planes that do not intersect the frustum. See iquilezles.org for an examination of this problem.Reference: Efficient View Frustum Culling
- Parameters:
minX
- the x-coordinate of the minimum cornerminY
- the y-coordinate of the minimum cornermaxX
- the x-coordinate of the maximum cornermaxY
- the y-coordinate of the maximum corner- Returns:
true
if the XY-plane is completely or partly inside of the frustum;false
otherwise
-
testPlaneXZ
boolean testPlaneXZ(double minX, float minZ, float maxX, float maxZ) Test whether the given XZ-plane (atY = 0
) is partly or completely within or outside of the frustum defined bythis
frustum culler. The plane is specified via its min and max corner coordinates.The algorithm implemented by this method is conservative. This means that in certain circumstances a false positive can occur, when the method returns
true
for planes that do not intersect the frustum. See iquilezles.org for an examination of this problem.Reference: Efficient View Frustum Culling
- Parameters:
minX
- the x-coordinate of the minimum cornerminZ
- the z-coordinate of the minimum cornermaxX
- the x-coordinate of the maximum cornermaxZ
- the z-coordinate of the maximum corner- Returns:
true
if the XZ-plane is completely or partly inside of the frustum;false
otherwise
-
testLineSegment
default boolean testLineSegment(org.joml.Vector3dc a, org.joml.Vector3dc b) Test whether the given line segment, defined by the end pointsa
andb
, is partly or completely within the frustum defined bythis
frustum culler.- Parameters:
a
- the line segment's first end pointb
- the line segment's second end point- Returns:
true
if the given line segment is partly or completely inside the frustum;false
otherwise
-
testLineSegment
default boolean testLineSegment(org.joml.Vector3fc a, org.joml.Vector3fc b) Test whether the given line segment, defined by the end pointsa
andb
, is partly or completely within the frustum defined bythis
frustum culler.- Parameters:
a
- the line segment's first end pointb
- the line segment's second end point- Returns:
true
if the given line segment is partly or completely inside the frustum;false
otherwise
-
testLineSegment
boolean testLineSegment(double aX, double aY, double aZ, double bX, double bY, double bZ) Test whether the given line segment, defined by the end points(aX, aY, aZ)
and(bX, bY, bZ)
, is partly or completely within the frustum defined bythis
frustum culler.- Parameters:
aX
- the x coordinate of the line segment's first end pointaY
- the y coordinate of the line segment's first end pointaZ
- the z coordinate of the line segment's first end pointbX
- the x coordinate of the line segment's second end pointbY
- the y coordinate of the line segment's second end pointbZ
- the z coordinate of the line segment's second end point- Returns:
true
if the given line segment is partly or completely inside the frustum;false
otherwise
-
getPlanes
org.joml.Vector4fc[] getPlanes()- Returns:
- The data for each plane in the frustum
-
getModelViewProjectionMatrix
org.joml.Matrix4fc getModelViewProjectionMatrix()- Returns:
- The matrix used to create this frustum
-
getViewVector
org.joml.Vector3fc getViewVector()- Returns:
- The direction of the camera frustum
-
getPosition
org.joml.Vector3dc getPosition()- Returns:
- The position of the camera
-