Problem. I have a solid torus and a solid cone in $\mathbb R^3$ and need an efficient algorithm that determines if they intersect or not.
The center of the torus is at a given position $\mathbf p \in \mathbb R^3$ and its rotation axis is parallel to the global y axis.
The cone is oriented arbitrarily with its apex being the origin $(0, 0, 0)$.
I do not need the point or curve of intersection (if any), I just have to know if they intersect or not.
The shapes are considered solid bodies. For example, if the cone completely contains the torus, the algorithm should report an intersection.
I have no restrictions regarding the representation of the shapes: implicit or explicit - whichever makes the problem easier.