Java implementation of a constrained least-squares solver for fitting rectilinear shapes to point sets (e.g. irregular polygons).
It was written to provide an easy way to regularize building footprints so that edges are parallel or orthogonal.
The least-squares approach is based on QR decomposition and SVD adapted from: Solving Problems in Scientific Computing Using Maple and MATLAB (eds. Gander, Walter; Hrebicek, Jiri).