const Chunk &GetNeighbor(Block::Face f) const noexcept { return *neighbor[f]; }
void ClearNeighbors() noexcept;
void Unlink() noexcept;
const Chunk &GetNeighbor(Block::Face f) const noexcept { return *neighbor[f]; }
void ClearNeighbors() noexcept;
void Unlink() noexcept;
// check which faces of a block at given index are obstructed (and therefore invisible)
Block::FaceSet Obstructed(const Pos &) const noexcept;
// check which faces of a block at given index are obstructed (and therefore invisible)
Block::FaceSet Obstructed(const Pos &) const noexcept;
void Position(const Pos &pos) noexcept { position = pos; }
const Pos &Position() const noexcept { return position; }
glm::mat4 Transform(const Pos &offset) const noexcept {
void Position(const Pos &pos) noexcept { position = pos; }
const Pos &Position() const noexcept { return position; }
glm::mat4 Transform(const Pos &offset) const noexcept {