visualizer-visitor.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2024-2025 INRIA
3 //
4 #ifndef __pinocchio_python_extra_extras_hpp__
5 #define __pinocchio_python_extra_extras_hpp__
6 
9 
10 #include <eigenpy/optional.hpp>
11 
12 namespace pinocchio
13 {
14  namespace python
15  {
16  namespace bp = boost::python;
17 
18  template<class Visualizer>
19  struct VisualizerPythonVisitor : bp::def_visitor<VisualizerPythonVisitor<Visualizer>>
20  {
21  typedef ::pinocchio::visualizers::BaseVisualizer Base;
23  static_assert(
24  std::is_base_of<Base, Visualizer>::value,
25  "Visualizer class must be derived from pinocchio::visualizers::BaseVisualizer.");
26 
27  static void setCameraPose_proxy(Visualizer & vis, const Base::Matrix4 & pose)
28  {
29  vis.setCameraPose(pose);
30  }
31 
32  static void setCameraPose_proxy2(Visualizer & vis, const SE3 & pose)
33  {
34  vis.setCameraPose(pose);
35  }
36 
37  static void play_proxy2(Visualizer & vis, const ConstMatrixRef & qs, context::Scalar dt)
38  {
39  vis.play(qs, dt);
40  }
41 
42  template<class... PyArgs>
43  void visit(bp::class_<PyArgs...> & cl) const
44  {
47 
48 // convenience macro to use a lambda -- passing &Visualizer::<getter-fun> doesn't work
49 #define DEF_PROP_PROXY(name) \
50  add_property( \
51  #name, \
52  bp::make_function( \
53  +[](Visualizer & v) -> auto & { return v.name(); }, bp::return_internal_reference<>()))
54 
55  cl.def("initViewer", &Visualizer::initViewer)
56  .def("loadViewerModel", &Visualizer::loadViewerModel)
57  .def("rebuildData", &Visualizer::rebuildData)
58  .def(
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)
72  .DEF_PROP_PROXY(data)
73  .DEF_PROP_PROXY(visualData)
74  .DEF_PROP_PROXY(collisionData);
75 #undef DEF_PROP_PROXY
76  }
77  };
78 
79  } // namespace python
80 } // namespace pinocchio
81 
82 #endif // #ifndef __pinocchio_python_extra_extras_hpp__
optional.hpp
pinocchio::python::VisualizerPythonVisitor::Base
::pinocchio::visualizers::BaseVisualizer Base
Definition: visualizer-visitor.hpp:21
boost::python
pinocchio::python::VisualizerPythonVisitor::setCameraPose_proxy
static void setCameraPose_proxy(Visualizer &vis, const Base::Matrix4 &pose)
Definition: visualizer-visitor.hpp:27
base-visualizer.hpp
pinocchio::visualizers::ConstMatrixRef
Eigen::Ref< const MatrixXs > ConstMatrixRef
Definition: base-visualizer.hpp:24
pinocchio::SE3
context::SE3 SE3
Definition: spatial/fwd.hpp:59
pinocchio::python::VisualizerPythonVisitor::setCameraPose_proxy2
static void setCameraPose_proxy2(Visualizer &vis, const SE3 &pose)
Definition: visualizer-visitor.hpp:32
setup.data
data
Definition: cmake/cython/setup.in.py:48
def
void def(const char *name, Func func)
pinocchio::visualizers::BaseVisualizer::Matrix4
SE3::Matrix4 Matrix4
Definition: base-visualizer.hpp:37
pinocchio::python::VisualizerPythonVisitor::ConstMatrixRef
::pinocchio::visualizers::ConstMatrixRef ConstMatrixRef
Definition: visualizer-visitor.hpp:22
pinocchio::python::VisualizerPythonVisitor
Definition: visualizer-visitor.hpp:19
python
pinocchio::python::v
const Vector3Like & v
Definition: bindings/python/spatial/explog.hpp:66
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::python::VisualizerPythonVisitor::visit
void visit(bp::class_< PyArgs... > &cl) const
Definition: visualizer-visitor.hpp:43
eigenpy::OptionalConverter::registration
static void registration()
cl
cl
fwd.hpp
pinocchio::python::VisualizerPythonVisitor::play_proxy2
static void play_proxy2(Visualizer &vis, const ConstMatrixRef &qs, context::Scalar dt)
Definition: visualizer-visitor.hpp:37
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
pinocchio::visualizers::ConstVectorRef
Eigen::Ref< const VectorXs > ConstVectorRef
Definition: base-visualizer.hpp:23
cartpole.dt
float dt
Definition: cartpole.py:145
pinocchio::python::context::Scalar
PINOCCHIO_PYTHON_SCALAR_TYPE Scalar
Definition: bindings/python/context/generic.hpp:37
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1082
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33


pinocchio
Author(s):
autogenerated on Tue Apr 22 2025 02:41:21