1 |
|
|
#include <boost/python/suite/indexing/vector_indexing_suite.hpp> |
2 |
|
|
#include <dynamic-graph/python/dynamic-graph-py.hh> |
3 |
|
|
#include <dynamic-graph/python/module.hh> |
4 |
|
|
#include <sot/core/integrator-euler.hh> |
5 |
|
|
|
6 |
|
|
namespace dg = dynamicgraph; |
7 |
|
|
namespace dgc = dynamicgraph::command; |
8 |
|
|
namespace dgs = dynamicgraph::sot; |
9 |
|
|
using dg::Matrix; |
10 |
|
|
using dg::Vector; |
11 |
|
|
|
12 |
|
|
template <typename S, typename C> |
13 |
|
6 |
void exposeIntegratorEuler() { |
14 |
|
|
typedef dgs::IntegratorEuler<S, C> IE_t; |
15 |
|
|
|
16 |
✓✗ |
6 |
const std::string cName = dgc::Value::typeName(dgc::ValueHelper<C>::TypeID); |
17 |
|
|
|
18 |
✓✗ |
6 |
dg::python::exposeEntity<IE_t>() |
19 |
|
|
.add_property( |
20 |
|
|
"numerators", |
21 |
|
|
+[](const IE_t &e) { |
22 |
|
|
return dg::python::to_py_list(e.numCoeffs().begin(), |
23 |
|
|
e.numCoeffs().end()); |
24 |
|
|
}, |
25 |
|
|
+[](IE_t &e, bp::object iterable) { |
26 |
|
|
e.numCoeffs(dg::python::to_std_vector<C>(iterable)); |
27 |
|
|
}) |
28 |
✓✗✓✗
|
12 |
.add_property( |
29 |
|
|
"denominators", |
30 |
|
|
+[](const IE_t &e) { |
31 |
|
|
return dg::python::to_py_list(e.denomCoeffs().begin(), |
32 |
|
|
e.denomCoeffs().end()); |
33 |
|
|
}, |
34 |
|
|
+[](IE_t &e, bp::object iterable) { |
35 |
|
|
e.denomCoeffs(dg::python::to_std_vector<C>(iterable)); |
36 |
|
|
}); |
37 |
|
6 |
} |
38 |
|
|
|
39 |
✓✗✓✗
|
4 |
BOOST_PYTHON_MODULE(wrap) { |
40 |
✓✗ |
2 |
bp::import("dynamic_graph"); |
41 |
|
|
|
42 |
|
2 |
exposeIntegratorEuler<double, double>(); |
43 |
|
2 |
exposeIntegratorEuler<Vector, double>(); |
44 |
|
2 |
exposeIntegratorEuler<Vector, Matrix>(); |
45 |
|
2 |
} |