5#ifndef __pinocchio_python_parsers_graph_model_configuration_converter_hpp__ 6#define __pinocchio_python_parsers_graph_model_configuration_converter_hpp__ 8#include "pinocchio/parsers/graph/model-configuration-converter.hpp" 16 namespace bp = boost::python;
18 template<
typename _Scalar,
int _Options,
template<
typename,
int>
class JointCollectionTpl>
19 struct ModelConfigurationConverterVisitor
20 :
public boost::python::def_visitor<
21 ModelConfigurationConverterVisitor<_Scalar, _Options, JointCollectionTpl>>
23 typedef _Scalar Scalar;
28 typedef JointCollectionTpl<Scalar, Options> JointCollection;
29 typedef ModelConfigurationConverterTpl<Scalar, Options, JointCollectionTpl>
30 ModelConfigurationConverter;
32 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> VectorXs;
34 static VectorXs convert_configuration_vector_proxy(
35 const ModelConfigurationConverter & converter,
const VectorXs & q_source)
37 VectorXs q_target(VectorXs::Zero(converter._target_configuration_size));
38 converter.convertConfigurationVector(q_source, q_target);
42 static VectorXs convert_tangent_vector_proxy(
43 const ModelConfigurationConverter & converter,
44 const VectorXs & q_source,
45 const VectorXs & v_source)
47 VectorXs v_target(VectorXs::Zero(converter._target_tangent_size));
48 converter.convertTangentVector(q_source, v_source, v_target);
52 template<
class PyClass>
53 void visit(PyClass & cl)
const 56 "convertConfigurationVector",
57 &ModelConfigurationConverter::template convertConfigurationVector<VectorXs, VectorXs>,
58 bp::args(
"self",
"q_source",
"q_target"),
59 "Convert q_source configuration vector from source model to q_target configuration " 60 "vector from target model.");
62 "convertTangentVector",
63 &ModelConfigurationConverter::template convertTangentVector<
64 VectorXs, VectorXs, VectorXs>,
65 bp::args(
"self",
"q_source",
"q_target"),
66 "Convert q_source configuration vector from source model to q_target configuration " 67 "vector from target model.");
69 "convertConfigurationVector",
70 &ModelConfigurationConverterVisitor::convert_configuration_vector_proxy,
71 bp::args(
"self",
"q_source"),
72 "Return q_source configuration vector converted to target model.");
74 "convertTangentVector",
75 &ModelConfigurationConverterVisitor::convert_tangent_vector_proxy,
76 bp::args(
"self",
"q_source",
"v_source"),
77 "Return v_source configuration vector converted to target model.");
82 bp::class_<ModelConfigurationConverter>(
83 "ModelConfigurationConverter",
84 "Convert configuration or tangent vector from two model with different root.",
86 .def(ModelConfigurationConverterVisitor());
88 bp::def(
"createConverter", createConverter<Scalar, Options, JointCollectionTpl>);
Main pinocchio namespace.