22 #ifndef INCLUDED_BOUND 23 #define INCLUDED_BOUND 114 return (std::max(v.
X, 0.0f) * std::max(v.
Y, 0.0f) * std::max(v.
Z, 0.0f));
126 void Expand(
float amount);
void Transform(const CMatrix3D &m, CBoundingBoxAligned &result) const
Transforms these bounds according to the specified transformation matrix m, and writes the axis-align...
Definition: BoundingBoxAligned.cpp:142
void RenderOutline(CShaderProgramPtr &shader) const
Render the outline of the bound object as lines.
Definition: BoundingBoxAligned.cpp:290
CVector3D & operator[](int index)
Definition: BoundingBoxAligned.h:67
static const CBoundingBoxAligned EMPTY
Definition: BoundingBoxAligned.h:165
CBoundingBoxAligned(const CVector3D &min, const CVector3D &max)
Definition: BoundingBoxAligned.h:40
void Translate(const CVector3D &v, CBoundingBoxAligned &result) const
Translates these bounds by v, and writes the result to result.
Definition: BoundingBoxAligned.h:61
float GetVolume() const
Definition: BoundingBoxAligned.h:111
Definition: Vector3D.h:28
void GetCentre(CVector3D ¢re) const
Definition: BoundingBoxAligned.h:118
CBoundingBoxAligned & operator+=(const CBoundingBoxAligned &b)
Definition: BoundingBoxAligned.h:84
CVector3D m_Data[2]
Definition: BoundingBoxAligned.h:162
void Extend(const CVector3D &min, const CVector3D &max)
Definition: BoundingBoxAligned.h:73
CFrustum ToFrustum() const
Construct a CFrustum that describes the same volume as this bounding box.
Definition: BoundingBoxAligned.cpp:216
Definition: Matrix3D.h:33
bool IsEmpty() const
Definition: BoundingBoxAligned.cpp:132
float X
Definition: Vector3D.h:31
float Y
Definition: Vector3D.h:31
void IntersectFrustumConservative(const CFrustum &frustum)
IntersectFrustumConservative: Approximate the intersection of this bounds object with the given frust...
Definition: BoundingBoxAligned.cpp:199
CBoundingBoxAligned & operator+=(const CVector3D &pt)
Definition: BoundingBoxAligned.h:91
bool RayIntersect(const CVector3D &origin, const CVector3D &dir, float &tmin, float &tmax) const
Check if a given ray intersects this AABB.
Definition: BoundingBoxAligned.cpp:43
const CVector3D & operator[](int index) const
Definition: BoundingBoxAligned.h:68
Definition: BoundingBoxAligned.h:35
void Expand(float amount)
Expand the bounding box by the given amount in every direction.
Definition: BoundingBoxAligned.cpp:250
void SetEmpty()
Definition: BoundingBoxAligned.cpp:124
float Z
Definition: Vector3D.h:31
Definition: BoundingBoxOriented.h:30
CBoundingBoxAligned()
Definition: BoundingBoxAligned.h:39
void Render(CShaderProgramPtr &shader) const
Render the surfaces of the bound object as triangles.
Definition: BoundingBoxAligned.cpp:258
std::shared_ptr< CShaderProgram > CShaderProgramPtr
Definition: ShaderProgramPtr.h:25