MCPcopy Create free account
hub / github.com/MIT-SPARK/TEASER-plusplus / PYBIND11_MODULE

Function PYBIND11_MODULE

python/teaserpp_python/teaserpp_python.cc:24–208  ·  view source on GitHub ↗

* Python interface with pybind11 */

Source from the content-addressed store, hash-verified

22 * Python interface with pybind11
23 */
24PYBIND11_MODULE(teaserpp_python, m) {
25 m.doc() = "Python binding for TEASER++";
26
27 // Python bound for teaser::RegistrationSolution
28 py::class_<teaser::RegistrationSolution>(m, "RegistrationSolution")
29 .def_readwrite("scale", &teaser::RegistrationSolution::scale)
30 .def_readwrite("translation", &teaser::RegistrationSolution::translation)
31 .def_readwrite("rotation", &teaser::RegistrationSolution::rotation)
32 .def("__repr__", [](const teaser::RegistrationSolution& a) {
33 std::ostringstream print_string;
34
35 print_string << "<RegistrationSolution with scale=" << a.scale << "\n"
36 << "translation=\n"
37 << a.translation << "\n"
38 << "rotation=\n"
39 << a.rotation << "\n"
40 << ">";
41 return print_string.str();
42 });
43
44 // Python bound for teaser::RobustRegistraionSolver
45 py::class_<teaser::RobustRegistrationSolver> solver(m, "RobustRegistrationSolver");
46
47 // Python bound for teaser::RobustRegistrationSolver functions
48 solver.def(py::init<>())
49 .def(py::init<const teaser::RobustRegistrationSolver::Params&>())
50 .def("getParams", &teaser::RobustRegistrationSolver::getParams)
51 .def("reset", &teaser::RobustRegistrationSolver::reset)
52 .def("solve", py::overload_cast<const Eigen::Matrix<double, 3, Eigen::Dynamic>&,
53 const Eigen::Matrix<double, 3, Eigen::Dynamic>&>(
54 &teaser::RobustRegistrationSolver::solve))
55 .def("getSolution", &teaser::RobustRegistrationSolver::getSolution)
56 .def("getGNCRotationCostAtTermination",
57 &teaser::RobustRegistrationSolver::getGNCRotationCostAtTermination)
58 .def("getScaleInliersMask", &teaser::RobustRegistrationSolver::getScaleInliersMask)
59 .def("getScaleInliersMap", &teaser::RobustRegistrationSolver::getScaleInliersMap)
60 .def("getScaleInliers", &teaser::RobustRegistrationSolver::getScaleInliers)
61 .def("getRotationInliersMask", &teaser::RobustRegistrationSolver::getRotationInliersMask)
62 .def("getRotationInliersMap", &teaser::RobustRegistrationSolver::getRotationInliersMap)
63 .def("getRotationInliers", &teaser::RobustRegistrationSolver::getRotationInliers)
64 .def("getTranslationInliersMask",
65 &teaser::RobustRegistrationSolver::getTranslationInliersMask)
66 .def("getTranslationInliersMap", &teaser::RobustRegistrationSolver::getTranslationInliersMap)
67 .def("getTranslationInliers", &teaser::RobustRegistrationSolver::getTranslationInliers)
68 .def("getInlierMaxClique", &teaser::RobustRegistrationSolver::getInlierMaxClique)
69 .def("getInlierGraph", &teaser::RobustRegistrationSolver::getInlierGraph)
70 .def("getSrcTIMsMap", &teaser::RobustRegistrationSolver::getSrcTIMsMap)
71 .def("getDstTIMsMap", &teaser::RobustRegistrationSolver::getDstTIMsMap)
72 .def("getSrcTIMsMapForRotation", &teaser::RobustRegistrationSolver::getSrcTIMsMapForRotation)
73 .def("getDstTIMsMapForRotation", &teaser::RobustRegistrationSolver::getDstTIMsMapForRotation)
74 .def("getMaxCliqueSrcTIMs", &teaser::RobustRegistrationSolver::getMaxCliqueSrcTIMs)
75 .def("getMaxCliqueDstTIMs", &teaser::RobustRegistrationSolver::getMaxCliqueDstTIMs)
76 .def("getSrcTIMs", &teaser::RobustRegistrationSolver::getSrcTIMs)
77 .def("getDstTIMs", &teaser::RobustRegistrationSolver::getDstTIMs);
78
79 // Python bound for teaser::RobustRegistrationSolver::ROTATION_ESTIMATE_ALGORITHM
80 py::enum_<teaser::RobustRegistrationSolver::ROTATION_ESTIMATION_ALGORITHM>(
81 solver, "ROTATION_ESTIMATION_ALGORITHM")

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.80

Tested by

no test coverage detected