#pragma once #include "config/types.h" #include <glm/glm.hpp> #include <special_members.h> template<typename> class Ray; class Selectable { public: Selectable() = default; virtual ~Selectable() = default; DEFAULT_MOVE_COPY(Selectable); [[nodiscard]] virtual bool intersectRay(const Ray<GlobalPosition3D> &, BaryPosition &, RelativeDistance &) const = 0; };