1. A Method for fitting primitive shapes to a set of three-dimensional (3D) points, comprising the steps of: Converting the set of 3D points to a distance field, wherein each element in the distance field is associated with a distance to a nearest point in the set of 3D points; hypothesizing a set of two or more candidates of the primitive shapes; determining a score for each candidate using the distance field; selecting the candidate as the primitive shape to fit to the 3D points according to the scores, wherein the steps are performed in a processor; wherein the distance field D(x) is determined by solving a minimization 
 D ( x )=min yεG ( d ( x,y )+ T ( y )); where a function d determines a distance between points x and y, T is an indicator function, and Q={q i d } is the set of discretized points T ⁡ ( y ) = { 0 if ⁢ ⁢ y ∈ Q ∞ otherwise. wherein P={p i }, for i=1,. .. , N is the set of 3D points, where x of the distance field D(x) represents a 3D voxel in a regular volume grid having the size of W×H×L, R is a 3×3 rotation matrix, t is a 3×1 translation vector, s is a scale factor to transform a coordinate system of the set of 3D points to a coordinate system of the distance field, and an i th 3D point p i is transformed to the coordinate system of the distance field as q i =s(Rp i +t), such that all q i are within the distance field; and wherein q i are discretized to a nearest grid point of the distance field as q i d =round (q i ), wherein the function round( ) determines the nearest grid point of the 3D point.