py_forward_kinematics.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 RotationList& dQ,
  21. RotationList& vQ,
  22. py::list vT
  23. )
  24. {
  25. std::vector<Eigen::Vector3d> vTl;
  26. igl::forward_kinematics(C, BE, P, dQ, vQ, vTl);
  27. for (auto item : vTl) {
  28. py::object obj = py::cast(Eigen::MatrixXd(item));
  29. vT.append(obj);
  30. }
  31. }, __doc_igl_forward_kinematics,
  32. py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("vQ"), py::arg("vT"));
  33. //m.def("forward_kinematics", []
  34. //(
  35. // const Eigen::MatrixXd& C,
  36. // const Eigen::MatrixXi& BE,
  37. // const Eigen::MatrixXi& P,
  38. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & dQ,
  39. // std::vector<Eigen::Vector3d> & dT,
  40. // Eigen::MatrixXd& T
  41. //)
  42. //{
  43. // return igl::forward_kinematics(C, BE, P, dQ, dT, T);
  44. //}, __doc_igl_forward_kinematics,
  45. //py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("dT"), py::arg("T"));
  46. //m.def("forward_kinematics", []
  47. //(
  48. // const Eigen::MatrixXd& C,
  49. // const Eigen::MatrixXi& BE,
  50. // const Eigen::MatrixXi& P,
  51. // std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > & dQ,
  52. // Eigen::MatrixXd& T
  53. //)
  54. //{
  55. // return igl::forward_kinematics(C, BE, P, dQ, T);
  56. //}, __doc_igl_forward_kinematics,
  57. //py::arg("C"), py::arg("BE"), py::arg("P"), py::arg("dQ"), py::arg("T"));