diff --git a/src/pyhpp/core/path-optimizer.cc b/src/pyhpp/core/path-optimizer.cc index f188d0b..1c153d4 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,30 @@ void exposePathOptimizer() { no_init) .def("__init__", make_constructor(&pathOptimization::RSTimeParameterization::create)); + + class_, + 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< + pathOptimization::SplineGradientBased >, + bases, boost::noncopyable>( + "SplineGradientBased_bezier3", no_init) + .def("__init__", make_constructor(&pathOptimization::SplineGradientBased< + path::BernsteinBasis, 3>::create)); + + class_, + 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/core/path.cc b/src/pyhpp/core/path.cc index 454739e..66d55d7 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) diff --git a/src/pyhpp/manipulation/path-planner.cc b/src/pyhpp/manipulation/path-planner.cc index 6d6e453..382f9ef 100644 --- a/src/pyhpp/manipulation/path-planner.cc +++ b/src/pyhpp/manipulation/path-planner.cc @@ -247,7 +247,10 @@ 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_>(