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
constraint-data.hpp
1
//
2
// Copyright (c) 2025 INRIA
3
//
4
5
#pragma once
6
7
#include "pinocchio/constraints.hpp"
8
#include "pinocchio/serialization.hpp"
9
10
#include "pinocchio/bindings/python/algorithm/constraints/constraint-data-base.hpp"
11
#include "pinocchio/bindings/python/utils/printable.hpp"
12
#include "pinocchio/bindings/python/serialization/serializable.hpp"
13
14
namespace
pinocchio
15
{
16
namespace
python
17
{
18
namespace
bp = boost::python;
19
20
template
<
typename
Constra
int
Data>
21
struct
ExtractConstraintDataVariantTypeVisitor
22
{
23
typedef
typename
ConstraintData::ConstraintCollection ConstraintCollection;
24
typedef
bp::object result_type;
25
26
template
<
typename
Constra
int
DataDerived>
27
result_type operator()(
const
ConstraintDataBase<ConstraintDataDerived> & cdata)
const
28
{
29
bp::object obj(boost::ref(cdata.derived()));
30
return
obj;
31
}
32
33
result_type operator()(BlankConstraintData)
const
34
{
35
bp::object obj;
36
return
obj;
37
}
38
39
static
result_type extract(
const
ConstraintData & cdata)
40
{
41
return
boost::apply_visitor(
ExtractConstraintDataVariantTypeVisitor
(), cdata);
42
}
43
};
44
45
template
<
typename
Constra
int
Data>
46
struct
ConstraintDataPythonVisitor
47
{
48
static
void
expose()
49
{
50
bp::class_<ConstraintData>(
"ConstraintData"
,
"Generic Constraint Data."
, bp::no_init)
51
.def(bp::init<>(bp::arg(
"self"
),
"Default constructor."
))
52
.def(
53
bp::init<const ConstraintData &>(
54
bp::args(
"self"
,
"constraint_data"
),
"Copy constructor."
))
55
.def(
ConstraintDataBasePythonVisitor<ConstraintData>
())
56
.def(
PrintableVisitor<ConstraintData>
())
57
.def(
SerializableVisitor<ConstraintData>
())
58
.def(
59
"extract"
, ExtractConstraintDataVariantTypeVisitor<ConstraintData>::extract,
60
bp::arg(
"self"
),
61
"Returns a reference of the internal constraint managed by the ConstraintData."
,
62
bp::with_custodian_and_ward_postcall<0, 1>());
63
}
64
};
65
}
// namespace python
66
}
// namespace pinocchio
pinocchio
Main pinocchio namespace.
Definition
treeview.dox:11
pinocchio::python::ConstraintDataBasePythonVisitor
Definition
constraint-data-base.hpp:23
pinocchio::python::ConstraintDataPythonVisitor
Definition
constraint-data.hpp:47
pinocchio::python::ExtractConstraintDataVariantTypeVisitor
Definition
constraint-data.hpp:22
pinocchio::python::PrintableVisitor
Set the Python method str and repr to use the overloading operator<<.
Definition
printable.hpp:21
pinocchio::python::SerializableVisitor
Definition
serializable.hpp:19
include
pinocchio
bindings
python
algorithm
constraints
constraint-data.hpp
Generated by
1.17.0