euler_characteristic.h 774 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <test_common.h>
  2. #include <igl/euler_characteristic.h>
  3. TEST_CASE("euler_characteristic: cube", "[igl]" )
  4. {
  5. Eigen::MatrixXi F(12,3);
  6. F <<
  7. 0,1,2,
  8. 0,2,3,
  9. 0,4,5,
  10. 0,5,1,
  11. 0,3,7,
  12. 0,7,4,
  13. 6,5,4,
  14. 6,4,7,
  15. 6,7,3,
  16. 6,3,2,
  17. 6,2,1,
  18. 6,1,5;
  19. const int chi = igl::euler_characteristic(F);
  20. REQUIRE(chi == 2);
  21. }
  22. TEST_CASE("euler_characteristic: square", "[igl]" )
  23. {
  24. Eigen::MatrixXi F;
  25. igl::triangulated_grid(3,3,F);
  26. const int chi = igl::euler_characteristic(F);
  27. REQUIRE(chi == 1);
  28. }
  29. TEST_CASE("euler_characteristic: torus", "[igl]" )
  30. {
  31. Eigen::MatrixXd V;
  32. Eigen::MatrixXi F;
  33. igl::read_triangle_mesh(test_common::data_path("TinyTorus.obj"), V, F);
  34. const int chi = igl::euler_characteristic(F);
  35. REQUIRE(chi == 0);
  36. }