tge/engine/util/frustrumCuller.h
2017-04-17 06:17:10 -06:00

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