namespace mp2p_icp_filters

Overview

namespace mp2p_icp_filters {

// typedefs

typedef std::vector<FilterBase::Ptr> FilterPipeline;
typedef std::vector<Generator::Ptr> GeneratorSet;

// enums

enum DecimateMethod;
enum TimestampAdjustMethod;

// structs

struct NotImplementedError;
struct sm2mm_options_t;

// classes

class FilterAdjustTimestamps;
class FilterBase;
class FilterBoundingBox;
class FilterByIntensity;
class FilterByRange;
class FilterByRing;
class FilterCurvature;
class FilterDecimateAdaptive;
class FilterDecimateVoxels;
class FilterDecimateVoxelsQuadratic;
class FilterDeleteLayer;
class FilterDeskew;
class FilterEdgesPlanes;
class FilterMerge;
class FilterNormalizeIntensity;
class FilterRemoveByVoxelOccupancy;
class FilterVoxelSlice;
class Generator;
class GeneratorEdgesFromCurvature;
class GeneratorEdgesFromRangeImage;
class PointCloudToVoxelGrid;
class PointCloudToVoxelGridSingle;

// global functions

void apply_filter_pipeline(
    const FilterPipeline& filters,
    mp2p_icp::metric_map_t& inOut,
    const mrpt::optional_ref<mrpt::system::CTimeLogger>& profiler = std::nullopt
    );

FilterPipeline filter_pipeline_from_yaml(
    const mrpt::containers::yaml& c,
    const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO
    );

FilterPipeline filter_pipeline_from_yaml_file(
    const std::string& filename,
    const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO
    );

bool apply_generators(
    const GeneratorSet& generators,
    const mrpt::obs::CObservation& obs,
    mp2p_icp::metric_map_t& output,
    const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt
    );

mp2p_icp::metric_map_t apply_generators(
    const GeneratorSet& generators,
    const mrpt::obs::CObservation& obs,
    const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt
    );

bool apply_generators(
    const GeneratorSet& generators,
    const mrpt::obs::CSensoryFrame& sf,
    mp2p_icp::metric_map_t& output,
    const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt
    );

mp2p_icp::metric_map_t apply_generators(
    const GeneratorSet& generators,
    const mrpt::obs::CSensoryFrame& sf,
    const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt
    );

GeneratorSet generators_from_yaml(
    const mrpt::containers::yaml& c,
    const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO
    );

GeneratorSet generators_from_yaml_file(
    const std::string& filename,
    const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO
    );

mrpt::maps::CPointsMap::Ptr GetOrCreatePointLayer(
    mp2p_icp::metric_map_t& m,
    const std::string& layerName,
    bool allowEmptyName = true,
    const std::string& classForLayerCreation = "mrpt::maps::CSimplePointsMap"
    );

void simplemap_to_metricmap(
    const mrpt::maps::CSimpleMap& sm,
    mp2p_icp::metric_map_t& outMap,
    const mrpt::containers::yaml& pipeline,
    const sm2mm_options_t& options = {}
    );

} // namespace mp2p_icp_filters