FilterDecimateVoxelsQuadratic.h
Go to the documentation of this file.
1 /* -------------------------------------------------------------------------
2  * A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++
3  * Copyright (C) 2018-2024 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
13 #pragma once
14 
15 #include <mp2p_icp/metricmap.h>
18 #include <mrpt/maps/CPointsMap.h>
19 
20 namespace mp2p_icp_filters
21 {
39 {
41  public:
43 
44  // See docs in base class.
45  void initialize(const mrpt::containers::yaml& c) override;
46 
47  // See docs in FilterBase
48  void filter(mp2p_icp::metric_map_t& inOut) const override;
49 
50  struct Parameters
51  {
52  void load_from_yaml(const mrpt::containers::yaml& c);
53 
55 
60 
63 
65  double voxel_filter_resolution = .20; // [m]
66 
68  double quadratic_reference_radius = 20.0; // [m]
69 
72  bool use_voxel_average = false;
73 
77 
81  };
82 
85 
86  inline float real2grid(float x) const
87  {
88  if (std::abs(x) > params_.quadratic_reference_radius)
89  return x;
90  else
91  return mrpt::sign(x) * mrpt::square(x) * quadratic_reference_radius_inv_;
92  }
93  inline float grid2real(float y) const
94  {
95  if (std::abs(y) > params_.quadratic_reference_radius)
96  return y;
97  else
98  return std::sqrt(y * params_.quadratic_reference_radius) * mrpt::sign(y);
99  }
100 
101  private:
103 
105 };
106 
109 } // namespace mp2p_icp_filters
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::error_on_missing_input_layer
bool error_on_missing_input_layer
Definition: FilterDecimateVoxelsQuadratic.h:59
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::voxel_filter_resolution
double voxel_filter_resolution
Definition: FilterDecimateVoxelsQuadratic.h:65
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::filter_grid_
PointCloudToVoxelGrid filter_grid_
Definition: FilterDecimateVoxelsQuadratic.h:102
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::input_pointcloud_layer
std::string input_pointcloud_layer
Definition: FilterDecimateVoxelsQuadratic.h:54
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::quadratic_reference_radius
double quadratic_reference_radius
Definition: FilterDecimateVoxelsQuadratic.h:68
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::real2grid
float real2grid(float x) const
Definition: FilterDecimateVoxelsQuadratic.h:86
test.x
x
Definition: test.py:4
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::quadratic_reference_radius_inv_
float quadratic_reference_radius_inv_
Definition: FilterDecimateVoxelsQuadratic.h:104
mp2p_icp::metric_map_t::PT_LAYER_RAW
constexpr static const char * PT_LAYER_RAW
Definition: metricmap.h:64
testing::internal::string
::std::string string
Definition: gtest.h:1979
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::use_closest_to_voxel_average
bool use_closest_to_voxel_average
Definition: FilterDecimateVoxelsQuadratic.h:76
mp2p_icp_filters::PointCloudToVoxelGrid
Definition: PointCloudToVoxelGrid.h:27
mp2p_icp_filters::FilterDecimateVoxelsQuadratic
Definition: FilterDecimateVoxelsQuadratic.h:38
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::filter
void filter(mp2p_icp::metric_map_t &inOut) const override
Definition: FilterDecimateVoxelsQuadratic.cpp:54
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters
Definition: FilterDecimateVoxelsQuadratic.h:50
mp2p_icp_filters::FilterBase
Definition: FilterBase.h:46
PointCloudToVoxelGrid.h
Makes an index of a point cloud using a voxel grid.
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::use_random_point_within_voxel
bool use_random_point_within_voxel
Definition: FilterDecimateVoxelsQuadratic.h:80
FilterBase.h
Base virtual class for point cloud filters.
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::load_from_yaml
void load_from_yaml(const mrpt::containers::yaml &c)
Definition: FilterDecimateVoxelsQuadratic.cpp:25
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::output_pointcloud_layer
std::string output_pointcloud_layer
Definition: FilterDecimateVoxelsQuadratic.h:62
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::initialize
void initialize(const mrpt::containers::yaml &c) override
Definition: FilterDecimateVoxelsQuadratic.cpp:41
metricmap.h
Generic representation of pointcloud(s) and/or extracted features.
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::grid2real
float grid2real(float y) const
Definition: FilterDecimateVoxelsQuadratic.h:93
mp2p_icp::metric_map_t
Generic container of pointcloud(s), extracted features and other maps.
Definition: metricmap.h:55
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::params_
Parameters params_
Definition: FilterDecimateVoxelsQuadratic.h:84
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::use_voxel_average
bool use_voxel_average
Definition: FilterDecimateVoxelsQuadratic.h:72
mp2p_icp_filters
Definition: FilterAdjustTimestamps.h:19
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::FilterDecimateVoxelsQuadratic
FilterDecimateVoxelsQuadratic()


mp2p_icp
Author(s):
autogenerated on Mon May 26 2025 02:45:48