main.cpp 841 B

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