GCC Code Coverage Report


Directory: ./
File: bindings/python/crocoddyl/multibody/data/multibody-double.cpp
Date: 2025-04-18 16:41:15
Exec Total Coverage
Lines: 0 7 0.0%
Branches: 0 30 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 "python/crocoddyl/multibody/multibody.hpp"
11
12 #include "crocoddyl/multibody/data/multibody.hpp"
13
14 namespace crocoddyl {
15 namespace python {
16
17 template <typename Data>
18 struct DataCollectorMultibodyVisitor
19 : public bp::def_visitor<DataCollectorMultibodyVisitor<Data>> {
20 template <class PyClass>
21 void visit(PyClass& cl) const {
22 cl.add_property(
23 "pinocchio",
24 bp::make_getter(&Data::pinocchio, bp::return_internal_reference<>()),
25 "pinocchio data");
26 }
27 };
28
29 #define CROCODDYL_DATA_COLLECTOR_MULTIBODY_PYTHON_BINDINGS(Scalar) \
30 typedef DataCollectorMultibodyTpl<Scalar> Data; \
31 typedef DataCollectorAbstractTpl<Scalar> DataBase; \
32 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
33 bp::register_ptr_to_python<std::shared_ptr<Data>>(); \
34 bp::class_<Data, bp::bases<DataBase>>( \
35 "DataCollectorMultibody", "Data collector for multibody systems.\n\n", \
36 bp::init<PinocchioData*>( \
37 bp::args("self", "pinocchio"), \
38 "Create multibody data collection.\n\n" \
39 ":param data: Pinocchio data")[bp::with_custodian_and_ward<1, 2>()]) \
40 .def(DataCollectorMultibodyVisitor<Data>()) \
41 .def(CopyableVisitor<Data>());
42
43 #define CROCODDYL_DATA_COLLECTOR_ACTMULTIBODY_PYTHON_BINDINGS(Scalar) \
44 typedef DataCollectorActMultibodyTpl<Scalar> AData; \
45 typedef DataCollectorMultibodyTpl<Scalar> ADataBase1; \
46 typedef DataCollectorActuationTpl<Scalar> ADataBase2; \
47 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
48 typedef ActuationDataAbstractTpl<Scalar> ActuationData; \
49 bp::register_ptr_to_python<std::shared_ptr<AData>>(); \
50 bp::class_<AData, bp::bases<ADataBase1, ADataBase2>>( \
51 "DataCollectorActMultibody", \
52 "Data collector for actuated multibody systems.\n\n", \
53 bp::init<PinocchioData*, std::shared_ptr<ActuationData>>( \
54 bp::args("self", "pinocchio", "actuation"), \
55 "Create multibody data collection.\n\n" \
56 ":param pinocchio: Pinocchio data\n" \
57 ":param actuation: actuation data") \
58 [bp::with_custodian_and_ward<1, 2>()]) \
59 .def(CopyableVisitor<AData>());
60
61 #define CROCODDYL_DATA_COLLECTOR_JOINT_ACTMULTIBODY_PYTHON_BINDINGS(Scalar) \
62 typedef DataCollectorJointActMultibodyTpl<Scalar> JAData; \
63 typedef DataCollectorActMultibodyTpl<Scalar> JADataBase1; \
64 typedef DataCollectorJointTpl<Scalar> JADataBase2; \
65 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
66 typedef ActuationDataAbstractTpl<Scalar> ActuationData; \
67 typedef JointDataAbstractTpl<Scalar> JointData; \
68 bp::register_ptr_to_python<std::shared_ptr<JAData>>(); \
69 bp::class_<JAData, bp::bases<JADataBase1, JADataBase2>>( \
70 "DataCollectorJointActMultibody", \
71 "Data collector for actuated-joint multibody systems.\n\n", \
72 bp::init<PinocchioData*, std::shared_ptr<ActuationData>, \
73 std::shared_ptr<JointData>>( \
74 bp::args("self", "pinocchio", "actuation", "joint"), \
75 "Create multibody data collection.\n\n" \
76 ":param pinocchio: Pinocchio data\n" \
77 ":param actuation: actuation data\n" \
78 ":param joint: joint data")[bp::with_custodian_and_ward<1, 2>()]) \
79 .def(CopyableVisitor<JAData>());
80
81 void exposeDataCollectorMultibody() {
82 CROCODDYL_DATA_COLLECTOR_MULTIBODY_PYTHON_BINDINGS(double)
83 CROCODDYL_DATA_COLLECTOR_ACTMULTIBODY_PYTHON_BINDINGS(double)
84 CROCODDYL_DATA_COLLECTOR_JOINT_ACTMULTIBODY_PYTHON_BINDINGS(double)
85 }
86
87 } // namespace python
88 } // namespace crocoddyl
89