struct cogs::Frustum
Overview
Definition of a 3-dimensional view frustum - a square-based 3D pyramid truncated by parallel planes. More…
#include <Frustum.h> struct Frustum { // fields glm::vec3 position; glm::vec3 forward; glm::vec3 up; float near_distance; float far_distance; float horizontal_fov; float vertical_fov; // methods glm::vec3 Right() const; geom::Plane GetNearPlane() const; geom::Plane GetFarPlane() const; geom::Plane GetTopPlane() const; geom::Plane GetBottomPlane() const; geom::Plane GetRightPlane() const; geom::Plane GetLeftPlane() const; geom::Plane GetHorizontalPlane() const; geom::Plane GetVerticalPlane() const; std::array<glm::vec3, 4> GetSliceCorners(float slice_distance) const; std::array<glm::vec3, 4> GetNearCorners() const; std::array<glm::vec3, 4> GetFarCorners() const; };
Detailed Documentation
Definition of a 3-dimensional view frustum - a square-based 3D pyramid truncated by parallel planes.
Fields
glm::vec3 position
Frustum position.
glm::vec3 forward
Frustum forward vector. Points inside the Frustum from its position.
glm::vec3 up
Frustum up vector.
float near_distance
Distance of near plane from the Frustum ‘s position in the direction of its forward vector.
float far_distance
Distance of far plane from the Frustum ‘s position in the direction of its forward vector.
float horizontal_fov
Full horizontal field of view angle.
float vertical_fov
Full vertical field of view angle.
Methods
glm::vec3 Right() const
Compute right vector from forward and up vectors.
geom::Plane GetNearPlane() const
Compute near plane. The normal vector points inside the Frustum.
geom::Plane GetFarPlane() const
Compute near plane. The normal vector points inside the Frustum.
geom::Plane GetTopPlane() const
Compute top plane. The normal vector points inside the Frustum.
geom::Plane GetBottomPlane() const
Compute bottom plane. The normal vector points inside the Frustum.
geom::Plane GetRightPlane() const
Compute right plane. The normal vector points inside the Frustum.
geom::Plane GetLeftPlane() const
Compute left plane. The normal vector points inside the Frustum.
geom::Plane GetHorizontalPlane() const
Compute horizontal plane. The normal vector is the up vector.
geom::Plane GetVerticalPlane() const
Compute vertical plane. The normal vector is the right vector.
std::array<glm::vec3, 4> GetSliceCorners(float slice_distance) const
Compute corners of frustum slice quad, made in specified distance.
std::array<glm::vec3, 4> GetNearCorners() const
Compute corners of frustum near plane quad.
std::array<glm::vec3, 4> GetFarCorners() const
Compute corners of frustum far plane quad.