#pragma once
#include <vector>

#include "material.h"
#include "vulkan/graphics.h"
#include "vulkan/vertex.h"

#include <memory>

namespace veng {
struct Model {
  Model(std::shared_ptr<class Graphics> graphics);
  ~Model();

  std::vector<veng::Vertex> vertices;
  veng::BufferHandle vertex_buffer;
  std::vector<std::uint32_t> indices;
  veng::BufferHandle index_buffer;

  glm::mat4 transform;

  Material material;

private:
  std::weak_ptr<class Graphics> graphics_;
};
}  // namespace veng
