-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathexpose-visualizer.cpp
More file actions
41 lines (35 loc) · 1.6 KB
/
expose-visualizer.cpp
File metadata and controls
41 lines (35 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "fwd.hpp"
#include <eigenpy/optional.hpp>
#include "candlewick/multibody/Visualizer.h"
#include <pinocchio/bindings/python/visualizers/visualizer-visitor.hpp>
#include <pinocchio/config.hpp>
#include <pinocchio/multibody/model.hpp>
#include <pinocchio/multibody/geometry.hpp>
using namespace candlewick::multibody;
#define DEF_PROP_PROXY(name) \
add_property(#name, bp::make_function( \
+[](Visualizer &v) -> auto & { return v.name(); }, \
bp::return_internal_reference<>()))
void exposeVisualizer() {
eigenpy::OptionalConverter<ConstVectorRef, std::optional>::registration();
bp::class_<Visualizer::Config>("VisualizerConfig", bp::init<>())
.def_readwrite("width", &Visualizer::Config::width)
.def_readwrite("height", &Visualizer::Config::height);
bp::class_<Visualizer, boost::noncopyable>("Visualizer", bp::no_init)
.def(bp::init<Visualizer::Config, const pin::Model &,
const pin::GeometryModel &>(
("self"_a, "config", "model", "geomModel")))
.def(pinocchio::python::VisualizerPythonVisitor<Visualizer>{})
.def_readonly("renderer", &Visualizer::renderer)
// fix for Pinocchio 3.5.0
#if PINOCCHIO_VERSION_AT_MOST(3, 5, 0)
.DEF_PROP_PROXY(model)
.DEF_PROP_PROXY(visualModel)
.DEF_PROP_PROXY(collisionModel)
.DEF_PROP_PROXY(data)
.DEF_PROP_PROXY(visualData)
.DEF_PROP_PROXY(collisionData)
#endif
.add_property("shouldExit", &Visualizer::shouldExit);
}
#undef DEF_PROP_PROXY