main.cpp 1.3 KB

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