Files
escape-the-dawn/Escape-the-Dawn/AABB.cpp
T
2014-03-06 21:32:31 +01:00

46 lines
1.4 KiB
C++

#include "AABB.h"
AABB::AABB(glm::vec3 _volumeVector, glm::vec3 _origin)
{
volumeVector = _volumeVector;
origin = _origin;
CreateBB();
}
void AABB::CreateBB()
{
// Cube 1x1x1, centered on origin
GLfloat vertices[] = {
origin.x - 0.5, origin.y - 0.5, origin.z - 0.5, 1.0,
origin.x + 0.5, origin.y - 0.5, origin.z - 0.5, 1.0,
origin.x + 0.5, origin.y + 0.5, origin.z - 0.5, 1.0,
origin.x - 0.5, origin.y + 0.5, origin.z - 0.5, 1.0,
origin.x - 0.5, origin.y - 0.5, origin.z + 0.5, 1.0,
origin.x + 0.5, origin.y - 0.5, origin.z + 0.5, 1.0,
origin.x + 0.5, origin.y + 0.5, origin.z + 0.5, 1.0,
origin.x - 0.5, origin.y + 0.5, origin.z + 0.5, 1.0,
};
GLuint vbo_vertices;
glGenBuffers(1, &vbo_vertices);
glBindBuffer(GL_ARRAY_BUFFER, vbo_vertices);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
GLushort elements[] = {
0, 1, 2, 3,
4, 5, 6, 7,
0, 4, 1, 5,
2, 6, 3, 7
};
GLuint ibo_elements;
glGenBuffers(1, &ibo_elements);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo_elements);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(elements), elements, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glm::vec3 size = glm::vec3(glm::abs(origin.x-volumeVector.x), glm::abs(origin.y-volumeVector.y), glm::abs(origin.z-volumeVector.z));
glm::mat4 transform = glm::translate(glm::mat4(1), origin) * glm::scale(glm::mat4(1), size);
for (int i = 0; i < )
}