main.cpp 993 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <igl/barycenter.h>
  2. #include <igl/colon.h>
  3. #include <igl/jet.h>
  4. #include <igl/readOFF.h>
  5. #include <igl/slice_into.h>
  6. #include <igl/sortrows.h>
  7. #include <igl/viewer/Viewer.h>
  8. #include <iostream>
  9. #include "tutorial_shared_path.h"
  10. int main(int argc, char *argv[])
  11. {
  12. using namespace Eigen;
  13. using namespace std;
  14. MatrixXd V;
  15. MatrixXi F;
  16. igl::readOFF(TUTORIAL_SHARED_PATH "/decimated-knight.off",V,F);
  17. // Sort barycenters lexicographically
  18. MatrixXd BC,sorted_BC;
  19. igl::barycenter(V,F,BC);
  20. VectorXi I,J;
  21. // sorted_BC = BC(I,:)
  22. igl::sortrows(BC,true,sorted_BC,I);
  23. // Get sorted "place" from sorted indices
  24. J.resize(I.rows());
  25. // J(I) = 1:numel(I)
  26. igl::slice_into(igl::colon<int>(0,I.size()-1),I,J);
  27. // Pseudo-color based on sorted place
  28. MatrixXd C;
  29. igl::jet(J,true,C);
  30. // Plot the mesh with pseudocolors
  31. igl::viewer::Viewer viewer;
  32. viewer.data.set_mesh(V, F);
  33. viewer.data.set_colors(C);
  34. viewer.launch();
  35. }