/** @file * @brief Definition of the ICP error function minimization * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. */ #ifndef __ICP6DAPX_H__ #define __ICP6DAPX_H__ #include "icp6Dminimizer.h" /** * @brief Implementation of the ICP error function minimization via approximation */ class icp6D_APX : public icp6Dminimizer { public: /** * Constructor */ icp6D_APX(bool quiet = false) : icp6Dminimizer(quiet) {}; /** * Destructor */ virtual ~icp6D_APX() {}; double Point_Point_Align(const vector& Pairs, double *alignxf, const double centroid_m[3], const double centroid_d[3]); double Point_Point_Align_Parallel(const int openmp_num_threads, const unsigned int n[OPENMP_NUM_THREADS], const double sum[OPENMP_NUM_THREADS], const double centroid_m[OPENMP_NUM_THREADS][3], const double centroid_d[OPENMP_NUM_THREADS][3], const vector pairs[OPENMP_NUM_THREADS], double *alignxf); static void computeRt(const double *x, const double *dx, double *alignxf); inline int getAlgorithmID() { return 6; }; }; #endif