86 void expand(
const glm::vec3 &point);
240 void update(
const glm::mat4 &view_projection);
284 std::array<Plane, 6> m_planes;
Frustum structure.
Definition frustum.hpp:218
bool contains_sphere(const BoundingSphere &sphere) const
Check if a bounding sphere is inside the frustum.
Definition frustum.cpp:102
const Plane & get_plane(PlaneIndex index) const
Get a specific frustum plane.
Definition frustum.hpp:280
bool contains_aabb(const AABB &aabb) const
Check if an Axis-Aligned Bounding Box (AABB) is inside the frustum.
Definition frustum.cpp:112
void update(const glm::mat4 &view_projection)
Update the frustum planes from a view-projection matrix.
Definition frustum.cpp:63
bool contains_point(const glm::vec3 &point) const
Check if a point is inside the frustum.
Definition frustum.cpp:93
PlaneIndex
Enumeration for the frustum planes.
Definition frustum.hpp:231
Namespace for scene-related classes and functions.
Definition camera.cpp:7
Forward declarations for Assimp Material structure.
Definition model_loader.cpp:12
Axis-Aligned Bounding Box (AABB) structure.
Definition frustum.hpp:27
AABB transform(const glm::mat4 &matrix) const
Transform the AABB with a matrix.
Definition frustum.cpp:11
glm::vec3 max
Maximum corner point of the AABB.
Definition frustum.hpp:32
glm::vec3 min
Minimum corner point of the AABB.
Definition frustum.hpp:29
void expand(const glm::vec3 &point)
Expand the AABB to include a point.
Definition frustum.cpp:25
glm::vec3 get_extents() const
Get the extents of the AABB.
Definition frustum.hpp:67
AABB()
Default constructor initializing an empty AABB.
Definition frustum.hpp:39
void merge(const AABB &other)
Merge the AABB with another AABB.
Definition frustum.cpp:30
glm::vec3 get_center() const
Get the center point of the AABB.
Definition frustum.hpp:58
AABB(const glm::vec3 &min, const glm::vec3 &max)
Parameterized constructor.
Definition frustum.hpp:49
Bounding Sphere structure.
Definition frustum.hpp:105
BoundingSphere(const glm::vec3 ¢er, float radius)
Parameterized constructor.
Definition frustum.hpp:127
static BoundingSphere from_aabb(const AABB &aabb)
Create a bounding sphere from an AABB.
Definition frustum.cpp:37
BoundingSphere()
Default constructor initializing an empty bounding sphere.
Definition frustum.hpp:117
glm::vec3 center
Center point of the bounding sphere.
Definition frustum.hpp:107
BoundingSphere transform(const glm::mat4 &matrix) const
Transform the bounding sphere with a matrix.
Definition frustum.cpp:43
float radius
Radius of the bounding sphere.
Definition frustum.hpp:110
Plane structure.
Definition frustum.hpp:157
Plane(const glm::vec3 &point, const glm::vec3 &normal)
Construct a plane from a point and a normal vector.
Definition frustum.hpp:190
Plane(const glm::vec3 &normal, float distance)
Parameterized constructor.
Definition frustum.hpp:179
void normalize()
Normalize the plane equation.
Definition frustum.cpp:55
Plane()
Default constructor initializing a horizontal plane at the origin.
Definition frustum.hpp:169
float distance_to_point(const glm::vec3 &point) const
Calculate the distance from a point to the plane.
Definition frustum.hpp:201
glm::vec3 normal
Normal vector of the plane.
Definition frustum.hpp:159
float distance
Distance from the origin to the plane along the normal.
Definition frustum.hpp:162