1. A method of constructing a virtual three-dimensional model of an object from a scanner, a data processing system, and at least one machine-readable memory accessible to said data processing system, comprising the steps of: (a) scanning the object with the scanner and thereby obtaining at least two two-dimensional images of the object, wherein during scanning the scanner and object are moved relative to each other resulting in each image being taken from a different position relative to the surface of the object; (b) processing said data representing said set of images with said data processing system so as to convert each of said two-dimensional images into a data representing a frame and thereby generate a set of frames corresponding to said images, said set of frames comprising a cloud of individual points, each point in each frame expressed as a location in a three-dimensional coordinate system; (c) storing data representing said set of frames in said memory; and (d) further processing said data representing said set of frames with said data processing system so as to register said frames relative to each other to thereby produce a three-dimensional virtual model of the object substantially consistent with all of said frames.