13 #include <Eigen/Dense>
17 namespace registration {
23 const Eigen::Matrix4d & )
const {
24 for (
size_t i = 0; i < corres.size(); i++) {
25 for (
size_t j = i + 1; j < corres.size(); j++) {
46 const Eigen::Matrix4d &transformation)
const {
47 for (
const auto &c : corres) {
49 Eigen::Vector3d pt_trans =
50 (transformation * Eigen::Vector4d(pt(0), pt(1), pt(2), 1.0))
64 const Eigen::Matrix4d &transformation)
const {
67 "[CorrespondenceCheckerBasedOnNormal::Check] Pointcloud has no "
72 for (
const auto &c : corres) {
74 Eigen::Vector3d normal_trans =
79 cos_normal_angle_threshold) {
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Eigen::Vector3d getEigenNormal(size_t index) const
bool hasNormals() const override
Returns whether normals are enabled or not.
Eigen::Vector3d getEigenPoint(size_t index) const
double distance_threshold_
Distance threashold for the check.
bool Check(const ccPointCloud &source, const ccPointCloud &target, const CorrespondenceSet &corres, const Eigen::Matrix4d &transformation) const override
Function to check if two points can be aligned.
bool Check(const ccPointCloud &source, const ccPointCloud &target, const CorrespondenceSet &corres, const Eigen::Matrix4d &transformation) const override
Function to check if two points can be aligned.
double similarity_threshold_
bool Check(const ccPointCloud &source, const ccPointCloud &target, const CorrespondenceSet &corres, const Eigen::Matrix4d &transformation) const override
Function to check if two points can be aligned.
double normal_angle_threshold_
Radian value for angle threshold.
std::vector< Eigen::Vector2i > CorrespondenceSet
Generic file read and write utility for python interface.