main.cpp 806 B

123456789101112131415161718192021222324252627282930
  1. #include <igl/gaussian_curvature.h>
  2. #include <igl/massmatrix.h>
  3. #include <igl/invert_diag.h>
  4. #include <igl/readOFF.h>
  5. #include <igl/opengl/glfw/Viewer.h>
  6. int main(int argc, char *argv[])
  7. {
  8. using namespace Eigen;
  9. using namespace std;
  10. MatrixXd V;
  11. MatrixXi F;
  12. igl::readOFF(TUTORIAL_SHARED_PATH "/bumpy.off",V,F);
  13. VectorXd K;
  14. // Compute integral of Gaussian curvature
  15. igl::gaussian_curvature(V,F,K);
  16. // Compute mass matrix
  17. SparseMatrix<double> M,Minv;
  18. igl::massmatrix(V,F,igl::MASSMATRIX_TYPE_DEFAULT,M);
  19. igl::invert_diag(M,Minv);
  20. // Divide by area to get integral average
  21. K = (Minv*K).eval();
  22. // Plot the mesh with pseudocolors
  23. igl::opengl::glfw::Viewer viewer;
  24. viewer.data().set_mesh(V, F);
  25. viewer.data().set_data(K);
  26. viewer.launch();
  27. }