STADLS
playback_generator.h
Go to the documentation of this file.
1 #pragma once
2 #include "stadls/vx/genpybind.h"
5 
7 
8 template <typename Result>
10 
11 template <typename... Ts>
12 auto generate(Ts&&... args) -> decltype(stadls::vx::generate(std::forward<Ts>(args)...))
13 {
14  return stadls::vx::generate(std::forward<Ts>(args)...);
15 }
16 
17 #if defined(__GENPYBIND__) or defined(__GENPYBIND_GENERATED__)
18 // only used for python
19 using PlaybackGenerator GENPYBIND(visible) = stadls::vx::PlaybackGenerator;
20 #endif
21 
22 GENPYBIND_MANUAL({
23  struct PyPlaybackGenerator : public ::stadls::vx::PlaybackGenerator
24  {
25  using ::stadls::vx::PlaybackGenerator::PlaybackGenerator;
26 
27  virtual pybind11::tuple generate() const override
28  {
29  PYBIND11_OVERLOAD_PURE(pybind11::tuple, ::stadls::vx::PlaybackGenerator, generate, );
30  }
31  };
32 
33  // clang-format off
34  parent->py::template class_<::stadls::vx::PlaybackGenerator, PyPlaybackGenerator>(
35  parent, "PlaybackGenerator")
36  .def(parent->py::template init<>())
37  .def("generate", &::stadls::vx::PlaybackGenerator::generate);
38  // clang-format on
39 
40  parent.def(
41  "generate", [](::stadls::vx::PlaybackGenerator const& self) { return self.generate(); },
42  pybind11::return_value_policy::move);
43 })
44 
45 } // namespace stadls::vx::v3
#define GENPYBIND_TAG_STADLS_VX_V3
Definition: genpybind.h:6
auto generate(Ts &&... args) -> decltype(stadls::vx::generate(std::forward< Ts >(args)...))
auto generate(Seq const &seq)
Generate function to be called on an object implementing the PlaybackGenerator concept.
Return type of generate() call on playback sequence.