From e1244f675dc285e7cbdd033a1b7b6764ba27ac2d Mon Sep 17 00:00:00 2001 From: B1ueber2y Date: Wed, 18 Dec 2024 15:44:40 +0100 Subject: [PATCH 1/2] Add copy constructor support for solver bindings --- _pyceres/core/solver.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/_pyceres/core/solver.h b/_pyceres/core/solver.h index 5eaca60..68f259f 100644 --- a/_pyceres/core/solver.h +++ b/_pyceres/core/solver.h @@ -16,8 +16,9 @@ void BindSolver(py::module& m) { py::call_guard()); using Options = ceres::Solver::Options; - py::class_ PyOptions(m, "SolverOptions"); + py::class_> PyOptions(m, "SolverOptions"); PyOptions.def(py::init<>()) + .def(py::init()) .def("IsValid", &Options::IsValid) .def_property( "callbacks", @@ -131,8 +132,9 @@ void BindSolver(py::module& m) { MakeDataclass(PyOptions); using Summary = ceres::Solver::Summary; - py::class_ PySummary(m, "SolverSummary"); + py::class_> PySummary(m, "SolverSummary"); PySummary.def(py::init<>()) + .def(py::init()) .def("BriefReport", &Summary::BriefReport) .def("FullReport", &Summary::FullReport) .def("IsSolutionUsable", &Summary::IsSolutionUsable) @@ -231,8 +233,10 @@ void BindSolver(py::module& m) { MakeDataclass(PySummary); using IterSummary = ceres::IterationSummary; - py::class_ PyIterSummary(m, "IterationSummary"); + py::class_> PyIterSummary( + m, "IterationSummary"); PyIterSummary.def(py::init<>()) + .def(py::init()) .def_readonly("iteration", &IterSummary::iteration) .def_readonly("step_is_valid", &IterSummary::step_is_valid) .def_readonly("step_is_nonmonotonic", &IterSummary::step_is_nonmonotonic) From 10c44f7c225dddc2c51e6374871b41b92093f578 Mon Sep 17 00:00:00 2001 From: B1ueber2y Date: Wed, 18 Dec 2024 15:55:24 +0100 Subject: [PATCH 2/2] update --- _pyceres/core/solver.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pyceres/core/solver.h b/_pyceres/core/solver.h index 68f259f..225a5fa 100644 --- a/_pyceres/core/solver.h +++ b/_pyceres/core/solver.h @@ -236,7 +236,7 @@ void BindSolver(py::module& m) { py::class_> PyIterSummary( m, "IterationSummary"); PyIterSummary.def(py::init<>()) - .def(py::init()) + .def(py::init()) .def_readonly("iteration", &IterSummary::iteration) .def_readonly("step_is_valid", &IterSummary::step_is_valid) .def_readonly("step_is_nonmonotonic", &IterSummary::step_is_nonmonotonic)