This is an implementation of a toroidal mirror which may be curved in two dimensions.
To avoid solving quartic equations, the intersection is computed as a combination of
two intersections. First, the ray is intersected with a cylinder to catch (almost) the small
radius curvature. Secondly, the ray is the intersected with an ellipsoid, with the curvatures
matching that of the torus.
The first incarnation (Mirror_toroid.comp) the mirror curves outwards (a bump), but this incarnation (Mirror_toroid_pothole) curves inwards (a pothole).
Input parameters
Parameters in boldface are required;
the others are optional.