8#include <gtsam_points/types/point_cloud.hpp>
10namespace gtsam_points {
20std::vector<Eigen::Vector4d> estimate_normals(
const Eigen::Vector4d* points,
const Eigen::Matrix4d* covs,
int num_points,
int num_threads = 1);
30std::vector<Eigen::Vector4d> estimate_normals(
const Eigen::Vector4d* points,
int num_points,
int k_neighbors = 10,
int num_threads = 1);
32template <
template <
typename>
typename Alloc>
33std::vector<Eigen::Vector4d> estimate_normals(
34 const std::vector<Eigen::Vector4d, Alloc<Eigen::Vector4d>>& points,
35 const std::vector<Eigen::Matrix4d, Alloc<Eigen::Matrix4d>>& covs,
37 int num_threads = 1) {
38 return estimate_normals(points.data(), covs.data(), points.size(), k_neighbors, num_threads);
41template <
typename Alloc>
42std::vector<Eigen::Vector4d> estimate_normals(
const std::vector<Eigen::Vector4d, Alloc>& points,
int k_neighbors = 10,
int num_threads = 1) {
43 return estimate_normals(points.data(), points.size(), k_neighbors, num_threads);
46std::vector<Eigen::Vector4d> estimate_normals(
const PointCloud& points,
int k_neighbors = 10,
int num_threads = 1);