main.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <igl/readOFF.h>
  2. #include <igl/viewer/Viewer.h>
  3. #include <nanogui/formscreen.h>
  4. #include <iostream>
  5. Eigen::MatrixXd V;
  6. Eigen::MatrixXi F;
  7. bool boolVariable = true;
  8. float floatVariable = 0.1f;
  9. int main(int argc, char *argv[])
  10. {
  11. // Load a mesh in OFF format
  12. igl::readOFF("../shared/bunny.off", V, F);
  13. // Init the viewer
  14. igl::viewer::Viewer viewer;
  15. // Extend viewer menu
  16. viewer.callback_init = [&](igl::viewer::Viewer& viewer)
  17. {
  18. // Add new group
  19. viewer.ngui->addNewGroup("New Group");
  20. // Expose variable directly ...
  21. viewer.ngui->addVariable(floatVariable,"float");
  22. // ... or using a custom callback
  23. viewer.ngui->addVariable([&](bool val) {
  24. boolVariable = val; // set
  25. },[&]() {
  26. return boolVariable; // get
  27. },"bool",true);
  28. // Add a button
  29. viewer.ngui->addButton("Print Hello",[](){ std::cout << "Hello\n"; });
  30. // Add an additional bar
  31. viewer.ngui->addNewWindow(Eigen::Vector2i(220,10),"New Window");
  32. // Expose the same variable directly ...
  33. viewer.ngui->addVariable(floatVariable,"float");
  34. // Generate menu
  35. viewer.ngui->layout();
  36. return false;
  37. };
  38. // Plot the mesh
  39. viewer.data.set_mesh(V, F);
  40. viewer.launch();
  41. }