main.cpp 916 B

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