1 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
2 |
|
|
// BSD 3-Clause License |
3 |
|
|
// |
4 |
|
|
// Copyright (C) 2019-2023, University of Edinburgh, Heriot-Watt University |
5 |
|
|
// Copyright note valid unless otherwise stated in individual files. |
6 |
|
|
// All rights reserved. |
7 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
8 |
|
|
|
9 |
|
|
#include "crocoddyl/multibody/data/contacts.hpp" |
10 |
|
|
|
11 |
|
|
#include "python/crocoddyl/multibody/multibody.hpp" |
12 |
|
|
#include "python/crocoddyl/utils/copyable.hpp" |
13 |
|
|
|
14 |
|
|
namespace crocoddyl { |
15 |
|
|
namespace python { |
16 |
|
|
|
17 |
|
10 |
void exposeDataCollectorContacts() { |
18 |
✓✗ |
10 |
bp::class_<DataCollectorContact, bp::bases<DataCollectorAbstract> >( |
19 |
|
|
"DataCollectorContact", "Contact data collector.\n\n", |
20 |
✓✗ |
10 |
bp::init<boost::shared_ptr<ContactDataMultiple> >( |
21 |
|
20 |
bp::args("self", "contacts"), |
22 |
|
|
"Create contact data collection.\n\n" |
23 |
|
|
":param contacts: contacts data")) |
24 |
|
|
.add_property( |
25 |
|
|
"contacts", |
26 |
✓✗ |
10 |
bp::make_getter(&DataCollectorContact::contacts, |
27 |
|
10 |
bp::return_value_policy<bp::return_by_value>()), |
28 |
✓✗ |
10 |
"contacts data") |
29 |
✓✗ |
10 |
.def(CopyableVisitor<DataCollectorContact>()); |
30 |
|
|
|
31 |
✓✗ |
10 |
bp::class_<DataCollectorMultibodyInContact, |
32 |
|
|
bp::bases<DataCollectorMultibody, DataCollectorContact> >( |
33 |
|
|
"DataCollectorMultibodyInContact", |
34 |
|
|
"Data collector for multibody systems in contact.\n\n", |
35 |
✓✗ |
10 |
bp::init<pinocchio::Data*, boost::shared_ptr<ContactDataMultiple> >( |
36 |
✓✗ |
10 |
bp::args("self", "pinocchio", "contacts"), |
37 |
|
|
"Create multibody data collection.\n\n" |
38 |
|
|
":param pinocchio: Pinocchio data\n" |
39 |
|
|
":param contacts: contacts data")[bp::with_custodian_and_ward<1, |
40 |
✓✗ |
20 |
2>()]) |
41 |
✓✗ |
10 |
.def(CopyableVisitor<DataCollectorMultibodyInContact>()); |
42 |
|
|
|
43 |
✓✗ |
10 |
bp::class_< |
44 |
|
|
DataCollectorActMultibodyInContact, |
45 |
|
|
bp::bases<DataCollectorMultibodyInContact, DataCollectorActuation> >( |
46 |
|
|
"DataCollectorActMultibodyInContact", |
47 |
|
|
"Data collector for actuated multibody systems in contact.\n\n", |
48 |
✓✗ |
10 |
bp::init<pinocchio::Data*, boost::shared_ptr<ActuationDataAbstract>, |
49 |
|
|
boost::shared_ptr<ContactDataMultiple> >( |
50 |
✓✗ |
10 |
bp::args("self", "pinocchio", "actuation", "contacts"), |
51 |
|
|
"Create multibody data collection.\n\n" |
52 |
|
|
":param pinocchio: Pinocchio data\n" |
53 |
|
|
":param actuation: actuation data\n" |
54 |
|
|
":param contacts: contacts data")[bp::with_custodian_and_ward<1, |
55 |
✓✗ |
20 |
2>()]) |
56 |
✓✗ |
10 |
.def(CopyableVisitor<DataCollectorActMultibodyInContact>()); |
57 |
|
|
|
58 |
✓✗ |
10 |
bp::class_< |
59 |
|
|
DataCollectorJointActMultibodyInContact, |
60 |
|
|
bp::bases<DataCollectorActMultibodyInContact, DataCollectorJoint> >( |
61 |
|
|
"DataCollectorJointActMultibodyInContact", |
62 |
|
|
"Data collector for actuated-joint multibody systems in contact.\n\n", |
63 |
✓✗ |
10 |
bp::init<pinocchio::Data*, boost::shared_ptr<ActuationDataAbstract>, |
64 |
|
|
boost::shared_ptr<JointDataAbstract>, |
65 |
|
|
boost::shared_ptr<ContactDataMultiple> >( |
66 |
✓✗ |
10 |
bp::args("self", "pinocchio", "actuation", "joint", "contacts"), |
67 |
|
|
"Create multibody data collection.\n\n" |
68 |
|
|
":param pinocchio: Pinocchio data\n" |
69 |
|
|
":param actuation: actuation data\n" |
70 |
|
|
":param joint: joint data\n" |
71 |
|
10 |
":param contacts: contacts data")[bp::with_custodian_and_ward<1, |
72 |
✓✗ |
20 |
2>()]) |
73 |
✓✗ |
10 |
.def(CopyableVisitor<DataCollectorJointActMultibodyInContact>()); |
74 |
|
10 |
} |
75 |
|
|
|
76 |
|
|
} // namespace python |
77 |
|
|
} // namespace crocoddyl |