3#ifdef ALIGATOR_WITH_CROCODDYL_COMPAT
7#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
8#include "aligator/compat/crocoddyl/instantiate.txx"
15 bp::import(
"crocoddyl");
18 namespace ns_croc = ::aligator::compat::croc;
19 bp::def(
"convertCrocoddylProblem",
20 &ns_croc::convertCrocoddylProblem<context::Scalar>,
21 bp::args(
"croc_problem"),
22 "Convert a Crocoddyl problem to an aligator problem.");
25 using StateAbstract = crocoddyl::StateAbstractTpl<Scalar>;
26 using ns_croc::context::ActionDataWrapper;
27 using ns_croc::context::ActionModelWrapper;
28 using ns_croc::context::DynamicsDataWrapper;
29 using ns_croc::context::StateWrapper;
31 bp::register_ptr_to_python<shared_ptr<ActionModelWrapper>>();
32 bp::class_<ActionModelWrapper, bp::bases<context::StageModel>>(
33 "ActionModelWrapper",
"Wrapper for Crocoddyl action models.",
34 bp::init<boost::shared_ptr<CrocActionModel>>(bp::args(
"action_model")))
35 .def_readonly(
"action_model", &ActionModelWrapper::action_model_,
36 "Underlying Crocoddyl ActionModel.");
38 bp::register_ptr_to_python<shared_ptr<ActionDataWrapper>>();
39 bp::class_<ActionDataWrapper, bp::bases<context::StageData>>(
40 "ActionDataWrapper", bp::no_init)
41 .def(bp::init<
const boost::shared_ptr<CrocActionModel> &>(
42 bp::args(
"self",
"croc_action_model")))
43 .def_readonly(
"croc_action_data", &ActionDataWrapper::croc_action_data,
44 "Underlying Crocoddyl action data.");
46 bp::class_<DynamicsDataWrapper, bp::bases<context::StageFunctionData>>(
47 "DynamicsDataWrapper", bp::no_init)
48 .def(bp::init<const CrocActionModel &>(bp::args(
"self",
"action_model")));
50 bp::class_<StateWrapper, bp::bases<context::Manifold>>(
51 "StateWrapper",
"Wrapper for a Crocoddyl state.", bp::no_init)
53 bp::init<boost::shared_ptr<StateAbstract>>(bp::args(
"self",
"state")))
54 .def_readonly(
"croc_state", &StateWrapper::croc_state);
crocoddyl::ActionModelAbstractTpl< Scalar > CrocActionModel
void exposeCrocoddylCompat()