39 lines
1.1 KiB
C++
Executable File
39 lines
1.1 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Shader Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _FRUSTRUMCULLER_H_
|
|
#define _FRUSTRUMCULLER_H_
|
|
|
|
#include "math/mBox.h"
|
|
#include "sceneGraph/sceneState.h"
|
|
|
|
namespace FrustrumCuller
|
|
{
|
|
enum
|
|
{
|
|
/// We need to store at least 4 clip planes (sides of view frustrum).
|
|
MaxClipPlanes = 5,
|
|
|
|
// Clipping related flags...
|
|
ClipPlaneMask = BIT(MaxClipPlanes) - 1,
|
|
FarSphereMask = BIT(MaxClipPlanes + 1),
|
|
FogPlaneBoxMask = BIT(MaxClipPlanes + 2),
|
|
|
|
AllClipPlanes = ClipPlaneMask | FarSphereMask,
|
|
|
|
};
|
|
|
|
extern SceneState *smSceneState;
|
|
extern Point3F smCamPos;
|
|
extern F32 smFarDistance;
|
|
extern U32 smNumClipPlanes;
|
|
extern PlaneF smClipPlane[MaxClipPlanes];
|
|
|
|
void init(SceneState *state);
|
|
S32 testBoxVisibility(const Box3F &bounds, const S32 mask, const F32 expand);
|
|
F32 getBoxDistance(const Box3F &box);
|
|
};
|
|
|
|
#endif |