GCC Code Coverage Report


Directory: ./
File: include/pinocchio/bindings/python/collision/broadphase-manager-base.hpp
Date: 2024-08-27 18:20:05
Exec Total Coverage
Lines: 22 26 84.6%
Branches: 25 50 50.0%

Line Branch Exec Source
1 //
2 // Copyright (c) 2022 INRIA
3 //
4
5 #ifndef __pinocchio_python_collision_broadphase_manager_base_hpp__
6 #define __pinocchio_python_collision_broadphase_manager_base_hpp__
7
8 #include "pinocchio/collision/broadphase-manager-base.hpp"
9
10 #include <eigenpy/eigen-to-python.hpp>
11
12 namespace pinocchio
13 {
14 namespace python
15 {
16 namespace bp = boost::python;
17
18 template<typename Derived>
19 struct BroadPhaseManagerBasePythonVisitor
20 : public bp::def_visitor<BroadPhaseManagerBasePythonVisitor<Derived>>
21 {
22 typedef Derived Self;
23
24 typedef typename Derived::GeometryModel GeometryModel;
25 typedef typename Derived::Model Model;
26
27 static Model & getModel(const Self & self)
28 {
29 return const_cast<Model &>(self.getModel());
30 }
31
32 static GeometryModel & getGeometryModel(const Self & self)
33 {
34 return const_cast<GeometryModel &>(self.getGeometryModel());
35 }
36
37 /* --- Exposing C++ API to python through the handler ----------------- */
38 template<class PyClass>
39 480 void visit(PyClass & cl) const
40 {
41
42
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 cl.def(
43
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 "getModel", getModel, bp::arg("self"), "Returns the related model.",
44 480 bp::return_internal_reference<>())
45
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 .def(
46
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 "getGeometryModel", getGeometryModel, bp::arg("self"),
47 480 "Returns the related geometry model.", bp::return_internal_reference<>())
48 960 .def(
49 "getGeometryData", (GeometryData & (Self::*)()) & Self::getGeometryData,
50
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 bp::arg("self"), "Returns the related geometry data.",
51 480 bp::return_internal_reference<>())
52
53
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
960 .def(
54
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
960 "check", (bool(Self::*)() const) & Self::check, bp::arg("self"),
55 "Check whether the base broad phase manager is aligned with the current "
56 "collision_objects.")
57
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
960 .def(
58 "check", (bool(Self::*)(CollisionCallBackBase *) const) & Self::check,
59 bp::args("self", "callback"), "Check whether the callback is inline with *this.")
60
61
1/2
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
480 .def(
62 "update", (void(Self::*)(const bool)) & Self::update,
63
4/8
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 240 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 240 times.
✗ Branch 11 not taken.
960 (bp::arg("self"), bp::arg("compute_local_aabb") = false),
64 "Update the manager from the current geometry positions and update the underlying "
65 "FCL broad phase manager.")
66
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
480 .def(
67 "update", (void(Self::*)(GeometryData * geom_data_new)) & Self::update,
68
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
960 (bp::arg("self"), bp::arg("geom_data_new")),
69 480 "Update the manager with a new geometry data.", bp::with_custodian_and_ward<1, 2>())
70
71
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
960 .def(
72 "collide",
73 (bool(Self::*)(CollisionObject &, CollisionCallBackBase *) const) & Self::collide,
74 bp::args("self", "collision_object", "callback"),
75 "Performs collision test between one object and all the objects belonging to the "
76 "manager.")
77
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
960 .def(
78 "collide", (bool(Self::*)(CollisionCallBackBase *) const) & Self::collide,
79 bp::args("self", "callback"),
80 "Performs collision test for the objects belonging to the manager.")
81
2/4
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 240 times.
✗ Branch 5 not taken.
480 .def(
82 "collide", (bool(Self::*)(Self &, CollisionCallBackBase *) const) & Self::collide,
83 bp::args("self", "other_manager", "callback"),
84 "Performs collision test with objects belonging to another manager.");
85 480 }
86 };
87
88 } // namespace python
89 } // namespace pinocchio
90
91 #endif // ifndef __pinocchio_python_collision_broadphase_manager_base_hpp__
92