Implemented object.cc

This commit is contained in:
Faerbit 2014-10-23 00:13:09 +02:00
parent 2d3a17b6c0
commit 606533b74b
2 changed files with 33 additions and 4 deletions

22
object.cc Normal file
View File

@ -0,0 +1,22 @@
#include "object.hh"
Object::Object(Model model, Texture texture, glm::vec3 position, glm::vec3 rotation,
glm::vec3 velocity, glm::vec3 angularVelocity) : Entity(position, rotation) {
this->model = model.getReference();
this->texture = texture.getReference();
this->velocity = velocity;
this->angularVelocity = angularVelocity;
//TODO ensure this is only done once per loading(static encapsulation)
shader = ACGL::OpenGL::ShaderProgramCreator("HelloWorld").attributeLocations(
model.getReference()->getAttributeLocations()).create();
shader->use();
}
Object::~Object() {
}
void Object::render() {
shader->setTexture("uTexture", texture, 0);
}

View File

@ -3,18 +3,25 @@
#include "entity.hh"
#include "model.hh"
#include "texture.hh"
#include "texture.hh"
#include <string>
#include <ACGL/Math/Math.hh>
#include <ACGL/OpenGL/Managers.hh>
#include <ACGL/OpenGL/Objects.hh>
#include <ACGL/OpenGL/Creator/ShaderProgramCreator.hh>
class Object : Entity {
public:
Object(Model model, Texture texture, glm::vec3 position, glm::vec3 rotation, glm::vec3 velocity, glm::vec3 angularVelocity);
Object(Model model, Texture texture, glm::vec3 position, glm::vec3 rotation,
glm::vec3 velocity, glm::vec3 angularVelocity);
~Object();
void render();
private:
Model model;
Texture texture;
ACGL::OpenGL::SharedVertexArrayObject model;
ACGL::OpenGL::SharedTexture2D texture;
glm::vec3 velocity;
glm::vec3 angularVelocity;
ACGL::OpenGL::SharedShaderProgram shader;
};
#endif