19 :
public boost::python::def_visitor<
20 ModelConfigurationConverterVisitor<_Scalar, _Options, JointCollectionTpl>>
22 typedef _Scalar Scalar;
23 static constexpr int Options = _Options;
24 typedef JointCollectionTpl<Scalar, Options> JointCollection;
25 typedef ModelConfigurationConverterTpl<Scalar, Options, JointCollectionTpl>
26 ModelConfigurationConverter;
28 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> VectorXs;
30 static VectorXs convert_configuration_vector_proxy(
31 const ModelConfigurationConverter & converter,
const VectorXs & q_source)
33 VectorXs q_target(VectorXs::Zero(converter._target_configuration_size));
34 converter.convertConfigurationVector(q_source, q_target);
38 static VectorXs convert_tangent_vector_proxy(
39 const ModelConfigurationConverter & converter,
40 const VectorXs & q_source,
41 const VectorXs & v_source)
43 VectorXs v_target(VectorXs::Zero(converter._target_tangent_size));
44 converter.convertTangentVector(q_source, v_source, v_target);
48 template<
class PyClass>
49 void visit(PyClass & cl)
const 52 "convertConfigurationVector",
53 &ModelConfigurationConverter::template convertConfigurationVector<VectorXs, VectorXs>,
54 bp::args(
"self",
"q_source",
"q_target"),
55 "Convert q_source configuration vector from source model to q_target configuration " 56 "vector from target model.");
58 "convertTangentVector",
59 &ModelConfigurationConverter::template convertTangentVector<
60 VectorXs, VectorXs, VectorXs>,
61 bp::args(
"self",
"q_source",
"q_target"),
62 "Convert q_source configuration vector from source model to q_target configuration " 63 "vector from target model.");
65 "convertConfigurationVector",
66 &ModelConfigurationConverterVisitor::convert_configuration_vector_proxy,
67 bp::args(
"self",
"q_source"),
68 "Return q_source configuration vector converted to target model.");
70 "convertTangentVector",
71 &ModelConfigurationConverterVisitor::convert_tangent_vector_proxy,
72 bp::args(
"self",
"q_source",
"v_source"),
73 "Return v_source configuration vector converted to target model.");
78 bp::class_<ModelConfigurationConverter>(
79 "ModelConfigurationConverter",
80 "Convert configuration or tangent vector from two model with different root.",
84 bp::def(
"createConverter", createConverter<Scalar, Options, JointCollectionTpl>);