#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct Model { std::map textures_loaded; std::vector meshes; std::string directory; std::string model_path; TextureCounts texture_counts; bool gammaCorrection; Model(const std::string& directory, const std::string& model_path) : directory(directory), model_path(model_path) { load_model(); } void draw(Shader &shader); void load_model(); void process_node(const aiScene *scene, aiNode *node); Mesh process_mesh(const aiScene *scene, aiMesh *mesh); void load_material_textures(const aiScene *scene, std::vector& textures, aiMaterial *mat, aiTextureType type, std::string typeName); void connect_shader(const Shader& shader); };