Skip to content

Commit bacb2df

Browse files
authored
Merge pull request #2796 from ManifoldFR/topic/visualizer-expose-play-overload
bindings/python/visualizers : add overload for `BaseVisualizer::play()` in `VisualizerPythonVisitor`
2 parents 0fccb6d + 3a09fb8 commit bacb2df

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
1414
- Add docker images ([#2776](https://github.com/stack-of-tasks/pinocchio/pull/2776))
1515
- ROS: added jrl_cmakemodules dependency ([#2789](https://github.com/stack-of-tasks/pinocchio/pull/2789))
1616
- Removed CMake < 3.22 details ([#2790](https://github.com/stack-of-tasks/pinocchio/pull/2790))
17+
- Python : add overload of `BaseVisualizer::play()` to `VisualizerPythonVisitor` ([#2796](https://github.com/stack-of-tasks/pinocchio/pull/2796))
1718

1819
### Added
1920
- Add names to joints that are inside a composite joint ([#2786](https://github.com/stack-of-tasks/pinocchio/pull/2786))

include/pinocchio/bindings/python/visualizers/visualizer-visitor.hpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "pinocchio/bindings/python/fwd.hpp"
99

1010
#include <eigenpy/optional.hpp>
11+
#include <eigenpy/std-vector.hpp>
1112

1213
namespace 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

Comments
 (0)