The equation of the apparent contour model is very complicated. We start with a geometric torus in 3-space whose "hole" is in the z-direction. We then rotate the torus azimuthally by theta radians. We then do a (Grobner basis) computation that gives us the set of (x,y) values such that there exists some z-value so that (x,y,z) is on the torus and there exists a vertical tangent vector to the torus at (x,y,z).
The model has three parameters:
small_radius is the height of
of the torus (the "thickness" of an bagel);
big_radius is the major
radius of the torus (the distance from the "hole" of a bagel to the middle of
the doughy portion); and
theta is the angle of rotation from the
horizontal (-Pi < theta < Pi).