# Choose which chapters to compile option(LIBIGL_TUTORIALS_CHAPTER1 "Compile libigl tutorials chapter 1" ON) option(LIBIGL_TUTORIALS_CHAPTER2 "Compile libigl tutorials chapter 2" ON) option(LIBIGL_TUTORIALS_CHAPTER3 "Compile libigl tutorials chapter 3" ON) option(LIBIGL_TUTORIALS_CHAPTER4 "Compile libigl tutorials chapter 4" ON) option(LIBIGL_TUTORIALS_CHAPTER5 "Compile libigl tutorials chapter 5" ON) option(LIBIGL_TUTORIALS_CHAPTER6 "Compile libigl tutorials chapter 6" ON) option(LIBIGL_TUTORIALS_CHAPTER7 "Compile libigl tutorials chapter 7" ON) option(LIBIGL_TUTORIALS_CHAPTER8 "Compile libigl tutorials chapter 8" ON) option(LIBIGL_TUTORIALS_CHAPTER9 "Compile libigl tutorials chapter 9" ON) # Download tutorial data include(libigl_tutorial_data) if(NOT TARGET igl::glfw) message(WARNING "Most tutorial executables depend on OpenGL and glfw. Use `cmake -DLIBIGL_GLFW=ON ..`") endif() # Chapter 1 if(LIBIGL_TUTORIALS_CHAPTER1) igl_add_tutorial(101_FileIO) igl_add_tutorial(102_DrawMesh igl::glfw) igl_add_tutorial(103_Events igl::glfw) igl_add_tutorial(104_Colors igl::glfw) igl_add_tutorial(105_Overlays igl::imgui) igl_add_tutorial(106_ViewerMenu igl::imgui) igl_add_tutorial(107_MultipleMeshes igl::glfw) igl_add_tutorial(108_MultipleViews igl::glfw) igl_add_tutorial(109_ImGuizmo igl::imgui) igl_add_tutorial(110_MshView igl::glfw) igl_add_tutorial(111_MatCap igl::glfw igl::stb) igl_add_tutorial(112_Selection igl::imgui) igl_add_tutorial(113_Shadows igl::imgui igl::stb) igl_add_tutorial(114_CustomShader igl::glfw) endif() # Chapter 2 if(LIBIGL_TUTORIALS_CHAPTER2) igl_add_tutorial(201_Normals igl::glfw) igl_add_tutorial(202_GaussianCurvature igl::glfw) igl_add_tutorial(203_CurvatureDirections igl::glfw) igl_add_tutorial(204_Gradient igl::glfw) igl_add_tutorial(205_Laplacian igl::glfw) igl_add_tutorial(206_GeodesicDistance igl::glfw) igl_add_tutorial(207_PolygonLaplacian igl::glfw) endif() # Chapter 3 if(LIBIGL_TUTORIALS_CHAPTER3) igl_add_tutorial(301_Slice igl::glfw) igl_add_tutorial(302_Sort igl::glfw) igl_add_tutorial(303_LaplaceEquation igl::glfw) igl_add_tutorial(304_LinearEqualityConstraints igl::glfw) igl_add_tutorial(305_QuadraticProgramming igl::glfw) igl_add_tutorial(306_EigenDecomposition igl::glfw) endif() # Chapter 4 if(LIBIGL_TUTORIALS_CHAPTER4) igl_add_tutorial(401_BiharmonicDeformation igl::glfw) igl_add_tutorial(402_PolyharmonicDeformation igl::glfw) igl_add_tutorial(403_BoundedBiharmonicWeights igl::glfw) igl_add_tutorial(404_DualQuaternionSkinning igl::glfw) igl_add_tutorial(405_AsRigidAsPossible igl::glfw) igl_add_tutorial(406_FastAutomaticSkinningTransformations igl::glfw) igl_add_tutorial(407_BiharmonicCoordinates igl::glfw) igl_add_tutorial(408_DirectDeltaMush igl::glfw) igl_add_tutorial(409_Kelvinlets igl::imgui) endif() # Chapter 5 if(LIBIGL_TUTORIALS_CHAPTER5) igl_add_tutorial(501_HarmonicParam igl::glfw) igl_add_tutorial(502_LSCMParam igl::glfw) igl_add_tutorial(503_ARAPParam igl::glfw) igl_add_tutorial(504_NRosyDesign igl::glfw igl_copyleft::comiso) igl_add_tutorial(505_MIQ igl::glfw igl_copyleft::comiso) igl_add_tutorial(506_FrameField igl::glfw igl_copyleft::comiso) igl_add_tutorial(507_Planarization igl::glfw) endif() # Chapter 6 if(LIBIGL_TUTORIALS_CHAPTER6) igl_add_tutorial(601_Serialization igl::glfw igl::xml) igl_add_tutorial(602_Matlab igl::glfw igl_restricted::matlab) igl_add_tutorial(604_Triangle igl::glfw igl_restricted::triangle) igl_add_tutorial(605_Tetgen igl::glfw igl_copyleft::tetgen) igl_add_tutorial(606_AmbientOcclusion igl::glfw igl::embree) igl_add_tutorial(607_ScreenCapture igl::glfw igl::stb) igl_add_tutorial(608_RayTrace igl::stb igl::embree) igl_add_tutorial(609_Boolean igl::glfw igl_copyleft::cgal) igl_copy_dll(609_Boolean) igl_add_tutorial(610_CSGTree igl::glfw igl_copyleft::cgal) igl_copy_dll(610_CSGTree) endif() # Chapter 7 if(LIBIGL_TUTORIALS_CHAPTER7) igl_add_tutorial(701_Statistics igl::glfw) igl_add_tutorial(702_WindingNumber igl::glfw) igl_add_tutorial(703_Decimation igl::glfw) igl_add_tutorial(704_SignedDistance igl::glfw) igl_add_tutorial(705_MarchingCubes igl::glfw) igl_add_tutorial(706_FacetOrientation igl::glfw igl::embree) igl_add_tutorial(707_SweptVolume igl::glfw) igl_add_tutorial(708_Picking igl::glfw) igl_add_tutorial(709_SLIM igl::glfw) igl_add_tutorial(710_SCAF igl::glfw igl_restricted::triangle) endif() if(LIBIGL_TUTORIALS_CHAPTER8) igl_add_tutorial(801_Subdivision igl::glfw) igl_add_tutorial(802_DataSmoothing igl::glfw) igl_add_tutorial(803_ShapeUp igl::glfw) igl_add_tutorial(804_MarchingTets igl::glfw igl_copyleft::tetgen) igl_add_tutorial(805_MeshImplicitFunction igl::glfw igl_copyleft::core) igl_add_tutorial(806_HeatGeodesics igl::glfw) igl_add_tutorial(807_FastWindingNumber igl::glfw igl_copyleft::cgal) igl_copy_dll( 807_FastWindingNumber) igl_add_tutorial(808_IterativeClosestPoint igl::glfw) igl_add_tutorial(809_ExplodedView igl::glfw) igl_add_tutorial(810_BlueNoise igl::glfw) endif() if(LIBIGL_TUTORIALS_CHAPTER9) igl_add_tutorial(901_VectorFieldSmoothing igl::glfw) igl_add_tutorial(902_VectorParallelTransport igl::glfw) igl_add_tutorial(903_FastFindSelfIntersections igl::glfw) igl_add_tutorial(904_FastFindIntersections igl::glfw) igl_add_tutorial(905_Isolines igl::imgui igl::glfw) igl_add_tutorial(906_TrimWithSolid igl::glfw igl_copyleft::cgal) igl_add_tutorial(907_DynamicAABB igl::glfw) igl_add_tutorial(908_IntersectionBlockingDecimation igl::glfw) endif()