The scanning I want to do requires the laser and camera to move along an long object so I cant directly use David.

I was wondering how it is that David takes the (X,Y) information of the circles on the calibration screen and uses the right angle geometry to convert the points into the (x,y,z) information. I imagine it makes use vector dot products and vector lengths but i cant figure out how to simplify my equations. Any ideas/links?