CMakeLists.txt 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. option(LIBIGL_TUTORIALS_CHAPTER8 "Compile libigl tutorials chapter 8" ON)
  10. option(LIBIGL_TUTORIALS_CHAPTER9 "Compile libigl tutorials chapter 9" ON)
  11. option(LIBIGL_TUTORIALS_CHAPTER10 "Compile libigl tutorials chapter 10" ON)
  12. # Download tutorial data
  13. include(libigl_tutorial_data)
  14. if(NOT TARGET igl::glfw)
  15. message(WARNING "Most tutorial executables depend on OpenGL and glfw. Use `cmake -DLIBIGL_GLFW=ON ..`")
  16. endif()
  17. # Chapter 1
  18. if(LIBIGL_TUTORIALS_CHAPTER1)
  19. igl_add_tutorial(101_FileIO)
  20. igl_add_tutorial(102_DrawMesh igl::glfw)
  21. igl_add_tutorial(103_Events igl::glfw)
  22. igl_add_tutorial(104_Colors igl::glfw)
  23. igl_add_tutorial(105_Overlays igl::imgui)
  24. igl_add_tutorial(106_ViewerMenu igl::imgui)
  25. igl_add_tutorial(107_MultipleMeshes igl::glfw)
  26. igl_add_tutorial(108_MultipleViews igl::glfw)
  27. igl_add_tutorial(109_ImGuizmo igl::imgui)
  28. igl_add_tutorial(110_MshView igl::glfw)
  29. igl_add_tutorial(111_MatCap igl::glfw igl::stb)
  30. igl_add_tutorial(112_Selection igl::imgui)
  31. igl_add_tutorial(113_Shadows igl::imgui igl::stb)
  32. igl_add_tutorial(114_CustomShader igl::glfw)
  33. endif()
  34. # Chapter 2
  35. if(LIBIGL_TUTORIALS_CHAPTER2)
  36. igl_add_tutorial(201_Normals igl::glfw)
  37. igl_add_tutorial(202_GaussianCurvature igl::glfw)
  38. igl_add_tutorial(203_CurvatureDirections igl::glfw)
  39. igl_add_tutorial(204_Gradient igl::glfw)
  40. igl_add_tutorial(205_Laplacian igl::glfw)
  41. igl_add_tutorial(206_GeodesicDistance igl::glfw)
  42. igl_add_tutorial(207_PolygonLaplacian igl::glfw)
  43. endif()
  44. # Chapter 3
  45. if(LIBIGL_TUTORIALS_CHAPTER3)
  46. igl_add_tutorial(301_Slice igl::glfw)
  47. igl_add_tutorial(302_Sort igl::glfw)
  48. igl_add_tutorial(303_LaplaceEquation igl::glfw)
  49. igl_add_tutorial(304_LinearEqualityConstraints igl::glfw)
  50. igl_add_tutorial(305_QuadraticProgramming igl::glfw)
  51. igl_add_tutorial(306_EigenDecomposition igl::glfw)
  52. endif()
  53. # Chapter 4
  54. if(LIBIGL_TUTORIALS_CHAPTER4)
  55. igl_add_tutorial(401_BiharmonicDeformation igl::glfw)
  56. igl_add_tutorial(402_PolyharmonicDeformation igl::glfw)
  57. igl_add_tutorial(403_BoundedBiharmonicWeights igl::glfw)
  58. igl_add_tutorial(404_DualQuaternionSkinning igl::glfw)
  59. igl_add_tutorial(405_AsRigidAsPossible igl::glfw)
  60. igl_add_tutorial(406_FastAutomaticSkinningTransformations igl::glfw)
  61. igl_add_tutorial(407_BiharmonicCoordinates igl::glfw)
  62. igl_add_tutorial(408_DirectDeltaMush igl::glfw)
  63. igl_add_tutorial(409_Kelvinlets igl::imgui)
  64. endif()
  65. # Chapter 5
  66. if(LIBIGL_TUTORIALS_CHAPTER5)
  67. igl_add_tutorial(501_HarmonicParam igl::glfw)
  68. igl_add_tutorial(502_LSCMParam igl::glfw)
  69. igl_add_tutorial(503_ARAPParam igl::glfw)
  70. igl_add_tutorial(504_Planarization igl::glfw)
  71. endif()
  72. # Chapter 6
  73. if(LIBIGL_TUTORIALS_CHAPTER6)
  74. igl_add_tutorial(601_Serialization igl::glfw igl::xml)
  75. igl_add_tutorial(602_Matlab igl::glfw igl_restricted::matlab)
  76. igl_add_tutorial(604_Triangle igl::glfw igl_restricted::triangle)
  77. igl_add_tutorial(605_Tetgen igl::glfw igl_copyleft::tetgen)
  78. igl_add_tutorial(606_AmbientOcclusion igl::glfw igl::embree)
  79. igl_add_tutorial(607_ScreenCapture igl::glfw igl::stb)
  80. igl_add_tutorial(608_RayTrace igl::stb igl::embree)
  81. igl_add_tutorial(609_Boolean igl::glfw igl_copyleft::cgal)
  82. igl_copy_dll(609_Boolean)
  83. igl_add_tutorial(610_CSGTree igl::glfw igl_copyleft::cgal)
  84. igl_copy_dll(610_CSGTree)
  85. endif()
  86. # Chapter 7
  87. if(LIBIGL_TUTORIALS_CHAPTER7)
  88. igl_add_tutorial(701_Statistics igl::glfw)
  89. igl_add_tutorial(702_WindingNumber igl::glfw)
  90. igl_add_tutorial(703_Decimation igl::glfw)
  91. igl_add_tutorial(704_SignedDistance igl::glfw)
  92. igl_add_tutorial(705_MarchingCubes igl::glfw)
  93. igl_add_tutorial(706_FacetOrientation igl::glfw igl::embree)
  94. igl_add_tutorial(707_SweptVolume igl::glfw)
  95. igl_add_tutorial(708_Picking igl::glfw)
  96. igl_add_tutorial(709_SLIM igl::glfw)
  97. igl_add_tutorial(710_SCAF igl::glfw igl_restricted::triangle)
  98. endif()
  99. if(LIBIGL_TUTORIALS_CHAPTER8)
  100. igl_add_tutorial(801_Subdivision igl::glfw)
  101. igl_add_tutorial(802_DataSmoothing igl::glfw)
  102. igl_add_tutorial(803_ShapeUp igl::glfw)
  103. igl_add_tutorial(804_MarchingTets igl::glfw igl_copyleft::tetgen)
  104. igl_add_tutorial(805_MeshImplicitFunction igl::glfw igl_copyleft::core)
  105. igl_add_tutorial(806_HeatGeodesics igl::glfw)
  106. igl_add_tutorial(807_FastWindingNumber igl::glfw igl_copyleft::cgal)
  107. igl_copy_dll( 807_FastWindingNumber)
  108. igl_add_tutorial(808_IterativeClosestPoint igl::glfw)
  109. igl_add_tutorial(809_ExplodedView igl::glfw)
  110. igl_add_tutorial(810_BlueNoise igl::glfw)
  111. endif()
  112. if(LIBIGL_TUTORIALS_CHAPTER9)
  113. igl_add_tutorial(901_VectorFieldSmoothing igl::glfw)
  114. igl_add_tutorial(902_VectorParallelTransport igl::glfw)
  115. igl_add_tutorial(903_FastFindSelfIntersections igl::glfw igl::predicates )
  116. igl_add_tutorial(904_FastFindIntersections igl::glfw igl::predicates)
  117. igl_add_tutorial(905_Isolines igl::imgui igl::glfw)
  118. igl_add_tutorial(906_TrimWithSolid igl::glfw igl_copyleft::cgal)
  119. igl_add_tutorial(907_DynamicAABB igl::glfw)
  120. igl_add_tutorial(908_IntersectionBlockingDecimation igl::glfw igl::predicates)
  121. igl_add_tutorial(909_BatchMarchingCubes igl::glfw)
  122. igl_add_tutorial(910_OrientedBoundingBox igl::glfw igl_copyleft::cgal)
  123. endif()
  124. if(LIBIGL_TUTORIALS_CHAPTER10)
  125. igl_add_tutorial(1001_LipschitzOctree igl::glfw)
  126. igl_add_tutorial(1002_EytzingerAABB igl::glfw)
  127. endif()