#pragma once #include "utils/globals.hpp" namespace Nimbin { class GameObject; namespace Collision { struct Manifold { Vec3 normal {}; double overlap {}; bool hit = false; }; struct SweptResult { Vec3 normal {}; double t = 0.0; bool hit = false; }; void resolve_Objects(GameObject& a, GameObject& b); bool aabb_Overlap (const GameObject& a, const GameObject& b); Manifold aabb_Manifold (const GameObject& a, const GameObject& b); Vec3 reflect (const Vec3& vel, const Vec3& normal, double restitution); SweptResult swept_RayAabb (const Vec3& origin, const Vec3& dir, const Vec3& box_min, const Vec3& box_max); } } // namespace Nimbin