pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
joints-datas.hpp
1//
2// Copyright (c) 2019-2020 CNRS INRIA
3//
4
5#pragma once
6
7namespace pinocchio
8{
9 namespace python
10 {
11 namespace bp = boost::python;
12
13 // generic expose_joint_data : do nothing special
14 template<class T>
15 inline bp::class_<T> & expose_joint_data(bp::class_<T> & cl)
16 {
17 return cl;
18 }
19
20 // specialization for JointDataRevoluteUnaligned
21 template<>
22 inline bp::class_<JointDataRevoluteUnaligned> &
23 expose_joint_data<JointDataRevoluteUnaligned>(bp::class_<JointDataRevoluteUnaligned> & cl)
24 {
25 return cl.def(
26 bp::init<const Eigen::Vector3d &>(
27 bp::args("axis"), "Init JointDataRevoluteUnaligned from an axis with x-y-z components"));
28 }
29
30 // specialization for JointDataPrismaticUnaligned
31 template<>
32 inline bp::class_<JointDataPrismaticUnaligned> &
33 expose_joint_data<JointDataPrismaticUnaligned>(bp::class_<JointDataPrismaticUnaligned> & cl)
34 {
35 return cl.def(
36 bp::init<const Eigen::Vector3d &>(
37 bp::args("axis"), "Init JointDataPrismaticUnaligned from an axis with x-y-z components"));
38 }
39
40 // specialization for JointDataHelicalUnaligned
41 template<>
42 inline bp::class_<JointDataHelicalUnaligned> &
43 expose_joint_data<JointDataHelicalUnaligned>(bp::class_<JointDataHelicalUnaligned> & cl)
44 {
45 return cl.def(
46 bp::init<const Eigen::Vector3d &>(
47 bp::args("axis"), "Init JointDataHelicalUnaligned from an axis with x-y-z components"));
48 }
49
50 template<>
51 inline bp::class_<JointDataPlanar> &
52 expose_joint_data<JointDataPlanar>(bp::class_<JointDataPlanar> & cl)
53 {
54 return cl.add_property("StU", &JointDataPlanar::StU);
55 }
56
57 template<>
58 inline bp::class_<JointDataSphericalZYX> &
59 expose_joint_data<JointDataSphericalZYX>(bp::class_<JointDataSphericalZYX> & cl)
60 {
61 return cl.add_property("StU", &JointDataSphericalZYX::StU);
62 }
63
64 template<>
65 inline bp::class_<JointDataEllipsoid> &
66 expose_joint_data<JointDataEllipsoid>(bp::class_<JointDataEllipsoid> & cl)
67 {
68 return cl.add_property("StU", &JointDataEllipsoid::StU);
69 }
70
71 template<>
72 inline bp::class_<JointDataComposite> &
73 expose_joint_data<JointDataComposite>(bp::class_<JointDataComposite> & cl)
74 {
75 return cl
76 .def(
77 bp::init<const JointDataComposite::JointDataVector &, const int, const int>(
78 bp::args("joint_data_vectors", "nq", "nv"),
79 "Init JointDataComposite from a given collection of joint data"))
80 .add_property("joints", &JointDataComposite::joints)
81 .add_property("iMlast", &JointDataComposite::iMlast)
82 .add_property("pjMi", &JointDataComposite::pjMi)
83 .add_property("StU", &JointDataComposite::StU);
84 }
85
86 } // namespace python
87} // namespace pinocchio
Main pinocchio namespace.
Definition treeview.dox:11