class mp2p_icp_filters::FilterBase


Pure virtual base class of filters, modifying an input/output metric_map_t.

Filters can be used to remove noisy points from a point cloud, decimate it, or to detect planes, lines, or split points into different layers.

See also:


#include <FilterBase.h>

class FilterBase:
    public mrpt::rtti::CObject,
    public mrpt::system::COutputLogger,
    public mp2p_icp::Parameterizable
    // methods

    virtual void initialize(const mrpt::containers::yaml& cfg_block) = 0;
    virtual void filter(mp2p_icp::metric_map_t& inOut) const = 0;
    virtual void attachToParameterSource(ParameterSource& source);
    void checkAllParametersAreRealized() const;
    void unrealizeParameters();

// direct descendants

class FilterBoundingBox;
class FilterByIntensity;
class FilterByRange;
class FilterCurvature;
class FilterDecimateAdaptive;
class FilterDecimateVoxels;
class FilterDecimateVoxelsQuadratic;
class FilterDeleteLayer;
class FilterDeskew;
class FilterEdgesPlanes;
class FilterMerge;
class FilterNormalizeIntensity;
class FilterRemoveByVoxelOccupancy;
class FilterVoxelSlice;


virtual void initialize(const mrpt::containers::yaml& cfg_block) = 0

Loads, from a YAML configuration block, all the common, and implementation-specific parameters.

virtual void filter(mp2p_icp::metric_map_t& inOut) const = 0

See docs above for FilterBase.

virtual void attachToParameterSource(ParameterSource& source)

Each parameterizable object can be attached to one source at a given time

void checkAllParametersAreRealized() const

Throws if any parameter is uninitialized or realized() has not been called in the attached ParameterSource. All parameters can be reset so realize() needs to be called again by manually calling unrealizeParameters().

void unrealizeParameters()

Mark all non-constant parameters as non-evaluated again.