53 PCL_ERROR (
"NormalBasedSignatureEstimation: not using the proper signature size: %u vs %u\n", N_prime_ * M_prime_,
sizeof (
test_feature.values) /
sizeof (
float));
60 tree_->setInputCloud (input_);
61 output.resize (indices_->size ());
70 for (std::size_t k = 0; k < N_; ++k)
72 Eigen::VectorXf
s_row (M_);
74 for (std::size_t l = 0; l < M_; ++l)
76 Eigen::Vector4f normal = (*normals_)[
point_i].getNormalVector4fMap ();
77 Eigen::Vector4f
normal_u = Eigen::Vector4f::Zero ();
78 Eigen::Vector4f
normal_v = Eigen::Vector4f::Zero ();
80 if (std::abs (normal.x ()) > 0.0001f)
82 normal_u.x () = - normal.y () / normal.x ();
88 else if (std::abs (normal.y ()) > 0.0001f)
91 normal_u.y () = - normal.x () / normal.y ();
99 normal_u.z () = - normal.y () / normal.z ();
103 Eigen::Vector4f
zeta_point = 2.0f *
static_cast<float> (l + 1) * scale_h_ /
static_cast<float> (M_) *
104 (std::cos (2.0f *
static_cast<float> (
M_PI) *
static_cast<float> ((k + 1) / N_)) *
normal_u +
105 sinf (2.0f *
static_cast<float> (
M_PI) *
static_cast<float> ((k + 1) / N_)) *
normal_v);
148 for (Eigen::Index n = 0; n <
s_row.
size (); ++n)
149 Xk +=
static_cast<float> (
s_row[n] * std::cos (
M_PI / (
static_cast<double> (M_ * n) + 0.5) *
static_cast<double> (k)));
161 for (std::size_t k = 0; k < N_; ++k)
164 for (std::size_t n = 0; n < N_; ++n)
177 for (std::size_t i = 0; i < N_prime_; ++i)
178 for (std::size_t j = 0; j < M_prime_; ++j)