#pragma once #include #include #include "vector.hpp" #include "object.hpp" class Physics { public: Physics(); void update(float deltaTime); void reset(); void remove_object(Object obj); struct RayResult { bool hasHit; Vector3 location; }; RayResult raycast(Vector3 from, Vector3 to); private: std::unique_ptr broadphase; std::unique_ptr collisionConfiguration; std::unique_ptr dispatcher; std::unique_ptr solver; std::unique_ptr world; };