Being able to reverse engineer from point cloud data to obtain three-dimensional (3D) models is important in modeling. This thesis presents a new method to obtain a tensor product B-spline representation from point cloud data by fitting surfaces to appropriately segmented data. Point cloud data obtained by digitizing 3D data, typically presents many associated complications like noise and missing data. Our method addresses all these issues. This work presents a framework that works robustly in the presence of holes in the data and is straightforward to implement. The original contribution of this work includes a new method to fill triangulated surfaces with missing data, a new curve smoothing algorithm based on the MLS Projection and a new method to fit B-spline surfaces by blending local fits. This work is the outcome of research carried out under the guidance of Prof. Elaine Cohen at the University of Utah.