Cone-Torus intersection in 3D 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.
 A: The following paper shows how to compute the minimum distance between
a canal surface,
e.g., a torus, and a "simple surface," e.g, a cone.
She reduces the computation to finding the roots of a polynomial equation
in one variable.

Kim, Ku-Jin. "Minimum distance between a canal surface and a simple surface." Computer-Aided Design 35, no. 10 (2003): 871-879.
  (Elsevier link.)
  
            
  


Following Noam Elkies observation, let $C$ be the circle at the core
of the torus $T$. First determine if the cone $K$ intersects $C$, in
which case $K$ intersects $T$. If $K$ does not intersect $C$, then
compute the minimum distance between $K$ and a vanishingly thin torus
surrounding $C$. Then use Noam's idea to determine if $K$ intersects $T$.
I believe the inclusions $K \supset T$ and $T \supset K$ can again
be settled using the minimum distance calculation.
A: In my humble opinion, the only sensible method of solving  this problem is to find a point $P$ on the torus (as a surface) such that the angle between $OP$ and the axis of the cone is the smallest. The problem can be simplified 
further once we take into account that a torus is a union of  circles, and finding such a point $P$ on a circle  is an easy exercise. (Better to chose small circles, because in this case if the axis goes through the circle, then we are done.)
By the way, if the axis goes through the hole of the torus, then the minimum is not necessarily unique.
