pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
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
14namespace pinocchio
15{
16 namespace python
17 {
18 namespace bp = boost::python;
19
20 template<typename ConstraintData>
22 {
23 typedef typename ConstraintData::ConstraintCollection ConstraintCollection;
24 typedef bp::object result_type;
25
26 template<typename ConstraintDataDerived>
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 ConstraintData>
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."))
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
Main pinocchio namespace.
Definition treeview.dox:11
Set the Python method str and repr to use the overloading operator<<.
Definition printable.hpp:21