pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
joints-liegroup.hpp
1//
2// Copyright (c) 2015-2021 CNRS INRIA
3//
4
5#pragma once
6
7#include <boost/python.hpp>
8
9#include "pinocchio/bindings/python/fwd.hpp"
10#include "pinocchio/multibody/joint.hpp"
11#include "pinocchio/multibody/liegroup.hpp"
12
13namespace pinocchio
14{
15 namespace python
16 {
17 namespace bp = boost::python;
18
19 template<class JointModelDerived>
21 : public boost::python::def_visitor<JointModelLieGroupPythonVisitor<JointModelDerived>>
22 {
23 public:
24 typedef
25 typename LieGroupMap::template operationProduct<context::Scalar, context::Options>::type
26 LieGroupOperation;
27
28 template<class PyClass>
29 void visit(PyClass & cl) const
30 {
31 cl.def("lieGroup", &lieGroup);
32 }
33
34 static LieGroupOperation lieGroup(const JointModelDerived & self)
35 {
36 return LieGroupOperation(self.template lieGroup<LieGroupMap>());
37 }
38 };
39
40 template<>
41 struct JointModelLieGroupPythonVisitor<context::JointModelComposite>
42 : public boost::python::def_visitor<
43 JointModelLieGroupPythonVisitor<context::JointModelComposite>>
44 {
45 public:
46 typedef context::JointModelComposite Self;
47 typedef
48 typename LieGroupMap::template operationProduct<context::Scalar, context::Options>::type
49 LieGroupOperation;
50
51 template<class PyClass>
52 void visit(PyClass & cl) const
53 {
54 cl.def("lieGroup", &lieGroup);
55 }
56
57 static LieGroupOperation lieGroup(const Self & self)
58 {
59 return self.template lieGroup<LieGroupMap>();
60 }
61 };
62
63 template<>
64 struct JointModelLieGroupPythonVisitor<context::JointModel>
65 : public boost::python::def_visitor<JointModelLieGroupPythonVisitor<context::JointModel>>
66 {
67 public:
68 typedef context::JointModel Self;
69 typedef
70 typename LieGroupMap::template operationProduct<context::Scalar, context::Options>::type
71 LieGroupOperation;
72
73 template<class PyClass>
74 void visit(PyClass & cl) const
75 {
76 cl.def("lieGroup", &lieGroup);
77 }
78
79 static LieGroupOperation lieGroup(const Self & self)
80 {
81 return self.template lieGroup<LieGroupMap>();
82 }
83 };
84
85 template<>
86 struct JointModelLieGroupPythonVisitor<context::JointModelMimic>
87 : public boost::python::def_visitor<JointModelLieGroupPythonVisitor<context::JointModelMimic>>
88 {
89 public:
90 typedef context::JointModelMimic Self;
91 typedef
92 typename LieGroupMap::template operationProduct<context::Scalar, context::Options>::type
93 LieGroupOperation;
94
95 template<class PyClass>
96 void visit(PyClass & cl) const
97 {
98 cl.def("lieGroup", &lieGroup);
99 }
100
101 static LieGroupOperation lieGroup(const Self & self)
102 {
103 return self.template lieGroup<LieGroupMap>();
104 }
105 };
106
107 } // namespace python
108} // namespace pinocchio
Main pinocchio namespace.
Definition treeview.dox:11