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