Directory: | ./ |
---|---|
File: | include/pinocchio/bindings/python/multibody/joint/joints-models.hpp |
Date: | 2025-02-12 21:03:38 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 140 | 140 | 100.0% |
Branches: | 99 | 198 | 50.0% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | // | ||
2 | // Copyright (c) 2015-2022 CNRS INRIA | ||
3 | // | ||
4 | |||
5 | #ifndef __pinocchio_python_joints_models_hpp__ | ||
6 | #define __pinocchio_python_joints_models_hpp__ | ||
7 | |||
8 | #include <boost/python.hpp> | ||
9 | |||
10 | #include "pinocchio/multibody/joint/joint-collection.hpp" | ||
11 | #include "pinocchio/multibody/joint/joint-composite.hpp" | ||
12 | #include "pinocchio/multibody/joint/joint-generic.hpp" | ||
13 | |||
14 | #include <eigenpy/eigen-to-python.hpp> | ||
15 | |||
16 | namespace pinocchio | ||
17 | { | ||
18 | namespace python | ||
19 | { | ||
20 | namespace bp = boost::python; | ||
21 | |||
22 | // generic expose_joint_model : do nothing special | ||
23 | template<class T> | ||
24 | 1242 | bp::class_<T> & expose_joint_model(bp::class_<T> & cl) | |
25 | { | ||
26 | 1242 | return cl; | |
27 | } | ||
28 | |||
29 | // specialization for JointModelRevolute | ||
30 | template<> | ||
31 | bp::class_<context::JointModelRX> & | ||
32 | 69 | expose_joint_model<context::JointModelRX>(bp::class_<context::JointModelRX> & cl) | |
33 | { | ||
34 | return cl | ||
35 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
36 | 138 | bp::args("self"), "Init JointModelRX with the X axis ([1, 0, 0]) as rotation axis.")) | |
37 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
38 | "getMotionAxis", &context::JointModelRX::getMotionAxis, | ||
39 | 138 | "Rotation axis of the JointModelRX."); | |
40 | } | ||
41 | |||
42 | template<> | ||
43 | bp::class_<context::JointModelRY> & | ||
44 | 69 | expose_joint_model<context::JointModelRY>(bp::class_<context::JointModelRY> & cl) | |
45 | { | ||
46 | return cl | ||
47 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
48 | 138 | bp::args("self"), "Init JointModelRY with the Y axis ([0, 1, 0]) as rotation axis.")) | |
49 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
50 | "getMotionAxis", &context::JointModelRY::getMotionAxis, | ||
51 | 138 | "Rotation axis of the JointModelRY."); | |
52 | } | ||
53 | |||
54 | template<> | ||
55 | bp::class_<context::JointModelRZ> & | ||
56 | 69 | expose_joint_model<context::JointModelRZ>(bp::class_<context::JointModelRZ> & cl) | |
57 | { | ||
58 | return cl | ||
59 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
60 | 138 | bp::args("self"), "Init JointModelRZ with the Z axis ([0, 0, 1]) as rotation axis")) | |
61 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
62 | "getMotionAxis", &context::JointModelRZ::getMotionAxis, | ||
63 | 138 | "Rotation axis of the JointModelRZ."); | |
64 | } | ||
65 | |||
66 | // specialization for JointModelRevoluteUnaligned | ||
67 | template<> | ||
68 | bp::class_<context::JointModelRevoluteUnaligned> & | ||
69 | 69 | expose_joint_model<context::JointModelRevoluteUnaligned>( | |
70 | bp::class_<context::JointModelRevoluteUnaligned> & cl) | ||
71 | { | ||
72 | return cl | ||
73 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar, context::Scalar, context::Scalar>( |
74 | 138 | bp::args("self", "x", "y", "z"), | |
75 | "Init JointModelRevoluteUnaligned from the components x, y, z of the axis")) | ||
76 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<const context::Vector3s &>( |
77 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self", "axis"), |
78 | "Init JointModelRevoluteUnaligned from an axis with x-y-z components")) | ||
79 | 138 | .def_readwrite( | |
80 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | "axis", &context::JointModelRevoluteUnaligned::axis, |
81 | 138 | "Rotation axis of the JointModelRevoluteUnaligned."); | |
82 | } | ||
83 | |||
84 | // specialization for JointModelRevoluteUnbounded | ||
85 | template<> | ||
86 | bp::class_<context::JointModelRUBX> & | ||
87 | 69 | expose_joint_model<context::JointModelRUBX>(bp::class_<context::JointModelRUBX> & cl) | |
88 | { | ||
89 | return cl | ||
90 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
91 | 138 | bp::args("self"), "Init JointModelRUBX with the X axis ([1, 0, 0]) as rotation axis")) | |
92 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
93 | "getMotionAxis", &context::JointModelRUBX::getMotionAxis, | ||
94 | 138 | "Rotation axis of the JointModelRUBX."); | |
95 | } | ||
96 | |||
97 | template<> | ||
98 | bp::class_<context::JointModelRUBY> & | ||
99 | 69 | expose_joint_model<context::JointModelRUBY>(bp::class_<context::JointModelRUBY> & cl) | |
100 | { | ||
101 | return cl | ||
102 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
103 | 138 | bp::args("self"), "Init JointModelRUBY with the Y axis ([0, 1, 0]) as rotation axis")) | |
104 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
105 | "getMotionAxis", &context::JointModelRUBY::getMotionAxis, | ||
106 | 138 | "Rotation axis of the JointModelRUBY."); | |
107 | } | ||
108 | |||
109 | template<> | ||
110 | bp::class_<context::JointModelRUBZ> & | ||
111 | 69 | expose_joint_model<context::JointModelRUBZ>(bp::class_<context::JointModelRUBZ> & cl) | |
112 | { | ||
113 | return cl | ||
114 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
115 | 138 | bp::args("self"), "Init JointModelRUBZ with the Z axis ([0, 0, 1]) as rotation axis")) | |
116 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
117 | "getMotionAxis", &context::JointModelRUBZ::getMotionAxis, | ||
118 | 138 | "Rotation axis of the JointModelRUBZ."); | |
119 | } | ||
120 | |||
121 | // specialization for JointModelPrismatic | ||
122 | template<> | ||
123 | bp::class_<context::JointModelPX> & | ||
124 | 69 | expose_joint_model<context::JointModelPX>(bp::class_<context::JointModelPX> & cl) | |
125 | { | ||
126 | return cl | ||
127 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
128 | 138 | bp::args("self"), "Init JointModelPX with the X axis ([1, 0, 0]) as rotation axis")) | |
129 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
130 | "getMotionAxis", &context::JointModelPX::getMotionAxis, | ||
131 | 138 | "Rotation axis of the JointModelPX."); | |
132 | } | ||
133 | |||
134 | template<> | ||
135 | bp::class_<context::JointModelPY> & | ||
136 | 69 | expose_joint_model<context::JointModelPY>(bp::class_<context::JointModelPY> & cl) | |
137 | { | ||
138 | return cl | ||
139 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
140 | 138 | bp::args("self"), "Init JointModelPY with the Y axis ([0, 1, 0]) as rotation axis")) | |
141 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
142 | "getMotionAxis", &context::JointModelPY::getMotionAxis, | ||
143 | 138 | "Rotation axis of the JointModelPY."); | |
144 | } | ||
145 | |||
146 | template<> | ||
147 | bp::class_<context::JointModelPZ> & | ||
148 | 69 | expose_joint_model<context::JointModelPZ>(bp::class_<context::JointModelPZ> & cl) | |
149 | { | ||
150 | return cl | ||
151 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
152 | 138 | bp::args("self"), "Init JointModelPZ with the Z axis ([0, 0, 1]) as rotation axis")) | |
153 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
154 | "getMotionAxis", &context::JointModelPZ::getMotionAxis, | ||
155 | 138 | "Rotation axis of the JointModelPZ."); | |
156 | } | ||
157 | |||
158 | // specialization for JointModelPrismaticUnaligned | ||
159 | template<> | ||
160 | bp::class_<context::JointModelPrismaticUnaligned> & | ||
161 | 69 | expose_joint_model<context::JointModelPrismaticUnaligned>( | |
162 | bp::class_<context::JointModelPrismaticUnaligned> & cl) | ||
163 | { | ||
164 | return cl | ||
165 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar, context::Scalar, context::Scalar>( |
166 | 138 | bp::args("self", "x", "y", "z"), | |
167 | "Init JointModelPrismaticUnaligned from the components x, y, z of the axis")) | ||
168 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<const context::Vector3s &>( |
169 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self", "axis"), |
170 | "Init JointModelPrismaticUnaligned from an axis with x-y-z components")) | ||
171 | 138 | .def_readwrite( | |
172 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | "axis", &context::JointModelPrismaticUnaligned::axis, |
173 | 138 | "Translation axis of the JointModelPrismaticUnaligned."); | |
174 | } | ||
175 | |||
176 | // specialization for JointModelHelicalUnaligned | ||
177 | template<> | ||
178 | bp::class_<context::JointModelHelicalUnaligned> & | ||
179 | 69 | expose_joint_model<context::JointModelHelicalUnaligned>( | |
180 | bp::class_<context::JointModelHelicalUnaligned> & cl) | ||
181 | { | ||
182 | return cl | ||
183 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar, context::Scalar, context::Scalar, context::Scalar>( |
184 | 138 | bp::args("self", "x", "y", "z", "pitch"), | |
185 | "Init JointModelHelicalUnaligned from the components x, y, z of the axis and the pitch")) | ||
186 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<const context::Vector3s &, context::Scalar>( |
187 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self", "axis", "pitch"), |
188 | "Init JointModelHelicalUnaligned from an axis with x-y-z components and the pitch")) | ||
189 | 138 | .def_readwrite( | |
190 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | "axis", &context::JointModelHelicalUnaligned::axis, |
191 | "Translation axis of the JointModelHelicalUnaligned.") | ||
192 | 138 | .def_readwrite( | |
193 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | "pitch", &context::JointModelHelicalUnaligned::m_pitch, |
194 | 138 | "Pitch h of the JointModelHelicalUnaligned."); | |
195 | } | ||
196 | |||
197 | // specialization for JointModelHelical | ||
198 | template<> | ||
199 | bp::class_<context::JointModelHX> & | ||
200 | 69 | expose_joint_model<context::JointModelHX>(bp::class_<context::JointModelHX> & cl) | |
201 | { | ||
202 | return cl | ||
203 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar>( |
204 | 138 | bp::args("self", "pitch"), | |
205 | "Init JointModelHX with pitch value and the X axis ([1, 0, 0]) as a rotation axis.")) | ||
206 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
207 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self"), |
208 | "Init JointModelHX with pitch 0.0 and the X axis ([1, 0, 0]) as a rotation axis.")) | ||
209 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
210 | "getMotionAxis", &context::JointModelHX::getMotionAxis, | ||
211 | "Rotation axis of the JointModelHX.") | ||
212 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | .def_readwrite("pitch", &context::JointModelHX::m_pitch, "Pitch h of the JointModelHX."); |
213 | } | ||
214 | |||
215 | template<> | ||
216 | bp::class_<context::JointModelHY> & | ||
217 | 69 | expose_joint_model<context::JointModelHY>(bp::class_<context::JointModelHY> & cl) | |
218 | { | ||
219 | return cl | ||
220 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar>( |
221 | 138 | bp::args("self", "pitch"), | |
222 | "Init JointModelHY with pitch value and the Y axis ([0, 1, 0]) as a rotation axis.")) | ||
223 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
224 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self"), |
225 | "Init JointModelHY with pitch 0.0 and the Y axis ([0, 1, 0]) as a rotation axis.")) | ||
226 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
227 | "getMotionAxis", &context::JointModelHY::getMotionAxis, | ||
228 | "Rotation axis of the JointModelHY.") | ||
229 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | .def_readwrite("pitch", &context::JointModelHY::m_pitch, "Pitch h of the JointModelHY."); |
230 | } | ||
231 | |||
232 | template<> | ||
233 | bp::class_<context::JointModelHZ> & | ||
234 | 69 | expose_joint_model<context::JointModelHZ>(bp::class_<context::JointModelHZ> & cl) | |
235 | { | ||
236 | return cl | ||
237 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<context::Scalar>( |
238 | 138 | bp::args("self", "pitch"), | |
239 | "Init JointModelHZ with pitch value and the Z axis ([0, 0, 1]) as a rotation axis.")) | ||
240 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<>( |
241 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self"), |
242 | "Init JointModelHZ with pitch 0.0 and the Z axis ([0, 0, 1]) as a rotation axis.")) | ||
243 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
244 | "getMotionAxis", &context::JointModelHZ::getMotionAxis, | ||
245 | "Rotation axis of the JointModelHZ.") | ||
246 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | .def_readwrite("pitch", &context::JointModelHZ::m_pitch, "Pitch h of the JointModelHZ."); |
247 | } | ||
248 | |||
249 | // specialization for JointModelUniversal | ||
250 | template<> | ||
251 | bp::class_<context::JointModelUniversal> & | ||
252 | 69 | expose_joint_model<context::JointModelUniversal>(bp::class_<context::JointModelUniversal> & cl) | |
253 | { | ||
254 | return cl | ||
255 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init< |
256 | context::Scalar, context::Scalar, context::Scalar, context::Scalar, context::Scalar, | ||
257 | context::Scalar>( | ||
258 | 138 | bp::args("self", "x1", "y1", "z1", "x2", "y2", "z2"), | |
259 | "Init JointModelUniversal from the components x, y, z of the axes")) | ||
260 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<const context::Vector3s &, const context::Vector3s &>( |
261 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("self", "axis1", "axis2"), |
262 | "Init JointModelUniversal from two axes with x-y-z components")) | ||
263 | 138 | .def_readwrite( | |
264 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | "axis1", &context::JointModelUniversal::axis1, |
265 | "First rotation axis of the JointModelUniversal.") | ||
266 | 138 | .def_readwrite( | |
267 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | "axis2", &context::JointModelUniversal::axis2, |
268 | 138 | "Second rotation axis of the JointModelUniversal."); | |
269 | } | ||
270 | |||
271 | // specialization for JointModelComposite | ||
272 | |||
273 | struct JointModelCompositeAddJointVisitor | ||
274 | : public boost::static_visitor<context::JointModelComposite &> | ||
275 | { | ||
276 | context::JointModelComposite & m_joint_composite; | ||
277 | const context::SE3 & m_joint_placement; | ||
278 | |||
279 | 8 | JointModelCompositeAddJointVisitor( | |
280 | context::JointModelComposite & joint_composite, const context::SE3 & joint_placement) | ||
281 | 8 | : m_joint_composite(joint_composite) | |
282 | 8 | , m_joint_placement(joint_placement) | |
283 | { | ||
284 | 8 | } | |
285 | |||
286 | template<typename JointModelDerived> | ||
287 | 16 | context::JointModelComposite & operator()(JointModelDerived & jmodel) const | |
288 | { | ||
289 | 16 | return m_joint_composite.addJoint(jmodel, m_joint_placement); | |
290 | } | ||
291 | }; // struct JointModelCompositeAddJointVisitor | ||
292 | |||
293 | 8 | static context::JointModelComposite & addJoint_proxy( | |
294 | context::JointModelComposite & joint_composite, | ||
295 | const context::JointModel & jmodel, | ||
296 | const context::SE3 & joint_placement = context::SE3::Identity()) | ||
297 | { | ||
298 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | return boost::apply_visitor( |
299 | 16 | JointModelCompositeAddJointVisitor(joint_composite, joint_placement), jmodel.toVariant()); | |
300 | } | ||
301 | |||
302 | struct JointModelCompositeConstructorVisitor | ||
303 | : public boost::static_visitor<context::JointModelComposite *> | ||
304 | { | ||
305 | const context::SE3 & m_joint_placement; | ||
306 | |||
307 | 3 | JointModelCompositeConstructorVisitor(const context::SE3 & joint_placement) | |
308 | 3 | : m_joint_placement(joint_placement) | |
309 | { | ||
310 | 3 | } | |
311 | |||
312 | template<typename JointModelDerived> | ||
313 | 6 | context::JointModelComposite * operator()(JointModelDerived & jmodel) const | |
314 | { | ||
315 |
1/2✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
|
6 | return new context::JointModelComposite(jmodel, m_joint_placement); |
316 | } | ||
317 | }; // struct JointModelCompositeConstructorVisitor | ||
318 | |||
319 | 2 | static context::JointModelComposite * init_proxy1(const context::JointModel & jmodel) | |
320 | { | ||
321 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | return boost::apply_visitor( |
322 | 4 | JointModelCompositeConstructorVisitor(context::SE3::Identity()), jmodel); | |
323 | } | ||
324 | |||
325 | static context::JointModelComposite * | ||
326 | 1 | init_proxy2(const context::JointModel & jmodel, const context::SE3 & joint_placement) | |
327 | { | ||
328 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | return boost::apply_visitor(JointModelCompositeConstructorVisitor(joint_placement), jmodel); |
329 | } | ||
330 | |||
331 | template<> | ||
332 | bp::class_<context::JointModelComposite> & | ||
333 | 69 | expose_joint_model<context::JointModelComposite>(bp::class_<context::JointModelComposite> & cl) | |
334 | { | ||
335 | return cl | ||
336 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
69 | .def(bp::init<const size_t>( |
337 | 138 | bp::args("self", "size"), "Init JointModelComposite with a defined size")) | |
338 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
339 | "__init__", | ||
340 |
2/4✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
|
138 | bp::make_constructor(init_proxy1, bp::default_call_policies(), bp::args("joint_model")), |
341 | "Init JointModelComposite from a joint") | ||
342 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
343 | "__init__", | ||
344 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::make_constructor( |
345 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | init_proxy2, bp::default_call_policies(), bp::args("joint_model", "joint_placement")), |
346 | "Init JointModelComposite from a joint and a placement") | ||
347 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .add_property("joints", &context::JointModelComposite::joints) |
348 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .add_property("jointPlacements", &context::JointModelComposite::jointPlacements) |
349 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .add_property("njoints", &context::JointModelComposite::njoints) |
350 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | .def( |
351 | "addJoint", &addJoint_proxy, | ||
352 |
3/6✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 69 times.
✗ Branch 8 not taken.
|
142 | (bp::arg("self"), bp::arg("joint_model"), |
353 |
4/8✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 69 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 69 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 69 times.
✗ Branch 11 not taken.
|
138 | bp::arg("joint_placement") = context::SE3::Identity()), |
354 | 77 | "Add a joint to the vector of joints.", bp::return_internal_reference<>()) | |
355 | |||
356 | #ifndef PINOCCHIO_PYTHON_SKIP_COMPARISON_OPERATIONS | ||
357 |
1/2✓ Branch 2 taken 65 times.
✗ Branch 3 not taken.
|
65 | .def(bp::self == bp::self) |
358 |
1/2✓ Branch 2 taken 65 times.
✗ Branch 3 not taken.
|
130 | .def(bp::self != bp::self) |
359 | #endif | ||
360 | |||
361 | ; | ||
362 | } | ||
363 | } // namespace python | ||
364 | } // namespace pinocchio | ||
365 | |||
366 | #endif // ifndef __pinocchio_python_joint_models_hpp__ | ||
367 |