Use of ray–surface intersection tests to solve a variety of problems in computer graphics and computational geometry