Program Listing for File EigenSVDPointAlign.hpp
↰ Return to documentation for file (include/lvr2/registration/EigenSVDPointAlign.hpp)
#ifndef EIGENSVDPOINTALIGN_HPP_
#define EIGENSVDPOINTALIGN_HPP_
#include "SLAMScanWrapper.hpp"
#include "lvr2/types/MatrixTypes.hpp"
#include <Eigen/Dense>
namespace lvr2
{
template<typename T, typename PointT = float>
class EigenSVDPointAlign
{
public:
using Vec3 = Vector3<T>;
using Mat4 = Transform<T>;
using Mat3 = Eigen::Matrix<T, 3, 3>;
using Point3 = Vector3<PointT>;
using PointPairVector = std::vector<std::pair<Point3, Point3>>;
EigenSVDPointAlign() {};
T alignPoints(
SLAMScanPtr scan,
Point3** neighbors,
const Vec3& centroid_m,
const Vec3& centroid_d,
Mat4& align) const;
T alignPoints(
PointPairVector& points,
const Vec3& centroid_m,
const Vec3& centroid_d,
Mat4& align) const;
};
} /* namespace lvr2 */
#include "EigenSVDPointAlign.tcc"
#endif /* EIGENSVDPOINTALIGN_HPP_ */