struct mp2p_icp_filters::FilterVoxelSOR::Parameters
Overview
#include <FilterVoxelSOR.h> struct Parameters { // fields std::string input_layer = mp2p_icp::metric_map_t::PT_LAYER_RAW; std::string output_layer_inliers; std::string output_layer_outliers; float voxel_size = 2.0f; uint32_t mean_k = 20; double std_dev_mul = 2.0; bool use_tsl_robin_map = true; size_t parallelization_grain_size = 10; size_t points_per_batch = 5'000'000; // methods void load_from_yaml(const mrpt::containers::yaml& c); };
Fields
float voxel_size = 2.0f
Size of the voxel for local processing [meters].
uint32_t mean_k = 20
Number of neighbors to analyze for each point locally.
double std_dev_mul = 2.0
Standard deviation multiplier threshold.
bool use_tsl_robin_map = true
Whether to use tsl::robin_map for voxel storage (faster in general)
size_t parallelization_grain_size = 10
Grain size for TBB parallelization (number of voxels per thread block). Larger values reduce overhead but may cause load imbalance. Only used if TBB is available at build time.
size_t points_per_batch = 5'000'000
Maximum number of input points processed in one voxel-grid batch. For very large clouds the voxel grid (hash map + flat index array) can exhaust RAM. Splitting into chunks bounds peak memory to O(points_per_batch) without affecting SOR quality: voxels at chunk boundaries may see a partial point set, but the effect is negligible when voxel_size << spatial extent of the cloud. Set to 0 to disable chunking (process the whole cloud at once).