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 
56 
61 
64 
66  double voxel_filter_resolution = .20; // [m]
67 
69  double quadratic_reference_radius = 20.0; // [m]
70 
73  bool use_voxel_average = false;
74 
78 
82  };
83 
86 
87  inline float real2grid(float x) const
88  {
89  if (std::abs(x) > params_.quadratic_reference_radius)
90  return x;
91  else
92  return mrpt::sign(x) * mrpt::square(x) *
94  }
95  inline float grid2real(float y) const
96  {
97  if (std::abs(y) > params_.quadratic_reference_radius)
98  return y;
99  else
100  return std::sqrt(y * params_.quadratic_reference_radius) *
101  mrpt::sign(y);
102  }
103 
104  private:
106 
108 };
109 
112 } // namespace mp2p_icp_filters
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::error_on_missing_input_layer
bool error_on_missing_input_layer
Definition: FilterDecimateVoxelsQuadratic.h:60
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::voxel_filter_resolution
double voxel_filter_resolution
Definition: FilterDecimateVoxelsQuadratic.h:66
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::filter_grid_
PointCloudToVoxelGrid filter_grid_
Definition: FilterDecimateVoxelsQuadratic.h:105
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:69
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::real2grid
float real2grid(float x) const
Definition: FilterDecimateVoxelsQuadratic.h:87
test.x
x
Definition: test.py:4
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::quadratic_reference_radius_inv_
float quadratic_reference_radius_inv_
Definition: FilterDecimateVoxelsQuadratic.h:107
mp2p_icp::metric_map_t::PT_LAYER_RAW
constexpr static const char * PT_LAYER_RAW
Definition: metricmap.h:58
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:77
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:56
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:81
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:26
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::output_pointcloud_layer
std::string output_pointcloud_layer
Definition: FilterDecimateVoxelsQuadratic.h:63
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::initialize
void initialize(const mrpt::containers::yaml &c) override
Definition: FilterDecimateVoxelsQuadratic.cpp:43
metricmap.h
Generic representation of pointcloud(s) and/or extracted features.
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::grid2real
float grid2real(float y) const
Definition: FilterDecimateVoxelsQuadratic.h:95
mp2p_icp::metric_map_t
Generic container of pointcloud(s), extracted features and other maps.
Definition: metricmap.h:49
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::params_
Parameters params_
Definition: FilterDecimateVoxelsQuadratic.h:85
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::Parameters::use_voxel_average
bool use_voxel_average
Definition: FilterDecimateVoxelsQuadratic.h:73
mp2p_icp_filters
Definition: FilterAdjustTimestamps.h:19
mp2p_icp_filters::FilterDecimateVoxelsQuadratic::FilterDecimateVoxelsQuadratic
FilterDecimateVoxelsQuadratic()


mp2p_icp
Author(s):
autogenerated on Thu Oct 17 2024 02:45:33