#ifndef MESH_H_ #define MESH_H_ #include #include class Buffer; class Shader; class Mesh { public: Mesh() = default; ~Mesh() = default; void add_buffer(const std::shared_ptr& buffer, const std::shared_ptr& shader = nullptr); [[nodiscard]] size_t num_buffers() const { return buffers_.size(); } [[nodiscard]] const std::shared_ptr& buffer(size_t index) const { return buffers_[index]; } [[nodiscard]] std::shared_ptr& buffer(size_t index) { return buffers_[index]; } void draw(); private: std::vector> buffers_; std::vector> shaders_; }; #endif // MESH_H_