#ifndef FRUSTUM_H

#define FRUSTUM_H

 

/**

* Frustum Class written by Justin Klein, 2004

*

  * This class provides the functions necessary to implement Frustum Culling in OpenGL.

  * What this means is, the class determines if a point, sphere, or cube is located within

  * the camera's viewspace.  If not, than the object may be omitted from the scene.

  * This can drastically reduce the processing time required to render large 3D environments.

  **/

 

      /**

        * Call this every time the camera moves (to update the frustum)

        **/

      void CalculateFrustum();

 

      /**

        * This takes a 3D point and returns TRUE if it's inside of the frustum

        **/

      bool PointInFrustum(float x, float y, float z);

 

      /**

        * This takes a 3D point and a radius and returns TRUE if any part of the sphere is inside of the frustum

        **/

      bool SphereInFrustum(float x, float y, float z, float radius);

 

      /**

        * This takes the center and half the length of a cube and returns TRUE if any piece of it is inside the frustum

        **/

      bool CubeInFrustum( float x, float y, float z, float size );