aligator
0.15.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
CreateDataPythonVisitor
: bp::def_visitor<CreateDataPythonVisitor<T>> {
16
template
<
typename
Py
class
>
void
visit
(Pyclass &obj)
const
{
17
obj.def(
"createData"
, &T::createData, bp::args(
"self"
),
18
"Create a data object."
);
19
}
20
};
21
28
template
<
typename
T,
typename
TWrapper>
29
struct
CreateDataPolymorphicPythonVisitor
30
: bp::def_visitor<CreateDataPolymorphicPythonVisitor<T, TWrapper>> {
31
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
32
obj.def(
"createData"
, &T::createData, &TWrapper::default_createData,
33
bp::args(
"self"
),
"Create a data object."
);
34
}
35
};
36
37
template
<
typename
T>
38
struct
CopyableVisitor
: bp::def_visitor<CopyableVisitor<T>> {
39
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
40
obj.def(
"copy"
, ©, bp::arg(
"self"
),
"Returns a copy of this."
)
41
.def(
"__copy__"
, ©, bp::arg(
"self"
),
"Returns a copy of this."
);
42
}
43
44
private
:
45
static
T copy(
const
T &self) {
return
T(self); }
46
};
47
48
template
<
typename
T>
49
struct
PrintableVisitor
: bp::def_visitor<PrintableVisitor<T>> {
50
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
51
obj.def(bp::self_ns::str(bp::self)).def(bp::self_ns::repr(bp::self));
52
}
53
};
54
55
template
<
typename
T>
56
struct
PrintAddressVisitor
: bp::def_visitor<PrintAddressVisitor<T>> {
57
template
<
typename
PyClass>
void
visit
(PyClass &obj)
const
{
58
obj.def(
"printAddress"
,
printAddress
, bp::args(
"self"
));
59
}
60
static
void
*
getAddress
(
const
T &a) {
return
(
void
*)&a; }
61
static
void
printAddress
(
const
T &a) {
62
printf(
"Address: %p\n"
,
getAddress
(a));
63
}
64
};
65
66
// fwd declaration
67
template
<
typename
SolverType>
struct
SolverVisitor;
68
69
}
// namespace python
70
}
// namespace aligator
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:5
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::python::CopyableVisitor
Definition
visitors.hpp:38
aligator::python::CopyableVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:39
aligator::python::CreateDataPolymorphicPythonVisitor
Definition
visitors.hpp:30
aligator::python::CreateDataPolymorphicPythonVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:31
aligator::python::CreateDataPythonVisitor
Definition
visitors.hpp:15
aligator::python::CreateDataPythonVisitor::visit
void visit(Pyclass &obj) const
Definition
visitors.hpp:16
aligator::python::PrintAddressVisitor
Definition
visitors.hpp:56
aligator::python::PrintAddressVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:57
aligator::python::PrintAddressVisitor::getAddress
static void * getAddress(const T &a)
Definition
visitors.hpp:60
aligator::python::PrintAddressVisitor::printAddress
static void printAddress(const T &a)
Definition
visitors.hpp:61
aligator::python::PrintableVisitor
Definition
visitors.hpp:49
aligator::python::PrintableVisitor::visit
void visit(PyClass &obj) const
Definition
visitors.hpp:50
bindings
python
include
aligator
python
visitors.hpp
Generated by
1.13.2