36 lines
913 B
C++
36 lines
913 B
C++
#include "prop.hpp"
|
|
|
|
Prop::Prop(
|
|
const std::vector<GLfloat> &vertices,
|
|
Shader *shader,
|
|
glm::vec3 pos)
|
|
:
|
|
mesh(vertices, shader),
|
|
collision_box(
|
|
glm::vec3(vertices[0], vertices[1], vertices[2]),
|
|
glm::vec3(vertices[0], vertices[1], vertices[2])),
|
|
position(pos)
|
|
{
|
|
assert(vertices.size() >= 3);
|
|
|
|
for (size_t i = 0; i < vertices.size(); i += 8) {
|
|
auto x = vertices[i],
|
|
y = vertices[i+1],
|
|
z = vertices[i+2];
|
|
|
|
if (x < collision_box.min.x) collision_box.min.x = x;
|
|
if (y < collision_box.min.y) collision_box.min.y = y;
|
|
if (y < collision_box.min.z) collision_box.min.z = z;
|
|
|
|
if (x > collision_box.max.x) collision_box.max.x = x;
|
|
if (y > collision_box.max.y) collision_box.max.y = y;
|
|
if (y > collision_box.max.z) collision_box.max.z = z;
|
|
}
|
|
}
|
|
|
|
void
|
|
Prop::draw() const
|
|
{
|
|
mesh.draw();
|
|
}
|