**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)$.

**Comments.**

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.