principal_curvature.cpp 868 B

1234567891011121314151617181920212223242526272829
  1. #include <test_common.h>
  2. #include <igl/principal_curvature.h>
  3. #include <igl/cylinder.h>
  4. TEST_CASE("principal_curvature: cylinder", "[igl]")
  5. {
  6. using namespace igl;
  7. const int axis_devisions = 20;
  8. const int height_devisions = 20;
  9. Eigen::MatrixXd V;
  10. Eigen::MatrixXi F;
  11. cylinder(axis_devisions,height_devisions,V,F);
  12. Eigen::MatrixXd PD1,PD2;
  13. Eigen::VectorXd PV1,PV2;
  14. //PV1: maximal curvature value for each vertex.
  15. //PV2: minimal curvature value for each vertex.
  16. igl::principal_curvature(V,F,PD1,PD2,PV1,PV2);
  17. REQUIRE (PD1.rows() == V.rows());
  18. REQUIRE (PD2.rows() == V.rows());
  19. REQUIRE (PD1.cols() == 3);
  20. REQUIRE (PD2.cols() == 3);
  21. REQUIRE (PV1.size() == V.rows());
  22. REQUIRE (PV2.size() == V.rows());
  23. for(int i = 0; i<PV1.size(); ++i)
  24. {
  25. //max curvature is greater than or equal to min curvature
  26. REQUIRE (PV1[i]>=PV2[i]);
  27. }
  28. }