Files
2016-06-22 22:05:50 +02:00

52 lines
813 B
C++

#include "Entity.h"
#include "cmath"
#include <GL/freeglut.h>
#include "Model.h"
Entity::Entity()
{
model = NULL;
scale = 1;
canCollide = true;
}
Entity::~Entity()
{
if(model)
Model::unload(model);
}
void Entity::draw()
{
if (model)
{
glPushMatrix();
glTranslatef(position.x, position.y, position.z);
glRotatef(rotation.x, 1, 0, 0);
glRotatef(rotation.y, 0, 1, 0);
glRotatef(rotation.z, 0, 0, 1);
glScalef(scale, scale, scale);
model->draw();
glPopMatrix();
}
}
bool Entity::inObject(const Vec3f & point)
{
if (!model)
return false;
Vec3f center = position + model->center;
float distance = ((point.x - center.x) * (point.x - center.x) + (point.z - center.z)*(point.z - center.z));
if (distance < model->radius*scale*model->radius*scale)
return true;
return false;
}