Class Frustumd

java.lang.Object
gaiasky.util.math.Frustumd

public class Frustumd
extends java.lang.Object
A truncated rectangular pyramid. Used to define the viewable region and its projection onto the screen.
See Also:
Camera.frustum
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected static Vector3d[] clipSpacePlanePoints  
    protected static double[] clipSpacePlanePointsArray  
    Vector3d[] planePoints
    eight points making up the near and far clipping "rectangles".
    protected double[] planePointsArray  
    Planed[] planes
    the six clipping planes, near, far, left, right, top, bottom
  • Constructor Summary

    Constructors
    Constructor Description
    Frustumd()  
  • Method Summary

    Modifier and Type Method Description
    boolean boundsInFrustum​(double x, double y, double z, double halfWidth, double halfHeight, double halfDepth)
    Returns whether the given bounding box is in the frustum.
    boolean boundsInFrustum​(BoundingBoxd bounds)
    Returns whether the given BoundingBoxd is in the frustum.
    boolean boundsInFrustum​(Vector3d center, Vector3d dimensions)
    Returns whether the given bounding box is in the frustum.
    boolean pointInFrustum​(float x, float y, float z)
    Returns whether the point is in the frustum.
    boolean pointInFrustum​(Vector3d point)
    Returns whether the point is in the frustum.
    boolean sphereInFrustum​(float x, float y, float z, float radius)
    Returns whether the given sphere is in the frustum.
    boolean sphereInFrustum​(Vector3d center, float radius)
    Returns whether the given sphere is in the frustum.
    boolean sphereInFrustumWithoutNearFar​(float x, float y, float z, float radius)
    Returns whether the given sphere is in the frustum not checking whether it is behind the near and far clipping plane.
    boolean sphereInFrustumWithoutNearFar​(Vector3d center, float radius)
    Returns whether the given sphere is in the frustum not checking whether it is behind the near and far clipping plane.
    void update​(Matrix4d inverseProjectionView)
    Updates the clipping plane's based on the given inverse combined projection and view matrix, e.g.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • clipSpacePlanePoints

      protected static final Vector3d[] clipSpacePlanePoints
    • clipSpacePlanePointsArray

      protected static final double[] clipSpacePlanePointsArray
    • planes

      public final Planed[] planes
      the six clipping planes, near, far, left, right, top, bottom
    • planePoints

      public final Vector3d[] planePoints
      eight points making up the near and far clipping "rectangles". order is counter clockwise, starting at bottom left
    • planePointsArray

      protected final double[] planePointsArray
  • Constructor Details

    • Frustumd

      public Frustumd()
  • Method Details

    • update

      public void update​(Matrix4d inverseProjectionView)
      Updates the clipping plane's based on the given inverse combined projection and view matrix, e.g. from an OrthographicCamera or PerspectiveCamera.
      Parameters:
      inverseProjectionView - the combined projection and view matrices.
    • pointInFrustum

      public boolean pointInFrustum​(Vector3d point)
      Returns whether the point is in the frustum.
      Parameters:
      point - The point
      Returns:
      Whether the point is in the frustum.
    • pointInFrustum

      public boolean pointInFrustum​(float x, float y, float z)
      Returns whether the point is in the frustum.
      Parameters:
      x - The X coordinate of the point
      y - The Y coordinate of the point
      z - The Z coordinate of the point
      Returns:
      Whether the point is in the frustum.
    • sphereInFrustum

      public boolean sphereInFrustum​(Vector3d center, float radius)
      Returns whether the given sphere is in the frustum.
      Parameters:
      center - The center of the sphere
      radius - The radius of the sphere
      Returns:
      Whether the sphere is in the frustum
    • sphereInFrustum

      public boolean sphereInFrustum​(float x, float y, float z, float radius)
      Returns whether the given sphere is in the frustum.
      Parameters:
      x - The X coordinate of the center of the sphere
      y - The Y coordinate of the center of the sphere
      z - The Z coordinate of the center of the sphere
      radius - The radius of the sphere
      Returns:
      Whether the sphere is in the frustum
    • sphereInFrustumWithoutNearFar

      public boolean sphereInFrustumWithoutNearFar​(Vector3d center, float radius)
      Returns whether the given sphere is in the frustum not checking whether it is behind the near and far clipping plane.
      Parameters:
      center - The center of the sphere
      radius - The radius of the sphere
      Returns:
      Whether the sphere is in the frustum
    • sphereInFrustumWithoutNearFar

      public boolean sphereInFrustumWithoutNearFar​(float x, float y, float z, float radius)
      Returns whether the given sphere is in the frustum not checking whether it is behind the near and far clipping plane.
      Parameters:
      x - The X coordinate of the center of the sphere
      y - The Y coordinate of the center of the sphere
      z - The Z coordinate of the center of the sphere
      radius - The radius of the sphere
      Returns:
      Whether the sphere is in the frustum
    • boundsInFrustum

      public boolean boundsInFrustum​(BoundingBoxd bounds)
      Returns whether the given BoundingBoxd is in the frustum.
      Parameters:
      bounds - The bounding box
      Returns:
      Whether the bounding box is in the frustum
    • boundsInFrustum

      public boolean boundsInFrustum​(Vector3d center, Vector3d dimensions)
      Returns whether the given bounding box is in the frustum.
      Returns:
      Whether the bounding box is in the frustum
    • boundsInFrustum

      public boolean boundsInFrustum​(double x, double y, double z, double halfWidth, double halfHeight, double halfDepth)
      Returns whether the given bounding box is in the frustum.
      Returns:
      Whether the bounding box is in the frustum