31 lines
737 B
C
31 lines
737 B
C
|
#ifndef CFRUSTUMPLANES_H
|
||
|
#define CFRUSTUMPLANES_H
|
||
|
|
||
|
#include <Common/CAABox.h>
|
||
|
#include <Common/CPlane.h>
|
||
|
#include <Common/CVector3f.h>
|
||
|
|
||
|
class CFrustumPlanes
|
||
|
{
|
||
|
public:
|
||
|
enum EFrustumSide
|
||
|
{
|
||
|
eNearPlane = 0, eFarPlane = 1,
|
||
|
eTopPlane = 2, eBottomPlane = 3,
|
||
|
eLeftPlane = 4, eRightPlane = 5
|
||
|
};
|
||
|
|
||
|
private:
|
||
|
CPlane mPlanes[6];
|
||
|
|
||
|
public:
|
||
|
CFrustumPlanes();
|
||
|
~CFrustumPlanes();
|
||
|
const CPlane& GetPlane(EFrustumSide side) const;
|
||
|
void SetPlanes(const CVector3f& position, const CVector3f& direction, float fieldOfView, float aspectRatio, float near, float far);
|
||
|
bool PointInFrustum(const CVector3f& point) const;
|
||
|
bool BoxInFrustum(const CAABox& box) const;
|
||
|
};
|
||
|
|
||
|
#endif // CFRUSTUMPLANES_H
|