Repairing geometric errors in 3D urban models with kinetic data structures