Given a Torus with major radius "R" and minor radius "r" which is centred at origin (0,0,0), and a straight line defined with a point "p(x,y,z)" and a vector "v(x,y,z)". I would like to know if there is a mathematical expression to compute the possible intersection points between them (when possible).