5#ifndef __pinocchio_python_joints_variant_hpp__ 6#define __pinocchio_python_joints_variant_hpp__ 8#include <boost/algorithm/string/replace.hpp> 10#include <boost/python.hpp> 12#include "pinocchio/multibody/joint/joint-collection.hpp" 13#include "pinocchio/bindings/python/multibody/joint/joints-models.hpp" 14#include "pinocchio/bindings/python/multibody/joint/joints-datas.hpp" 15#include "pinocchio/bindings/python/utils/printable.hpp" 21 namespace bp = boost::python;
24 std::string sanitizedClassname()
26 std::string className = boost::replace_all_copy(T::classname(),
"<",
"_");
27 boost::replace_all(className,
">",
"");
31 template<
typename VariantType>
32 struct JointVariantVisitor : boost::static_visitor<PyObject *>
34 static result_type convert(VariantType
const & jv)
36 return apply_visitor(JointVariantVisitor<VariantType>(), jv);
40 result_type operator()(T
const & t)
const 42 return boost::python::incref(boost::python::object(t).ptr());
53 sanitizedClassname<T>().c_str(), sanitizedClassname<T>().c_str(), bp::init<>())
54 .def(JointDataBasePythonVisitor<T>())
55 .def(PrintableVisitor<T>()));
56 bp::implicitly_convertible<T, context::JointData>();
65 expose_joint_model<T>(
67 sanitizedClassname<T>().c_str(), sanitizedClassname<T>().c_str(), bp::no_init)
68 .def(JointModelBasePythonVisitor<T>())
69 .def(PrintableVisitor<T>()));
70 bp::implicitly_convertible<T, context::JointModel>();
Main pinocchio namespace.