Class Frustumd

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

public class Frustumd extends Object
A truncated rectangular pyramid. Used to define the viewable region and its projection onto the screen.
See Also:
  • Camera.frustum
  • 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