#pragma once
#include "pch.h"
#include "Vector3.h"
#include "Matrix4X3.h"
class AABB3
{
public:
Vector3 min;
Vector3 max;
Vector3 size()
{
return max - min;
}
float xSize()
{
return max.x - min.x;
}
float ySize()
{
return max.y - min.y;
}
float zSize()
{
return max.z - min.z;
}
Vector3 center()
{
return (max + min)*0.5f;
}
Vector3 corner(int index);
void empty();
bool isEmpty()const ;
void add(Vector3 &v);
void add(AABB3 &box);
bool contain(Vector3 &v);
void setToTransformedBox(const AABB3 &box, const Matrix4X3 &m);
};
#include "AABB3.h"
#include <assert.h>
Vector3 AABB3::corner(int index)
{
assert(index >= 0);
assert(index <=7);
return Vector3((index & 1) ? max.x : min.x, (index & 2) ? max.y : min