6#include <gtsam_points/types/point_cloud.hpp>
8namespace gtsam_points {
37 template <
typename Result>
38 void knn_search(
const Eigen::Vector4d& pt, Result& result)
const {
43 for (
size_t i = 0; i <
points.size(); i++) {
48 result.push(i, (
points[i] - pt).squaredNorm());
55 template <
typename Result>
61 for (
size_t i = 0; i <
points.size(); i++) {
62 result.push(i, (
points[i] - pt).squaredNorm());
76 size_t age(
int i,
size_t lru)
const {
return lru -
birthday(i); }
82 static constexpr size_t VALID_BIT = 1ull << 63;
83 static constexpr size_t BIRTHDAY_MASK = (VALID_BIT >> 1) - 1;
89 std::vector<Eigen::Matrix4d>
covs;
FlatContainer setting.
Definition incremental_covariance_container.hpp:14
size_t max_num_points_in_cell
Maximum number of points in a cell.
Definition incremental_covariance_container.hpp:19
double min_sq_dist_in_cell
Minimum squared distance between points in a cell.
Definition incremental_covariance_container.hpp:18
Linear container for incremental covariance and normal estimation.
Definition incremental_covariance_container.hpp:11
void finalize()
Finalize the container (Nothing to do for FlatContainer).
Definition incremental_covariance_container.hpp:32
size_t age(int i, size_t lru) const
Get the time since the i-th point was inserted.
Definition incremental_covariance_container.hpp:76
std::vector< Eigen::Vector4d > points
Points.
Definition incremental_covariance_container.hpp:85
size_t size() const
Number of points in the container.
Definition incremental_covariance_container.hpp:26
std::vector< size_t > flags
State flags.
Definition incremental_covariance_container.hpp:87
size_t remove_old_invalid(int age_thresh, size_t lru)
Remove old invalid points.
std::vector< Eigen::Matrix4d > covs
Covariances.
Definition incremental_covariance_container.hpp:89
IncrementalCovarianceContainer()
Constructor.
void knn_search_force(const Eigen::Vector4d &pt, Result &result) const
Find k nearest neighbors.
Definition incremental_covariance_container.hpp:56
size_t birthday(int i) const
Get the time when the i-th point was inserted.
Definition incremental_covariance_container.hpp:73
std::vector< Eigen::Vector4d > normals
Normals.
Definition incremental_covariance_container.hpp:88
void set_valid(int i)
Set the i-th point as valid.
Definition incremental_covariance_container.hpp:67
bool valid(int i) const
Check if the i-th point is valid.
Definition incremental_covariance_container.hpp:70
void knn_search(const Eigen::Vector4d &pt, Result &result) const
Find k nearest neighbors.
Definition incremental_covariance_container.hpp:38
void add(const Setting &setting, const PointCloud &points, size_t i)
Add a point to the container.
Standard point cloud class that holds only pointers to point attributes.
Definition point_cloud.hpp:19
Definition frame_traits.hpp:17