diff options
Diffstat (limited to 'model.h')
-rw-r--r-- | model.h | 50 |
1 files changed, 50 insertions, 0 deletions
@@ -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 |