]> git.localhorst.tv Git - blank.git/blobdiff - src/model.hpp
make forward key actually go forward ^^
[blank.git] / src / model.hpp
index c0bda4112fe052231340dbcd3a30ce7857e4c3df..02ab3f274bd5b096205f9c1d4a153bff004e7c4a 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef BLANK_MODEL_HPP_
 #define BLANK_MODEL_HPP_
 
+#include <vector>
+#include <GL/glew.h>
 #include <glm/glm.hpp>
 
 
@@ -9,24 +11,27 @@ namespace blank {
 class Model {
 
 public:
-       Model();
-       ~Model();
-
-       glm::mat4 Transform() const;
+       enum Attribute {
+               ATTRIB_VERTEX,
+               ATTRIB_COLOR,
+               ATTRIB_NORMAL,
+               ATTRIB_COUNT,
+       };
 
-       void Position(glm::vec3 pos) { position = pos; }
-       void Move(glm::vec3 delta) { position += delta; }
+public:
+       explicit Model(
+               std::vector<glm::vec3> &&vertices,
+               std::vector<glm::vec3> &&colors,
+               std::vector<glm::vec3> &&normals);
+       ~Model();
 
-       // all angles in radians (full circle = 2π)
-       void Pitch(float p) { pitch = p; }
-       void RotatePitch(float delta) { pitch += delta; }
-       void Yaw(float y) { yaw = y; }
-       void RotateYaw(float delta) { yaw += delta; }
+       void Draw();
 
 private:
-       glm::vec3 position;
-       float pitch;
-       float yaw;
+       std::vector<glm::vec3> vertices;
+       std::vector<glm::vec3> colors;
+       std::vector<glm::vec3> normals;
+       GLuint handle[ATTRIB_COUNT];
 
 };