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