From 255bd75cb8d00f74b5090f5c4cf81ade2f9b33bd Mon Sep 17 00:00:00 2001 From: Florent Lamiraux Date: Fri, 9 Jan 2026 10:48:20 +0000 Subject: [PATCH 1/4] [Path] Bind method reverse. --- src/pyhpp/core/path.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pyhpp/core/path.cc b/src/pyhpp/core/path.cc index 454739e8..66d55d77 100644 --- a/src/pyhpp/core/path.cc +++ b/src/pyhpp/core/path.cc @@ -160,6 +160,7 @@ void exposePath() { .def("timeRange", static_cast(&Path::timeRange), return_internal_reference<>()) + .def("reverse", &Path::reverse) .PYHPP_DEFINE_METHOD_INTERNAL_REF(Path, paramRange) .PYHPP_DEFINE_METHOD(Path, length) .PYHPP_DEFINE_METHOD(Path, initial) From 6613724f814194dc73e95edfabaf15d3b02dd2c7 Mon Sep 17 00:00:00 2001 From: Florent Lamiraux Date: Fri, 9 Jan 2026 10:48:47 +0000 Subject: [PATCH 2/4] [TransitionPlanner] Bind method addPathOptimizer. --- src/pyhpp/manipulation/path-planner.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pyhpp/manipulation/path-planner.cc b/src/pyhpp/manipulation/path-planner.cc index 6d6e453f..45c42e6b 100644 --- a/src/pyhpp/manipulation/path-planner.cc +++ b/src/pyhpp/manipulation/path-planner.cc @@ -247,7 +247,9 @@ void exposePathPlanners() { &TransitionPlanner::setReedsAndSheppSteeringMethod) .def("pathProjector", &TransitionPlanner::pathProjector) .def("clearPathOptimizers", &TransitionPlanner::clearPathOptimizers) - .def("addPathOptimizer", &TransitionPlanner::addPathOptimizer); + .def("addPathOptimizer", &TransitionPlanner::addPathOptimizer, + "Add a path optimizer\n\n Note: the input path optimizer should have been constructed" + " with\n the inner problem of this class."); boost::python::class_>( From 8489abb6476efd1c85bf6cd0cffb00ad24f87944 Mon Sep 17 00:00:00 2001 From: Florent Lamiraux Date: Fri, 9 Jan 2026 10:49:29 +0000 Subject: [PATCH 3/4] [core] Bind SplineGradientBased_bezier optimizers. --- src/pyhpp/core/path-optimizer.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/pyhpp/core/path-optimizer.cc b/src/pyhpp/core/path-optimizer.cc index f188d0b4..85d50be0 100644 --- a/src/pyhpp/core/path-optimizer.cc +++ b/src/pyhpp/core/path-optimizer.cc @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -86,6 +87,28 @@ void exposePathOptimizer() { no_init) .def("__init__", make_constructor(&pathOptimization::RSTimeParameterization::create)); + + class_, + std::shared_ptr >, + bases, boost::noncopyable>("SplineGradientBased_bezier1", no_init) + .def("__init__", + make_constructor(&pathOptimization::SplineGradientBased::create) + ); + + class_, + std::shared_ptr >, + bases, boost::noncopyable>("SplineGradientBased_bezier3", no_init) + .def("__init__", + make_constructor(&pathOptimization::SplineGradientBased::create) + ); + + class_, + std::shared_ptr >, + bases, boost::noncopyable>("SplineGradientBased_bezier5", no_init) + .def("__init__", + make_constructor(&pathOptimization::SplineGradientBased::create) + ); + } } // namespace core } // namespace pyhpp From ecb509d02e3411d86c052ff4f243d043a6737ef2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 9 Jan 2026 10:51:51 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/pyhpp/core/path-optimizer.cc | 34 ++++++++++++++------------ src/pyhpp/manipulation/path-planner.cc | 3 ++- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/pyhpp/core/path-optimizer.cc b/src/pyhpp/core/path-optimizer.cc index 85d50be0..1c153d49 100644 --- a/src/pyhpp/core/path-optimizer.cc +++ b/src/pyhpp/core/path-optimizer.cc @@ -89,26 +89,28 @@ void exposePathOptimizer() { make_constructor(&pathOptimization::RSTimeParameterization::create)); class_, - std::shared_ptr >, - bases, boost::noncopyable>("SplineGradientBased_bezier1", no_init) - .def("__init__", - make_constructor(&pathOptimization::SplineGradientBased::create) - ); + std::shared_ptr< + pathOptimization::SplineGradientBased >, + bases, boost::noncopyable>( + "SplineGradientBased_bezier1", no_init) + .def("__init__", make_constructor(&pathOptimization::SplineGradientBased< + path::BernsteinBasis, 1>::create)); class_, - std::shared_ptr >, - bases, boost::noncopyable>("SplineGradientBased_bezier3", no_init) - .def("__init__", - make_constructor(&pathOptimization::SplineGradientBased::create) - ); + std::shared_ptr< + pathOptimization::SplineGradientBased >, + bases, boost::noncopyable>( + "SplineGradientBased_bezier3", no_init) + .def("__init__", make_constructor(&pathOptimization::SplineGradientBased< + path::BernsteinBasis, 3>::create)); class_, - std::shared_ptr >, - bases, boost::noncopyable>("SplineGradientBased_bezier5", no_init) - .def("__init__", - make_constructor(&pathOptimization::SplineGradientBased::create) - ); - + std::shared_ptr< + pathOptimization::SplineGradientBased >, + bases, boost::noncopyable>( + "SplineGradientBased_bezier5", no_init) + .def("__init__", make_constructor(&pathOptimization::SplineGradientBased< + path::BernsteinBasis, 5>::create)); } } // namespace core } // namespace pyhpp diff --git a/src/pyhpp/manipulation/path-planner.cc b/src/pyhpp/manipulation/path-planner.cc index 45c42e6b..382f9eff 100644 --- a/src/pyhpp/manipulation/path-planner.cc +++ b/src/pyhpp/manipulation/path-planner.cc @@ -248,7 +248,8 @@ void exposePathPlanners() { .def("pathProjector", &TransitionPlanner::pathProjector) .def("clearPathOptimizers", &TransitionPlanner::clearPathOptimizers) .def("addPathOptimizer", &TransitionPlanner::addPathOptimizer, - "Add a path optimizer\n\n Note: the input path optimizer should have been constructed" + "Add a path optimizer\n\n Note: the input path optimizer should " + "have been constructed" " with\n the inner problem of this class."); boost::python::class_