FilterBase.cpp
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-2021 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
14 
16  FilterBase, mrpt::rtti::CObject, mp2p_icp_filters)
17 
18 using namespace mp2p_icp_filters;
19 
20 FilterBase::FilterBase() : mrpt::system::COutputLogger("FilterBase") {}
21 
22 FilterBase::~FilterBase() = default;
23 
25  const FilterPipeline& filters, mp2p_icp::metric_map_t& inOut)
26 {
27  for (const auto& f : filters)
28  {
29  ASSERT_(f.get() != nullptr);
30  f->filter(inOut);
31  }
32 }
33 
35  const mrpt::containers::yaml& c, const mrpt::system::VerbosityLevel& vLevel)
36 {
37  if (c.isNullNode()) return {};
38 
39  ASSERT_(c.isSequence());
40 
41  FilterPipeline filters;
42 
43  for (const auto& entry : c.asSequence())
44  {
45  const auto& e = entry.asMap();
46 
47  const auto sClass = e.at("class_name").as<std::string>();
48  auto o = mrpt::rtti::classFactory(sClass);
49  ASSERT_(o);
50 
51  auto f = std::dynamic_pointer_cast<FilterBase>(o);
52  ASSERTMSG_(
53  f, mrpt::format(
54  "`%s` class seems not to be derived from FilterBase",
55  sClass.c_str()));
56 
57  f->setMinLoggingLevel(vLevel);
58 
59  f->initialize(e.at("params"));
60  filters.push_back(f);
61  }
62 
63  return filters;
64 }
65 
67  const std::string& filename, const mrpt::system::VerbosityLevel& vLevel)
68 {
69  const auto yamlContent = mrpt::containers::yaml::FromFile(filename);
70 
71  ASSERT_(yamlContent.has("filters") && yamlContent["filters"].isSequence());
72 
73  return filter_pipeline_from_yaml(yamlContent["filters"], vLevel);
74 }
mp2p_icp_filters::apply_filter_pipeline
void apply_filter_pipeline(const FilterPipeline &filters, mp2p_icp::metric_map_t &inOut)
Definition: FilterBase.cpp:24
mp2p_icp_filters::FilterBase::~FilterBase
virtual ~FilterBase()
kitti-run-seq.f
string f
Definition: kitti-run-seq.py:12
mp2p_icp_filters::filter_pipeline_from_yaml_file
FilterPipeline filter_pipeline_from_yaml_file(const std::string &filename, const mrpt::system::VerbosityLevel &vLevel=mrpt::system::LVL_INFO)
Definition: FilterBase.cpp:66
mrpt
Definition: LogRecord.h:99
testing::internal::string
::std::string string
Definition: gtest.h:1979
mp2p_icp_filters::filter_pipeline_from_yaml
FilterPipeline filter_pipeline_from_yaml(const mrpt::containers::yaml &c, const mrpt::system::VerbosityLevel &vLevel=mrpt::system::LVL_INFO)
Definition: FilterBase.cpp:34
mp2p_icp_filters::FilterPipeline
std::vector< FilterBase::Ptr > FilterPipeline
Definition: FilterBase.h:61
FilterBase.h
Base virtual class for point cloud filters.
mp2p_icp::metric_map_t
Generic container of pointcloud(s), extracted features and other maps.
Definition: metricmap.h:47
IMPLEMENTS_VIRTUAL_MRPT_OBJECT
IMPLEMENTS_VIRTUAL_MRPT_OBJECT(FilterBase, mrpt::rtti::CObject, mp2p_icp_filters) using namespace mp2p_icp_filters
mp2p_icp_filters::FilterBase::FilterBase
FilterBase()
Definition: FilterBase.cpp:20
mp2p_icp_filters
Definition: FilterBase.h:25
kitti-batch-convert.filename
filename
Definition: kitti-batch-convert.py:6


mrpt_local_obstacles
Author(s): Jose-Luis Blanco-Claraco
autogenerated on Mon Aug 14 2023 02:09:02