#pragma once #include #include "vertex.h" #include "texture.h" #include "vao.h" #include "shader.h" class Mesh { private: std::vector _vertices; std::vector _indices; std::vector _textures; VertexArrayObject _vao; public: Mesh(const std::vector& vertices, const std::vector& indices, const std::vector& textures); Mesh(const std::vector& vertices, const std::vector& textures); public: inline std::vector vertices() const { return _vertices; } inline std::vector indices() const { return _indices; } inline std::vector textures() const { return _textures; } inline VertexArrayObject vao() const { return _vao; } public: void render(const ShaderProgram& shader) const ; private: void setupMesh(); };