1. A computer program product, stored using a non-transitory machine-readable medium, the computer program product comprising instructions that, when executed by a machine, cause the machine to: mark an ending part on a pattern projected onto an object; perform a disparity propagation routine in a first direction and a second direction, respectively, wherein: the disparity propagation routine is halted in the first direction or the second direction based on encountering the ending part; and construct a surface model of a three-dimensional surface using the performed disparity propagation routine.