#ifndef MESH_H
#define MESH_H

#include <vector>

#include <glad/glad.h>

class Mesh {
  public:
      Mesh();
      ~Mesh(); // Destructor to clean up GPU memory

      // Initializes the VAO and buffer objects
      void init();

      // Uploads mesh data to the GPU
      void uploadData(const std::vector<float>& vboData, const std::vector<unsigned int>& eboData);

      // Binds the VAO and draws the mesh
      void draw();

  private:
      unsigned int m_VAO, m_VBO, m_EBO;
      size_t m_indexCount;
};

#endif MESH_H