float float3::Distance(const Ray &rhs) const { return rhs.Distance(*this); }
float Capsule::Distance(const Ray &ray) const { return ray.Distance(*this); }
float Sphere::Distance(const Ray &ray) const { return ray.Distance(*this); }
float float3::Distance(const Ray &rhs) const { return rhs.Distance(POINT_VEC(*this)); }