292 Chapter 4 Scene Graphs
class Culler
{
enum { VS_MAX_PLANE_QUANTITY = 32 };
int GetPlaneQuantity () const;
const Plane3f* GetPlanes () const;
void SetPlaneState (unsigned int uiPlaneState);
unsigned int GetPlaneState () const;
void PushPlane (const Plane3f& rkPlane);
void PopPlane ();
bool IsVisible (const BoundingVolume* pkWound);
bool IsVisible (int iVertexQuantity, const Vector3f* akVertex,
bool bIgnoreNearPlane);
int WhichSide (const Plane3f& rkPlane) const;
protected:
int m_iPlaneQuantity;
Plane3f m_akPlane[VS_MAX_PLANE_QUANTITY];
unsigned int m_uiPlaneState;
};
The member m_uiPlaneState represents bit flags to store whether or not a plane is
active in the culling system. A bit of 1 means the plane is active; otherwise the plane
is inactive. An active