triangulated_grid.cpp 625 B

1234567891011121314151617181920212223
  1. #include <test_common.h>
  2. #include <igl/triangulated_grid.h>
  3. #include <igl/doublearea.h>
  4. TEST_CASE("triangulated_grid: area", "[igl]")
  5. {
  6. Eigen::MatrixXd V;
  7. Eigen::MatrixXi F;
  8. const int nx = 4;
  9. const int ny = 7;
  10. igl::triangulated_grid(nx,ny,V,F);
  11. REQUIRE (nx*ny == V.rows());
  12. REQUIRE (2*(nx-1)*(ny-1) == F.rows());
  13. Eigen::VectorXd dblA;
  14. igl::doublearea(V,F,dblA);
  15. REQUIRE (2.0 == Approx (dblA.array().sum()).margin(1e-10));
  16. const Eigen::VectorXd dblAgt =
  17. Eigen::VectorXd::Constant(
  18. 2*(nx-1)*(ny-1),
  19. 1,
  20. 2.0/double(2*(nx-1)*(ny-1)));
  21. test_common::assert_near(dblA,dblAgt,1e-10);
  22. }