is_intrinsic_delaunay.cpp 854 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <test_common.h>
  2. #include <igl/is_intrinsic_delaunay.h>
  3. #include <igl/edge_lengths.h>
  4. TEST_CASE("is_intrinsic_delaunay: two_triangles", "[igl]")
  5. {
  6. const Eigen::MatrixXd V =
  7. (Eigen::MatrixXd(4,2)<<
  8. 0,10,
  9. 1,0,
  10. 1,20,
  11. 2,10).finished();
  12. const Eigen::MatrixXi FD =
  13. (Eigen::MatrixXi(2,3)<<
  14. 0,1,3,
  15. 0,3,2).finished();
  16. Eigen::Matrix<bool,Eigen::Dynamic,Eigen::Dynamic> DD,DN;
  17. Eigen::MatrixXd lD;
  18. igl::edge_lengths(V,FD,lD);
  19. igl::is_intrinsic_delaunay(lD,FD,DD);
  20. for(int f=0;f<DD.rows();f++)
  21. {
  22. for(int c=0;c<DD.cols();c++)
  23. {
  24. REQUIRE (DD(f,c));
  25. }
  26. }
  27. const Eigen::MatrixXi FN =
  28. (Eigen::MatrixXi(2,3)<<
  29. 0,1,2,
  30. 2,1,3).finished();
  31. Eigen::MatrixXd lN;
  32. igl::edge_lengths(V,FN,lN);
  33. igl::is_intrinsic_delaunay(lN,FN,DN);
  34. REQUIRE (!DN(0,0));
  35. REQUIRE (!DN(1,2));
  36. }