AABB can also be created with center position and its size.
This commit is contained in:
@@ -7,12 +7,16 @@ class AABB
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AABB() = default;
|
AABB() = default;
|
||||||
|
//No checks are made. Values in minPos must be less than values in maxPos, i.e. min.x < max.x, etc.
|
||||||
AABB(const glm::vec3& minPos, const glm::vec3& maxPos);
|
AABB(const glm::vec3& minPos, const glm::vec3& maxPos);
|
||||||
|
//No checks are made. Size must consist of non-negative numbers.
|
||||||
|
virtual void CreateFromCenter(const glm::vec3& center, const glm::vec3& size);
|
||||||
virtual ~AABB();
|
virtual ~AABB();
|
||||||
|
|
||||||
const glm::vec3& MinCorner() const { return m_MinCorner; }
|
const glm::vec3& MinCorner() const { return m_MinCorner; }
|
||||||
const glm::vec3& MaxCorner() const { return m_MaxCorner; }
|
const glm::vec3& MaxCorner() const { return m_MaxCorner; }
|
||||||
const glm::vec3& Center() const { return m_Center; }
|
const glm::vec3& Center() const { return m_Center; }
|
||||||
|
const glm::vec3& Size() const { return 2.0f * m_HalfSize; }
|
||||||
const glm::vec3& HalfSize() const { return m_HalfSize; }
|
const glm::vec3& HalfSize() const { return m_HalfSize; }
|
||||||
private:
|
private:
|
||||||
glm::vec3 m_MinCorner;
|
glm::vec3 m_MinCorner;
|
||||||
|
|||||||
@@ -7,5 +7,13 @@ AABB::AABB(const glm::vec3& minPos, const glm::vec3& maxPos)
|
|||||||
, m_HalfSize(0.5f * (maxPos - minPos))
|
, m_HalfSize(0.5f * (maxPos - minPos))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
void AABB::CreateFromCenter(const glm::vec3& center, const glm::vec3& size)
|
||||||
|
{
|
||||||
|
m_Center = center;
|
||||||
|
m_HalfSize = 0.5f * size;
|
||||||
|
m_MinCorner = m_Center - m_HalfSize;
|
||||||
|
m_MaxCorner = m_Center + m_HalfSize;
|
||||||
|
}
|
||||||
|
|
||||||
AABB::~AABB()
|
AABB::~AABB()
|
||||||
{}
|
{}
|
||||||
|
|||||||
Reference in New Issue
Block a user