main.cpp 1.2 KB

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