expose-eigen-types.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020-2021 INRIA
3 //
4 
8 
9 #include <eigenpy/eigenpy.hpp>
10 #include <eigenpy/memory.hpp>
11 
12 #include <Eigen/Geometry>
13 #include <eigenpy/geometry.hpp>
14 #include <eigenpy/quaternion.hpp>
15 #include <eigenpy/angle-axis.hpp>
16 
17 #include <eigenpy/user-type.hpp>
18 #include <eigenpy/ufunc.hpp>
19 
20 namespace pinocchio
21 {
22  namespace python
23  {
24 
25  namespace bp = boost::python;
26 
27  namespace internal
28  {
29  template<
30  typename Scalar,
31  bool is_numpy_native_type =
34  {
35  static void run() {};
36  };
37 
38  template<typename Scalar>
39  struct exposeTypeAlgo<Scalar, false>
40  {
41  static void run()
42  {
43  eigenpy::exposeType<context::Scalar>();
44  eigenpy::exposeType<context::Scalar, Eigen::RowMajor>();
45  };
46  };
47 
48  template<typename Scalar>
49  void exposeType()
50  {
52  }
53  } // namespace internal
54 
56  {
57 #ifndef PINOCCHIO_PYTHON_SKIP_COMPARISON_OPERATIONS
58  if (!register_symbolic_link_to_registered_type<context::Quaternion>())
59  eigenpy::expose<context::Quaternion>();
60  if (!register_symbolic_link_to_registered_type<context::AngleAxis>())
61  eigenpy::expose<context::AngleAxis>();
62 #endif
63 
64  typedef Eigen::Matrix<context::Scalar, 6, 6, context::Options> Matrix6s;
65  typedef Eigen::Matrix<context::Scalar, 6, 1, context::Options> Vector6s;
66  typedef Eigen::Matrix<context::Scalar, 6, Eigen::Dynamic, context::Options> Matrix6xs;
67  typedef Eigen::Matrix<context::Scalar, 3, Eigen::Dynamic, context::Options> Matrix3xs;
68 
69  internal::exposeType<context::Scalar>();
70  eigenpy::enableEigenPySpecific<context::Matrix1s>();
71  eigenpy::enableEigenPySpecific<Matrix6s>();
72  eigenpy::enableEigenPySpecific<Vector6s>();
73  eigenpy::enableEigenPySpecific<context::Vector7s>();
74  eigenpy::enableEigenPySpecific<Matrix6xs>();
75  eigenpy::enableEigenPySpecific<Matrix3xs>();
76  }
77 
78  } // namespace python
79 } // namespace pinocchio
boost::python
eigenpy.hpp
registration.hpp
pinocchio::python::Scalar
context::Scalar Scalar
Definition: admm-solver.cpp:29
pinocchio::python::internal::exposeTypeAlgo::run
static void run()
Definition: expose-eigen-types.cpp:35
pinocchio::python::internal::exposeType
void exposeType()
Definition: expose-eigen-types.cpp:49
python
eigenpy::NumpyEquivalentType
user-type.hpp
angle-axis.hpp
pinocchio::context::Matrix6xs
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6xs
Definition: context/generic.hpp:48
pinocchio::python::internal::exposeTypeAlgo
Definition: expose-eigen-types.cpp:33
ufunc.hpp
memory.hpp
fwd.hpp
std-vector.hpp
quaternion.hpp
pinocchio::python::exposeEigenTypes
void exposeEigenTypes()
Definition: expose-eigen-types.cpp:55
geometry.hpp
pinocchio::python::internal::exposeTypeAlgo< Scalar, false >::run
static void run()
Definition: expose-eigen-types.cpp:41
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Fri Nov 1 2024 02:41:43