4#ifndef __pinocchio_python_extra_extras_hpp__
5#define __pinocchio_python_extra_extras_hpp__
7#include "pinocchio/visualizers/base-visualizer.hpp"
8#include "pinocchio/bindings/python/fwd.hpp"
10#include <eigenpy/optional.hpp>
16 namespace bp = boost::python;
18 template<
class Visualizer>
19 struct VisualizerPythonVisitor : bp::def_visitor<VisualizerPythonVisitor<Visualizer>>
22 typedef ::pinocchio::visualizers::ConstMatrixRef ConstMatrixRef;
24 std::is_base_of<Base, Visualizer>::value,
25 "Visualizer class must be derived from pinocchio::visualizers::BaseVisualizer.");
27 static void setCameraPose_proxy(Visualizer & vis,
const Base::Matrix4 & pose)
29 vis.setCameraPose(pose);
32 static void setCameraPose_proxy2(Visualizer & vis,
const SE3 & pose)
34 vis.setCameraPose(pose);
37 static void play_proxy2(Visualizer & vis,
const ConstMatrixRef & qs, context::Scalar dt)
42 template<
class... PyArgs>
43 void visit(bp::class_<PyArgs...> & cl)
const
45 using ::pinocchio::visualizers::ConstVectorRef;
46 eigenpy::OptionalConverter<ConstVectorRef, boost::optional>::registration();
49#define DEF_PROP_PROXY(name) \
53 +[](Visualizer & v) -> auto & { return v.name(); }, bp::return_internal_reference<>()))
55 cl.def(
"initViewer", &Visualizer::initViewer)
56 .def(
"loadViewerModel", &Visualizer::loadViewerModel)
57 .def(
"rebuildData", &Visualizer::rebuildData)
59 "display", +[](Visualizer & v,
const ConstVectorRef & q) { v.display(q); },
60 (bp::arg(
"self"), bp::arg(
"q") = boost::none))
61 .def(
"play", play_proxy2, (bp::arg(
"self"),
"qs",
"dt"))
62 .def(
"setCameraTarget", &Visualizer::setCameraTarget, (bp::arg(
"self"),
"target"))
63 .def(
"setCameraPosition", &Visualizer::setCameraPosition, (bp::arg(
"self"),
"position"))
64 .def(
"setCameraPose", setCameraPose_proxy, (bp::arg(
"self"),
"pose"))
65 .def(
"setCameraPose", setCameraPose_proxy2, (bp::arg(
"self"),
"pose"))
66 .def(
"setCameraZoom", &Visualizer::setCameraZoom, (bp::arg(
"self"),
"value"))
67 .def(
"clean", &Visualizer::clean, bp::arg(
"self"))
68 .def(
"hasExternalData", &Visualizer::hasExternalData)
69 .DEF_PROP_PROXY(model)
70 .DEF_PROP_PROXY(visualModel)
71 .DEF_PROP_PROXY(collisionModel)
73 .DEF_PROP_PROXY(visualData)
74 .DEF_PROP_PROXY(collisionData);
A base class for defining visualizers for Pinocchio in C++. This provides basic building blocks (a ba...
Main pinocchio namespace.