class mp2p_icp_filters::FilterDecimateRangeAdaptive
Overview
Range-adaptive voxel decimation following EllipseLIO (arXiv:2605.21150, Eqs. 1-3).
The input cloud is split into configurable-width radial bins (see bin_width). Within bin i (points in [i*bin_width, (i+1)*bin_width) m), the voxel size is set to the scan-line separation at that range:
v_i = (i+1) * vertical_fov_rad / (num_scan_lines - 1)
clamped to [min_voxel_size, max_voxel_size]. Each bin is independently voxelised (first-point per voxel), and the filtered clouds are unioned.
When vertical_fov_rad or num_scan_lines are zero, they are auto-derived from the input cloud’s ring channel (if present).
Not compatible with calling from different threads simultaneously for different input point clouds. Use independent instances for each thread if needed.
#include <FilterDecimateRangeAdaptive.h> class FilterDecimateRangeAdaptive: public mp2p_icp_filters::FilterBase { public: // structs struct Impl; struct Parameters; // fields Parameters params; // methods virtual void filter(mp2p_icp::metric_map_t& inOut) const; };
Inherited Members
public: // methods virtual void filter(mp2p_icp::metric_map_t& inOut) const = 0; FilterBase& operator = (const FilterBase&); FilterBase& operator = (FilterBase&&);
Fields
Parameters params
Algorithm parameters
Methods
virtual void filter(mp2p_icp::metric_map_t& inOut) const
See docs above for FilterBase.