13 #include <Utility/Array/NRE_Array.hpp> 14 #include <Utility/Interfaces/Stringable/NRE_Stringable.hpp> 15 #include "../NRE_Unit.hpp" 16 #include "../Plane/NRE_Plane.hpp" 17 #include "../Vector/2D/NRE_Vector2D.hpp" 18 #include "../Vector/3D/NRE_Vector3D.hpp" 19 #include "../Matrix/4D/NRE_Matrix4x4.hpp" 36 class Frustum :
public Utility::Stringable<Frustum> {
38 Utility::Array<Plane<float>, 6> planes;
92 void setFov(Angle fieldOfView);
143 void computeNearAndFar();
148 #include "NRE_Frustum.tpp"
void computePlane(Point3D< float > const &eye, Vector3D< float > const &forward, Vector3D< float > const &left, Vector3D< float > const &up)
void resize(Vector2D< std::size_t > const &size, Point3D< float > const &eye, Vector3D< float > const &forward, Vector3D< float > const &left, Vector3D< float > const &up)
4x4 generic matrix
Definition: NRE_Matrix3x3.hpp:35
Frustum & operator=(Frustum const &f)=default
A cartesian 3D vector, 2D homogeneous.
Definition: NRE_Matrix3x3.hpp:33
A cartesian plane with a point and a vector.
Definition: NRE_Matrix4x4.hpp:36
void setFov(Angle fieldOfView)
The NearlyRealEngine's global namespace.
Utility::String toString() const
void computeProjectionMatrix(Matrix4x4< float > &m)
Plane< float > const & getPlane(std::size_t index) const
A view frustum used with camera.
Definition: NRE_Frustum.hpp:36