export module Core.Frustum; export import Core.Matrix; import Core.Array; import Core.Plane; export namespace Core { class Frustum final { Matrix projection; Array planes; float tan; float near; float far; public: Frustum(float fieldOfView, float nearClip, float farClip) noexcept; const Matrix& updateProjection(const IntVector2& size) noexcept; void updatePlanes( const Vector3& pos, const Vector3& right, const Vector3& up, const Vector3& front, const IntVector2& size) noexcept; bool isInside(const Vector3& pos) const noexcept; bool isInside(const Vector3& pos, float radius) const noexcept; }; }