34#include <glm/mat4x4.hpp>
103 void Scale(
float aScale );
175 float GetCenter(
unsigned int aAxis )
const;
234 bool Intersect(
const RAY& aRay,
float* aOutHitt0,
float* aOutHitt1 )
const;
Manage a bounding box defined by two SFVEC3F min max points.
void ScaleNextUp()
Scale a bounding box to the next float representation making it larger.
BBOX_3D()
Create with default values a bounding box (not initialized)
const SFVEC3F GetExtent() const
bool Intersect(const RAY &aRay, float *t) const
void Union(const SFVEC3F &aPoint)
Recalculate the bounding box adding a point.
SFVEC3F m_min
(12) point of the lower position of the bounding box
SFVEC3F GetCenter() const
Return the center point of the bounding box.
const SFVEC3F & Min() const
Return the minimum vertex pointer.
SFVEC3F Offset(const SFVEC3F &p) const
SFVEC3F m_max
(12) point of the higher position of the bounding box
const SFVEC3F & Max() const
Return the maximum vertex pointer.
void Set(const SFVEC3F &aPbMin, const SFVEC3F &aPbMax)
Set bounding box with new parameters.
void Reset()
Reset the bounding box to zero and de-initialize it.
void ApplyTransformation(glm::mat4 aTransformMatrix)
Apply a transformation matrix to the box points.
unsigned int MaxDimension() const
bool Intersects(const BBOX_3D &aBBox) const
Test if a bounding box intersects this box.
float SurfaceArea() const
float Volume() const
Calculate the volume of a bounding box.
float GetMaxDimension() const
void ScaleNextDown()
Scale a bounding box to the next float representation making it smaller.
bool IsInitialized() const
Check if this bounding box is already initialized.
bool Inside(const SFVEC3F &aPoint) const
Check if a point is inside this bounding box.
void Scale(float aScale)
Scales a bounding box by its center.