Fitting scattered data points with ball B-Spline curves using particle swarm optimization. (May 2018)