1#ifndef PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_
2#define PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_
5#include <pcl/console/print.h>
6#include <pcl/tracking/normal_coherence.h>
10template <
typename Po
intInT>
14 Eigen::Vector4f n =
source.getNormalVector4fMap();
16 if (n.norm() <= 1
e-5 ||
n_dash.norm() <= 1
e-5) {
17 PCL_ERROR(
"norm might be ZERO!\n");
18 std::cout <<
"source: " <<
source << std::endl;
19 std::cout <<
"target: " <<
target << std::endl;
26 if (!std::isnan(
theta))
33#define PCL_INSTANTIATE_NormalCoherence(T) \
34 template class PCL_EXPORTS pcl::tracking::NormalCoherence<T>;
Iterator class for point clouds with or without given indices.
double computeCoherence(PointInT &source, PointInT &target) override
return the normal coherence between the two points.
Define standard C methods and C++ classes that are common to all methods.
double getAngle3D(const Eigen::Vector4f &v1, const Eigen::Vector4f &v2, const bool in_degree=false)
Compute the smallest angle between two 3D vectors in radians (default) or degree.