copyable.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2016-2023 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_python_utils_copyable_hpp__
6 #define __pinocchio_python_utils_copyable_hpp__
7 
8 #include <eigenpy/eigenpy.hpp>
9 
10 namespace pinocchio
11 {
12  namespace python
13  {
14 
15  namespace bp = boost::python;
16 
20  template<class C>
21  struct CopyableVisitor : public bp::def_visitor<CopyableVisitor<C>>
22  {
23  template<class PyClass>
24  void visit(PyClass & cl) const
25  {
26  cl.def("copy", &copy, bp::arg("self"), "Returns a copy of *this.");
27  cl.def("__copy__", &copy, bp::arg("self"), "Returns a copy of *this.");
28  cl.def(
29  "__deepcopy__", &deepcopy, bp::args("self", "memo"), "Returns a deep copy of *this.");
30  }
31 
32  private:
33  static C copy(const C & self)
34  {
35  return C(self);
36  }
37  static C deepcopy(const C & self, bp::dict)
38  {
39  return C(self);
40  }
41  };
42  } // namespace python
43 } // namespace pinocchio
44 
45 #endif // ifndef __pinocchio_python_utils_copyable_hpp__
boost::python
eigenpy.hpp
pinocchio::python::CopyableVisitor::deepcopy
static C deepcopy(const C &self, bp::dict)
Definition: copyable.hpp:37
dcrba.C
C
Definition: dcrba.py:491
python
pinocchio::python::CopyableVisitor
Add the Python method copy to allow a copy of this by calling the copy constructor.
Definition: copyable.hpp:21
pinocchio::python::CopyableVisitor::copy
static C copy(const C &self)
Definition: copyable.hpp:33
cl
cl
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27
pinocchio::python::CopyableVisitor::visit
void visit(PyClass &cl) const
Definition: copyable.hpp:24


pinocchio
Author(s):
autogenerated on Sun Dec 22 2024 03:41:08