5 #include <OpenGL/glew.h>
8 #include <assimp/scene.h>
9 #include <assimp/Importer.hpp>
10 #include "material.hpp"
11 #include "program.hpp"
16 Mesh(const aiMesh *aiMesh, GLuint progId);
17 GLuint progId, vao, numIndices;
18 unsigned int materialIndex;
22 Model(const std::string &path, Program p);
27 Node(const aiNode &aiNode, GLuint progId);
28 void draw(const std::vector<Mesh> &meshes, const std::vector<Material> &materials, glm::mat4 parentModel) const;
29 const std::vector<Node*> &getChildren() const { return children; }
30 Node* findNode(const aiNode &aiNode);
31 glm::mat4 model = glm::mat4(1);
36 std::vector<Node*> children;
37 std::vector<unsigned int> meshIndices;
40 Node* getRoot() { return root; }
41 Node* find(const std::string &name);
44 const Program program;
46 std::vector<Mesh> meshes;
49 std::vector<Material> materials;
51 void loadModel(const std::string &path);
53 Assimp::Importer importer;