GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: bindings/python/crocoddyl/multibody/data/contacts.cpp Lines: 25 27 92.6 %
Date: 2024-02-13 11:12:33 Branches: 20 40 50.0 %

Line Branch Exec Source
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