py_forward_kinematics.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //m.def("forward_kinematics", []
  2. //(
  3. // const Eigen::MatrixXd& C,
  4. // const Eigen::MatrixXi& BE,
  5. // const Eigen::MatrixXi& P,
  6. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & dQ,
  7. // std::vector<Eigen::Vector3d> & dT,
  8. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & vQ,
  9. // std::vector<Eigen::Vector3d> & vT
  10. //)
  11. //{
  12. // return igl::forward_kinematics(C, BE, P, dQ, dT, vQ, vT);
  13. //}, __doc_igl_forward_kinematics,
  14. //py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("dT"), py::arg("vQ"), py::arg("vT"));
  15. m.def("forward_kinematics", []
  16. (
  17. const Eigen::MatrixXd& C,
  18. const Eigen::MatrixXi& BE,
  19. const Eigen::MatrixXi& P,
  20. const std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > dQ,
  21. py::list vQ,
  22. py::list vT
  23. )
  24. {
  25. std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > vQl;
  26. std::vector<Eigen::Vector3d> vTl;
  27. igl::forward_kinematics(C, BE, P, dQ, vQl, vTl);
  28. for (auto item : vQl) {
  29. py::object obj = py::cast(item);
  30. vQ.append(obj);
  31. }
  32. for (auto item : vTl) {
  33. py::object obj = py::cast(Eigen::MatrixXd(item));
  34. vT.append(obj);
  35. }
  36. }, __doc_igl_forward_kinematics,
  37. py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("vQ"), py::arg("vT"));
  38. //m.def("forward_kinematics", []
  39. //(
  40. // const Eigen::MatrixXd& C,
  41. // const Eigen::MatrixXi& BE,
  42. // const Eigen::MatrixXi& P,
  43. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & dQ,
  44. // std::vector<Eigen::Vector3d> & dT,
  45. // Eigen::MatrixXd& T
  46. //)
  47. //{
  48. // return igl::forward_kinematics(C, BE, P, dQ, dT, T);
  49. //}, __doc_igl_forward_kinematics,
  50. //py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("dT"), py::arg("T"));
  51. //m.def("forward_kinematics", []
  52. //(
  53. // const Eigen::MatrixXd& C,
  54. // const Eigen::MatrixXi& BE,
  55. // const Eigen::MatrixXi& P,
  56. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & dQ,
  57. // Eigen::MatrixXd& T
  58. //)
  59. //{
  60. // return igl::forward_kinematics(C, BE, P, dQ, T);
  61. //}, __doc_igl_forward_kinematics,
  62. //py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("T"));