pinocchio
4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Toggle main menu visibility
Loading...
Searching...
No Matches
tree-broadphase-manager.hpp
1
//
2
// Copyright (c) 2022-2024 INRIA
3
//
4
5
#pragma once
6
7
#include "pinocchio/collision/tree-broadphase-manager.hpp"
8
#include "pinocchio/bindings/python/collision/broadphase-manager-base.hpp"
9
10
#include <eigenpy/eigen-to-python.hpp>
11
#include <boost/algorithm/string/replace.hpp>
12
13
namespace
pinocchio
14
{
15
namespace
python
16
{
17
namespace
bp = boost::python;
18
19
template
<
typename
Derived>
20
struct
TreeBroadPhaseManagerPythonVisitor
21
:
public
bp::def_visitor<TreeBroadPhaseManagerPythonVisitor<Derived>>
22
{
23
public
:
24
typedef
TreeBroadPhaseManagerTpl<Derived> Self;
25
typedef
typename
Self::BroadPhaseManagerVector BroadPhaseManagerVector;
26
27
/* --- Exposing C++ API to python through the handler ----------------- */
28
template
<
class
PyClass>
29
void
visit(PyClass & cl)
const
30
{
31
cl.def(
32
bp::init<const Model *, const GeometryModel *, GeometryData *>(
33
bp::args(
"self"
,
"model"
,
"geometry_model"
,
"geometry_data"
),
"Default constructor"
)
34
[bp::with_custodian_and_ward<1, 2>(), bp::with_custodian_and_ward<1, 3>(),
35
bp::with_custodian_and_ward<1, 4>()])
36
.def(
37
bp::init<const Self &>(
38
bp::args(
"self"
,
"other"
),
"Copy constructor"
)[bp::with_custodian_and_ward<1, 2>()])
39
40
.def(
41
"getBroadPhaseManagers"
,
42
(BroadPhaseManagerVector & (Self::*)()) & Self::getBroadPhaseManagers, bp::arg(
"self"
),
43
"Returns the internal broad phase managers"
, bp::return_internal_reference<>())
44
45
.def(
BroadPhaseManagerBasePythonVisitor<Self>
());
46
}
47
48
/* --- Expose --------------------------------------------------------- */
49
static
void
expose()
50
{
51
std::string derived_name = boost::typeindex::type_id<Derived>().pretty_name();
52
boost::algorithm::replace_all(derived_name,
"coal::"
,
""
);
53
const
std::string class_name =
"TreeBroadPhaseManager_"
+ derived_name;
54
55
const
std::string class_doc =
56
"Tree-based broad phase manager associated to coal::"
+ derived_name;
57
bp::class_<Self> registered_class(class_name.c_str(), class_doc.c_str(), bp::no_init);
58
registered_class.def(
TreeBroadPhaseManagerPythonVisitor
());
59
60
typedef
BroadPhaseManagerBase<Self>
Base;
61
bp::objects::register_dynamic_id<Base>();
62
bp::objects::register_conversion<Self, Base>(
false
);
63
}
64
};
65
66
}
// namespace python
67
}
// namespace pinocchio
pinocchio
Main pinocchio namespace.
Definition
treeview.dox:11
pinocchio::BroadPhaseManagerBase
Definition
broadphase-manager-base.hpp:20
pinocchio::python::BroadPhaseManagerBasePythonVisitor
Definition
broadphase-manager-base.hpp:20
pinocchio::python::TreeBroadPhaseManagerPythonVisitor
Definition
tree-broadphase-manager.hpp:22
include
pinocchio
bindings
python
collision
tree-broadphase-manager.hpp
Generated by
1.17.0