Line |
Branch |
Exec |
Source |
1 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
2 |
|
|
// BSD 3-Clause License |
3 |
|
|
// |
4 |
|
|
// Copyright (C) 2019-2024, LAAS-CNRS, University of Edinburgh, |
5 |
|
|
// University of Oxford, Heriot-Watt University |
6 |
|
|
// Copyright note valid unless otherwise stated in individual files. |
7 |
|
|
// All rights reserved. |
8 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
9 |
|
|
|
10 |
|
|
#include "crocoddyl/core/utils/callbacks.hpp" |
11 |
|
|
|
12 |
|
|
#include "python/crocoddyl/core/core.hpp" |
13 |
|
|
#include "python/crocoddyl/utils/copyable.hpp" |
14 |
|
|
|
15 |
|
|
#define SCALAR_float64 |
16 |
|
|
|
17 |
|
|
namespace crocoddyl { |
18 |
|
|
namespace python { |
19 |
|
|
|
20 |
|
✗ |
void exposeCallbacks() { |
21 |
|
|
#ifdef SCALAR_float64 |
22 |
|
✗ |
bp::register_ptr_to_python<std::shared_ptr<CallbackAbstract> >(); |
23 |
|
|
|
24 |
|
✗ |
bp::enum_<VerboseLevel>("VerboseLevel") |
25 |
|
✗ |
.value("_0", _0) |
26 |
|
✗ |
.value("_1", _1) |
27 |
|
✗ |
.value("_2", _2) |
28 |
|
✗ |
.value("_3", _3) |
29 |
|
✗ |
.value("_4", _4); |
30 |
|
|
|
31 |
|
✗ |
bp::class_<CallbackVerbose, bp::bases<CallbackAbstract> >( |
32 |
|
|
"CallbackVerbose", "Callback function for printing the solver values.", |
33 |
|
✗ |
bp::init<bp::optional<VerboseLevel, std::size_t> >( |
34 |
|
✗ |
bp::args("self", "level", "precision"), |
35 |
|
|
"Initialize the differential verbose callback.\n\n" |
36 |
|
|
":param level: verbose level (default _4)\n" |
37 |
|
|
":param precision: precision of floating point output (default 5)")) |
38 |
|
✗ |
.def("__call__", &CallbackVerbose::operator(), bp::args("self", "solver"), |
39 |
|
|
"Run the callback function given a solver.\n\n" |
40 |
|
|
":param solver: solver to be diagnostic") |
41 |
|
✗ |
.add_property("level", &CallbackVerbose::get_level, |
42 |
|
|
&CallbackVerbose::set_level, "verbose level") |
43 |
|
✗ |
.add_property("precision", &CallbackVerbose::get_precision, |
44 |
|
|
&CallbackVerbose::set_precision, "precision") |
45 |
|
✗ |
.def(CopyableVisitor<CallbackVerbose>()); |
46 |
|
|
#endif |
47 |
|
|
} |
48 |
|
|
|
49 |
|
|
} // namespace python |
50 |
|
|
} // namespace crocoddyl |
51 |
|
|
|