1111
1212#include < eigenpy/deprecation-policy.hpp>
1313#include < eigenpy/eigenpy.hpp>
14+ #include < eigenpy/std-unique-ptr.hpp>
1415#include < eigenpy/std-vector.hpp>
1516
1617#include " simple-mpc/mpc.hpp"
@@ -24,7 +25,7 @@ namespace simple_mpc
2425 namespace bp = boost::python;
2526 using eigenpy::StdVectorPythonVisitor;
2627
27- void initialize ( MPC & self, const bp::dict & settings, std::shared_ptr<OCPHandler> problem)
28+ MPC * createMPC ( const bp::dict & settings, std::shared_ptr<OCPHandler> problem)
2829 {
2930 MPCSettings conf;
3031
@@ -42,7 +43,7 @@ namespace simple_mpc
4243 conf.T_contact = bp::extract<int >(settings[" T_contact" ]);
4344 conf.timestep = bp::extract<double >(settings[" timestep" ]);
4445
45- self. initialize ( conf, problem) ;
46+ return new MPC{ conf, problem} ;
4647 }
4748
4849 bp::dict getSettings (MPC & self)
@@ -72,9 +73,8 @@ namespace simple_mpc
7273
7374 StdVectorPythonVisitor<std::vector<MapBool>, true >::expose (" StdVec_MapBool" );
7475
75- bp::class_<MPC>(" MPC" , bp::no_init)
76- .def (bp::init<>(bp::args (" self" )))
77- .def (" initialize" , &initialize)
76+ bp::class_<MPC, boost::noncopyable>(" MPC" , bp::no_init)
77+ .def (" __init__" , bp::make_constructor (&createMPC, bp::default_call_policies ()))
7878 .def (" getSettings" , &getSettings)
7979 .def (" generateCycleHorizon" , &MPC::generateCycleHorizon, bp::args (" self" , " contact_states" ))
8080 .def (" iterate" , &MPC::iterate, bp::args (" self" , " x" ))
@@ -103,11 +103,7 @@ namespace simple_mpc
103103 .def (
104104 " getCycleHorizon" , &MPC::getCycleHorizon, " self" _a, bp::return_internal_reference<>(),
105105 " Get the cycle horizon." )
106- .def (
107- " getSolver" , &MPC::getSolver, " self" _a,
108- eigenpy::deprecated_member<eigenpy::DeprecationType::DEPRECATION, bp::return_internal_reference<>>(),
109- " Get the SolverProxDDP object" )
110- .def_readonly (" solver" , &MPC::solver_)
106+ .add_property (" solver" , bp::make_getter (&MPC::solver_, eigenpy::ReturnInternalStdUniquePtr{}))
111107 .add_property (" xs" , &MPC::xs_)
112108 .add_property (" us" , &MPC::us_)
113109 .add_property (" Ks" , &MPC::Ks_);
0 commit comments