GCC Code Coverage Report


Directory: ./
File: bindings/python/crocoddyl/multibody/data/impulses-float.cpp
Date: 2025-04-18 16:41:15
Exec Total Coverage
Lines: 0 6 0.0%
Branches: 0 20 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 float
10 #include "crocoddyl/multibody/data/impulses.hpp"
11
12 #include "python/crocoddyl/multibody/multibody.hpp"
13
14 namespace crocoddyl {
15 namespace python {
16
17 template <typename Data>
18 struct DataCollectorImpulseVisitor
19 : public bp::def_visitor<DataCollectorImpulseVisitor<Data>> {
20 template <class PyClass>
21 void visit(PyClass& cl) const {
22 cl.add_property(
23 "impulses",
24 bp::make_getter(&Data::impulses,
25 bp::return_value_policy<bp::return_by_value>()),
26 "impulses data");
27 }
28 };
29
30 #define CROCODDYL_DATA_COLLECTOR_IMPULSE_PYTHON_BINDINGS(Scalar) \
31 typedef DataCollectorImpulseTpl<Scalar> Data; \
32 typedef DataCollectorAbstractTpl<Scalar> DataBase; \
33 typedef ImpulseDataMultipleTpl<Scalar> ImpulseData; \
34 bp::register_ptr_to_python<std::shared_ptr<Data>>(); \
35 bp::class_<Data, bp::bases<DataBase>>( \
36 "DataCollectorImpulse", "Impulse data collector.\n\n", \
37 bp::init<std::shared_ptr<ImpulseData>>( \
38 bp::args("self", "impulses"), \
39 "Create impulse data collection.\n\n" \
40 ":param impulses: impulses data")) \
41 .def(DataCollectorImpulseVisitor<Data>()) \
42 .def(CopyableVisitor<Data>());
43
44 #define CROCODDYL_DATA_COLLECTOR_MULTIBODY_IMPULSE_PYTHON_BINDINGS(Scalar) \
45 typedef DataCollectorMultibodyInImpulseTpl<Scalar> MData; \
46 typedef DataCollectorMultibodyTpl<Scalar> MDataBase1; \
47 typedef DataCollectorImpulseTpl<Scalar> MDataBase2; \
48 typedef pinocchio::DataTpl<Scalar> PinocchioData; \
49 typedef ImpulseDataMultipleTpl<Scalar> ImpulseData; \
50 bp::register_ptr_to_python<std::shared_ptr<MData>>(); \
51 bp::class_<MData, bp::bases<MDataBase1, MDataBase2>>( \
52 "DataCollectorMultibodyInImpulse", \
53 "Data collector for multibody systems in impulse.\n\n", \
54 bp::init<PinocchioData*, std::shared_ptr<ImpulseData>>( \
55 bp::args("self", "pinocchio", "impulses"), \
56 "Create multibody data collection.\n\n" \
57 ":param pinocchio: Pinocchio data\n" \
58 ":param impulses: impulses data")[bp::with_custodian_and_ward<1, \
59 2>()]) \
60 .def(CopyableVisitor<MData>());
61
62 void exposeDataCollectorImpulses() {
63 CROCODDYL_DATA_COLLECTOR_IMPULSE_PYTHON_BINDINGS(float)
64 CROCODDYL_DATA_COLLECTOR_MULTIBODY_IMPULSE_PYTHON_BINDINGS(float)
65 }
66
67 } // namespace python
68 } // namespace crocoddyl
69