#ifndef Model_h__ #define Model_h__ #include "Rendering/RawModelCustom.h" #include "Util/CommonFunctions.h" //#include "Rendering/RawModelAssimp.h" #include "../OpenGL.h" #include "Core/AABB.h" class Model : public ThreadUnsafeResource { friend class ResourceManager; private: Model(std::string fileName); public: ~Model(); const std::vector& MaterialGroups() const { return m_Materials; } unsigned int NumberOfVertices() const { return m_Vertices.size(); } const AABB& Box() const { return m_Box; } bool IsSkinned() const { return m_IsSkinned; } GLuint VAO; GLuint ElementBuffer; //RawModel* m_RawModel; Skeleton* m_Skeleton = nullptr; std::vector m_Vertices; std::vector m_Indices; private: AABB m_Box; GLuint VertexBuffer; GLuint NormalBuffer; GLuint TangentNormalsBuffer; GLuint BiTangentNormalsBuffer; GLuint TextureCoordBuffer; std::vector m_Materials; bool m_IsSkinned; }; #endif