summaryrefslogtreecommitdiff
path: root/model.h
diff options
context:
space:
mode:
Diffstat (limited to 'model.h')
-rw-r--r--model.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/model.h b/model.h
new file mode 100644
index 0000000..7659d9c
--- /dev/null
+++ b/model.h
@@ -0,0 +1,50 @@
+#ifndef MODEL_H
+#define MODEL_H
+
+#include "gl.h"
+
+#include <assimp/assimp.hpp>
+#include <assimp/aiScene.h>
+
+#include <map>
+#include <string>
+#include <vector>
+
+namespace models {
+
+class Mesh {
+ private:
+ GLuint vbo;
+ GLuint vertices;
+
+ public:
+ Mesh(const aiScene *scene, const aiMesh *mesh, std::map<std::string, GLuint>& scene_textures);
+ virtual ~Mesh();
+
+ void render();
+
+ std::vector<GLuint> textures;
+};
+
+class Model {
+ public:
+ virtual ~Model() {};
+
+ virtual void render() = 0;
+};
+
+class Tree : public Model {
+ private:
+ Mesh *trunk;
+ Mesh *leaves;
+
+ public:
+ Tree(const aiScene *scene, std::map<std::string, GLuint>& scene_textures);
+ virtual ~Tree();
+
+ virtual void render();
+};
+
+}
+
+#endif