CMakeLists.txt 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # Choose which chapters to compile
  2. option(LIBIGL_TUTORIALS_CHAPTER1 "Compile libigl tutorials chapter 1" ON)
  3. option(LIBIGL_TUTORIALS_CHAPTER2 "Compile libigl tutorials chapter 2" ON)
  4. option(LIBIGL_TUTORIALS_CHAPTER3 "Compile libigl tutorials chapter 3" ON)
  5. option(LIBIGL_TUTORIALS_CHAPTER4 "Compile libigl tutorials chapter 4" ON)
  6. option(LIBIGL_TUTORIALS_CHAPTER5 "Compile libigl tutorials chapter 5" ON)
  7. option(LIBIGL_TUTORIALS_CHAPTER6 "Compile libigl tutorials chapter 6" ON)
  8. option(LIBIGL_TUTORIALS_CHAPTER7 "Compile libigl tutorials chapter 7" ON)
  9. # Download tutorial data
  10. include(libigl_tutorial_data)
  11. if(NOT TARGET igl::glfw)
  12. message(WARNING "Most tutorial executables depend on OpenGL and glfw. Use `cmake -DLIBIGL_GLFW=ON ..`")
  13. endif()
  14. # Chapter 1
  15. if(LIBIGL_TUTORIALS_CHAPTER1)
  16. igl_add_tutorial(101_FileIO)
  17. igl_add_tutorial(102_DrawMesh igl::glfw)
  18. igl_add_tutorial(103_Events igl::glfw)
  19. igl_add_tutorial(104_Colors igl::glfw)
  20. igl_add_tutorial(105_Overlays igl::imgui)
  21. igl_add_tutorial(106_ViewerMenu igl::imgui)
  22. igl_add_tutorial(107_MultipleMeshes igl::glfw)
  23. igl_add_tutorial(108_MultipleViews igl::glfw)
  24. igl_add_tutorial(109_ImGuizmo igl::imgui)
  25. igl_add_tutorial(110_MshView igl::glfw)
  26. igl_add_tutorial(111_MatCap igl::glfw igl::png)
  27. igl_add_tutorial(112_Selection igl::imgui)
  28. igl_add_tutorial(113_Shadows igl::imgui igl::png)
  29. endif()
  30. # Chapter 2
  31. if(LIBIGL_TUTORIALS_CHAPTER2)
  32. igl_add_tutorial(201_Normals igl::glfw)
  33. igl_add_tutorial(202_GaussianCurvature igl::glfw)
  34. igl_add_tutorial(203_CurvatureDirections igl::glfw)
  35. igl_add_tutorial(204_Gradient igl::glfw)
  36. igl_add_tutorial(205_Laplacian igl::glfw)
  37. igl_add_tutorial(206_GeodesicDistance igl::glfw)
  38. igl_add_tutorial(207_PolygonLaplacian igl::glfw)
  39. endif()
  40. # Chapter 3
  41. if(LIBIGL_TUTORIALS_CHAPTER3)
  42. igl_add_tutorial(301_Slice igl::glfw)
  43. igl_add_tutorial(302_Sort igl::glfw)
  44. igl_add_tutorial(303_LaplaceEquation igl::glfw)
  45. igl_add_tutorial(304_LinearEqualityConstraints igl::glfw)
  46. igl_add_tutorial(305_QuadraticProgramming igl::glfw)
  47. igl_add_tutorial(306_EigenDecomposition igl::glfw)
  48. endif()
  49. # Chapter 4
  50. if(LIBIGL_TUTORIALS_CHAPTER4)
  51. igl_add_tutorial(401_BiharmonicDeformation igl::glfw)
  52. igl_add_tutorial(402_PolyharmonicDeformation igl::glfw)
  53. igl_add_tutorial(403_BoundedBiharmonicWeights igl::glfw)
  54. igl_add_tutorial(404_DualQuaternionSkinning igl::glfw)
  55. igl_add_tutorial(405_AsRigidAsPossible igl::glfw)
  56. igl_add_tutorial(406_FastAutomaticSkinningTransformations igl::glfw)
  57. igl_add_tutorial(407_BiharmonicCoordinates igl::glfw)
  58. igl_add_tutorial(408_DirectDeltaMush igl::glfw)
  59. igl_add_tutorial(409_Kelvinlets igl::imgui)
  60. endif()
  61. # Chapter 5
  62. if(LIBIGL_TUTORIALS_CHAPTER5)
  63. igl_add_tutorial(501_HarmonicParam igl::glfw)
  64. igl_add_tutorial(502_LSCMParam igl::glfw)
  65. igl_add_tutorial(503_ARAPParam igl::glfw)
  66. igl_add_tutorial(504_NRosyDesign igl::glfw igl_copyleft::comiso)
  67. igl_add_tutorial(505_MIQ igl::glfw igl_copyleft::comiso)
  68. igl_add_tutorial(506_FrameField igl::glfw igl_copyleft::comiso)
  69. igl_add_tutorial(507_Planarization igl::glfw)
  70. endif()
  71. # Chapter 6
  72. if(LIBIGL_TUTORIALS_CHAPTER6)
  73. igl_add_tutorial(601_Serialization igl::glfw igl::xml)
  74. igl_add_tutorial(602_Matlab igl::glfw igl_restricted::matlab)
  75. igl_add_tutorial(604_Triangle igl::glfw igl_restricted::triangle)
  76. igl_add_tutorial(605_Tetgen igl::glfw igl_copyleft::tetgen)
  77. igl_add_tutorial(606_AmbientOcclusion igl::glfw igl::embree)
  78. igl_add_tutorial(607_ScreenCapture igl::glfw igl::png)
  79. igl_add_tutorial(608_RayTrace igl::png igl::embree)
  80. igl_add_tutorial(609_Boolean igl::glfw igl_copyleft::cgal)
  81. igl_copy_dll(609_Boolean)
  82. igl_add_tutorial(610_CSGTree igl::glfw igl_copyleft::cgal)
  83. igl_copy_dll(610_CSGTree)
  84. endif()
  85. # Chapter 7
  86. if(LIBIGL_TUTORIALS_CHAPTER7)
  87. igl_add_tutorial(701_Statistics igl::glfw)
  88. igl_add_tutorial(702_WindingNumber igl::glfw)
  89. igl_add_tutorial(703_Decimation igl::glfw)
  90. igl_add_tutorial(704_SignedDistance igl::glfw)
  91. igl_add_tutorial(705_MarchingCubes igl::glfw)
  92. igl_add_tutorial(706_FacetOrientation igl::glfw igl::embree)
  93. igl_add_tutorial(707_SweptVolume igl::glfw)
  94. igl_add_tutorial(708_Picking igl::glfw)
  95. igl_add_tutorial(709_SLIM igl::glfw)
  96. igl_add_tutorial(710_SCAF igl::glfw igl_restricted:triangle)
  97. igl_add_tutorial(711_Subdivision igl::glfw)
  98. igl_add_tutorial(712_DataSmoothing igl::glfw)
  99. igl_add_tutorial(713_ShapeUp igl::glfw)
  100. igl_add_tutorial(714_MarchingTets igl::glfw igl_copyleft::tetgen)
  101. igl_add_tutorial(715_MeshImplicitFunction igl::glfw igl_copyleft::core)
  102. igl_add_tutorial(716_HeatGeodesics igl::glfw)
  103. igl_add_tutorial(717_FastWindingNumber igl::glfw igl_copyleft::cgal)
  104. igl_copy_dll(717_FastWindingNumber)
  105. igl_add_tutorial(718_IterativeClosestPoint igl::glfw)
  106. igl_add_tutorial(719_ExplodedView igl::glfw)
  107. igl_add_tutorial(720_BlueNoise igl::glfw)
  108. igl_add_tutorial(721_VectorFieldSmoothing igl::glfw)
  109. igl_add_tutorial(722_VectorParallelTransport igl::glfw)
  110. igl_add_tutorial(723_ShowSelfIntersections igl::imgui igl::glfw)
  111. igl_add_tutorial(724_ShowIntersections igl::imgui igl::glfw)
  112. endif()