88#include " pinocchio/bindings/python/fwd.hpp"
99
1010#include < eigenpy/optional.hpp>
11+ #include < eigenpy/std-vector.hpp>
1112
1213namespace pinocchio
1314{
@@ -19,7 +20,6 @@ namespace pinocchio
1920 struct VisualizerPythonVisitor : bp::def_visitor<VisualizerPythonVisitor<Visualizer>>
2021 {
2122 typedef ::pinocchio::visualizers::BaseVisualizer Base;
22- typedef ::pinocchio::visualizers::ConstMatrixRef ConstMatrixRef;
2323 static_assert (
2424 std::is_base_of<Base, Visualizer>::value,
2525 " Visualizer class must be derived from pinocchio::visualizers::BaseVisualizer." );
@@ -34,7 +34,20 @@ namespace pinocchio
3434 vis.setCameraPose (pose);
3535 }
3636
37- static void play_proxy2 (Visualizer & vis, const ConstMatrixRef & qs, context::Scalar dt)
37+ static void play_proxy (
38+ Visualizer & vis, const std::vector<visualizers::VectorXs> & qs, context::Scalar dt)
39+ {
40+ std::vector<visualizers::ConstVectorRef> qs_;
41+ qs_.reserve (qs.size ());
42+ for (size_t i = 0 ; i < qs.size (); i++)
43+ {
44+ qs_.emplace_back (qs[i]);
45+ }
46+ vis.play (qs_, dt);
47+ }
48+
49+ static void
50+ play_proxy2 (Visualizer & vis, const visualizers::ConstMatrixRef & qs, context::Scalar dt)
3851 {
3952 vis.play (qs, dt);
4053 }
@@ -58,6 +71,7 @@ namespace pinocchio
5871 .def (
5972 " display" , +[](Visualizer & v, const ConstVectorRef & q) { v.display (q); },
6073 (bp::arg (" self" ), bp::arg (" q" ) = boost::none))
74+ .def (" play" , play_proxy, (bp::arg (" self" ), " qs" , " dt" ))
6175 .def (" play" , play_proxy2, (bp::arg (" self" ), " qs" , " dt" ))
6276 .def (" setCameraTarget" , &Visualizer::setCameraTarget, (bp::arg (" self" ), " target" ))
6377 .def (" setCameraPosition" , &Visualizer::setCameraPosition, (bp::arg (" self" ), " position" ))
0 commit comments