17 std::tuple<mp2p_icp::ICP::Ptr, mp2p_icp::Parameters>
19 const mrpt::containers::yaml& icpParams,
20 const mrpt::system::VerbosityLevel& vLevel)
27 auto icp = std::dynamic_pointer_cast<mp2p_icp::ICP>(
28 mrpt::rtti::classFactory(icpClassName));
31 "Could not instantiate ICP algorithm named '%s'",
32 icpClassName.c_str());
34 icp->setVerbosityLevel(vLevel);
37 bool isDerived =
false;
38 if (icpParams.has(
"derived"))
40 icp->initialize_derived(icpParams[
"derived"]);
45 if (icpParams.has(
"solvers")) icp->initialize_solvers(icpParams[
"solvers"]);
48 if (icpParams.has(
"matchers"))
49 icp->initialize_matchers(icpParams[
"matchers"]);
52 ASSERT_(icpParams.has(
"quality"));
53 icp->initialize_quality_evaluators(icpParams[
"quality"]);
59 ASSERT_(icpParams.has(
"params"));