aligator
0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
visitors.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include <eigenpy/fwd.hpp>
6
7
namespace
aligator
{
8
namespace
python
{
9
namespace
bp = boost::python;
10
11
// fwd-declaration
12
bp::arg
operator
""
_a(
const
char
*argname, std::size_t);
13
14
template
<
typename
T>
15
struct
ClonePythonVisitor
: bp::def_visitor<ClonePythonVisitor<T>> {
16
template
<
typename
PyT>
void
visit
(PyT &obj)
const
{
17
obj.def(
"clone"
, &T::clone, bp::args(
"self"
),
"Clone the object."
);
18
}
19
};
20
21
template
<
typename
T>
22
struct
CreateDataPythonVisitor
: bp::def_visitor<CreateDataPythonVisitor<T>> {
23
template
<
typename
Py
class
>
void
visit
(Pyclass &obj)
const
{
24
obj.def(
"createData"
, &T::createData, bp::args(
"self"
),
25
"Create a data object."
);
26
}
27
};
28
35
template
<
typename
T,
typename
TWrapper>
36
struct
CreateDataPolymorphicPythonVisitor
37
: bp::def_visitor<CreateDataPolymorphicPythonVisitor<T, TWrapper>> {
38
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
39
obj.def(
"createData"
, &T::createData, &TWrapper::default_createData,
40
bp::args(
"self"
),
"Create a data object."
);
41
}
42
};
43
44
template
<
typename
T>
45
struct
CopyableVisitor
: bp::def_visitor<CopyableVisitor<T>> {
46
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
47
obj.def(
"copy"
, ©, bp::arg(
"self"
),
"Returns a copy of this."
);
48
}
49
50
private
:
51
static
T copy(
const
T &self) {
return
T(self); }
52
};
53
54
template
<
typename
T>
55
struct
PrintableVisitor
: bp::def_visitor<PrintableVisitor<T>> {
56
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
57
obj.def(bp::self_ns::str(bp::self)).def(bp::self_ns::repr(bp::self));
58
}
59
};
60
61
template
<
typename
T>
62
struct
PrintAddressVisitor
: bp::def_visitor<PrintAddressVisitor<T>> {
63
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
64
obj.def(
"printAddress"
,
printAddress
, bp::args(
"self"
));
65
}
66
static
void
*
getAddress
(
const
T &a) {
return
(
void
*)&a; }
67
static
void
printAddress
(
const
T &a) {
68
printf(
"Address: %p\n"
,
getAddress
(a));
69
}
70
};
71
72
// fwd declaration
73
template
<
typename
SolverType>
struct
SolverVisitor;
74
75
}
// namespace python
76
}
// namespace aligator
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:5
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::python::ClonePythonVisitor
Definition
visitors.hpp:15
aligator::python::ClonePythonVisitor::visit
void visit(PyT &obj) const
Definition
visitors.hpp:16
aligator::python::CopyableVisitor
Definition
visitors.hpp:45
aligator::python::CopyableVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:46
aligator::python::CreateDataPolymorphicPythonVisitor
Definition
visitors.hpp:37
aligator::python::CreateDataPolymorphicPythonVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:38
aligator::python::CreateDataPythonVisitor
Definition
visitors.hpp:22
aligator::python::CreateDataPythonVisitor::visit
void visit(Pyclass &obj) const
Definition
visitors.hpp:23
aligator::python::PrintAddressVisitor
Definition
visitors.hpp:62
aligator::python::PrintAddressVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:63
aligator::python::PrintAddressVisitor::getAddress
static void * getAddress(const T &a)
Definition
visitors.hpp:66
aligator::python::PrintAddressVisitor::printAddress
static void printAddress(const T &a)
Definition
visitors.hpp:67
aligator::python::PrintableVisitor
Definition
visitors.hpp:55
aligator::python::PrintableVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:56
bindings
python
include
aligator
python
visitors.hpp
Generated by
1.13.2