diff --git a/src/mesh.hpp b/src/mesh.hpp new file mode 100644 index 0000000..6d2f133 --- /dev/null +++ b/src/mesh.hpp @@ -0,0 +1,19 @@ +#ifndef _MESH_HPP_ +#define _MESH_HPP_ + +#include "gl.hpp" + +#include + +#include + +class Mesh +{ +public: + std::vector positions; + std::vector normals; + + std::vector elements; +}; + +#endif // _MESH_HPP_ diff --git a/src/model.cpp b/src/model.cpp index 7b35ade..b14fb63 100644 --- a/src/model.cpp +++ b/src/model.cpp @@ -2,6 +2,7 @@ #include "mtllib.hpp" +#include #include #include diff --git a/src/model.hpp b/src/model.hpp index a4a9ea6..7110ec0 100644 --- a/src/model.hpp +++ b/src/model.hpp @@ -2,16 +2,17 @@ #define _MODEL_HPP_ #include "resource.hpp" +#include "textured_mesh.hpp" #include "gl.hpp" #include "material.hpp" #include -#include #include class Model: - public Resource + public Resource, + public TexturedMesh { RESOURCE(Model) @@ -19,16 +20,10 @@ public: void draw() const; private: - std::vector positions; GLuint positions_id; - - std::vector tex_coords; GLuint tex_coords_id; - - std::vector normals; GLuint normals_id; - std::vector elements; GLuint id; const Material *_material; diff --git a/src/textured_mesh.hpp b/src/textured_mesh.hpp new file mode 100644 index 0000000..013c3d7 --- /dev/null +++ b/src/textured_mesh.hpp @@ -0,0 +1,17 @@ +#ifndef _TEXTURED_MESH_HPP_ +#define _TEXTURED_MESH_HPP_ + +#include "mesh.hpp" + +#include + +#include + +class TexturedMesh: + public Mesh +{ +public: + std::vector tex_coords; +}; + +#endif // _TEXTURED_MESH_HPP_