max_faces_stopping_condition.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "max_faces_stopping_condition.h"
  2. IGL_INLINE void igl::max_faces_stopping_condition(
  3. int & m,
  4. const int max_m,
  5. std::function<bool(
  6. const Eigen::MatrixXd &,
  7. const Eigen::MatrixXi &,
  8. const Eigen::MatrixXi &,
  9. const Eigen::VectorXi &,
  10. const Eigen::MatrixXi &,
  11. const Eigen::MatrixXi &,
  12. const std::set<std::pair<double,int> > &,
  13. const std::vector<std::set<std::pair<double,int> >::iterator > &,
  14. const Eigen::MatrixXd &,
  15. const int,
  16. const int,
  17. const int,
  18. const int,
  19. const int)> & stopping_condition)
  20. {
  21. stopping_condition =
  22. [max_m,&m](
  23. const Eigen::MatrixXd &,
  24. const Eigen::MatrixXi &,
  25. const Eigen::MatrixXi &,
  26. const Eigen::VectorXi &,
  27. const Eigen::MatrixXi &,
  28. const Eigen::MatrixXi &,
  29. const std::set<std::pair<double,int> > &,
  30. const std::vector<std::set<std::pair<double,int> >::iterator > &,
  31. const Eigen::MatrixXd &,
  32. const int,
  33. const int,
  34. const int,
  35. const int,
  36. const int)->bool
  37. {
  38. m-=2;
  39. return m<=(int)max_m;
  40. };
  41. }
  42. IGL_INLINE
  43. std::function<bool(
  44. const Eigen::MatrixXd &,
  45. const Eigen::MatrixXi &,
  46. const Eigen::MatrixXi &,
  47. const Eigen::VectorXi &,
  48. const Eigen::MatrixXi &,
  49. const Eigen::MatrixXi &,
  50. const std::set<std::pair<double,int> > &,
  51. const std::vector<std::set<std::pair<double,int> >::iterator > &,
  52. const Eigen::MatrixXd &,
  53. const int,
  54. const int,
  55. const int,
  56. const int,
  57. const int)>
  58. igl::max_faces_stopping_condition(
  59. int & m,
  60. const int max_m)
  61. {
  62. std::function<bool(
  63. const Eigen::MatrixXd &,
  64. const Eigen::MatrixXi &,
  65. const Eigen::MatrixXi &,
  66. const Eigen::VectorXi &,
  67. const Eigen::MatrixXi &,
  68. const Eigen::MatrixXi &,
  69. const std::set<std::pair<double,int> > &,
  70. const std::vector<std::set<std::pair<double,int> >::iterator > &,
  71. const Eigen::MatrixXd &,
  72. const int,
  73. const int,
  74. const int,
  75. const int,
  76. const int)> stopping_condition;
  77. max_faces_stopping_condition(
  78. m,max_m,stopping_condition);
  79. return stopping_condition;
  80. }