py_slice.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. // // Double
  2. //
  3. m.def("slice", []
  4. (
  5. const Eigen::SparseMatrix<double>& X,
  6. const Eigen::MatrixXi& R,
  7. const Eigen::MatrixXi& C,
  8. Eigen::SparseMatrix<double>& Y
  9. )
  10. {
  11. assert_is_VectorX("R",R);
  12. assert_is_VectorX("C",C);
  13. return igl::slice(X,R,C,Y);
  14. }, __doc_igl_slice,
  15. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  16. m.def("slice", []
  17. (
  18. const Eigen::SparseMatrix<double>& X,
  19. const Eigen::MatrixXi& R,
  20. const int& dim,
  21. Eigen::SparseMatrix<double>& Y
  22. )
  23. {
  24. assert_is_VectorX("R",R);
  25. return igl::slice(X,R,dim,Y);
  26. }, __doc_igl_slice,
  27. py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
  28. m.def("slice", []
  29. (
  30. const Eigen::MatrixXd& X,
  31. const Eigen::MatrixXi& R,
  32. const Eigen::MatrixXi& C,
  33. Eigen::MatrixXd& Y
  34. )
  35. {
  36. assert_is_VectorX("R",R);
  37. assert_is_VectorX("C",C);
  38. return igl::slice(X,R,C,Y);
  39. }, __doc_igl_slice,
  40. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  41. m.def("slice", []
  42. (
  43. const Eigen::MatrixXd& X,
  44. const Eigen::MatrixXi& R,
  45. Eigen::MatrixXd& Y
  46. )
  47. {
  48. assert_is_VectorX("R",R);
  49. return igl::slice(X,R,Y);
  50. }, __doc_igl_slice,
  51. py::arg("X"), py::arg("R"), py::arg("Y"));
  52. // // TODO: problematic!
  53. // m.def("slice", []
  54. // (
  55. // const Eigen::MatrixXd& X,
  56. // const Eigen::MatrixXi& R
  57. // )
  58. // {
  59. // std::cerr << "Maybe also here?" << std::endl;
  60. // // assert_is_VectorX("R",R);
  61. // // return igl::slice(X,R);
  62. // return;
  63. // }, __doc_igl_slice,
  64. // py::arg("X"), py::arg("R"));
  65. m.def("slice", []
  66. (
  67. const Eigen::MatrixXd& X,
  68. const Eigen::MatrixXi& R,
  69. const int& dim
  70. )
  71. {
  72. assert_is_VectorX("R",R);
  73. return igl::slice(X,R,dim);
  74. }, __doc_igl_slice,
  75. py::arg("X"), py::arg("R"), py::arg("dim"));
  76. // int
  77. m.def("slice", []
  78. (
  79. const Eigen::SparseMatrix<int>& X,
  80. const Eigen::MatrixXi& R,
  81. const Eigen::MatrixXi& C,
  82. Eigen::SparseMatrix<int>& Y
  83. )
  84. {
  85. assert_is_VectorX("R",R);
  86. assert_is_VectorX("C",C);
  87. return igl::slice(X,R,C,Y);
  88. }, __doc_igl_slice,
  89. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  90. m.def("slice", []
  91. (
  92. const Eigen::SparseMatrix<int>& X,
  93. const Eigen::MatrixXi& R,
  94. const int& dim,
  95. Eigen::SparseMatrix<int>& Y
  96. )
  97. {
  98. assert_is_VectorX("R",R);
  99. return igl::slice(X,R,dim,Y);
  100. }, __doc_igl_slice,
  101. py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
  102. m.def("slice", []
  103. (
  104. const Eigen::MatrixXi& X,
  105. const Eigen::MatrixXi& R,
  106. const Eigen::MatrixXi& C,
  107. Eigen::MatrixXi& Y
  108. )
  109. {
  110. assert_is_VectorX("R",R);
  111. assert_is_VectorX("C",C);
  112. return igl::slice(X,R,C,Y);
  113. }, __doc_igl_slice,
  114. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  115. m.def("slice", []
  116. (
  117. const Eigen::MatrixXi& X,
  118. const Eigen::MatrixXi& R,
  119. Eigen::MatrixXi& Y
  120. )
  121. {
  122. assert_is_VectorX("R",R);
  123. return igl::slice(X,R,Y);
  124. }, __doc_igl_slice,
  125. py::arg("X"), py::arg("R"), py::arg("Y"));
  126. // TODO: Problematic
  127. // m.def("slice", []
  128. // (
  129. // const Eigen::MatrixXi& X,
  130. // const Eigen::MatrixXi& R
  131. // )
  132. // {
  133. // assert_is_VectorX("R",R);
  134. // return igl::slice(X,R);
  135. // }, __doc_igl_slice,
  136. // py::arg("X"), py::arg("R"));
  137. m.def("slice", []
  138. (
  139. const Eigen::MatrixXi& X,
  140. const Eigen::MatrixXi& R,
  141. const int& dim
  142. )
  143. {
  144. assert_is_VectorX("R",R);
  145. return igl::slice(X,R,dim);
  146. }, __doc_igl_slice,
  147. py::arg("X"), py::arg("R"), py::arg("dim"));