GCC Code Coverage Report


Directory: ./
File: bindings/python/crocoddyl/multibody/data/contacts-double.cpp
Date: 2025-04-18 16:41:15
Exec Total Coverage
Lines: 0 8 0.0%
Branches: 0 36 0.0%

Line Branch Exec Source
1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2025, University of Edinburgh, Heriot-Watt University
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
7 ///////////////////////////////////////////////////////////////////////////////
8
9 // Auto-generated file for double
10 #include "crocoddyl/multibody/data/contacts.hpp"
11
12 #include "python/crocoddyl/multibody/multibody.hpp"
13
14 namespace crocoddyl {
15 namespace python {
16
17 template <typename Data>
18 struct DataCollectorContactVisitor
19 : public bp::def_visitor<DataCollectorContactVisitor<Data>> {
20 template <class PyClass>
21 void visit(PyClass& cl) const {
22 cl.add_property(
23 "contacts",
24 bp::make_getter(&Data::contacts,
25 bp::return_value_policy<bp::return_by_value>()),
26 "contacts data");
27 }
28 };
29
30 #define CROCODDYL_DATA_COLLECTOR_CONTACT_PYTHON_BINDINGS(Scalar) \
31 typedef DataCollectorContactTpl<Scalar> Data; \
32 typedef DataCollectorAbstractTpl<Scalar> DataBase; \
33 typedef ContactDataMultipleTpl<Scalar> ContactData; \
34 bp::register_ptr_to_python<std::shared_ptr<Data>>(); \
35 bp::class_<Data, bp::bases<DataBase>>( \
36 "DataCollectorContact", "Contact data collector.\n\n", \
37 bp::init<std::shared_ptr<ContactData>>( \
38 bp::args("self", "contacts"), \
39 "Create contact data collection.\n\n" \
40 ":param contacts: contacts data")) \
41 .def(DataCollectorContactVisitor<Data>()) \
42 .def(CopyableVisitor<Data>());
43
44 #define CROCODDYL_DATA_COLLECTOR_MULTIBODY_CONTACT_PYTHON_BINDINGS(Scalar) \
45 typedef DataCollectorMultibodyInContactTpl<Scalar> MData; \
46 typedef DataCollectorMultibodyTpl<Scalar> MDataBase1; \
47 typedef DataCollectorContactTpl<Scalar> MDataBase2; \
48 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
49 typedef ContactDataMultipleTpl<Scalar> ContactData; \
50 bp::register_ptr_to_python<std::shared_ptr<MData>>(); \
51 bp::class_<MData, bp::bases<MDataBase1, MDataBase2>>( \
52 "DataCollectorMultibodyInContact", \
53 "Data collector for multibody systems in contact.\n\n", \
54 bp::init<PinocchioData*, std::shared_ptr<ContactData>>( \
55 bp::args("self", "pinocchio", "contacts"), \
56 "Create multibody data collection.\n\n" \
57 ":param pinocchio: Pinocchio data\n" \
58 ":param contacts: contacts data")[bp::with_custodian_and_ward<1, \
59 2>()]) \
60 .def(CopyableVisitor<MData>());
61
62 #define CROCODDYL_DATA_COLLECTOR_ACTMULTIBODY_CONTACT_PYTHON_BINDINGS(Scalar) \
63 typedef DataCollectorActMultibodyInContactTpl<Scalar> AMData; \
64 typedef DataCollectorMultibodyInContactTpl<Scalar> AMDataBase1; \
65 typedef DataCollectorActuationTpl<Scalar> AMDataBase2; \
66 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
67 typedef ActuationDataAbstractTpl<Scalar> ActuationData; \
68 typedef ContactDataMultipleTpl<Scalar> ContactData; \
69 bp::register_ptr_to_python<std::shared_ptr<AMData>>(); \
70 bp::class_<AMData, bp::bases<AMDataBase1, AMDataBase2>>( \
71 "DataCollectorActMultibodyInContact", \
72 "Data collector for actuated multibody systems in contact.\n\n", \
73 bp::init<PinocchioData*, std::shared_ptr<ActuationData>, \
74 std::shared_ptr<ContactData>>( \
75 bp::args("self", "pinocchio", "actuation", "contacts"), \
76 "Create multibody data collection.\n\n" \
77 ":param pinocchio: Pinocchio data\n" \
78 ":param actuation: actuation data\n" \
79 ":param contacts: contacts data")[bp::with_custodian_and_ward<1, \
80 2>()]) \
81 .def(CopyableVisitor<AMData>());
82
83 #define CROCODDYL_DATA_COLLECTOR_JOINT_ACTMULTIBODY_CONTACT_PYTHON_BINDINGS( \
84 Scalar) \
85 typedef DataCollectorJointActMultibodyInContactTpl<Scalar> JAMData; \
86 typedef DataCollectorMultibodyInContactTpl<Scalar> JAMDataBase1; \
87 typedef DataCollectorActuationTpl<Scalar> JAMDataBase2; \
88 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
89 typedef ActuationDataAbstractTpl<Scalar> ActuationData; \
90 typedef JointDataAbstractTpl<Scalar> JointData; \
91 typedef ContactDataMultipleTpl<Scalar> ContactData; \
92 bp::register_ptr_to_python<std::shared_ptr<JAMData>>(); \
93 bp::class_<JAMData, bp::bases<JAMDataBase1, JAMDataBase2>>( \
94 "DataCollectorJointActMultibodyInContact", \
95 "Data collector for actuated-joint multibody systems in contact.\n\n", \
96 bp::init<PinocchioData*, std::shared_ptr<ActuationData>, \
97 std::shared_ptr<JointData>, std::shared_ptr<ContactData>>( \
98 bp::args("self", "pinocchio", "actuation", "joint", "contacts"), \
99 "Create multibody data collection.\n\n" \
100 ":param pinocchio: Pinocchio data\n" \
101 ":param actuation: actuation data\n" \
102 ":param joint: joint data\n" \
103 ":param contacts: contacts data")[bp::with_custodian_and_ward<1, \
104 2>()]) \
105 .def(CopyableVisitor<JAMData>());
106
107 void exposeDataCollectorContacts() {
108 CROCODDYL_DATA_COLLECTOR_CONTACT_PYTHON_BINDINGS(double)
109 CROCODDYL_DATA_COLLECTOR_MULTIBODY_CONTACT_PYTHON_BINDINGS(double)
110 CROCODDYL_DATA_COLLECTOR_ACTMULTIBODY_CONTACT_PYTHON_BINDINGS(double)
111 CROCODDYL_DATA_COLLECTOR_JOINT_ACTMULTIBODY_CONTACT_PYTHON_BINDINGS(double)
112 }
113
114 } // namespace python
115 } // namespace crocoddyl
116