DragonNest/Common/EngineUtil/EtFrustum.h
2024-12-19 09:48:26 +08:00

29 lines
836 B
C++

#pragma once
class CEtFrustum
{
public:
CEtFrustum();
virtual ~CEtFrustum();
public:
void SetPerspective( const float FOV /*rad*/, const float ViewAspect, const float nearZ, const float farZ );
void Build( const EtVector3& Eye, const EtVector3& Forward, const EtVector3& Right, const EtVector3& Up );
bool IsPointIn( const EtVector3& Point );
bool IsAABBIn ( const EtVector3& v1, const EtVector3& v2);
bool IsOBBIn ( const EtVector3& Center, const EtVector3& HalfDimensions, const EtQuat& RotationQuat);
bool IsHullIn( const EtVector3* aVertices, const char nVertices );
bool IsSphereIn( const EtVector3& Center, const float Radius );
private:
EtVector3 m_EyePosition;
EtVector3 m_ForwardVector;
EtVector3 m_RightVector;
EtVector3 m_UpVector;
float m_rFactor;
float m_uFactor;
float m_NearZ;
float m_FarZ;
};