5 #include <OpenGL/glew.h>
8 #include <assimp/scene.h>
9 #include <assimp/Importer.hpp>
10 #include "material.hpp"
15 Mesh(const aiMesh *aiMesh, GLuint progId);
16 GLuint progId, vao, numIndices;
17 unsigned int materialIndex;
21 Model(const std::string &path, GLuint progId);
26 Node(const aiNode &aiNode, GLuint progId);
27 void draw(const std::vector<Mesh> &meshes, const std::vector<Material> &materials, glm::mat4 parentModel) const;
28 const std::vector<Node*> &getChildren() const { return children; }
29 Node* findNode(const aiNode &aiNode);
30 glm::mat4 model = glm::mat4(1);
35 std::vector<Node*> children;
36 std::vector<unsigned int> meshIndices;
39 Node* getRoot() { return root; }
40 Node* find(const std::string &name);
45 std::vector<Mesh> meshes;
48 std::vector<Material> materials;
50 void loadModel(const std::string &path);
52 Assimp::Importer importer;