FrustrumCuller Class Reference

#include <frustrumCuller.h>

List of all members.


Detailed Description

Helper class to perform efficient frustrum culling on bounding boxes.


Public Types

 MaxClipPlanes = 5
 We need to store at least 4 clip planes (sides of view frustrum).
 ClipPlaneMask = BIT(MaxClipPlanes) - 1
 FarSphereMask = BIT(MaxClipPlanes + 1)
 FogPlaneBoxMask = BIT(MaxClipPlanes + 2)
 AllClipPlanes = ClipPlaneMask | FarSphereMask
enum  {
  MaxClipPlanes = 5,
  ClipPlaneMask = BIT(MaxClipPlanes) - 1,
  FarSphereMask = BIT(MaxClipPlanes + 1),
  FogPlaneBoxMask = BIT(MaxClipPlanes + 2),
  AllClipPlanes = ClipPlaneMask | FarSphereMask
}

Public Member Functions

 FrustrumCuller ()
void init (SceneState *state)
const S32 testBoxVisibility (const Box3F &bounds, const S32 mask, const F32 expand) const
const F32 getBoxDistance (const Box3F &box) const
void computeFrustumPlanes (const F64 frustumParameters[6], const MatrixF &worldSpaceToObjectSpace, const Point3F &wsCamPoint, PlaneF &outFarPlane, PlaneF &outXMinPlane, PlaneF &outXMaxPlane, PlaneF &outYMinPlane, PlaneF &outYMaxPlane)

Public Attributes

SceneStatemSceneState
Point3F mCamPos
F32 mFarDistance
U32 mNumClipPlanes
PlaneF mClipPlane [MaxClipPlanes]


Member Enumeration Documentation

anonymous enum

Enumerator:
MaxClipPlanes  We need to store at least 4 clip planes (sides of view frustrum).
ClipPlaneMask 
FarSphereMask 
FogPlaneBoxMask 
AllClipPlanes 


Constructor & Destructor Documentation

FrustrumCuller::FrustrumCuller (  )  [inline]


Member Function Documentation

void FrustrumCuller::init ( SceneState state  ) 

const S32 FrustrumCuller::testBoxVisibility ( const Box3F bounds,
const S32  mask,
const F32  expand 
) const

const F32 FrustrumCuller::getBoxDistance ( const Box3F box  )  const

void FrustrumCuller::computeFrustumPlanes ( const F64  frustumParameters[6],
const MatrixF worldSpaceToObjectSpace,
const Point3F wsCamPoint,
PlaneF outFarPlane,
PlaneF outXMinPlane,
PlaneF outXMaxPlane,
PlaneF outYMinPlane,
PlaneF outYMaxPlane 
)


Member Data Documentation