14 #include <mrpt/core/exceptions.h>
28 const mrpt::poses::CPose3D& localPose,
const MatchContext& mc,
39 const metric_map_t& pcLocal,
const mrpt::poses::CPose3D& local_wrt_global,
41 const mrpt::optional_ref<MatchState>& userProvidedMS)
47 std::optional<MatchState> localMS;
49 if (userProvidedMS.has_value())
52 ms = &userProvidedMS.value().get();
57 localMS.emplace(pcGlobal, pcLocal);
58 ms = &localMS.value();
63 for (
const auto& matcher : matchers)
68 matcher->match(pcGlobal, pcLocal, local_wrt_global, mc, *ms, pc);
69 anyRun = anyRun || hasRun;
75 std::cerr <<
"[mp2p_icp::run_matchers] WARNING: No active matcher "
76 "actually ran on the two maps."