#pragma once #include #include using namespace std; #define MAX_BONE_INFLUENCE 4 struct Vertex { // position glm::vec3 Position; // normal glm::vec3 Normal; // texCoords glm::vec2 TexCoords; // tangent glm::vec3 Tangent; // bitangent glm::vec3 Bitangent; //bone indexes which will influence this vertex int m_BoneIDs[MAX_BONE_INFLUENCE]; //weights from each bone float m_Weights[MAX_BONE_INFLUENCE]; }; struct Texture { unsigned int id; string type; string path; }; class Mesh { public: // mesh Data vector vertices; vector indices; vector textures; unsigned int VAO; Mesh(vector vertices, vector indices, vector textures); void Draw(Shader &shader); private: // render data unsigned int VBO, EBO; // initializes all the buffer objects/arrays void setupMesh(); };