static glm::vec3 Extent() { return glm::vec3(Width(), Height(), Depth()); }
static constexpr int Size() { return Width() * Height() * Depth(); }
+ static AABB Bounds() { return AABB{ { 0, 0, 0 }, { Width(), Height(), Depth() } }; }
+
static constexpr bool InBounds(const glm::vec3 &pos) {
return
pos.x >= 0 && pos.x < Width() &&
void Position(const glm::vec3 &);
const glm::vec3 &Position() const { return position; }
- const glm::mat4 &Transform() const { return transform; }
+ glm::mat4 Transform(const glm::vec3 &offset) const;
void Draw();
std::vector<Block> blocks;
Model model;
glm::vec3 position;
- glm::mat4 transform;
bool dirty;
};