FilterDeleteLayer.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-2024 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
14 #include <mrpt/containers/yaml.h>
15 
17 
18 using namespace mp2p_icp_filters;
19 
20 void FilterDeleteLayer::Parameters::load_from_yaml(const mrpt::containers::yaml& c)
21 {
22  ASSERTMSG_(
23  c.has("pointcloud_layer_to_remove"),
24  "YAML configuration must have an entry `pointcloud_layer_to_remove` "
25  "with a "
26  "scalar or sequence.");
27 
29 
30  auto cfgIn = c["pointcloud_layer_to_remove"];
31  if (cfgIn.isScalar())
32  {
33  pointcloud_layer_to_remove.push_back(cfgIn.as<std::string>());
34  }
35  else
36  {
37  ASSERTMSG_(
38  cfgIn.isSequence(),
39  "YAML configuration must have an entry "
40  "`pointcloud_layer_to_remove` "
41  "with a scalar or sequence.");
42 
43  for (const auto& s : cfgIn.asSequence())
44  pointcloud_layer_to_remove.push_back(s.as<std::string>());
45  }
46  ASSERT_(!pointcloud_layer_to_remove.empty());
47 
48  MCP_LOAD_OPT(c, error_on_missing_input_layer);
49 }
50 
52 {
53  mrpt::system::COutputLogger::setLoggerName("FilterDeleteLayer");
54 }
55 
56 void FilterDeleteLayer::initialize(const mrpt::containers::yaml& c)
57 {
58  MRPT_START
59 
60  MRPT_LOG_DEBUG_STREAM("Loading these params:\n" << c);
62 
63  MRPT_END
64 }
65 
67 {
68  MRPT_START
69 
70  for (const auto& layer : params_.pointcloud_layer_to_remove)
71  {
72  const auto nRemoved = inOut.layers.erase(layer);
73 
75  {
76  ASSERTMSG_(
77  nRemoved != 0,
78  mrpt::format("Point cloud layer '%s' was not found.", layer.c_str()));
79  }
80  MRPT_LOG_DEBUG_STREAM("Deleted layer: '" << layer << "'");
81  }
82  MRPT_END
83 }
mp2p_icp_filters::FilterDeleteLayer::Parameters::error_on_missing_input_layer
bool error_on_missing_input_layer
Definition: FilterDeleteLayer.h:47
mp2p_icp_filters::FilterDeleteLayer::initialize
void initialize(const mrpt::containers::yaml &c) override
Definition: FilterDeleteLayer.cpp:56
FilterDeleteLayer.h
Removes a given point layer.
mp2p_icp_filters::FilterDeleteLayer::FilterDeleteLayer
FilterDeleteLayer()
Definition: FilterDeleteLayer.cpp:51
s
XmlRpcServer s
mp2p_icp_filters::FilterDeleteLayer
Definition: FilterDeleteLayer.h:25
testing::internal::string
::std::string string
Definition: gtest.h:1979
IMPLEMENTS_MRPT_OBJECT
IMPLEMENTS_MRPT_OBJECT(FilterDecimateVoxelsQuadratic, mp2p_icp_filters::FilterBase, mp2p_icp_filters) using namespace mp2p_icp_filters
mp2p_icp_filters::FilterDeleteLayer::Parameters::load_from_yaml
void load_from_yaml(const mrpt::containers::yaml &c)
Definition: FilterDeleteLayer.cpp:20
mp2p_icp_filters::FilterBase
Definition: FilterBase.h:46
mp2p_icp_filters::FilterDeleteLayer::filter
void filter(mp2p_icp::metric_map_t &inOut) const override
Definition: FilterDeleteLayer.cpp:66
mp2p_icp_filters::FilterDeleteLayer::params_
Parameters params_
Definition: FilterDeleteLayer.h:51
mp2p_icp::metric_map_t
Generic container of pointcloud(s), extracted features and other maps.
Definition: metricmap.h:55
mp2p_icp::metric_map_t::layers
std::map< layer_name_t, mrpt::maps::CMetricMap::Ptr > layers
Definition: metricmap.h:82
mp2p_icp_filters
Definition: FilterAdjustTimestamps.h:19
mp2p_icp_filters::FilterDeleteLayer::Parameters::pointcloud_layer_to_remove
std::vector< std::string > pointcloud_layer_to_remove
Definition: FilterDeleteLayer.h:42


mp2p_icp
Author(s):
autogenerated on Mon May 26 2025 02:45:48