#include "BlockTypeRegistry.hpp"
#include "../geometry/Location.hpp"
#include "../geometry/primitive.hpp"
#include "BlockTypeRegistry.hpp"
#include "../geometry/Location.hpp"
#include "../geometry/primitive.hpp"
static constexpr int ToIndex(const RoughLocation::Fine &pos) noexcept {
return pos.x + pos.y * side + pos.z * side * side;
}
static constexpr int ToIndex(const RoughLocation::Fine &pos) noexcept {
return pos.x + pos.y * side + pos.z * side * side;
}
/// get gravity for one unit mass at given point
glm::vec3 GravityAt(const ExactLocation &) const noexcept;
/// get gravity for one unit mass at given point
glm::vec3 GravityAt(const ExactLocation &) const noexcept;
bool Intersection(
const Ray &,
const ExactLocation::Coarse &reference,
WorldCollision &) noexcept;
bool Intersection(
const Ray &,
const ExactLocation::Coarse &reference,
WorldCollision &) noexcept;
const ExactLocation::Coarse &Position() const noexcept { return position; }
glm::mat4 Transform(const ExactLocation::Coarse &offset) const noexcept {
const ExactLocation::Coarse &Position() const noexcept { return position; }
glm::mat4 Transform(const ExactLocation::Coarse &offset) const noexcept {