py_slice.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. // This file is part of libigl, a simple c++ geometry processing library.
  2. //
  3. // Copyright (C) 2017 Sebastian Koch <s.koch@tu-berlin.de> and Daniele Panozzo <daniele.panozzo@gmail.com>
  4. //
  5. // This Source Code Form is subject to the terms of the Mozilla Public License
  6. // v. 2.0. If a copy of the MPL was not distributed with this file, You can
  7. // obtain one at http://mozilla.org/MPL/2.0/.
  8. // // Double
  9. //
  10. m.def("slice", []
  11. (
  12. const Eigen::SparseMatrix<double>& X,
  13. const Eigen::MatrixXi& R,
  14. const Eigen::MatrixXi& C,
  15. Eigen::SparseMatrix<double>& Y
  16. )
  17. {
  18. assert_is_VectorX("R",R);
  19. assert_is_VectorX("C",C);
  20. return igl::slice(X,R,C,Y);
  21. }, __doc_igl_slice,
  22. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  23. m.def("slice", []
  24. (
  25. const Eigen::SparseMatrix<double>& X,
  26. const Eigen::MatrixXi& R,
  27. const int& dim,
  28. Eigen::SparseMatrix<double>& Y
  29. )
  30. {
  31. assert_is_VectorX("R",R);
  32. return igl::slice(X,R,dim,Y);
  33. }, __doc_igl_slice,
  34. py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
  35. m.def("slice", []
  36. (
  37. const Eigen::MatrixXd& X,
  38. const Eigen::MatrixXi& R,
  39. const Eigen::MatrixXi& C,
  40. Eigen::MatrixXd& Y
  41. )
  42. {
  43. assert_is_VectorX("R",R);
  44. assert_is_VectorX("C",C);
  45. return igl::slice(X,R,C,Y);
  46. }, __doc_igl_slice,
  47. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  48. m.def("slice", []
  49. (
  50. const Eigen::MatrixXd& X,
  51. const Eigen::MatrixXi& R,
  52. const int dim,
  53. Eigen::MatrixXd& Y
  54. )
  55. {
  56. assert_is_VectorX("R",R);
  57. return igl::slice(X,R,dim,Y);
  58. }, __doc_igl_slice,
  59. py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
  60. m.def("slice", []
  61. (
  62. const Eigen::MatrixXd& X,
  63. const Eigen::MatrixXi& R,
  64. Eigen::MatrixXd& Y
  65. )
  66. {
  67. assert_is_VectorX("R",R);
  68. return igl::slice(X,R,Y);
  69. }, __doc_igl_slice,
  70. py::arg("X"), py::arg("R"), py::arg("Y"));
  71. m.def("slice", []
  72. (
  73. const Eigen::MatrixXd& X,
  74. const Eigen::MatrixXi& R
  75. )
  76. {
  77. assert_is_VectorX("R",R);
  78. return igl::slice(X,R);
  79. }, __doc_igl_slice,
  80. py::arg("X"), py::arg("A"));
  81. m.def("slice", []
  82. (
  83. const Eigen::MatrixXd& X,
  84. const Eigen::MatrixXi& R,
  85. const int& dim
  86. )
  87. {
  88. assert_is_VectorX("R",R);
  89. return igl::slice(X,R,dim);
  90. }, __doc_igl_slice,
  91. py::arg("X"), py::arg("R"), py::arg("dim"));
  92. // int
  93. m.def("slice", []
  94. (
  95. const Eigen::SparseMatrix<int>& X,
  96. const Eigen::MatrixXi& R,
  97. const Eigen::MatrixXi& C,
  98. Eigen::SparseMatrix<int>& Y
  99. )
  100. {
  101. assert_is_VectorX("R",R);
  102. assert_is_VectorX("C",C);
  103. return igl::slice(X,R,C,Y);
  104. }, __doc_igl_slice,
  105. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  106. m.def("slice", []
  107. (
  108. const Eigen::SparseMatrix<int>& X,
  109. const Eigen::MatrixXi& R,
  110. const int& dim,
  111. Eigen::SparseMatrix<int>& Y
  112. )
  113. {
  114. assert_is_VectorX("R",R);
  115. return igl::slice(X,R,dim,Y);
  116. }, __doc_igl_slice,
  117. py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
  118. m.def("slice", []
  119. (
  120. const Eigen::MatrixXi& X,
  121. const Eigen::MatrixXi& R,
  122. const Eigen::MatrixXi& C,
  123. Eigen::MatrixXi& Y
  124. )
  125. {
  126. assert_is_VectorX("R",R);
  127. assert_is_VectorX("C",C);
  128. return igl::slice(X,R,C,Y);
  129. }, __doc_igl_slice,
  130. py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
  131. m.def("slice", []
  132. (
  133. const Eigen::MatrixXi& X,
  134. const Eigen::MatrixXi& R,
  135. Eigen::MatrixXi& Y
  136. )
  137. {
  138. assert_is_VectorX("R",R);
  139. return igl::slice(X,R,Y);
  140. }, __doc_igl_slice,
  141. py::arg("X"), py::arg("R"), py::arg("Y"));
  142. m.def("slice", []
  143. (
  144. const Eigen::MatrixXi& X,
  145. const Eigen::MatrixXi& R
  146. )
  147. {
  148. assert_is_VectorX("R",R);
  149. return igl::slice(X,R);
  150. }, __doc_igl_slice,
  151. py::arg("X"), py::arg("R"));
  152. m.def("slice", []
  153. (
  154. const Eigen::MatrixXi& X,
  155. const Eigen::MatrixXi& R,
  156. const int& dim
  157. )
  158. {
  159. assert_is_VectorX("R",R);
  160. return igl::slice(X,R,dim);
  161. }, __doc_igl_slice,
  162. py::arg("X"), py::arg("R"), py::arg("dim"));