瀏覽代碼

Added wrl texture support.

Martin Thümmel 5 年之前
父節點
當前提交
baa09d6385
共有 100 個文件被更改,包括 17757 次插入0 次删除
  1. 1738 0
      .appveyor.yml
  2. 105 0
      build2/CPackConfig.cmake
  3. 112 0
      build2/CPackSourceConfig.cmake
  4. 17 0
      build2/CTestTestfile.cmake
  5. 374 0
      build2/CoMISo/Makefile
  6. 39 0
      build2/CoMISo/cmake_install.cmake
  7. 115 0
      build2/DartConfiguration.tcl
  8. 504 0
      build2/Makefile
  9. 884 0
      build2/cmake_install.cmake
  10. 8 0
      build2/embree/CTestTestfile.cmake
  11. 115 0
      build2/embree/DartConfiguration.tcl
  12. 224 0
      build2/embree/Makefile
  13. 78 0
      build2/embree/cmake_install.cmake
  14. 12 0
      build2/embree/common/CTestTestfile.cmake
  15. 208 0
      build2/embree/common/Makefile
  16. 6 0
      build2/embree/common/algorithms/CTestTestfile.cmake
  17. 524 0
      build2/embree/common/algorithms/Makefile
  18. 39 0
      build2/embree/common/algorithms/cmake_install.cmake
  19. 50 0
      build2/embree/common/cmake_install.cmake
  20. 6 0
      build2/embree/common/lexers/CTestTestfile.cmake
  21. 284 0
      build2/embree/common/lexers/Makefile
  22. 62 0
      build2/embree/common/lexers/cmake_install.cmake
  23. 6 0
      build2/embree/common/math/CTestTestfile.cmake
  24. 254 0
      build2/embree/common/math/Makefile
  25. 62 0
      build2/embree/common/math/cmake_install.cmake
  26. 6 0
      build2/embree/common/simd/CTestTestfile.cmake
  27. 254 0
      build2/embree/common/simd/Makefile
  28. 62 0
      build2/embree/common/simd/cmake_install.cmake
  29. 6 0
      build2/embree/common/sys/CTestTestfile.cmake
  30. 524 0
      build2/embree/common/sys/Makefile
  31. 62 0
      build2/embree/common/sys/cmake_install.cmake
  32. 6 0
      build2/embree/common/tasking/CTestTestfile.cmake
  33. 254 0
      build2/embree/common/tasking/Makefile
  34. 62 0
      build2/embree/common/tasking/cmake_install.cmake
  35. 66 0
      build2/embree/embree-config-install.cmake
  36. 28 0
      build2/embree/embree-config-version.cmake
  37. 23 0
      build2/embree/embree-config.cmake
  38. 6 0
      build2/embree/kernels/CTestTestfile.cmake
  39. 1710 0
      build2/embree/kernels/Makefile
  40. 62 0
      build2/embree/kernels/cmake_install.cmake
  41. 37 0
      build2/embree/uninstall.cmake
  42. 254 0
      build2/glad/Makefile
  43. 39 0
      build2/glad/cmake_install.cmake
  44. 208 0
      build2/glfw/Makefile
  45. 45 0
      build2/glfw/cmake_install.cmake
  46. 704 0
      build2/glfw/src/Makefile
  47. 39 0
      build2/glfw/src/cmake_install.cmake
  48. 13 0
      build2/glfw/src/glfw3.pc
  49. 1 0
      build2/glfw/src/glfw3Config.cmake
  50. 46 0
      build2/glfw/src/glfw3ConfigVersion.cmake
  51. 60 0
      build2/glfw/src/glfw_config.h
  52. 404 0
      build2/imgui/Makefile
  53. 39 0
      build2/imgui/cmake_install.cmake
  54. 26 0
      build2/install/include/embree3/rtcore.h
  55. 28 0
      build2/install/include/embree3/rtcore.isph
  56. 64 0
      build2/install/include/embree3/rtcore_buffer.h
  57. 63 0
      build2/install/include/embree3/rtcore_buffer.isph
  58. 133 0
      build2/install/include/embree3/rtcore_builder.h
  59. 224 0
      build2/install/include/embree3/rtcore_common.h
  60. 205 0
      build2/install/include/embree3/rtcore_common.isph
  61. 97 0
      build2/install/include/embree3/rtcore_device.h
  62. 95 0
      build2/install/include/embree3/rtcore_device.isph
  63. 379 0
      build2/install/include/embree3/rtcore_geometry.h
  64. 402 0
      build2/install/include/embree3/rtcore_geometry.isph
  65. 391 0
      build2/install/include/embree3/rtcore_ray.h
  66. 216 0
      build2/install/include/embree3/rtcore_ray.isph
  67. 149 0
      build2/install/include/embree3/rtcore_scene.h
  68. 176 0
      build2/install/include/embree3/rtcore_scene.isph
  69. 62 0
      build2/install/include/embree3/rtcore_version.h
  70. 1083 0
      build2/install/include/igl/AABB.cpp
  71. 413 0
      build2/install/include/igl/AABB.h
  72. 36 0
      build2/install/include/igl/ARAPEnergyType.h
  73. 130 0
      build2/install/include/igl/AtA_cached.cpp
  74. 70 0
      build2/install/include/igl/AtA_cached.h
  75. 18 0
      build2/install/include/igl/C_STR.h
  76. 359 0
      build2/install/include/igl/Camera.h
  77. 30 0
      build2/install/include/igl/EPS.cpp
  78. 32 0
      build2/install/include/igl/EPS.h
  79. 158 0
      build2/install/include/igl/HalfEdgeIterator.cpp
  80. 114 0
      build2/install/include/igl/HalfEdgeIterator.h
  81. 25 0
      build2/install/include/igl/Hit.h
  82. 117 0
      build2/install/include/igl/IndexComparison.h
  83. 61 0
      build2/install/include/igl/LinSpaced.h
  84. 26 0
      build2/install/include/igl/MappingEnergyType.h
  85. 23 0
      build2/install/include/igl/MeshBooleanType.h
  86. 27 0
      build2/install/include/igl/NormalType.h
  87. 22 0
      build2/install/include/igl/ONE.h
  88. 19 0
      build2/install/include/igl/PI.h
  89. 55 0
      build2/install/include/igl/REDRUM.h
  90. 18 0
      build2/install/include/igl/STR.h
  91. 23 0
      build2/install/include/igl/SolverStatus.h
  92. 70 0
      build2/install/include/igl/SortableRow.h
  93. 179 0
      build2/install/include/igl/Timer.h
  94. 69 0
      build2/install/include/igl/Viewport.h
  95. 377 0
      build2/install/include/igl/WindingNumberAABB.h
  96. 23 0
      build2/install/include/igl/WindingNumberMethod.h
  97. 501 0
      build2/install/include/igl/WindingNumberTree.h
  98. 21 0
      build2/install/include/igl/ZERO.h
  99. 52 0
      build2/install/include/igl/accumarray.cpp
  100. 50 0
      build2/install/include/igl/accumarray.h

+ 1738 - 0
.appveyor.yml

@@ -0,0 +1,1738 @@
+# This is the CMakeCache file.
+# For build in directory: /home/thuemmel/libs/libigl/build2
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Value Computed by CMake
+101_FileIO_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/101_FileIO
+
+//Value Computed by CMake
+101_FileIO_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/101_FileIO
+
+//Value Computed by CMake
+102_DrawMesh_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/102_DrawMesh
+
+//Value Computed by CMake
+102_DrawMesh_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/102_DrawMesh
+
+//Value Computed by CMake
+103_Events_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/103_Events
+
+//Value Computed by CMake
+103_Events_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/103_Events
+
+//Value Computed by CMake
+104_Colors_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/104_Colors
+
+//Value Computed by CMake
+104_Colors_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/104_Colors
+
+//Value Computed by CMake
+105_Overlays_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/105_Overlays
+
+//Value Computed by CMake
+105_Overlays_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/105_Overlays
+
+//Value Computed by CMake
+106_ViewerMenu_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/106_ViewerMenu
+
+//Value Computed by CMake
+106_ViewerMenu_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/106_ViewerMenu
+
+//Value Computed by CMake
+107_MultipleMeshes_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/107_MultipleMeshes
+
+//Value Computed by CMake
+107_MultipleMeshes_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/107_MultipleMeshes
+
+//Value Computed by CMake
+108_MultipleViews_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/108_MultipleViews
+
+//Value Computed by CMake
+108_MultipleViews_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/108_MultipleViews
+
+//Value Computed by CMake
+201_Normals_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/201_Normals
+
+//Value Computed by CMake
+201_Normals_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/201_Normals
+
+//Value Computed by CMake
+202_GaussianCurvature_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/202_GaussianCurvature
+
+//Value Computed by CMake
+202_GaussianCurvature_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/202_GaussianCurvature
+
+//Value Computed by CMake
+203_CurvatureDirections_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/203_CurvatureDirections
+
+//Value Computed by CMake
+203_CurvatureDirections_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/203_CurvatureDirections
+
+//Value Computed by CMake
+204_Gradient_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/204_Gradient
+
+//Value Computed by CMake
+204_Gradient_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/204_Gradient
+
+//Value Computed by CMake
+205_Laplacian_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/205_Laplacian
+
+//Value Computed by CMake
+205_Laplacian_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/205_Laplacian
+
+//Value Computed by CMake
+206_GeodesicDistance_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/206_GeodesicDistance
+
+//Value Computed by CMake
+206_GeodesicDistance_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/206_GeodesicDistance
+
+//Value Computed by CMake
+301_Slice_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/301_Slice
+
+//Value Computed by CMake
+301_Slice_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/301_Slice
+
+//Value Computed by CMake
+302_Sort_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/302_Sort
+
+//Value Computed by CMake
+302_Sort_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/302_Sort
+
+//Value Computed by CMake
+303_LaplaceEquation_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/303_LaplaceEquation
+
+//Value Computed by CMake
+303_LaplaceEquation_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/303_LaplaceEquation
+
+//Value Computed by CMake
+304_LinearEqualityConstraints_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/304_LinearEqualityConstraints
+
+//Value Computed by CMake
+304_LinearEqualityConstraints_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/304_LinearEqualityConstraints
+
+//Value Computed by CMake
+305_QuadraticProgramming_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/305_QuadraticProgramming
+
+//Value Computed by CMake
+305_QuadraticProgramming_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/305_QuadraticProgramming
+
+//Value Computed by CMake
+306_EigenDecomposition_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/306_EigenDecomposition
+
+//Value Computed by CMake
+306_EigenDecomposition_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/306_EigenDecomposition
+
+//Value Computed by CMake
+401_BiharmonicDeformation_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/401_BiharmonicDeformation
+
+//Value Computed by CMake
+401_BiharmonicDeformation_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/401_BiharmonicDeformation
+
+//Value Computed by CMake
+402_PolyharmonicDeformation_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/402_PolyharmonicDeformation
+
+//Value Computed by CMake
+402_PolyharmonicDeformation_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/402_PolyharmonicDeformation
+
+//Value Computed by CMake
+403_BoundedBiharmonicWeights_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/403_BoundedBiharmonicWeights
+
+//Value Computed by CMake
+403_BoundedBiharmonicWeights_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/403_BoundedBiharmonicWeights
+
+//Value Computed by CMake
+404_DualQuaternionSkinning_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/404_DualQuaternionSkinning
+
+//Value Computed by CMake
+404_DualQuaternionSkinning_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/404_DualQuaternionSkinning
+
+//Value Computed by CMake
+405_AsRigidAsPossible_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/405_AsRigidAsPossible
+
+//Value Computed by CMake
+405_AsRigidAsPossible_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/405_AsRigidAsPossible
+
+//Value Computed by CMake
+406_FastAutomaticSkinningTransformations_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/406_FastAutomaticSkinningTransformations
+
+//Value Computed by CMake
+406_FastAutomaticSkinningTransformations_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/406_FastAutomaticSkinningTransformations
+
+//Value Computed by CMake
+407_BiharmonicCoordinates_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/407_BiharmonicCoordinates
+
+//Value Computed by CMake
+407_BiharmonicCoordinates_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/407_BiharmonicCoordinates
+
+//Value Computed by CMake
+501_HarmonicParam_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/501_HarmonicParam
+
+//Value Computed by CMake
+501_HarmonicParam_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/501_HarmonicParam
+
+//Value Computed by CMake
+502_LSCMParam_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/502_LSCMParam
+
+//Value Computed by CMake
+502_LSCMParam_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/502_LSCMParam
+
+//Value Computed by CMake
+503_ARAPParam_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/503_ARAPParam
+
+//Value Computed by CMake
+503_ARAPParam_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/503_ARAPParam
+
+//Value Computed by CMake
+504_NRosyDesign_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/504_NRosyDesign
+
+//Value Computed by CMake
+504_NRosyDesign_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/504_NRosyDesign
+
+//Value Computed by CMake
+505_MIQ_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/505_MIQ
+
+//Value Computed by CMake
+505_MIQ_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/505_MIQ
+
+//Value Computed by CMake
+506_FrameField_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/506_FrameField
+
+//Value Computed by CMake
+506_FrameField_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/506_FrameField
+
+//Value Computed by CMake
+507_Planarization_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/507_Planarization
+
+//Value Computed by CMake
+507_Planarization_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/507_Planarization
+
+//Value Computed by CMake
+601_Serialization_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/601_Serialization
+
+//Value Computed by CMake
+601_Serialization_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/601_Serialization
+
+//Value Computed by CMake
+604_Triangle_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/604_Triangle
+
+//Value Computed by CMake
+604_Triangle_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/604_Triangle
+
+//Value Computed by CMake
+605_Tetgen_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/605_Tetgen
+
+//Value Computed by CMake
+605_Tetgen_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/605_Tetgen
+
+//Value Computed by CMake
+606_AmbientOcclusion_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/606_AmbientOcclusion
+
+//Value Computed by CMake
+606_AmbientOcclusion_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/606_AmbientOcclusion
+
+//Value Computed by CMake
+607_ScreenCapture_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/607_ScreenCapture
+
+//Value Computed by CMake
+607_ScreenCapture_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/607_ScreenCapture
+
+//Value Computed by CMake
+701_Statistics_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/701_Statistics
+
+//Value Computed by CMake
+701_Statistics_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/701_Statistics
+
+//Value Computed by CMake
+702_WindingNumber_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/702_WindingNumber
+
+//Value Computed by CMake
+702_WindingNumber_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/702_WindingNumber
+
+//Value Computed by CMake
+703_Decimation_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/703_Decimation
+
+//Value Computed by CMake
+703_Decimation_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/703_Decimation
+
+//Value Computed by CMake
+704_SignedDistance_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/704_SignedDistance
+
+//Value Computed by CMake
+704_SignedDistance_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/704_SignedDistance
+
+//Value Computed by CMake
+705_MarchingCubes_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/705_MarchingCubes
+
+//Value Computed by CMake
+705_MarchingCubes_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/705_MarchingCubes
+
+//Value Computed by CMake
+706_FacetOrientation_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/706_FacetOrientation
+
+//Value Computed by CMake
+706_FacetOrientation_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/706_FacetOrientation
+
+//Value Computed by CMake
+707_SweptVolume_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/707_SweptVolume
+
+//Value Computed by CMake
+707_SweptVolume_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/707_SweptVolume
+
+//Value Computed by CMake
+708_Picking_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/708_Picking
+
+//Value Computed by CMake
+708_Picking_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/708_Picking
+
+//Value Computed by CMake
+709_SLIM_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/709_SLIM
+
+//Value Computed by CMake
+709_SLIM_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/709_SLIM
+
+//Value Computed by CMake
+710_SCAF_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/710_SCAF
+
+//Value Computed by CMake
+710_SCAF_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/710_SCAF
+
+//Value Computed by CMake
+711_Subdivision_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/711_Subdivision
+
+//Value Computed by CMake
+711_Subdivision_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/711_Subdivision
+
+//Value Computed by CMake
+712_DataSmoothing_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/712_DataSmoothing
+
+//Value Computed by CMake
+712_DataSmoothing_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/712_DataSmoothing
+
+//Value Computed by CMake
+713_ShapeUp_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/713_ShapeUp
+
+//Value Computed by CMake
+713_ShapeUp_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/713_ShapeUp
+
+//Value Computed by CMake
+714_MarchingTets_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/714_MarchingTets
+
+//Value Computed by CMake
+714_MarchingTets_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/714_MarchingTets
+
+//Value Computed by CMake
+715_MeshImplicitFunction_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/715_MeshImplicitFunction
+
+//Value Computed by CMake
+715_MeshImplicitFunction_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/715_MeshImplicitFunction
+
+//Value Computed by CMake
+716_HeatGeodesics_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial/716_HeatGeodesics
+
+//Value Computed by CMake
+716_HeatGeodesics_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial/716_HeatGeodesics
+
+//Path to a library.
+BLAS_goto2_LIBRARY:FILEPATH=BLAS_goto2_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_openblas_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libopenblas.so
+
+//Build shared libraries
+BUILD_SHARED_LIBS:BOOL=OFF
+
+//Build the testing tree.
+BUILD_TESTING:BOOL=OFF
+
+//Path to a program.
+BZRCOMMAND:FILEPATH=BZRCOMMAND-NOTFOUND
+
+//Build documentation examples
+CATCH_BUILD_EXAMPLES:BOOL=OFF
+
+//Build extra tests
+CATCH_BUILD_EXTRA_TESTS:BOOL=OFF
+
+//Build SelfTest project
+CATCH_BUILD_TESTING:BOOL=ON
+
+//Generate coverage for codecov.io
+CATCH_ENABLE_COVERAGE:BOOL=OFF
+
+//Enable all warnings as errors
+CATCH_ENABLE_WERROR:BOOL=ON
+
+//Install documentation alongside library
+CATCH_INSTALL_DOCS:BOOL=ON
+
+//Install contrib alongside library
+CATCH_INSTALL_HELPERS:BOOL=ON
+
+//Perform SelfTests with Valgrind
+CATCH_USE_VALGRIND:BOOL=OFF
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Specifies the build type.
+CMAKE_BUILD_TYPE:STRING=Release
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//User executables (bin)
+CMAKE_INSTALL_BINDIR:PATH=bin
+
+//Read-only architecture-independent data (DATAROOTDIR)
+CMAKE_INSTALL_DATADIR:PATH=
+
+//Read-only architecture-independent data root (share)
+CMAKE_INSTALL_DATAROOTDIR:PATH=share
+
+//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+CMAKE_INSTALL_DOCDIR:PATH=
+
+//C header files (include)
+CMAKE_INSTALL_INCLUDEDIR:PATH=include
+
+//Info documentation (DATAROOTDIR/info)
+CMAKE_INSTALL_INFODIR:PATH=
+
+//Object code libraries (lib)
+CMAKE_INSTALL_LIBDIR:PATH=lib
+
+//Program executables (libexec)
+CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
+
+//Locale-dependent data (DATAROOTDIR/locale)
+CMAKE_INSTALL_LOCALEDIR:PATH=
+
+//Modifiable single-machine data (var)
+CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
+
+//Man documentation (DATAROOTDIR/man)
+CMAKE_INSTALL_MANDIR:PATH=
+
+//C header files for non-gcc (/usr/include)
+CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/home/thuemmel/libs/libigl/build2/install
+
+//Run-time variable data (LOCALSTATEDIR/run)
+CMAKE_INSTALL_RUNSTATEDIR:PATH=
+
+//System admin executables (sbin)
+CMAKE_INSTALL_SBINDIR:PATH=sbin
+
+//Modifiable architecture-independent data (com)
+CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
+
+//Read-only single-machine data (etc)
+CMAKE_INSTALL_SYSCONFDIR:PATH=etc
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=libigl
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//Enables verbose mode.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to the coverage program that CTest uses for performing coverage
+// inspection
+COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov
+
+//Extra command line flags to pass to the coverage tool
+COVERAGE_EXTRA_FLAGS:STRING=-l
+
+//Enable to build RPM source packages
+CPACK_SOURCE_RPM:BOOL=OFF
+
+//Enable to build TBZ2 source packages
+CPACK_SOURCE_TBZ2:BOOL=ON
+
+//Enable to build TGZ source packages
+CPACK_SOURCE_TGZ:BOOL=ON
+
+//Enable to build TXZ source packages
+CPACK_SOURCE_TXZ:BOOL=ON
+
+//Enable to build TZ source packages
+CPACK_SOURCE_TZ:BOOL=ON
+
+//Enable to build ZIP source packages
+CPACK_SOURCE_ZIP:BOOL=OFF
+
+//How many times to retry timed-out CTest submissions.
+CTEST_SUBMIT_RETRY_COUNT:STRING=3
+
+//How long to wait between timed-out CTest submissions.
+CTEST_SUBMIT_RETRY_DELAY:STRING=5
+
+//Path to a program.
+CVSCOMMAND:FILEPATH=CVSCOMMAND-NOTFOUND
+
+//Options passed to the cvs update command.
+CVS_UPDATE_OPTIONS:STRING=-d -A -P
+
+//Value Computed by CMake
+Catch2_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tests/catch2
+
+//Value Computed by CMake
+Catch2_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/catch2
+
+//Value Computed by CMake
+CoMISo_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/CoMISo
+
+//Dependencies for the target
+CoMISo_LIB_DEPENDS:STATIC=general;/usr/lib/x86_64-linux-gnu/libopenblas.so;
+
+//Value Computed by CMake
+CoMISo_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/CoMISo
+
+//Maximum time allowed before CTest will kill the test.
+DART_TESTING_TIMEOUT:STRING=1500
+
+//C++ namespace to put API symbols into.
+EMBREE_API_NAMESPACE:STRING=
+
+//Enables backface culling.
+EMBREE_BACKFACE_CULLING:BOOL=OFF
+
+//Self intersection avoidance factor for flat curves. Specify floating
+// point value in range 0 to inf.
+EMBREE_CURVE_SELF_INTERSECTION_AVOIDANCE_FACTOR:STRING=2.0
+
+//Enables filter functions.
+EMBREE_FILTER_FUNCTION:BOOL=ON
+
+//Enables support for curve geometries.
+EMBREE_GEOMETRY_CURVE:BOOL=ON
+
+//Enables support for grid geometries.
+EMBREE_GEOMETRY_GRID:BOOL=ON
+
+//Enables support for instances.
+EMBREE_GEOMETRY_INSTANCE:BOOL=ON
+
+//Enables support for point geometries.
+EMBREE_GEOMETRY_POINT:BOOL=ON
+
+//Enables support for quad geometries.
+EMBREE_GEOMETRY_QUAD:BOOL=ON
+
+//Enables support for subdiv geometries.
+EMBREE_GEOMETRY_SUBDIVISION:BOOL=ON
+
+//Enables support for triangle geometries.
+EMBREE_GEOMETRY_TRIANGLE:BOOL=ON
+
+//Enables support for user geometries.
+EMBREE_GEOMETRY_USER:BOOL=ON
+
+//When enabled Embree ignores default CMAKE_CXX_FLAGS.
+EMBREE_IGNORE_CMAKE_CXX_FLAGS:BOOL=ON
+
+//Ignores invalid rays.
+EMBREE_IGNORE_INVALID_RAYS:BOOL=OFF
+
+//Install Embree dependencies in binary packages and install
+EMBREE_INSTALL_DEPENDENCIES:BOOL=OFF
+
+//Build Embree with support for ISPC applications.
+EMBREE_ISPC_SUPPORT:BOOL=OFF
+
+//Name of the embree library file (default is embree3)
+EMBREE_LIBRARY_NAME:STRING=embree3
+
+// 
+EMBREE_MAX_ISA:STRING=SSE2
+
+//Enables ray mask support.
+EMBREE_RAY_MASK:BOOL=OFF
+
+//Enabled support for ray packets.
+EMBREE_RAY_PACKETS:BOOL=ON
+
+//When enabled Embree compiles with stack protection against return
+// address overrides.
+EMBREE_STACK_PROTECTOR:BOOL=OFF
+
+//Build Embree as a static library.
+EMBREE_STATIC_LIB:BOOL=ON
+
+//Enables statistic counters.
+EMBREE_STAT_COUNTERS:BOOL=OFF
+
+// 
+EMBREE_TASKING_SYSTEM:BOOL=INTERNAL
+
+//Turns benchmarking on.
+EMBREE_TESTING_BENCHMARK:BOOL=OFF
+
+//Path to database for benchmarking.
+EMBREE_TESTING_BENCHMARK_DATABASE:PATH=/home/thuemmel/libs/libigl/build2/embree
+
+EMBREE_TESTING_INTENSITY:STRING=0
+
+//Runs Kocwork as test.
+EMBREE_TESTING_KLOCWORK:BOOL=OFF
+
+//Turns on memory checking for some tests.
+EMBREE_TESTING_MEMCHECK:BOOL=OFF
+
+//Path to the folder containing the Embree models for regression
+// testing.
+EMBREE_TESTING_MODEL_DIR:PATH=EMBREE_TESTING_MODEL_DIR-NOTFOUND
+
+//Packages release as test.
+EMBREE_TESTING_PACKAGE:BOOL=OFF
+
+//Uses SDE to run tests for specified CPU.
+EMBREE_TESTING_SDE:STRING=OFF
+
+//Enable to build Embree tutorials
+EMBREE_TUTORIALS:BOOL=OFF
+
+//Path to a program.
+GITCOMMAND:FILEPATH=/usr/bin/git
+
+//Git command line client
+GIT_EXECUTABLE:FILEPATH=/usr/bin/git
+
+//Value Computed by CMake
+GLFW_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/glfw
+
+//Build the GLFW documentation
+GLFW_BUILD_DOCS:BOOL=OFF
+
+//Build the GLFW example programs
+GLFW_BUILD_EXAMPLES:BOOL=OFF
+
+//Build the GLFW test programs
+GLFW_BUILD_TESTS:BOOL=OFF
+
+//Generate installation target
+GLFW_INSTALL:BOOL=OFF
+
+//Value Computed by CMake
+GLFW_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/glfw
+
+//Use OSMesa for offscreen context creation
+GLFW_USE_OSMESA:BOOL=OFF
+
+//Use Wayland for window creation
+GLFW_USE_WAYLAND:BOOL=OFF
+
+//Assume the Vulkan loader is linked with the application
+GLFW_VULKAN_STATIC:BOOL=OFF
+
+//Path to a program.
+HGCOMMAND:FILEPATH=HGCOMMAND-NOTFOUND
+
+//Build libigl python bindings
+LIBIGL_BUILD_PYTHON:BOOL=ON
+
+//Build libigl unit test
+LIBIGL_BUILD_TESTS:BOOL=OFF
+
+//Build libigl tutorial
+LIBIGL_BUILD_TUTORIALS:BOOL=OFF
+
+//Check for undefined symbols
+LIBIGL_CHECK_UNDEFINED:BOOL=OFF
+
+//Default version of Eigen used by libigl.
+LIBIGL_EIGEN_VERSION:STRING=3.2.10
+
+//Export libigl CMake targets
+LIBIGL_EXPORT_TARGETS:BOOL=ON
+
+//Skip downloading external libraries
+LIBIGL_SKIP_DOWNLOAD:BOOL=OFF
+
+//Use libigl as static library
+LIBIGL_USE_STATIC_LIBRARY:BOOL=OFF
+
+//Disable Copyleft libraries
+LIBIGL_WITHOUT_COPYLEFT:BOOL=OFF
+
+//Use CGAL
+LIBIGL_WITH_CGAL:BOOL=OFF
+
+//Use CoMiso
+LIBIGL_WITH_COMISO:BOOL=ON
+
+//Use Cork
+LIBIGL_WITH_CORK:BOOL=OFF
+
+//Use Embree
+LIBIGL_WITH_EMBREE:BOOL=ON
+
+//Use Matlab
+LIBIGL_WITH_MATLAB:BOOL=OFF
+
+//Use MOSEK
+LIBIGL_WITH_MOSEK:BOOL=OFF
+
+//Use OpenGL
+LIBIGL_WITH_OPENGL:BOOL=ON
+
+//Use GLFW
+LIBIGL_WITH_OPENGL_GLFW:BOOL=ON
+
+//Use ImGui
+LIBIGL_WITH_OPENGL_GLFW_IMGUI:BOOL=ON
+
+//Use PNG
+LIBIGL_WITH_PNG:BOOL=ON
+
+//Use exact predicates
+LIBIGL_WITH_PREDICATES:BOOL=ON
+
+//Use Python
+LIBIGL_WITH_PYTHON:BOOL=ON
+
+//Use Tetgen
+LIBIGL_WITH_TETGEN:BOOL=ON
+
+//Use Triangle
+LIBIGL_WITH_TRIANGLE:BOOL=ON
+
+//Use XML
+LIBIGL_WITH_XML:BOOL=ON
+
+//Command to build the project
+MAKECOMMAND:STRING=/usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" -- -i
+
+//Path to a library.
+MATH_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libm.so
+
+//Path to the memory checking command, used for memory error detection.
+MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind
+
+//File that contains suppressions for the memory checker
+MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH=
+
+//Path to a file.
+OPENGL_EGL_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_GLX_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+OPENGL_egl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libEGL.so
+
+//Path to a library.
+OPENGL_gl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGL.so
+
+//Path to a library.
+OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLU.so
+
+//Path to a library.
+OPENGL_glx_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLX.so
+
+//Path to a library.
+OPENGL_opengl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libOpenGL.so
+
+//Path to a file.
+OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND
+
+//Path to a program.
+P4COMMAND:FILEPATH=P4COMMAND-NOTFOUND
+
+//C++ standard flag, e.g. -std=c++11, -std=c++14, /std:c++14. 
+// Defaults to C++14 mode.
+PYBIND11_CPP_STANDARD:STRING=-std=c++14
+
+//Path to pybind11
+PYBIND11_DIR:PATH=/home/thuemmel/libs/libigl/python/../external/pybind11
+
+//Install pybind11 header files?
+PYBIND11_INSTALL:BOOL=OFF
+
+//Python version to use for compiling modules
+PYBIND11_PYTHON_VERSION:STRING=
+
+//Build pybind11 test suite?
+PYBIND11_TEST:BOOL=OFF
+
+//Path to a program.
+PYTHON_EXECUTABLE:FILEPATH=/home/thuemmel/anaconda3/bin/python3
+
+//Path to a file.
+PYTHON_INCLUDE_DIR:PATH=/usr/include/python3.6m
+
+//Path to a library.
+PYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython3.6m.so
+
+//Path to a library.
+PYTHON_LIBRARY_DEBUG:FILEPATH=PYTHON_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+RT_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/librt.so
+
+//Path to scp command, used by CTest for submitting results to
+// a Dart server
+SCPCOMMAND:FILEPATH=/usr/bin/scp
+
+//Name of the computer/site where compile is being run
+SITE:STRING=metis
+
+//Path to the SLURM sbatch executable
+SLURM_SBATCH_COMMAND:FILEPATH=SLURM_SBATCH_COMMAND-NOTFOUND
+
+//Path to the SLURM srun executable
+SLURM_SRUN_COMMAND:FILEPATH=SLURM_SRUN_COMMAND-NOTFOUND
+
+//Path to a program.
+SVNCOMMAND:FILEPATH=SVNCOMMAND-NOTFOUND
+
+//Compile chapter 1
+TUTORIALS_CHAPTER1:BOOL=ON
+
+//Compile chapter 2
+TUTORIALS_CHAPTER2:BOOL=ON
+
+//Compile chapter 3
+TUTORIALS_CHAPTER3:BOOL=ON
+
+//Compile chapter 4
+TUTORIALS_CHAPTER4:BOOL=ON
+
+//Compile chapter 5
+TUTORIALS_CHAPTER5:BOOL=ON
+
+//Compile chapter 6
+TUTORIALS_CHAPTER6:BOOL=ON
+
+//Compile chapter 7
+TUTORIALS_CHAPTER7:BOOL=ON
+
+//location of shared tutorial resources
+TUTORIAL_SHARED_PATH:PATH=/home/thuemmel/libs/libigl/cmake/../external/../tutorial/data
+
+//Install pybind11 headers in Python include directory instead
+// of default installation prefix
+USE_PYTHON_INCLUDE_DIR:BOOL=OFF
+
+//Path to a file.
+X11_ICE_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_ICE_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libICE.so
+
+//Path to a file.
+X11_SM_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_SM_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libSM.so
+
+//Path to a file.
+X11_X11_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_X11_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libX11.so
+
+//Path to a file.
+X11_XRes_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_XRes_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXRes.so
+
+//Path to a file.
+X11_XShm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_XSync_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_XTest_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_XTest_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXtst.so
+
+//Path to a file.
+X11_Xaccessrules_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xaccessstr_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xau_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xau_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXau.so
+
+//Path to a file.
+X11_Xcomposite_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xcomposite_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXcomposite.so
+
+//Path to a file.
+X11_Xcursor_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xcursor_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXcursor.so
+
+//Path to a file.
+X11_Xdamage_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xdamage_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXdamage.so
+
+//Path to a file.
+X11_Xdmcp_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xdmcp_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXdmcp.so
+
+//Path to a library.
+X11_Xext_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXext.so
+
+//Path to a file.
+X11_Xfixes_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xfixes_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXfixes.so
+
+//Path to a file.
+X11_Xft_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xft_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXft.so
+
+//Path to a file.
+X11_Xi_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xi_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXi.so
+
+//Path to a file.
+X11_Xinerama_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xinerama_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXinerama.so
+
+//Path to a file.
+X11_Xinput_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xinput_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXi.so
+
+//Path to a file.
+X11_Xkb_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xkbfile_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xkbfile_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libxkbfile.so
+
+//Path to a file.
+X11_Xkblib_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xlib_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xmu_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xmu_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXmu.so
+
+//Path to a file.
+X11_Xpm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xpm_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXpm.so
+
+//Path to a file.
+X11_Xrandr_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xrandr_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXrandr.so
+
+//Path to a file.
+X11_Xrender_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xrender_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXrender.so
+
+//Path to a file.
+X11_Xscreensaver_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xscreensaver_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXss.so
+
+//Path to a file.
+X11_Xshape_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xt_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xt_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXt.so
+
+//Path to a file.
+X11_Xutil_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xv_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xv_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXv.so
+
+//Path to a library.
+X11_Xxf86misc_LIB:FILEPATH=X11_Xxf86misc_LIB-NOTFOUND
+
+//Path to a library.
+X11_Xxf86vm_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXxf86vm.so
+
+//Path to a file.
+X11_dpms_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_xf86misc_INCLUDE_PATH:PATH=X11_xf86misc_INCLUDE_PATH-NOTFOUND
+
+//Path to a file.
+X11_xf86vmode_INCLUDE_PATH:PATH=/usr/include
+
+//Value Computed by CMake
+embree3_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/embree
+
+//Value Computed by CMake
+embree3_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/embree
+
+//Dependencies for the target
+embree_LIB_DEPENDS:STATIC=general;sys;general;math;general;simd;general;lexers;general;tasking;
+
+//Value Computed by CMake
+glad_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/glad
+
+//Dependencies for the target
+glad_LIB_DEPENDS:STATIC=general;dl;
+
+//Value Computed by CMake
+glad_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/glad
+
+//Dependencies for target
+glfw_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+igl_stb_image_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/stb_image
+
+//Dependencies for target
+igl_stb_image_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+igl_stb_image_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/stb
+
+//Dependencies for the target
+imgui_LIB_DEPENDS:STATIC=general;glad;general;glfw;
+
+//Dependencies for the target
+lexers_LIB_DEPENDS:STATIC=general;sys;general;math;
+
+//Value Computed by CMake
+libigl_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2
+
+//Value Computed by CMake
+libigl_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl
+
+//Value Computed by CMake
+libigl_tests_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tests
+
+//Value Computed by CMake
+libigl_tests_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tests
+
+//Value Computed by CMake
+libigl_tutorials_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tutorial
+
+//Value Computed by CMake
+libigl_tutorials_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/tutorial
+
+//Dependencies for target
+math_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+predicates_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/predicates
+
+//Dependencies for target
+predicates_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+predicates_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/predicates
+
+//Value Computed by CMake
+pybind11_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/python/pybind11
+
+//Value Computed by CMake
+pybind11_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/pybind11
+
+//Value Computed by CMake
+pyigl_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/python
+
+//Dependencies for target
+pyigl_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+pyigl_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/python
+
+//Dependencies for target
+simd_LIB_DEPENDS:STATIC=
+
+//Dependencies for the target
+sys_LIB_DEPENDS:STATIC=general;-lpthread;general;dl;
+
+//Dependencies for target
+tasking_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+tetgen_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/tetgen
+
+//Dependencies for target
+tetgen_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+tetgen_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/tetgen
+
+//Dependencies for target
+tinyxml2_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+triangle_BINARY_DIR:STATIC=/home/thuemmel/libs/libigl/build2/triangle
+
+//Dependencies for target
+triangle_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+triangle_SOURCE_DIR:STATIC=/home/thuemmel/libs/libigl/external/triangle
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: BLAS_goto2_LIBRARY
+BLAS_goto2_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_openblas_LIBRARY
+BLAS_openblas_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_openblas_WORKS
+BLAS_openblas_WORKS-ADVANCED:INTERNAL=1
+//Have function sgemm_
+BLAS_openblas_WORKS:INTERNAL=1
+//MODIFIED property for variable: BUILD_TESTING
+BUILD_TESTING-MODIFIED:INTERNAL=ON
+//ADVANCED property for variable: BZRCOMMAND
+BZRCOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//STRINGS property for variable: CMAKE_BUILD_TYPE
+CMAKE_BUILD_TYPE-STRINGS:INTERNAL=Debug;Release;RelWithDebInfo
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/thuemmel/libs/libigl/build2
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=10
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=0
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Have function connect
+CMAKE_HAVE_CONNECT:INTERNAL=1
+//Have function gethostbyname
+CMAKE_HAVE_GETHOSTBYNAME:INTERNAL=1
+//Have symbol pthread_create
+CMAKE_HAVE_LIBC_CREATE:INTERNAL=
+//Have library pthreads
+CMAKE_HAVE_PTHREADS_CREATE:INTERNAL=
+//Have library pthread
+CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1
+//Have include pthread.h
+CMAKE_HAVE_PTHREAD_H:INTERNAL=1
+//Have function remove
+CMAKE_HAVE_REMOVE:INTERNAL=1
+//Have function shmat
+CMAKE_HAVE_SHMAT:INTERNAL=1
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/thuemmel/libs/libigl
+//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
+CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
+CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
+CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
+CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
+CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
+CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
+CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
+CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
+CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
+CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
+CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
+CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
+//MODIFIED property for variable: CMAKE_INSTALL_PREFIX
+CMAKE_INSTALL_PREFIX-MODIFIED:INTERNAL=ON
+//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
+CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
+CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
+CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
+CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
+//Have library ICE
+CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=21
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.10
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=0
+//Compiler support for a deprecated attribute
+COMPILER_HAS_DEPRECATED:INTERNAL=1
+//Test COMPILER_HAS_DEPRECATED_ATTR
+COMPILER_HAS_DEPRECATED_ATTR:INTERNAL=1
+//Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
+COMPILER_HAS_HIDDEN_INLINE_VISIBILITY:INTERNAL=1
+//Test COMPILER_HAS_HIDDEN_VISIBILITY
+COMPILER_HAS_HIDDEN_VISIBILITY:INTERNAL=1
+//ADVANCED property for variable: COVERAGE_COMMAND
+COVERAGE_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: COVERAGE_EXTRA_FLAGS
+COVERAGE_EXTRA_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_RPM
+CPACK_SOURCE_RPM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TBZ2
+CPACK_SOURCE_TBZ2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TGZ
+CPACK_SOURCE_TGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TXZ
+CPACK_SOURCE_TXZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TZ
+CPACK_SOURCE_TZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_ZIP
+CPACK_SOURCE_ZIP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CTEST_SUBMIT_RETRY_COUNT
+CTEST_SUBMIT_RETRY_COUNT-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CTEST_SUBMIT_RETRY_DELAY
+CTEST_SUBMIT_RETRY_DELAY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CVSCOMMAND
+CVSCOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CVS_UPDATE_OPTIONS
+CVS_UPDATE_OPTIONS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: DART_TESTING_TIMEOUT
+DART_TESTING_TIMEOUT-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: EMBREE_INSTALL_DEPENDENCIES
+EMBREE_INSTALL_DEPENDENCIES-ADVANCED:INTERNAL=1
+//STRINGS property for variable: EMBREE_MAX_ISA
+EMBREE_MAX_ISA-STRINGS:INTERNAL=NONE;SSE2;SSE4.2;AVX;AVX2;AVX512KNL;AVX512SKX;DEFAULT
+//ADVANCED property for variable: EMBREE_STATIC_LIB
+EMBREE_STATIC_LIB-ADVANCED:INTERNAL=0
+//MODIFIED property for variable: EMBREE_TASKING_SYSTEM
+EMBREE_TASKING_SYSTEM-MODIFIED:INTERNAL=ON
+//STRINGS property for variable: EMBREE_TASKING_SYSTEM
+EMBREE_TASKING_SYSTEM-STRINGS:INTERNAL=TBB;INTERNAL
+//STRINGS property for variable: EMBREE_TESTING_SDE
+EMBREE_TESTING_SDE-STRINGS:INTERNAL=OFF;pnr;nhm;wsm;snb;ivb;hsw;bdw;knl;skl;skx;cnl
+//Details about finding Git
+FIND_PACKAGE_MESSAGE_DETAILS_Git:INTERNAL=[/usr/bin/git][v2.17.1()]
+//Details about finding OpenGL
+FIND_PACKAGE_MESSAGE_DETAILS_OpenGL:INTERNAL=[/usr/lib/x86_64-linux-gnu/libOpenGL.so][/usr/lib/x86_64-linux-gnu/libGLX.so][/usr/include][c ][v()]
+//Details about finding PYTHON
+FIND_PACKAGE_MESSAGE_DETAILS_PYTHON:INTERNAL=/home/thuemmel/anaconda3/bin/python3
+//Details about finding PythonInterp
+FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/home/thuemmel/anaconda3/bin/python3][v3.7.3(3.4)]
+//Details about finding PythonLibs
+FIND_PACKAGE_MESSAGE_DETAILS_PythonLibs:INTERNAL=[/usr/lib/x86_64-linux-gnu/libpython3.6m.so][/usr/include/python3.6m][v3.6.9(3.4)]
+//Details about finding Threads
+FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
+//Details about finding X11
+FIND_PACKAGE_MESSAGE_DETAILS_X11:INTERNAL=[/usr/lib/x86_64-linux-gnu/libX11.so][/usr/include]
+//ADVANCED property for variable: GITCOMMAND
+GITCOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GIT_EXECUTABLE
+GIT_EXECUTABLE-ADVANCED:INTERNAL=1
+//Test HAS_CPP14_FLAG
+HAS_CPP14_FLAG:INTERNAL=1
+//Test HAS_FLTO
+HAS_FLTO:INTERNAL=1
+//ADVANCED property for variable: HGCOMMAND
+HGCOMMAND-ADVANCED:INTERNAL=1
+//MODIFIED property for variable: LIBIGL_BUILD_TESTS
+LIBIGL_BUILD_TESTS-MODIFIED:INTERNAL=ON
+//MODIFIED property for variable: LIBIGL_BUILD_TUTORIALS
+LIBIGL_BUILD_TUTORIALS-MODIFIED:INTERNAL=ON
+//ADVANCED property for variable: MAKECOMMAND
+MAKECOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MATH_LIBRARY
+MATH_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MEMORYCHECK_COMMAND
+MEMORYCHECK_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MEMORYCHECK_SUPPRESSIONS_FILE
+MEMORYCHECK_SUPPRESSIONS_FILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_EGL_INCLUDE_DIR
+OPENGL_EGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_GLX_INCLUDE_DIR
+OPENGL_GLX_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_INCLUDE_DIR
+OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_egl_LIBRARY
+OPENGL_egl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_gl_LIBRARY
+OPENGL_gl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_glu_LIBRARY
+OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_glx_LIBRARY
+OPENGL_glx_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_opengl_LIBRARY
+OPENGL_opengl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_xmesa_INCLUDE_DIR
+OPENGL_xmesa_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: P4COMMAND
+P4COMMAND-ADVANCED:INTERNAL=1
+PYBIND11_INCLUDE_DIR:INTERNAL=/home/thuemmel/libs/libigl/external/pybind11/include
+PYBIND11_LTO_CXX_FLAGS:INTERNAL=-flto;-fno-fat-lto-objects
+PYBIND11_LTO_LINKER_FLAGS:INTERNAL=-flto
+PYBIND11_VERSION_MAJOR:INTERNAL=2
+PYBIND11_VERSION_MINOR:INTERNAL=3
+PYBIND11_VERSION_PATCH:INTERNAL=dev0
+//ADVANCED property for variable: PYTHON_EXECUTABLE
+PYTHON_EXECUTABLE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: PYTHON_INCLUDE_DIR
+PYTHON_INCLUDE_DIR-ADVANCED:INTERNAL=1
+PYTHON_INCLUDE_DIRS:INTERNAL=/usr/include/python3.6m
+PYTHON_LIBRARIES:INTERNAL=/usr/lib/x86_64-linux-gnu/libpython3.6m.so
+//ADVANCED property for variable: PYTHON_LIBRARY
+PYTHON_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: PYTHON_LIBRARY_DEBUG
+PYTHON_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+PYTHON_MODULE_EXTENSION:INTERNAL=.cpython-37m-x86_64-linux-gnu.so
+PYTHON_MODULE_PREFIX:INTERNAL=
+//ADVANCED property for variable: RT_LIBRARY
+RT_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: SCPCOMMAND
+SCPCOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: SITE
+SITE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: SLURM_SBATCH_COMMAND
+SLURM_SBATCH_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: SLURM_SRUN_COMMAND
+SLURM_SRUN_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: SVNCOMMAND
+SVNCOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_ICE_INCLUDE_PATH
+X11_ICE_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_ICE_LIB
+X11_ICE_LIB-ADVANCED:INTERNAL=1
+//Have library /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
+X11_LIB_X11_SOLO:INTERNAL=1
+//ADVANCED property for variable: X11_SM_INCLUDE_PATH
+X11_SM_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_SM_LIB
+X11_SM_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_INCLUDE_PATH
+X11_X11_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_LIB
+X11_X11_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XRes_INCLUDE_PATH
+X11_XRes_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XRes_LIB
+X11_XRes_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XShm_INCLUDE_PATH
+X11_XShm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XSync_INCLUDE_PATH
+X11_XSync_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XTest_INCLUDE_PATH
+X11_XTest_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XTest_LIB
+X11_XTest_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaccessrules_INCLUDE_PATH
+X11_Xaccessrules_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaccessstr_INCLUDE_PATH
+X11_Xaccessstr_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xau_INCLUDE_PATH
+X11_Xau_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xau_LIB
+X11_Xau_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcomposite_INCLUDE_PATH
+X11_Xcomposite_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcomposite_LIB
+X11_Xcomposite_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcursor_INCLUDE_PATH
+X11_Xcursor_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcursor_LIB
+X11_Xcursor_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdamage_INCLUDE_PATH
+X11_Xdamage_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdamage_LIB
+X11_Xdamage_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdmcp_INCLUDE_PATH
+X11_Xdmcp_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdmcp_LIB
+X11_Xdmcp_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xext_LIB
+X11_Xext_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xfixes_INCLUDE_PATH
+X11_Xfixes_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xfixes_LIB
+X11_Xfixes_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xft_INCLUDE_PATH
+X11_Xft_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xft_LIB
+X11_Xft_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xi_INCLUDE_PATH
+X11_Xi_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xi_LIB
+X11_Xi_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinerama_INCLUDE_PATH
+X11_Xinerama_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinerama_LIB
+X11_Xinerama_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinput_INCLUDE_PATH
+X11_Xinput_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinput_LIB
+X11_Xinput_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkb_INCLUDE_PATH
+X11_Xkb_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkbfile_INCLUDE_PATH
+X11_Xkbfile_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkbfile_LIB
+X11_Xkbfile_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkblib_INCLUDE_PATH
+X11_Xkblib_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xlib_INCLUDE_PATH
+X11_Xlib_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xmu_INCLUDE_PATH
+X11_Xmu_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xmu_LIB
+X11_Xmu_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xpm_INCLUDE_PATH
+X11_Xpm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xpm_LIB
+X11_Xpm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrandr_INCLUDE_PATH
+X11_Xrandr_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrandr_LIB
+X11_Xrandr_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrender_INCLUDE_PATH
+X11_Xrender_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrender_LIB
+X11_Xrender_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xscreensaver_INCLUDE_PATH
+X11_Xscreensaver_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xscreensaver_LIB
+X11_Xscreensaver_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xshape_INCLUDE_PATH
+X11_Xshape_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xt_INCLUDE_PATH
+X11_Xt_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xt_LIB
+X11_Xt_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xutil_INCLUDE_PATH
+X11_Xutil_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xv_INCLUDE_PATH
+X11_Xv_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xv_LIB
+X11_Xv_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86misc_LIB
+X11_Xxf86misc_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86vm_LIB
+X11_Xxf86vm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_dpms_INCLUDE_PATH
+X11_dpms_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xf86misc_INCLUDE_PATH
+X11_xf86misc_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xf86vmode_INCLUDE_PATH
+X11_xf86vmode_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//CMAKE_INSTALL_PREFIX during last run
+_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/home/thuemmel/libs/libigl/build2/install
+

+ 105 - 0
build2/CPackConfig.cmake

@@ -0,0 +1,105 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+#  cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK_<GENNAME>_xxxx.
+
+
+SET(CPACK_BINARY_7Z "")
+SET(CPACK_BINARY_BUNDLE "")
+SET(CPACK_BINARY_CYGWIN "")
+SET(CPACK_BINARY_DEB "")
+SET(CPACK_BINARY_DRAGNDROP "")
+SET(CPACK_BINARY_FREEBSD "")
+SET(CPACK_BINARY_IFW "")
+SET(CPACK_BINARY_NSIS "")
+SET(CPACK_BINARY_OSXX11 "")
+SET(CPACK_BINARY_PACKAGEMAKER "")
+SET(CPACK_BINARY_PRODUCTBUILD "")
+SET(CPACK_BINARY_RPM "")
+SET(CPACK_BINARY_STGZ "")
+SET(CPACK_BINARY_TBZ2 "")
+SET(CPACK_BINARY_TGZ "")
+SET(CPACK_BINARY_TXZ "")
+SET(CPACK_BINARY_TZ "")
+SET(CPACK_BINARY_WIX "")
+SET(CPACK_BINARY_ZIP "")
+SET(CPACK_BUILD_SOURCE_DIRS "/home/thuemmel/libs/libigl;/home/thuemmel/libs/libigl/build2")
+SET(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+SET(CPACK_COMPONENTS_ALL "devel;lib;examples")
+SET(CPACK_COMPONENTS_ALL_SET_BY_USER "TRUE")
+SET(CPACK_COMPONENT_DEVEL_DESCRIPTION "Header Files for C and ISPC required to develop applications with Embree.")
+SET(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "Development")
+SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Tutorials demonstrating how to use Embree.")
+SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples")
+SET(CPACK_COMPONENT_LIB_DESCRIPTION "The Embree library including documentation.")
+SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library")
+SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+SET(CPACK_GENERATOR "RPM")
+SET(CPACK_INSTALL_CMAKE_PROJECTS "/home/thuemmel/libs/libigl/build2;libigl;ALL;/")
+SET(CPACK_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+SET(CPACK_MODULE_PATH "/home/thuemmel/libs/libigl/external/embree/common/cmake;/home/thuemmel/libs/libigl/cmake;/home/thuemmel/libs/libigl")
+SET(CPACK_NSIS_DISPLAY_NAME "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_NSIS_INSTALLER_ICON_CODE "")
+SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+SET(CPACK_NSIS_PACKAGE_NAME "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_OUTPUT_CONFIG_FILE "/home/thuemmel/libs/libigl/build2/CPackConfig.cmake")
+SET(CPACK_PACKAGE_CONTACT "embree_support@intel.com")
+SET(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-3.10/Templates/CPack.GenericDescription.txt")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Embree: High Performance Ray Tracing Kernels")
+SET(CPACK_PACKAGE_FILE_NAME "embree-3.5.2")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_PACKAGE_NAME "Embree Ray Tracing Kernels")
+SET(CPACK_PACKAGE_RELOCATABLE "true")
+SET(CPACK_PACKAGE_VENDOR "Intel Corporation")
+SET(CPACK_PACKAGE_VERSION "3.5.2")
+SET(CPACK_PACKAGE_VERSION_MAJOR "3")
+SET(CPACK_PACKAGE_VERSION_MINOR "5")
+SET(CPACK_PACKAGE_VERSION_PATCH "2")
+SET(CPACK_RESOURCE_FILE_LICENSE "/home/thuemmel/libs/libigl/external/embree/LICENSE.txt")
+SET(CPACK_RESOURCE_FILE_README "/home/thuemmel/libs/libigl/external/embree/README.md")
+SET(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-3.10/Templates/CPack.GenericWelcome.txt")
+SET(CPACK_RPM_CHANGELOG_FILE "/home/thuemmel/libs/libigl/build2/rpm_changelog.txt")
+SET(CPACK_RPM_COMPONENT_INSTALL "ON")
+SET(CPACK_RPM_DEFAULT_DIR_PERMISSIONS "OWNER_READ;OWNER_WRITE;OWNER_EXECUTE;GROUP_READ;GROUP_EXECUTE;WORLD_READ;WORLD_EXECUTE")
+SET(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
+SET(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
+SET(CPACK_RPM_PACKAGE_LICENSE "ASL 2.0")
+SET(CPACK_RPM_PACKAGE_NAME "embree3")
+SET(CPACK_RPM_PACKAGE_RELEASE "1")
+SET(CPACK_RPM_PACKAGE_URL "http://embree.github.io/")
+SET(CPACK_RPM_devel_PACKAGE_ARCHITECTURE "noarch")
+SET(CPACK_RPM_lib_POST_INSTALL_SCRIPT_FILE "/home/thuemmel/libs/libigl/external/embree/common/cmake/rpm_ldconfig.sh")
+SET(CPACK_RPM_lib_POST_UNINSTALL_SCRIPT_FILE "/home/thuemmel/libs/libigl/external/embree/common/cmake/rpm_ldconfig.sh")
+SET(CPACK_SET_DESTDIR "OFF")
+SET(CPACK_SOURCE_7Z "")
+SET(CPACK_SOURCE_CYGWIN "")
+SET(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+SET(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake")
+SET(CPACK_SOURCE_RPM "OFF")
+SET(CPACK_SOURCE_TBZ2 "ON")
+SET(CPACK_SOURCE_TGZ "ON")
+SET(CPACK_SOURCE_TXZ "ON")
+SET(CPACK_SOURCE_TZ "ON")
+SET(CPACK_SOURCE_ZIP "OFF")
+SET(CPACK_STRIP_FILES "FALSE")
+SET(CPACK_SYSTEM_NAME "Linux")
+SET(CPACK_TOPLEVEL_TAG "Linux")
+SET(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+  set(CPACK_PROPERTIES_FILE "/home/thuemmel/libs/libigl/build2/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+  include(${CPACK_PROPERTIES_FILE})
+endif()

+ 112 - 0
build2/CPackSourceConfig.cmake

@@ -0,0 +1,112 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+#  cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK_<GENNAME>_xxxx.
+
+
+SET(CPACK_BINARY_7Z "")
+SET(CPACK_BINARY_BUNDLE "")
+SET(CPACK_BINARY_CYGWIN "")
+SET(CPACK_BINARY_DEB "")
+SET(CPACK_BINARY_DRAGNDROP "")
+SET(CPACK_BINARY_FREEBSD "")
+SET(CPACK_BINARY_IFW "")
+SET(CPACK_BINARY_NSIS "")
+SET(CPACK_BINARY_OSXX11 "")
+SET(CPACK_BINARY_PACKAGEMAKER "")
+SET(CPACK_BINARY_PRODUCTBUILD "")
+SET(CPACK_BINARY_RPM "")
+SET(CPACK_BINARY_STGZ "")
+SET(CPACK_BINARY_TBZ2 "")
+SET(CPACK_BINARY_TGZ "")
+SET(CPACK_BINARY_TXZ "")
+SET(CPACK_BINARY_TZ "")
+SET(CPACK_BINARY_WIX "")
+SET(CPACK_BINARY_ZIP "")
+SET(CPACK_BUILD_SOURCE_DIRS "/home/thuemmel/libs/libigl;/home/thuemmel/libs/libigl/build2")
+SET(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+SET(CPACK_COMPONENTS_ALL "devel;lib;examples")
+SET(CPACK_COMPONENTS_ALL_SET_BY_USER "TRUE")
+SET(CPACK_COMPONENT_DEVEL_DESCRIPTION "Header Files for C and ISPC required to develop applications with Embree.")
+SET(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "Development")
+SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Tutorials demonstrating how to use Embree.")
+SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples")
+SET(CPACK_COMPONENT_LIB_DESCRIPTION "The Embree library including documentation.")
+SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library")
+SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+SET(CPACK_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+SET(CPACK_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
+SET(CPACK_INSTALLED_DIRECTORIES "/home/thuemmel/libs/libigl;/")
+SET(CPACK_INSTALL_CMAKE_PROJECTS "")
+SET(CPACK_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+SET(CPACK_MODULE_PATH "/home/thuemmel/libs/libigl/external/embree/common/cmake;/home/thuemmel/libs/libigl/cmake;/home/thuemmel/libs/libigl")
+SET(CPACK_NSIS_DISPLAY_NAME "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_NSIS_INSTALLER_ICON_CODE "")
+SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+SET(CPACK_NSIS_PACKAGE_NAME "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_OUTPUT_CONFIG_FILE "/home/thuemmel/libs/libigl/build2/CPackConfig.cmake")
+SET(CPACK_PACKAGE_CONTACT "embree_support@intel.com")
+SET(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-3.10/Templates/CPack.GenericDescription.txt")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Embree: High Performance Ray Tracing Kernels")
+SET(CPACK_PACKAGE_FILE_NAME "Embree Ray Tracing Kernels-3.5.2-Source")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Embree Ray Tracing Kernels 3.5.2")
+SET(CPACK_PACKAGE_NAME "Embree Ray Tracing Kernels")
+SET(CPACK_PACKAGE_RELOCATABLE "true")
+SET(CPACK_PACKAGE_VENDOR "Intel Corporation")
+SET(CPACK_PACKAGE_VERSION "3.5.2")
+SET(CPACK_PACKAGE_VERSION_MAJOR "3")
+SET(CPACK_PACKAGE_VERSION_MINOR "5")
+SET(CPACK_PACKAGE_VERSION_PATCH "2")
+SET(CPACK_RESOURCE_FILE_LICENSE "/home/thuemmel/libs/libigl/external/embree/LICENSE.txt")
+SET(CPACK_RESOURCE_FILE_README "/home/thuemmel/libs/libigl/external/embree/README.md")
+SET(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-3.10/Templates/CPack.GenericWelcome.txt")
+SET(CPACK_RPM_CHANGELOG_FILE "/home/thuemmel/libs/libigl/build2/rpm_changelog.txt")
+SET(CPACK_RPM_COMPONENT_INSTALL "ON")
+SET(CPACK_RPM_DEFAULT_DIR_PERMISSIONS "OWNER_READ;OWNER_WRITE;OWNER_EXECUTE;GROUP_READ;GROUP_EXECUTE;WORLD_READ;WORLD_EXECUTE")
+SET(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
+SET(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
+SET(CPACK_RPM_PACKAGE_LICENSE "ASL 2.0")
+SET(CPACK_RPM_PACKAGE_NAME "embree3")
+SET(CPACK_RPM_PACKAGE_RELEASE "1")
+SET(CPACK_RPM_PACKAGE_SOURCES "ON")
+SET(CPACK_RPM_PACKAGE_URL "http://embree.github.io/")
+SET(CPACK_RPM_devel_PACKAGE_ARCHITECTURE "noarch")
+SET(CPACK_RPM_lib_POST_INSTALL_SCRIPT_FILE "/home/thuemmel/libs/libigl/external/embree/common/cmake/rpm_ldconfig.sh")
+SET(CPACK_RPM_lib_POST_UNINSTALL_SCRIPT_FILE "/home/thuemmel/libs/libigl/external/embree/common/cmake/rpm_ldconfig.sh")
+SET(CPACK_SET_DESTDIR "OFF")
+SET(CPACK_SOURCE_7Z "")
+SET(CPACK_SOURCE_CYGWIN "")
+SET(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+SET(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
+SET(CPACK_SOURCE_INSTALLED_DIRECTORIES "/home/thuemmel/libs/libigl;/")
+SET(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake")
+SET(CPACK_SOURCE_PACKAGE_FILE_NAME "Embree Ray Tracing Kernels-3.5.2-Source")
+SET(CPACK_SOURCE_RPM "OFF")
+SET(CPACK_SOURCE_TBZ2 "ON")
+SET(CPACK_SOURCE_TGZ "ON")
+SET(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source")
+SET(CPACK_SOURCE_TXZ "ON")
+SET(CPACK_SOURCE_TZ "ON")
+SET(CPACK_SOURCE_ZIP "OFF")
+SET(CPACK_STRIP_FILES "")
+SET(CPACK_SYSTEM_NAME "Linux")
+SET(CPACK_TOPLEVEL_TAG "Linux-Source")
+SET(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+  set(CPACK_PROPERTIES_FILE "/home/thuemmel/libs/libigl/build2/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+  include(${CPACK_PROPERTIES_FILE})
+endif()

+ 17 - 0
build2/CTestTestfile.cmake

@@ -0,0 +1,17 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl
+# Build directory: /home/thuemmel/libs/libigl/build2
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("CoMISo")
+subdirs("embree")
+subdirs("glad")
+subdirs("glfw")
+subdirs("imgui")
+subdirs("stb_image")
+subdirs("tetgen")
+subdirs("triangle")
+subdirs("predicates")
+subdirs("tests")
+subdirs("python")

+ 374 - 0
build2/CoMISo/Makefile

@@ -0,0 +1,374 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/CoMISo/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 CoMISo/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 CoMISo/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 CoMISo/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 CoMISo/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+CoMISo/CMakeFiles/CoMISo.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 CoMISo/CMakeFiles/CoMISo.dir/rule
+.PHONY : CoMISo/CMakeFiles/CoMISo.dir/rule
+
+# Convenience name for target.
+CoMISo: CoMISo/CMakeFiles/CoMISo.dir/rule
+
+.PHONY : CoMISo
+
+# fast build rule for target.
+CoMISo/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/build
+.PHONY : CoMISo/fast
+
+Solver/ConstrainedSolver.o: Solver/ConstrainedSolver.cc.o
+
+.PHONY : Solver/ConstrainedSolver.o
+
+# target to build an object file
+Solver/ConstrainedSolver.cc.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/ConstrainedSolver.cc.o
+.PHONY : Solver/ConstrainedSolver.cc.o
+
+Solver/ConstrainedSolver.i: Solver/ConstrainedSolver.cc.i
+
+.PHONY : Solver/ConstrainedSolver.i
+
+# target to preprocess a source file
+Solver/ConstrainedSolver.cc.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/ConstrainedSolver.cc.i
+.PHONY : Solver/ConstrainedSolver.cc.i
+
+Solver/ConstrainedSolver.s: Solver/ConstrainedSolver.cc.s
+
+.PHONY : Solver/ConstrainedSolver.s
+
+# target to generate assembly for a file
+Solver/ConstrainedSolver.cc.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/ConstrainedSolver.cc.s
+.PHONY : Solver/ConstrainedSolver.cc.s
+
+Solver/EigenLDLTSolver.o: Solver/EigenLDLTSolver.cc.o
+
+.PHONY : Solver/EigenLDLTSolver.o
+
+# target to build an object file
+Solver/EigenLDLTSolver.cc.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/EigenLDLTSolver.cc.o
+.PHONY : Solver/EigenLDLTSolver.cc.o
+
+Solver/EigenLDLTSolver.i: Solver/EigenLDLTSolver.cc.i
+
+.PHONY : Solver/EigenLDLTSolver.i
+
+# target to preprocess a source file
+Solver/EigenLDLTSolver.cc.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/EigenLDLTSolver.cc.i
+.PHONY : Solver/EigenLDLTSolver.cc.i
+
+Solver/EigenLDLTSolver.s: Solver/EigenLDLTSolver.cc.s
+
+.PHONY : Solver/EigenLDLTSolver.s
+
+# target to generate assembly for a file
+Solver/EigenLDLTSolver.cc.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/EigenLDLTSolver.cc.s
+.PHONY : Solver/EigenLDLTSolver.cc.s
+
+Solver/GMM_Tools.o: Solver/GMM_Tools.cc.o
+
+.PHONY : Solver/GMM_Tools.o
+
+# target to build an object file
+Solver/GMM_Tools.cc.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/GMM_Tools.cc.o
+.PHONY : Solver/GMM_Tools.cc.o
+
+Solver/GMM_Tools.i: Solver/GMM_Tools.cc.i
+
+.PHONY : Solver/GMM_Tools.i
+
+# target to preprocess a source file
+Solver/GMM_Tools.cc.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/GMM_Tools.cc.i
+.PHONY : Solver/GMM_Tools.cc.i
+
+Solver/GMM_Tools.s: Solver/GMM_Tools.cc.s
+
+.PHONY : Solver/GMM_Tools.s
+
+# target to generate assembly for a file
+Solver/GMM_Tools.cc.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/GMM_Tools.cc.s
+.PHONY : Solver/GMM_Tools.cc.s
+
+Solver/IterativeSolverT.o: Solver/IterativeSolverT.cc.o
+
+.PHONY : Solver/IterativeSolverT.o
+
+# target to build an object file
+Solver/IterativeSolverT.cc.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/IterativeSolverT.cc.o
+.PHONY : Solver/IterativeSolverT.cc.o
+
+Solver/IterativeSolverT.i: Solver/IterativeSolverT.cc.i
+
+.PHONY : Solver/IterativeSolverT.i
+
+# target to preprocess a source file
+Solver/IterativeSolverT.cc.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/IterativeSolverT.cc.i
+.PHONY : Solver/IterativeSolverT.cc.i
+
+Solver/IterativeSolverT.s: Solver/IterativeSolverT.cc.s
+
+.PHONY : Solver/IterativeSolverT.s
+
+# target to generate assembly for a file
+Solver/IterativeSolverT.cc.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/IterativeSolverT.cc.s
+.PHONY : Solver/IterativeSolverT.cc.s
+
+Solver/MISolver.o: Solver/MISolver.cc.o
+
+.PHONY : Solver/MISolver.o
+
+# target to build an object file
+Solver/MISolver.cc.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/MISolver.cc.o
+.PHONY : Solver/MISolver.cc.o
+
+Solver/MISolver.i: Solver/MISolver.cc.i
+
+.PHONY : Solver/MISolver.i
+
+# target to preprocess a source file
+Solver/MISolver.cc.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/MISolver.cc.i
+.PHONY : Solver/MISolver.cc.i
+
+Solver/MISolver.s: Solver/MISolver.cc.s
+
+.PHONY : Solver/MISolver.s
+
+# target to generate assembly for a file
+Solver/MISolver.cc.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/Solver/MISolver.cc.s
+.PHONY : Solver/MISolver.cc.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... CoMISo"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... Solver/ConstrainedSolver.o"
+	@echo "... Solver/ConstrainedSolver.i"
+	@echo "... Solver/ConstrainedSolver.s"
+	@echo "... Solver/EigenLDLTSolver.o"
+	@echo "... Solver/EigenLDLTSolver.i"
+	@echo "... Solver/EigenLDLTSolver.s"
+	@echo "... Solver/GMM_Tools.o"
+	@echo "... Solver/GMM_Tools.i"
+	@echo "... Solver/GMM_Tools.s"
+	@echo "... Solver/IterativeSolverT.o"
+	@echo "... Solver/IterativeSolverT.i"
+	@echo "... Solver/IterativeSolverT.s"
+	@echo "... Solver/MISolver.o"
+	@echo "... Solver/MISolver.i"
+	@echo "... Solver/MISolver.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 39 - 0
build2/CoMISo/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/CoMISo
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+

+ 115 - 0
build2/DartConfiguration.tcl

@@ -0,0 +1,115 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /home/thuemmel/libs/libigl
+BuildDirectory: /home/thuemmel/libs/libigl/build2
+
+# Where to place the cost data store
+CostDataFile: 
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: metis
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: Linux-c++
+
+# Subprojects
+LabelsForSubprojects: 
+
+# Submission information
+IsCDash: 
+CDashVersion: 
+QueryCDashVersion: 
+DropSite: 
+DropLocation: 
+DropSiteUser: 
+DropSitePassword: 
+DropSiteMode: 
+DropMethod: http
+TriggerSite: 
+ScpCommand: /usr/bin/scp
+
+# Dashboard start time
+NightlyStartTime: 00:00:00 EDT
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" "/home/thuemmel/libs/libigl"
+MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" -- -i
+DefaultCTestConfigurationType: Release
+
+# version control
+UpdateVersionOnly: 
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: CVSCOMMAND-NOTFOUND
+CVSUpdateOptions: -d -A -P
+
+# Subversion options
+SVNCommand: SVNCOMMAND-NOTFOUND
+SVNOptions: 
+SVNUpdateOptions: 
+
+# Git options
+GITCommand: /usr/bin/git
+GITInitSubmodules: 
+GITUpdateOptions: 
+GITUpdateCustom: 
+
+# Perforce options
+P4Command: P4COMMAND-NOTFOUND
+P4Client: 
+P4Options: 
+P4UpdateOptions: 
+P4UpdateCustom: 
+
+# Generic update command
+UpdateCommand: /usr/bin/git
+UpdateOptions: 
+UpdateType: git
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 7.5.0
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: 
+ValgrindCommand: 
+ValgrindCommandOptions: 
+MemoryCheckType: 
+MemoryCheckSanitizerOptions: 
+MemoryCheckCommand: /usr/bin/valgrind
+MemoryCheckCommandOptions: 
+MemoryCheckSuppressionFile: 
+
+# Coverage
+CoverageCommand: /usr/bin/gcov
+CoverageExtraFlags: -l
+
+# Cluster commands
+SlurmBatchCommand: SLURM_SBATCH_COMMAND-NOTFOUND
+SlurmRunCommand: SLURM_SRUN_COMMAND-NOTFOUND
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 1500
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: 
+
+UseLaunchers: 
+CurlOptions: 
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 5
+CTestSubmitRetryCount: 3

+ 504 - 0
build2/Makefile

@@ -0,0 +1,504 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	/usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	/usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/CMakeFiles/progress.marks
+	$(MAKE) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named tinyxml2
+
+# Build rule for target.
+tinyxml2: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 tinyxml2
+.PHONY : tinyxml2
+
+# fast build rule for target.
+tinyxml2/fast:
+	$(MAKE) -f CMakeFiles/tinyxml2.dir/build.make CMakeFiles/tinyxml2.dir/build
+.PHONY : tinyxml2/fast
+
+#=============================================================================
+# Target rules for targets named CoMISo
+
+# Build rule for target.
+CoMISo: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 CoMISo
+.PHONY : CoMISo
+
+# fast build rule for target.
+CoMISo/fast:
+	$(MAKE) -f CoMISo/CMakeFiles/CoMISo.dir/build.make CoMISo/CMakeFiles/CoMISo.dir/build
+.PHONY : CoMISo/fast
+
+#=============================================================================
+# Target rules for targets named uninstall
+
+# Build rule for target.
+uninstall: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 uninstall
+.PHONY : uninstall
+
+# fast build rule for target.
+uninstall/fast:
+	$(MAKE) -f embree/CMakeFiles/uninstall.dir/build.make embree/CMakeFiles/uninstall.dir/build
+.PHONY : uninstall/fast
+
+#=============================================================================
+# Target rules for targets named sys
+
+# Build rule for target.
+sys: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 sys
+.PHONY : sys
+
+# fast build rule for target.
+sys/fast:
+	$(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/build
+.PHONY : sys/fast
+
+#=============================================================================
+# Target rules for targets named math
+
+# Build rule for target.
+math: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 math
+.PHONY : math
+
+# fast build rule for target.
+math/fast:
+	$(MAKE) -f embree/common/math/CMakeFiles/math.dir/build.make embree/common/math/CMakeFiles/math.dir/build
+.PHONY : math/fast
+
+#=============================================================================
+# Target rules for targets named simd
+
+# Build rule for target.
+simd: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 simd
+.PHONY : simd
+
+# fast build rule for target.
+simd/fast:
+	$(MAKE) -f embree/common/simd/CMakeFiles/simd.dir/build.make embree/common/simd/CMakeFiles/simd.dir/build
+.PHONY : simd/fast
+
+#=============================================================================
+# Target rules for targets named lexers
+
+# Build rule for target.
+lexers: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 lexers
+.PHONY : lexers
+
+# fast build rule for target.
+lexers/fast:
+	$(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/build
+.PHONY : lexers/fast
+
+#=============================================================================
+# Target rules for targets named tasking
+
+# Build rule for target.
+tasking: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 tasking
+.PHONY : tasking
+
+# fast build rule for target.
+tasking/fast:
+	$(MAKE) -f embree/common/tasking/CMakeFiles/tasking.dir/build.make embree/common/tasking/CMakeFiles/tasking.dir/build
+.PHONY : tasking/fast
+
+#=============================================================================
+# Target rules for targets named algorithms
+
+# Build rule for target.
+algorithms: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 algorithms
+.PHONY : algorithms
+
+# fast build rule for target.
+algorithms/fast:
+	$(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/build
+.PHONY : algorithms/fast
+
+#=============================================================================
+# Target rules for targets named embree_check_stack_frame_size
+
+# Build rule for target.
+embree_check_stack_frame_size: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 embree_check_stack_frame_size
+.PHONY : embree_check_stack_frame_size
+
+# fast build rule for target.
+embree_check_stack_frame_size/fast:
+	$(MAKE) -f embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/build.make embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/build
+.PHONY : embree_check_stack_frame_size/fast
+
+#=============================================================================
+# Target rules for targets named embree
+
+# Build rule for target.
+embree: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 embree
+.PHONY : embree
+
+# fast build rule for target.
+embree/fast:
+	$(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/build
+.PHONY : embree/fast
+
+#=============================================================================
+# Target rules for targets named glad
+
+# Build rule for target.
+glad: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 glad
+.PHONY : glad
+
+# fast build rule for target.
+glad/fast:
+	$(MAKE) -f glad/CMakeFiles/glad.dir/build.make glad/CMakeFiles/glad.dir/build
+.PHONY : glad/fast
+
+#=============================================================================
+# Target rules for targets named glfw
+
+# Build rule for target.
+glfw: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 glfw
+.PHONY : glfw
+
+# fast build rule for target.
+glfw/fast:
+	$(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/build
+.PHONY : glfw/fast
+
+#=============================================================================
+# Target rules for targets named imgui
+
+# Build rule for target.
+imgui: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 imgui
+.PHONY : imgui
+
+# fast build rule for target.
+imgui/fast:
+	$(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/build
+.PHONY : imgui/fast
+
+#=============================================================================
+# Target rules for targets named igl_stb_image
+
+# Build rule for target.
+igl_stb_image: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 igl_stb_image
+.PHONY : igl_stb_image
+
+# fast build rule for target.
+igl_stb_image/fast:
+	$(MAKE) -f stb_image/CMakeFiles/igl_stb_image.dir/build.make stb_image/CMakeFiles/igl_stb_image.dir/build
+.PHONY : igl_stb_image/fast
+
+#=============================================================================
+# Target rules for targets named tetgen
+
+# Build rule for target.
+tetgen: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 tetgen
+.PHONY : tetgen
+
+# fast build rule for target.
+tetgen/fast:
+	$(MAKE) -f tetgen/CMakeFiles/tetgen.dir/build.make tetgen/CMakeFiles/tetgen.dir/build
+.PHONY : tetgen/fast
+
+#=============================================================================
+# Target rules for targets named triangle
+
+# Build rule for target.
+triangle: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 triangle
+.PHONY : triangle
+
+# fast build rule for target.
+triangle/fast:
+	$(MAKE) -f triangle/CMakeFiles/triangle.dir/build.make triangle/CMakeFiles/triangle.dir/build
+.PHONY : triangle/fast
+
+#=============================================================================
+# Target rules for targets named predicates
+
+# Build rule for target.
+predicates: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 predicates
+.PHONY : predicates
+
+# fast build rule for target.
+predicates/fast:
+	$(MAKE) -f predicates/CMakeFiles/predicates.dir/build.make predicates/CMakeFiles/predicates.dir/build
+.PHONY : predicates/fast
+
+#=============================================================================
+# Target rules for targets named pyigl
+
+# Build rule for target.
+pyigl: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 pyigl
+.PHONY : pyigl
+
+# fast build rule for target.
+pyigl/fast:
+	$(MAKE) -f python/CMakeFiles/pyigl.dir/build.make python/CMakeFiles/pyigl.dir/build
+.PHONY : pyigl/fast
+
+external/tinyxml2/tinyxml2.o: external/tinyxml2/tinyxml2.cpp.o
+
+.PHONY : external/tinyxml2/tinyxml2.o
+
+# target to build an object file
+external/tinyxml2/tinyxml2.cpp.o:
+	$(MAKE) -f CMakeFiles/tinyxml2.dir/build.make CMakeFiles/tinyxml2.dir/external/tinyxml2/tinyxml2.cpp.o
+.PHONY : external/tinyxml2/tinyxml2.cpp.o
+
+external/tinyxml2/tinyxml2.i: external/tinyxml2/tinyxml2.cpp.i
+
+.PHONY : external/tinyxml2/tinyxml2.i
+
+# target to preprocess a source file
+external/tinyxml2/tinyxml2.cpp.i:
+	$(MAKE) -f CMakeFiles/tinyxml2.dir/build.make CMakeFiles/tinyxml2.dir/external/tinyxml2/tinyxml2.cpp.i
+.PHONY : external/tinyxml2/tinyxml2.cpp.i
+
+external/tinyxml2/tinyxml2.s: external/tinyxml2/tinyxml2.cpp.s
+
+.PHONY : external/tinyxml2/tinyxml2.s
+
+# target to generate assembly for a file
+external/tinyxml2/tinyxml2.cpp.s:
+	$(MAKE) -f CMakeFiles/tinyxml2.dir/build.make CMakeFiles/tinyxml2.dir/external/tinyxml2/tinyxml2.cpp.s
+.PHONY : external/tinyxml2/tinyxml2.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... package_source"
+	@echo "... package"
+	@echo "... tinyxml2"
+	@echo "... install/local"
+	@echo "... edit_cache"
+	@echo "... CoMISo"
+	@echo "... uninstall"
+	@echo "... sys"
+	@echo "... math"
+	@echo "... simd"
+	@echo "... lexers"
+	@echo "... tasking"
+	@echo "... algorithms"
+	@echo "... embree_check_stack_frame_size"
+	@echo "... embree"
+	@echo "... glad"
+	@echo "... glfw"
+	@echo "... imgui"
+	@echo "... igl_stb_image"
+	@echo "... tetgen"
+	@echo "... triangle"
+	@echo "... predicates"
+	@echo "... pyigl"
+	@echo "... external/tinyxml2/tinyxml2.o"
+	@echo "... external/tinyxml2/tinyxml2.i"
+	@echo "... external/tinyxml2/tinyxml2.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 884 - 0
build2/cmake_install.cmake

@@ -0,0 +1,884 @@
+# Install script for directory: /home/thuemmel/libs/libigl
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/igl" TYPE FILE FILES
+    "/home/thuemmel/libs/libigl/include/igl/AABB.h"
+    "/home/thuemmel/libs/libigl/include/igl/ARAPEnergyType.h"
+    "/home/thuemmel/libs/libigl/include/igl/AtA_cached.h"
+    "/home/thuemmel/libs/libigl/include/igl/C_STR.h"
+    "/home/thuemmel/libs/libigl/include/igl/Camera.h"
+    "/home/thuemmel/libs/libigl/include/igl/EPS.h"
+    "/home/thuemmel/libs/libigl/include/igl/HalfEdgeIterator.h"
+    "/home/thuemmel/libs/libigl/include/igl/Hit.h"
+    "/home/thuemmel/libs/libigl/include/igl/IndexComparison.h"
+    "/home/thuemmel/libs/libigl/include/igl/LinSpaced.h"
+    "/home/thuemmel/libs/libigl/include/igl/MappingEnergyType.h"
+    "/home/thuemmel/libs/libigl/include/igl/MeshBooleanType.h"
+    "/home/thuemmel/libs/libigl/include/igl/NormalType.h"
+    "/home/thuemmel/libs/libigl/include/igl/ONE.h"
+    "/home/thuemmel/libs/libigl/include/igl/PI.h"
+    "/home/thuemmel/libs/libigl/include/igl/REDRUM.h"
+    "/home/thuemmel/libs/libigl/include/igl/STR.h"
+    "/home/thuemmel/libs/libigl/include/igl/SolverStatus.h"
+    "/home/thuemmel/libs/libigl/include/igl/SortableRow.h"
+    "/home/thuemmel/libs/libigl/include/igl/Timer.h"
+    "/home/thuemmel/libs/libigl/include/igl/Viewport.h"
+    "/home/thuemmel/libs/libigl/include/igl/WindingNumberAABB.h"
+    "/home/thuemmel/libs/libigl/include/igl/WindingNumberMethod.h"
+    "/home/thuemmel/libs/libigl/include/igl/WindingNumberTree.h"
+    "/home/thuemmel/libs/libigl/include/igl/ZERO.h"
+    "/home/thuemmel/libs/libigl/include/igl/accumarray.h"
+    "/home/thuemmel/libs/libigl/include/igl/active_set.h"
+    "/home/thuemmel/libs/libigl/include/igl/adjacency_list.h"
+    "/home/thuemmel/libs/libigl/include/igl/adjacency_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/all.h"
+    "/home/thuemmel/libs/libigl/include/igl/all_edges.h"
+    "/home/thuemmel/libs/libigl/include/igl/all_pairs_distances.h"
+    "/home/thuemmel/libs/libigl/include/igl/ambient_occlusion.h"
+    "/home/thuemmel/libs/libigl/include/igl/angular_distance.h"
+    "/home/thuemmel/libs/libigl/include/igl/any.h"
+    "/home/thuemmel/libs/libigl/include/igl/any_of.h"
+    "/home/thuemmel/libs/libigl/include/igl/arap.h"
+    "/home/thuemmel/libs/libigl/include/igl/arap_dof.h"
+    "/home/thuemmel/libs/libigl/include/igl/arap_linear_block.h"
+    "/home/thuemmel/libs/libigl/include/igl/arap_rhs.h"
+    "/home/thuemmel/libs/libigl/include/igl/average_onto_faces.h"
+    "/home/thuemmel/libs/libigl/include/igl/average_onto_vertices.h"
+    "/home/thuemmel/libs/libigl/include/igl/avg_edge_length.h"
+    "/home/thuemmel/libs/libigl/include/igl/axis_angle_to_quat.h"
+    "/home/thuemmel/libs/libigl/include/igl/barycenter.h"
+    "/home/thuemmel/libs/libigl/include/igl/barycentric_coordinates.h"
+    "/home/thuemmel/libs/libigl/include/igl/barycentric_to_global.h"
+    "/home/thuemmel/libs/libigl/include/igl/basename.h"
+    "/home/thuemmel/libs/libigl/include/igl/bbw.h"
+    "/home/thuemmel/libs/libigl/include/igl/bfs.h"
+    "/home/thuemmel/libs/libigl/include/igl/bfs_orient.h"
+    "/home/thuemmel/libs/libigl/include/igl/biharmonic_coordinates.h"
+    "/home/thuemmel/libs/libigl/include/igl/bijective_composite_harmonic_mapping.h"
+    "/home/thuemmel/libs/libigl/include/igl/bone_parents.h"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_conditions.h"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_facets.h"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_loop.h"
+    "/home/thuemmel/libs/libigl/include/igl/bounding_box.h"
+    "/home/thuemmel/libs/libigl/include/igl/bounding_box_diagonal.h"
+    "/home/thuemmel/libs/libigl/include/igl/canonical_quaternions.h"
+    "/home/thuemmel/libs/libigl/include/igl/cat.h"
+    "/home/thuemmel/libs/libigl/include/igl/ceil.h"
+    "/home/thuemmel/libs/libigl/include/igl/centroid.h"
+    "/home/thuemmel/libs/libigl/include/igl/circulation.h"
+    "/home/thuemmel/libs/libigl/include/igl/circumradius.h"
+    "/home/thuemmel/libs/libigl/include/igl/collapse_edge.h"
+    "/home/thuemmel/libs/libigl/include/igl/collapse_small_triangles.h"
+    "/home/thuemmel/libs/libigl/include/igl/colon.h"
+    "/home/thuemmel/libs/libigl/include/igl/colormap.h"
+    "/home/thuemmel/libs/libigl/include/igl/column_to_quats.h"
+    "/home/thuemmel/libs/libigl/include/igl/columnize.h"
+    "/home/thuemmel/libs/libigl/include/igl/comb_cross_field.h"
+    "/home/thuemmel/libs/libigl/include/igl/comb_frame_field.h"
+    "/home/thuemmel/libs/libigl/include/igl/comb_line_field.h"
+    "/home/thuemmel/libs/libigl/include/igl/combine.h"
+    "/home/thuemmel/libs/libigl/include/igl/compute_frame_field_bisectors.h"
+    "/home/thuemmel/libs/libigl/include/igl/connect_boundary_to_infinity.h"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix_entries.h"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix_intrinsic.h"
+    "/home/thuemmel/libs/libigl/include/igl/count.h"
+    "/home/thuemmel/libs/libigl/include/igl/covariance_scatter_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/cross.h"
+    "/home/thuemmel/libs/libigl/include/igl/cross_field_mismatch.h"
+    "/home/thuemmel/libs/libigl/include/igl/crouzeix_raviart_cotmatrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/crouzeix_raviart_massmatrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/cumprod.h"
+    "/home/thuemmel/libs/libigl/include/igl/cumsum.h"
+    "/home/thuemmel/libs/libigl/include/igl/cut_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/cut_mesh_from_singularities.h"
+    "/home/thuemmel/libs/libigl/include/igl/cut_to_disk.h"
+    "/home/thuemmel/libs/libigl/include/igl/cylinder.h"
+    "/home/thuemmel/libs/libigl/include/igl/dated_copy.h"
+    "/home/thuemmel/libs/libigl/include/igl/decimate.h"
+    "/home/thuemmel/libs/libigl/include/igl/deform_skeleton.h"
+    "/home/thuemmel/libs/libigl/include/igl/delaunay_triangulation.h"
+    "/home/thuemmel/libs/libigl/include/igl/deprecated.h"
+    "/home/thuemmel/libs/libigl/include/igl/dfs.h"
+    "/home/thuemmel/libs/libigl/include/igl/diag.h"
+    "/home/thuemmel/libs/libigl/include/igl/dihedral_angles.h"
+    "/home/thuemmel/libs/libigl/include/igl/dijkstra.h"
+    "/home/thuemmel/libs/libigl/include/igl/directed_edge_orientations.h"
+    "/home/thuemmel/libs/libigl/include/igl/directed_edge_parents.h"
+    "/home/thuemmel/libs/libigl/include/igl/dirname.h"
+    "/home/thuemmel/libs/libigl/include/igl/dot.h"
+    "/home/thuemmel/libs/libigl/include/igl/dot_row.h"
+    "/home/thuemmel/libs/libigl/include/igl/doublearea.h"
+    "/home/thuemmel/libs/libigl/include/igl/dqs.h"
+    "/home/thuemmel/libs/libigl/include/igl/ears.h"
+    "/home/thuemmel/libs/libigl/include/igl/edge_collapse_is_valid.h"
+    "/home/thuemmel/libs/libigl/include/igl/edge_exists_near.h"
+    "/home/thuemmel/libs/libigl/include/igl/edge_flaps.h"
+    "/home/thuemmel/libs/libigl/include/igl/edge_lengths.h"
+    "/home/thuemmel/libs/libigl/include/igl/edge_topology.h"
+    "/home/thuemmel/libs/libigl/include/igl/edges.h"
+    "/home/thuemmel/libs/libigl/include/igl/edges_to_path.h"
+    "/home/thuemmel/libs/libigl/include/igl/eigs.h"
+    "/home/thuemmel/libs/libigl/include/igl/euler_characteristic.h"
+    "/home/thuemmel/libs/libigl/include/igl/exact_geodesic.h"
+    "/home/thuemmel/libs/libigl/include/igl/example_fun.h"
+    "/home/thuemmel/libs/libigl/include/igl/exterior_edges.h"
+    "/home/thuemmel/libs/libigl/include/igl/extract_manifold_patches.h"
+    "/home/thuemmel/libs/libigl/include/igl/extract_non_manifold_edge_curves.h"
+    "/home/thuemmel/libs/libigl/include/igl/face_areas.h"
+    "/home/thuemmel/libs/libigl/include/igl/face_occurrences.h"
+    "/home/thuemmel/libs/libigl/include/igl/faces_first.h"
+    "/home/thuemmel/libs/libigl/include/igl/facet_components.h"
+    "/home/thuemmel/libs/libigl/include/igl/false_barycentric_subdivision.h"
+    "/home/thuemmel/libs/libigl/include/igl/fast_winding_number.h"
+    "/home/thuemmel/libs/libigl/include/igl/file_contents_as_string.h"
+    "/home/thuemmel/libs/libigl/include/igl/file_dialog_open.h"
+    "/home/thuemmel/libs/libigl/include/igl/file_dialog_save.h"
+    "/home/thuemmel/libs/libigl/include/igl/file_exists.h"
+    "/home/thuemmel/libs/libigl/include/igl/find.h"
+    "/home/thuemmel/libs/libigl/include/igl/find_cross_field_singularities.h"
+    "/home/thuemmel/libs/libigl/include/igl/find_zero.h"
+    "/home/thuemmel/libs/libigl/include/igl/fit_plane.h"
+    "/home/thuemmel/libs/libigl/include/igl/fit_rotations.h"
+    "/home/thuemmel/libs/libigl/include/igl/flip_avoiding_line_search.h"
+    "/home/thuemmel/libs/libigl/include/igl/flip_edge.h"
+    "/home/thuemmel/libs/libigl/include/igl/flipped_triangles.h"
+    "/home/thuemmel/libs/libigl/include/igl/flood_fill.h"
+    "/home/thuemmel/libs/libigl/include/igl/floor.h"
+    "/home/thuemmel/libs/libigl/include/igl/for_each.h"
+    "/home/thuemmel/libs/libigl/include/igl/forward_kinematics.h"
+    "/home/thuemmel/libs/libigl/include/igl/frame_field_deformer.h"
+    "/home/thuemmel/libs/libigl/include/igl/frame_to_cross_field.h"
+    "/home/thuemmel/libs/libigl/include/igl/frustum.h"
+    "/home/thuemmel/libs/libigl/include/igl/gaussian_curvature.h"
+    "/home/thuemmel/libs/libigl/include/igl/get_seconds.h"
+    "/home/thuemmel/libs/libigl/include/igl/get_seconds_hires.h"
+    "/home/thuemmel/libs/libigl/include/igl/grad.h"
+    "/home/thuemmel/libs/libigl/include/igl/grad_intrinsic.h"
+    "/home/thuemmel/libs/libigl/include/igl/grid.h"
+    "/home/thuemmel/libs/libigl/include/igl/grid_search.h"
+    "/home/thuemmel/libs/libigl/include/igl/group_sum_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/guess_extension.h"
+    "/home/thuemmel/libs/libigl/include/igl/harmonic.h"
+    "/home/thuemmel/libs/libigl/include/igl/harwell_boeing.h"
+    "/home/thuemmel/libs/libigl/include/igl/hausdorff.h"
+    "/home/thuemmel/libs/libigl/include/igl/heat_geodesics.h"
+    "/home/thuemmel/libs/libigl/include/igl/hessian.h"
+    "/home/thuemmel/libs/libigl/include/igl/hessian_energy.h"
+    "/home/thuemmel/libs/libigl/include/igl/histc.h"
+    "/home/thuemmel/libs/libigl/include/igl/hsv_to_rgb.h"
+    "/home/thuemmel/libs/libigl/include/igl/igl_inline.h"
+    "/home/thuemmel/libs/libigl/include/igl/in_element.h"
+    "/home/thuemmel/libs/libigl/include/igl/infinite_cost_stopping_condition.h"
+    "/home/thuemmel/libs/libigl/include/igl/inradius.h"
+    "/home/thuemmel/libs/libigl/include/igl/internal_angles.h"
+    "/home/thuemmel/libs/libigl/include/igl/intersect.h"
+    "/home/thuemmel/libs/libigl/include/igl/intrinsic_delaunay_cotmatrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/intrinsic_delaunay_triangulation.h"
+    "/home/thuemmel/libs/libigl/include/igl/invert_diag.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_border_vertex.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_boundary_edge.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_delaunay.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_dir.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_edge_manifold.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_file.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_intrinsic_delaunay.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_irregular_vertex.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_planar.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_readable.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_sparse.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_stl.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_symmetric.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_vertex_manifold.h"
+    "/home/thuemmel/libs/libigl/include/igl/is_writable.h"
+    "/home/thuemmel/libs/libigl/include/igl/isdiag.h"
+    "/home/thuemmel/libs/libigl/include/igl/ismember.h"
+    "/home/thuemmel/libs/libigl/include/igl/isolines.h"
+    "/home/thuemmel/libs/libigl/include/igl/jet.h"
+    "/home/thuemmel/libs/libigl/include/igl/knn.h"
+    "/home/thuemmel/libs/libigl/include/igl/launch_medit.h"
+    "/home/thuemmel/libs/libigl/include/igl/lbs_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/lexicographic_triangulation.h"
+    "/home/thuemmel/libs/libigl/include/igl/limit_faces.h"
+    "/home/thuemmel/libs/libigl/include/igl/line_field_mismatch.h"
+    "/home/thuemmel/libs/libigl/include/igl/line_search.h"
+    "/home/thuemmel/libs/libigl/include/igl/line_segment_in_rectangle.h"
+    "/home/thuemmel/libs/libigl/include/igl/linprog.h"
+    "/home/thuemmel/libs/libigl/include/igl/list_to_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/local_basis.h"
+    "/home/thuemmel/libs/libigl/include/igl/look_at.h"
+    "/home/thuemmel/libs/libigl/include/igl/loop.h"
+    "/home/thuemmel/libs/libigl/include/igl/lscm.h"
+    "/home/thuemmel/libs/libigl/include/igl/map_vertices_to_circle.h"
+    "/home/thuemmel/libs/libigl/include/igl/mapping_energy_with_jacobians.h"
+    "/home/thuemmel/libs/libigl/include/igl/marching_tets.h"
+    "/home/thuemmel/libs/libigl/include/igl/massmatrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/massmatrix_intrinsic.h"
+    "/home/thuemmel/libs/libigl/include/igl/mat_max.h"
+    "/home/thuemmel/libs/libigl/include/igl/mat_min.h"
+    "/home/thuemmel/libs/libigl/include/igl/mat_to_quat.h"
+    "/home/thuemmel/libs/libigl/include/igl/material_colors.h"
+    "/home/thuemmel/libs/libigl/include/igl/matlab_format.h"
+    "/home/thuemmel/libs/libigl/include/igl/matrix_to_list.h"
+    "/home/thuemmel/libs/libigl/include/igl/max.h"
+    "/home/thuemmel/libs/libigl/include/igl/max_faces_stopping_condition.h"
+    "/home/thuemmel/libs/libigl/include/igl/max_size.h"
+    "/home/thuemmel/libs/libigl/include/igl/median.h"
+    "/home/thuemmel/libs/libigl/include/igl/min.h"
+    "/home/thuemmel/libs/libigl/include/igl/min_quad_dense.h"
+    "/home/thuemmel/libs/libigl/include/igl/min_quad_with_fixed.h"
+    "/home/thuemmel/libs/libigl/include/igl/min_size.h"
+    "/home/thuemmel/libs/libigl/include/igl/mod.h"
+    "/home/thuemmel/libs/libigl/include/igl/mode.h"
+    "/home/thuemmel/libs/libigl/include/igl/mvc.h"
+    "/home/thuemmel/libs/libigl/include/igl/nchoosek.h"
+    "/home/thuemmel/libs/libigl/include/igl/next_filename.h"
+    "/home/thuemmel/libs/libigl/include/igl/normal_derivative.h"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_quat.h"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_row_lengths.h"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_row_sums.h"
+    "/home/thuemmel/libs/libigl/include/igl/null.h"
+    "/home/thuemmel/libs/libigl/include/igl/octree.h"
+    "/home/thuemmel/libs/libigl/include/igl/on_boundary.h"
+    "/home/thuemmel/libs/libigl/include/igl/orient_outward.h"
+    "/home/thuemmel/libs/libigl/include/igl/orientable_patches.h"
+    "/home/thuemmel/libs/libigl/include/igl/oriented_facets.h"
+    "/home/thuemmel/libs/libigl/include/igl/orth.h"
+    "/home/thuemmel/libs/libigl/include/igl/ortho.h"
+    "/home/thuemmel/libs/libigl/include/igl/outer_element.h"
+    "/home/thuemmel/libs/libigl/include/igl/parallel_for.h"
+    "/home/thuemmel/libs/libigl/include/igl/parallel_transport_angles.h"
+    "/home/thuemmel/libs/libigl/include/igl/partition.h"
+    "/home/thuemmel/libs/libigl/include/igl/parula.h"
+    "/home/thuemmel/libs/libigl/include/igl/path_to_executable.h"
+    "/home/thuemmel/libs/libigl/include/igl/pathinfo.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_corner_normals.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_edge_normals.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_face_normals.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_attribute_smoothing.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_normals.h"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_point_to_plane_quadrics.h"
+    "/home/thuemmel/libs/libigl/include/igl/piecewise_constant_winding_number.h"
+    "/home/thuemmel/libs/libigl/include/igl/pinv.h"
+    "/home/thuemmel/libs/libigl/include/igl/planarize_quad_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/ply.h"
+    "/home/thuemmel/libs/libigl/include/igl/point_in_circle.h"
+    "/home/thuemmel/libs/libigl/include/igl/point_in_poly.h"
+    "/home/thuemmel/libs/libigl/include/igl/point_mesh_squared_distance.h"
+    "/home/thuemmel/libs/libigl/include/igl/point_simplex_squared_distance.h"
+    "/home/thuemmel/libs/libigl/include/igl/polar_dec.h"
+    "/home/thuemmel/libs/libigl/include/igl/polar_svd.h"
+    "/home/thuemmel/libs/libigl/include/igl/polar_svd3x3.h"
+    "/home/thuemmel/libs/libigl/include/igl/polygon_mesh_to_triangle_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/principal_curvature.h"
+    "/home/thuemmel/libs/libigl/include/igl/print_ijv.h"
+    "/home/thuemmel/libs/libigl/include/igl/print_vector.h"
+    "/home/thuemmel/libs/libigl/include/igl/procrustes.h"
+    "/home/thuemmel/libs/libigl/include/igl/project.h"
+    "/home/thuemmel/libs/libigl/include/igl/project_isometrically_to_plane.h"
+    "/home/thuemmel/libs/libigl/include/igl/project_to_line.h"
+    "/home/thuemmel/libs/libigl/include/igl/project_to_line_segment.h"
+    "/home/thuemmel/libs/libigl/include/igl/pseudonormal_test.h"
+    "/home/thuemmel/libs/libigl/include/igl/pso.h"
+    "/home/thuemmel/libs/libigl/include/igl/qslim.h"
+    "/home/thuemmel/libs/libigl/include/igl/qslim_optimal_collapse_edge_callbacks.h"
+    "/home/thuemmel/libs/libigl/include/igl/quad_planarity.h"
+    "/home/thuemmel/libs/libigl/include/igl/quadric_binary_plus_operator.h"
+    "/home/thuemmel/libs/libigl/include/igl/quat_conjugate.h"
+    "/home/thuemmel/libs/libigl/include/igl/quat_mult.h"
+    "/home/thuemmel/libs/libigl/include/igl/quat_to_axis_angle.h"
+    "/home/thuemmel/libs/libigl/include/igl/quat_to_mat.h"
+    "/home/thuemmel/libs/libigl/include/igl/quats_to_column.h"
+    "/home/thuemmel/libs/libigl/include/igl/ramer_douglas_peucker.h"
+    "/home/thuemmel/libs/libigl/include/igl/random_dir.h"
+    "/home/thuemmel/libs/libigl/include/igl/random_points_on_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/random_quaternion.h"
+    "/home/thuemmel/libs/libigl/include/igl/random_search.h"
+    "/home/thuemmel/libs/libigl/include/igl/randperm.h"
+    "/home/thuemmel/libs/libigl/include/igl/ray_box_intersect.h"
+    "/home/thuemmel/libs/libigl/include/igl/ray_mesh_intersect.h"
+    "/home/thuemmel/libs/libigl/include/igl/ray_sphere_intersect.h"
+    "/home/thuemmel/libs/libigl/include/igl/readBF.h"
+    "/home/thuemmel/libs/libigl/include/igl/readCSV.h"
+    "/home/thuemmel/libs/libigl/include/igl/readDMAT.h"
+    "/home/thuemmel/libs/libigl/include/igl/readMESH.h"
+    "/home/thuemmel/libs/libigl/include/igl/readMSH.h"
+    "/home/thuemmel/libs/libigl/include/igl/readNODE.h"
+    "/home/thuemmel/libs/libigl/include/igl/readOBJ.h"
+    "/home/thuemmel/libs/libigl/include/igl/readOFF.h"
+    "/home/thuemmel/libs/libigl/include/igl/readPLY.h"
+    "/home/thuemmel/libs/libigl/include/igl/readSTL.h"
+    "/home/thuemmel/libs/libigl/include/igl/readTGF.h"
+    "/home/thuemmel/libs/libigl/include/igl/readWRL.h"
+    "/home/thuemmel/libs/libigl/include/igl/read_triangle_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/redux.h"
+    "/home/thuemmel/libs/libigl/include/igl/remesh_along_isoline.h"
+    "/home/thuemmel/libs/libigl/include/igl/remove_duplicate_vertices.h"
+    "/home/thuemmel/libs/libigl/include/igl/remove_duplicates.h"
+    "/home/thuemmel/libs/libigl/include/igl/remove_unreferenced.h"
+    "/home/thuemmel/libs/libigl/include/igl/reorder.h"
+    "/home/thuemmel/libs/libigl/include/igl/repdiag.h"
+    "/home/thuemmel/libs/libigl/include/igl/repmat.h"
+    "/home/thuemmel/libs/libigl/include/igl/resolve_duplicated_faces.h"
+    "/home/thuemmel/libs/libigl/include/igl/rgb_to_hsv.h"
+    "/home/thuemmel/libs/libigl/include/igl/rotate_by_quat.h"
+    "/home/thuemmel/libs/libigl/include/igl/rotate_vectors.h"
+    "/home/thuemmel/libs/libigl/include/igl/rotation_matrix_from_directions.h"
+    "/home/thuemmel/libs/libigl/include/igl/round.h"
+    "/home/thuemmel/libs/libigl/include/igl/rows_to_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/sample_edges.h"
+    "/home/thuemmel/libs/libigl/include/igl/scaf.h"
+    "/home/thuemmel/libs/libigl/include/igl/seam_edges.h"
+    "/home/thuemmel/libs/libigl/include/igl/segment_segment_intersect.h"
+    "/home/thuemmel/libs/libigl/include/igl/serialize.h"
+    "/home/thuemmel/libs/libigl/include/igl/setdiff.h"
+    "/home/thuemmel/libs/libigl/include/igl/setunion.h"
+    "/home/thuemmel/libs/libigl/include/igl/setxor.h"
+    "/home/thuemmel/libs/libigl/include/igl/shape_diameter_function.h"
+    "/home/thuemmel/libs/libigl/include/igl/shapeup.h"
+    "/home/thuemmel/libs/libigl/include/igl/shortest_edge_and_midpoint.h"
+    "/home/thuemmel/libs/libigl/include/igl/signed_angle.h"
+    "/home/thuemmel/libs/libigl/include/igl/signed_distance.h"
+    "/home/thuemmel/libs/libigl/include/igl/simplify_polyhedron.h"
+    "/home/thuemmel/libs/libigl/include/igl/slice.h"
+    "/home/thuemmel/libs/libigl/include/igl/slice_cached.h"
+    "/home/thuemmel/libs/libigl/include/igl/slice_into.h"
+    "/home/thuemmel/libs/libigl/include/igl/slice_mask.h"
+    "/home/thuemmel/libs/libigl/include/igl/slim.h"
+    "/home/thuemmel/libs/libigl/include/igl/snap_points.h"
+    "/home/thuemmel/libs/libigl/include/igl/snap_to_canonical_view_quat.h"
+    "/home/thuemmel/libs/libigl/include/igl/snap_to_fixed_up.h"
+    "/home/thuemmel/libs/libigl/include/igl/solid_angle.h"
+    "/home/thuemmel/libs/libigl/include/igl/sort.h"
+    "/home/thuemmel/libs/libigl/include/igl/sort_angles.h"
+    "/home/thuemmel/libs/libigl/include/igl/sort_triangles.h"
+    "/home/thuemmel/libs/libigl/include/igl/sort_vectors_ccw.h"
+    "/home/thuemmel/libs/libigl/include/igl/sortrows.h"
+    "/home/thuemmel/libs/libigl/include/igl/sparse.h"
+    "/home/thuemmel/libs/libigl/include/igl/sparse_cached.h"
+    "/home/thuemmel/libs/libigl/include/igl/sparse_voxel_grid.h"
+    "/home/thuemmel/libs/libigl/include/igl/speye.h"
+    "/home/thuemmel/libs/libigl/include/igl/squared_edge_lengths.h"
+    "/home/thuemmel/libs/libigl/include/igl/stdin_to_temp.h"
+    "/home/thuemmel/libs/libigl/include/igl/straighten_seams.h"
+    "/home/thuemmel/libs/libigl/include/igl/sum.h"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3.h"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3_avx.h"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3_sse.h"
+    "/home/thuemmel/libs/libigl/include/igl/swept_volume_bounding_box.h"
+    "/home/thuemmel/libs/libigl/include/igl/swept_volume_signed_distance.h"
+    "/home/thuemmel/libs/libigl/include/igl/tan_half_angle.h"
+    "/home/thuemmel/libs/libigl/include/igl/tet_tet_adjacency.h"
+    "/home/thuemmel/libs/libigl/include/igl/topological_hole_fill.h"
+    "/home/thuemmel/libs/libigl/include/igl/trackball.h"
+    "/home/thuemmel/libs/libigl/include/igl/transpose_blocks.h"
+    "/home/thuemmel/libs/libigl/include/igl/triangle_fan.h"
+    "/home/thuemmel/libs/libigl/include/igl/triangle_triangle_adjacency.h"
+    "/home/thuemmel/libs/libigl/include/igl/triangles_from_strip.h"
+    "/home/thuemmel/libs/libigl/include/igl/triangulated_grid.h"
+    "/home/thuemmel/libs/libigl/include/igl/two_axis_valuator_fixed_up.h"
+    "/home/thuemmel/libs/libigl/include/igl/uniformly_sample_two_manifold.h"
+    "/home/thuemmel/libs/libigl/include/igl/unique.h"
+    "/home/thuemmel/libs/libigl/include/igl/unique_edge_map.h"
+    "/home/thuemmel/libs/libigl/include/igl/unique_rows.h"
+    "/home/thuemmel/libs/libigl/include/igl/unique_simplices.h"
+    "/home/thuemmel/libs/libigl/include/igl/unproject.h"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_in_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_onto_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_ray.h"
+    "/home/thuemmel/libs/libigl/include/igl/unzip_corners.h"
+    "/home/thuemmel/libs/libigl/include/igl/upsample.h"
+    "/home/thuemmel/libs/libigl/include/igl/vector_area_matrix.h"
+    "/home/thuemmel/libs/libigl/include/igl/verbose.h"
+    "/home/thuemmel/libs/libigl/include/igl/vertex_components.h"
+    "/home/thuemmel/libs/libigl/include/igl/vertex_triangle_adjacency.h"
+    "/home/thuemmel/libs/libigl/include/igl/volume.h"
+    "/home/thuemmel/libs/libigl/include/igl/voxel_grid.h"
+    "/home/thuemmel/libs/libigl/include/igl/winding_number.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeBF.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeDMAT.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeMESH.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeOBJ.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeOFF.h"
+    "/home/thuemmel/libs/libigl/include/igl/writePLY.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeSTL.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeTGF.h"
+    "/home/thuemmel/libs/libigl/include/igl/writeWRL.h"
+    "/home/thuemmel/libs/libigl/include/igl/write_triangle_mesh.h"
+    "/home/thuemmel/libs/libigl/include/igl/AABB.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/AtA_cached.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/EPS.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/HalfEdgeIterator.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/accumarray.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/active_set.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/adjacency_list.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/adjacency_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/all.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/all_edges.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/all_pairs_distances.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ambient_occlusion.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/angular_distance.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/any.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/any_of.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/arap.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/arap_dof.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/arap_linear_block.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/arap_rhs.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/average_onto_faces.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/average_onto_vertices.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/avg_edge_length.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/axis_angle_to_quat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/barycenter.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/barycentric_coordinates.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/barycentric_to_global.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/basename.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bbw.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bfs.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bfs_orient.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/biharmonic_coordinates.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bijective_composite_harmonic_mapping.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bone_parents.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_conditions.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_facets.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/boundary_loop.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bounding_box.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/bounding_box_diagonal.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/canonical_quaternions.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ceil.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/centroid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/circulation.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/circumradius.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/collapse_edge.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/collapse_small_triangles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/colon.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/colormap.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/column_to_quats.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/columnize.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/comb_cross_field.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/comb_frame_field.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/comb_line_field.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/combine.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/compute_frame_field_bisectors.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/connect_boundary_to_infinity.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix_entries.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cotmatrix_intrinsic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/count.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/covariance_scatter_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cross.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cross_field_mismatch.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/crouzeix_raviart_cotmatrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/crouzeix_raviart_massmatrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cumprod.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cumsum.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cut_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cut_mesh_from_singularities.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cut_to_disk.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/cylinder.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dated_copy.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/decimate.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/deform_skeleton.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/delaunay_triangulation.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dfs.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/diag.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dihedral_angles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dijkstra.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/directed_edge_orientations.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/directed_edge_parents.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dirname.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dot.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dot_row.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/doublearea.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/dqs.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ears.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edge_collapse_is_valid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edge_exists_near.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edge_flaps.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edge_lengths.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edge_topology.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edges.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/edges_to_path.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/eigs.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/euler_characteristic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/exact_geodesic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/example_fun.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/exterior_edges.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/extract_manifold_patches.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/extract_non_manifold_edge_curves.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/face_areas.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/face_occurrences.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/faces_first.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/facet_components.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/false_barycentric_subdivision.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/fast_winding_number.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/file_contents_as_string.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/file_dialog_open.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/file_dialog_save.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/file_exists.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/find.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/find_cross_field_singularities.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/find_zero.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/fit_plane.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/fit_rotations.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/flip_avoiding_line_search.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/flip_edge.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/flipped_triangles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/flood_fill.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/floor.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/forward_kinematics.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/frame_field_deformer.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/frame_to_cross_field.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/frustum.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/gaussian_curvature.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/get_seconds.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/get_seconds_hires.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/grad.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/grad_intrinsic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/grid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/grid_search.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/group_sum_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/guess_extension.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/harmonic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/harwell_boeing.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/hausdorff.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/heat_geodesics.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/hessian.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/hessian_energy.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/histc.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/hsv_to_rgb.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/in_element.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/infinite_cost_stopping_condition.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/inradius.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/internal_angles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/intersect.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/intrinsic_delaunay_cotmatrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/intrinsic_delaunay_triangulation.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/invert_diag.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_border_vertex.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_boundary_edge.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_delaunay.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_dir.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_edge_manifold.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_file.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_intrinsic_delaunay.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_irregular_vertex.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_planar.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_readable.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_sparse.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_stl.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_symmetric.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_vertex_manifold.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/is_writable.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/isdiag.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ismember.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/isolines.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/jet.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/knn.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/launch_medit.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/lbs_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/lexicographic_triangulation.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/limit_faces.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/line_field_mismatch.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/line_search.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/line_segment_in_rectangle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/linprog.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/list_to_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/local_basis.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/look_at.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/loop.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/lscm.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/map_vertices_to_circle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mapping_energy_with_jacobians.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/marching_tets.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/massmatrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/massmatrix_intrinsic.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mat_max.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mat_min.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mat_to_quat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/matlab_format.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/matrix_to_list.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/max.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/max_faces_stopping_condition.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/max_size.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/median.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/min.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/min_quad_dense.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/min_quad_with_fixed.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/min_size.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mod.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mode.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/mvc.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/nchoosek.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/next_filename.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/normal_derivative.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_quat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_row_lengths.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/normalize_row_sums.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/null.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/octree.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/on_boundary.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/orient_outward.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/orientable_patches.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/oriented_facets.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/orth.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ortho.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/outer_element.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/parallel_transport_angles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/partition.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/parula.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/path_to_executable.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/pathinfo.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_corner_normals.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_edge_normals.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_face_normals.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_attribute_smoothing.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_normals.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/per_vertex_point_to_plane_quadrics.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/piecewise_constant_winding_number.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/pinv.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/planarize_quad_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/point_in_circle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/point_in_poly.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/point_mesh_squared_distance.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/point_simplex_squared_distance.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/polar_dec.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/polar_svd.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/polar_svd3x3.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/polygon_mesh_to_triangle_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/principal_curvature.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/print_ijv.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/print_vector.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/procrustes.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/project.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/project_isometrically_to_plane.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/project_to_line.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/project_to_line_segment.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/pseudonormal_test.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/pso.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/qslim.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/qslim_optimal_collapse_edge_callbacks.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quad_planarity.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quadric_binary_plus_operator.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quat_conjugate.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quat_mult.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quat_to_axis_angle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quat_to_mat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/quats_to_column.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ramer_douglas_peucker.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/random_dir.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/random_points_on_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/random_quaternion.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/random_search.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/randperm.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ray_box_intersect.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ray_mesh_intersect.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/ray_sphere_intersect.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readBF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readCSV.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readDMAT.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readMESH.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readMSH.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readNODE.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readOBJ.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readOFF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readPLY.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readSTL.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readTGF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/readWRL.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/read_triangle_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/remesh_along_isoline.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/remove_duplicate_vertices.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/remove_duplicates.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/remove_unreferenced.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/reorder.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/repdiag.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/repmat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/resolve_duplicated_faces.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/rgb_to_hsv.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/rotate_by_quat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/rotate_vectors.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/rotation_matrix_from_directions.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/round.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/rows_to_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sample_edges.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/scaf.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/seam_edges.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/segment_segment_intersect.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/setdiff.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/setunion.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/setxor.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/shape_diameter_function.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/shapeup.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/shortest_edge_and_midpoint.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/signed_angle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/signed_distance.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/simplify_polyhedron.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/slice.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/slice_cached.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/slice_into.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/slice_mask.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/slim.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/snap_points.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/snap_to_canonical_view_quat.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/snap_to_fixed_up.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/solid_angle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sort.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sort_angles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sort_triangles.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sort_vectors_ccw.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sortrows.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sparse.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sparse_cached.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sparse_voxel_grid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/speye.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/squared_edge_lengths.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/stdin_to_temp.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/straighten_seams.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/sum.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3_avx.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/svd3x3_sse.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/swept_volume_bounding_box.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/swept_volume_signed_distance.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/tan_half_angle.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/tet_tet_adjacency.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/topological_hole_fill.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/trackball.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/transpose_blocks.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/triangle_fan.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/triangle_triangle_adjacency.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/triangles_from_strip.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/triangulated_grid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/two_axis_valuator_fixed_up.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/uniformly_sample_two_manifold.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unique.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unique_edge_map.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unique_rows.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unique_simplices.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unproject.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_in_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_onto_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unproject_ray.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/unzip_corners.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/upsample.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/vector_area_matrix.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/vertex_components.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/vertex_triangle_adjacency.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/volume.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/voxel_grid.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/winding_number.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeBF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeDMAT.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeMESH.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeOBJ.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeOFF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writePLY.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeSTL.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeTGF.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/writeWRL.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/write_triangle_mesh.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/raytri.c"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/igl/copyleft" TYPE FILE FILES
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/marching_cubes.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/marching_cubes_tables.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/offset_surface.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/progressive_hulls.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/progressive_hulls_cost_and_placement.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/quadprog.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/swept_volume.h"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/marching_cubes.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/offset_surface.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/progressive_hulls.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/progressive_hulls_cost_and_placement.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/quadprog.cpp"
+    "/home/thuemmel/libs/libigl/include/igl/copyleft/swept_volume.cpp"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/libigl/cmake" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/libigl-config.cmake")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/libigl/cmake/libigl-export.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/libigl/cmake/libigl-export.cmake"
+         "/home/thuemmel/libs/libigl/build2/CMakeFiles/Export/share/libigl/cmake/libigl-export.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/libigl/cmake/libigl-export-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/libigl/cmake/libigl-export.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/libigl/cmake" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/CMakeFiles/Export/share/libigl/cmake/libigl-export.cmake")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/thuemmel/libs/libigl/build2/CoMISo/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/glad/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/glfw/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/imgui/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/stb_image/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/tetgen/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/triangle/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/predicates/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/python/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/thuemmel/libs/libigl/build2/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")

+ 8 - 0
build2/embree/CTestTestfile.cmake

@@ -0,0 +1,8 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree
+# Build directory: /home/thuemmel/libs/libigl/build2/embree
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("common")
+subdirs("kernels")

+ 115 - 0
build2/embree/DartConfiguration.tcl

@@ -0,0 +1,115 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /home/thuemmel/libs/libigl/external/embree
+BuildDirectory: /home/thuemmel/libs/libigl/build2/embree
+
+# Where to place the cost data store
+CostDataFile: 
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: metis
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: Linux-c++
+
+# Subprojects
+LabelsForSubprojects: 
+
+# Submission information
+IsCDash: 
+CDashVersion: 
+QueryCDashVersion: 
+DropSite: 
+DropLocation: 
+DropSiteUser: 
+DropSitePassword: 
+DropSiteMode: 
+DropMethod: http
+TriggerSite: 
+ScpCommand: /usr/bin/scp
+
+# Dashboard start time
+NightlyStartTime: 22:00:00 UTC
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" "/home/thuemmel/libs/libigl/external/embree"
+MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" -- -i
+DefaultCTestConfigurationType: Release
+
+# version control
+UpdateVersionOnly: 
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: CVSCOMMAND-NOTFOUND
+CVSUpdateOptions: -d -A -P
+
+# Subversion options
+SVNCommand: SVNCOMMAND-NOTFOUND
+SVNOptions: 
+SVNUpdateOptions: 
+
+# Git options
+GITCommand: /usr/bin/git
+GITInitSubmodules: 
+GITUpdateOptions: 
+GITUpdateCustom: 
+
+# Perforce options
+P4Command: P4COMMAND-NOTFOUND
+P4Client: 
+P4Options: 
+P4UpdateOptions: 
+P4UpdateCustom: 
+
+# Generic update command
+UpdateCommand: /usr/bin/git
+UpdateOptions: 
+UpdateType: git
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 7.5.0
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: 
+ValgrindCommand: 
+ValgrindCommandOptions: 
+MemoryCheckType: 
+MemoryCheckSanitizerOptions: 
+MemoryCheckCommand: /usr/bin/valgrind
+MemoryCheckCommandOptions: 
+MemoryCheckSuppressionFile: 
+
+# Coverage
+CoverageCommand: /usr/bin/gcov
+CoverageExtraFlags: -l
+
+# Cluster commands
+SlurmBatchCommand: SLURM_SBATCH_COMMAND-NOTFOUND
+SlurmRunCommand: SLURM_SRUN_COMMAND-NOTFOUND
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 1500
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: 
+
+UseLaunchers: 
+CurlOptions: 
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 5
+CTestSubmitRetryCount: 3

+ 224 - 0
build2/embree/Makefile

@@ -0,0 +1,224 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/CMakeFiles/uninstall.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/CMakeFiles/uninstall.dir/rule
+.PHONY : embree/CMakeFiles/uninstall.dir/rule
+
+# Convenience name for target.
+uninstall: embree/CMakeFiles/uninstall.dir/rule
+
+.PHONY : uninstall
+
+# fast build rule for target.
+uninstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/CMakeFiles/uninstall.dir/build.make embree/CMakeFiles/uninstall.dir/build
+.PHONY : uninstall/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... uninstall"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 78 - 0
build2/embree/cmake_install.cmake

@@ -0,0 +1,78 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/home/thuemmel/libs/libigl/external/embree/include/embree3")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man" TYPE DIRECTORY FILES "/home/thuemmel/libs/libigl/external/embree/man/man3")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xlibx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/embree3" TYPE FILE FILES "/home/thuemmel/libs/libigl/external/embree/LICENSE.txt")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xlibx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/embree3" TYPE FILE FILES "/home/thuemmel/libs/libigl/external/embree/CHANGELOG.md")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xlibx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/embree3" TYPE FILE FILES "/home/thuemmel/libs/libigl/external/embree/README.md")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xlibx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/embree3" TYPE FILE FILES "/home/thuemmel/libs/libigl/external/embree/readme.pdf")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE RENAME "embree-config.cmake" FILES "/home/thuemmel/libs/libigl/build2/embree/embree-config-install.cmake")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/embree-config-version.cmake")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/thuemmel/libs/libigl/build2/embree/common/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/kernels/cmake_install.cmake")
+
+endif()
+

+ 12 - 0
build2/embree/common/CTestTestfile.cmake

@@ -0,0 +1,12 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("sys")
+subdirs("math")
+subdirs("simd")
+subdirs("lexers")
+subdirs("tasking")
+subdirs("algorithms")

+ 208 - 0
build2/embree/common/Makefile

@@ -0,0 +1,208 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... package_source"
+	@echo "... package"
+	@echo "... install"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 6 - 0
build2/embree/common/algorithms/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/algorithms
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/algorithms
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 524 - 0
build2/embree/common/algorithms/Makefile

@@ -0,0 +1,524 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/algorithms/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/algorithms/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/algorithms/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/algorithms/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/algorithms/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/algorithms/CMakeFiles/algorithms.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/algorithms/CMakeFiles/algorithms.dir/rule
+.PHONY : embree/common/algorithms/CMakeFiles/algorithms.dir/rule
+
+# Convenience name for target.
+algorithms: embree/common/algorithms/CMakeFiles/algorithms.dir/rule
+
+.PHONY : algorithms
+
+# fast build rule for target.
+algorithms/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/build
+.PHONY : algorithms/fast
+
+parallel_filter.o: parallel_filter.cpp.o
+
+.PHONY : parallel_filter.o
+
+# target to build an object file
+parallel_filter.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_filter.cpp.o
+.PHONY : parallel_filter.cpp.o
+
+parallel_filter.i: parallel_filter.cpp.i
+
+.PHONY : parallel_filter.i
+
+# target to preprocess a source file
+parallel_filter.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_filter.cpp.i
+.PHONY : parallel_filter.cpp.i
+
+parallel_filter.s: parallel_filter.cpp.s
+
+.PHONY : parallel_filter.s
+
+# target to generate assembly for a file
+parallel_filter.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_filter.cpp.s
+.PHONY : parallel_filter.cpp.s
+
+parallel_for.o: parallel_for.cpp.o
+
+.PHONY : parallel_for.o
+
+# target to build an object file
+parallel_for.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for.cpp.o
+.PHONY : parallel_for.cpp.o
+
+parallel_for.i: parallel_for.cpp.i
+
+.PHONY : parallel_for.i
+
+# target to preprocess a source file
+parallel_for.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for.cpp.i
+.PHONY : parallel_for.cpp.i
+
+parallel_for.s: parallel_for.cpp.s
+
+.PHONY : parallel_for.s
+
+# target to generate assembly for a file
+parallel_for.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for.cpp.s
+.PHONY : parallel_for.cpp.s
+
+parallel_for_for.o: parallel_for_for.cpp.o
+
+.PHONY : parallel_for_for.o
+
+# target to build an object file
+parallel_for_for.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for.cpp.o
+.PHONY : parallel_for_for.cpp.o
+
+parallel_for_for.i: parallel_for_for.cpp.i
+
+.PHONY : parallel_for_for.i
+
+# target to preprocess a source file
+parallel_for_for.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for.cpp.i
+.PHONY : parallel_for_for.cpp.i
+
+parallel_for_for.s: parallel_for_for.cpp.s
+
+.PHONY : parallel_for_for.s
+
+# target to generate assembly for a file
+parallel_for_for.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for.cpp.s
+.PHONY : parallel_for_for.cpp.s
+
+parallel_for_for_prefix_sum.o: parallel_for_for_prefix_sum.cpp.o
+
+.PHONY : parallel_for_for_prefix_sum.o
+
+# target to build an object file
+parallel_for_for_prefix_sum.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for_prefix_sum.cpp.o
+.PHONY : parallel_for_for_prefix_sum.cpp.o
+
+parallel_for_for_prefix_sum.i: parallel_for_for_prefix_sum.cpp.i
+
+.PHONY : parallel_for_for_prefix_sum.i
+
+# target to preprocess a source file
+parallel_for_for_prefix_sum.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for_prefix_sum.cpp.i
+.PHONY : parallel_for_for_prefix_sum.cpp.i
+
+parallel_for_for_prefix_sum.s: parallel_for_for_prefix_sum.cpp.s
+
+.PHONY : parallel_for_for_prefix_sum.s
+
+# target to generate assembly for a file
+parallel_for_for_prefix_sum.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_for_for_prefix_sum.cpp.s
+.PHONY : parallel_for_for_prefix_sum.cpp.s
+
+parallel_map.o: parallel_map.cpp.o
+
+.PHONY : parallel_map.o
+
+# target to build an object file
+parallel_map.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_map.cpp.o
+.PHONY : parallel_map.cpp.o
+
+parallel_map.i: parallel_map.cpp.i
+
+.PHONY : parallel_map.i
+
+# target to preprocess a source file
+parallel_map.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_map.cpp.i
+.PHONY : parallel_map.cpp.i
+
+parallel_map.s: parallel_map.cpp.s
+
+.PHONY : parallel_map.s
+
+# target to generate assembly for a file
+parallel_map.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_map.cpp.s
+.PHONY : parallel_map.cpp.s
+
+parallel_partition.o: parallel_partition.cpp.o
+
+.PHONY : parallel_partition.o
+
+# target to build an object file
+parallel_partition.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_partition.cpp.o
+.PHONY : parallel_partition.cpp.o
+
+parallel_partition.i: parallel_partition.cpp.i
+
+.PHONY : parallel_partition.i
+
+# target to preprocess a source file
+parallel_partition.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_partition.cpp.i
+.PHONY : parallel_partition.cpp.i
+
+parallel_partition.s: parallel_partition.cpp.s
+
+.PHONY : parallel_partition.s
+
+# target to generate assembly for a file
+parallel_partition.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_partition.cpp.s
+.PHONY : parallel_partition.cpp.s
+
+parallel_prefix_sum.o: parallel_prefix_sum.cpp.o
+
+.PHONY : parallel_prefix_sum.o
+
+# target to build an object file
+parallel_prefix_sum.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_prefix_sum.cpp.o
+.PHONY : parallel_prefix_sum.cpp.o
+
+parallel_prefix_sum.i: parallel_prefix_sum.cpp.i
+
+.PHONY : parallel_prefix_sum.i
+
+# target to preprocess a source file
+parallel_prefix_sum.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_prefix_sum.cpp.i
+.PHONY : parallel_prefix_sum.cpp.i
+
+parallel_prefix_sum.s: parallel_prefix_sum.cpp.s
+
+.PHONY : parallel_prefix_sum.s
+
+# target to generate assembly for a file
+parallel_prefix_sum.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_prefix_sum.cpp.s
+.PHONY : parallel_prefix_sum.cpp.s
+
+parallel_reduce.o: parallel_reduce.cpp.o
+
+.PHONY : parallel_reduce.o
+
+# target to build an object file
+parallel_reduce.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_reduce.cpp.o
+.PHONY : parallel_reduce.cpp.o
+
+parallel_reduce.i: parallel_reduce.cpp.i
+
+.PHONY : parallel_reduce.i
+
+# target to preprocess a source file
+parallel_reduce.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_reduce.cpp.i
+.PHONY : parallel_reduce.cpp.i
+
+parallel_reduce.s: parallel_reduce.cpp.s
+
+.PHONY : parallel_reduce.s
+
+# target to generate assembly for a file
+parallel_reduce.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_reduce.cpp.s
+.PHONY : parallel_reduce.cpp.s
+
+parallel_set.o: parallel_set.cpp.o
+
+.PHONY : parallel_set.o
+
+# target to build an object file
+parallel_set.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_set.cpp.o
+.PHONY : parallel_set.cpp.o
+
+parallel_set.i: parallel_set.cpp.i
+
+.PHONY : parallel_set.i
+
+# target to preprocess a source file
+parallel_set.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_set.cpp.i
+.PHONY : parallel_set.cpp.i
+
+parallel_set.s: parallel_set.cpp.s
+
+.PHONY : parallel_set.s
+
+# target to generate assembly for a file
+parallel_set.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_set.cpp.s
+.PHONY : parallel_set.cpp.s
+
+parallel_sort.o: parallel_sort.cpp.o
+
+.PHONY : parallel_sort.o
+
+# target to build an object file
+parallel_sort.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_sort.cpp.o
+.PHONY : parallel_sort.cpp.o
+
+parallel_sort.i: parallel_sort.cpp.i
+
+.PHONY : parallel_sort.i
+
+# target to preprocess a source file
+parallel_sort.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_sort.cpp.i
+.PHONY : parallel_sort.cpp.i
+
+parallel_sort.s: parallel_sort.cpp.s
+
+.PHONY : parallel_sort.s
+
+# target to generate assembly for a file
+parallel_sort.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/algorithms/CMakeFiles/algorithms.dir/build.make embree/common/algorithms/CMakeFiles/algorithms.dir/parallel_sort.cpp.s
+.PHONY : parallel_sort.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... algorithms"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... parallel_filter.o"
+	@echo "... parallel_filter.i"
+	@echo "... parallel_filter.s"
+	@echo "... parallel_for.o"
+	@echo "... parallel_for.i"
+	@echo "... parallel_for.s"
+	@echo "... parallel_for_for.o"
+	@echo "... parallel_for_for.i"
+	@echo "... parallel_for_for.s"
+	@echo "... parallel_for_for_prefix_sum.o"
+	@echo "... parallel_for_for_prefix_sum.i"
+	@echo "... parallel_for_for_prefix_sum.s"
+	@echo "... parallel_map.o"
+	@echo "... parallel_map.i"
+	@echo "... parallel_map.s"
+	@echo "... parallel_partition.o"
+	@echo "... parallel_partition.i"
+	@echo "... parallel_partition.s"
+	@echo "... parallel_prefix_sum.o"
+	@echo "... parallel_prefix_sum.i"
+	@echo "... parallel_prefix_sum.s"
+	@echo "... parallel_reduce.o"
+	@echo "... parallel_reduce.i"
+	@echo "... parallel_reduce.s"
+	@echo "... parallel_set.o"
+	@echo "... parallel_set.i"
+	@echo "... parallel_set.s"
+	@echo "... parallel_sort.o"
+	@echo "... parallel_sort.i"
+	@echo "... parallel_sort.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 39 - 0
build2/embree/common/algorithms/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/algorithms
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+

+ 50 - 0
build2/embree/common/cmake_install.cmake

@@ -0,0 +1,50 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/thuemmel/libs/libigl/build2/embree/common/sys/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/common/math/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/common/simd/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/common/lexers/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/common/tasking/cmake_install.cmake")
+  include("/home/thuemmel/libs/libigl/build2/embree/common/algorithms/cmake_install.cmake")
+
+endif()
+

+ 6 - 0
build2/embree/common/lexers/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/lexers
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/lexers
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 284 - 0
build2/embree/common/lexers/Makefile

@@ -0,0 +1,284 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/lexers/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/lexers/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/lexers/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/lexers/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/lexers/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/lexers/CMakeFiles/lexers.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/lexers/CMakeFiles/lexers.dir/rule
+.PHONY : embree/common/lexers/CMakeFiles/lexers.dir/rule
+
+# Convenience name for target.
+lexers: embree/common/lexers/CMakeFiles/lexers.dir/rule
+
+.PHONY : lexers
+
+# fast build rule for target.
+lexers/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/build
+.PHONY : lexers/fast
+
+stringstream.o: stringstream.cpp.o
+
+.PHONY : stringstream.o
+
+# target to build an object file
+stringstream.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/stringstream.cpp.o
+.PHONY : stringstream.cpp.o
+
+stringstream.i: stringstream.cpp.i
+
+.PHONY : stringstream.i
+
+# target to preprocess a source file
+stringstream.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/stringstream.cpp.i
+.PHONY : stringstream.cpp.i
+
+stringstream.s: stringstream.cpp.s
+
+.PHONY : stringstream.s
+
+# target to generate assembly for a file
+stringstream.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/stringstream.cpp.s
+.PHONY : stringstream.cpp.s
+
+tokenstream.o: tokenstream.cpp.o
+
+.PHONY : tokenstream.o
+
+# target to build an object file
+tokenstream.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/tokenstream.cpp.o
+.PHONY : tokenstream.cpp.o
+
+tokenstream.i: tokenstream.cpp.i
+
+.PHONY : tokenstream.i
+
+# target to preprocess a source file
+tokenstream.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/tokenstream.cpp.i
+.PHONY : tokenstream.cpp.i
+
+tokenstream.s: tokenstream.cpp.s
+
+.PHONY : tokenstream.s
+
+# target to generate assembly for a file
+tokenstream.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/lexers/CMakeFiles/lexers.dir/build.make embree/common/lexers/CMakeFiles/lexers.dir/tokenstream.cpp.s
+.PHONY : tokenstream.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... lexers"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... stringstream.o"
+	@echo "... stringstream.i"
+	@echo "... stringstream.s"
+	@echo "... tokenstream.o"
+	@echo "... tokenstream.i"
+	@echo "... tokenstream.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/common/lexers/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/lexers
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/liblexers.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/lexers-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/lexers-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/common/lexers/CMakeFiles/Export/lib/cmake/embree-3.5.2/lexers-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/lexers-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/lexers-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/lexers/CMakeFiles/Export/lib/cmake/embree-3.5.2/lexers-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/lexers/CMakeFiles/Export/lib/cmake/embree-3.5.2/lexers-targets-release.cmake")
+  endif()
+endif()
+

+ 6 - 0
build2/embree/common/math/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/math
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/math
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 254 - 0
build2/embree/common/math/Makefile

@@ -0,0 +1,254 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/math/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/math/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/math/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/math/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/math/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/math/CMakeFiles/math.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/math/CMakeFiles/math.dir/rule
+.PHONY : embree/common/math/CMakeFiles/math.dir/rule
+
+# Convenience name for target.
+math: embree/common/math/CMakeFiles/math.dir/rule
+
+.PHONY : math
+
+# fast build rule for target.
+math/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/math/CMakeFiles/math.dir/build.make embree/common/math/CMakeFiles/math.dir/build
+.PHONY : math/fast
+
+constants.o: constants.cpp.o
+
+.PHONY : constants.o
+
+# target to build an object file
+constants.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/math/CMakeFiles/math.dir/build.make embree/common/math/CMakeFiles/math.dir/constants.cpp.o
+.PHONY : constants.cpp.o
+
+constants.i: constants.cpp.i
+
+.PHONY : constants.i
+
+# target to preprocess a source file
+constants.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/math/CMakeFiles/math.dir/build.make embree/common/math/CMakeFiles/math.dir/constants.cpp.i
+.PHONY : constants.cpp.i
+
+constants.s: constants.cpp.s
+
+.PHONY : constants.s
+
+# target to generate assembly for a file
+constants.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/math/CMakeFiles/math.dir/build.make embree/common/math/CMakeFiles/math.dir/constants.cpp.s
+.PHONY : constants.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... math"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... constants.o"
+	@echo "... constants.i"
+	@echo "... constants.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/common/math/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/math
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/libmath.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/math-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/math-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/common/math/CMakeFiles/Export/lib/cmake/embree-3.5.2/math-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/math-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/math-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/math/CMakeFiles/Export/lib/cmake/embree-3.5.2/math-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/math/CMakeFiles/Export/lib/cmake/embree-3.5.2/math-targets-release.cmake")
+  endif()
+endif()
+

+ 6 - 0
build2/embree/common/simd/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/simd
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/simd
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 254 - 0
build2/embree/common/simd/Makefile

@@ -0,0 +1,254 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/simd/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/simd/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/simd/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/simd/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/simd/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/simd/CMakeFiles/simd.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/simd/CMakeFiles/simd.dir/rule
+.PHONY : embree/common/simd/CMakeFiles/simd.dir/rule
+
+# Convenience name for target.
+simd: embree/common/simd/CMakeFiles/simd.dir/rule
+
+.PHONY : simd
+
+# fast build rule for target.
+simd/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/simd/CMakeFiles/simd.dir/build.make embree/common/simd/CMakeFiles/simd.dir/build
+.PHONY : simd/fast
+
+sse.o: sse.cpp.o
+
+.PHONY : sse.o
+
+# target to build an object file
+sse.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/simd/CMakeFiles/simd.dir/build.make embree/common/simd/CMakeFiles/simd.dir/sse.cpp.o
+.PHONY : sse.cpp.o
+
+sse.i: sse.cpp.i
+
+.PHONY : sse.i
+
+# target to preprocess a source file
+sse.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/simd/CMakeFiles/simd.dir/build.make embree/common/simd/CMakeFiles/simd.dir/sse.cpp.i
+.PHONY : sse.cpp.i
+
+sse.s: sse.cpp.s
+
+.PHONY : sse.s
+
+# target to generate assembly for a file
+sse.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/simd/CMakeFiles/simd.dir/build.make embree/common/simd/CMakeFiles/simd.dir/sse.cpp.s
+.PHONY : sse.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... simd"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... sse.o"
+	@echo "... sse.i"
+	@echo "... sse.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/common/simd/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/simd
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/libsimd.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/simd-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/simd-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/common/simd/CMakeFiles/Export/lib/cmake/embree-3.5.2/simd-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/simd-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/simd-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/simd/CMakeFiles/Export/lib/cmake/embree-3.5.2/simd-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/simd/CMakeFiles/Export/lib/cmake/embree-3.5.2/simd-targets-release.cmake")
+  endif()
+endif()
+

+ 6 - 0
build2/embree/common/sys/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/sys
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/sys
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 524 - 0
build2/embree/common/sys/Makefile

@@ -0,0 +1,524 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/sys/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/sys/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/sys/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/sys/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/sys/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/sys/CMakeFiles/sys.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/sys/CMakeFiles/sys.dir/rule
+.PHONY : embree/common/sys/CMakeFiles/sys.dir/rule
+
+# Convenience name for target.
+sys: embree/common/sys/CMakeFiles/sys.dir/rule
+
+.PHONY : sys
+
+# fast build rule for target.
+sys/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/build
+.PHONY : sys/fast
+
+alloc.o: alloc.cpp.o
+
+.PHONY : alloc.o
+
+# target to build an object file
+alloc.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/alloc.cpp.o
+.PHONY : alloc.cpp.o
+
+alloc.i: alloc.cpp.i
+
+.PHONY : alloc.i
+
+# target to preprocess a source file
+alloc.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/alloc.cpp.i
+.PHONY : alloc.cpp.i
+
+alloc.s: alloc.cpp.s
+
+.PHONY : alloc.s
+
+# target to generate assembly for a file
+alloc.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/alloc.cpp.s
+.PHONY : alloc.cpp.s
+
+barrier.o: barrier.cpp.o
+
+.PHONY : barrier.o
+
+# target to build an object file
+barrier.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/barrier.cpp.o
+.PHONY : barrier.cpp.o
+
+barrier.i: barrier.cpp.i
+
+.PHONY : barrier.i
+
+# target to preprocess a source file
+barrier.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/barrier.cpp.i
+.PHONY : barrier.cpp.i
+
+barrier.s: barrier.cpp.s
+
+.PHONY : barrier.s
+
+# target to generate assembly for a file
+barrier.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/barrier.cpp.s
+.PHONY : barrier.cpp.s
+
+condition.o: condition.cpp.o
+
+.PHONY : condition.o
+
+# target to build an object file
+condition.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/condition.cpp.o
+.PHONY : condition.cpp.o
+
+condition.i: condition.cpp.i
+
+.PHONY : condition.i
+
+# target to preprocess a source file
+condition.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/condition.cpp.i
+.PHONY : condition.cpp.i
+
+condition.s: condition.cpp.s
+
+.PHONY : condition.s
+
+# target to generate assembly for a file
+condition.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/condition.cpp.s
+.PHONY : condition.cpp.s
+
+filename.o: filename.cpp.o
+
+.PHONY : filename.o
+
+# target to build an object file
+filename.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/filename.cpp.o
+.PHONY : filename.cpp.o
+
+filename.i: filename.cpp.i
+
+.PHONY : filename.i
+
+# target to preprocess a source file
+filename.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/filename.cpp.i
+.PHONY : filename.cpp.i
+
+filename.s: filename.cpp.s
+
+.PHONY : filename.s
+
+# target to generate assembly for a file
+filename.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/filename.cpp.s
+.PHONY : filename.cpp.s
+
+library.o: library.cpp.o
+
+.PHONY : library.o
+
+# target to build an object file
+library.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/library.cpp.o
+.PHONY : library.cpp.o
+
+library.i: library.cpp.i
+
+.PHONY : library.i
+
+# target to preprocess a source file
+library.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/library.cpp.i
+.PHONY : library.cpp.i
+
+library.s: library.cpp.s
+
+.PHONY : library.s
+
+# target to generate assembly for a file
+library.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/library.cpp.s
+.PHONY : library.cpp.s
+
+mutex.o: mutex.cpp.o
+
+.PHONY : mutex.o
+
+# target to build an object file
+mutex.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/mutex.cpp.o
+.PHONY : mutex.cpp.o
+
+mutex.i: mutex.cpp.i
+
+.PHONY : mutex.i
+
+# target to preprocess a source file
+mutex.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/mutex.cpp.i
+.PHONY : mutex.cpp.i
+
+mutex.s: mutex.cpp.s
+
+.PHONY : mutex.s
+
+# target to generate assembly for a file
+mutex.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/mutex.cpp.s
+.PHONY : mutex.cpp.s
+
+regression.o: regression.cpp.o
+
+.PHONY : regression.o
+
+# target to build an object file
+regression.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/regression.cpp.o
+.PHONY : regression.cpp.o
+
+regression.i: regression.cpp.i
+
+.PHONY : regression.i
+
+# target to preprocess a source file
+regression.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/regression.cpp.i
+.PHONY : regression.cpp.i
+
+regression.s: regression.cpp.s
+
+.PHONY : regression.s
+
+# target to generate assembly for a file
+regression.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/regression.cpp.s
+.PHONY : regression.cpp.s
+
+string.o: string.cpp.o
+
+.PHONY : string.o
+
+# target to build an object file
+string.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/string.cpp.o
+.PHONY : string.cpp.o
+
+string.i: string.cpp.i
+
+.PHONY : string.i
+
+# target to preprocess a source file
+string.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/string.cpp.i
+.PHONY : string.cpp.i
+
+string.s: string.cpp.s
+
+.PHONY : string.s
+
+# target to generate assembly for a file
+string.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/string.cpp.s
+.PHONY : string.cpp.s
+
+sysinfo.o: sysinfo.cpp.o
+
+.PHONY : sysinfo.o
+
+# target to build an object file
+sysinfo.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/sysinfo.cpp.o
+.PHONY : sysinfo.cpp.o
+
+sysinfo.i: sysinfo.cpp.i
+
+.PHONY : sysinfo.i
+
+# target to preprocess a source file
+sysinfo.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/sysinfo.cpp.i
+.PHONY : sysinfo.cpp.i
+
+sysinfo.s: sysinfo.cpp.s
+
+.PHONY : sysinfo.s
+
+# target to generate assembly for a file
+sysinfo.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/sysinfo.cpp.s
+.PHONY : sysinfo.cpp.s
+
+thread.o: thread.cpp.o
+
+.PHONY : thread.o
+
+# target to build an object file
+thread.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/thread.cpp.o
+.PHONY : thread.cpp.o
+
+thread.i: thread.cpp.i
+
+.PHONY : thread.i
+
+# target to preprocess a source file
+thread.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/thread.cpp.i
+.PHONY : thread.cpp.i
+
+thread.s: thread.cpp.s
+
+.PHONY : thread.s
+
+# target to generate assembly for a file
+thread.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/sys/CMakeFiles/sys.dir/build.make embree/common/sys/CMakeFiles/sys.dir/thread.cpp.s
+.PHONY : thread.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... sys"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... alloc.o"
+	@echo "... alloc.i"
+	@echo "... alloc.s"
+	@echo "... barrier.o"
+	@echo "... barrier.i"
+	@echo "... barrier.s"
+	@echo "... condition.o"
+	@echo "... condition.i"
+	@echo "... condition.s"
+	@echo "... filename.o"
+	@echo "... filename.i"
+	@echo "... filename.s"
+	@echo "... library.o"
+	@echo "... library.i"
+	@echo "... library.s"
+	@echo "... mutex.o"
+	@echo "... mutex.i"
+	@echo "... mutex.s"
+	@echo "... regression.o"
+	@echo "... regression.i"
+	@echo "... regression.s"
+	@echo "... string.o"
+	@echo "... string.i"
+	@echo "... string.s"
+	@echo "... sysinfo.o"
+	@echo "... sysinfo.i"
+	@echo "... sysinfo.s"
+	@echo "... thread.o"
+	@echo "... thread.i"
+	@echo "... thread.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/common/sys/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/sys
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/libsys.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/sys-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/sys-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/common/sys/CMakeFiles/Export/lib/cmake/embree-3.5.2/sys-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/sys-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/sys-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/sys/CMakeFiles/Export/lib/cmake/embree-3.5.2/sys-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/sys/CMakeFiles/Export/lib/cmake/embree-3.5.2/sys-targets-release.cmake")
+  endif()
+endif()
+

+ 6 - 0
build2/embree/common/tasking/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/common/tasking
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/common/tasking
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 254 - 0
build2/embree/common/tasking/Makefile

@@ -0,0 +1,254 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/common/tasking/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/tasking/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/tasking/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/tasking/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/tasking/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/common/tasking/CMakeFiles/tasking.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/common/tasking/CMakeFiles/tasking.dir/rule
+.PHONY : embree/common/tasking/CMakeFiles/tasking.dir/rule
+
+# Convenience name for target.
+tasking: embree/common/tasking/CMakeFiles/tasking.dir/rule
+
+.PHONY : tasking
+
+# fast build rule for target.
+tasking/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/tasking/CMakeFiles/tasking.dir/build.make embree/common/tasking/CMakeFiles/tasking.dir/build
+.PHONY : tasking/fast
+
+taskschedulerinternal.o: taskschedulerinternal.cpp.o
+
+.PHONY : taskschedulerinternal.o
+
+# target to build an object file
+taskschedulerinternal.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/tasking/CMakeFiles/tasking.dir/build.make embree/common/tasking/CMakeFiles/tasking.dir/taskschedulerinternal.cpp.o
+.PHONY : taskschedulerinternal.cpp.o
+
+taskschedulerinternal.i: taskschedulerinternal.cpp.i
+
+.PHONY : taskschedulerinternal.i
+
+# target to preprocess a source file
+taskschedulerinternal.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/tasking/CMakeFiles/tasking.dir/build.make embree/common/tasking/CMakeFiles/tasking.dir/taskschedulerinternal.cpp.i
+.PHONY : taskschedulerinternal.cpp.i
+
+taskschedulerinternal.s: taskschedulerinternal.cpp.s
+
+.PHONY : taskschedulerinternal.s
+
+# target to generate assembly for a file
+taskschedulerinternal.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/common/tasking/CMakeFiles/tasking.dir/build.make embree/common/tasking/CMakeFiles/tasking.dir/taskschedulerinternal.cpp.s
+.PHONY : taskschedulerinternal.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... install/local"
+	@echo "... tasking"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... taskschedulerinternal.o"
+	@echo "... taskschedulerinternal.i"
+	@echo "... taskschedulerinternal.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/common/tasking/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/common/tasking
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/libtasking.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/tasking-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/tasking-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/common/tasking/CMakeFiles/Export/lib/cmake/embree-3.5.2/tasking-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/tasking-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/tasking-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/tasking/CMakeFiles/Export/lib/cmake/embree-3.5.2/tasking-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/common/tasking/CMakeFiles/Export/lib/cmake/embree-3.5.2/tasking-targets-release.cmake")
+  endif()
+endif()
+

+ 66 - 0
build2/embree/embree-config-install.cmake

@@ -0,0 +1,66 @@
+## ======================================================================== ##
+## Copyright 2009-2018 Intel Corporation                                    ##
+##                                                                          ##
+## Licensed under the Apache License, Version 2.0 (the "License");          ##
+## you may not use this file except in compliance with the License.         ##
+## You may obtain a copy of the License at                                  ##
+##                                                                          ##
+##     http://www.apache.org/licenses/LICENSE-2.0                           ##
+##                                                                          ##
+## Unless required by applicable law or agreed to in writing, software      ##
+## distributed under the License is distributed on an "AS IS" BASIS,        ##
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
+## See the License for the specific language governing permissions and      ##
+## limitations under the License.                                           ##
+## ======================================================================== ##
+
+SET(EMBREE_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../)
+GET_FILENAME_COMPONENT(EMBREE_ROOT_DIR "${EMBREE_ROOT_DIR}" ABSOLUTE)
+
+SET(EMBREE_INCLUDE_DIRS ${EMBREE_ROOT_DIR}/include)
+SET(EMBREE_LIBRARY ${EMBREE_ROOT_DIR}/lib/libembree3.a)
+SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})
+
+MARK_AS_ADVANCED(embree_DIR)
+
+SET(EMBREE_VERSION 3.5.2)
+SET(EMBREE_VERSION_MAJOR 3)
+SET(EMBREE_VERSION_MINOR 5)
+SET(EMBREE_VERSION_PATCH 2)
+SET(EMBREE_VERSION_NOTE "")
+
+SET(EMBREE_MAX_ISA SSE2)
+SET(EMBREE_ISA_SSE2  ON)
+SET(EMBREE_ISA_SSE42 OFF)
+SET(EMBREE_ISA_AVX OFF) 
+SET(EMBREE_ISA_AVX2  OFF)
+SET(EMBREE_ISA_AVX512KNL OFF)
+SET(EMBREE_ISA_AVX512SKX OFF)
+
+SET(EMBREE_BUILD_TYPE Release)
+SET(EMBREE_ISPC_SUPPORT OFF)
+SET(EMBREE_STATIC_LIB ON)
+SET(EMBREE_TUTORIALS OFF)
+
+SET(EMBREE_RAY_MASK OFF)
+SET(EMBREE_STAT_COUNTERS OFF)
+SET(EMBREE_BACKFACE_CULLING OFF)
+SET(EMBREE_FILTER_FUNCTION ON)
+SET(EMBREE_IGNORE_INVALID_RAYS OFF)
+SET(EMBREE_TASKING_SYSTEM INTERNAL)
+
+SET(EMBREE_GEOMETRY_TRIANGLE ON)
+SET(EMBREE_GEOMETRY_QUAD ON)
+SET(EMBREE_GEOMETRY_CURVE ON)
+SET(EMBREE_GEOMETRY_SUBDIVISION ON)
+SET(EMBREE_GEOMETRY_USER ON)
+SET(EMBREE_GEOMETRY_POINT ON)
+SET(EMBREE_RAY_PACKETS ON)
+
+IF(EMBREE_STATIC_LIB)
+  FILE(GLOB CONFIG_FILES "${EMBREE_ROOT_DIR}/lib/cmake/embree-3.5.2/*-targets.cmake")
+  FOREACH(f ${CONFIG_FILES})
+    INCLUDE(${f})
+  ENDFOREACH()
+  LINK_DIRECTORIES(${EMBREE_ROOT_DIR}/lib)
+ENDIF()

+ 28 - 0
build2/embree/embree-config-version.cmake

@@ -0,0 +1,28 @@
+## ======================================================================== ##
+## Copyright 2009-2018 Intel Corporation                                    ##
+##                                                                          ##
+## Licensed under the Apache License, Version 2.0 (the "License");          ##
+## you may not use this file except in compliance with the License.         ##
+## You may obtain a copy of the License at                                  ##
+##                                                                          ##
+##     http://www.apache.org/licenses/LICENSE-2.0                           ##
+##                                                                          ##
+## Unless required by applicable law or agreed to in writing, software      ##
+## distributed under the License is distributed on an "AS IS" BASIS,        ##
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
+## See the License for the specific language governing permissions and      ##
+## limitations under the License.                                           ##
+## ======================================================================== ##
+
+SET(PACKAGE_VERSION 3.5.2)
+
+IF (${PACKAGE_FIND_VERSION_MAJOR} EQUAL 3)
+  IF (${PACKAGE_FIND_VERSION} VERSION_LESS 3.5.2)
+    SET(PACKAGE_VERSION_COMPATIBLE 1)  
+  ENDIF()
+  IF (${PACKAGE_FIND_VERSION} VERSION_EQUAL 3.5.2)
+    SET(PACKAGE_VERSION_EXACT 1)  
+  ENDIF()
+ELSE()
+  SET(PACKAGE_VERSION_UNSUITABLE 1)
+ENDIF()

+ 23 - 0
build2/embree/embree-config.cmake

@@ -0,0 +1,23 @@
+## ======================================================================== ##
+## Copyright 2009-2018 Intel Corporation                                    ##
+##                                                                          ##
+## Licensed under the Apache License, Version 2.0 (the "License");          ##
+## you may not use this file except in compliance with the License.         ##
+## You may obtain a copy of the License at                                  ##
+##                                                                          ##
+##     http://www.apache.org/licenses/LICENSE-2.0                           ##
+##                                                                          ##
+## Unless required by applicable law or agreed to in writing, software      ##
+## distributed under the License is distributed on an "AS IS" BASIS,        ##
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
+## See the License for the specific language governing permissions and      ##
+## limitations under the License.                                           ##
+## ======================================================================== ##
+
+# use default install config
+INCLUDE(${CMAKE_CURRENT_LIST_DIR}/embree-config-install.cmake)
+
+# and override path variables to match for build directory
+SET(EMBREE_INCLUDE_DIRS /home/thuemmel/libs/libigl/external/embree/include)
+SET(EMBREE_LIBRARY /home/thuemmel/libs/libigl/build2/embree/libembree3.a)
+SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})

+ 6 - 0
build2/embree/kernels/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/thuemmel/libs/libigl/external/embree/kernels
+# Build directory: /home/thuemmel/libs/libigl/build2/embree/kernels
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 1710 - 0
build2/embree/kernels/Makefile

@@ -0,0 +1,1710 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/embree/kernels/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/rule
+.PHONY : embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/rule
+
+# Convenience name for target.
+embree_check_stack_frame_size: embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/rule
+
+.PHONY : embree_check_stack_frame_size
+
+# fast build rule for target.
+embree_check_stack_frame_size/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/build.make embree/kernels/CMakeFiles/embree_check_stack_frame_size.dir/build
+.PHONY : embree_check_stack_frame_size/fast
+
+# Convenience name for target.
+embree/kernels/CMakeFiles/embree.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 embree/kernels/CMakeFiles/embree.dir/rule
+.PHONY : embree/kernels/CMakeFiles/embree.dir/rule
+
+# Convenience name for target.
+embree: embree/kernels/CMakeFiles/embree.dir/rule
+
+.PHONY : embree
+
+# fast build rule for target.
+embree/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/build
+.PHONY : embree/fast
+
+builders/primrefgen.o: builders/primrefgen.cpp.o
+
+.PHONY : builders/primrefgen.o
+
+# target to build an object file
+builders/primrefgen.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/builders/primrefgen.cpp.o
+.PHONY : builders/primrefgen.cpp.o
+
+builders/primrefgen.i: builders/primrefgen.cpp.i
+
+.PHONY : builders/primrefgen.i
+
+# target to preprocess a source file
+builders/primrefgen.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/builders/primrefgen.cpp.i
+.PHONY : builders/primrefgen.cpp.i
+
+builders/primrefgen.s: builders/primrefgen.cpp.s
+
+.PHONY : builders/primrefgen.s
+
+# target to generate assembly for a file
+builders/primrefgen.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/builders/primrefgen.cpp.s
+.PHONY : builders/primrefgen.cpp.s
+
+bvh/bvh.o: bvh/bvh.cpp.o
+
+.PHONY : bvh/bvh.o
+
+# target to build an object file
+bvh/bvh.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh.cpp.o
+.PHONY : bvh/bvh.cpp.o
+
+bvh/bvh.i: bvh/bvh.cpp.i
+
+.PHONY : bvh/bvh.i
+
+# target to preprocess a source file
+bvh/bvh.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh.cpp.i
+.PHONY : bvh/bvh.cpp.i
+
+bvh/bvh.s: bvh/bvh.cpp.s
+
+.PHONY : bvh/bvh.s
+
+# target to generate assembly for a file
+bvh/bvh.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh.cpp.s
+.PHONY : bvh/bvh.cpp.s
+
+bvh/bvh4_factory.o: bvh/bvh4_factory.cpp.o
+
+.PHONY : bvh/bvh4_factory.o
+
+# target to build an object file
+bvh/bvh4_factory.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh4_factory.cpp.o
+.PHONY : bvh/bvh4_factory.cpp.o
+
+bvh/bvh4_factory.i: bvh/bvh4_factory.cpp.i
+
+.PHONY : bvh/bvh4_factory.i
+
+# target to preprocess a source file
+bvh/bvh4_factory.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh4_factory.cpp.i
+.PHONY : bvh/bvh4_factory.cpp.i
+
+bvh/bvh4_factory.s: bvh/bvh4_factory.cpp.s
+
+.PHONY : bvh/bvh4_factory.s
+
+# target to generate assembly for a file
+bvh/bvh4_factory.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh4_factory.cpp.s
+.PHONY : bvh/bvh4_factory.cpp.s
+
+bvh/bvh8_factory.o: bvh/bvh8_factory.cpp.o
+
+.PHONY : bvh/bvh8_factory.o
+
+# target to build an object file
+bvh/bvh8_factory.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh8_factory.cpp.o
+.PHONY : bvh/bvh8_factory.cpp.o
+
+bvh/bvh8_factory.i: bvh/bvh8_factory.cpp.i
+
+.PHONY : bvh/bvh8_factory.i
+
+# target to preprocess a source file
+bvh/bvh8_factory.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh8_factory.cpp.i
+.PHONY : bvh/bvh8_factory.cpp.i
+
+bvh/bvh8_factory.s: bvh/bvh8_factory.cpp.s
+
+.PHONY : bvh/bvh8_factory.s
+
+# target to generate assembly for a file
+bvh/bvh8_factory.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh8_factory.cpp.s
+.PHONY : bvh/bvh8_factory.cpp.s
+
+bvh/bvh_builder.o: bvh/bvh_builder.cpp.o
+
+.PHONY : bvh/bvh_builder.o
+
+# target to build an object file
+bvh/bvh_builder.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder.cpp.o
+.PHONY : bvh/bvh_builder.cpp.o
+
+bvh/bvh_builder.i: bvh/bvh_builder.cpp.i
+
+.PHONY : bvh/bvh_builder.i
+
+# target to preprocess a source file
+bvh/bvh_builder.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder.cpp.i
+.PHONY : bvh/bvh_builder.cpp.i
+
+bvh/bvh_builder.s: bvh/bvh_builder.cpp.s
+
+.PHONY : bvh/bvh_builder.s
+
+# target to generate assembly for a file
+bvh/bvh_builder.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder.cpp.s
+.PHONY : bvh/bvh_builder.cpp.s
+
+bvh/bvh_builder_hair.o: bvh/bvh_builder_hair.cpp.o
+
+.PHONY : bvh/bvh_builder_hair.o
+
+# target to build an object file
+bvh/bvh_builder_hair.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair.cpp.o
+.PHONY : bvh/bvh_builder_hair.cpp.o
+
+bvh/bvh_builder_hair.i: bvh/bvh_builder_hair.cpp.i
+
+.PHONY : bvh/bvh_builder_hair.i
+
+# target to preprocess a source file
+bvh/bvh_builder_hair.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair.cpp.i
+.PHONY : bvh/bvh_builder_hair.cpp.i
+
+bvh/bvh_builder_hair.s: bvh/bvh_builder_hair.cpp.s
+
+.PHONY : bvh/bvh_builder_hair.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_hair.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair.cpp.s
+.PHONY : bvh/bvh_builder_hair.cpp.s
+
+bvh/bvh_builder_hair_mb.o: bvh/bvh_builder_hair_mb.cpp.o
+
+.PHONY : bvh/bvh_builder_hair_mb.o
+
+# target to build an object file
+bvh/bvh_builder_hair_mb.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair_mb.cpp.o
+.PHONY : bvh/bvh_builder_hair_mb.cpp.o
+
+bvh/bvh_builder_hair_mb.i: bvh/bvh_builder_hair_mb.cpp.i
+
+.PHONY : bvh/bvh_builder_hair_mb.i
+
+# target to preprocess a source file
+bvh/bvh_builder_hair_mb.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair_mb.cpp.i
+.PHONY : bvh/bvh_builder_hair_mb.cpp.i
+
+bvh/bvh_builder_hair_mb.s: bvh/bvh_builder_hair_mb.cpp.s
+
+.PHONY : bvh/bvh_builder_hair_mb.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_hair_mb.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_hair_mb.cpp.s
+.PHONY : bvh/bvh_builder_hair_mb.cpp.s
+
+bvh/bvh_builder_morton.o: bvh/bvh_builder_morton.cpp.o
+
+.PHONY : bvh/bvh_builder_morton.o
+
+# target to build an object file
+bvh/bvh_builder_morton.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_morton.cpp.o
+.PHONY : bvh/bvh_builder_morton.cpp.o
+
+bvh/bvh_builder_morton.i: bvh/bvh_builder_morton.cpp.i
+
+.PHONY : bvh/bvh_builder_morton.i
+
+# target to preprocess a source file
+bvh/bvh_builder_morton.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_morton.cpp.i
+.PHONY : bvh/bvh_builder_morton.cpp.i
+
+bvh/bvh_builder_morton.s: bvh/bvh_builder_morton.cpp.s
+
+.PHONY : bvh/bvh_builder_morton.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_morton.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_morton.cpp.s
+.PHONY : bvh/bvh_builder_morton.cpp.s
+
+bvh/bvh_builder_sah.o: bvh/bvh_builder_sah.cpp.o
+
+.PHONY : bvh/bvh_builder_sah.o
+
+# target to build an object file
+bvh/bvh_builder_sah.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah.cpp.o
+.PHONY : bvh/bvh_builder_sah.cpp.o
+
+bvh/bvh_builder_sah.i: bvh/bvh_builder_sah.cpp.i
+
+.PHONY : bvh/bvh_builder_sah.i
+
+# target to preprocess a source file
+bvh/bvh_builder_sah.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah.cpp.i
+.PHONY : bvh/bvh_builder_sah.cpp.i
+
+bvh/bvh_builder_sah.s: bvh/bvh_builder_sah.cpp.s
+
+.PHONY : bvh/bvh_builder_sah.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_sah.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah.cpp.s
+.PHONY : bvh/bvh_builder_sah.cpp.s
+
+bvh/bvh_builder_sah_mb.o: bvh/bvh_builder_sah_mb.cpp.o
+
+.PHONY : bvh/bvh_builder_sah_mb.o
+
+# target to build an object file
+bvh/bvh_builder_sah_mb.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_mb.cpp.o
+.PHONY : bvh/bvh_builder_sah_mb.cpp.o
+
+bvh/bvh_builder_sah_mb.i: bvh/bvh_builder_sah_mb.cpp.i
+
+.PHONY : bvh/bvh_builder_sah_mb.i
+
+# target to preprocess a source file
+bvh/bvh_builder_sah_mb.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_mb.cpp.i
+.PHONY : bvh/bvh_builder_sah_mb.cpp.i
+
+bvh/bvh_builder_sah_mb.s: bvh/bvh_builder_sah_mb.cpp.s
+
+.PHONY : bvh/bvh_builder_sah_mb.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_sah_mb.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_mb.cpp.s
+.PHONY : bvh/bvh_builder_sah_mb.cpp.s
+
+bvh/bvh_builder_sah_spatial.o: bvh/bvh_builder_sah_spatial.cpp.o
+
+.PHONY : bvh/bvh_builder_sah_spatial.o
+
+# target to build an object file
+bvh/bvh_builder_sah_spatial.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_spatial.cpp.o
+.PHONY : bvh/bvh_builder_sah_spatial.cpp.o
+
+bvh/bvh_builder_sah_spatial.i: bvh/bvh_builder_sah_spatial.cpp.i
+
+.PHONY : bvh/bvh_builder_sah_spatial.i
+
+# target to preprocess a source file
+bvh/bvh_builder_sah_spatial.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_spatial.cpp.i
+.PHONY : bvh/bvh_builder_sah_spatial.cpp.i
+
+bvh/bvh_builder_sah_spatial.s: bvh/bvh_builder_sah_spatial.cpp.s
+
+.PHONY : bvh/bvh_builder_sah_spatial.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_sah_spatial.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_sah_spatial.cpp.s
+.PHONY : bvh/bvh_builder_sah_spatial.cpp.s
+
+bvh/bvh_builder_subdiv.o: bvh/bvh_builder_subdiv.cpp.o
+
+.PHONY : bvh/bvh_builder_subdiv.o
+
+# target to build an object file
+bvh/bvh_builder_subdiv.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_subdiv.cpp.o
+.PHONY : bvh/bvh_builder_subdiv.cpp.o
+
+bvh/bvh_builder_subdiv.i: bvh/bvh_builder_subdiv.cpp.i
+
+.PHONY : bvh/bvh_builder_subdiv.i
+
+# target to preprocess a source file
+bvh/bvh_builder_subdiv.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_subdiv.cpp.i
+.PHONY : bvh/bvh_builder_subdiv.cpp.i
+
+bvh/bvh_builder_subdiv.s: bvh/bvh_builder_subdiv.cpp.s
+
+.PHONY : bvh/bvh_builder_subdiv.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_subdiv.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_subdiv.cpp.s
+.PHONY : bvh/bvh_builder_subdiv.cpp.s
+
+bvh/bvh_builder_twolevel.o: bvh/bvh_builder_twolevel.cpp.o
+
+.PHONY : bvh/bvh_builder_twolevel.o
+
+# target to build an object file
+bvh/bvh_builder_twolevel.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_twolevel.cpp.o
+.PHONY : bvh/bvh_builder_twolevel.cpp.o
+
+bvh/bvh_builder_twolevel.i: bvh/bvh_builder_twolevel.cpp.i
+
+.PHONY : bvh/bvh_builder_twolevel.i
+
+# target to preprocess a source file
+bvh/bvh_builder_twolevel.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_twolevel.cpp.i
+.PHONY : bvh/bvh_builder_twolevel.cpp.i
+
+bvh/bvh_builder_twolevel.s: bvh/bvh_builder_twolevel.cpp.s
+
+.PHONY : bvh/bvh_builder_twolevel.s
+
+# target to generate assembly for a file
+bvh/bvh_builder_twolevel.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_builder_twolevel.cpp.s
+.PHONY : bvh/bvh_builder_twolevel.cpp.s
+
+bvh/bvh_intersector1_bvh4.o: bvh/bvh_intersector1_bvh4.cpp.o
+
+.PHONY : bvh/bvh_intersector1_bvh4.o
+
+# target to build an object file
+bvh/bvh_intersector1_bvh4.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector1_bvh4.cpp.o
+.PHONY : bvh/bvh_intersector1_bvh4.cpp.o
+
+bvh/bvh_intersector1_bvh4.i: bvh/bvh_intersector1_bvh4.cpp.i
+
+.PHONY : bvh/bvh_intersector1_bvh4.i
+
+# target to preprocess a source file
+bvh/bvh_intersector1_bvh4.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector1_bvh4.cpp.i
+.PHONY : bvh/bvh_intersector1_bvh4.cpp.i
+
+bvh/bvh_intersector1_bvh4.s: bvh/bvh_intersector1_bvh4.cpp.s
+
+.PHONY : bvh/bvh_intersector1_bvh4.s
+
+# target to generate assembly for a file
+bvh/bvh_intersector1_bvh4.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector1_bvh4.cpp.s
+.PHONY : bvh/bvh_intersector1_bvh4.cpp.s
+
+bvh/bvh_intersector_hybrid4_bvh4.o: bvh/bvh_intersector_hybrid4_bvh4.cpp.o
+
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.o
+
+# target to build an object file
+bvh/bvh_intersector_hybrid4_bvh4.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_hybrid4_bvh4.cpp.o
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.cpp.o
+
+bvh/bvh_intersector_hybrid4_bvh4.i: bvh/bvh_intersector_hybrid4_bvh4.cpp.i
+
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.i
+
+# target to preprocess a source file
+bvh/bvh_intersector_hybrid4_bvh4.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_hybrid4_bvh4.cpp.i
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.cpp.i
+
+bvh/bvh_intersector_hybrid4_bvh4.s: bvh/bvh_intersector_hybrid4_bvh4.cpp.s
+
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.s
+
+# target to generate assembly for a file
+bvh/bvh_intersector_hybrid4_bvh4.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_hybrid4_bvh4.cpp.s
+.PHONY : bvh/bvh_intersector_hybrid4_bvh4.cpp.s
+
+bvh/bvh_intersector_stream_bvh4.o: bvh/bvh_intersector_stream_bvh4.cpp.o
+
+.PHONY : bvh/bvh_intersector_stream_bvh4.o
+
+# target to build an object file
+bvh/bvh_intersector_stream_bvh4.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_bvh4.cpp.o
+.PHONY : bvh/bvh_intersector_stream_bvh4.cpp.o
+
+bvh/bvh_intersector_stream_bvh4.i: bvh/bvh_intersector_stream_bvh4.cpp.i
+
+.PHONY : bvh/bvh_intersector_stream_bvh4.i
+
+# target to preprocess a source file
+bvh/bvh_intersector_stream_bvh4.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_bvh4.cpp.i
+.PHONY : bvh/bvh_intersector_stream_bvh4.cpp.i
+
+bvh/bvh_intersector_stream_bvh4.s: bvh/bvh_intersector_stream_bvh4.cpp.s
+
+.PHONY : bvh/bvh_intersector_stream_bvh4.s
+
+# target to generate assembly for a file
+bvh/bvh_intersector_stream_bvh4.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_bvh4.cpp.s
+.PHONY : bvh/bvh_intersector_stream_bvh4.cpp.s
+
+bvh/bvh_intersector_stream_filters.o: bvh/bvh_intersector_stream_filters.cpp.o
+
+.PHONY : bvh/bvh_intersector_stream_filters.o
+
+# target to build an object file
+bvh/bvh_intersector_stream_filters.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_filters.cpp.o
+.PHONY : bvh/bvh_intersector_stream_filters.cpp.o
+
+bvh/bvh_intersector_stream_filters.i: bvh/bvh_intersector_stream_filters.cpp.i
+
+.PHONY : bvh/bvh_intersector_stream_filters.i
+
+# target to preprocess a source file
+bvh/bvh_intersector_stream_filters.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_filters.cpp.i
+.PHONY : bvh/bvh_intersector_stream_filters.cpp.i
+
+bvh/bvh_intersector_stream_filters.s: bvh/bvh_intersector_stream_filters.cpp.s
+
+.PHONY : bvh/bvh_intersector_stream_filters.s
+
+# target to generate assembly for a file
+bvh/bvh_intersector_stream_filters.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_intersector_stream_filters.cpp.s
+.PHONY : bvh/bvh_intersector_stream_filters.cpp.s
+
+bvh/bvh_refit.o: bvh/bvh_refit.cpp.o
+
+.PHONY : bvh/bvh_refit.o
+
+# target to build an object file
+bvh/bvh_refit.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_refit.cpp.o
+.PHONY : bvh/bvh_refit.cpp.o
+
+bvh/bvh_refit.i: bvh/bvh_refit.cpp.i
+
+.PHONY : bvh/bvh_refit.i
+
+# target to preprocess a source file
+bvh/bvh_refit.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_refit.cpp.i
+.PHONY : bvh/bvh_refit.cpp.i
+
+bvh/bvh_refit.s: bvh/bvh_refit.cpp.s
+
+.PHONY : bvh/bvh_refit.s
+
+# target to generate assembly for a file
+bvh/bvh_refit.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_refit.cpp.s
+.PHONY : bvh/bvh_refit.cpp.s
+
+bvh/bvh_rotate.o: bvh/bvh_rotate.cpp.o
+
+.PHONY : bvh/bvh_rotate.o
+
+# target to build an object file
+bvh/bvh_rotate.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_rotate.cpp.o
+.PHONY : bvh/bvh_rotate.cpp.o
+
+bvh/bvh_rotate.i: bvh/bvh_rotate.cpp.i
+
+.PHONY : bvh/bvh_rotate.i
+
+# target to preprocess a source file
+bvh/bvh_rotate.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_rotate.cpp.i
+.PHONY : bvh/bvh_rotate.cpp.i
+
+bvh/bvh_rotate.s: bvh/bvh_rotate.cpp.s
+
+.PHONY : bvh/bvh_rotate.s
+
+# target to generate assembly for a file
+bvh/bvh_rotate.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_rotate.cpp.s
+.PHONY : bvh/bvh_rotate.cpp.s
+
+bvh/bvh_statistics.o: bvh/bvh_statistics.cpp.o
+
+.PHONY : bvh/bvh_statistics.o
+
+# target to build an object file
+bvh/bvh_statistics.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_statistics.cpp.o
+.PHONY : bvh/bvh_statistics.cpp.o
+
+bvh/bvh_statistics.i: bvh/bvh_statistics.cpp.i
+
+.PHONY : bvh/bvh_statistics.i
+
+# target to preprocess a source file
+bvh/bvh_statistics.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_statistics.cpp.i
+.PHONY : bvh/bvh_statistics.cpp.i
+
+bvh/bvh_statistics.s: bvh/bvh_statistics.cpp.s
+
+.PHONY : bvh/bvh_statistics.s
+
+# target to generate assembly for a file
+bvh/bvh_statistics.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/bvh/bvh_statistics.cpp.s
+.PHONY : bvh/bvh_statistics.cpp.s
+
+common/acceln.o: common/acceln.cpp.o
+
+.PHONY : common/acceln.o
+
+# target to build an object file
+common/acceln.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/acceln.cpp.o
+.PHONY : common/acceln.cpp.o
+
+common/acceln.i: common/acceln.cpp.i
+
+.PHONY : common/acceln.i
+
+# target to preprocess a source file
+common/acceln.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/acceln.cpp.i
+.PHONY : common/acceln.cpp.i
+
+common/acceln.s: common/acceln.cpp.s
+
+.PHONY : common/acceln.s
+
+# target to generate assembly for a file
+common/acceln.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/acceln.cpp.s
+.PHONY : common/acceln.cpp.s
+
+common/accelset.o: common/accelset.cpp.o
+
+.PHONY : common/accelset.o
+
+# target to build an object file
+common/accelset.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/accelset.cpp.o
+.PHONY : common/accelset.cpp.o
+
+common/accelset.i: common/accelset.cpp.i
+
+.PHONY : common/accelset.i
+
+# target to preprocess a source file
+common/accelset.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/accelset.cpp.i
+.PHONY : common/accelset.cpp.i
+
+common/accelset.s: common/accelset.cpp.s
+
+.PHONY : common/accelset.s
+
+# target to generate assembly for a file
+common/accelset.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/accelset.cpp.s
+.PHONY : common/accelset.cpp.s
+
+common/alloc.o: common/alloc.cpp.o
+
+.PHONY : common/alloc.o
+
+# target to build an object file
+common/alloc.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/alloc.cpp.o
+.PHONY : common/alloc.cpp.o
+
+common/alloc.i: common/alloc.cpp.i
+
+.PHONY : common/alloc.i
+
+# target to preprocess a source file
+common/alloc.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/alloc.cpp.i
+.PHONY : common/alloc.cpp.i
+
+common/alloc.s: common/alloc.cpp.s
+
+.PHONY : common/alloc.s
+
+# target to generate assembly for a file
+common/alloc.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/alloc.cpp.s
+.PHONY : common/alloc.cpp.s
+
+common/device.o: common/device.cpp.o
+
+.PHONY : common/device.o
+
+# target to build an object file
+common/device.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/device.cpp.o
+.PHONY : common/device.cpp.o
+
+common/device.i: common/device.cpp.i
+
+.PHONY : common/device.i
+
+# target to preprocess a source file
+common/device.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/device.cpp.i
+.PHONY : common/device.cpp.i
+
+common/device.s: common/device.cpp.s
+
+.PHONY : common/device.s
+
+# target to generate assembly for a file
+common/device.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/device.cpp.s
+.PHONY : common/device.cpp.s
+
+common/geometry.o: common/geometry.cpp.o
+
+.PHONY : common/geometry.o
+
+# target to build an object file
+common/geometry.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/geometry.cpp.o
+.PHONY : common/geometry.cpp.o
+
+common/geometry.i: common/geometry.cpp.i
+
+.PHONY : common/geometry.i
+
+# target to preprocess a source file
+common/geometry.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/geometry.cpp.i
+.PHONY : common/geometry.cpp.i
+
+common/geometry.s: common/geometry.cpp.s
+
+.PHONY : common/geometry.s
+
+# target to generate assembly for a file
+common/geometry.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/geometry.cpp.s
+.PHONY : common/geometry.cpp.s
+
+common/rtcore.o: common/rtcore.cpp.o
+
+.PHONY : common/rtcore.o
+
+# target to build an object file
+common/rtcore.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore.cpp.o
+.PHONY : common/rtcore.cpp.o
+
+common/rtcore.i: common/rtcore.cpp.i
+
+.PHONY : common/rtcore.i
+
+# target to preprocess a source file
+common/rtcore.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore.cpp.i
+.PHONY : common/rtcore.cpp.i
+
+common/rtcore.s: common/rtcore.cpp.s
+
+.PHONY : common/rtcore.s
+
+# target to generate assembly for a file
+common/rtcore.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore.cpp.s
+.PHONY : common/rtcore.cpp.s
+
+common/rtcore_builder.o: common/rtcore_builder.cpp.o
+
+.PHONY : common/rtcore_builder.o
+
+# target to build an object file
+common/rtcore_builder.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore_builder.cpp.o
+.PHONY : common/rtcore_builder.cpp.o
+
+common/rtcore_builder.i: common/rtcore_builder.cpp.i
+
+.PHONY : common/rtcore_builder.i
+
+# target to preprocess a source file
+common/rtcore_builder.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore_builder.cpp.i
+.PHONY : common/rtcore_builder.cpp.i
+
+common/rtcore_builder.s: common/rtcore_builder.cpp.s
+
+.PHONY : common/rtcore_builder.s
+
+# target to generate assembly for a file
+common/rtcore_builder.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/rtcore_builder.cpp.s
+.PHONY : common/rtcore_builder.cpp.s
+
+common/scene.o: common/scene.cpp.o
+
+.PHONY : common/scene.o
+
+# target to build an object file
+common/scene.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene.cpp.o
+.PHONY : common/scene.cpp.o
+
+common/scene.i: common/scene.cpp.i
+
+.PHONY : common/scene.i
+
+# target to preprocess a source file
+common/scene.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene.cpp.i
+.PHONY : common/scene.cpp.i
+
+common/scene.s: common/scene.cpp.s
+
+.PHONY : common/scene.s
+
+# target to generate assembly for a file
+common/scene.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene.cpp.s
+.PHONY : common/scene.cpp.s
+
+common/scene_curves.o: common/scene_curves.cpp.o
+
+.PHONY : common/scene_curves.o
+
+# target to build an object file
+common/scene_curves.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_curves.cpp.o
+.PHONY : common/scene_curves.cpp.o
+
+common/scene_curves.i: common/scene_curves.cpp.i
+
+.PHONY : common/scene_curves.i
+
+# target to preprocess a source file
+common/scene_curves.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_curves.cpp.i
+.PHONY : common/scene_curves.cpp.i
+
+common/scene_curves.s: common/scene_curves.cpp.s
+
+.PHONY : common/scene_curves.s
+
+# target to generate assembly for a file
+common/scene_curves.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_curves.cpp.s
+.PHONY : common/scene_curves.cpp.s
+
+common/scene_grid_mesh.o: common/scene_grid_mesh.cpp.o
+
+.PHONY : common/scene_grid_mesh.o
+
+# target to build an object file
+common/scene_grid_mesh.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_grid_mesh.cpp.o
+.PHONY : common/scene_grid_mesh.cpp.o
+
+common/scene_grid_mesh.i: common/scene_grid_mesh.cpp.i
+
+.PHONY : common/scene_grid_mesh.i
+
+# target to preprocess a source file
+common/scene_grid_mesh.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_grid_mesh.cpp.i
+.PHONY : common/scene_grid_mesh.cpp.i
+
+common/scene_grid_mesh.s: common/scene_grid_mesh.cpp.s
+
+.PHONY : common/scene_grid_mesh.s
+
+# target to generate assembly for a file
+common/scene_grid_mesh.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_grid_mesh.cpp.s
+.PHONY : common/scene_grid_mesh.cpp.s
+
+common/scene_instance.o: common/scene_instance.cpp.o
+
+.PHONY : common/scene_instance.o
+
+# target to build an object file
+common/scene_instance.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_instance.cpp.o
+.PHONY : common/scene_instance.cpp.o
+
+common/scene_instance.i: common/scene_instance.cpp.i
+
+.PHONY : common/scene_instance.i
+
+# target to preprocess a source file
+common/scene_instance.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_instance.cpp.i
+.PHONY : common/scene_instance.cpp.i
+
+common/scene_instance.s: common/scene_instance.cpp.s
+
+.PHONY : common/scene_instance.s
+
+# target to generate assembly for a file
+common/scene_instance.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_instance.cpp.s
+.PHONY : common/scene_instance.cpp.s
+
+common/scene_line_segments.o: common/scene_line_segments.cpp.o
+
+.PHONY : common/scene_line_segments.o
+
+# target to build an object file
+common/scene_line_segments.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_line_segments.cpp.o
+.PHONY : common/scene_line_segments.cpp.o
+
+common/scene_line_segments.i: common/scene_line_segments.cpp.i
+
+.PHONY : common/scene_line_segments.i
+
+# target to preprocess a source file
+common/scene_line_segments.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_line_segments.cpp.i
+.PHONY : common/scene_line_segments.cpp.i
+
+common/scene_line_segments.s: common/scene_line_segments.cpp.s
+
+.PHONY : common/scene_line_segments.s
+
+# target to generate assembly for a file
+common/scene_line_segments.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_line_segments.cpp.s
+.PHONY : common/scene_line_segments.cpp.s
+
+common/scene_points.o: common/scene_points.cpp.o
+
+.PHONY : common/scene_points.o
+
+# target to build an object file
+common/scene_points.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_points.cpp.o
+.PHONY : common/scene_points.cpp.o
+
+common/scene_points.i: common/scene_points.cpp.i
+
+.PHONY : common/scene_points.i
+
+# target to preprocess a source file
+common/scene_points.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_points.cpp.i
+.PHONY : common/scene_points.cpp.i
+
+common/scene_points.s: common/scene_points.cpp.s
+
+.PHONY : common/scene_points.s
+
+# target to generate assembly for a file
+common/scene_points.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_points.cpp.s
+.PHONY : common/scene_points.cpp.s
+
+common/scene_quad_mesh.o: common/scene_quad_mesh.cpp.o
+
+.PHONY : common/scene_quad_mesh.o
+
+# target to build an object file
+common/scene_quad_mesh.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_quad_mesh.cpp.o
+.PHONY : common/scene_quad_mesh.cpp.o
+
+common/scene_quad_mesh.i: common/scene_quad_mesh.cpp.i
+
+.PHONY : common/scene_quad_mesh.i
+
+# target to preprocess a source file
+common/scene_quad_mesh.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_quad_mesh.cpp.i
+.PHONY : common/scene_quad_mesh.cpp.i
+
+common/scene_quad_mesh.s: common/scene_quad_mesh.cpp.s
+
+.PHONY : common/scene_quad_mesh.s
+
+# target to generate assembly for a file
+common/scene_quad_mesh.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_quad_mesh.cpp.s
+.PHONY : common/scene_quad_mesh.cpp.s
+
+common/scene_subdiv_mesh.o: common/scene_subdiv_mesh.cpp.o
+
+.PHONY : common/scene_subdiv_mesh.o
+
+# target to build an object file
+common/scene_subdiv_mesh.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_subdiv_mesh.cpp.o
+.PHONY : common/scene_subdiv_mesh.cpp.o
+
+common/scene_subdiv_mesh.i: common/scene_subdiv_mesh.cpp.i
+
+.PHONY : common/scene_subdiv_mesh.i
+
+# target to preprocess a source file
+common/scene_subdiv_mesh.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_subdiv_mesh.cpp.i
+.PHONY : common/scene_subdiv_mesh.cpp.i
+
+common/scene_subdiv_mesh.s: common/scene_subdiv_mesh.cpp.s
+
+.PHONY : common/scene_subdiv_mesh.s
+
+# target to generate assembly for a file
+common/scene_subdiv_mesh.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_subdiv_mesh.cpp.s
+.PHONY : common/scene_subdiv_mesh.cpp.s
+
+common/scene_triangle_mesh.o: common/scene_triangle_mesh.cpp.o
+
+.PHONY : common/scene_triangle_mesh.o
+
+# target to build an object file
+common/scene_triangle_mesh.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_triangle_mesh.cpp.o
+.PHONY : common/scene_triangle_mesh.cpp.o
+
+common/scene_triangle_mesh.i: common/scene_triangle_mesh.cpp.i
+
+.PHONY : common/scene_triangle_mesh.i
+
+# target to preprocess a source file
+common/scene_triangle_mesh.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_triangle_mesh.cpp.i
+.PHONY : common/scene_triangle_mesh.cpp.i
+
+common/scene_triangle_mesh.s: common/scene_triangle_mesh.cpp.s
+
+.PHONY : common/scene_triangle_mesh.s
+
+# target to generate assembly for a file
+common/scene_triangle_mesh.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_triangle_mesh.cpp.s
+.PHONY : common/scene_triangle_mesh.cpp.s
+
+common/scene_user_geometry.o: common/scene_user_geometry.cpp.o
+
+.PHONY : common/scene_user_geometry.o
+
+# target to build an object file
+common/scene_user_geometry.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_user_geometry.cpp.o
+.PHONY : common/scene_user_geometry.cpp.o
+
+common/scene_user_geometry.i: common/scene_user_geometry.cpp.i
+
+.PHONY : common/scene_user_geometry.i
+
+# target to preprocess a source file
+common/scene_user_geometry.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_user_geometry.cpp.i
+.PHONY : common/scene_user_geometry.cpp.i
+
+common/scene_user_geometry.s: common/scene_user_geometry.cpp.s
+
+.PHONY : common/scene_user_geometry.s
+
+# target to generate assembly for a file
+common/scene_user_geometry.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/scene_user_geometry.cpp.s
+.PHONY : common/scene_user_geometry.cpp.s
+
+common/stat.o: common/stat.cpp.o
+
+.PHONY : common/stat.o
+
+# target to build an object file
+common/stat.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/stat.cpp.o
+.PHONY : common/stat.cpp.o
+
+common/stat.i: common/stat.cpp.i
+
+.PHONY : common/stat.i
+
+# target to preprocess a source file
+common/stat.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/stat.cpp.i
+.PHONY : common/stat.cpp.i
+
+common/stat.s: common/stat.cpp.s
+
+.PHONY : common/stat.s
+
+# target to generate assembly for a file
+common/stat.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/stat.cpp.s
+.PHONY : common/stat.cpp.s
+
+common/state.o: common/state.cpp.o
+
+.PHONY : common/state.o
+
+# target to build an object file
+common/state.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/state.cpp.o
+.PHONY : common/state.cpp.o
+
+common/state.i: common/state.cpp.i
+
+.PHONY : common/state.i
+
+# target to preprocess a source file
+common/state.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/state.cpp.i
+.PHONY : common/state.cpp.i
+
+common/state.s: common/state.cpp.s
+
+.PHONY : common/state.s
+
+# target to generate assembly for a file
+common/state.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/common/state.cpp.s
+.PHONY : common/state.cpp.s
+
+geometry/curve_intersector_virtual.o: geometry/curve_intersector_virtual.cpp.o
+
+.PHONY : geometry/curve_intersector_virtual.o
+
+# target to build an object file
+geometry/curve_intersector_virtual.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/curve_intersector_virtual.cpp.o
+.PHONY : geometry/curve_intersector_virtual.cpp.o
+
+geometry/curve_intersector_virtual.i: geometry/curve_intersector_virtual.cpp.i
+
+.PHONY : geometry/curve_intersector_virtual.i
+
+# target to preprocess a source file
+geometry/curve_intersector_virtual.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/curve_intersector_virtual.cpp.i
+.PHONY : geometry/curve_intersector_virtual.cpp.i
+
+geometry/curve_intersector_virtual.s: geometry/curve_intersector_virtual.cpp.s
+
+.PHONY : geometry/curve_intersector_virtual.s
+
+# target to generate assembly for a file
+geometry/curve_intersector_virtual.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/curve_intersector_virtual.cpp.s
+.PHONY : geometry/curve_intersector_virtual.cpp.s
+
+geometry/grid_soa.o: geometry/grid_soa.cpp.o
+
+.PHONY : geometry/grid_soa.o
+
+# target to build an object file
+geometry/grid_soa.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/grid_soa.cpp.o
+.PHONY : geometry/grid_soa.cpp.o
+
+geometry/grid_soa.i: geometry/grid_soa.cpp.i
+
+.PHONY : geometry/grid_soa.i
+
+# target to preprocess a source file
+geometry/grid_soa.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/grid_soa.cpp.i
+.PHONY : geometry/grid_soa.cpp.i
+
+geometry/grid_soa.s: geometry/grid_soa.cpp.s
+
+.PHONY : geometry/grid_soa.s
+
+# target to generate assembly for a file
+geometry/grid_soa.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/grid_soa.cpp.s
+.PHONY : geometry/grid_soa.cpp.s
+
+geometry/instance_intersector.o: geometry/instance_intersector.cpp.o
+
+.PHONY : geometry/instance_intersector.o
+
+# target to build an object file
+geometry/instance_intersector.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/instance_intersector.cpp.o
+.PHONY : geometry/instance_intersector.cpp.o
+
+geometry/instance_intersector.i: geometry/instance_intersector.cpp.i
+
+.PHONY : geometry/instance_intersector.i
+
+# target to preprocess a source file
+geometry/instance_intersector.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/instance_intersector.cpp.i
+.PHONY : geometry/instance_intersector.cpp.i
+
+geometry/instance_intersector.s: geometry/instance_intersector.cpp.s
+
+.PHONY : geometry/instance_intersector.s
+
+# target to generate assembly for a file
+geometry/instance_intersector.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/instance_intersector.cpp.s
+.PHONY : geometry/instance_intersector.cpp.s
+
+geometry/primitive4.o: geometry/primitive4.cpp.o
+
+.PHONY : geometry/primitive4.o
+
+# target to build an object file
+geometry/primitive4.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/primitive4.cpp.o
+.PHONY : geometry/primitive4.cpp.o
+
+geometry/primitive4.i: geometry/primitive4.cpp.i
+
+.PHONY : geometry/primitive4.i
+
+# target to preprocess a source file
+geometry/primitive4.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/primitive4.cpp.i
+.PHONY : geometry/primitive4.cpp.i
+
+geometry/primitive4.s: geometry/primitive4.cpp.s
+
+.PHONY : geometry/primitive4.s
+
+# target to generate assembly for a file
+geometry/primitive4.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/geometry/primitive4.cpp.s
+.PHONY : geometry/primitive4.cpp.s
+
+subdiv/bezier_curve.o: subdiv/bezier_curve.cpp.o
+
+.PHONY : subdiv/bezier_curve.o
+
+# target to build an object file
+subdiv/bezier_curve.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bezier_curve.cpp.o
+.PHONY : subdiv/bezier_curve.cpp.o
+
+subdiv/bezier_curve.i: subdiv/bezier_curve.cpp.i
+
+.PHONY : subdiv/bezier_curve.i
+
+# target to preprocess a source file
+subdiv/bezier_curve.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bezier_curve.cpp.i
+.PHONY : subdiv/bezier_curve.cpp.i
+
+subdiv/bezier_curve.s: subdiv/bezier_curve.cpp.s
+
+.PHONY : subdiv/bezier_curve.s
+
+# target to generate assembly for a file
+subdiv/bezier_curve.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bezier_curve.cpp.s
+.PHONY : subdiv/bezier_curve.cpp.s
+
+subdiv/bspline_curve.o: subdiv/bspline_curve.cpp.o
+
+.PHONY : subdiv/bspline_curve.o
+
+# target to build an object file
+subdiv/bspline_curve.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bspline_curve.cpp.o
+.PHONY : subdiv/bspline_curve.cpp.o
+
+subdiv/bspline_curve.i: subdiv/bspline_curve.cpp.i
+
+.PHONY : subdiv/bspline_curve.i
+
+# target to preprocess a source file
+subdiv/bspline_curve.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bspline_curve.cpp.i
+.PHONY : subdiv/bspline_curve.cpp.i
+
+subdiv/bspline_curve.s: subdiv/bspline_curve.cpp.s
+
+.PHONY : subdiv/bspline_curve.s
+
+# target to generate assembly for a file
+subdiv/bspline_curve.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/bspline_curve.cpp.s
+.PHONY : subdiv/bspline_curve.cpp.s
+
+subdiv/catmullclark_coefficients.o: subdiv/catmullclark_coefficients.cpp.o
+
+.PHONY : subdiv/catmullclark_coefficients.o
+
+# target to build an object file
+subdiv/catmullclark_coefficients.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/catmullclark_coefficients.cpp.o
+.PHONY : subdiv/catmullclark_coefficients.cpp.o
+
+subdiv/catmullclark_coefficients.i: subdiv/catmullclark_coefficients.cpp.i
+
+.PHONY : subdiv/catmullclark_coefficients.i
+
+# target to preprocess a source file
+subdiv/catmullclark_coefficients.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/catmullclark_coefficients.cpp.i
+.PHONY : subdiv/catmullclark_coefficients.cpp.i
+
+subdiv/catmullclark_coefficients.s: subdiv/catmullclark_coefficients.cpp.s
+
+.PHONY : subdiv/catmullclark_coefficients.s
+
+# target to generate assembly for a file
+subdiv/catmullclark_coefficients.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/catmullclark_coefficients.cpp.s
+.PHONY : subdiv/catmullclark_coefficients.cpp.s
+
+subdiv/subdivpatch1base.o: subdiv/subdivpatch1base.cpp.o
+
+.PHONY : subdiv/subdivpatch1base.o
+
+# target to build an object file
+subdiv/subdivpatch1base.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base.cpp.o
+.PHONY : subdiv/subdivpatch1base.cpp.o
+
+subdiv/subdivpatch1base.i: subdiv/subdivpatch1base.cpp.i
+
+.PHONY : subdiv/subdivpatch1base.i
+
+# target to preprocess a source file
+subdiv/subdivpatch1base.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base.cpp.i
+.PHONY : subdiv/subdivpatch1base.cpp.i
+
+subdiv/subdivpatch1base.s: subdiv/subdivpatch1base.cpp.s
+
+.PHONY : subdiv/subdivpatch1base.s
+
+# target to generate assembly for a file
+subdiv/subdivpatch1base.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base.cpp.s
+.PHONY : subdiv/subdivpatch1base.cpp.s
+
+subdiv/subdivpatch1base_eval.o: subdiv/subdivpatch1base_eval.cpp.o
+
+.PHONY : subdiv/subdivpatch1base_eval.o
+
+# target to build an object file
+subdiv/subdivpatch1base_eval.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base_eval.cpp.o
+.PHONY : subdiv/subdivpatch1base_eval.cpp.o
+
+subdiv/subdivpatch1base_eval.i: subdiv/subdivpatch1base_eval.cpp.i
+
+.PHONY : subdiv/subdivpatch1base_eval.i
+
+# target to preprocess a source file
+subdiv/subdivpatch1base_eval.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base_eval.cpp.i
+.PHONY : subdiv/subdivpatch1base_eval.cpp.i
+
+subdiv/subdivpatch1base_eval.s: subdiv/subdivpatch1base_eval.cpp.s
+
+.PHONY : subdiv/subdivpatch1base_eval.s
+
+# target to generate assembly for a file
+subdiv/subdivpatch1base_eval.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/subdivpatch1base_eval.cpp.s
+.PHONY : subdiv/subdivpatch1base_eval.cpp.s
+
+subdiv/tessellation_cache.o: subdiv/tessellation_cache.cpp.o
+
+.PHONY : subdiv/tessellation_cache.o
+
+# target to build an object file
+subdiv/tessellation_cache.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/tessellation_cache.cpp.o
+.PHONY : subdiv/tessellation_cache.cpp.o
+
+subdiv/tessellation_cache.i: subdiv/tessellation_cache.cpp.i
+
+.PHONY : subdiv/tessellation_cache.i
+
+# target to preprocess a source file
+subdiv/tessellation_cache.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/tessellation_cache.cpp.i
+.PHONY : subdiv/tessellation_cache.cpp.i
+
+subdiv/tessellation_cache.s: subdiv/tessellation_cache.cpp.s
+
+.PHONY : subdiv/tessellation_cache.s
+
+# target to generate assembly for a file
+subdiv/tessellation_cache.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f embree/kernels/CMakeFiles/embree.dir/build.make embree/kernels/CMakeFiles/embree.dir/subdiv/tessellation_cache.cpp.s
+.PHONY : subdiv/tessellation_cache.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... list_install_components"
+	@echo "... embree_check_stack_frame_size"
+	@echo "... embree"
+	@echo "... rebuild_cache"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... edit_cache"
+	@echo "... builders/primrefgen.o"
+	@echo "... builders/primrefgen.i"
+	@echo "... builders/primrefgen.s"
+	@echo "... bvh/bvh.o"
+	@echo "... bvh/bvh.i"
+	@echo "... bvh/bvh.s"
+	@echo "... bvh/bvh4_factory.o"
+	@echo "... bvh/bvh4_factory.i"
+	@echo "... bvh/bvh4_factory.s"
+	@echo "... bvh/bvh8_factory.o"
+	@echo "... bvh/bvh8_factory.i"
+	@echo "... bvh/bvh8_factory.s"
+	@echo "... bvh/bvh_builder.o"
+	@echo "... bvh/bvh_builder.i"
+	@echo "... bvh/bvh_builder.s"
+	@echo "... bvh/bvh_builder_hair.o"
+	@echo "... bvh/bvh_builder_hair.i"
+	@echo "... bvh/bvh_builder_hair.s"
+	@echo "... bvh/bvh_builder_hair_mb.o"
+	@echo "... bvh/bvh_builder_hair_mb.i"
+	@echo "... bvh/bvh_builder_hair_mb.s"
+	@echo "... bvh/bvh_builder_morton.o"
+	@echo "... bvh/bvh_builder_morton.i"
+	@echo "... bvh/bvh_builder_morton.s"
+	@echo "... bvh/bvh_builder_sah.o"
+	@echo "... bvh/bvh_builder_sah.i"
+	@echo "... bvh/bvh_builder_sah.s"
+	@echo "... bvh/bvh_builder_sah_mb.o"
+	@echo "... bvh/bvh_builder_sah_mb.i"
+	@echo "... bvh/bvh_builder_sah_mb.s"
+	@echo "... bvh/bvh_builder_sah_spatial.o"
+	@echo "... bvh/bvh_builder_sah_spatial.i"
+	@echo "... bvh/bvh_builder_sah_spatial.s"
+	@echo "... bvh/bvh_builder_subdiv.o"
+	@echo "... bvh/bvh_builder_subdiv.i"
+	@echo "... bvh/bvh_builder_subdiv.s"
+	@echo "... bvh/bvh_builder_twolevel.o"
+	@echo "... bvh/bvh_builder_twolevel.i"
+	@echo "... bvh/bvh_builder_twolevel.s"
+	@echo "... bvh/bvh_intersector1_bvh4.o"
+	@echo "... bvh/bvh_intersector1_bvh4.i"
+	@echo "... bvh/bvh_intersector1_bvh4.s"
+	@echo "... bvh/bvh_intersector_hybrid4_bvh4.o"
+	@echo "... bvh/bvh_intersector_hybrid4_bvh4.i"
+	@echo "... bvh/bvh_intersector_hybrid4_bvh4.s"
+	@echo "... bvh/bvh_intersector_stream_bvh4.o"
+	@echo "... bvh/bvh_intersector_stream_bvh4.i"
+	@echo "... bvh/bvh_intersector_stream_bvh4.s"
+	@echo "... bvh/bvh_intersector_stream_filters.o"
+	@echo "... bvh/bvh_intersector_stream_filters.i"
+	@echo "... bvh/bvh_intersector_stream_filters.s"
+	@echo "... bvh/bvh_refit.o"
+	@echo "... bvh/bvh_refit.i"
+	@echo "... bvh/bvh_refit.s"
+	@echo "... bvh/bvh_rotate.o"
+	@echo "... bvh/bvh_rotate.i"
+	@echo "... bvh/bvh_rotate.s"
+	@echo "... bvh/bvh_statistics.o"
+	@echo "... bvh/bvh_statistics.i"
+	@echo "... bvh/bvh_statistics.s"
+	@echo "... common/acceln.o"
+	@echo "... common/acceln.i"
+	@echo "... common/acceln.s"
+	@echo "... common/accelset.o"
+	@echo "... common/accelset.i"
+	@echo "... common/accelset.s"
+	@echo "... common/alloc.o"
+	@echo "... common/alloc.i"
+	@echo "... common/alloc.s"
+	@echo "... common/device.o"
+	@echo "... common/device.i"
+	@echo "... common/device.s"
+	@echo "... common/geometry.o"
+	@echo "... common/geometry.i"
+	@echo "... common/geometry.s"
+	@echo "... common/rtcore.o"
+	@echo "... common/rtcore.i"
+	@echo "... common/rtcore.s"
+	@echo "... common/rtcore_builder.o"
+	@echo "... common/rtcore_builder.i"
+	@echo "... common/rtcore_builder.s"
+	@echo "... common/scene.o"
+	@echo "... common/scene.i"
+	@echo "... common/scene.s"
+	@echo "... common/scene_curves.o"
+	@echo "... common/scene_curves.i"
+	@echo "... common/scene_curves.s"
+	@echo "... common/scene_grid_mesh.o"
+	@echo "... common/scene_grid_mesh.i"
+	@echo "... common/scene_grid_mesh.s"
+	@echo "... common/scene_instance.o"
+	@echo "... common/scene_instance.i"
+	@echo "... common/scene_instance.s"
+	@echo "... common/scene_line_segments.o"
+	@echo "... common/scene_line_segments.i"
+	@echo "... common/scene_line_segments.s"
+	@echo "... common/scene_points.o"
+	@echo "... common/scene_points.i"
+	@echo "... common/scene_points.s"
+	@echo "... common/scene_quad_mesh.o"
+	@echo "... common/scene_quad_mesh.i"
+	@echo "... common/scene_quad_mesh.s"
+	@echo "... common/scene_subdiv_mesh.o"
+	@echo "... common/scene_subdiv_mesh.i"
+	@echo "... common/scene_subdiv_mesh.s"
+	@echo "... common/scene_triangle_mesh.o"
+	@echo "... common/scene_triangle_mesh.i"
+	@echo "... common/scene_triangle_mesh.s"
+	@echo "... common/scene_user_geometry.o"
+	@echo "... common/scene_user_geometry.i"
+	@echo "... common/scene_user_geometry.s"
+	@echo "... common/stat.o"
+	@echo "... common/stat.i"
+	@echo "... common/stat.s"
+	@echo "... common/state.o"
+	@echo "... common/state.i"
+	@echo "... common/state.s"
+	@echo "... geometry/curve_intersector_virtual.o"
+	@echo "... geometry/curve_intersector_virtual.i"
+	@echo "... geometry/curve_intersector_virtual.s"
+	@echo "... geometry/grid_soa.o"
+	@echo "... geometry/grid_soa.i"
+	@echo "... geometry/grid_soa.s"
+	@echo "... geometry/instance_intersector.o"
+	@echo "... geometry/instance_intersector.i"
+	@echo "... geometry/instance_intersector.s"
+	@echo "... geometry/primitive4.o"
+	@echo "... geometry/primitive4.i"
+	@echo "... geometry/primitive4.s"
+	@echo "... subdiv/bezier_curve.o"
+	@echo "... subdiv/bezier_curve.i"
+	@echo "... subdiv/bezier_curve.s"
+	@echo "... subdiv/bspline_curve.o"
+	@echo "... subdiv/bspline_curve.i"
+	@echo "... subdiv/bspline_curve.s"
+	@echo "... subdiv/catmullclark_coefficients.o"
+	@echo "... subdiv/catmullclark_coefficients.i"
+	@echo "... subdiv/catmullclark_coefficients.s"
+	@echo "... subdiv/subdivpatch1base.o"
+	@echo "... subdiv/subdivpatch1base.i"
+	@echo "... subdiv/subdivpatch1base.s"
+	@echo "... subdiv/subdivpatch1base_eval.o"
+	@echo "... subdiv/subdivpatch1base_eval.i"
+	@echo "... subdiv/subdivpatch1base_eval.s"
+	@echo "... subdiv/tessellation_cache.o"
+	@echo "... subdiv/tessellation_cache.i"
+	@echo "... subdiv/tessellation_cache.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 62 - 0
build2/embree/kernels/cmake_install.cmake

@@ -0,0 +1,62 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/embree/kernels
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/thuemmel/libs/libigl/build2/embree/libembree3.a")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xdevelx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/embree-targets.cmake")
+    file(DIFFERENT EXPORT_FILE_CHANGED FILES
+         "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/embree-targets.cmake"
+         "/home/thuemmel/libs/libigl/build2/embree/kernels/CMakeFiles/Export/lib/cmake/embree-3.5.2/embree-targets.cmake")
+    if(EXPORT_FILE_CHANGED)
+      file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/embree-targets-*.cmake")
+      if(OLD_CONFIG_FILES)
+        message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2/embree-targets.cmake\" will be replaced.  Removing files [${OLD_CONFIG_FILES}].")
+        file(REMOVE ${OLD_CONFIG_FILES})
+      endif()
+    endif()
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/kernels/CMakeFiles/Export/lib/cmake/embree-3.5.2/embree-targets.cmake")
+  if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$")
+    file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/embree-3.5.2" TYPE FILE FILES "/home/thuemmel/libs/libigl/build2/embree/kernels/CMakeFiles/Export/lib/cmake/embree-3.5.2/embree-targets-release.cmake")
+  endif()
+endif()
+

+ 37 - 0
build2/embree/uninstall.cmake

@@ -0,0 +1,37 @@
+## ======================================================================== ##
+## Copyright 2009-2015 Intel Corporation                                    ##
+##                                                                          ##
+## Licensed under the Apache License, Version 2.0 (the "License");          ##
+## you may not use this file except in compliance with the License.         ##
+## You may obtain a copy of the License at                                  ##
+##                                                                          ##
+##     http://www.apache.org/licenses/LICENSE-2.0                           ##
+##                                                                          ##
+## Unless required by applicable law or agreed to in writing, software      ##
+## distributed under the License is distributed on an "AS IS" BASIS,        ##
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
+## See the License for the specific language governing permissions and      ##
+## limitations under the License.                                           ##
+## ======================================================================== ##
+
+IF(NOT EXISTS "/home/thuemmel/libs/libigl/build2/embree/install_manifest.txt")
+  MESSAGE(FATAL_ERROR "Cannot find install manifest: /home/thuemmel/libs/libigl/build2/embree/install_manifest.txt")
+ENDIF(NOT EXISTS "/home/thuemmel/libs/libigl/build2/embree/install_manifest.txt")
+
+FILE(READ "/home/thuemmel/libs/libigl/build2/embree/install_manifest.txt" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+FOREACH(file ${files})
+  MESSAGE(STATUS "Uninstalling $ENV{DESTDIR}${file}")
+  IF(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+    EXEC_PROGRAM(
+      "/usr/bin/cmake" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+    IF(NOT "${rm_retval}" STREQUAL 0)
+      MESSAGE(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
+    ENDIF(NOT "${rm_retval}" STREQUAL 0)
+  ELSE(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+    MESSAGE(STATUS "File $ENV{DESTDIR}${file} does not exist.")
+  ENDIF(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)

+ 254 - 0
build2/glad/Makefile

@@ -0,0 +1,254 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/glad/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glad/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glad/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glad/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glad/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+glad/CMakeFiles/glad.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glad/CMakeFiles/glad.dir/rule
+.PHONY : glad/CMakeFiles/glad.dir/rule
+
+# Convenience name for target.
+glad: glad/CMakeFiles/glad.dir/rule
+
+.PHONY : glad
+
+# fast build rule for target.
+glad/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glad/CMakeFiles/glad.dir/build.make glad/CMakeFiles/glad.dir/build
+.PHONY : glad/fast
+
+src/glad.o: src/glad.c.o
+
+.PHONY : src/glad.o
+
+# target to build an object file
+src/glad.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glad/CMakeFiles/glad.dir/build.make glad/CMakeFiles/glad.dir/src/glad.c.o
+.PHONY : src/glad.c.o
+
+src/glad.i: src/glad.c.i
+
+.PHONY : src/glad.i
+
+# target to preprocess a source file
+src/glad.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glad/CMakeFiles/glad.dir/build.make glad/CMakeFiles/glad.dir/src/glad.c.i
+.PHONY : src/glad.c.i
+
+src/glad.s: src/glad.c.s
+
+.PHONY : src/glad.s
+
+# target to generate assembly for a file
+src/glad.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glad/CMakeFiles/glad.dir/build.make glad/CMakeFiles/glad.dir/src/glad.c.s
+.PHONY : src/glad.c.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... glad"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... src/glad.o"
+	@echo "... src/glad.i"
+	@echo "... src/glad.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 39 - 0
build2/glad/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/glad
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+

+ 208 - 0
build2/glfw/Makefile

@@ -0,0 +1,208 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/glfw/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... package_source"
+	@echo "... package"
+	@echo "... install"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 45 - 0
build2/glfw/cmake_install.cmake

@@ -0,0 +1,45 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/glfw
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/thuemmel/libs/libigl/build2/glfw/src/cmake_install.cmake")
+
+endif()
+

+ 704 - 0
build2/glfw/src/Makefile

@@ -0,0 +1,704 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/glfw/src/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/src/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/src/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/src/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/src/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+glfw/src/CMakeFiles/glfw.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 glfw/src/CMakeFiles/glfw.dir/rule
+.PHONY : glfw/src/CMakeFiles/glfw.dir/rule
+
+# Convenience name for target.
+glfw: glfw/src/CMakeFiles/glfw.dir/rule
+
+.PHONY : glfw
+
+# fast build rule for target.
+glfw/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/build
+.PHONY : glfw/fast
+
+context.o: context.c.o
+
+.PHONY : context.o
+
+# target to build an object file
+context.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/context.c.o
+.PHONY : context.c.o
+
+context.i: context.c.i
+
+.PHONY : context.i
+
+# target to preprocess a source file
+context.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/context.c.i
+.PHONY : context.c.i
+
+context.s: context.c.s
+
+.PHONY : context.s
+
+# target to generate assembly for a file
+context.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/context.c.s
+.PHONY : context.c.s
+
+egl_context.o: egl_context.c.o
+
+.PHONY : egl_context.o
+
+# target to build an object file
+egl_context.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/egl_context.c.o
+.PHONY : egl_context.c.o
+
+egl_context.i: egl_context.c.i
+
+.PHONY : egl_context.i
+
+# target to preprocess a source file
+egl_context.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/egl_context.c.i
+.PHONY : egl_context.c.i
+
+egl_context.s: egl_context.c.s
+
+.PHONY : egl_context.s
+
+# target to generate assembly for a file
+egl_context.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/egl_context.c.s
+.PHONY : egl_context.c.s
+
+glx_context.o: glx_context.c.o
+
+.PHONY : glx_context.o
+
+# target to build an object file
+glx_context.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/glx_context.c.o
+.PHONY : glx_context.c.o
+
+glx_context.i: glx_context.c.i
+
+.PHONY : glx_context.i
+
+# target to preprocess a source file
+glx_context.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/glx_context.c.i
+.PHONY : glx_context.c.i
+
+glx_context.s: glx_context.c.s
+
+.PHONY : glx_context.s
+
+# target to generate assembly for a file
+glx_context.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/glx_context.c.s
+.PHONY : glx_context.c.s
+
+init.o: init.c.o
+
+.PHONY : init.o
+
+# target to build an object file
+init.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/init.c.o
+.PHONY : init.c.o
+
+init.i: init.c.i
+
+.PHONY : init.i
+
+# target to preprocess a source file
+init.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/init.c.i
+.PHONY : init.c.i
+
+init.s: init.c.s
+
+.PHONY : init.s
+
+# target to generate assembly for a file
+init.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/init.c.s
+.PHONY : init.c.s
+
+input.o: input.c.o
+
+.PHONY : input.o
+
+# target to build an object file
+input.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/input.c.o
+.PHONY : input.c.o
+
+input.i: input.c.i
+
+.PHONY : input.i
+
+# target to preprocess a source file
+input.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/input.c.i
+.PHONY : input.c.i
+
+input.s: input.c.s
+
+.PHONY : input.s
+
+# target to generate assembly for a file
+input.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/input.c.s
+.PHONY : input.c.s
+
+linux_joystick.o: linux_joystick.c.o
+
+.PHONY : linux_joystick.o
+
+# target to build an object file
+linux_joystick.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/linux_joystick.c.o
+.PHONY : linux_joystick.c.o
+
+linux_joystick.i: linux_joystick.c.i
+
+.PHONY : linux_joystick.i
+
+# target to preprocess a source file
+linux_joystick.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/linux_joystick.c.i
+.PHONY : linux_joystick.c.i
+
+linux_joystick.s: linux_joystick.c.s
+
+.PHONY : linux_joystick.s
+
+# target to generate assembly for a file
+linux_joystick.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/linux_joystick.c.s
+.PHONY : linux_joystick.c.s
+
+monitor.o: monitor.c.o
+
+.PHONY : monitor.o
+
+# target to build an object file
+monitor.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/monitor.c.o
+.PHONY : monitor.c.o
+
+monitor.i: monitor.c.i
+
+.PHONY : monitor.i
+
+# target to preprocess a source file
+monitor.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/monitor.c.i
+.PHONY : monitor.c.i
+
+monitor.s: monitor.c.s
+
+.PHONY : monitor.s
+
+# target to generate assembly for a file
+monitor.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/monitor.c.s
+.PHONY : monitor.c.s
+
+osmesa_context.o: osmesa_context.c.o
+
+.PHONY : osmesa_context.o
+
+# target to build an object file
+osmesa_context.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/osmesa_context.c.o
+.PHONY : osmesa_context.c.o
+
+osmesa_context.i: osmesa_context.c.i
+
+.PHONY : osmesa_context.i
+
+# target to preprocess a source file
+osmesa_context.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/osmesa_context.c.i
+.PHONY : osmesa_context.c.i
+
+osmesa_context.s: osmesa_context.c.s
+
+.PHONY : osmesa_context.s
+
+# target to generate assembly for a file
+osmesa_context.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/osmesa_context.c.s
+.PHONY : osmesa_context.c.s
+
+posix_thread.o: posix_thread.c.o
+
+.PHONY : posix_thread.o
+
+# target to build an object file
+posix_thread.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_thread.c.o
+.PHONY : posix_thread.c.o
+
+posix_thread.i: posix_thread.c.i
+
+.PHONY : posix_thread.i
+
+# target to preprocess a source file
+posix_thread.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_thread.c.i
+.PHONY : posix_thread.c.i
+
+posix_thread.s: posix_thread.c.s
+
+.PHONY : posix_thread.s
+
+# target to generate assembly for a file
+posix_thread.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_thread.c.s
+.PHONY : posix_thread.c.s
+
+posix_time.o: posix_time.c.o
+
+.PHONY : posix_time.o
+
+# target to build an object file
+posix_time.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_time.c.o
+.PHONY : posix_time.c.o
+
+posix_time.i: posix_time.c.i
+
+.PHONY : posix_time.i
+
+# target to preprocess a source file
+posix_time.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_time.c.i
+.PHONY : posix_time.c.i
+
+posix_time.s: posix_time.c.s
+
+.PHONY : posix_time.s
+
+# target to generate assembly for a file
+posix_time.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/posix_time.c.s
+.PHONY : posix_time.c.s
+
+vulkan.o: vulkan.c.o
+
+.PHONY : vulkan.o
+
+# target to build an object file
+vulkan.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/vulkan.c.o
+.PHONY : vulkan.c.o
+
+vulkan.i: vulkan.c.i
+
+.PHONY : vulkan.i
+
+# target to preprocess a source file
+vulkan.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/vulkan.c.i
+.PHONY : vulkan.c.i
+
+vulkan.s: vulkan.c.s
+
+.PHONY : vulkan.s
+
+# target to generate assembly for a file
+vulkan.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/vulkan.c.s
+.PHONY : vulkan.c.s
+
+window.o: window.c.o
+
+.PHONY : window.o
+
+# target to build an object file
+window.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/window.c.o
+.PHONY : window.c.o
+
+window.i: window.c.i
+
+.PHONY : window.i
+
+# target to preprocess a source file
+window.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/window.c.i
+.PHONY : window.c.i
+
+window.s: window.c.s
+
+.PHONY : window.s
+
+# target to generate assembly for a file
+window.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/window.c.s
+.PHONY : window.c.s
+
+x11_init.o: x11_init.c.o
+
+.PHONY : x11_init.o
+
+# target to build an object file
+x11_init.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_init.c.o
+.PHONY : x11_init.c.o
+
+x11_init.i: x11_init.c.i
+
+.PHONY : x11_init.i
+
+# target to preprocess a source file
+x11_init.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_init.c.i
+.PHONY : x11_init.c.i
+
+x11_init.s: x11_init.c.s
+
+.PHONY : x11_init.s
+
+# target to generate assembly for a file
+x11_init.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_init.c.s
+.PHONY : x11_init.c.s
+
+x11_monitor.o: x11_monitor.c.o
+
+.PHONY : x11_monitor.o
+
+# target to build an object file
+x11_monitor.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_monitor.c.o
+.PHONY : x11_monitor.c.o
+
+x11_monitor.i: x11_monitor.c.i
+
+.PHONY : x11_monitor.i
+
+# target to preprocess a source file
+x11_monitor.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_monitor.c.i
+.PHONY : x11_monitor.c.i
+
+x11_monitor.s: x11_monitor.c.s
+
+.PHONY : x11_monitor.s
+
+# target to generate assembly for a file
+x11_monitor.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_monitor.c.s
+.PHONY : x11_monitor.c.s
+
+x11_window.o: x11_window.c.o
+
+.PHONY : x11_window.o
+
+# target to build an object file
+x11_window.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_window.c.o
+.PHONY : x11_window.c.o
+
+x11_window.i: x11_window.c.i
+
+.PHONY : x11_window.i
+
+# target to preprocess a source file
+x11_window.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_window.c.i
+.PHONY : x11_window.c.i
+
+x11_window.s: x11_window.c.s
+
+.PHONY : x11_window.s
+
+# target to generate assembly for a file
+x11_window.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/x11_window.c.s
+.PHONY : x11_window.c.s
+
+xkb_unicode.o: xkb_unicode.c.o
+
+.PHONY : xkb_unicode.o
+
+# target to build an object file
+xkb_unicode.c.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/xkb_unicode.c.o
+.PHONY : xkb_unicode.c.o
+
+xkb_unicode.i: xkb_unicode.c.i
+
+.PHONY : xkb_unicode.i
+
+# target to preprocess a source file
+xkb_unicode.c.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/xkb_unicode.c.i
+.PHONY : xkb_unicode.c.i
+
+xkb_unicode.s: xkb_unicode.c.s
+
+.PHONY : xkb_unicode.s
+
+# target to generate assembly for a file
+xkb_unicode.c.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f glfw/src/CMakeFiles/glfw.dir/build.make glfw/src/CMakeFiles/glfw.dir/xkb_unicode.c.s
+.PHONY : xkb_unicode.c.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... package_source"
+	@echo "... rebuild_cache"
+	@echo "... glfw"
+	@echo "... edit_cache"
+	@echo "... list_install_components"
+	@echo "... context.o"
+	@echo "... context.i"
+	@echo "... context.s"
+	@echo "... egl_context.o"
+	@echo "... egl_context.i"
+	@echo "... egl_context.s"
+	@echo "... glx_context.o"
+	@echo "... glx_context.i"
+	@echo "... glx_context.s"
+	@echo "... init.o"
+	@echo "... init.i"
+	@echo "... init.s"
+	@echo "... input.o"
+	@echo "... input.i"
+	@echo "... input.s"
+	@echo "... linux_joystick.o"
+	@echo "... linux_joystick.i"
+	@echo "... linux_joystick.s"
+	@echo "... monitor.o"
+	@echo "... monitor.i"
+	@echo "... monitor.s"
+	@echo "... osmesa_context.o"
+	@echo "... osmesa_context.i"
+	@echo "... osmesa_context.s"
+	@echo "... posix_thread.o"
+	@echo "... posix_thread.i"
+	@echo "... posix_thread.s"
+	@echo "... posix_time.o"
+	@echo "... posix_time.i"
+	@echo "... posix_time.s"
+	@echo "... vulkan.o"
+	@echo "... vulkan.i"
+	@echo "... vulkan.s"
+	@echo "... window.o"
+	@echo "... window.i"
+	@echo "... window.s"
+	@echo "... x11_init.o"
+	@echo "... x11_init.i"
+	@echo "... x11_init.s"
+	@echo "... x11_monitor.o"
+	@echo "... x11_monitor.i"
+	@echo "... x11_monitor.s"
+	@echo "... x11_window.o"
+	@echo "... x11_window.i"
+	@echo "... x11_window.s"
+	@echo "... xkb_unicode.o"
+	@echo "... xkb_unicode.i"
+	@echo "... xkb_unicode.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 39 - 0
build2/glfw/src/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/glfw/src
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+

+ 13 - 0
build2/glfw/src/glfw3.pc

@@ -0,0 +1,13 @@
+prefix=/home/thuemmel/libs/libigl/build2/install
+exec_prefix=${prefix}
+includedir=/home/thuemmel/libs/libigl/build2/install/include
+libdir=/home/thuemmel/libs/libigl/build2/install/lib
+
+Name: GLFW
+Description: A multi-platform library for OpenGL, window and input
+Version: 3.3.0
+URL: https://www.glfw.org/
+Requires.private:  x11
+Libs: -L${libdir} -lglfw3
+Libs.private:  -lrt -lm -ldl
+Cflags: -I${includedir}

+ 1 - 0
build2/glfw/src/glfw3Config.cmake

@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake")

+ 46 - 0
build2/glfw/src/glfw3ConfigVersion.cmake

@@ -0,0 +1,46 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
+# but only if the requested major version is the same as the current one.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+
+set(PACKAGE_VERSION "3.3.0")
+
+if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+  set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+
+  if("3.3.0" MATCHES "^([0-9]+)\\.")
+    set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+  else()
+    set(CVF_VERSION_MAJOR "3.3.0")
+  endif()
+
+  if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
+    set(PACKAGE_VERSION_COMPATIBLE TRUE)
+  else()
+    set(PACKAGE_VERSION_COMPATIBLE FALSE)
+  endif()
+
+  if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+      set(PACKAGE_VERSION_EXACT TRUE)
+  endif()
+endif()
+
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
+   return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
+  math(EXPR installedBits "8 * 8")
+  set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+  set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()

+ 60 - 0
build2/glfw/src/glfw_config.h

@@ -0,0 +1,60 @@
+//========================================================================
+// GLFW 3.3 - www.glfw.org
+//------------------------------------------------------------------------
+// Copyright (c) 2010-2016 Camilla Löwy <elmindreda@glfw.org>
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would
+//    be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not
+//    be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source
+//    distribution.
+//
+//========================================================================
+// As glfw_config.h.in, this file is used by CMake to produce the
+// glfw_config.h configuration header file.  If you are adding a feature
+// requiring conditional compilation, this is where to add the macro.
+//========================================================================
+// As glfw_config.h, this file defines compile-time option macros for a
+// specific platform and development environment.  If you are using the
+// GLFW CMake files, modify glfw_config.h.in instead of this file.  If you
+// are using your own build system, make this file define the appropriate
+// macros in whatever way is suitable.
+//========================================================================
+
+// Define this to 1 if building GLFW for X11
+#define _GLFW_X11
+// Define this to 1 if building GLFW for Win32
+/* #undef _GLFW_WIN32 */
+// Define this to 1 if building GLFW for Cocoa
+/* #undef _GLFW_COCOA */
+// Define this to 1 if building GLFW for Wayland
+/* #undef _GLFW_WAYLAND */
+// Define this to 1 if building GLFW for OSMesa
+/* #undef _GLFW_OSMESA */
+
+// Define this to 1 if building as a shared library / dynamic library / DLL
+/* #undef _GLFW_BUILD_DLL */
+// Define this to 1 to use Vulkan loader linked statically into application
+/* #undef _GLFW_VULKAN_STATIC */
+
+// Define this to 1 to force use of high-performance GPU on hybrid systems
+/* #undef _GLFW_USE_HYBRID_HPG */
+
+// Define this to 1 if xkbcommon supports the compose key
+/* #undef HAVE_XKBCOMMON_COMPOSE_H */
+// Define this to 1 if the libc supports memfd_create()
+/* #undef HAVE_MEMFD_CREATE */
+

+ 404 - 0
build2/imgui/Makefile

@@ -0,0 +1,404 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.10
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/thuemmel/libs/libigl
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/thuemmel/libs/libigl/build2
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+	cd /home/thuemmel/libs/libigl/build2 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/thuemmel/libs/libigl/build2/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"lib\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles /home/thuemmel/libs/libigl/build2/imgui/CMakeFiles/progress.marks
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 imgui/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/thuemmel/libs/libigl/build2/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 imgui/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 imgui/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 imgui/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+imgui/CMakeFiles/imgui.dir/rule:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f CMakeFiles/Makefile2 imgui/CMakeFiles/imgui.dir/rule
+.PHONY : imgui/CMakeFiles/imgui.dir/rule
+
+# Convenience name for target.
+imgui: imgui/CMakeFiles/imgui.dir/rule
+
+.PHONY : imgui
+
+# fast build rule for target.
+imgui/fast:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/build
+.PHONY : imgui/fast
+
+__/imgui/examples/imgui_impl_glfw.o: __/imgui/examples/imgui_impl_glfw.cpp.o
+
+.PHONY : __/imgui/examples/imgui_impl_glfw.o
+
+# target to build an object file
+__/imgui/examples/imgui_impl_glfw.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_glfw.cpp.o
+.PHONY : __/imgui/examples/imgui_impl_glfw.cpp.o
+
+__/imgui/examples/imgui_impl_glfw.i: __/imgui/examples/imgui_impl_glfw.cpp.i
+
+.PHONY : __/imgui/examples/imgui_impl_glfw.i
+
+# target to preprocess a source file
+__/imgui/examples/imgui_impl_glfw.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_glfw.cpp.i
+.PHONY : __/imgui/examples/imgui_impl_glfw.cpp.i
+
+__/imgui/examples/imgui_impl_glfw.s: __/imgui/examples/imgui_impl_glfw.cpp.s
+
+.PHONY : __/imgui/examples/imgui_impl_glfw.s
+
+# target to generate assembly for a file
+__/imgui/examples/imgui_impl_glfw.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_glfw.cpp.s
+.PHONY : __/imgui/examples/imgui_impl_glfw.cpp.s
+
+__/imgui/examples/imgui_impl_opengl3.o: __/imgui/examples/imgui_impl_opengl3.cpp.o
+
+.PHONY : __/imgui/examples/imgui_impl_opengl3.o
+
+# target to build an object file
+__/imgui/examples/imgui_impl_opengl3.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_opengl3.cpp.o
+.PHONY : __/imgui/examples/imgui_impl_opengl3.cpp.o
+
+__/imgui/examples/imgui_impl_opengl3.i: __/imgui/examples/imgui_impl_opengl3.cpp.i
+
+.PHONY : __/imgui/examples/imgui_impl_opengl3.i
+
+# target to preprocess a source file
+__/imgui/examples/imgui_impl_opengl3.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_opengl3.cpp.i
+.PHONY : __/imgui/examples/imgui_impl_opengl3.cpp.i
+
+__/imgui/examples/imgui_impl_opengl3.s: __/imgui/examples/imgui_impl_opengl3.cpp.s
+
+.PHONY : __/imgui/examples/imgui_impl_opengl3.s
+
+# target to generate assembly for a file
+__/imgui/examples/imgui_impl_opengl3.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/examples/imgui_impl_opengl3.cpp.s
+.PHONY : __/imgui/examples/imgui_impl_opengl3.cpp.s
+
+__/imgui/imgui.o: __/imgui/imgui.cpp.o
+
+.PHONY : __/imgui/imgui.o
+
+# target to build an object file
+__/imgui/imgui.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui.cpp.o
+.PHONY : __/imgui/imgui.cpp.o
+
+__/imgui/imgui.i: __/imgui/imgui.cpp.i
+
+.PHONY : __/imgui/imgui.i
+
+# target to preprocess a source file
+__/imgui/imgui.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui.cpp.i
+.PHONY : __/imgui/imgui.cpp.i
+
+__/imgui/imgui.s: __/imgui/imgui.cpp.s
+
+.PHONY : __/imgui/imgui.s
+
+# target to generate assembly for a file
+__/imgui/imgui.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui.cpp.s
+.PHONY : __/imgui/imgui.cpp.s
+
+__/imgui/imgui_demo.o: __/imgui/imgui_demo.cpp.o
+
+.PHONY : __/imgui/imgui_demo.o
+
+# target to build an object file
+__/imgui/imgui_demo.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_demo.cpp.o
+.PHONY : __/imgui/imgui_demo.cpp.o
+
+__/imgui/imgui_demo.i: __/imgui/imgui_demo.cpp.i
+
+.PHONY : __/imgui/imgui_demo.i
+
+# target to preprocess a source file
+__/imgui/imgui_demo.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_demo.cpp.i
+.PHONY : __/imgui/imgui_demo.cpp.i
+
+__/imgui/imgui_demo.s: __/imgui/imgui_demo.cpp.s
+
+.PHONY : __/imgui/imgui_demo.s
+
+# target to generate assembly for a file
+__/imgui/imgui_demo.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_demo.cpp.s
+.PHONY : __/imgui/imgui_demo.cpp.s
+
+__/imgui/imgui_draw.o: __/imgui/imgui_draw.cpp.o
+
+.PHONY : __/imgui/imgui_draw.o
+
+# target to build an object file
+__/imgui/imgui_draw.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_draw.cpp.o
+.PHONY : __/imgui/imgui_draw.cpp.o
+
+__/imgui/imgui_draw.i: __/imgui/imgui_draw.cpp.i
+
+.PHONY : __/imgui/imgui_draw.i
+
+# target to preprocess a source file
+__/imgui/imgui_draw.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_draw.cpp.i
+.PHONY : __/imgui/imgui_draw.cpp.i
+
+__/imgui/imgui_draw.s: __/imgui/imgui_draw.cpp.s
+
+.PHONY : __/imgui/imgui_draw.s
+
+# target to generate assembly for a file
+__/imgui/imgui_draw.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_draw.cpp.s
+.PHONY : __/imgui/imgui_draw.cpp.s
+
+__/imgui/imgui_widgets.o: __/imgui/imgui_widgets.cpp.o
+
+.PHONY : __/imgui/imgui_widgets.o
+
+# target to build an object file
+__/imgui/imgui_widgets.cpp.o:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_widgets.cpp.o
+.PHONY : __/imgui/imgui_widgets.cpp.o
+
+__/imgui/imgui_widgets.i: __/imgui/imgui_widgets.cpp.i
+
+.PHONY : __/imgui/imgui_widgets.i
+
+# target to preprocess a source file
+__/imgui/imgui_widgets.cpp.i:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_widgets.cpp.i
+.PHONY : __/imgui/imgui_widgets.cpp.i
+
+__/imgui/imgui_widgets.s: __/imgui/imgui_widgets.cpp.s
+
+.PHONY : __/imgui/imgui_widgets.s
+
+# target to generate assembly for a file
+__/imgui/imgui_widgets.cpp.s:
+	cd /home/thuemmel/libs/libigl/build2 && $(MAKE) -f imgui/CMakeFiles/imgui.dir/build.make imgui/CMakeFiles/imgui.dir/__/imgui/imgui_widgets.cpp.s
+.PHONY : __/imgui/imgui_widgets.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... package"
+	@echo "... imgui"
+	@echo "... package_source"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... list_install_components"
+	@echo "... __/imgui/examples/imgui_impl_glfw.o"
+	@echo "... __/imgui/examples/imgui_impl_glfw.i"
+	@echo "... __/imgui/examples/imgui_impl_glfw.s"
+	@echo "... __/imgui/examples/imgui_impl_opengl3.o"
+	@echo "... __/imgui/examples/imgui_impl_opengl3.i"
+	@echo "... __/imgui/examples/imgui_impl_opengl3.s"
+	@echo "... __/imgui/imgui.o"
+	@echo "... __/imgui/imgui.i"
+	@echo "... __/imgui/imgui.s"
+	@echo "... __/imgui/imgui_demo.o"
+	@echo "... __/imgui/imgui_demo.i"
+	@echo "... __/imgui/imgui_demo.s"
+	@echo "... __/imgui/imgui_draw.o"
+	@echo "... __/imgui/imgui_draw.i"
+	@echo "... __/imgui/imgui_draw.s"
+	@echo "... __/imgui/imgui_widgets.o"
+	@echo "... __/imgui/imgui_widgets.i"
+	@echo "... __/imgui/imgui_widgets.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/thuemmel/libs/libigl/build2 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 39 - 0
build2/imgui/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /home/thuemmel/libs/libigl/external/libigl-imgui
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/home/thuemmel/libs/libigl/build2/install")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+

+ 26 - 0
build2/install/include/embree3/rtcore.h

@@ -0,0 +1,26 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_version.h"
+#include "rtcore_common.h"
+#include "rtcore_device.h"
+#include "rtcore_buffer.h"
+#include "rtcore_ray.h"
+#include "rtcore_geometry.h"
+#include "rtcore_scene.h"
+#include "rtcore_builder.h"

+ 28 - 0
build2/install/include/embree3/rtcore.isph

@@ -0,0 +1,28 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_ISPH__
+#define __RTC_ISPH__
+
+#include "rtcore_version.h"
+#include "rtcore_common.isph"
+#include "rtcore_device.isph"
+#include "rtcore_buffer.isph"
+#include "rtcore_ray.isph"
+#include "rtcore_geometry.isph"
+#include "rtcore_scene.isph"
+
+#endif

+ 64 - 0
build2/install/include/embree3/rtcore_buffer.h

@@ -0,0 +1,64 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_device.h"
+
+RTC_NAMESPACE_BEGIN
+
+/* Types of buffers */
+enum RTCBufferType
+{
+  RTC_BUFFER_TYPE_INDEX            = 0,
+  RTC_BUFFER_TYPE_VERTEX           = 1,
+  RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE = 2,
+  RTC_BUFFER_TYPE_NORMAL           = 3,
+  RTC_BUFFER_TYPE_TANGENT          = 4,
+  RTC_BUFFER_TYPE_NORMAL_DERIVATIVE = 5,
+
+  RTC_BUFFER_TYPE_GRID                 = 8,
+
+  RTC_BUFFER_TYPE_FACE                 = 16,
+  RTC_BUFFER_TYPE_LEVEL                = 17,
+  RTC_BUFFER_TYPE_EDGE_CREASE_INDEX    = 18,
+  RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT   = 19,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX  = 20,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT = 21,
+  RTC_BUFFER_TYPE_HOLE                 = 22,
+
+  RTC_BUFFER_TYPE_FLAGS = 32
+};
+
+/* Opaque buffer type */
+typedef struct RTCBufferTy* RTCBuffer;
+
+/* Creates a new buffer. */
+RTC_API RTCBuffer rtcNewBuffer(RTCDevice device, size_t byteSize);
+
+/* Creates a new shared buffer. */
+RTC_API RTCBuffer rtcNewSharedBuffer(RTCDevice device, void* ptr, size_t byteSize);
+
+/* Returns a pointer to the buffer data. */
+RTC_API void* rtcGetBufferData(RTCBuffer buffer);
+
+/* Retains the buffer (increments the reference count). */
+RTC_API void rtcRetainBuffer(RTCBuffer buffer);
+
+/* Releases the buffer (decrements the reference count). */
+RTC_API void rtcReleaseBuffer(RTCBuffer buffer);
+
+RTC_NAMESPACE_END

+ 63 - 0
build2/install/include/embree3/rtcore_buffer.isph

@@ -0,0 +1,63 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_BUFFER_ISPH__
+#define __RTC_BUFFER_ISPH__
+
+#include "rtcore_device.isph"
+
+/* Types of buffers */
+enum RTCBufferType
+{
+  RTC_BUFFER_TYPE_INDEX            = 0,
+  RTC_BUFFER_TYPE_VERTEX           = 1,
+  RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE = 2,
+  RTC_BUFFER_TYPE_NORMAL           = 3,
+  RTC_BUFFER_TYPE_TANGENT          = 4,
+  RTC_BUFFER_TYPE_NORMAL_DERIVATIVE = 5,
+
+  RTC_BUFFER_TYPE_GRID                 = 8,
+
+  RTC_BUFFER_TYPE_FACE                 = 16,
+  RTC_BUFFER_TYPE_LEVEL                = 17,
+  RTC_BUFFER_TYPE_EDGE_CREASE_INDEX    = 18,
+  RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT   = 19,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX  = 20,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT = 21,
+  RTC_BUFFER_TYPE_HOLE                 = 22,
+
+  RTC_BUFFER_TYPE_FLAGS = 32
+};
+
+/* Opaque buffer type */
+typedef uniform struct RTCBufferTy* uniform RTCBuffer;
+
+/* Creates a new buffer. */
+RTC_API RTCBuffer rtcNewBuffer(RTCDevice device, uniform uintptr_t byteSize);
+
+/* Creates a new shared buffer. */
+RTC_API RTCBuffer rtcNewSharedBuffer(RTCDevice device, void* uniform ptr, uniform uintptr_t byteSize);
+
+/* Returns a pointer to the buffer data. */
+RTC_API void* uniform rtcGetBufferData(RTCBuffer buffer);
+
+/* Retains the buffer (increments the reference count). */
+RTC_API void rtcRetainBuffer(RTCBuffer buffer);
+
+/* Releases the buffer handle (decrements the reference count). */
+RTC_API void rtcReleaseBuffer(RTCBuffer buffer);
+
+#endif

+ 133 - 0
build2/install/include/embree3/rtcore_builder.h

@@ -0,0 +1,133 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_scene.h"
+
+RTC_NAMESPACE_BEGIN
+  
+/* Opaque BVH type */
+typedef struct RTCBVHTy* RTCBVH;
+
+/* Input build primitives for the builder */
+struct RTC_ALIGN(32) RTCBuildPrimitive
+{
+  float lower_x, lower_y, lower_z; 
+  unsigned int geomID;
+  float upper_x, upper_y, upper_z;
+  unsigned int primID;
+};
+
+/* Opaque thread local allocator type */
+typedef struct RTCThreadLocalAllocatorTy* RTCThreadLocalAllocator;
+
+/* Callback to create a node */
+typedef void* (*RTCCreateNodeFunction) (RTCThreadLocalAllocator allocator, unsigned int childCount, void* userPtr);
+
+/* Callback to set the pointer to all children */
+typedef void (*RTCSetNodeChildrenFunction) (void* nodePtr, void** children, unsigned int childCount, void* userPtr);
+
+/* Callback to set the bounds of all children */
+typedef void (*RTCSetNodeBoundsFunction) (void* nodePtr, const struct RTCBounds** bounds, unsigned int childCount, void* userPtr);
+
+/* Callback to create a leaf node */
+typedef void* (*RTCCreateLeafFunction) (RTCThreadLocalAllocator allocator, const struct RTCBuildPrimitive* primitives, size_t primitiveCount, void* userPtr);
+
+/* Callback to split a build primitive */
+typedef void (*RTCSplitPrimitiveFunction) (const struct RTCBuildPrimitive* primitive, unsigned int dimension, float position, struct RTCBounds* leftBounds, struct RTCBounds* rightBounds, void* userPtr);
+
+/* Build flags */
+enum RTCBuildFlags
+{
+  RTC_BUILD_FLAG_NONE    = 0,
+  RTC_BUILD_FLAG_DYNAMIC = (1 << 0),
+};
+  
+/* Input for builders */
+struct RTCBuildArguments
+{
+  size_t byteSize;
+  
+  enum RTCBuildQuality buildQuality;
+  enum RTCBuildFlags buildFlags;
+  unsigned int maxBranchingFactor;
+  unsigned int maxDepth;
+  unsigned int sahBlockSize;
+  unsigned int minLeafSize;
+  unsigned int maxLeafSize;
+  float traversalCost;
+  float intersectionCost;
+  
+  RTCBVH bvh;
+  struct RTCBuildPrimitive* primitives;
+  size_t primitiveCount;
+  size_t primitiveArrayCapacity;
+  
+  RTCCreateNodeFunction createNode;
+  RTCSetNodeChildrenFunction setNodeChildren;
+  RTCSetNodeBoundsFunction setNodeBounds;
+  RTCCreateLeafFunction createLeaf;
+  RTCSplitPrimitiveFunction splitPrimitive;
+  RTCProgressMonitorFunction buildProgress;
+  void* userPtr;
+};
+
+/* Returns the default build settings.  */
+RTC_FORCEINLINE struct RTCBuildArguments rtcDefaultBuildArguments()
+{
+  struct RTCBuildArguments args;
+  args.byteSize = sizeof(args);
+  args.buildQuality = RTC_BUILD_QUALITY_MEDIUM;
+  args.buildFlags = RTC_BUILD_FLAG_NONE;
+  args.maxBranchingFactor = 2;
+  args.maxDepth = 32;
+  args.sahBlockSize = 1;
+  args.minLeafSize = 1;
+  args.maxLeafSize = 32;
+  args.traversalCost = 1.0f;
+  args.intersectionCost = 1.0f;
+  args.bvh = NULL;
+  args.primitives = NULL;
+  args.primitiveCount = 0;
+  args.primitiveArrayCapacity = 0;
+  args.createNode = NULL;
+  args.setNodeChildren = NULL;
+  args.setNodeBounds = NULL;
+  args.createLeaf = NULL;
+  args.splitPrimitive = NULL;
+  args.buildProgress = NULL;
+  args.userPtr = NULL;
+  return args;
+}
+
+/* Creates a new BVH. */
+RTC_API RTCBVH rtcNewBVH(RTCDevice device);
+
+/* Builds a BVH. */
+RTC_API void* rtcBuildBVH(const struct RTCBuildArguments* args);
+
+/* Allocates memory using the thread local allocator. */
+RTC_API void* rtcThreadLocalAlloc(RTCThreadLocalAllocator allocator, size_t bytes, size_t align);
+
+/* Retains the BVH (increments reference count). */
+RTC_API void rtcRetainBVH(RTCBVH bvh);
+
+/* Releases the BVH (decrements reference count). */
+RTC_API void rtcReleaseBVH(RTCBVH bvh);
+
+RTC_NAMESPACE_END
+

+ 224 - 0
build2/install/include/embree3/rtcore_common.h

@@ -0,0 +1,224 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <stdbool.h>
+
+#include "rtcore_version.h"
+
+RTC_NAMESPACE_BEGIN
+
+#if defined(_WIN32)
+#if defined(_M_X64)
+typedef long long ssize_t;
+#else
+typedef int ssize_t;
+#endif
+#endif
+
+#ifdef _WIN32
+#  define RTC_ALIGN(...) __declspec(align(__VA_ARGS__))
+#else
+#  define RTC_ALIGN(...) __attribute__((aligned(__VA_ARGS__)))
+#endif
+
+#if !defined (RTC_DEPRECATED)
+#ifdef __GNUC__
+  #define RTC_DEPRECATED __attribute__((deprecated))
+#elif defined(_MSC_VER)
+  #define RTC_DEPRECATED __declspec(deprecated)
+#else
+  #define RTC_DEPRECATED
+#endif
+#endif
+
+#if defined(_WIN32) 
+#  define RTC_FORCEINLINE __forceinline
+#else
+#  define RTC_FORCEINLINE inline __attribute__((always_inline))
+#endif
+
+/* Invalid geometry ID */
+#define RTC_INVALID_GEOMETRY_ID ((unsigned int)-1)
+
+/* Maximum number of time steps */
+#define RTC_MAX_TIME_STEP_COUNT 129
+
+/* Maximum number of instancing levels */
+#define RTC_MAX_INSTANCE_LEVEL_COUNT 1
+
+/* Formats of buffers and other data structures */
+enum RTCFormat
+{
+  RTC_FORMAT_UNDEFINED = 0,
+
+  /* 8-bit unsigned integer */
+  RTC_FORMAT_UCHAR = 0x1001,
+  RTC_FORMAT_UCHAR2,
+  RTC_FORMAT_UCHAR3,
+  RTC_FORMAT_UCHAR4,
+
+  /* 8-bit signed integer */
+  RTC_FORMAT_CHAR = 0x2001,
+  RTC_FORMAT_CHAR2,
+  RTC_FORMAT_CHAR3,
+  RTC_FORMAT_CHAR4,
+
+  /* 16-bit unsigned integer */
+  RTC_FORMAT_USHORT = 0x3001,
+  RTC_FORMAT_USHORT2,
+  RTC_FORMAT_USHORT3,
+  RTC_FORMAT_USHORT4,
+
+  /* 16-bit signed integer */
+  RTC_FORMAT_SHORT = 0x4001,
+  RTC_FORMAT_SHORT2,
+  RTC_FORMAT_SHORT3,
+  RTC_FORMAT_SHORT4,
+
+  /* 32-bit unsigned integer */
+  RTC_FORMAT_UINT = 0x5001,
+  RTC_FORMAT_UINT2,
+  RTC_FORMAT_UINT3,
+  RTC_FORMAT_UINT4,
+
+  /* 32-bit signed integer */
+  RTC_FORMAT_INT = 0x6001,
+  RTC_FORMAT_INT2,
+  RTC_FORMAT_INT3,
+  RTC_FORMAT_INT4,
+
+  /* 64-bit unsigned integer */
+  RTC_FORMAT_ULLONG = 0x7001,
+  RTC_FORMAT_ULLONG2,
+  RTC_FORMAT_ULLONG3,
+  RTC_FORMAT_ULLONG4,
+
+  /* 64-bit signed integer */
+  RTC_FORMAT_LLONG = 0x8001,
+  RTC_FORMAT_LLONG2,
+  RTC_FORMAT_LLONG3,
+  RTC_FORMAT_LLONG4,
+
+  /* 32-bit float */
+  RTC_FORMAT_FLOAT = 0x9001,
+  RTC_FORMAT_FLOAT2,
+  RTC_FORMAT_FLOAT3,
+  RTC_FORMAT_FLOAT4,
+  RTC_FORMAT_FLOAT5,
+  RTC_FORMAT_FLOAT6,
+  RTC_FORMAT_FLOAT7,
+  RTC_FORMAT_FLOAT8,
+  RTC_FORMAT_FLOAT9,
+  RTC_FORMAT_FLOAT10,
+  RTC_FORMAT_FLOAT11,
+  RTC_FORMAT_FLOAT12,
+  RTC_FORMAT_FLOAT13,
+  RTC_FORMAT_FLOAT14,
+  RTC_FORMAT_FLOAT15,
+  RTC_FORMAT_FLOAT16,
+
+  /* 32-bit float matrix (row-major order) */
+  RTC_FORMAT_FLOAT2X2_ROW_MAJOR = 0x9122,
+  RTC_FORMAT_FLOAT2X3_ROW_MAJOR = 0x9123,
+  RTC_FORMAT_FLOAT2X4_ROW_MAJOR = 0x9124,
+  RTC_FORMAT_FLOAT3X2_ROW_MAJOR = 0x9132,
+  RTC_FORMAT_FLOAT3X3_ROW_MAJOR = 0x9133,
+  RTC_FORMAT_FLOAT3X4_ROW_MAJOR = 0x9134,
+  RTC_FORMAT_FLOAT4X2_ROW_MAJOR = 0x9142,
+  RTC_FORMAT_FLOAT4X3_ROW_MAJOR = 0x9143,
+  RTC_FORMAT_FLOAT4X4_ROW_MAJOR = 0x9144,
+
+  /* 32-bit float matrix (column-major order) */
+  RTC_FORMAT_FLOAT2X2_COLUMN_MAJOR = 0x9222,
+  RTC_FORMAT_FLOAT2X3_COLUMN_MAJOR = 0x9223,
+  RTC_FORMAT_FLOAT2X4_COLUMN_MAJOR = 0x9224,
+  RTC_FORMAT_FLOAT3X2_COLUMN_MAJOR = 0x9232,
+  RTC_FORMAT_FLOAT3X3_COLUMN_MAJOR = 0x9233,
+  RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR = 0x9234,
+  RTC_FORMAT_FLOAT4X2_COLUMN_MAJOR = 0x9242,
+  RTC_FORMAT_FLOAT4X3_COLUMN_MAJOR = 0x9243,
+  RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR = 0x9244,
+
+  /* special 12-byte format for grids */
+  RTC_FORMAT_GRID = 0xA001
+};
+
+/* Build quality levels */
+enum RTCBuildQuality
+{
+  RTC_BUILD_QUALITY_LOW    = 0,
+  RTC_BUILD_QUALITY_MEDIUM = 1,
+  RTC_BUILD_QUALITY_HIGH   = 2,
+  RTC_BUILD_QUALITY_REFIT  = 3,
+};
+
+/* Axis-aligned bounding box representation */
+struct RTC_ALIGN(16) RTCBounds
+{
+  float lower_x, lower_y, lower_z, align0;
+  float upper_x, upper_y, upper_z, align1;
+};
+
+/* Linear axis-aligned bounding box representation */
+struct RTC_ALIGN(16) RTCLinearBounds
+{
+  struct RTCBounds bounds0;
+  struct RTCBounds bounds1;
+};
+
+/* Intersection context flags */
+enum RTCIntersectContextFlags
+{
+  RTC_INTERSECT_CONTEXT_FLAG_NONE       = 0,
+  RTC_INTERSECT_CONTEXT_FLAG_INCOHERENT = (0 << 0), // optimize for incoherent rays
+  RTC_INTERSECT_CONTEXT_FLAG_COHERENT   = (1 << 0)  // optimize for coherent rays
+};
+
+/* Arguments for RTCFilterFunctionN */
+struct RTCFilterFunctionNArguments
+{
+  int* valid;
+  void* geometryUserPtr;
+  const struct RTCIntersectContext* context;
+  struct RTCRayN* ray;
+  struct RTCHitN* hit;
+  unsigned int N;
+};
+
+/* Filter callback function */
+typedef void (*RTCFilterFunctionN)(const struct RTCFilterFunctionNArguments* args);
+
+/* Intersection context passed to intersect/occluded calls */
+struct RTCIntersectContext
+{
+  enum RTCIntersectContextFlags flags;               // intersection flags
+  RTCFilterFunctionN filter;                         // filter function to execute
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT]; // will be set to geomID of instance when instance is entered
+};
+
+/* Initializes an intersection context. */
+RTC_FORCEINLINE void rtcInitIntersectContext(struct RTCIntersectContext* context)
+{
+  context->flags = RTC_INTERSECT_CONTEXT_FLAG_INCOHERENT;
+  context->filter = NULL;
+  context->instID[0] = RTC_INVALID_GEOMETRY_ID;
+}
+  
+RTC_NAMESPACE_END

+ 205 - 0
build2/install/include/embree3/rtcore_common.isph

@@ -0,0 +1,205 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_COMMON_ISPH__
+#define __RTC_COMMON_ISPH__
+
+#if !defined(RTC_API)
+#define RTC_API extern "C" unmasked
+#endif
+
+#ifdef _WIN32
+#  define RTC_ALIGN(...) // FIXME: need to specify alignment
+#else
+#  define RTC_ALIGN(...) // FIXME: need to specify alignment
+#endif
+
+#if !defined(RTC_DEPRECATED)
+#define RTC_DEPRECATED // FIXME: deprecation not supported by ISPC
+#endif
+
+#if !defined(RTC_FORCEINLINE)
+#define RTC_FORCEINLINE inline
+#endif
+
+/* Invalid geometry ID */
+#define RTC_INVALID_GEOMETRY_ID ((uniform unsigned int)-1)
+
+/* Maximum number of time steps */
+#define RTC_MAX_TIME_STEP_COUNT 129
+
+/* Maximum number of instancing levels */
+#define RTC_MAX_INSTANCE_LEVEL_COUNT 1
+
+/* Formats of buffers and other data structures */
+enum RTCFormat
+{
+  RTC_FORMAT_UNDEFINED = 0,
+
+  /* 8-bit unsigned integer */
+  RTC_FORMAT_UCHAR = 0x1001,
+  RTC_FORMAT_UCHAR2,
+  RTC_FORMAT_UCHAR3,
+  RTC_FORMAT_UCHAR4,
+
+  /* 8-bit signed integer */
+  RTC_FORMAT_CHAR = 0x2001,
+  RTC_FORMAT_CHAR2,
+  RTC_FORMAT_CHAR3,
+  RTC_FORMAT_CHAR4,
+
+  /* 16-bit unsigned integer */
+  RTC_FORMAT_USHORT = 0x3001,
+  RTC_FORMAT_USHORT2,
+  RTC_FORMAT_USHORT3,
+  RTC_FORMAT_USHORT4,
+
+  /* 16-bit signed integer */
+  RTC_FORMAT_SHORT = 0x4001,
+  RTC_FORMAT_SHORT2,
+  RTC_FORMAT_SHORT3,
+  RTC_FORMAT_SHORT4,
+
+  /* 32-bit unsigned integer */
+  RTC_FORMAT_UINT = 0x5001,
+  RTC_FORMAT_UINT2,
+  RTC_FORMAT_UINT3,
+  RTC_FORMAT_UINT4,
+
+  /* 32-bit signed integer */
+  RTC_FORMAT_INT = 0x6001,
+  RTC_FORMAT_INT2,
+  RTC_FORMAT_INT3,
+  RTC_FORMAT_INT4,
+
+  /* 64-bit unsigned integer */
+  RTC_FORMAT_ULLONG = 0x7001,
+  RTC_FORMAT_ULLONG2,
+  RTC_FORMAT_ULLONG3,
+  RTC_FORMAT_ULLONG4,
+
+  /* 64-bit signed integer */
+  RTC_FORMAT_LLONG = 0x8001,
+  RTC_FORMAT_LLONG2,
+  RTC_FORMAT_LLONG3,
+  RTC_FORMAT_LLONG4,
+
+  /* 32-bit float */
+  RTC_FORMAT_FLOAT = 0x9001,
+  RTC_FORMAT_FLOAT2,
+  RTC_FORMAT_FLOAT3,
+  RTC_FORMAT_FLOAT4,
+  RTC_FORMAT_FLOAT5,
+  RTC_FORMAT_FLOAT6,
+  RTC_FORMAT_FLOAT7,
+  RTC_FORMAT_FLOAT8,
+  RTC_FORMAT_FLOAT9,
+  RTC_FORMAT_FLOAT10,
+  RTC_FORMAT_FLOAT11,
+  RTC_FORMAT_FLOAT12,
+  RTC_FORMAT_FLOAT13,
+  RTC_FORMAT_FLOAT14,
+  RTC_FORMAT_FLOAT15,
+  RTC_FORMAT_FLOAT16,
+
+  /* 32-bit float matrix (row-major order) */
+  RTC_FORMAT_FLOAT2X2_ROW_MAJOR = 0x9122,
+  RTC_FORMAT_FLOAT2X3_ROW_MAJOR = 0x9123,
+  RTC_FORMAT_FLOAT2X4_ROW_MAJOR = 0x9124,
+  RTC_FORMAT_FLOAT3X2_ROW_MAJOR = 0x9132,
+  RTC_FORMAT_FLOAT3X3_ROW_MAJOR = 0x9133,
+  RTC_FORMAT_FLOAT3X4_ROW_MAJOR = 0x9134,
+  RTC_FORMAT_FLOAT4X2_ROW_MAJOR = 0x9142,
+  RTC_FORMAT_FLOAT4X3_ROW_MAJOR = 0x9143,
+  RTC_FORMAT_FLOAT4X4_ROW_MAJOR = 0x9144,
+
+  /* 32-bit float matrix (column-major order) */
+  RTC_FORMAT_FLOAT2X2_COLUMN_MAJOR = 0x9222,
+  RTC_FORMAT_FLOAT2X3_COLUMN_MAJOR = 0x9223,
+  RTC_FORMAT_FLOAT2X4_COLUMN_MAJOR = 0x9224,
+  RTC_FORMAT_FLOAT3X2_COLUMN_MAJOR = 0x9232,
+  RTC_FORMAT_FLOAT3X3_COLUMN_MAJOR = 0x9233,
+  RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR = 0x9234,
+  RTC_FORMAT_FLOAT4X2_COLUMN_MAJOR = 0x9242,
+  RTC_FORMAT_FLOAT4X3_COLUMN_MAJOR = 0x9243,
+  RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR = 0x9244,
+
+  /* special 12-byte format for grids */
+  RTC_FORMAT_GRID = 0xA001
+};
+
+/* Build quality levels */
+enum RTCBuildQuality
+{
+  RTC_BUILD_QUALITY_LOW    = 0,
+  RTC_BUILD_QUALITY_MEDIUM = 1,
+  RTC_BUILD_QUALITY_HIGH   = 2,
+  RTC_BUILD_QUALITY_REFIT  = 3,
+};
+
+/* Axis-aligned bounding box representation */
+struct RTC_ALIGN(16) RTCBounds
+{
+  float lower_x, lower_y, lower_z, align0;
+  float upper_x, upper_y, upper_z, align1;
+};
+
+/* Linear axis-aligned bounding box representation */
+struct RTC_ALIGN(16) RTCLinearBounds
+{
+  RTCBounds bounds0;
+  RTCBounds bounds1;
+};
+
+/* Intersection context flags */
+enum RTCIntersectContextFlags
+{
+  RTC_INTERSECT_CONTEXT_FLAG_NONE       = 0,
+  RTC_INTERSECT_CONTEXT_FLAG_INCOHERENT = (0 << 0), // optimize for incoherent rays
+  RTC_INTERSECT_CONTEXT_FLAG_COHERENT   = (1 << 0)  // optimize for coherent rays
+};
+
+/* Intersection context passed to intersect/occluded calls */
+struct RTCIntersectContext
+{
+  RTCIntersectContextFlags flags;                    // intersection flags
+  void* filter;                                      // filter function to execute
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT]; // will be set to geomID of instance when instance is entered
+};
+
+/* Initializes an intersection context. */
+RTC_FORCEINLINE void rtcInitIntersectContext(uniform RTCIntersectContext* context)
+{
+  context->flags = RTC_INTERSECT_CONTEXT_FLAG_INCOHERENT;
+  context->filter = NULL;
+  context->instID[0] = RTC_INVALID_GEOMETRY_ID;
+}
+
+/* Arguments for RTCFilterFunctionN */
+struct RTCFilterFunctionNArguments
+{
+  uniform int* uniform valid;
+  void* uniform geometryUserPtr;
+  const RTCIntersectContext* uniform context;
+  struct RTCRayN* uniform ray;
+  struct RTCHitN* uniform hit;
+  uniform unsigned int N;
+};
+
+/* Filter callback function */
+typedef unmasked void (*uniform RTCFilterFunctionN)(const struct RTCFilterFunctionNArguments* uniform args);
+
+#endif

+ 97 - 0
build2/install/include/embree3/rtcore_device.h

@@ -0,0 +1,97 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_common.h"
+
+RTC_NAMESPACE_BEGIN
+
+/* Opaque device type */
+typedef struct RTCDeviceTy* RTCDevice;
+
+/* Creates a new Embree device. */
+RTC_API RTCDevice rtcNewDevice(const char* config);
+
+/* Retains the Embree device (increments the reference count). */
+RTC_API void rtcRetainDevice(RTCDevice device);
+  
+/* Releases an Embree device (decrements the reference count). */
+RTC_API void rtcReleaseDevice(RTCDevice device);
+
+/* Device properties */
+enum RTCDeviceProperty
+{
+  RTC_DEVICE_PROPERTY_VERSION       = 0,
+  RTC_DEVICE_PROPERTY_VERSION_MAJOR = 1,
+  RTC_DEVICE_PROPERTY_VERSION_MINOR = 2,
+  RTC_DEVICE_PROPERTY_VERSION_PATCH = 3,
+
+  RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED  = 32,
+  RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED  = 33,
+  RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED = 34,
+  RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED   = 35,
+
+  RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED          = 64,
+  RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED    = 65,
+  RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED   = 66,
+  RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED = 67,
+
+  RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED    = 96,
+  RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED        = 97,
+  RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED = 98,
+  RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED       = 99,
+  RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED        = 100,
+  RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED       = 101,
+
+  RTC_DEVICE_PROPERTY_TASKING_SYSTEM        = 128,
+  RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED = 129
+};
+
+/* Gets a device property. */
+RTC_API ssize_t rtcGetDeviceProperty(RTCDevice device, enum RTCDeviceProperty prop);
+
+/* Sets a device property. */
+RTC_API void rtcSetDeviceProperty(RTCDevice device, const enum RTCDeviceProperty prop, ssize_t value);
+  
+/* Error codes */
+enum RTCError
+{
+  RTC_ERROR_NONE              = 0,
+  RTC_ERROR_UNKNOWN           = 1,
+  RTC_ERROR_INVALID_ARGUMENT  = 2,
+  RTC_ERROR_INVALID_OPERATION = 3,
+  RTC_ERROR_OUT_OF_MEMORY     = 4,
+  RTC_ERROR_UNSUPPORTED_CPU   = 5,
+  RTC_ERROR_CANCELLED         = 6
+};
+
+/* Returns the error code. */
+RTC_API enum RTCError rtcGetDeviceError(RTCDevice device);
+
+/* Error callback function */
+typedef void (*RTCErrorFunction)(void* userPtr, enum RTCError code, const char* str);
+
+/* Sets the error callback function. */
+RTC_API void rtcSetDeviceErrorFunction(RTCDevice device, RTCErrorFunction error, void* userPtr);
+
+/* Memory monitor callback function */
+typedef bool (*RTCMemoryMonitorFunction)(void* ptr, ssize_t bytes, bool post);
+
+/* Sets the memory monitor callback function. */
+RTC_API void rtcSetDeviceMemoryMonitorFunction(RTCDevice device, RTCMemoryMonitorFunction memoryMonitor, void* userPtr);
+
+RTC_NAMESPACE_END

+ 95 - 0
build2/install/include/embree3/rtcore_device.isph

@@ -0,0 +1,95 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_DEVICE_ISPH__
+#define __RTC_DEVICE_ISPH__
+
+#include "rtcore_common.isph"
+
+/* Opaque device type */
+typedef uniform struct RTCDeviceTy* uniform RTCDevice;
+
+/* Creates a new Embree device. */
+RTC_API RTCDevice rtcNewDevice(const uniform int8* uniform config);
+
+/* Retains the Embree device (increments the reference count). */
+RTC_API void rtcRetainDevice(RTCDevice device);
+  
+/* Releases an Embree device (decrements the reference count). */
+RTC_API void rtcReleaseDevice(RTCDevice device);
+
+/* Device properties */
+enum RTCDeviceProperty
+{
+  RTC_DEVICE_PROPERTY_VERSION       = 0,
+  RTC_DEVICE_PROPERTY_VERSION_MAJOR = 1,
+  RTC_DEVICE_PROPERTY_VERSION_MINOR = 2,
+  RTC_DEVICE_PROPERTY_VERSION_PATCH = 3,
+
+  RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED  = 32,
+  RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED  = 33,
+  RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED = 34,
+  RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED   = 35,
+
+  RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED          = 64,
+  RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED    = 65,
+  RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED   = 66,
+  RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED = 67,
+
+  RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED    = 96,
+  RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED        = 97,
+  RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED = 98,
+  RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED       = 99,
+  RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED        = 100,
+
+  RTC_DEVICE_PROPERTY_TASKING_SYSTEM        = 128,
+  RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED = 129
+};
+
+/* Gets a device property. */
+RTC_API uniform intptr_t rtcGetDeviceProperty(RTCDevice device, uniform RTCDeviceProperty prop);
+
+/* Sets a device property. */
+RTC_API void rtcSetDeviceProperty(RTCDevice device, const uniform RTCDeviceProperty prop, uniform intptr_t value);
+
+/* Error codes */
+enum RTCError
+{
+  RTC_ERROR_NONE              = 0,
+  RTC_ERROR_UNKNOWN           = 1,
+  RTC_ERROR_INVALID_ARGUMENT  = 2,
+  RTC_ERROR_INVALID_OPERATION = 3,
+  RTC_ERROR_OUT_OF_MEMORY     = 4,
+  RTC_ERROR_UNSUPPORTED_CPU   = 5,
+  RTC_ERROR_CANCELLED         = 6
+};
+
+/* Returns the error code. */
+RTC_API uniform RTCError rtcGetDeviceError(RTCDevice device);
+
+/* Error callback function */
+typedef unmasked void (*uniform RTCErrorFunction)(void* uniform userPtr, uniform RTCError code, const uniform int8* uniform str);
+
+/* Sets the error callback function. */
+RTC_API void rtcSetDeviceErrorFunction(RTCDevice device, uniform RTCErrorFunction error, void* uniform userPtr);
+
+/* Memory monitor callback function */
+typedef uniform bool (*uniform RTCMemoryMonitorFunction)(uniform intptr_t bytes, uniform bool post);
+
+/* Sets the memory monitor callback function. */
+RTC_API void rtcSetDeviceMemoryMonitorFunction(RTCDevice device, RTCMemoryMonitorFunction memoryMonitor, void* uniform userPtr);
+
+#endif

+ 379 - 0
build2/install/include/embree3/rtcore_geometry.h

@@ -0,0 +1,379 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_buffer.h"
+
+RTC_NAMESPACE_BEGIN
+
+/* Opaque scene type */
+typedef struct RTCSceneTy* RTCScene;
+
+/* Opaque geometry type */
+typedef struct RTCGeometryTy* RTCGeometry;
+
+/* Types of geometries */
+enum RTCGeometryType
+{
+  RTC_GEOMETRY_TYPE_TRIANGLE = 0, // triangle mesh
+  RTC_GEOMETRY_TYPE_QUAD     = 1, // quad (triangle pair) mesh
+  RTC_GEOMETRY_TYPE_GRID     = 2, // grid mesh
+
+  RTC_GEOMETRY_TYPE_SUBDIVISION = 8, // Catmull-Clark subdivision surface
+
+  RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE   = 17, // flat (ribbon-like) linear curves
+
+  RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE  = 24, // round (tube-like) Bezier curves
+  RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE   = 25, // flat (ribbon-like) Bezier curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE  = 26, // flat normal-oriented Bezier curves
+  
+  RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE = 32, // round (tube-like) B-spline curves
+  RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE  = 33, // flat (ribbon-like) B-spline curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE  = 34, // flat normal-oriented B-spline curves
+
+  RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE = 40, // round (tube-like) Hermite curves
+  RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE  = 41, // flat (ribbon-like) Hermite curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE  = 42, // flat normal-oriented Hermite curves
+
+  RTC_GEOMETRY_TYPE_SPHERE_POINT = 50,
+  RTC_GEOMETRY_TYPE_DISC_POINT = 51,
+  RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT = 52,
+
+  RTC_GEOMETRY_TYPE_USER     = 120, // user-defined geometry
+  RTC_GEOMETRY_TYPE_INSTANCE = 121  // scene instance
+};
+
+/* Interpolation modes for subdivision surfaces */
+enum RTCSubdivisionMode
+{
+  RTC_SUBDIVISION_MODE_NO_BOUNDARY     = 0,
+  RTC_SUBDIVISION_MODE_SMOOTH_BOUNDARY = 1,
+  RTC_SUBDIVISION_MODE_PIN_CORNERS     = 2,
+  RTC_SUBDIVISION_MODE_PIN_BOUNDARY    = 3,
+  RTC_SUBDIVISION_MODE_PIN_ALL         = 4,
+};
+
+/* Curve segment flags */
+enum RTCCurveFlags
+{
+  RTC_CURVE_FLAG_NEIGHBOR_LEFT  = (1 << 0), 
+  RTC_CURVE_FLAG_NEIGHBOR_RIGHT = (1 << 1) 
+};
+
+/* Arguments for RTCBoundsFunction */
+struct RTCBoundsFunctionArguments
+{
+  void* geometryUserPtr;
+  unsigned int primID;
+  unsigned int timeStep;
+  struct RTCBounds* bounds_o;
+};
+
+/* Bounding callback function */
+typedef void (*RTCBoundsFunction)(const struct RTCBoundsFunctionArguments* args);
+
+/* Arguments for RTCIntersectFunctionN */
+struct RTCIntersectFunctionNArguments
+{
+  int* valid;
+  void* geometryUserPtr;
+  unsigned int primID;
+  struct RTCIntersectContext* context;
+  struct RTCRayHitN* rayhit;
+  unsigned int N;
+};
+
+/* Intersection callback function */
+typedef void (*RTCIntersectFunctionN)(const struct RTCIntersectFunctionNArguments* args);
+
+/* Arguments for RTCOccludedFunctionN */
+struct RTCOccludedFunctionNArguments
+{
+  int* valid;
+  void* geometryUserPtr;
+  unsigned int primID;
+  struct RTCIntersectContext* context;
+  struct RTCRayN* ray;
+  unsigned int N;
+};
+
+/* Occlusion callback function */
+typedef void (*RTCOccludedFunctionN)(const struct RTCOccludedFunctionNArguments* args);
+
+/* Arguments for RTCDisplacementFunctionN */
+struct RTCDisplacementFunctionNArguments
+{
+  void* geometryUserPtr;
+  RTCGeometry geometry;
+  unsigned int primID;
+  unsigned int timeStep;
+  const float* u;
+  const float* v;
+  const float* Ng_x;
+  const float* Ng_y;
+  const float* Ng_z;
+  float* P_x;
+  float* P_y;
+  float* P_z;
+  unsigned int N;
+};
+
+/* Displacement mapping callback function */
+typedef void (*RTCDisplacementFunctionN)(const struct RTCDisplacementFunctionNArguments* args);
+
+/* Creates a new geometry of specified type. */
+RTC_API RTCGeometry rtcNewGeometry(RTCDevice device, enum RTCGeometryType type);
+
+/* Retains the geometry (increments the reference count). */
+RTC_API void rtcRetainGeometry(RTCGeometry geometry);
+
+/* Releases the geometry (decrements the reference count) */
+RTC_API void rtcReleaseGeometry(RTCGeometry geometry);
+
+/* Commits the geometry. */
+RTC_API void rtcCommitGeometry(RTCGeometry geometry);
+
+
+/* Enables the geometry. */
+RTC_API void rtcEnableGeometry(RTCGeometry geometry);
+
+/* Disables the geometry. */
+RTC_API void rtcDisableGeometry(RTCGeometry geometry);
+
+
+/* Sets the number of motion blur time steps of the geometry. */
+RTC_API void rtcSetGeometryTimeStepCount(RTCGeometry geometry, unsigned int timeStepCount);
+
+/* Sets the motion blur time range of the geometry. */
+RTC_API void rtcSetGeometryTimeRange(RTCGeometry geometry, float startTime, float endTime);
+  
+/* Sets the number of vertex attributes of the geometry. */
+RTC_API void rtcSetGeometryVertexAttributeCount(RTCGeometry geometry, unsigned int vertexAttributeCount);
+
+/* Sets the ray mask of the geometry. */
+RTC_API void rtcSetGeometryMask(RTCGeometry geometry, unsigned int mask);
+
+/* Sets the build quality of the geometry. */
+RTC_API void rtcSetGeometryBuildQuality(RTCGeometry geometry, enum RTCBuildQuality quality);
+
+
+/* Sets a geometry buffer. */
+RTC_API void rtcSetGeometryBuffer(RTCGeometry geometry, enum RTCBufferType type, unsigned int slot, enum RTCFormat format, RTCBuffer buffer, size_t byteOffset, size_t byteStride, size_t itemCount);
+
+/* Sets a shared geometry buffer. */
+RTC_API void rtcSetSharedGeometryBuffer(RTCGeometry geometry, enum RTCBufferType type, unsigned int slot, enum RTCFormat format, const void* ptr, size_t byteOffset, size_t byteStride, size_t itemCount);
+
+/* Creates and sets a new geometry buffer. */
+RTC_API void* rtcSetNewGeometryBuffer(RTCGeometry geometry, enum RTCBufferType type, unsigned int slot, enum RTCFormat format, size_t byteStride, size_t itemCount);
+
+/* Returns the pointer to the data of a buffer. */
+RTC_API void* rtcGetGeometryBufferData(RTCGeometry geometry, enum RTCBufferType type, unsigned int slot);
+
+/* Updates a geometry buffer. */
+RTC_API void rtcUpdateGeometryBuffer(RTCGeometry geometry, enum RTCBufferType type, unsigned int slot);
+
+
+/* Sets the intersection filter callback function of the geometry. */
+RTC_API void rtcSetGeometryIntersectFilterFunction(RTCGeometry geometry, RTCFilterFunctionN filter);
+
+/* Sets the occlusion filter callback function of the geometry. */
+RTC_API void rtcSetGeometryOccludedFilterFunction(RTCGeometry geometry, RTCFilterFunctionN filter);
+
+/* Sets the user-defined data pointer of the geometry. */
+RTC_API void rtcSetGeometryUserData(RTCGeometry geometry, void* ptr);
+
+/* Gets the user-defined data pointer of the geometry. */
+RTC_API void* rtcGetGeometryUserData(RTCGeometry geometry);
+
+
+/* Sets the number of primitives of a user geometry. */
+RTC_API void rtcSetGeometryUserPrimitiveCount(RTCGeometry geometry, unsigned int userPrimitiveCount);
+
+/* Sets the bounding callback function to calculate bounding boxes for user primitives. */
+RTC_API void rtcSetGeometryBoundsFunction(RTCGeometry geometry, RTCBoundsFunction bounds, void* userPtr);
+
+/* Set the intersect callback function of a user geometry. */
+RTC_API void rtcSetGeometryIntersectFunction(RTCGeometry geometry, RTCIntersectFunctionN intersect);
+
+/* Set the occlusion callback function of a user geometry. */
+RTC_API void rtcSetGeometryOccludedFunction(RTCGeometry geometry, RTCOccludedFunctionN occluded);
+
+/* Invokes the intersection filter from the intersection callback function. */
+RTC_API void rtcFilterIntersection(const struct RTCIntersectFunctionNArguments* args, const struct RTCFilterFunctionNArguments* filterArgs);
+
+/* Invokes the occlusion filter from the occlusion callback function. */
+RTC_API void rtcFilterOcclusion(const struct RTCOccludedFunctionNArguments* args, const struct RTCFilterFunctionNArguments* filterArgs);
+
+
+/* Sets the instanced scene of an instance geometry. */
+RTC_API void rtcSetGeometryInstancedScene(RTCGeometry geometry, RTCScene scene);
+
+/* Sets the transformation of an instance for the specified time step. */
+RTC_API void rtcSetGeometryTransform(RTCGeometry geometry, unsigned int timeStep, enum RTCFormat format, const void* xfm);
+
+/* Returns the interpolated transformation of an instance for the specified time. */
+RTC_API void rtcGetGeometryTransform(RTCGeometry geometry, float time, enum RTCFormat format, void* xfm);
+
+
+/* Sets the uniform tessellation rate of the geometry. */
+RTC_API void rtcSetGeometryTessellationRate(RTCGeometry geometry, float tessellationRate);
+
+/* Sets the number of topologies of a subdivision surface. */
+RTC_API void rtcSetGeometryTopologyCount(RTCGeometry geometry, unsigned int topologyCount);
+
+/* Sets the subdivision interpolation mode. */
+RTC_API void rtcSetGeometrySubdivisionMode(RTCGeometry geometry, unsigned int topologyID, enum RTCSubdivisionMode mode);
+
+/* Binds a vertex attribute to a topology of the geometry. */
+RTC_API void rtcSetGeometryVertexAttributeTopology(RTCGeometry geometry, unsigned int vertexAttributeID, unsigned int topologyID);
+
+/* Sets the displacement callback function of a subdivision surface. */
+RTC_API void rtcSetGeometryDisplacementFunction(RTCGeometry geometry, RTCDisplacementFunctionN displacement);
+
+/* Returns the first half edge of a face. */
+RTC_API unsigned int rtcGetGeometryFirstHalfEdge(RTCGeometry geometry, unsigned int faceID);
+
+/* Returns the face the half edge belongs to. */
+RTC_API unsigned int rtcGetGeometryFace(RTCGeometry geometry, unsigned int edgeID);
+
+/* Returns next half edge. */
+RTC_API unsigned int rtcGetGeometryNextHalfEdge(RTCGeometry geometry, unsigned int edgeID);
+
+/* Returns previous half edge. */
+RTC_API unsigned int rtcGetGeometryPreviousHalfEdge(RTCGeometry geometry, unsigned int edgeID);
+
+/* Returns opposite half edge. */
+RTC_API unsigned int rtcGetGeometryOppositeHalfEdge(RTCGeometry geometry, unsigned int topologyID, unsigned int edgeID);
+
+
+/* Arguments for rtcInterpolate */
+struct RTCInterpolateArguments
+{
+  RTCGeometry geometry;
+  unsigned int primID;
+  float u;
+  float v;
+  enum RTCBufferType bufferType;
+  unsigned int bufferSlot;
+  float* P;
+  float* dPdu;
+  float* dPdv;
+  float* ddPdudu;
+  float* ddPdvdv;
+  float* ddPdudv;
+  unsigned int valueCount;
+};
+
+/* Interpolates vertex data to some u/v location and optionally calculates all derivatives. */
+RTC_API void rtcInterpolate(const struct RTCInterpolateArguments* args);
+
+/* Interpolates vertex data to some u/v location. */
+RTC_FORCEINLINE void rtcInterpolate0(RTCGeometry geometry, unsigned int primID, float u, float v, enum RTCBufferType bufferType, unsigned int bufferSlot, float* P, unsigned int valueCount)
+{
+  struct RTCInterpolateArguments args;
+  args.geometry = geometry;
+  args.primID = primID;
+  args.u = u;
+  args.v = v;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = P;
+  args.dPdu = NULL;
+  args.dPdv = NULL;
+  args.ddPdudu = NULL;
+  args.ddPdvdv = NULL;
+  args.ddPdudv = NULL;
+  args.valueCount = valueCount;
+  rtcInterpolate(&args);
+}
+
+/* Interpolates vertex data to some u/v location and calculates first order derivatives. */
+RTC_FORCEINLINE void rtcInterpolate1(RTCGeometry geometry, unsigned int primID, float u, float v, enum RTCBufferType bufferType, unsigned int bufferSlot,
+                                     float* P, float* dPdu, float* dPdv, unsigned int valueCount)
+{
+  struct RTCInterpolateArguments args;
+  args.geometry = geometry;
+  args.primID = primID;
+  args.u = u;
+  args.v = v;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = P;
+  args.dPdu = dPdu;
+  args.dPdv = dPdv;
+  args.ddPdudu = NULL;
+  args.ddPdvdv = NULL;
+  args.ddPdudv = NULL;
+  args.valueCount = valueCount;
+  rtcInterpolate(&args);
+}
+
+/* Interpolates vertex data to some u/v location and calculates first and second order derivatives. */
+RTC_FORCEINLINE void rtcInterpolate2(RTCGeometry geometry, unsigned int primID, float u, float v, enum RTCBufferType bufferType, unsigned int bufferSlot,
+                                     float* P, float* dPdu, float* dPdv, float* ddPdudu, float* ddPdvdv, float* ddPdudv, unsigned int valueCount)
+{
+  struct RTCInterpolateArguments args;
+  args.geometry = geometry;
+  args.primID = primID;
+  args.u = u;
+  args.v = v;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = P;
+  args.dPdu = dPdu;
+  args.dPdv = dPdv;
+  args.ddPdudu = ddPdudu;
+  args.ddPdvdv = ddPdvdv;
+  args.ddPdudv = ddPdudv;
+  args.valueCount = valueCount;
+  rtcInterpolate(&args);
+}
+
+/* Arguments for rtcInterpolateN */
+struct RTCInterpolateNArguments
+{
+  RTCGeometry geometry;
+  const void* valid;
+  const unsigned int* primIDs;
+  const float* u;
+  const float* v;
+  unsigned int N;
+  enum RTCBufferType bufferType;
+  unsigned int bufferSlot;
+  float* P;
+  float* dPdu;
+  float* dPdv;
+  float* ddPdudu;
+  float* ddPdvdv;
+  float* ddPdudv;
+  unsigned int valueCount;
+};
+
+/* Interpolates vertex data to an array of u/v locations. */
+RTC_API void rtcInterpolateN(const struct RTCInterpolateNArguments* args);
+
+/* RTCGrid primitive for grid mesh */
+struct RTCGrid
+{
+  unsigned int startVertexID;
+  unsigned int stride;
+  unsigned short width,height; // max is a 32k x 32k grid
+};
+
+RTC_NAMESPACE_END
+
+

+ 402 - 0
build2/install/include/embree3/rtcore_geometry.isph

@@ -0,0 +1,402 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __EMBREE_GEOMETRY_ISPH__
+#define __EMBREE_GEOMETRY_ISPH__
+
+#include "rtcore_buffer.isph"
+
+/* Opaque scene type */
+typedef uniform struct RTCSceneTy* uniform RTCScene;
+
+/* Opaque geometry type */
+typedef uniform struct RTCGeometryTy* uniform RTCGeometry;
+
+/* Types of geometries */
+enum RTCGeometryType
+{
+  RTC_GEOMETRY_TYPE_TRIANGLE = 0, // triangle mesh
+  RTC_GEOMETRY_TYPE_QUAD     = 1, // quad (triangle pair) mesh
+  RTC_GEOMETRY_TYPE_GRID     = 2, // grid mesh
+
+  RTC_GEOMETRY_TYPE_SUBDIVISION = 8, // Catmull-Clark subdivision surface
+
+  RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE   = 17, // flat (ribbon-like) linear curves
+
+  RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE  = 24, // round (tube-like) Bezier curves
+  RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE   = 25, // flat (ribbon-like) Bezier curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE  = 26, // flat normal-oriented Bezier curves
+
+  RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE = 32, // round (tube-like) B-spline curves
+  RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE  = 33, // flat (ribbon-like) B-spline curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE  = 34, // flat normal-oriented B-spline curves
+
+  RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE = 40, // round (tube-like) Hermite curves
+  RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE  = 41, // flat (ribbon-like) Hermite curves
+  RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE  = 42, // flat normal-oriented Hermite curves
+
+  RTC_GEOMETRY_TYPE_SPHERE_POINT = 50,
+  RTC_GEOMETRY_TYPE_DISC_POINT = 51,
+  RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT = 52,
+
+  RTC_GEOMETRY_TYPE_USER     = 120, // user-defined geometry
+  RTC_GEOMETRY_TYPE_INSTANCE = 121  // scene instance
+};
+
+/* Interpolation modes for subdivision surfaces */
+enum RTCSubdivisionMode
+{
+  RTC_SUBDIVISION_MODE_NO_BOUNDARY     = 0,
+  RTC_SUBDIVISION_MODE_SMOOTH_BOUNDARY = 1,
+  RTC_SUBDIVISION_MODE_PIN_CORNERS     = 2,
+  RTC_SUBDIVISION_MODE_PIN_BOUNDARY    = 3,
+  RTC_SUBDIVISION_MODE_PIN_ALL         = 4,
+};
+
+/* Curve segment flags */
+enum RTCCurveFlags
+{
+  RTC_CURVE_FLAG_NEIGHBOR_LEFT  = (1 << 0), 
+  RTC_CURVE_FLAG_NEIGHBOR_RIGHT = (1 << 1) 
+};
+
+/* Arguments for RTCBoundsFunction */
+struct RTCBoundsFunctionArguments
+{
+  void* uniform geometryUserPtr;
+  uniform unsigned int primID;
+  uniform unsigned int timeStep;
+  uniform RTCBounds* uniform bounds_o;
+};
+
+/* Bounding callback function */
+typedef unmasked void (*RTCBoundsFunction)(const struct RTCBoundsFunctionArguments* uniform args);
+
+/* Arguments for RTCIntersectFunctionN */
+struct RTCIntersectFunctionNArguments
+{
+  uniform int* uniform valid;
+  void* uniform geometryUserPtr;
+  uniform unsigned int primID;
+  uniform RTCIntersectContext* uniform context;
+  RTCRayHitN* uniform rayhit;
+  uniform unsigned int N;
+};
+
+/* Intersection callback function */
+typedef unmasked void (*RTCIntersectFunctionN)(const struct RTCIntersectFunctionNArguments* uniform args);
+
+/* Arguments for RTCOccludedFunctionN */
+struct RTCOccludedFunctionNArguments
+{
+  uniform int* uniform valid;
+  void* uniform geometryUserPtr;
+  uniform unsigned int primID;
+  uniform RTCIntersectContext* uniform context;
+  RTCRayN* uniform ray;
+  uniform unsigned int N;
+};
+
+/* Occlusion callback function */
+typedef unmasked void (*RTCOccludedFunctionN)(const struct RTCOccludedFunctionNArguments* uniform args);
+
+/* Arguments for RTCDisplacementFunctionN */
+struct RTCDisplacementFunctionNArguments
+{
+  void* uniform geometryUserPtr;
+  RTCGeometry geometry;
+  uniform unsigned int primID;
+  uniform unsigned int timeStep;
+  uniform const float* uniform u;
+  uniform const float* uniform v;
+  uniform const float* uniform Ng_x;
+  uniform const float* uniform Ng_y;
+  uniform const float* uniform Ng_z;
+  uniform float* uniform P_x;
+  uniform float* uniform P_y;
+  uniform float* uniform P_z;
+  uniform unsigned int N;
+};
+
+/* Displacement mapping callback function */
+typedef unmasked void (*RTCDisplacementFunctionN)(const struct RTCDisplacementFunctionNArguments* uniform args);
+
+/* Creates a new geometry of specified type. */
+RTC_API RTCGeometry rtcNewGeometry(RTCDevice device, uniform RTCGeometryType type);
+
+/* Retains the geometry (increments the reference count). */
+RTC_API void rtcRetainGeometry(RTCGeometry geometry);
+
+/* Releases the geometry (decrements the reference count). */
+RTC_API void rtcReleaseGeometry(RTCGeometry geometry);
+
+/* Commits the geometry. */
+RTC_API void rtcCommitGeometry(RTCGeometry geometry);
+
+
+/* Enables the geometry. */
+RTC_API void rtcEnableGeometry(RTCGeometry geometry);
+
+/* Disables the geometry. */
+RTC_API void rtcDisableGeometry(RTCGeometry geometry);
+
+
+/* Sets the number of motion blur time steps of the geometry. */
+RTC_API void rtcSetGeometryTimeStepCount(RTCGeometry geometry, uniform unsigned int timeStepCount);
+
+/* Sets the motion blur time range of the geometry. */
+RTC_API void rtcSetGeometryTimeRange(RTCGeometry geometry, uniform float startTime, uniform float endTime);
+ 
+/* Sets the number of vertex attributes of the geometry. */
+RTC_API void rtcSetGeometryVertexAttributeCount(RTCGeometry geometry, uniform unsigned int vertexAttributeCount);
+
+/* Sets the ray mask of the geometry. */
+RTC_API void rtcSetGeometryMask(RTCGeometry geometry, uniform unsigned int mask);
+
+/* Sets the build quality of the geometry. */
+RTC_API void rtcSetGeometryBuildQuality(RTCGeometry geometry, uniform RTCBuildQuality quality);
+
+
+/* Sets a geometry buffer. */
+RTC_API void rtcSetGeometryBuffer(RTCGeometry geometry, uniform RTCBufferType type, uniform unsigned int slot, uniform RTCFormat format, uniform RTCBuffer buffer, uniform uintptr_t byteOffset, uniform uintptr_t byteStride, uniform uintptr_t itemCount);
+
+/* Sets a shared geometry buffer. */
+RTC_API void rtcSetSharedGeometryBuffer(RTCGeometry geometry, uniform RTCBufferType type, uniform unsigned int slot, uniform RTCFormat format, const void* uniform ptr, uniform uintptr_t byteOffset, uniform uintptr_t byteStride, uniform uintptr_t itemCount);
+
+/* Creates and sets a new geometry buffer. */
+RTC_API void* uniform rtcSetNewGeometryBuffer(RTCGeometry geometry, uniform RTCBufferType type, uniform unsigned int slot, uniform RTCFormat format, uniform uintptr_t byteStride, uniform uintptr_t itemCount);
+
+/* Returns the pointer to the data of a buffer. */
+RTC_API void* uniform rtcGetGeometryBufferData(RTCGeometry geometry, uniform RTCBufferType type, uniform unsigned int slot);
+
+/* Updates a geometry buffer. */
+RTC_API void rtcUpdateGeometryBuffer(RTCGeometry geometry, uniform RTCBufferType type, uniform unsigned int slot);
+
+
+/* Sets the intersection filter callback function of the geometry. */
+RTC_API void rtcSetGeometryIntersectFilterFunction(RTCGeometry geometry, uniform RTCFilterFunctionN filter);
+
+/* Sets the occlusion filter callback function of the geometry. */
+RTC_API void rtcSetGeometryOccludedFilterFunction(RTCGeometry geometry, uniform RTCFilterFunctionN filter);
+
+/* Sets the user-defined data pointer of the geometry. */
+RTC_API void rtcSetGeometryUserData(RTCGeometry geometry, void* uniform ptr);
+
+/* Gets the user-defined data pointer of the geometry. */
+RTC_API void* uniform rtcGetGeometryUserData(RTCGeometry geometry);
+
+
+/* Sets the number of primitives of a user geometry. */
+RTC_API void rtcSetGeometryUserPrimitiveCount(RTCGeometry geometry, uniform unsigned int userPrimitiveCount);
+
+/* Sets the bounding callback function to calculate bounding boxes for user primitives. */
+RTC_API void rtcSetGeometryBoundsFunction(RTCGeometry geometry, uniform RTCBoundsFunction bounds, void* uniform userPtr);
+
+/* Set the intersect callback function of a user geometry. */
+RTC_API void rtcSetGeometryIntersectFunction(RTCGeometry geometry, uniform RTCIntersectFunctionN intersect);
+
+/* Set the occlusion callback function of a user geometry. */
+RTC_API void rtcSetGeometryOccludedFunction(RTCGeometry geometry, uniform RTCOccludedFunctionN occluded);
+
+/* Invokes the intersection filter from the intersection callback function. */
+RTC_API void rtcFilterIntersection(const uniform struct RTCIntersectFunctionNArguments* uniform args, const uniform RTCFilterFunctionNArguments* uniform filterArgs);
+
+/* Invokes the occlusion filter from the occlusion callback function. */
+RTC_API void rtcFilterOcclusion(const uniform struct RTCOccludedFunctionNArguments* uniform args, const uniform RTCFilterFunctionNArguments* uniform filterArgs);
+
+
+/* Sets the instanced scene of an instance geometry. */
+RTC_API void rtcSetGeometryInstancedScene(RTCGeometry geometry, RTCScene scene);
+
+/* Sets the transformation of an instance for the specified time step. */
+RTC_API void rtcSetGeometryTransform(RTCGeometry geometry, uniform unsigned int timeStep, uniform RTCFormat format, const void* uniform xfm);
+
+/* Returns the interpolated transformation of an instance for the specified time. */
+RTC_API void rtcGetGeometryTransform(RTCGeometry geometry, uniform float time, uniform RTCFormat format, void* uniform xfm);
+
+
+/* Sets the uniform tessellation rate of the geometry. */
+RTC_API void rtcSetGeometryTessellationRate(RTCGeometry geometry, uniform float tessellationRate);
+
+/* Sets the number of topologies of a subdivision surface. */
+RTC_API void rtcSetGeometryTopologyCount(RTCGeometry geometry, uniform unsigned int topologyCount);
+
+/* Sets the subdivision interpolation mode. */
+RTC_API void rtcSetGeometrySubdivisionMode(RTCGeometry geometry, uniform unsigned int topologyID, uniform RTCSubdivisionMode mode);
+
+/* Binds a vertex attribute to a topology of the geometry. */
+RTC_API void rtcSetGeometryVertexAttributeTopology(RTCGeometry geometry, uniform unsigned int vertexAttributeID, uniform unsigned int topologyID);
+
+/* Sets the displacement callback function of a subdivision surface. */
+RTC_API void rtcSetGeometryDisplacementFunction(RTCGeometry geometry, uniform RTCDisplacementFunctionN displacement);
+
+/* Returns the first half edge of a face. */
+RTC_API uniform unsigned int rtcGetGeometryFirstHalfEdge(RTCGeometry geometry, uniform unsigned int faceID);
+
+/* Returns the face the half edge belongs to. */
+RTC_API uniform unsigned int rtcGetGeometryFace(RTCGeometry geometry, uniform unsigned int edgeID);
+
+/* Returns next half edge. */
+RTC_API uniform unsigned int rtcGetGeometryNextHalfEdge(RTCGeometry geometry, uniform unsigned int edgeID);
+
+/* Returns previous half edge. */
+RTC_API uniform unsigned int rtcGetGeometryPreviousHalfEdge(RTCGeometry geometry, uniform unsigned int edgeID);
+
+/* Returns opposite half edge. */
+RTC_API uniform unsigned int rtcGetGeometryOppositeHalfEdge(RTCGeometry geometry, uniform unsigned int topologyID, uniform unsigned int edgeID);
+
+
+/* Arguments for rtcInterpolate */
+struct RTCInterpolateArguments
+{
+  RTCGeometry geometry;
+  unsigned int primID;
+  float u;
+  float v;
+  RTCBufferType bufferType;
+  unsigned int bufferSlot;
+  float* P;
+  float* dPdu;
+  float* dPdv;
+  float* ddPdudu;
+  float* ddPdvdv;
+  float* ddPdudv;
+  unsigned int valueCount;
+};
+
+/* Interpolates vertex data to some u/v location and optionally calculates all derivatives. */
+RTC_API void rtcInterpolate(const RTCInterpolateArguments* uniform args);
+
+/* Arguments for rtcInterpolateN */
+struct RTCInterpolateNArguments
+{
+  RTCGeometry geometry;
+  const void* valid;
+  const unsigned int* primIDs;
+  const float* u;
+  const float* v;
+  unsigned int N;
+  RTCBufferType bufferType;
+  unsigned int bufferSlot;
+  float* P;
+  float* dPdu;
+  float* dPdv;
+  float* ddPdudu;
+  float* ddPdvdv;
+  float* ddPdudv;
+  unsigned int valueCount;
+};
+
+/* Interpolates vertex data to an array of u/v locations and calculates all derivatives. */
+RTC_API void rtcInterpolateN(const RTCInterpolateNArguments* uniform args);
+
+/* Interpolates vertex data to an array of u/v locations. */
+RTC_FORCEINLINE void rtcInterpolateV0(RTCGeometry geometry, varying unsigned int primID, varying float u, varying float v, 
+                                      uniform RTCBufferType bufferType, uniform unsigned int bufferSlot,
+                                      varying float* uniform P,
+                                      uniform unsigned int valueCount)
+{
+  varying bool mask = __mask;
+  unmasked {
+    varying int imask = mask ? -1 : 0;
+  }
+  uniform RTCInterpolateNArguments args;
+  args.geometry = geometry;
+  args.valid = (const void* uniform)&imask;
+  args.primIDs = (const uniform unsigned int* uniform)&primID;
+  args.u = (const uniform float* uniform)&u;
+  args.v = (const uniform float* uniform)&v;
+  args.N = sizeof(varying float)/4;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = (uniform float* uniform)P;
+  args.dPdu = NULL;
+  args.dPdv = NULL;
+  args.ddPdudu = NULL;
+  args.ddPdvdv = NULL;
+  args.ddPdudv = NULL;
+  args.valueCount = valueCount;
+  rtcInterpolateN(&args);
+}
+
+/* Interpolates vertex data to an array of u/v locations and calculates first order derivatives. */
+RTC_FORCEINLINE void rtcInterpolateV1(RTCGeometry geometry, varying unsigned int primID, varying float u, varying float v, 
+                                      uniform RTCBufferType bufferType, uniform unsigned int bufferSlot,
+                                      varying float* uniform P, varying float* uniform dPdu, varying float* uniform dPdv,
+                                      uniform unsigned int valueCount)
+{
+  varying bool mask = __mask;
+  unmasked {
+    varying int imask = mask ? -1 : 0;
+  }
+  uniform RTCInterpolateNArguments args;
+  args.geometry = geometry;
+  args.valid = (const void* uniform)&imask;
+  args.primIDs = (const uniform unsigned int* uniform)&primID;
+  args.u = (const uniform float* uniform)&u;
+  args.v = (const uniform float* uniform)&v;
+  args.N = sizeof(varying float)/4;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = (uniform float* uniform)P;
+  args.dPdu = (uniform float* uniform)dPdu;
+  args.dPdv = (uniform float* uniform)dPdv;
+  args.ddPdudu = NULL;
+  args.ddPdvdv = NULL;
+  args.ddPdudv = NULL;
+  args.valueCount = valueCount;
+  rtcInterpolateN(&args);
+}
+
+/* Interpolates vertex data to an array of u/v locations and calculates first and second order derivatives. */
+RTC_FORCEINLINE void rtcInterpolateV2(RTCGeometry geometry, varying unsigned int primID, varying float u, varying float v, 
+                                      uniform RTCBufferType bufferType, uniform unsigned int bufferSlot,
+                                      varying float* uniform P, varying float* uniform dPdu, varying float* uniform dPdv,
+                                      varying float* uniform ddPdudu, varying float* uniform ddPdvdv, varying float* uniform ddPdudv,
+                                      uniform unsigned int valueCount)
+{
+  varying bool mask = __mask;
+  unmasked {
+    varying int imask = mask ? -1 : 0;
+  }
+  uniform RTCInterpolateNArguments args;
+  args.geometry = geometry;
+  args.valid = (const void* uniform)&imask;
+  args.primIDs = (const uniform unsigned int* uniform)&primID;
+  args.u = (const uniform float* uniform)&u;
+  args.v = (const uniform float* uniform)&v;
+  args.N = sizeof(varying float)/4;
+  args.bufferType = bufferType;
+  args.bufferSlot = bufferSlot;
+  args.P = (uniform float* uniform)P;
+  args.dPdu = (uniform float* uniform)dPdu;
+  args.dPdv = (uniform float* uniform)dPdv;
+  args.ddPdudu = (uniform float* uniform)ddPdudu;
+  args.ddPdvdv = (uniform float* uniform)ddPdvdv;
+  args.ddPdudv = (uniform float* uniform)ddPdudv;
+  args.valueCount = valueCount;
+  rtcInterpolateN(&args);
+}
+
+/* RTCGrid primitive for grid mesh */
+struct RTCGrid
+{
+  unsigned int startVertexID;
+  unsigned int stride;
+  int16 width,height; // max is a 32k x 32k grid
+};
+
+#endif

+ 391 - 0
build2/install/include/embree3/rtcore_ray.h

@@ -0,0 +1,391 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_common.h"
+
+RTC_NAMESPACE_BEGIN
+
+/* Ray structure for a single ray */
+struct RTC_ALIGN(16) RTCRay
+{
+  float org_x;        // x coordinate of ray origin
+  float org_y;        // y coordinate of ray origin
+  float org_z;        // z coordinate of ray origin
+  float tnear;        // start of ray segment
+
+  float dir_x;        // x coordinate of ray direction
+  float dir_y;        // y coordinate of ray direction
+  float dir_z;        // z coordinate of ray direction
+  float time;         // time of this ray for motion blur
+
+  float tfar;         // end of ray segment (set to hit distance)
+  unsigned int mask;  // ray mask
+  unsigned int id;    // ray ID
+  unsigned int flags; // ray flags
+};
+
+/* Hit structure for a single ray */
+struct RTCHit
+{
+  float Ng_x;          // x coordinate of geometry normal
+  float Ng_y;          // y coordinate of geometry normal
+  float Ng_z;          // z coordinate of geometry normal
+
+  float u;             // barycentric u coordinate of hit
+  float v;             // barycentric v coordinate of hit
+
+  unsigned int primID; // primitive ID
+  unsigned int geomID; // geometry ID
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT]; // instance ID
+};
+
+/* Combined ray/hit structure for a single ray */
+struct RTCRayHit
+{
+  struct RTCRay ray;
+  struct RTCHit hit;
+};
+
+/* Ray structure for a packet of 4 rays */
+struct RTC_ALIGN(16) RTCRay4
+{
+  float org_x[4];
+  float org_y[4];
+  float org_z[4];
+  float tnear[4];
+
+  float dir_x[4];
+  float dir_y[4];
+  float dir_z[4];
+  float time[4];
+
+  float tfar[4];
+  unsigned int mask[4];
+  unsigned int id[4];
+  unsigned int flags[4];
+};
+
+/* Hit structure for a packet of 4 rays */
+struct RTC_ALIGN(16) RTCHit4
+{
+  float Ng_x[4];
+  float Ng_y[4];
+  float Ng_z[4];
+
+  float u[4];
+  float v[4];
+
+  unsigned int primID[4];
+  unsigned int geomID[4];
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT][4];
+};
+
+/* Combined ray/hit structure for a packet of 4 rays */
+struct RTCRayHit4
+{
+  struct RTCRay4 ray;
+  struct RTCHit4 hit;
+};
+
+/* Ray structure for a packet of 8 rays */
+struct RTC_ALIGN(32) RTCRay8
+{
+  float org_x[8];
+  float org_y[8];
+  float org_z[8];
+  float tnear[8];
+
+  float dir_x[8];
+  float dir_y[8];
+  float dir_z[8];
+  float time[8];
+
+  float tfar[8];
+  unsigned int mask[8];
+  unsigned int id[8];
+  unsigned int flags[8];
+};
+
+/* Hit structure for a packet of 8 rays */
+struct RTC_ALIGN(32) RTCHit8
+{
+  float Ng_x[8];
+  float Ng_y[8];
+  float Ng_z[8];
+
+  float u[8];
+  float v[8];
+
+  unsigned int primID[8];
+  unsigned int geomID[8];
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT][8];
+};
+
+/* Combined ray/hit structure for a packet of 8 rays */
+struct RTCRayHit8
+{
+  struct RTCRay8 ray;
+  struct RTCHit8 hit;
+};
+
+/* Ray structure for a packet of 16 rays */
+struct RTC_ALIGN(64) RTCRay16
+{
+  float org_x[16];
+  float org_y[16];
+  float org_z[16];
+  float tnear[16];
+
+  float dir_x[16];
+  float dir_y[16];
+  float dir_z[16];
+  float time[16];
+
+  float tfar[16];
+  unsigned int mask[16];
+  unsigned int id[16];
+  unsigned int flags[16];
+};
+
+/* Hit structure for a packet of 16 rays */
+struct RTC_ALIGN(64) RTCHit16
+{
+  float Ng_x[16];
+  float Ng_y[16];
+  float Ng_z[16];
+
+  float u[16];
+  float v[16];
+
+  unsigned int primID[16];
+  unsigned int geomID[16];
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT][16];
+};
+
+/* Combined ray/hit structure for a packet of 16 rays */
+struct RTCRayHit16
+{
+  struct RTCRay16 ray;
+  struct RTCHit16 hit;
+};
+
+/* Ray structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCRayNp
+{
+  float* org_x;
+  float* org_y;
+  float* org_z;
+  float* tnear;
+
+  float* dir_x;
+  float* dir_y;
+  float* dir_z;
+  float* time;
+
+  float* tfar;
+  unsigned int* mask;
+  unsigned int* id;
+  unsigned int* flags;
+};
+
+/* Hit structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCHitNp
+{
+  float* Ng_x;
+  float* Ng_y;
+  float* Ng_z;
+
+  float* u;
+  float* v;
+
+  unsigned int* primID;
+  unsigned int* geomID;
+  unsigned int* instID[RTC_MAX_INSTANCE_LEVEL_COUNT];
+};
+
+/* Combined ray/hit structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCRayHitNp
+{
+  struct RTCRayNp ray;
+  struct RTCHitNp hit;
+};
+
+struct RTCRayN;
+struct RTCHitN;
+struct RTCRayHitN;
+
+#if defined(__cplusplus)
+
+/* Helper functions to access ray packets of runtime size N */
+RTC_FORCEINLINE float& RTCRayN_org_x(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[0*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_org_y(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[1*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_org_z(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[2*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_tnear(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[3*N+i]; }
+
+RTC_FORCEINLINE float& RTCRayN_dir_x(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[4*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_dir_y(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[5*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_dir_z(RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[6*N+i]; }
+RTC_FORCEINLINE float& RTCRayN_time (RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[7*N+i]; }
+
+RTC_FORCEINLINE float&        RTCRayN_tfar (RTCRayN* ray, unsigned int N, unsigned int i) { return ((float*)ray)[8*N+i]; }
+RTC_FORCEINLINE unsigned int& RTCRayN_mask (RTCRayN* ray, unsigned int N, unsigned int i) { return ((unsigned*)ray)[9*N+i]; }
+RTC_FORCEINLINE unsigned int& RTCRayN_id   (RTCRayN* ray, unsigned int N, unsigned int i) { return ((unsigned*)ray)[10*N+i]; }
+RTC_FORCEINLINE unsigned int& RTCRayN_flags(RTCRayN* ray, unsigned int N, unsigned int i) { return ((unsigned*)ray)[11*N+i]; }
+
+/* Helper functions to access hit packets of runtime size N */
+RTC_FORCEINLINE float& RTCHitN_Ng_x(RTCHitN* hit, unsigned int N, unsigned int i) { return ((float*)hit)[0*N+i]; }
+RTC_FORCEINLINE float& RTCHitN_Ng_y(RTCHitN* hit, unsigned int N, unsigned int i) { return ((float*)hit)[1*N+i]; }
+RTC_FORCEINLINE float& RTCHitN_Ng_z(RTCHitN* hit, unsigned int N, unsigned int i) { return ((float*)hit)[2*N+i]; }
+
+RTC_FORCEINLINE float& RTCHitN_u(RTCHitN* hit, unsigned int N, unsigned int i) { return ((float*)hit)[3*N+i]; }
+RTC_FORCEINLINE float& RTCHitN_v(RTCHitN* hit, unsigned int N, unsigned int i) { return ((float*)hit)[4*N+i]; }
+
+RTC_FORCEINLINE unsigned int& RTCHitN_primID(RTCHitN* hit, unsigned int N, unsigned int i) { return ((unsigned*)hit)[5*N+i]; }
+RTC_FORCEINLINE unsigned int& RTCHitN_geomID(RTCHitN* hit, unsigned int N, unsigned int i) { return ((unsigned*)hit)[6*N+i]; }
+RTC_FORCEINLINE unsigned int& RTCHitN_instID(RTCHitN* hit, unsigned int N, unsigned int i, unsigned int l) { return ((unsigned*)hit)[7*N+i+N*l]; }
+
+/* Helper functions to extract RTCRayN and RTCHitN from RTCRayHitN */
+RTC_FORCEINLINE RTCRayN* RTCRayHitN_RayN(RTCRayHitN* rayhit, unsigned int N) { return (RTCRayN*)&((float*)rayhit)[0*N]; }
+RTC_FORCEINLINE RTCHitN* RTCRayHitN_HitN(RTCRayHitN* rayhit, unsigned int N) { return (RTCHitN*)&((float*)rayhit)[12*N]; }
+
+/* Helper structure for a ray packet of compile-time size N */
+template<int N>
+struct RTCRayNt
+{
+  float org_x[N];
+  float org_y[N];
+  float org_z[N];
+  float tnear[N];
+
+  float dir_x[N];
+  float dir_y[N];
+  float dir_z[N];
+  float time[N];
+
+  float tfar[N];
+  unsigned int mask[N];
+  unsigned int id[N];
+  unsigned int flags[N];
+};
+
+/* Helper structure for a hit packet of compile-time size N */
+template<int N>
+struct RTCHitNt
+{
+  float Ng_x[N];
+  float Ng_y[N];
+  float Ng_z[N];
+
+  float u[N];
+  float v[N];
+
+  unsigned int primID[N];
+  unsigned int geomID[N];
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT][N];
+};
+
+/* Helper structure for a combined ray/hit packet of compile-time size N */
+template<int N>
+struct RTCRayHitNt
+{
+  RTCRayNt<N> ray;
+  RTCHitNt<N> hit;
+};
+
+RTC_FORCEINLINE RTCRay rtcGetRayFromRayN(RTCRayN* rayN, unsigned int N, unsigned int i)
+{
+  RTCRay ray;
+  ray.org_x = RTCRayN_org_x(rayN,N,i);
+  ray.org_y = RTCRayN_org_y(rayN,N,i);
+  ray.org_z = RTCRayN_org_z(rayN,N,i);
+  ray.tnear = RTCRayN_tnear(rayN,N,i);
+  ray.dir_x = RTCRayN_dir_x(rayN,N,i);
+  ray.dir_y = RTCRayN_dir_y(rayN,N,i);
+  ray.dir_z = RTCRayN_dir_z(rayN,N,i);
+  ray.time  = RTCRayN_time(rayN,N,i);
+  ray.tfar  = RTCRayN_tfar(rayN,N,i);
+  ray.mask  = RTCRayN_mask(rayN,N,i);
+  ray.id    = RTCRayN_id(rayN,N,i);
+  ray.flags = RTCRayN_flags(rayN,N,i);
+  return ray;
+}
+
+RTC_FORCEINLINE RTCHit rtcGetHitFromHitN(RTCHitN* hitN, unsigned int N, unsigned int i)
+{
+  RTCHit hit;
+  hit.Ng_x   = RTCHitN_Ng_x(hitN,N,i);
+  hit.Ng_y   = RTCHitN_Ng_y(hitN,N,i);
+  hit.Ng_z   = RTCHitN_Ng_z(hitN,N,i);
+  hit.u      = RTCHitN_u(hitN,N,i);
+  hit.v      = RTCHitN_v(hitN,N,i);
+  hit.primID = RTCHitN_primID(hitN,N,i);
+  hit.geomID = RTCHitN_geomID(hitN,N,i);
+  for (unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    hit.instID[l] = RTCHitN_instID(hitN,N,i,l);
+  return hit;
+}
+
+RTC_FORCEINLINE void rtcCopyHitToHitN(RTCHitN* hitN, const RTCHit* hit, unsigned int N, unsigned int i)
+{
+  RTCHitN_Ng_x(hitN,N,i)   = hit->Ng_x;
+  RTCHitN_Ng_y(hitN,N,i)   = hit->Ng_y;
+  RTCHitN_Ng_z(hitN,N,i)   = hit->Ng_z;
+  RTCHitN_u(hitN,N,i)      = hit->u;
+  RTCHitN_v(hitN,N,i)      = hit->v;
+  RTCHitN_primID(hitN,N,i) = hit->primID;
+  RTCHitN_geomID(hitN,N,i) = hit->geomID;
+  for (unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    RTCHitN_instID(hitN,N,i,l) = hit->instID[l];
+}
+
+RTC_FORCEINLINE RTCRayHit rtcGetRayHitFromRayHitN(RTCRayHitN* rayhitN, unsigned int N, unsigned int i)
+{
+  RTCRayHit rh;
+
+  RTCRayN* ray = RTCRayHitN_RayN(rayhitN,N);
+  rh.ray.org_x = RTCRayN_org_x(ray,N,i);
+  rh.ray.org_y = RTCRayN_org_y(ray,N,i);
+  rh.ray.org_z = RTCRayN_org_z(ray,N,i);
+  rh.ray.tnear = RTCRayN_tnear(ray,N,i);
+  rh.ray.dir_x = RTCRayN_dir_x(ray,N,i);
+  rh.ray.dir_y = RTCRayN_dir_y(ray,N,i);
+  rh.ray.dir_z = RTCRayN_dir_z(ray,N,i);
+  rh.ray.time  = RTCRayN_time(ray,N,i);
+  rh.ray.tfar  = RTCRayN_tfar(ray,N,i);
+  rh.ray.mask  = RTCRayN_mask(ray,N,i);
+  rh.ray.id    = RTCRayN_id(ray,N,i);
+  rh.ray.flags = RTCRayN_flags(ray,N,i);
+
+  RTCHitN* hit  = RTCRayHitN_HitN(rayhitN,N);
+  rh.hit.Ng_x   = RTCHitN_Ng_x(hit,N,i);
+  rh.hit.Ng_y   = RTCHitN_Ng_y(hit,N,i);
+  rh.hit.Ng_z   = RTCHitN_Ng_z(hit,N,i);
+  rh.hit.u      = RTCHitN_u(hit,N,i);
+  rh.hit.v      = RTCHitN_v(hit,N,i);
+  rh.hit.primID = RTCHitN_primID(hit,N,i);
+  rh.hit.geomID = RTCHitN_geomID(hit,N,i);
+  for (unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    rh.hit.instID[l] = RTCHitN_instID(hit,N,i,l);
+
+  return rh;
+}
+
+#endif
+
+RTC_NAMESPACE_END
+

+ 216 - 0
build2/install/include/embree3/rtcore_ray.isph

@@ -0,0 +1,216 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_RAY_ISPH__
+#define __RTC_RAY_ISPH__
+
+#include "rtcore_common.isph"
+
+/* Ray structure */
+struct RTC_ALIGN(16) RTCRay
+{
+  float org_x;        // x coordinate of ray origin
+  float org_y;        // y coordinate of ray origin
+  float org_z;        // z coordinate of ray origin
+  float tnear;        // start of ray segment
+
+  float dir_x;        // x coordinate of ray direction
+  float dir_y;        // y coordinate of ray direction
+  float dir_z;        // z coordinate of ray direction
+  float time;         // time of this ray for motion blur
+
+  float tfar;         // end of ray segment (set to hit distance)
+  unsigned int mask;  // ray mask
+  unsigned int id;    // ray ID
+  unsigned int flags; // ray flags
+};
+
+/* Hit structure */
+struct RTCHit
+{
+  float Ng_x;          // x coordinate of geometry normal
+  float Ng_y;          // y coordinate of geometry normal
+  float Ng_z;          // z coordinate of geometry normal
+   
+  float u;             // barycentric u coordinate of hit
+  float v;             // barycentric v coordinate of hit
+
+  unsigned int primID; // primitive ID
+  unsigned int geomID; // geometry ID
+  unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT]; // instance ID
+};
+
+/* Combined ray/hit structure */
+struct RTCRayHit
+{
+  RTCRay ray;
+  RTCHit hit;
+};
+
+struct RTCRayN;
+struct RTCHitN;
+struct RTCRayHitN;
+
+/* Helper functions to access ray packets of runtime size N */
+RTC_FORCEINLINE varying float& RTCRayN_org_x(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[0*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_org_y(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[1*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_org_z(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[2*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_tnear(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[3*N+i]); }
+
+RTC_FORCEINLINE varying float& RTCRayN_dir_x(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[4*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_dir_y(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[5*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_dir_z(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[6*N+i]); }
+RTC_FORCEINLINE varying float& RTCRayN_time (RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((uniform float*)ray)[7*N+i]); }
+
+RTC_FORCEINLINE varying float&        RTCRayN_tfar (RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform)        &((uniform float*)ray)[8*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCRayN_mask (RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying unsigned int* uniform) &((uniform unsigned int*)ray)[9*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCRayN_id   (RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying unsigned int* uniform) &((uniform unsigned int*)ray)[10*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCRayN_flags(RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int i) { return *((varying unsigned int* uniform) &((uniform unsigned int*)ray)[11*N+i]); }
+
+/* Helper functions to access hit packets of runtime size N */
+RTC_FORCEINLINE varying float& RTCHitN_Ng_x(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((float* uniform)hit)[0*N+i]); }
+RTC_FORCEINLINE varying float& RTCHitN_Ng_y(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((float* uniform)hit)[1*N+i]); }
+RTC_FORCEINLINE varying float& RTCHitN_Ng_z(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((float* uniform)hit)[2*N+i]); }
+RTC_FORCEINLINE varying float& RTCHitN_u   (const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((float* uniform)hit)[3*N+i]); }
+RTC_FORCEINLINE varying float& RTCHitN_v   (const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying float* uniform) &((float* uniform)hit)[4*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCHitN_primID(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying unsigned int* uniform) &((unsigned int* uniform  )hit)[5*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCHitN_geomID(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i) { return *((varying unsigned int* uniform) &((unsigned int* uniform  )hit)[6*N+i]); }
+RTC_FORCEINLINE varying unsigned int& RTCHitN_instID(const RTCHitN* uniform hit, uniform unsigned int N, uniform unsigned int i, uniform unsigned int l) { return *((varying unsigned int* uniform) &((unsigned int* uniform)hit)[7*N+i+l*N]); }
+
+/* Helper functions to extract RTCRayN and RTCHitN from RTCRayHitN */
+RTC_FORCEINLINE RTCRayN* uniform RTCRayHitN_RayN(RTCRayHitN* uniform rayhit, uniform unsigned int N) { return (RTCRayN* uniform)&((uniform float* uniform)rayhit)[0*N]; }
+RTC_FORCEINLINE RTCHitN* uniform RTCRayHitN_HitN(RTCRayHitN* uniform rayhit, uniform unsigned int N) { return (RTCHitN* uniform)&((uniform float* uniform)rayhit)[12*N]; }
+
+/* Ray structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCRayNp
+{
+  uniform float* uniform org_x;
+  uniform float* uniform org_y;
+  uniform float* uniform org_z;
+  uniform float* uniform tnear;
+
+  uniform float* uniform dir_x;
+  uniform float* uniform dir_y;
+  uniform float* uniform dir_z;
+  uniform float* uniform time;
+
+  uniform float* uniform tfar;
+  uniform unsigned int* uniform mask;
+  uniform unsigned int* uniform id;
+  uniform unsigned int* uniform flags;
+};
+
+/* Hit structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCHitNp
+{
+  uniform float* uniform Ng_x;
+  uniform float* uniform Ng_y;
+  uniform float* uniform Ng_z;
+
+  uniform float* uniform u;
+  uniform float* uniform v;
+
+  uniform unsigned int* uniform primID;
+  uniform unsigned int* uniform geomID;
+  uniform unsigned int* uniform instID[RTC_MAX_INSTANCE_LEVEL_COUNT];
+};
+
+/* Combined ray/hit structure for a packet/stream of N rays in pointer SOA layout */
+struct RTCRayHitNp
+{
+  RTCRayNp ray;
+  RTCHitNp hit;
+};
+
+RTC_FORCEINLINE RTCRay rtcGetRayFromRayN(RTCRayN* uniform rayN, uniform unsigned int N, uniform unsigned int i)
+{
+  RTCRay ray;
+  ray.org_x = RTCRayN_org_x(rayN,N,i);
+  ray.org_y = RTCRayN_org_y(rayN,N,i);
+  ray.org_z = RTCRayN_org_z(rayN,N,i);
+  ray.tnear = RTCRayN_tnear(rayN,N,i);
+  ray.dir_x = RTCRayN_dir_x(rayN,N,i);
+  ray.dir_y = RTCRayN_dir_y(rayN,N,i);
+  ray.dir_z = RTCRayN_dir_z(rayN,N,i);
+  ray.time  = RTCRayN_time(rayN,N,i);
+  ray.tfar  = RTCRayN_tfar(rayN,N,i);
+  ray.mask  = RTCRayN_mask(rayN,N,i);
+  ray.id    = RTCRayN_id(rayN,N,i);
+  ray.flags = RTCRayN_flags(rayN,N,i);
+  return ray;
+}
+
+RTC_FORCEINLINE RTCHit rtcGetHitFromHitN(RTCHitN* uniform hitN, uniform unsigned int N, uniform unsigned int i)
+{
+  RTCHit hit;
+  hit.Ng_x   = RTCHitN_Ng_x(hitN,N,i);
+  hit.Ng_y   = RTCHitN_Ng_y(hitN,N,i);
+  hit.Ng_z   = RTCHitN_Ng_z(hitN,N,i);
+  hit.u      = RTCHitN_u(hitN,N,i);
+  hit.v      = RTCHitN_v(hitN,N,i);
+  hit.primID = RTCHitN_primID(hitN,N,i);
+  hit.geomID = RTCHitN_geomID(hitN,N,i);
+  for (uniform unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    hit.instID[l] = RTCHitN_instID(hitN,N,i,l);
+  return hit;
+}
+
+RTC_FORCEINLINE void rtcCopyHitToHitN(RTCHitN* uniform hitN, const varying RTCHit* uniform hit, uniform unsigned int N, uniform unsigned int i)
+{
+  RTCHitN_Ng_x(hitN,N,i)   = hit->Ng_x;
+  RTCHitN_Ng_y(hitN,N,i)   = hit->Ng_y;
+  RTCHitN_Ng_z(hitN,N,i)   = hit->Ng_z;
+  RTCHitN_u(hitN,N,i)      = hit->u;
+  RTCHitN_v(hitN,N,i)      = hit->v;
+  RTCHitN_primID(hitN,N,i) = hit->primID;
+  RTCHitN_geomID(hitN,N,i) = hit->geomID;
+  for (uniform unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    RTCHitN_instID(hitN,N,i,l) = hit->instID[l];
+}
+
+RTC_FORCEINLINE RTCRayHit rtcGetRayHitFromRayHitN(RTCRayHitN* uniform rayhitN, uniform unsigned int N, uniform unsigned int i)
+{
+  RTCRayHit rh;
+
+  RTCRayN* uniform ray = RTCRayHitN_RayN(rayhitN,N);
+  rh.ray.org_x = RTCRayN_org_x(ray,N,i);
+  rh.ray.org_y = RTCRayN_org_y(ray,N,i);
+  rh.ray.org_z = RTCRayN_org_z(ray,N,i);
+  rh.ray.tnear = RTCRayN_tnear(ray,N,i);
+  rh.ray.dir_x = RTCRayN_dir_x(ray,N,i);
+  rh.ray.dir_y = RTCRayN_dir_y(ray,N,i);
+  rh.ray.dir_z = RTCRayN_dir_z(ray,N,i);
+  rh.ray.time  = RTCRayN_time(ray,N,i);
+  rh.ray.tfar  = RTCRayN_tfar(ray,N,i);
+  rh.ray.mask  = RTCRayN_mask(ray,N,i);
+  rh.ray.id    = RTCRayN_id(ray,N,i);
+  rh.ray.flags = RTCRayN_flags(ray,N,i);
+
+  RTCHitN* uniform hit = RTCRayHitN_HitN(rayhitN,N);
+  rh.hit.Ng_x   = RTCHitN_Ng_x(hit,N,i);
+  rh.hit.Ng_y   = RTCHitN_Ng_y(hit,N,i);
+  rh.hit.Ng_z   = RTCHitN_Ng_z(hit,N,i);
+  rh.hit.u      = RTCHitN_u(hit,N,i);
+  rh.hit.v      = RTCHitN_v(hit,N,i);
+  rh.hit.primID = RTCHitN_primID(hit,N,i);
+  rh.hit.geomID = RTCHitN_geomID(hit,N,i);
+  for (uniform unsigned int l = 0; l < RTC_MAX_INSTANCE_LEVEL_COUNT; l++)
+    rh.hit.instID[l] = RTCHitN_instID(hit,N,i,l);
+
+  return rh;
+}
+
+#endif

+ 149 - 0
build2/install/include/embree3/rtcore_scene.h

@@ -0,0 +1,149 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#pragma once
+
+#include "rtcore_device.h"
+
+RTC_NAMESPACE_BEGIN
+  
+/* Forward declarations for ray structures */
+struct RTCRayHit;
+struct RTCRayHit4;
+struct RTCRayHit8;
+struct RTCRayHit16;
+struct RTCRayHitNp;
+
+/* Scene flags */
+enum RTCSceneFlags
+{
+  RTC_SCENE_FLAG_NONE                    = 0,
+  RTC_SCENE_FLAG_DYNAMIC                 = (1 << 0),
+  RTC_SCENE_FLAG_COMPACT                 = (1 << 1),
+  RTC_SCENE_FLAG_ROBUST                  = (1 << 2),
+  RTC_SCENE_FLAG_CONTEXT_FILTER_FUNCTION = (1 << 3)
+};
+
+/* Creates a new scene. */
+RTC_API RTCScene rtcNewScene(RTCDevice device);
+
+/* Retains the scene (increments the reference count). */
+RTC_API void rtcRetainScene(RTCScene scene);
+
+/* Releases the scene (decrements the reference count). */
+RTC_API void rtcReleaseScene(RTCScene scene);
+
+
+/* Attaches the geometry to a scene. */
+RTC_API unsigned int rtcAttachGeometry(RTCScene scene, RTCGeometry geometry);
+
+/* Attaches the geometry to a scene using the specified geometry ID. */
+RTC_API void rtcAttachGeometryByID(RTCScene scene, RTCGeometry geometry, unsigned int geomID);
+
+/* Detaches the geometry from the scene. */
+RTC_API void rtcDetachGeometry(RTCScene scene, unsigned int geomID);
+
+/* Gets a geometry handle from the scene. */
+RTC_API RTCGeometry rtcGetGeometry(RTCScene scene, unsigned int geomID);
+
+
+/* Commits the scene. */
+RTC_API void rtcCommitScene(RTCScene scene);
+
+/* Commits the scene from multiple threads. */
+RTC_API void rtcJoinCommitScene(RTCScene scene);
+
+
+/* Progress monitor callback function */
+typedef bool (*RTCProgressMonitorFunction)(void* ptr, double n);
+
+/* Sets the progress monitor callback function of the scene. */
+RTC_API void rtcSetSceneProgressMonitorFunction(RTCScene scene, RTCProgressMonitorFunction progress, void* ptr);
+
+/* Sets the build quality of the scene. */
+RTC_API void rtcSetSceneBuildQuality(RTCScene scene, enum RTCBuildQuality quality);
+
+/* Sets the scene flags. */
+RTC_API void rtcSetSceneFlags(RTCScene scene, enum RTCSceneFlags flags);
+
+/* Returns the scene flags. */
+RTC_API enum RTCSceneFlags rtcGetSceneFlags(RTCScene scene);
+
+/* Returns the axis-aligned bounds of the scene. */
+RTC_API void rtcGetSceneBounds(RTCScene scene, struct RTCBounds* bounds_o);
+
+/* Returns the linear axis-aligned bounds of the scene. */
+RTC_API void rtcGetSceneLinearBounds(RTCScene scene, struct RTCLinearBounds* bounds_o);
+
+/* Intersects a single ray with the scene. */
+RTC_API void rtcIntersect1(RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit* rayhit);
+
+/* Intersects a packet of 4 rays with the scene. */
+RTC_API void rtcIntersect4(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit4* rayhit);
+
+/* Intersects a packet of 8 rays with the scene. */
+RTC_API void rtcIntersect8(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit8* rayhit);
+
+/* Intersects a packet of 16 rays with the scene. */
+RTC_API void rtcIntersect16(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit16* rayhit);
+
+/* Intersects a stream of M rays with the scene. */
+RTC_API void rtcIntersect1M(RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit* rayhit, unsigned int M, size_t byteStride);
+
+/* Intersects a stream of pointers to M rays with the scene. */
+RTC_API void rtcIntersect1Mp(RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHit** rayhit, unsigned int M);
+
+/* Intersects a stream of M ray packets of size N in SOA format with the scene. */
+RTC_API void rtcIntersectNM(RTCScene scene, struct RTCIntersectContext* context, struct RTCRayHitN* rayhit, unsigned int N, unsigned int M, size_t byteStride);
+
+/* Intersects a stream of M ray packets of size N in SOA format with the scene. */
+RTC_API void rtcIntersectNp(RTCScene scene, struct RTCIntersectContext* context, const struct RTCRayHitNp* rayhit, unsigned int N);
+
+/* Tests a single ray for occlusion with the scene. */
+RTC_API void rtcOccluded1(RTCScene scene, struct RTCIntersectContext* context, struct RTCRay* ray);
+
+/* Tests a packet of 4 rays for occlusion occluded with the scene. */
+RTC_API void rtcOccluded4(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRay4* ray);
+
+/* Tests a packet of 8 rays for occlusion with the scene. */
+RTC_API void rtcOccluded8(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRay8* ray);
+
+/* Tests a packet of 16 rays for occlusion with the scene. */
+RTC_API void rtcOccluded16(const int* valid, RTCScene scene, struct RTCIntersectContext* context, struct RTCRay16* ray);
+
+/* Tests a stream of M rays for occlusion with the scene. */
+RTC_API void rtcOccluded1M(RTCScene scene, struct RTCIntersectContext* context, struct RTCRay* ray, unsigned int M, size_t byteStride);
+
+/* Tests a stream of pointers to M rays for occlusion with the scene. */
+RTC_API void rtcOccluded1Mp(RTCScene scene, struct RTCIntersectContext* context, struct RTCRay** ray, unsigned int M);
+
+/* Tests a stream of M ray packets of size N in SOA format for occlusion with the scene. */
+RTC_API void rtcOccludedNM(RTCScene scene, struct RTCIntersectContext* context, struct RTCRayN* ray, unsigned int N, unsigned int M, size_t byteStride);
+
+/* Tests a stream of M ray packets of size N in SOA format for occlusion with the scene. */
+RTC_API void rtcOccludedNp(RTCScene scene, struct RTCIntersectContext* context, const struct RTCRayNp* ray, unsigned int N);
+
+#if defined(__cplusplus)
+
+/* Helper for easily combining scene flags */
+inline RTCSceneFlags operator|(RTCSceneFlags a, RTCSceneFlags b) {
+  return (RTCSceneFlags)((size_t)a | (size_t)b);
+}
+
+#endif
+
+RTC_NAMESPACE_END
+

+ 176 - 0
build2/install/include/embree3/rtcore_scene.isph

@@ -0,0 +1,176 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#ifndef __RTC_SCENE_ISPH__
+#define __RTC_SCENE_ISPH__
+
+#include "rtcore_device.isph"
+
+/* Forward declarations for ray structures */
+struct RTCRayHit;
+struct RTCRayHitNp;
+
+/* Scene flags */
+enum RTCSceneFlags
+{
+  RTC_SCENE_FLAG_NONE                    = 0,
+  RTC_SCENE_FLAG_DYNAMIC                 = (1 << 0),
+  RTC_SCENE_FLAG_COMPACT                 = (1 << 1),
+  RTC_SCENE_FLAG_ROBUST                  = (1 << 2),
+  RTC_SCENE_FLAG_CONTEXT_FILTER_FUNCTION = (1 << 3)
+};
+
+/* Creates a new scene. */
+RTC_API RTCScene rtcNewScene(RTCDevice device);
+
+/* Retains the scene (increments the reference count). */
+RTC_API void rtcRetainScene(RTCScene scene);
+
+/* Releases the scene (decrements the reference count). */
+RTC_API void rtcReleaseScene(RTCScene scene);
+
+
+/* Attaches the geometry to a scene. */
+RTC_API uniform unsigned int rtcAttachGeometry(RTCScene scene, RTCGeometry geometry);
+
+/* Attaches the geometry to a scene using the specified geometry ID. */
+RTC_API void rtcAttachGeometryByID(RTCScene scene, RTCGeometry geometry, uniform unsigned int geomID);
+
+/* Detaches the geometry from the scene. */
+RTC_API void rtcDetachGeometry(RTCScene scene, uniform unsigned int geomID);
+
+/* Gets a geometry handle from the scene. */
+RTC_API RTCGeometry rtcGetGeometry(RTCScene scene, uniform unsigned int geomID);
+
+
+/* Commits the scene. */
+RTC_API void rtcCommitScene(RTCScene scene);
+
+/* Commits the scene from multiple threads. */
+RTC_API void rtcJoinCommitScene(RTCScene scene);
+
+
+/* Progress monitor callback function */
+typedef unmasked uniform bool (*uniform RTCProgressMonitorFunction)(void* uniform ptr, uniform double n);
+
+/* Sets the progress monitor callback function of the scene. */
+RTC_API void rtcSetSceneProgressMonitorFunction(RTCScene scene, RTCProgressMonitorFunction progress, void* uniform ptr);
+
+/* Sets the build quality of the scene. */
+RTC_API void rtcSetSceneBuildQuality(RTCScene scene, uniform RTCBuildQuality quality);
+
+/* Sets the scene flags. */
+RTC_API void rtcSetSceneFlags(RTCScene scene, uniform RTCSceneFlags flags);
+
+/* Returns the scene flags. */
+RTC_API uniform RTCSceneFlags rtcGetSceneFlags(RTCScene scene);
+
+/* Returns the axis-aligned bounds of the scene. */
+RTC_API void rtcGetSceneBounds(RTCScene scene, uniform RTCBounds* uniform bounds_o);
+
+/* Returns the linear axis-aligned bounds of the scene. */
+RTC_API void rtcGetSceneLinearBounds(RTCScene scene, uniform RTCLinearBounds* uniform bounds_o);
+
+/* Intersects a single ray with the scene. */
+RTC_API void rtcIntersect1(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRayHit* uniform rayhit);
+
+/* Intersects a packet of 4 rays with the scene. */
+RTC_API void rtcIntersect4(const int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform rayhit);
+
+/* Intersects a packet of 8 rays with the scene. */
+RTC_API void rtcIntersect8(const int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform rayhit);
+
+/* Intersects a packet of 16 rays with the scene. */
+RTC_API void rtcIntersect16(const int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform rayhit);
+
+/* Intersects a varying ray with the scene. */
+RTC_FORCEINLINE void rtcIntersectV(RTCScene scene, uniform RTCIntersectContext* uniform context, varying RTCRayHit* uniform rayhit) 
+{
+  varying bool mask = __mask;
+  unmasked {
+    varying int imask = mask ? -1 : 0;
+  }
+  if (sizeof(varying float) == 16)
+    rtcIntersect4((uniform int* uniform)&imask, scene, context, rayhit);
+  else if (sizeof(varying float) == 32)
+    rtcIntersect8((uniform int* uniform)&imask, scene, context, rayhit);
+  else if (sizeof(varying float) == 64)
+    rtcIntersect16((uniform int* uniform)&imask, scene, context, rayhit);
+}
+
+/* Intersects a stream of M rays with the scene. */
+RTC_API void rtcIntersect1M(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRayHit* uniform rayhit, uniform unsigned int M, uniform uintptr_t byteStride);
+
+/* Intersects a stream of pointers to M rays with the scene. */
+RTC_API void rtcIntersect1Mp(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRayHit** uniform rayhit, uniform unsigned int M);
+
+/* Intersects a stream of M ray packets of size N in SOA format with the scene. */
+RTC_API void rtcIntersectNM(RTCScene scene, uniform RTCIntersectContext* uniform context, struct RTCRayHitN* uniform rayhit, uniform unsigned int N, uniform unsigned int M, uniform uintptr_t byteStride);
+
+/* Intersects a stream of M ray packets of native packet size with the scene. */
+RTC_FORCEINLINE void rtcIntersectVM(RTCScene scene, uniform RTCIntersectContext* uniform context, varying RTCRayHit* uniform rayhit, uniform unsigned int M, uniform uintptr_t byteStride) {
+  rtcIntersectNM(scene, context, (struct RTCRayHitN*)rayhit, sizeof(varying float)/4, M, byteStride);
+}
+
+/* Intersects a stream of M ray packets of size N in SOA format with the scene. */
+RTC_API void rtcIntersectNp(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRayHitNp* uniform rayhit, uniform unsigned int N);
+
+/* Tests a single ray for occlusion with the scene. */
+RTC_API void rtcOccluded1(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRay* uniform ray);
+
+/* Tests a packet of 4 rays for occlusion occluded with the scene. */
+RTC_API void rtcOccluded4(const uniform int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform ray);
+
+/* Tests a packet of 8 rays for occlusion occluded with the scene. */
+RTC_API void rtcOccluded8(const uniform int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform ray);
+
+/* Tests a packet of 16 rays for occlusion occluded with the scene. */
+RTC_API void rtcOccluded16(const uniform int* uniform valid, RTCScene scene, const RTCIntersectContext* uniform context, void* uniform ray);
+
+/* Tests a varying ray for occlusion with the scene. */
+RTC_FORCEINLINE void rtcOccludedV(RTCScene scene, uniform RTCIntersectContext* uniform context, varying RTCRay* uniform ray)
+{
+  varying bool mask = __mask;
+  unmasked {
+    varying int imask = mask ? -1 : 0;
+  }
+
+  if (sizeof(varying float) == 16)
+    rtcOccluded4((uniform int* uniform)&imask, scene, context, ray);
+  else if (sizeof(varying float) == 32)
+    rtcOccluded8((uniform int* uniform)&imask, scene, context, ray);
+  else if (sizeof(varying float) == 64)
+    rtcOccluded16((uniform int* uniform)&imask, scene, context, ray);
+}
+
+/* Tests a stream of M rays for occlusion with the scene. */
+RTC_API void rtcOccluded1M(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRay* uniform ray, uniform unsigned int M, uniform uintptr_t byteStride);
+
+/* Tests a stream of pointers to M rays for occlusion with the scene. */
+RTC_API void rtcOccluded1Mp(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRay** uniform ray, uniform unsigned int M);
+
+/* Tests a stream of M ray packets of size N in SOA format for occlusion with the scene. */
+RTC_API void rtcOccludedNM(RTCScene scene, uniform RTCIntersectContext* uniform context, struct RTCRayN* uniform ray, uniform unsigned int N, uniform unsigned int M, uniform uintptr_t byteStride);
+
+/* Tests a stream of M ray packets of native size in SOA format for occlusion with the scene. */
+RTC_FORCEINLINE void rtcOccludedVM(RTCScene scene, uniform RTCIntersectContext* uniform context, varying RTCRay* uniform ray, uniform unsigned int M, uniform uintptr_t byteStride) {
+  rtcOccludedNM(scene, context, (struct RTCRayN*)ray, sizeof(varying float)/4, M, byteStride);
+}
+
+/* Tests a stream of M ray packets of size N in SOA format for occlusion with the scene. */
+RTC_API void rtcOccludedNp(RTCScene scene, uniform RTCIntersectContext* uniform context, uniform RTCRayNp* uniform ray, uniform unsigned int N);
+
+#endif

+ 62 - 0
build2/install/include/embree3/rtcore_version.h

@@ -0,0 +1,62 @@
+// ======================================================================== //
+// Copyright 2009-2018 Intel Corporation                                    //
+//                                                                          //
+// Licensed under the Apache License, Version 2.0 (the "License");          //
+// you may not use this file except in compliance with the License.         //
+// You may obtain a copy of the License at                                  //
+//                                                                          //
+//     http://www.apache.org/licenses/LICENSE-2.0                           //
+//                                                                          //
+// Unless required by applicable law or agreed to in writing, software      //
+// distributed under the License is distributed on an "AS IS" BASIS,        //
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
+// See the License for the specific language governing permissions and      //
+// limitations under the License.                                           //
+// ======================================================================== //
+
+#define RTC_VERSION_MAJOR 3
+#define RTC_VERSION_MINOR 5
+#define RTC_VERSION_PATCH 2
+#define RTC_VERSION 30502
+#define RTC_VERSION_STRING "3.5.2"
+
+#define EMBREE_STATIC_LIB
+/* #undef EMBREE_API_NAMESPACE */
+
+#if defined(EMBREE_API_NAMESPACE)
+#  define RTC_NAMESPACE 
+#  define RTC_NAMESPACE_BEGIN namespace  {
+#  define RTC_NAMESPACE_END }
+#  define RTC_NAMESPACE_OPEN using namespace ;
+#  define RTC_API_EXTERN_C
+#  undef EMBREE_API_NAMESPACE
+#else
+#  define RTC_NAMESPACE_BEGIN
+#  define RTC_NAMESPACE_END
+#  define RTC_NAMESPACE_OPEN
+#  if defined(__cplusplus)
+#    define RTC_API_EXTERN_C extern "C"
+#  else
+#    define RTC_API_EXTERN_C
+#  endif
+#endif
+
+#if defined(ISPC)
+#  define RTC_API_IMPORT extern "C" unmasked
+#  define RTC_API_EXPORT extern "C" unmasked
+#elif defined(EMBREE_STATIC_LIB)
+#  define RTC_API_IMPORT RTC_API_EXTERN_C
+#  define RTC_API_EXPORT RTC_API_EXTERN_C
+#elif defined(_WIN32)
+#  define RTC_API_IMPORT RTC_API_EXTERN_C __declspec(dllimport)
+#  define RTC_API_EXPORT RTC_API_EXTERN_C __declspec(dllexport)
+#else
+#  define RTC_API_IMPORT RTC_API_EXTERN_C
+#  define RTC_API_EXPORT RTC_API_EXTERN_C __attribute__ ((visibility ("default")))
+#endif
+
+#if defined(RTC_EXPORT_API)
+#  define RTC_API RTC_API_EXPORT
+#else
+#  define RTC_API RTC_API_IMPORT
+#endif

+ 1083 - 0
build2/install/include/igl/AABB.cpp

@@ -0,0 +1,1083 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+//
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can
+// obtain one at http://mozilla.org/MPL/2.0/.
+#include "AABB.h"
+#include "EPS.h"
+#include "barycenter.h"
+#include "colon.h"
+#include "doublearea.h"
+#include "point_simplex_squared_distance.h"
+#include "project_to_line_segment.h"
+#include "sort.h"
+#include "volume.h"
+#include "ray_box_intersect.h"
+#include "parallel_for.h"
+#include "ray_mesh_intersect.h"
+#include <iostream>
+#include <iomanip>
+#include <limits>
+#include <list>
+#include <queue>
+#include <stack>
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle, typename Derivedbb_mins, typename Derivedbb_maxs, typename Derivedelements>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::init(
+    const Eigen::MatrixBase<DerivedV> & V,
+    const Eigen::MatrixBase<DerivedEle> & Ele,
+    const Eigen::MatrixBase<Derivedbb_mins> & bb_mins,
+    const Eigen::MatrixBase<Derivedbb_maxs> & bb_maxs,
+    const Eigen::MatrixBase<Derivedelements> & elements,
+    const int i)
+{
+  using namespace std;
+  using namespace Eigen;
+  deinit();
+  if(bb_mins.size() > 0)
+  {
+    assert(bb_mins.rows() == bb_maxs.rows() && "Serial tree arrays must match");
+    assert(bb_mins.cols() == V.cols() && "Serial tree array dim must match V");
+    assert(bb_mins.cols() == bb_maxs.cols() && "Serial tree arrays must match");
+    assert(bb_mins.rows() == elements.rows() &&
+        "Serial tree arrays must match");
+    // construct from serialization
+    m_box.extend(bb_mins.row(i).transpose());
+    m_box.extend(bb_maxs.row(i).transpose());
+    m_primitive = elements(i);
+    // Not leaf then recurse
+    if(m_primitive == -1)
+    {
+      m_left = new AABB();
+      m_left->init( V,Ele,bb_mins,bb_maxs,elements,2*i+1);
+      m_right = new AABB();
+      m_right->init( V,Ele,bb_mins,bb_maxs,elements,2*i+2);
+      //m_depth = std::max( m_left->m_depth, m_right->m_depth)+1;
+    }
+  }else
+  {
+    VectorXi allI = colon<int>(0,Ele.rows()-1);
+    MatrixXDIMS BC;
+    if(Ele.cols() == 1)
+    {
+      // points
+      BC = V;
+    }else
+    {
+      // Simplices
+      barycenter(V,Ele,BC);
+    }
+    MatrixXi SI(BC.rows(),BC.cols());
+    {
+      MatrixXDIMS _;
+      MatrixXi IS;
+      igl::sort(BC,1,true,_,IS);
+      // Need SI(i) to tell which place i would be sorted into
+      const int dim = IS.cols();
+      for(int i = 0;i<IS.rows();i++)
+      {
+        for(int d = 0;d<dim;d++)
+        {
+          SI(IS(i,d),d) = i;
+        }
+      }
+    }
+    init(V,Ele,SI,allI);
+  }
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+void igl::AABB<DerivedV,DIM>::init(
+    const Eigen::MatrixBase<DerivedV> & V,
+    const Eigen::MatrixBase<DerivedEle> & Ele)
+{
+  using namespace Eigen;
+  // deinit will be immediately called...
+  return init(V,Ele,MatrixXDIMS(),MatrixXDIMS(),VectorXi(),0);
+}
+
+  template <typename DerivedV, int DIM>
+template <
+  typename DerivedEle,
+  typename DerivedSI,
+  typename DerivedI>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::init(
+    const Eigen::MatrixBase<DerivedV> & V,
+    const Eigen::MatrixBase<DerivedEle> & Ele,
+    const Eigen::MatrixBase<DerivedSI> & SI,
+    const Eigen::MatrixBase<DerivedI> & I)
+{
+  using namespace Eigen;
+  using namespace std;
+  deinit();
+  if(V.size() == 0 || Ele.size() == 0 || I.size() == 0)
+  {
+    return;
+  }
+  assert(DIM == V.cols() && "V.cols() should matched declared dimension");
+  //const Scalar inf = numeric_limits<Scalar>::infinity();
+  m_box = AlignedBox<Scalar,DIM>();
+  // Compute bounding box
+  for(int i = 0;i<I.rows();i++)
+  {
+    for(int c = 0;c<Ele.cols();c++)
+    {
+      m_box.extend(V.row(Ele(I(i),c)).transpose());
+      m_box.extend(V.row(Ele(I(i),c)).transpose());
+    }
+  }
+  switch(I.size())
+  {
+    case 0:
+      {
+        assert(false);
+      }
+    case 1:
+      {
+        m_primitive = I(0);
+        break;
+      }
+    default:
+      {
+        // Compute longest direction
+        int max_d = -1;
+        m_box.diagonal().maxCoeff(&max_d);
+        // Can't use median on BC directly because many may have same value,
+        // but can use median on sorted BC indices
+        VectorXi SIdI(I.rows());
+        for(int i = 0;i<I.rows();i++)
+        {
+          SIdI(i) = SI(I(i),max_d);
+        }
+        // Pass by copy to avoid changing input
+        const auto median = [](VectorXi A)->int
+        {
+          size_t n = (A.size()-1)/2;
+          nth_element(A.data(),A.data()+n,A.data()+A.size());
+          return A(n);
+        };
+        const int med = median(SIdI);
+        VectorXi LI((I.rows()+1)/2),RI(I.rows()/2);
+        assert(LI.rows()+RI.rows() == I.rows());
+        // Distribute left and right
+        {
+          int li = 0;
+          int ri = 0;
+          for(int i = 0;i<I.rows();i++)
+          {
+            if(SIdI(i)<=med)
+            {
+              LI(li++) = I(i);
+            }else
+            {
+              RI(ri++) = I(i);
+            }
+          }
+        }
+        //m_depth = 0;
+        if(LI.rows()>0)
+        {
+          m_left = new AABB();
+          m_left->init(V,Ele,SI,LI);
+          //m_depth = std::max(m_depth, m_left->m_depth+1);
+        }
+        if(RI.rows()>0)
+        {
+          m_right = new AABB();
+          m_right->init(V,Ele,SI,RI);
+          //m_depth = std::max(m_depth, m_right->m_depth+1);
+        }
+      }
+  }
+}
+
+template <typename DerivedV, int DIM>
+IGL_INLINE bool igl::AABB<DerivedV,DIM>::is_leaf() const
+{
+  return m_primitive != -1;
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle, typename Derivedq>
+IGL_INLINE std::vector<int> igl::AABB<DerivedV,DIM>::find(
+    const Eigen::MatrixBase<DerivedV> & V,
+    const Eigen::MatrixBase<DerivedEle> & Ele,
+    const Eigen::MatrixBase<Derivedq> & q,
+    const bool first) const
+{
+  using namespace std;
+  using namespace Eigen;
+  assert(q.size() == DIM &&
+      "Query dimension should match aabb dimension");
+  assert(Ele.cols() == V.cols()+1 &&
+      "AABB::find only makes sense for (d+1)-simplices");
+  const Scalar epsilon = igl::EPS<Scalar>();
+  // Check if outside bounding box
+  bool inside = m_box.contains(q.transpose());
+  if(!inside)
+  {
+    return std::vector<int>();
+  }
+  assert(m_primitive==-1 || (m_left == NULL && m_right == NULL));
+  if(is_leaf())
+  {
+    // Initialize to some value > -epsilon
+    Scalar a1=0,a2=0,a3=0,a4=0;
+    switch(DIM)
+    {
+      case 3:
+        {
+          // Barycentric coordinates
+          typedef Eigen::Matrix<Scalar,1,3> RowVector3S;
+          const RowVector3S V1 = V.row(Ele(m_primitive,0));
+          const RowVector3S V2 = V.row(Ele(m_primitive,1));
+          const RowVector3S V3 = V.row(Ele(m_primitive,2));
+          const RowVector3S V4 = V.row(Ele(m_primitive,3));
+          a1 = volume_single(V2,V4,V3,(RowVector3S)q);
+          a2 = volume_single(V1,V3,V4,(RowVector3S)q);
+          a3 = volume_single(V1,V4,V2,(RowVector3S)q);
+          a4 = volume_single(V1,V2,V3,(RowVector3S)q);
+          break;
+        }
+      case 2:
+        {
+          // Barycentric coordinates
+          typedef Eigen::Matrix<Scalar,2,1> Vector2S;
+          const Vector2S V1 = V.row(Ele(m_primitive,0));
+          const Vector2S V2 = V.row(Ele(m_primitive,1));
+          const Vector2S V3 = V.row(Ele(m_primitive,2));
+          // Hack for now to keep templates simple. If becomes bottleneck
+          // consider using std::enable_if_t
+          const Vector2S q2 = q.head(2);
+          a1 = doublearea_single(V1,V2,q2);
+          a2 = doublearea_single(V2,V3,q2);
+          a3 = doublearea_single(V3,V1,q2);
+          break;
+        }
+      default:assert(false);
+    }
+    // Normalization is important for correcting sign
+    Scalar sum = a1+a2+a3+a4;
+    a1 /= sum;
+    a2 /= sum;
+    a3 /= sum;
+    a4 /= sum;
+    if(
+        a1>=-epsilon &&
+        a2>=-epsilon &&
+        a3>=-epsilon &&
+        a4>=-epsilon)
+    {
+      return std::vector<int>(1,m_primitive);
+    }else
+    {
+      return std::vector<int>();
+    }
+  }
+  std::vector<int> left = m_left->find(V,Ele,q,first);
+  if(first && !left.empty())
+  {
+    return left;
+  }
+  std::vector<int> right = m_right->find(V,Ele,q,first);
+  if(first)
+  {
+    return right;
+  }
+  left.insert(left.end(),right.begin(),right.end());
+  return left;
+}
+
+template <typename DerivedV, int DIM>
+IGL_INLINE int igl::AABB<DerivedV,DIM>::subtree_size() const
+{
+  // 1 for self
+  int n = 1;
+  int n_left = 0,n_right = 0;
+  if(m_left != NULL)
+  {
+    n_left = m_left->subtree_size();
+  }
+  if(m_right != NULL)
+  {
+    n_right = m_right->subtree_size();
+  }
+  n += 2*std::max(n_left,n_right);
+  return n;
+}
+
+
+template <typename DerivedV, int DIM>
+template <typename Derivedbb_mins, typename Derivedbb_maxs, typename Derivedelements>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::serialize(
+    Eigen::PlainObjectBase<Derivedbb_mins> & bb_mins,
+    Eigen::PlainObjectBase<Derivedbb_maxs> & bb_maxs,
+    Eigen::PlainObjectBase<Derivedelements> & elements,
+    const int i) const
+{
+  using namespace std;
+  using namespace Eigen;
+  // Calling for root then resize output
+  if(i==0)
+  {
+    const int m = subtree_size();
+    //cout<<"m: "<<m<<endl;
+    bb_mins.resize(m,DIM);
+    bb_maxs.resize(m,DIM);
+    elements.resize(m,1);
+  }
+  //cout<<i<<" ";
+  bb_mins.row(i) = m_box.min();
+  bb_maxs.row(i) = m_box.max();
+  elements(i) = m_primitive;
+  if(m_left != NULL)
+  {
+    m_left->serialize(bb_mins,bb_maxs,elements,2*i+1);
+  }
+  if(m_right != NULL)
+  {
+    m_right->serialize(bb_mins,bb_maxs,elements,2*i+2);
+  }
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE typename igl::AABB<DerivedV,DIM>::Scalar
+igl::AABB<DerivedV,DIM>::squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & p,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+  return squared_distance(V,Ele,p,std::numeric_limits<Scalar>::infinity(),i,c);
+}
+
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE typename igl::AABB<DerivedV,DIM>::Scalar
+igl::AABB<DerivedV,DIM>::squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & p,
+  Scalar low_sqr_d,
+  Scalar up_sqr_d,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+  using namespace Eigen;
+  using namespace std;
+  //assert(low_sqr_d <= up_sqr_d);
+  if(low_sqr_d > up_sqr_d)
+  {
+    return low_sqr_d;
+  }
+  Scalar sqr_d = up_sqr_d;
+  //assert(DIM == 3 && "Code has only been tested for DIM == 3");
+  assert((Ele.cols() == 3 || Ele.cols() == 2 || Ele.cols() == 1)
+    && "Code has only been tested for simplex sizes 3,2,1");
+
+  assert(m_primitive==-1 || (m_left == NULL && m_right == NULL));
+  if(is_leaf())
+  {
+    leaf_squared_distance(V,Ele,p,low_sqr_d,sqr_d,i,c);
+  }else
+  {
+    bool looked_left = false;
+    bool looked_right = false;
+    const auto & look_left = [&]()
+    {
+      int i_left;
+      RowVectorDIMS c_left = c;
+      Scalar sqr_d_left =
+        m_left->squared_distance(V,Ele,p,low_sqr_d,sqr_d,i_left,c_left);
+      this->set_min(p,sqr_d_left,i_left,c_left,sqr_d,i,c);
+      looked_left = true;
+    };
+    const auto & look_right = [&]()
+    {
+      int i_right;
+      RowVectorDIMS c_right = c;
+      Scalar sqr_d_right =
+        m_right->squared_distance(V,Ele,p,low_sqr_d,sqr_d,i_right,c_right);
+      this->set_min(p,sqr_d_right,i_right,c_right,sqr_d,i,c);
+      looked_right = true;
+    };
+
+    // must look left or right if in box
+    if(m_left->m_box.contains(p.transpose()))
+    {
+      look_left();
+    }
+    if(m_right->m_box.contains(p.transpose()))
+    {
+      look_right();
+    }
+    // if haven't looked left and could be less than current min, then look
+    Scalar left_up_sqr_d =
+      m_left->m_box.squaredExteriorDistance(p.transpose());
+    Scalar right_up_sqr_d =
+      m_right->m_box.squaredExteriorDistance(p.transpose());
+    if(left_up_sqr_d < right_up_sqr_d)
+    {
+      if(!looked_left && left_up_sqr_d<sqr_d)
+      {
+        look_left();
+      }
+      if( !looked_right && right_up_sqr_d<sqr_d)
+      {
+        look_right();
+      }
+    }else
+    {
+      if( !looked_right && right_up_sqr_d<sqr_d)
+      {
+        look_right();
+      }
+      if(!looked_left && left_up_sqr_d<sqr_d)
+      {
+        look_left();
+      }
+    }
+  }
+  return sqr_d;
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE typename igl::AABB<DerivedV,DIM>::Scalar
+igl::AABB<DerivedV,DIM>::squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & p,
+  Scalar up_sqr_d,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+  return squared_distance(V,Ele,p,0.0,up_sqr_d,i,c);
+}
+
+template <typename DerivedV, int DIM>
+template <
+  typename DerivedEle,
+  typename DerivedP,
+  typename DerivedsqrD,
+  typename DerivedI,
+  typename DerivedC>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const Eigen::MatrixBase<DerivedP> & P,
+  Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+  Eigen::PlainObjectBase<DerivedI> & I,
+  Eigen::PlainObjectBase<DerivedC> & C) const
+{
+  assert(P.cols() == V.cols() && "cols in P should match dim of cols in V");
+  sqrD.resize(P.rows(),1);
+  I.resize(P.rows(),1);
+  C.resizeLike(P);
+  // O( #P * log #Ele ), where log #Ele is really the depth of this AABB
+  // hierarchy
+  //for(int p = 0;p<P.rows();p++)
+  igl::parallel_for(P.rows(),[&](int p)
+    {
+      RowVectorDIMS Pp = P.row(p), c;
+      int Ip;
+      sqrD(p) = squared_distance(V,Ele,Pp,Ip,c);
+      I(p) = Ip;
+      C.row(p).head(DIM) = c;
+    },
+    10000);
+}
+
+template <typename DerivedV, int DIM>
+template <
+  typename DerivedEle,
+  typename Derivedother_V,
+  typename Derivedother_Ele,
+  typename DerivedsqrD,
+  typename DerivedI,
+  typename DerivedC>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const AABB<Derivedother_V,DIM> & other,
+  const Eigen::MatrixBase<Derivedother_V> & other_V,
+  const Eigen::MatrixBase<Derivedother_Ele> & other_Ele,
+  Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+  Eigen::PlainObjectBase<DerivedI> & I,
+  Eigen::PlainObjectBase<DerivedC> & C) const
+{
+  assert(other_Ele.cols() == 1 &&
+    "Only implemented for other as list of points");
+  assert(other_V.cols() == V.cols() && "other must match this dimension");
+  sqrD.setConstant(other_Ele.rows(),1,std::numeric_limits<double>::infinity());
+  I.resize(other_Ele.rows(),1);
+  C.resize(other_Ele.rows(),other_V.cols());
+  // All points in other_V currently think they need to check against root of
+  // this. The point of using another AABB is to quickly prune chunks of
+  // other_V so that most points just check some subtree of this.
+
+  // This holds a conservative estimate of max(sqr_D) where sqr_D is the
+  // current best minimum squared distance for all points in this subtree
+  double up_sqr_d = std::numeric_limits<double>::infinity();
+  squared_distance_helper(
+    V,Ele,&other,other_V,other_Ele,0,up_sqr_d,sqrD,I,C);
+}
+
+template <typename DerivedV, int DIM>
+template <
+  typename DerivedEle,
+  typename Derivedother_V,
+  typename Derivedother_Ele,
+  typename DerivedsqrD,
+  typename DerivedI,
+  typename DerivedC>
+IGL_INLINE typename igl::AABB<DerivedV,DIM>::Scalar
+  igl::AABB<DerivedV,DIM>::squared_distance_helper(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const AABB<Derivedother_V,DIM> * other,
+  const Eigen::MatrixBase<Derivedother_V> & other_V,
+  const Eigen::MatrixBase<Derivedother_Ele> & other_Ele,
+  const Scalar /*up_sqr_d*/,
+  Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+  Eigen::PlainObjectBase<DerivedI> & I,
+  Eigen::PlainObjectBase<DerivedC> & C) const
+{
+  using namespace std;
+  using namespace Eigen;
+
+  // This implementation is a bit disappointing. There's no major speed up. Any
+  // performance gains seem to come from accidental cache coherency and
+  // diminish for larger "other" (the opposite of what was intended).
+
+  // Base case
+  if(other->is_leaf() && this->is_leaf())
+  {
+    Scalar sqr_d = sqrD(other->m_primitive);
+    int i = I(other->m_primitive);
+    RowVectorDIMS c = C.row(      other->m_primitive);
+    RowVectorDIMS p = other_V.row(other->m_primitive);
+    leaf_squared_distance(V,Ele,p,sqr_d,i,c);
+    sqrD( other->m_primitive) = sqr_d;
+    I(    other->m_primitive) = i;
+    C.row(other->m_primitive) = c;
+    //cout<<"leaf: "<<sqr_d<<endl;
+    //other->m_low_sqr_d = sqr_d;
+    return sqr_d;
+  }
+
+  if(other->is_leaf())
+  {
+    Scalar sqr_d = sqrD(other->m_primitive);
+    int i = I(other->m_primitive);
+    RowVectorDIMS c = C.row(      other->m_primitive);
+    RowVectorDIMS p = other_V.row(other->m_primitive);
+    sqr_d = squared_distance(V,Ele,p,sqr_d,i,c);
+    sqrD( other->m_primitive) = sqr_d;
+    I(    other->m_primitive) = i;
+    C.row(other->m_primitive) = c;
+    //other->m_low_sqr_d = sqr_d;
+    return sqr_d;
+  }
+
+  //// Exact minimum squared distance between arbitrary primitives inside this and
+  //// othre's bounding boxes
+  //const auto & min_squared_distance = [&](
+  //  const AABB<DerivedV,DIM> * A,
+  //  const AABB<Derivedother_V,DIM> * B)->Scalar
+  //{
+  //  return A->m_box.squaredExteriorDistance(B->m_box);
+  //};
+
+  if(this->is_leaf())
+  {
+    //if(min_squared_distance(this,other) < other->m_low_sqr_d)
+    if(true)
+    {
+      this->squared_distance_helper(
+        V,Ele,other->m_left,other_V,other_Ele,0,sqrD,I,C);
+      this->squared_distance_helper(
+        V,Ele,other->m_right,other_V,other_Ele,0,sqrD,I,C);
+    }else
+    {
+      // This is never reached...
+    }
+    //// we know other is not a leaf
+    //other->m_low_sqr_d = std::max(other->m_left->m_low_sqr_d,other->m_right->m_low_sqr_d);
+    return 0;
+  }
+
+  // FORCE DOWN TO OTHER LEAF EVAL
+  //if(min_squared_distance(this,other) < other->m_low_sqr_d)
+  if(true)
+  {
+    if(true)
+    {
+      this->squared_distance_helper(
+        V,Ele,other->m_left,other_V,other_Ele,0,sqrD,I,C);
+      this->squared_distance_helper(
+        V,Ele,other->m_right,other_V,other_Ele,0,sqrD,I,C);
+    }else // this direction never seems to be faster
+    {
+      this->m_left->squared_distance_helper(
+        V,Ele,other,other_V,other_Ele,0,sqrD,I,C);
+      this->m_right->squared_distance_helper(
+        V,Ele,other,other_V,other_Ele,0,sqrD,I,C);
+    }
+  }else
+  {
+    // this is never reached ... :-(
+  }
+  //// we know other is not a leaf
+  //other->m_low_sqr_d = std::max(other->m_left->m_low_sqr_d,other->m_right->m_low_sqr_d);
+
+  return 0;
+#if 0 // False
+
+  // _Very_ conservative approximation of maximum squared distance between
+  // primitives inside this and other's bounding boxes
+  const auto & max_squared_distance = [](
+    const AABB<DerivedV,DIM> * A,
+    const AABB<Derivedother_V,DIM> * B)->Scalar
+  {
+    AlignedBox<Scalar,DIM> combo = A->m_box;
+    combo.extend(B->m_box);
+    return combo.diagonal().squaredNorm();
+  };
+
+  //// other base-case
+  //if(other->is_leaf())
+  //{
+  //  double sqr_d = sqrD(other->m_primitive);
+  //  int i = I(other->m_primitive);
+  //  RowVectorDIMS c = C.row(m_primitive);
+  //  RowVectorDIMS p = other_V.row(m_primitive);
+  //  leaf_squared_distance(V,Ele,p,sqr_d,i,c);
+  //  sqrD(other->m_primitive) = sqr_d;
+  //  I(other->m_primitive) = i;
+  //  C.row(m_primitive) = c;
+  //  return;
+  //}
+  std::vector<const AABB<DerivedV,DIM> * > this_list;
+  if(this->is_leaf())
+  {
+    this_list.push_back(this);
+  }else
+  {
+    assert(this->m_left);
+    this_list.push_back(this->m_left);
+    assert(this->m_right);
+    this_list.push_back(this->m_right);
+  }
+  std::vector<AABB<Derivedother_V,DIM> *> other_list;
+  if(other->is_leaf())
+  {
+    other_list.push_back(other);
+  }else
+  {
+    assert(other->m_left);
+    other_list.push_back(other->m_left);
+    assert(other->m_right);
+    other_list.push_back(other->m_right);
+  }
+
+  //const std::function<Scalar(
+  //  const AABB<Derivedother_V,DIM> * other)
+  //    > low_sqr_d = [&sqrD,&low_sqr_d](const AABB<Derivedother_V,DIM> * other)->Scalar
+  //  {
+  //    if(other->is_leaf())
+  //    {
+  //      return sqrD(other->m_primitive);
+  //    }else
+  //    {
+  //      return std::max(low_sqr_d(other->m_left),low_sqr_d(other->m_right));
+  //    }
+  //  };
+
+  //// Potentially recurse on all pairs, if minimum distance is less than running
+  //// bound
+  //Eigen::Matrix<Scalar,Eigen::Dynamic,1> other_low_sqr_d =
+  //  Eigen::Matrix<Scalar,Eigen::Dynamic,1>::Constant(other_list.size(),1,up_sqr_d);
+  for(size_t child = 0;child<other_list.size();child++)
+  {
+    auto other_tree = other_list[child];
+
+    Eigen::Matrix<Scalar,Eigen::Dynamic,1> this_low_sqr_d(this_list.size(),1);
+    for(size_t t = 0;t<this_list.size();t++)
+    {
+      const auto this_tree = this_list[t];
+      this_low_sqr_d(t) = max_squared_distance(this_tree,other_tree);
+    }
+    if(this_list.size() ==2 &&
+      ( this_low_sqr_d(0) > this_low_sqr_d(1))
+      )
+    {
+      std::swap(this_list[0],this_list[1]);
+      //std::swap(this_low_sqr_d(0),this_low_sqr_d(1));
+    }
+    const Scalar sqr_d = this_low_sqr_d.minCoeff();
+
+
+    for(size_t t = 0;t<this_list.size();t++)
+    {
+      const auto this_tree = this_list[t];
+
+      //const auto mm = low_sqr_d(other_tree);
+      //const Scalar mc = other_low_sqr_d(child);
+      //assert(mc == mm);
+      // Only look left/right in this_list if can possible decrease somebody's
+      // distance in this_tree.
+      const Scalar min_this_other = min_squared_distance(this_tree,other_tree);
+      if(
+          min_this_other < sqr_d &&
+          min_this_other < other_tree->m_low_sqr_d)
+      {
+        //cout<<"before: "<<other_low_sqr_d(child)<<endl;
+        //other_low_sqr_d(child) = std::min(
+        //  other_low_sqr_d(child),
+        //  this_tree->squared_distance_helper(
+        //    V,Ele,other_tree,other_V,other_Ele,other_low_sqr_d(child),sqrD,I,C));
+        //cout<<"after: "<<other_low_sqr_d(child)<<endl;
+          this_tree->squared_distance_helper(
+            V,Ele,other_tree,other_V,other_Ele,0,sqrD,I,C);
+      }
+    }
+  }
+  //const Scalar ret = other_low_sqr_d.maxCoeff();
+  //const auto mm = low_sqr_d(other);
+  //assert(mm == ret);
+  //cout<<"non-leaf: "<<ret<<endl;
+  //return ret;
+  if(!other->is_leaf())
+  {
+    other->m_low_sqr_d = std::max(other->m_left->m_low_sqr_d,other->m_right->m_low_sqr_d);
+  }
+  return 0;
+#endif
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::leaf_squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & p,
+  const Scalar low_sqr_d,
+  Scalar & sqr_d,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+  using namespace Eigen;
+  using namespace std;
+  if(low_sqr_d > sqr_d)
+  {
+    sqr_d = low_sqr_d;
+    return;
+  }
+  RowVectorDIMS c_candidate;
+  Scalar sqr_d_candidate;
+  igl::point_simplex_squared_distance<DIM>(
+    p,V,Ele,m_primitive,sqr_d_candidate,c_candidate);
+  set_min(p,sqr_d_candidate,m_primitive,c_candidate,sqr_d,i,c);
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::leaf_squared_distance(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & p,
+  Scalar & sqr_d,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+  return leaf_squared_distance(V,Ele,p,0,sqr_d,i,c);
+}
+
+
+template <typename DerivedV, int DIM>
+IGL_INLINE void igl::AABB<DerivedV,DIM>::set_min(
+  const RowVectorDIMS &
+#ifndef NDEBUG
+  p
+#endif
+  ,
+  const Scalar sqr_d_candidate,
+  const int i_candidate,
+  const RowVectorDIMS & c_candidate,
+  Scalar & sqr_d,
+  int & i,
+  Eigen::PlainObjectBase<RowVectorDIMS> & c) const
+{
+#ifndef NDEBUG
+  //std::cout<<matlab_format(c_candidate,"c_candidate")<<std::endl;
+  //// This doesn't quite make sense to check with bounds
+  // const Scalar pc_norm = (p-c_candidate).squaredNorm();
+  // const Scalar diff = fabs(sqr_d_candidate - pc_norm);
+  // assert(diff<=1e-10 && "distance should match norm of difference");
+#endif
+  if(sqr_d_candidate < sqr_d)
+  {
+    i = i_candidate;
+    c = c_candidate;
+    sqr_d = sqr_d_candidate;
+  }
+}
+
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE bool
+igl::AABB<DerivedV,DIM>::intersect_ray(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & origin,
+  const RowVectorDIMS & dir,
+  std::vector<igl::Hit> & hits) const
+{
+  hits.clear();
+  const Scalar t0 = 0;
+  const Scalar t1 = std::numeric_limits<Scalar>::infinity();
+  {
+    Scalar _1,_2;
+    if(!ray_box_intersect(origin,dir,m_box,t0,t1,_1,_2))
+    {
+      return false;
+    }
+  }
+  if(this->is_leaf())
+  {
+    // Actually process elements
+    assert((Ele.size() == 0 || Ele.cols() == 3) && "Elements should be triangles");
+    // Cheesecake way of hitting element
+    bool ret = ray_mesh_intersect(origin,dir,V,Ele.row(m_primitive),hits);
+    // Since we only gave ray_mesh_intersect a single face, it will have set
+    // any hits to id=0. Set these to this primitive's id
+    for(auto & hit : hits)
+    {
+      hit.id = m_primitive;
+    }
+    return ret;
+  }
+  std::vector<igl::Hit> left_hits;
+  std::vector<igl::Hit> right_hits;
+  const bool left_ret = m_left->intersect_ray(V,Ele,origin,dir,left_hits);
+  const bool right_ret = m_right->intersect_ray(V,Ele,origin,dir,right_hits);
+  hits.insert(hits.end(),left_hits.begin(),left_hits.end());
+  hits.insert(hits.end(),right_hits.begin(),right_hits.end());
+  return left_ret || right_ret;
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE bool
+igl::AABB<DerivedV,DIM>::intersect_ray(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & origin,
+  const RowVectorDIMS & dir,
+  igl::Hit & hit) const
+{
+#if false
+  // BFS
+  std::queue<const AABB *> Q;
+  // Or DFS
+  //std::stack<const AABB *> Q;
+  Q.push(this);
+  bool any_hit = false;
+  hit.t = std::numeric_limits<Scalar>::infinity();
+  while(!Q.empty())
+  {
+    const AABB * tree = Q.front();
+    //const AABB * tree = Q.top();
+    Q.pop();
+    {
+      Scalar _1,_2;
+      if(!ray_box_intersect(
+        origin,dir,tree->m_box,Scalar(0),Scalar(hit.t),_1,_2))
+      {
+        continue;
+      }
+    }
+    if(tree->is_leaf())
+    {
+      // Actually process elements
+      assert((Ele.size() == 0 || Ele.cols() == 3) && "Elements should be triangles");
+      igl::Hit leaf_hit;
+      if(
+        ray_mesh_intersect(origin,dir,V,Ele.row(tree->m_primitive),leaf_hit)&&
+        leaf_hit.t < hit.t)
+      {
+        // correct the id
+        leaf_hit.id = tree->m_primitive;
+        hit = leaf_hit;
+      }
+      continue;
+    }
+    // Add children to queue
+    Q.push(tree->m_left);
+    Q.push(tree->m_right);
+  }
+  return any_hit;
+#else
+  // DFS
+  return intersect_ray(
+    V,Ele,origin,dir,std::numeric_limits<Scalar>::infinity(),hit);
+#endif
+}
+
+template <typename DerivedV, int DIM>
+template <typename DerivedEle>
+IGL_INLINE bool
+igl::AABB<DerivedV,DIM>::intersect_ray(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedEle> & Ele,
+  const RowVectorDIMS & origin,
+  const RowVectorDIMS & dir,
+  const Scalar _min_t,
+  igl::Hit & hit) const
+{
+  //// Naive, slow
+  //std::vector<igl::Hit> hits;
+  //intersect_ray(V,Ele,origin,dir,hits);
+  //if(hits.size() > 0)
+  //{
+  //  hit = hits.front();
+  //  return true;
+  //}else
+  //{
+  //  return false;
+  //}
+  Scalar min_t = _min_t;
+  const Scalar t0 = 0;
+  {
+    Scalar _1,_2;
+    if(!ray_box_intersect(origin,dir,m_box,t0,min_t,_1,_2))
+    {
+      return false;
+    }
+  }
+  if(this->is_leaf())
+  {
+    // Actually process elements
+    assert((Ele.size() == 0 || Ele.cols() == 3) && "Elements should be triangles");
+    // Cheesecake way of hitting element
+    bool ret = ray_mesh_intersect(origin,dir,V,Ele.row(m_primitive),hit);
+    hit.id = m_primitive;
+    return ret;
+  }
+
+  // Doesn't seem like smartly choosing left before/after right makes a
+  // differnce
+  igl::Hit left_hit;
+  igl::Hit right_hit;
+  bool left_ret = m_left->intersect_ray(V,Ele,origin,dir,min_t,left_hit);
+  if(left_ret && left_hit.t<min_t)
+  {
+    // It's scary that this line doesn't seem to matter....
+    min_t = left_hit.t;
+    hit = left_hit;
+    left_ret = true;
+  }else
+  {
+    left_ret = false;
+  }
+  bool right_ret = m_right->intersect_ray(V,Ele,origin,dir,min_t,right_hit);
+  if(right_ret && right_hit.t<min_t)
+  {
+    min_t = right_hit.t;
+    hit = right_hit;
+    right_ret = true;
+  }else
+  {
+    right_ret = false;
+  }
+  return left_ret || right_ret;
+}
+
+// This is a bullshit template because AABB annoyingly needs templates for bad
+// combinations of 3D V with DIM=2 AABB
+//
+// _Define_ as a no-op rather than monkeying around with the proper code above
+//
+// Meanwhile, GCC seems to have a bug. Let's see if GCC likes using explicit
+// namespace block instead. https://stackoverflow.com/a/25594681/148668
+namespace igl
+{
+  template<> template<> IGL_INLINE float AABB<Eigen::Matrix<float, -1, 3, 1, -1, 3>, 2>::squared_distance( Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<float, 1, 2, 1, 1, 2> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 2, 1, 1, 2> >&) const { assert(false);return -1;};
+  template<> template<> IGL_INLINE float igl::AABB<Eigen::Matrix<float, -1, 3, 1, -1, 3>, 2>::squared_distance( Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<float, 1, 2, 1, 1, 2> const&, float, float, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 2, 1, 1, 2> >&) const { assert(false);return -1;};
+  template<> template<> IGL_INLINE void igl::AABB<Eigen::Matrix<float, -1, 3, 1, -1, 3>, 2>::init (Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&) { assert(false);};
+  template<> template<> IGL_INLINE double AABB<Eigen::Matrix<double, -1, 3, 1, -1, 3>, 2>::squared_distance( Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<double, 1, 2, 1, 1, 2> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&) const { assert(false);return -1;};
+  template<> template<> IGL_INLINE double igl::AABB<Eigen::Matrix<double, -1, 3, 1, -1, 3>, 2>::squared_distance( Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<double, 1, 2, 1, 1, 2> const&, double, double, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&) const { assert(false);return -1;};
+  template<> template<> IGL_INLINE void igl::AABB<Eigen::Matrix<double, -1, 3, 1, -1, 3>, 2>::init (Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&) { assert(false);};
+  template<> template<> IGL_INLINE void igl::AABB<Eigen::Matrix<float, -1, 3, 0, -1, 3>, 2>::init(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&) {assert(false);};
+  template<> template<> IGL_INLINE float igl::AABB<Eigen::Matrix<float, -1, 3, 0, -1, 3>, 2>::squared_distance(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::Matrix<float, 1, 2, 1, 1, 2> const&, float, float, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 2, 1, 1, 2> >&) const { assert(false);return -1;};
+}
+
+
+#ifdef IGL_STATIC_LIBRARY
+// Explicit template instantiation
+// generated by autoexplicit.sh
+template double igl::AABB<Eigen::Matrix<double, -1, 3, 1, -1, 3>, 3>::squared_distance<Eigen::Matrix<int, -1, 3, 1, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, double, double, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, 3, 1, -1, 3>, 3>::init<Eigen::Matrix<int, -1, 3, 1, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&);
+// generated by autoexplicit.sh
+// generated by autoexplicit.sh
+template float igl::AABB<Eigen::Matrix<float, -1, 3, 0, -1, 3>, 3>::squared_distance<Eigen::Matrix<int, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::Matrix<float, 1, 3, 1, 1, 3> const&, float, float, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> >&) const;
+// generated by autoexplicit.sh
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<float, -1, 3, 0, -1, 3>, 3>::init<Eigen::Matrix<int, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&);
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::serialize<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, int) const;
+// generated by autoexplicit.sh
+template std::vector<int, std::allocator<int> > igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::find<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, 1, -1, 1, 1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, -1, 1, 1, -1> > const&, bool) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::serialize<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, int) const;
+// generated by autoexplicit.sh
+template std::vector<int, std::allocator<int> > igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::find<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, 1, -1, 1, 1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, -1, 1, 1, -1> > const&, bool) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::init<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> > const&, int);
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::init<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> > const&, int);
+// generated by autoexplicit.sh
+template float igl::AABB<Eigen::Matrix<float, -1, 3, 1, -1, 3>, 3>::squared_distance<Eigen::Matrix<int, -1, 3, 1, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&, Eigen::Matrix<float, 1, 3, 1, 1, 3> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<long, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<long, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+// generated by autoexplicit.sh
+template double igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<long, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<long, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+// generated by autoexplicit.sh
+template double igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 2, 1, 1, 2> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&) const;
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<float, -1, 3, 1, -1, 3>, 3>::init<Eigen::Matrix<int, -1, 3, 1, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<float, -1, 3, 1, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> > const&);
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::init<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&);
+// generated by autoexplicit.sh
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::init<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&);
+template double igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, double, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> >&) const;
+template bool igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::intersect_ray<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, igl::Hit&) const;
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, 2, 3, 0, 2, 3>, Eigen::Matrix<double, 2, 1, 0, 2, 1>, Eigen::Matrix<int, 2, 1, 0, 2, 1>, Eigen::Matrix<double, 2, 3, 0, 2, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 2, 3, 0, 2, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, 2, 1, 0, 2, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 3, 0, 2, 3> >&) const;
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&) const;
+#ifdef WIN32
+template void igl::AABB<class Eigen::Matrix<double,-1,-1,0,-1,-1>,2>::squared_distance<class Eigen::Matrix<int,-1,-1,0,-1,-1>,class Eigen::Matrix<double,-1,-1,0,-1,-1>,class Eigen::Matrix<double,-1,1,0,-1,1>,class Eigen::Matrix<__int64,-1,1,0,-1,1>,class Eigen::Matrix<double,-1,3,0,-1,3> >(class Eigen::MatrixBase<class Eigen::Matrix<double,-1,-1,0,-1,-1> > const &,class Eigen::MatrixBase<class Eigen::Matrix<int,-1,-1,0,-1,-1> > const &,class Eigen::MatrixBase<class Eigen::Matrix<double,-1,-1,0,-1,-1> > const &,class Eigen::PlainObjectBase<class Eigen::Matrix<double,-1,1,0,-1,1> > &,class Eigen::PlainObjectBase<class Eigen::Matrix<__int64,-1,1,0,-1,1> > &,class Eigen::PlainObjectBase<class Eigen::Matrix<double,-1,3,0,-1,3> > &)const;
+template void igl::AABB<class Eigen::Matrix<double,-1,-1,0,-1,-1>,3>::squared_distance<class Eigen::Matrix<int,-1,-1,0,-1,-1>,class Eigen::Matrix<double,-1,-1,0,-1,-1>,class Eigen::Matrix<double,-1,1,0,-1,1>,class Eigen::Matrix<__int64,-1,1,0,-1,1>,class Eigen::Matrix<double,-1,3,0,-1,3> >(class Eigen::MatrixBase<class Eigen::Matrix<double,-1,-1,0,-1,-1> > const &,class Eigen::MatrixBase<class Eigen::Matrix<int,-1,-1,0,-1,-1> > const &,class Eigen::MatrixBase<class Eigen::Matrix<double,-1,-1,0,-1,-1> > const &,class Eigen::PlainObjectBase<class Eigen::Matrix<double,-1,1,0,-1,1> > &,class Eigen::PlainObjectBase<class Eigen::Matrix<__int64,-1,1,0,-1,1> > &,class Eigen::PlainObjectBase<class Eigen::Matrix<double,-1,3,0,-1,3> > &)const;
+#endif
+#endif

+ 413 - 0
build2/install/include/igl/AABB.h

@@ -0,0 +1,413 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_AABB_H
+#define IGL_AABB_H
+
+#include "Hit.h"
+#include "igl_inline.h"
+#include <Eigen/Core>
+#include <Eigen/Geometry>
+#include <vector>
+namespace igl
+{
+  // Implementation of semi-general purpose axis-aligned bounding box hierarchy.
+  // The mesh (V,Ele) is stored and managed by the caller and each routine here
+  // simply takes it as references (it better not change between calls).
+  //
+  // It's a little annoying that the Dimension is a template parameter and not
+  // picked up at run time from V. This leads to duplicated code for 2d/3d (up to
+  // dim).
+  template <typename DerivedV, int DIM>
+    class AABB 
+    {
+public:
+      typedef typename DerivedV::Scalar Scalar;
+      typedef Eigen::Matrix<Scalar,1,DIM> RowVectorDIMS;
+      typedef Eigen::Matrix<Scalar,DIM,1> VectorDIMS;
+      typedef Eigen::Matrix<Scalar,Eigen::Dynamic,DIM> MatrixXDIMS;
+      // Shared pointers are slower...
+      AABB * m_left;
+      AABB * m_right;
+      Eigen::AlignedBox<Scalar,DIM> m_box;
+      // -1 non-leaf
+      int m_primitive;
+      //Scalar m_low_sqr_d;
+      //int m_depth;
+      AABB():
+        m_left(NULL), m_right(NULL),
+        m_box(), m_primitive(-1)
+        //m_low_sqr_d(std::numeric_limits<double>::infinity()),
+        //m_depth(0)
+    {}
+      // http://stackoverflow.com/a/3279550/148668
+      AABB(const AABB& other):
+        m_left(other.m_left ? new AABB(*other.m_left) : NULL),
+        m_right(other.m_right ? new AABB(*other.m_right) : NULL),
+        m_box(other.m_box),
+        m_primitive(other.m_primitive)
+        //m_low_sqr_d(other.m_low_sqr_d),
+        //m_depth(std::max(
+        //   m_left ? m_left->m_depth + 1 : 0,
+        //   m_right ? m_right->m_depth + 1 : 0))
+        {
+        }
+      // copy-swap idiom
+      friend void swap(AABB& first, AABB& second)
+      {
+        // Enable ADL
+        using std::swap;
+        swap(first.m_left,second.m_left);
+        swap(first.m_right,second.m_right);
+        swap(first.m_box,second.m_box);
+        swap(first.m_primitive,second.m_primitive);
+        //swap(first.m_low_sqr_d,second.m_low_sqr_d);
+        //swap(first.m_depth,second.m_depth);
+      }
+      // Pass-by-value (aka copy)
+      AABB& operator=(AABB other)
+      {
+        swap(*this,other);
+        return *this;
+      }
+      AABB(AABB&& other):
+        // initialize via default constructor
+        AABB() 
+      {
+        swap(*this,other);
+      }
+      // Seems like there should have been an elegant solution to this using
+      // the copy-swap idiom above:
+      IGL_INLINE void deinit()
+      {
+        m_primitive = -1;
+        m_box = Eigen::AlignedBox<Scalar,DIM>();
+        delete m_left;
+        m_left = NULL;
+        delete m_right;
+        m_right = NULL;
+      }
+      ~AABB()
+      {
+        deinit();
+      }
+      // Build an Axis-Aligned Bounding Box tree for a given mesh and given
+      // serialization of a previous AABB tree.
+      //
+      // Inputs:
+      //   V  #V by dim list of mesh vertex positions. 
+      //   Ele  #Ele by dim+1 list of mesh indices into #V. 
+      //   bb_mins  max_tree by dim list of bounding box min corner positions
+      //   bb_maxs  max_tree by dim list of bounding box max corner positions
+      //   elements  max_tree list of element or (not leaf id) indices into Ele
+      //   i  recursive call index {0}
+      template <
+        typename DerivedEle, 
+        typename Derivedbb_mins, 
+        typename Derivedbb_maxs,
+        typename Derivedelements>
+        IGL_INLINE void init(
+            const Eigen::MatrixBase<DerivedV> & V,
+            const Eigen::MatrixBase<DerivedEle> & Ele, 
+            const Eigen::MatrixBase<Derivedbb_mins> & bb_mins,
+            const Eigen::MatrixBase<Derivedbb_maxs> & bb_maxs,
+            const Eigen::MatrixBase<Derivedelements> & elements,
+            const int i = 0);
+      // Wrapper for root with empty serialization
+      template <typename DerivedEle>
+      IGL_INLINE void init(
+          const Eigen::MatrixBase<DerivedV> & V,
+          const Eigen::MatrixBase<DerivedEle> & Ele);
+      // Build an Axis-Aligned Bounding Box tree for a given mesh.
+      //
+      // Inputs:
+      //   V  #V by dim list of mesh vertex positions. 
+      //   Ele  #Ele by dim+1 list of mesh indices into #V. 
+      //   SI  #Ele by dim list revealing for each coordinate where Ele's
+      //     barycenters would be sorted: SI(e,d) = i --> the dth coordinate of
+      //     the barycenter of the eth element would be placed at position i in a
+      //     sorted list.
+      //   I  #I list of indices into Ele of elements to include (for recursive
+      //     calls)
+      // 
+      template <typename DerivedEle, typename DerivedSI, typename DerivedI>
+      IGL_INLINE void init(
+          const Eigen::MatrixBase<DerivedV> & V,
+          const Eigen::MatrixBase<DerivedEle> & Ele, 
+          const Eigen::MatrixBase<DerivedSI> & SI,
+          const Eigen::MatrixBase<DerivedI>& I);
+      // Return whether at leaf node
+      IGL_INLINE bool is_leaf() const;
+      // Find the indices of elements containing given point: this makes sense
+      // when Ele is a co-dimension 0 simplex (tets in 3D, triangles in 2D).
+      //
+      // Inputs:
+      //   V  #V by dim list of mesh vertex positions. **Should be same as used to
+      //     construct mesh.**
+      //   Ele  #Ele by dim+1 list of mesh indices into #V. **Should be same as used to
+      //     construct mesh.**
+      //   q  dim row-vector query position
+      //   first  whether to only return first element containing q
+      // Returns:
+      //   list of indices of elements containing q
+      template <typename DerivedEle, typename Derivedq>
+      IGL_INLINE std::vector<int> find(
+          const Eigen::MatrixBase<DerivedV> & V,
+          const Eigen::MatrixBase<DerivedEle> & Ele, 
+          const Eigen::MatrixBase<Derivedq> & q,
+          const bool first=false) const;
+
+      // If number of elements m then total tree size should be 2*h where h is
+      // the deepest depth 2^ceil(log(#Ele*2-1))
+      IGL_INLINE int subtree_size() const;
+
+      // Serialize this class into 3 arrays (so we can pass it pack to matlab)
+      //
+      // Outputs:
+      //   bb_mins  max_tree by dim list of bounding box min corner positions
+      //   bb_maxs  max_tree by dim list of bounding box max corner positions
+      //   elements  max_tree list of element or (not leaf id) indices into Ele
+      //   i  recursive call index into these arrays {0}
+      template <
+        typename Derivedbb_mins, 
+        typename Derivedbb_maxs,
+        typename Derivedelements>
+        IGL_INLINE void serialize(
+            Eigen::PlainObjectBase<Derivedbb_mins> & bb_mins,
+            Eigen::PlainObjectBase<Derivedbb_maxs> & bb_maxs,
+            Eigen::PlainObjectBase<Derivedelements> & elements,
+            const int i = 0) const;
+      // Compute squared distance to a query point
+      //
+      // Inputs:
+      //   V  #V by dim list of vertex positions
+      //   Ele  #Ele by dim list of simplex indices
+      //   p  dim-long query point 
+      // Outputs:
+      //   i  facet index corresponding to smallest distances
+      //   c  closest point
+      // Returns squared distance
+      //
+      // Known bugs: currently assumes Elements are triangles regardless of
+      // dimension.
+      template <typename DerivedEle>
+      IGL_INLINE Scalar squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & p,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+//private:
+      // Compute squared distance to a query point
+      //
+      // Inputs:
+      //   V  #V by dim list of vertex positions
+      //   Ele  #Ele by dim list of simplex indices
+      //   p  dim-long query point 
+      //   low_sqr_d  lower bound on squared distance, specified maximum squared
+      //     distance 
+      //   up_sqr_d  current upper bounded on squared distance, current minimum
+      //     squared distance (only consider distances less than this), see
+      //     output.
+      // Outputs:
+      //   up_sqr_d  updated current minimum squared distance
+      //   i  facet index corresponding to smallest distances
+      //   c  closest point
+      // Returns squared distance
+      //
+      // Known bugs: currently assumes Elements are triangles regardless of
+      // dimension.
+      template <typename DerivedEle>
+      IGL_INLINE Scalar squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & p,
+        const Scalar low_sqr_d,
+        const Scalar up_sqr_d,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+      // Default low_sqr_d
+      template <typename DerivedEle>
+      IGL_INLINE Scalar squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & p,
+        const Scalar up_sqr_d,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+      // All hits
+      template <typename DerivedEle>
+      IGL_INLINE bool intersect_ray(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & origin,
+        const RowVectorDIMS & dir,
+        std::vector<igl::Hit> & hits) const;
+      // First hit
+      template <typename DerivedEle>
+      IGL_INLINE bool intersect_ray(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & origin,
+        const RowVectorDIMS & dir,
+        igl::Hit & hit) const;
+//private:
+      template <typename DerivedEle>
+      IGL_INLINE bool intersect_ray(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & origin,
+        const RowVectorDIMS & dir,
+        const Scalar min_t,
+        igl::Hit & hit) const;
+
+
+public:
+      // Compute the squared distance from all query points in P to the
+      // _closest_ points on the primitives stored in the AABB hierarchy for
+      // the mesh (V,Ele).
+      //
+      // Inputs:
+      //   V  #V by dim list of vertex positions
+      //   Ele  #Ele by dim list of simplex indices
+      //   P  #P by dim list of query points
+      // Outputs:
+      //   sqrD  #P list of squared distances
+      //   I  #P list of indices into Ele of closest primitives
+      //   C  #P by dim list of closest points
+      template <
+        typename DerivedEle,
+        typename DerivedP, 
+        typename DerivedsqrD, 
+        typename DerivedI, 
+        typename DerivedC>
+      IGL_INLINE void squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const Eigen::MatrixBase<DerivedP> & P,
+        Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+        Eigen::PlainObjectBase<DerivedI> & I,
+        Eigen::PlainObjectBase<DerivedC> & C) const;
+
+      // Compute the squared distance from all query points in P already stored
+      // in its own AABB hierarchy to the _closest_ points on the primitives
+      // stored in the AABB hierarchy for the mesh (V,Ele).
+      //
+      // Inputs:
+      //   V  #V by dim list of vertex positions
+      //   Ele  #Ele by dim list of simplex indices
+      //   other  AABB hierarchy of another set of primitives (must be points)
+      //   other_V  #other_V by dim list of query points
+      //   other_Ele  #other_Ele by ss list of simplex indices into other_V
+      //     (must be simple list of points: ss == 1)
+      // Outputs:
+      //   sqrD  #P list of squared distances
+      //   I  #P list of indices into Ele of closest primitives
+      //   C  #P by dim list of closest points
+      template < 
+        typename DerivedEle,
+        typename Derivedother_V,
+        typename Derivedother_Ele,
+        typename DerivedsqrD, 
+        typename DerivedI, 
+        typename DerivedC>
+      IGL_INLINE void squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const AABB<Derivedother_V,DIM> & other,
+        const Eigen::MatrixBase<Derivedother_V> & other_V,
+        const Eigen::MatrixBase<Derivedother_Ele> & other_Ele, 
+        Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+        Eigen::PlainObjectBase<DerivedI> & I,
+        Eigen::PlainObjectBase<DerivedC> & C) const;
+private:
+      template < 
+        typename DerivedEle,
+        typename Derivedother_V,
+        typename Derivedother_Ele,
+        typename DerivedsqrD, 
+        typename DerivedI, 
+        typename DerivedC>
+      IGL_INLINE Scalar squared_distance_helper(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const AABB<Derivedother_V,DIM> * other,
+        const Eigen::MatrixBase<Derivedother_V> & other_V,
+        const Eigen::MatrixBase<Derivedother_Ele>& other_Ele, 
+        const Scalar up_sqr_d,
+        Eigen::PlainObjectBase<DerivedsqrD> & sqrD,
+        Eigen::PlainObjectBase<DerivedI> & I,
+        Eigen::PlainObjectBase<DerivedC> & C) const;
+      // Compute the squared distance to the primitive in this node: assumes
+      // that this is indeed a leaf node.
+      //
+      // Inputs:
+      //   V  #V by dim list of vertex positions
+      //   Ele  #Ele by dim list of simplex indices
+      //   p  dim-long query point
+      //   sqr_d  current minimum distance for this query, see output
+      //   i  current index into Ele of closest point, see output
+      //   c  dim-long current closest point, see output
+      // Outputs:
+      //   sqr_d   minimum of initial value and squared distance to this
+      //     primitive
+      //   i  possibly updated index into Ele of closest point
+      //   c  dim-long possibly updated closest point
+      template <typename DerivedEle>
+      IGL_INLINE void leaf_squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & p,
+        const Scalar low_sqr_d,
+        Scalar & sqr_d,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+      // Default low_sqr_d
+      template <typename DerivedEle>
+      IGL_INLINE void leaf_squared_distance(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedEle> & Ele, 
+        const RowVectorDIMS & p,
+        Scalar & sqr_d,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+      // If new distance (sqr_d_candidate) is less than current distance
+      // (sqr_d), then update this distance and its associated values
+      // _in-place_:
+      //
+      // Inputs:
+      //   p  dim-long query point (only used in DEBUG mode)
+      //   sqr_d  candidate minimum distance for this query, see output
+      //   i  candidate index into Ele of closest point, see output
+      //   c  dim-long candidate closest point, see output
+      //   sqr_d  current minimum distance for this query, see output
+      //   i  current index into Ele of closest point, see output
+      //   c  dim-long current closest point, see output
+      // Outputs:
+      //   sqr_d   minimum of initial value and squared distance to this
+      //     primitive
+      //   i  possibly updated index into Ele of closest point
+      //   c  dim-long possibly updated closest point
+      IGL_INLINE void set_min(
+        const RowVectorDIMS & p,
+        const Scalar sqr_d_candidate,
+        const int i_candidate,
+        const RowVectorDIMS & c_candidate,
+        Scalar & sqr_d,
+        int & i,
+        Eigen::PlainObjectBase<RowVectorDIMS> & c) const;
+public:
+      EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+    };
+}
+
+
+#ifndef IGL_STATIC_LIBRARY
+#  include "AABB.cpp"
+#endif
+
+#endif

+ 36 - 0
build2/install/include/igl/ARAPEnergyType.h

@@ -0,0 +1,36 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_ARAPENERGYTYPE_H
+#define IGL_ARAPENERGYTYPE_H
+namespace igl
+{
+  //     ARAP_ENERGY_TYPE_SPOKES  "As-rigid-as-possible Surface Modeling" by [Sorkine and
+  //       Alexa 2007], rotations defined at vertices affecting incident edges,
+  //       default
+  //     ARAP_ENERGY_TYPE_SPOKES-AND-RIMS  Adapted version of "As-rigid-as-possible Surface
+  //       Modeling" by [Sorkine and Alexa 2007] presented in section 4.2 of or
+  //       "A simple geometric model for elastic deformation" by [Chao et al.
+  //       2010], rotations defined at vertices affecting incident edges and
+  //       opposite edges
+  //     ARAP_ENERGY_TYPE_ELEMENTS  "A local-global approach to mesh parameterization" by
+  //       [Liu et al.  2010] or "A simple geometric model for elastic
+  //       deformation" by [Chao et al.  2010], rotations defined at elements
+  //       (triangles or tets) 
+  //     ARAP_ENERGY_TYPE_DEFAULT  Choose one automatically: spokes and rims
+  //       for surfaces, elements for planar meshes and tets (not fully
+  //       supported)
+  enum ARAPEnergyType
+  {
+    ARAP_ENERGY_TYPE_SPOKES = 0,
+    ARAP_ENERGY_TYPE_SPOKES_AND_RIMS = 1,
+    ARAP_ENERGY_TYPE_ELEMENTS = 2,
+    ARAP_ENERGY_TYPE_DEFAULT = 3,
+    NUM_ARAP_ENERGY_TYPES = 4
+  };
+}
+#endif

+ 130 - 0
build2/install/include/igl/AtA_cached.cpp

@@ -0,0 +1,130 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+//
+// Copyright (C) 2017 Daniele Panozzo <daniele.panozzo@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can
+// obtain one at http://mozilla.org/MPL/2.0/.
+#include "AtA_cached.h"
+
+#include <iostream>
+#include <vector>
+#include <utility>
+
+template <typename Scalar>
+IGL_INLINE void igl::AtA_cached_precompute(
+    const Eigen::SparseMatrix<Scalar>& A,
+    igl::AtA_cached_data& data,
+    Eigen::SparseMatrix<Scalar>& AtA)
+{
+  // 1 Compute At (this could be avoided, but performance-wise it will not make a difference)
+  std::vector<std::vector<int> > Col_RowPtr;
+  std::vector<std::vector<int> > Col_IndexPtr;
+
+  Col_RowPtr.resize(A.cols());
+  Col_IndexPtr.resize(A.cols());
+
+  for (unsigned k=0; k<A.outerSize(); ++k)
+  {
+    unsigned outer_index = *(A.outerIndexPtr()+k);
+    unsigned next_outer_index = (k+1 == A.outerSize()) ? A.nonZeros() : *(A.outerIndexPtr()+k+1); 
+    
+    for (unsigned l=outer_index; l<next_outer_index; ++l)
+    {
+      int col = k;
+      int row = *(A.innerIndexPtr()+l);
+      int value_index = l;
+      assert(col < A.cols());
+      assert(col >= 0);
+      assert(row < A.rows());
+      assert(row >= 0);
+      assert(value_index >= 0);
+      assert(value_index < A.nonZeros());
+
+      Col_RowPtr[col].push_back(row);
+      Col_IndexPtr[col].push_back(value_index);
+    }
+  }
+
+  Eigen::SparseMatrix<Scalar> At = A.transpose();
+  At.makeCompressed();
+  AtA = At * A;
+  AtA.makeCompressed();
+
+  assert(AtA.isCompressed());
+
+  // If weights are not provided, use 1
+  if (data.W.size() == 0)
+    data.W = Eigen::VectorXd::Ones(A.rows());
+  assert(data.W.size() == A.rows());
+
+  data.I_outer.reserve(AtA.outerSize());
+  data.I_row.reserve(2*AtA.nonZeros());
+  data.I_col.reserve(2*AtA.nonZeros());
+  data.I_w.reserve(2*AtA.nonZeros());
+
+  // 2 Construct the rules
+  for (unsigned k=0; k<AtA.outerSize(); ++k)
+  {
+    unsigned outer_index = *(AtA.outerIndexPtr()+k);
+    unsigned next_outer_index = (k+1 == AtA.outerSize()) ? AtA.nonZeros() : *(AtA.outerIndexPtr()+k+1); 
+    
+    for (unsigned l=outer_index; l<next_outer_index; ++l)
+    {
+      int col = k;
+      int row = *(AtA.innerIndexPtr()+l);
+      int value_index = l;
+      assert(col < AtA.cols());
+      assert(col >= 0);
+      assert(row < AtA.rows());
+      assert(row >= 0);
+      assert(value_index >= 0);
+      assert(value_index < AtA.nonZeros());
+
+      data.I_outer.push_back(data.I_row.size());
+
+      // Find correspondences
+      unsigned i=0;
+      unsigned j=0;
+      while (i<Col_RowPtr[row].size() && j<Col_RowPtr[col].size())
+      {
+          if (Col_RowPtr[row][i] == Col_RowPtr[col][j])
+          {
+            data.I_row.push_back(Col_IndexPtr[row][i]);
+            data.I_col.push_back(Col_IndexPtr[col][j]);
+            data.I_w.push_back(Col_RowPtr[col][j]);
+            ++i;
+            ++j;
+          } else 
+          if (Col_RowPtr[row][i] > Col_RowPtr[col][j])
+            ++j;
+          else
+            ++i;
+
+      }
+    }
+  }
+  data.I_outer.push_back(data.I_row.size()); // makes it more efficient to iterate later on
+
+  igl::AtA_cached(A,data,AtA);
+}
+
+template <typename Scalar>
+IGL_INLINE void igl::AtA_cached(
+    const Eigen::SparseMatrix<Scalar>& A,
+    const igl::AtA_cached_data& data,
+    Eigen::SparseMatrix<Scalar>& AtA)
+{
+  for (unsigned i=0; i<data.I_outer.size()-1; ++i)
+  {
+    *(AtA.valuePtr() + i) = 0;
+    for (unsigned j=data.I_outer[i]; j<data.I_outer[i+1]; ++j)
+      *(AtA.valuePtr() + i) += *(A.valuePtr() + data.I_row[j]) * data.W[data.I_w[j]] * *(A.valuePtr() + data.I_col[j]);
+  }
+}
+
+
+#ifdef IGL_STATIC_LIBRARY
+template void igl::AtA_cached<double>(Eigen::SparseMatrix<double, 0, int> const&, igl::AtA_cached_data const&, Eigen::SparseMatrix<double, 0, int>&);
+template void igl::AtA_cached_precompute<double>(Eigen::SparseMatrix<double, 0, int> const&, igl::AtA_cached_data&, Eigen::SparseMatrix<double, 0, int>&);
+#endif

+ 70 - 0
build2/install/include/igl/AtA_cached.h

@@ -0,0 +1,70 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2017 Daniele Panozzo <daniele.panozzo@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_ATA_CACHED_H
+#define IGL_ATA_CACHED_H
+#include "igl_inline.h"
+#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
+#include <Eigen/Dense>
+#include <Eigen/Sparse>
+namespace igl
+{  
+  struct AtA_cached_data
+  {
+    // Weights
+    Eigen::VectorXd W;
+
+    // Flatten composition rules
+    std::vector<int> I_row;
+    std::vector<int> I_col;
+    std::vector<int> I_w;
+
+    // For each entry of AtA, points to the beginning
+    // of the composition rules
+    std::vector<int> I_outer;
+  };
+
+  // Computes At * W * A, where A is sparse and W is diagonal. Divides the 
+  // construction in two phases, one
+  // for fixing the sparsity pattern, and one to populate it with values. Compared to
+  // evaluating it directly, this version is slower for the first time (since it requires a
+  // precomputation), but faster to the subsequent evaluations.
+  //
+  // Input:
+  //   A m x n sparse matrix
+  //   data stores the precomputed sparsity pattern, data.W contains the optional diagonal weights (stored as a dense vector). If W is not provided, it is replaced by the identity.
+  // Outputs:
+  //   AtA  m by m matrix computed as AtA * W * A
+  //
+  // Example:
+  // AtA_data = igl::AtA_cached_data();
+  // AtA_data.W = W;
+  // if (s.AtA.rows() == 0)
+  //   igl::AtA_cached_precompute(s.A,s.AtA_data,s.AtA);
+  // else
+  //   igl::AtA_cached(s.A,s.AtA_data,s.AtA);
+  template <typename Scalar>
+  IGL_INLINE void AtA_cached_precompute(
+    const Eigen::SparseMatrix<Scalar>& A,
+    AtA_cached_data& data,
+    Eigen::SparseMatrix<Scalar>& AtA
+    );
+
+  template <typename Scalar>
+  IGL_INLINE void AtA_cached(
+    const Eigen::SparseMatrix<Scalar>& A,
+    const AtA_cached_data& data,
+    Eigen::SparseMatrix<Scalar>& AtA
+    );
+  
+}
+
+#ifndef IGL_STATIC_LIBRARY
+#  include "AtA_cached.cpp"
+#endif
+
+#endif

+ 18 - 0
build2/install/include/igl/C_STR.h

@@ -0,0 +1,18 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_C_STR_H
+#define IGL_C_STR_H
+// http://stackoverflow.com/a/2433143/148668
+// Suppose you have a function:
+//   void func(const char * c);
+// Then you can write:
+//   func(C_STR("foo"<<1<<"bar"));
+#include <sstream>
+#include <string>
+#define C_STR(X) static_cast<std::ostringstream&>(std::ostringstream().flush() << X).str().c_str()
+#endif

+ 359 - 0
build2/install/include/igl/Camera.h

@@ -0,0 +1,359 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_CAMERA_H
+#define IGL_CAMERA_H
+
+// you're idiot, M$!
+#if defined(_WIN32)
+#undef far
+#undef near
+#endif
+
+#include <Eigen/Geometry>
+#include <Eigen/Core>
+#include "PI.h"
+
+#define IGL_CAMERA_MIN_ANGLE 5.0
+namespace igl
+{
+
+  // A simple camera class. The camera stores projection parameters (field of
+  // view angle, aspect ratio, near and far clips) as well as a rigid
+  // transformation *of the camera as if it were also a scene object*. Thus, the
+  // **inverse** of this rigid transformation is the modelview transformation.
+  class Camera
+  {
+    public:
+      // On windows you might need: -fno-delayed-template-parsing
+      //static constexpr double IGL_CAMERA_MIN_ANGLE = 5.;
+      //  m_angle  Field of view angle in degrees {45}
+      //  m_aspect  Aspect ratio {1}
+      //  m_near  near clipping plane {1e-2}
+      //  m_far  far clipping plane {100}
+      //  m_at_dist  distance of looking at point {1}
+      //  m_orthographic  whether to use othrographic projection {false}
+      //  m_rotation_conj  Conjugate of rotation part of rigid transformation of
+      //    camera {identity}. Note: we purposefully store the conjugate because
+      //    this is what TW_TYPE_QUAT4D is expecting.
+      //  m_translation  Translation part of rigid transformation of camera
+      //    {(0,0,1)}
+      double m_angle, m_aspect, m_near, m_far, m_at_dist;
+      bool m_orthographic;
+      Eigen::Quaterniond m_rotation_conj;
+      Eigen::Vector3d m_translation;
+    public:
+      inline Camera();
+      inline virtual ~Camera(){}
+      // Return projection matrix that takes relative camera coordinates and
+      // transforms it to viewport coordinates
+      //
+      // Note:
+      //
+      //     if(m_angle > 0)
+      //     {
+      //       gluPerspective(m_angle,m_aspect,m_near,m_at_dist+m_far);
+      //     }else
+      //     {
+      //       gluOrtho(-0.5*aspect,0.5*aspect,-0.5,0.5,m_at_dist+m_near,m_far);
+      //     }
+      //
+      // Is equivalent to
+      //
+      //     glMultMatrixd(projection().data());
+      //
+      inline Eigen::Matrix4d projection() const;
+      // Return an Affine transformation (rigid actually) that 
+      // takes relative coordinates and tramsforms them into world 3d
+      // coordinates: moves the camera into the scene.
+      inline Eigen::Affine3d affine() const;
+      // Return an Affine transformation (rigid actually) that puts the takes a
+      // world 3d coordinate and transforms it into the relative camera
+      // coordinates: moves the scene in front of the camera.
+      //
+      // Note:
+      //
+      //     gluLookAt(
+      //       eye()(0), eye()(1), eye()(2),
+      //       at()(0), at()(1), at()(2),
+      //       up()(0), up()(1), up()(2));
+      //
+      // Is equivalent to
+      //
+      //     glMultMatrixd(camera.inverse().matrix().data());
+      //
+      // See also: affine, eye, at, up
+      inline Eigen::Affine3d inverse() const;
+      // Returns world coordinates position of center or "eye" of camera.
+      inline Eigen::Vector3d eye() const;
+      // Returns world coordinate position of a point "eye" is looking at.
+      inline Eigen::Vector3d at() const;
+      // Returns world coordinate unit vector of "up" vector
+      inline Eigen::Vector3d up() const;
+      // Return top right corner of unit plane in relative coordinates, that is
+      // (w/2,h/2,1)
+      inline Eigen::Vector3d unit_plane() const;
+      // Move dv in the relative coordinate frame of the camera (move the FPS)
+      //
+      // Inputs:
+      //   dv  (x,y,z) displacement vector
+      //
+      inline void dolly(const Eigen::Vector3d & dv);
+      // "Scale zoom": Move `eye`, but leave `at`
+      //
+      // Input:
+      //   s  amount to scale distance to at
+      inline void push_away(const double s);
+      // Aka "Hitchcock", "Vertigo", "Spielberg" or "Trombone" zoom:
+      // simultaneously dolly while changing angle so that `at` not only stays
+      // put in relative coordinates but also projected coordinates. That is
+      //
+      // Inputs:
+      //   da  change in angle in degrees
+      inline void dolly_zoom(const double da);
+      // Turn around eye so that rotation is now q
+      //
+      // Inputs:
+      //   q  new rotation as quaternion
+      inline void turn_eye(const Eigen::Quaterniond & q);
+      // Orbit around at so that rotation is now q
+      //
+      // Inputs:
+      //   q  new rotation as quaternion
+      inline void orbit(const Eigen::Quaterniond & q);
+      // Rotate and translate so that camera is situated at "eye" looking at "at"
+      // with "up" pointing up.
+      //
+      // Inputs:
+      //   eye  (x,y,z) coordinates of eye position
+      //   at   (x,y,z) coordinates of at position
+      //   up   (x,y,z) coordinates of up vector
+      inline void look_at(
+        const Eigen::Vector3d & eye,
+        const Eigen::Vector3d & at,
+        const Eigen::Vector3d & up);
+    // Needed any time Eigen Structures are used as class members
+    // http://eigen.tuxfamily.org/dox-devel/group__TopicStructHavingEigenMembers.html
+    public:
+        EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+  };
+}
+
+// Implementation
+#include "PI.h"
+#include "EPS.h"
+#include <cmath>
+#include <iostream>
+#include <cassert>
+
+inline igl::Camera::Camera():
+  m_angle(45.0),m_aspect(1),m_near(1e-2),m_far(100),m_at_dist(1),
+  m_orthographic(false),
+  m_rotation_conj(1,0,0,0),
+  m_translation(0,0,1)
+{
+}
+
+inline Eigen::Matrix4d igl::Camera::projection() const
+{
+  Eigen::Matrix4d P;
+  using namespace std;
+  const double far = m_at_dist + m_far;
+  const double near = m_near;
+  // http://stackoverflow.com/a/3738696/148668
+  if(m_orthographic)
+  {
+    const double f = 0.5;
+    const double left = -f*m_aspect;
+    const double right = f*m_aspect;
+    const double bottom = -f;
+    const double top = f;
+    const double tx = (right+left)/(right-left);
+    const double ty = (top+bottom)/(top-bottom);
+    const double tz = (far+near)/(far-near);
+    const double z_fix = 0.5 /m_at_dist / tan(m_angle*0.5 * (igl::PI/180.) );
+    P<<
+      z_fix*2./(right-left), 0, 0, -tx,
+      0, z_fix*2./(top-bottom), 0, -ty,
+      0, 0, -z_fix*2./(far-near),  -tz,
+      0, 0, 0, 1;
+  }else
+  {
+    const double yScale = tan(PI*0.5 - 0.5*m_angle*PI/180.);
+    // http://stackoverflow.com/a/14975139/148668
+    const double xScale = yScale/m_aspect;
+    P<< 
+      xScale, 0, 0, 0,
+      0, yScale, 0, 0,
+      0, 0, -(far+near)/(far-near), -1,
+      0, 0, -2.*near*far/(far-near), 0;
+    P = P.transpose().eval();
+  }
+  return P;
+}
+
+inline Eigen::Affine3d igl::Camera::affine() const
+{
+  using namespace Eigen;
+  Affine3d t = Affine3d::Identity();
+  t.rotate(m_rotation_conj.conjugate());
+  t.translate(m_translation);
+  return t;
+}
+
+inline Eigen::Affine3d igl::Camera::inverse() const
+{
+  using namespace Eigen;
+  Affine3d t = Affine3d::Identity();
+  t.translate(-m_translation);
+  t.rotate(m_rotation_conj);
+  return t;
+}
+
+inline Eigen::Vector3d igl::Camera::eye() const
+{
+  using namespace Eigen;
+  return affine() * Vector3d(0,0,0);
+}
+
+inline Eigen::Vector3d igl::Camera::at() const
+{
+  using namespace Eigen;
+  return affine() * (Vector3d(0,0,-1)*m_at_dist);
+}
+
+inline Eigen::Vector3d igl::Camera::up() const
+{
+  using namespace Eigen;
+  Affine3d t = Affine3d::Identity();
+  t.rotate(m_rotation_conj.conjugate());
+  return t * Vector3d(0,1,0);
+}
+
+inline Eigen::Vector3d igl::Camera::unit_plane() const
+{
+  // Distance of center pixel to eye
+  const double d = 1.0;
+  const double a = m_aspect;
+  const double theta = m_angle*PI/180.;
+  const double w =
+    2.*sqrt(-d*d/(a*a*pow(tan(0.5*theta),2.)-1.))*a*tan(0.5*theta);
+  const double h = w/a;
+  return Eigen::Vector3d(w*0.5,h*0.5,-d);
+}
+
+inline void igl::Camera::dolly(const Eigen::Vector3d & dv)
+{
+  m_translation += dv;
+}
+
+inline void igl::Camera::push_away(const double s)
+{
+  using namespace Eigen;
+#ifndef NDEBUG
+  Vector3d old_at = at();
+#endif
+  const double old_at_dist = m_at_dist;
+  m_at_dist = old_at_dist * s;
+  dolly(Vector3d(0,0,1)*(m_at_dist - old_at_dist));
+  assert((old_at-at()).squaredNorm() < DOUBLE_EPS);
+}
+
+inline void igl::Camera::dolly_zoom(const double da)
+{
+  using namespace std;
+  using namespace Eigen;
+#ifndef NDEBUG
+  Vector3d old_at = at();
+#endif
+  const double old_angle = m_angle;
+  if(old_angle + da < IGL_CAMERA_MIN_ANGLE)
+  {
+    m_orthographic = true;
+  }else if(old_angle + da > IGL_CAMERA_MIN_ANGLE)
+  {
+    m_orthographic = false;
+  }
+  if(!m_orthographic)
+  {
+    m_angle += da;
+    m_angle = min(89.,max(IGL_CAMERA_MIN_ANGLE,m_angle));
+    // change in distance
+    const double s = 
+      (2.*tan(old_angle/2./180.*igl::PI)) /
+      (2.*tan(m_angle/2./180.*igl::PI)) ;
+    const double old_at_dist = m_at_dist;
+    m_at_dist = old_at_dist * s;
+    dolly(Vector3d(0,0,1)*(m_at_dist - old_at_dist));
+    assert((old_at-at()).squaredNorm() < DOUBLE_EPS);
+  }
+}
+
+inline void igl::Camera::turn_eye(const Eigen::Quaterniond & q)
+{
+  using namespace Eigen;
+  Vector3d old_eye = eye();
+  // eye should be fixed
+  //
+  // eye_1 = R_1 * t_1 = eye_0
+  // t_1 = R_1' * eye_0
+  m_rotation_conj = q.conjugate();
+  m_translation = m_rotation_conj * old_eye;
+  assert((old_eye - eye()).squaredNorm() < DOUBLE_EPS);
+}
+
+inline void igl::Camera::orbit(const Eigen::Quaterniond & q)
+{
+  using namespace Eigen;
+  Vector3d old_at = at();
+  // at should be fixed
+  //
+  // at_1 = R_1 * t_1 - R_1 * z = at_0
+  // t_1 = R_1' * (at_0 + R_1 * z)
+  m_rotation_conj = q.conjugate();
+  m_translation = 
+    m_rotation_conj * 
+      (old_at + 
+         m_rotation_conj.conjugate() * Vector3d(0,0,1) * m_at_dist);
+  assert((old_at - at()).squaredNorm() < DOUBLE_EPS);
+}
+
+inline void igl::Camera::look_at(
+  const Eigen::Vector3d & eye,
+  const Eigen::Vector3d & at,
+  const Eigen::Vector3d & up)
+{
+  using namespace Eigen;
+  using namespace std;
+  // http://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml
+  // Normalize vector from at to eye
+  Vector3d F = eye-at;
+  m_at_dist = F.norm();
+  F.normalize();
+  // Project up onto plane orthogonal to F and normalize
+  assert(up.cross(F).norm() > DOUBLE_EPS && "(eye-at) x up ≈ 0");
+  const Vector3d proj_up = (up-(up.dot(F))*F).normalized();
+  Quaterniond a,b;
+  a.setFromTwoVectors(Vector3d(0,0,-1),-F);
+  b.setFromTwoVectors(a*Vector3d(0,1,0),proj_up);
+  m_rotation_conj = (b*a).conjugate();
+  m_translation = m_rotation_conj * eye;
+  //cout<<"m_at_dist: "<<m_at_dist<<endl;
+  //cout<<"proj_up: "<<proj_up.transpose()<<endl;
+  //cout<<"F: "<<F.transpose()<<endl;
+  //cout<<"eye(): "<<this->eye().transpose()<<endl;
+  //cout<<"at(): "<<this->at().transpose()<<endl;
+  //cout<<"eye()-at(): "<<(this->eye()-this->at()).normalized().transpose()<<endl;
+  //cout<<"eye-this->eye(): "<<(eye-this->eye()).squaredNorm()<<endl;
+  assert(           (eye-this->eye()).squaredNorm() < DOUBLE_EPS);
+  //assert((F-(this->eye()-this->at()).normalized()).squaredNorm() < 
+  //  DOUBLE_EPS);
+  assert(           (at-this->at()).squaredNorm() < DOUBLE_EPS);
+  //assert(        (proj_up-this->up()).squaredNorm() < DOUBLE_EPS);
+}
+
+#endif

+ 30 - 0
build2/install/include/igl/EPS.cpp

@@ -0,0 +1,30 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#include "EPS.h"
+
+template <> IGL_INLINE float igl::EPS()
+{
+  return igl::FLOAT_EPS;
+}
+template <> IGL_INLINE double igl::EPS()
+{
+  return igl::DOUBLE_EPS;
+}
+
+template <> IGL_INLINE float igl::EPS_SQ()
+{
+  return igl::FLOAT_EPS_SQ;
+}
+template <> IGL_INLINE double igl::EPS_SQ()
+{
+  return igl::DOUBLE_EPS_SQ;
+}
+
+#ifdef IGL_STATIC_LIBRARY
+// Explicit template instantiation
+#endif

+ 32 - 0
build2/install/include/igl/EPS.h

@@ -0,0 +1,32 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_EPS_H
+#define IGL_EPS_H
+#include "igl_inline.h"
+namespace igl
+{
+  // Define a standard value for double epsilon
+  const double DOUBLE_EPS    = 1.0e-14;
+  const double DOUBLE_EPS_SQ = 1.0e-28;
+  const float FLOAT_EPS    = 1.0e-7;
+  const float FLOAT_EPS_SQ = 1.0e-14;
+  // Function returning EPS for corresponding type
+  template <typename S_type> IGL_INLINE S_type EPS();
+  template <typename S_type> IGL_INLINE S_type EPS_SQ();
+  // Template specializations for float and double
+  template <> IGL_INLINE float EPS<float>();
+  template <> IGL_INLINE double EPS<double>();
+  template <> IGL_INLINE float EPS_SQ<float>();
+  template <> IGL_INLINE double EPS_SQ<double>();
+}
+
+#ifndef IGL_STATIC_LIBRARY
+#  include "EPS.cpp"
+#endif
+
+#endif

+ 158 - 0
build2/install/include/igl/HalfEdgeIterator.cpp

@@ -0,0 +1,158 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+//
+// Copyright (C) 2014 Daniele Panozzo <daniele.panozzo@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can
+// obtain one at http://mozilla.org/MPL/2.0/.
+
+#include "HalfEdgeIterator.h"
+
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::HalfEdgeIterator(
+    const Eigen::PlainObjectBase<DerivedF>& _F,
+    const Eigen::PlainObjectBase<DerivedFF>& _FF,
+    const Eigen::PlainObjectBase<DerivedFFi>& _FFi,
+    int _fi,
+    int _ei,
+    bool _reverse
+)
+: fi(_fi), ei(_ei), reverse(_reverse), F(_F), FF(_FF), FFi(_FFi)
+{}
+
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE void igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::flipF()
+{
+  if (isBorder())
+    return;
+
+  int fin = (FF)(fi,ei);
+  int ein = (FFi)(fi,ei);
+
+  fi = fin;
+  ei = ein;
+  reverse = !reverse;
+}
+
+
+// Change Edge
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE void igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::flipE()
+{
+  if (!reverse)
+    ei = (ei+2)%3; // ei-1
+  else
+    ei = (ei+1)%3;
+
+  reverse = !reverse;
+}
+
+// Change Vertex
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE void igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::flipV()
+{
+  reverse = !reverse;
+}
+
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE bool igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::isBorder()
+{
+  return (FF)(fi,ei) == -1;
+}
+
+/*!
+ * Returns the next edge skipping the border
+ *      _________
+ *     /\ c | b /\
+ *    /  \  |  /  \
+ *   / d  \ | / a  \
+ *  /______\|/______\
+ *          v
+ * In this example, if a and d are of-border and the pos is iterating counterclockwise, this method iterate through the faces incident on vertex v,
+ * producing the sequence a, b, c, d, a, b, c, ...
+ */
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE bool igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::NextFE()
+{
+  if ( isBorder() ) // we are on a border
+  {
+    do
+    {
+      flipF();
+      flipE();
+    } while (!isBorder());
+    flipE();
+    return false;
+  }
+  else
+  {
+    flipF();
+    flipE();
+    return true;
+  }
+}
+
+// Get vertex index
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE int igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::Vi()
+{
+  assert(fi >= 0);
+  assert(fi < F.rows());
+  assert(ei >= 0);
+  assert(ei <= 2);
+
+  if (!reverse)
+    return (F)(fi,ei);
+  else
+    return (F)(fi,(ei+1)%3);
+}
+
+// Get face index
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE int igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::Fi()
+{
+  return fi;
+}
+
+// Get edge index
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE int igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::Ei()
+{
+  return ei;
+}
+
+
+template <typename DerivedF, typename DerivedFF, typename DerivedFFi>
+IGL_INLINE bool igl::HalfEdgeIterator<DerivedF,DerivedFF,DerivedFFi>::operator==(HalfEdgeIterator& p2)
+{
+  return
+      (
+          (fi == p2.fi) &&
+              (ei == p2.ei) &&
+              (reverse == p2.reverse) &&
+              (F   == p2.F) &&
+              (FF  == p2.FF) &&
+              (FFi == p2.FFi)
+      );
+}
+
+#ifdef IGL_STATIC_LIBRARY
+// Explicit template instantiation
+template      igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>   >::HalfEdgeIterator(Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, int, int, bool);
+template igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >::HalfEdgeIterator(Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, int, int, bool);
+template bool igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::NextFE();
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::Ei();
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::Ei();
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>   >::Ei();
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>   >::Fi();
+template bool igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>  ,Eigen::Matrix<int, -1, 3, 0, -1, 3>   >::NextFE();
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::Vi();
+template      igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::HalfEdgeIterator(Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, int, int, bool);
+template int  igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::Fi();
+template void igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::flipE();
+template void igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::flipF();
+template void igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::flipV();
+template bool igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >::operator==(igl::HalfEdgeIterator<Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1>,Eigen::Matrix<int, -1, -1, 0, -1, -1> >&);
+template int igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >::Fi();
+template bool igl::HalfEdgeIterator<Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >::NextFE();
+#endif

+ 114 - 0
build2/install/include/igl/HalfEdgeIterator.h

@@ -0,0 +1,114 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+//
+// Copyright (C) 2014 Daniele Panozzo <daniele.panozzo@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_HALFEDGEITERATOR_H
+#define IGL_HALFEDGEITERATOR_H
+
+#include <Eigen/Core>
+
+#include <vector>
+#include <igl/igl_inline.h>
+
+// This file violates many of the libigl style guidelines.
+
+namespace igl
+{
+  // HalfEdgeIterator - Fake halfedge for fast and easy navigation
+  // on triangle meshes with vertex_triangle_adjacency and
+  // triangle_triangle adjacency
+  //
+  // Note: this is different to classical Half Edge data structure.
+  //    Instead, it follows cell-tuple in [Brisson, 1989]
+  //    "Representing geometric structures in d dimensions: topology and order."
+  //    This class can achieve local navigation similar to half edge in OpenMesh
+  //    But the logic behind each atom operation is different.
+  //    So this should be more properly called TriangleTupleIterator.
+  //
+  // Each tuple contains information on (face, edge, vertex)
+  //    and encoded by (face, edge \in {0,1,2}, bool reverse)
+  //
+  // Inputs:
+  //    F #F by 3 list of "faces"
+  //    FF #F by 3 list of triangle-triangle adjacency.
+  //    FFi #F by 3 list of FF inverse. For FF and FFi, refer to
+  //        "triangle_triangle_adjacency.h"
+  // Usages:
+  //    FlipF/E/V changes solely one actual face/edge/vertex resp.
+  //    NextFE iterates through one-ring of a vertex robustly.
+  //
+  template <
+    typename DerivedF,
+    typename DerivedFF,
+    typename DerivedFFi>
+  class HalfEdgeIterator
+  {
+  public:
+    // Init the HalfEdgeIterator by specifying Face,Edge Index and Orientation
+    IGL_INLINE HalfEdgeIterator(
+        const Eigen::PlainObjectBase<DerivedF>& _F,
+        const Eigen::PlainObjectBase<DerivedFF>& _FF,
+        const Eigen::PlainObjectBase<DerivedFFi>& _FFi,
+        int _fi,
+        int _ei,
+        bool _reverse = false
+        );
+
+    // Change Face
+    IGL_INLINE void flipF();
+
+    // Change Edge
+    IGL_INLINE void flipE();
+
+    // Change Vertex
+    IGL_INLINE void flipV();
+
+    IGL_INLINE bool isBorder();
+
+    /*!
+     * Returns the next edge skipping the border
+     *      _________
+     *     /\ c | b /\
+     *    /  \  |  /  \
+     *   / d  \ | / a  \
+     *  /______\|/______\
+     *          v
+     * In this example, if a and d are of-border and the pos is iterating
+     counterclockwise, this method iterate through the faces incident on vertex
+     v,
+     * producing the sequence a, b, c, d, a, b, c, ...
+     */
+    IGL_INLINE bool NextFE();
+
+    // Get vertex index
+    IGL_INLINE int Vi();
+
+    // Get face index
+    IGL_INLINE int Fi();
+
+    // Get edge index
+    IGL_INLINE int Ei();
+
+    IGL_INLINE bool operator==(HalfEdgeIterator& p2);
+
+  private:
+    int fi;
+    int ei;
+    bool reverse;
+
+    // All the same type? This is likely to break.
+    const Eigen::PlainObjectBase<DerivedF> & F;
+    const Eigen::PlainObjectBase<DerivedFF> & FF;
+    const Eigen::PlainObjectBase<DerivedFFi> & FFi;
+  };
+
+}
+
+#ifndef IGL_STATIC_LIBRARY
+#  include "HalfEdgeIterator.cpp"
+#endif
+
+#endif

+ 25 - 0
build2/install/include/igl/Hit.h

@@ -0,0 +1,25 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+//               2014 Christian Schüller <schuellchr@gmail.com> 
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_HIT_H
+#define IGL_HIT_H
+
+namespace igl
+{
+  // Reimplementation of the embree::Hit struct from embree1.0
+  // 
+  // TODO: template on floating point type
+  struct Hit
+  {
+    int id; // primitive id
+    int gid; // geometry id
+    float u,v; // barycentric coordinates
+    float t; // distance = direction*t to intersection
+  };
+}
+#endif 

+ 117 - 0
build2/install/include/igl/IndexComparison.h

@@ -0,0 +1,117 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_INDEXCOMPARISON_H
+#define IGL_INDEXCOMPARISON_H
+#include <iostream>
+namespace igl{
+  // Comparison struct used by sort
+  // http://bytes.com/topic/c/answers/132045-sort-get-index
+
+  // For use with functions like std::sort
+  template<class T> struct IndexLessThan
+  {
+    IndexLessThan(const T arr) : arr(arr) {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      return arr[a] < arr[b];
+    }
+    const T arr;
+  };
+
+  // For use with functions like std::unique
+  template<class T> struct IndexEquals
+  {
+    IndexEquals(const T arr) : arr(arr) {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      return arr[a] == arr[b];
+    }
+    const T arr;
+  };
+
+  // For use with functions like std::sort
+  template<class T> struct IndexVectorLessThan
+  {
+    IndexVectorLessThan(const T & vec) : vec ( vec) {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      return vec(a) < vec(b);
+    }
+    const T & vec;
+  };
+
+  // For use with functions like std::sort
+  template<class T> struct IndexDimLessThan
+  {
+    IndexDimLessThan(const T & mat,const int & dim, const int & j) : 
+      mat(mat),
+      dim(dim),
+      j(j)
+    {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      if(dim == 1)
+      {
+        return mat(a,j) < mat(b,j);
+      }else
+      {
+        return mat(j,a) < mat(j,b);
+      }
+    }
+    const T & mat;
+    const int & dim;
+    const int & j;
+  };
+
+  // For use with functions like std::sort
+  template<class T> struct IndexRowLessThan
+  {
+    IndexRowLessThan(const T & mat) : mat ( mat) {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      const int cols = mat.cols();
+      // Lexicographical order
+      for(int j = 0;j<cols;j++)
+      {
+        if(mat(a,j) > mat(b,j))
+        {
+          return false;
+        } else if(mat(a,j) < mat(b,j))
+        {
+          return true;
+        }
+      }
+      // equality is false
+      return false;
+    }
+    const T & mat;
+  };
+
+  // For use with functions like std::sort
+  template<class T> struct IndexRowEquals
+  {
+    IndexRowEquals(const T & mat) : mat ( mat) {}
+    bool operator()(const size_t a, const size_t b) const
+    {
+      const int cols = mat.cols();
+      // Lexicographical order
+      for(int j = 0;j<cols;j++)
+      {
+        if(mat(a,j) !=  mat(b,j))
+        {
+          return false;
+        }
+      }
+      return true;
+    }
+    const T & mat;
+  };
+
+}
+
+#endif

+ 61 - 0
build2/install/include/igl/LinSpaced.h

@@ -0,0 +1,61 @@
+#ifndef IGL_LINSPACED_H
+#define IGL_LINSPACED_H
+#include <Eigen/Core>
+// This function is not intended to be a permanent function of libigl. Rather
+// it is a "drop-in" workaround for documented bug in Eigen:
+// http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1383
+//
+// Replace: 
+//
+//     Eigen::VectorXi::LinSpaced(size,low,high);
+//
+// With:
+//
+//     igl::LinSpaced<Eigen::VectorXi>(size,low,high);
+//
+// Specifcally, this version will _always_ return an empty vector if size==0,
+// regardless of the values for low and high. If size != 0, then this simply
+// returns the result of Eigen::Derived::LinSpaced.
+//
+// Until this bug is fixed, we should also avoid calls to the member function
+// `.setLinSpaced`. This means replacing:
+//
+//     a.setLinSpaced(size,low,high);
+//
+// with
+//
+//     a = igl::LinSpaced<decltype(a) >(size,low,high);
+//
+namespace igl
+{
+  template <typename Derived>
+  //inline typename Eigen::DenseBase< Derived >::RandomAccessLinSpacedReturnType 
+  inline Derived LinSpaced(
+    typename Derived::Index size,
+    const typename Derived::Scalar & low,
+    const typename Derived::Scalar & high);
+}
+
+// Implementation
+
+template <typename Derived>
+//inline typename Eigen::DenseBase< Derived >::RandomAccessLinSpacedReturnType 
+inline Derived
+igl::LinSpaced(
+  typename Derived::Index size,
+  const typename Derived::Scalar & low,
+  const typename Derived::Scalar & high)
+{
+  if(size == 0)
+  {
+    // Force empty vector with correct "RandomAccessLinSpacedReturnType" type.
+    return Derived::LinSpaced(0,0,1);
+  }else if(high < low)
+  {
+    return low-Derived::LinSpaced(size,low-low,low-high).array();
+  }else{
+    return Derived::LinSpaced(size,low,high);
+  }
+}
+
+#endif

+ 26 - 0
build2/install/include/igl/MappingEnergyType.h

@@ -0,0 +1,26 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2018 Zhongshi Jiang <jiangzs@nyu.edu>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_MAPPINGENERGYTYPE_H
+#define IGL_MAPPINGENERGYTYPE_H
+namespace igl
+{
+  // Energy Types used for Parameterization/Mapping. 
+  // Refer to SLIM [Rabinovich et al. 2017] for more details
+  // Todo: Integrate with ARAPEnergyType
+  
+  enum MappingEnergyType
+  {
+    ARAP,
+    LOG_ARAP,
+    SYMMETRIC_DIRICHLET,
+    CONFORMAL,
+    EXP_CONFORMAL,
+    EXP_SYMMETRIC_DIRICHLET
+  };
+}
+#endif

+ 23 - 0
build2/install/include/igl/MeshBooleanType.h

@@ -0,0 +1,23 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_MESH_BOOLEAN_TYPE_H
+#define IGL_MESH_BOOLEAN_TYPE_H
+namespace igl
+{
+  enum MeshBooleanType
+  {
+    MESH_BOOLEAN_TYPE_UNION = 0,
+    MESH_BOOLEAN_TYPE_INTERSECT = 1,
+    MESH_BOOLEAN_TYPE_MINUS = 2,
+    MESH_BOOLEAN_TYPE_XOR = 3,
+    MESH_BOOLEAN_TYPE_RESOLVE = 4,
+    NUM_MESH_BOOLEAN_TYPES = 5
+  };
+};
+
+#endif

+ 27 - 0
build2/install/include/igl/NormalType.h

@@ -0,0 +1,27 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_NORMALTYPE_H
+#define IGL_NORMALTYPE_H
+
+namespace igl
+{
+  // PER_VERTEX_NORMALS  Normals computed per vertex based on incident faces
+  // PER_FACE_NORMALS  Normals computed per face
+  // PER_CORNER_NORMALS  Normals computed per corner (aka wedge) based on
+  //   incident faces without sharp edge
+  enum NormalType
+  {
+    PER_VERTEX_NORMALS,
+    PER_FACE_NORMALS,
+    PER_CORNER_NORMALS
+  };
+#  define NUM_NORMAL_TYPE 3
+}
+
+#endif
+

+ 22 - 0
build2/install/include/igl/ONE.h

@@ -0,0 +1,22 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_ONE_H
+#define IGL_ONE_H
+namespace igl
+{
+  // Often one needs a reference to a dummy variable containing one as its
+  // value, for example when using AntTweakBar's
+  // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ONE);
+  const char CHAR_ONE = 1;
+  const int INT_ONE = 1;
+  const unsigned int UNSIGNED_INT_ONE = 1;
+  const double DOUBLE_ONE = 1;
+  const float FLOAT_ONE = 1;
+}
+#endif
+

+ 19 - 0
build2/install/include/igl/PI.h

@@ -0,0 +1,19 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_PI_H
+#define IGL_PI_H
+namespace igl
+{
+  // Use standard mathematical constants' M_PI if available
+#ifdef M_PI
+  const double PI = M_PI;
+#else
+  const double PI = 3.1415926535897932384626433832795;
+#endif
+}
+#endif

+ 55 - 0
build2/install/include/igl/REDRUM.h

@@ -0,0 +1,55 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_REDRUM_H
+#define IGL_REDRUM_H
+
+// Q: These should probably be inside the igl namespace. What's the correct
+// way to do that?
+// A: I guess the right way is to not use a macro but a proper function with
+// streams as input and output.
+
+// ANSI color codes for formatting iostream style output
+
+#ifdef IGL_REDRUM_NOOP
+
+// Bold Red, etc.
+#define NORUM(X)     X
+#define REDRUM(X)     X
+#define GREENRUM(X)   X
+#define YELLOWRUM(X)  X
+#define BLUERUM(X)    X
+#define MAGENTARUM(X) X
+#define CYANRUM(X)    X
+// Regular Red, etc.
+#define REDGIN(X)     X
+#define GREENGIN(X)   X
+#define YELLOWGIN(X)  X
+#define BLUEGIN(X)    X
+#define MAGENTAGIN(X) X
+#define CYANGIN(X)    X
+
+#else
+
+// Bold Red, etc.
+#define NORUM(X)       ""<<X<<""
+#define REDRUM(X)      "\e[1m\e[31m"<<X<<"\e[m"
+#define GREENRUM(X)    "\e[1m\e[32m"<<X<<"\e[m"
+#define YELLOWRUM(X)   "\e[1m\e[33m"<<X<<"\e[m"
+#define BLUERUM(X)     "\e[1m\e[34m"<<X<<"\e[m"
+#define MAGENTARUM(X)  "\e[1m\e[35m"<<X<<"\e[m"
+#define CYANRUM(X)     "\e[1m\e[36m"<<X<<"\e[m"
+// Regular Red, etc.
+#define REDGIN(X)      "\e[31m"<<X<<"\e[m"
+#define GREENGIN(X)    "\e[32m"<<X<<"\e[m"
+#define YELLOWGIN(X)   "\e[33m"<<X<<"\e[m"
+#define BLUEGIN(X)     "\e[34m"<<X<<"\e[m"
+#define MAGENTAGIN(X)  "\e[35m"<<X<<"\e[m"
+#define CYANGIN(X)     "\e[36m"<<X<<"\e[m"
+#endif
+
+#endif 

+ 18 - 0
build2/install/include/igl/STR.h

@@ -0,0 +1,18 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_STR_H
+#define IGL_STR_H
+// http://stackoverflow.com/a/2433143/148668
+#include <string>
+#include <sstream>
+// Suppose you have a function:
+//   void func(std::string c);
+// Then you can write:
+//   func(STR("foo"<<1<<"bar"));
+#define STR(X) static_cast<std::ostringstream&>(std::ostringstream().flush() << X).str()
+#endif 

+ 23 - 0
build2/install/include/igl/SolverStatus.h

@@ -0,0 +1,23 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_SOLVER_STATUS_H
+#define IGL_SOLVER_STATUS_H
+namespace igl
+{
+  enum SolverStatus
+  {
+    // Good
+    SOLVER_STATUS_CONVERGED = 0,
+    // OK
+    SOLVER_STATUS_MAX_ITER = 1,
+    // Bad
+    SOLVER_STATUS_ERROR = 2,
+    NUM_SOLVER_STATUSES = 3,
+  };
+};
+#endif

+ 70 - 0
build2/install/include/igl/SortableRow.h

@@ -0,0 +1,70 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_SORTABLE_ROW_H
+#define IGL_SORTABLE_ROW_H
+
+// Simple class to contain a rowvector which allows rowwise sorting and
+// reordering
+#include <Eigen/Core>
+
+namespace igl
+{
+  // Templates:
+  //   T  should be a matrix that implements .size(), and operator(int i)
+  template <typename T>
+  class SortableRow
+  {
+    public:
+      T data;
+    public:
+      SortableRow():data(){};
+      SortableRow(const T & data):data(data){};
+      bool operator<(const SortableRow & that) const
+      {
+        // Get reference so that I can use parenthesis
+        const SortableRow<T> & THIS = *this;
+        // Lexicographical
+        int minc = (THIS.data.size() < that.data.size()? 
+            THIS.data.size() : that.data.size());
+        // loop over columns
+        for(int i = 0;i<minc;i++)
+        {
+          if(THIS.data(i) == that.data(i))
+          {
+            continue;
+          }
+          return THIS.data(i) < that.data(i);
+        }
+        // All characters the same, comes done to length
+        return THIS.data.size()<that.data.size();
+      };
+      bool operator==(const SortableRow & that) const
+      {
+        // Get reference so that I can use parenthesis
+        const SortableRow<T> & THIS = *this;
+        if(THIS.data.size() != that.data.size())
+        {
+          return false;
+        }
+        for(int i = 0;i<THIS.data.size();i++)
+        {
+          if(THIS.data(i) != that.data(i))
+          {
+            return false;
+          }
+        }
+        return true;
+      };
+      bool operator!=(const SortableRow & that) const
+      {
+        return !(*this == that);
+      };
+  };
+}
+
+#endif

+ 179 - 0
build2/install/include/igl/Timer.h

@@ -0,0 +1,179 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+// High Resolution Timer.
+//
+// Resolution on Mac (clock tick)
+// Resolution on Linux (1 us not tested)
+// Resolution on Windows (clock tick not tested)
+
+#ifndef IGL_TIMER_H
+#define IGL_TIMER_H
+
+#ifdef WIN32   // Windows system specific
+#include <windows.h>
+#elif __APPLE__ // Unix based system specific
+#include <mach/mach_time.h> // for mach_absolute_time
+#else
+#include <sys/time.h>
+#endif
+#include <cstddef>
+
+namespace igl
+{
+  class Timer
+  {
+  public:
+    // default constructor
+    Timer():
+      stopped(0),
+#ifdef WIN32
+      frequency(),
+      startCount(),
+      endCount()
+#elif __APPLE__
+      startCount(0),
+      endCount(0)
+#else
+      startCount(),
+      endCount()
+#endif
+    {
+#ifdef WIN32
+      QueryPerformanceFrequency(&frequency);
+      startCount.QuadPart = 0;
+      endCount.QuadPart = 0;
+#elif __APPLE__
+      startCount = 0;
+      endCount = 0;
+#else
+      startCount.tv_sec = startCount.tv_usec = 0;
+      endCount.tv_sec = endCount.tv_usec = 0;
+#endif
+
+      stopped = 0;
+    }
+    // default destructor
+    ~Timer()                     
+    {
+
+    }
+
+#ifdef __APPLE__
+    //Raw mach_absolute_times going in, difference in seconds out
+    double subtractTimes( uint64_t endTime, uint64_t startTime )
+    {
+      uint64_t difference = endTime - startTime;
+      static double conversion = 0.0;
+
+      if( conversion == 0.0 )
+      {
+        mach_timebase_info_data_t info;
+        kern_return_t err = mach_timebase_info( &info );
+
+        //Convert the timebase into seconds
+        if( err == 0  )
+          conversion = 1e-9 * (double) info.numer / (double) info.denom;
+      }
+
+      return conversion * (double) difference;
+    }
+#endif
+
+    // start timer
+    void   start()               
+    {
+      stopped = 0; // reset stop flag
+#ifdef WIN32
+      QueryPerformanceCounter(&startCount);
+#elif __APPLE__
+      startCount = mach_absolute_time();
+#else
+      gettimeofday(&startCount, NULL);
+#endif
+
+    }
+
+    // stop the timer
+    void   stop()                
+    {
+      stopped = 1; // set timer stopped flag
+
+#ifdef WIN32
+      QueryPerformanceCounter(&endCount);
+#elif __APPLE__
+      endCount = mach_absolute_time();
+#else
+      gettimeofday(&endCount, NULL);
+#endif
+
+    }
+    // get elapsed time in second
+    double getElapsedTime()      
+    {
+      return this->getElapsedTimeInSec();
+    }
+    // get elapsed time in second (same as getElapsedTime)
+    double getElapsedTimeInSec() 
+    {
+      return this->getElapsedTimeInMicroSec() * 0.000001;
+    }
+
+    // get elapsed time in milli-second
+    double getElapsedTimeInMilliSec()
+    {
+      return this->getElapsedTimeInMicroSec() * 0.001;
+    }
+    // get elapsed time in micro-second
+    double getElapsedTimeInMicroSec()          
+    {
+      double startTimeInMicroSec = 0;
+      double endTimeInMicroSec = 0;
+
+#ifdef WIN32
+      if(!stopped)
+        QueryPerformanceCounter(&endCount);
+
+      startTimeInMicroSec = 
+        startCount.QuadPart * (1000000.0 / frequency.QuadPart);
+      endTimeInMicroSec = endCount.QuadPart * (1000000.0 / frequency.QuadPart);
+#elif __APPLE__
+      if (!stopped)
+        endCount = mach_absolute_time();
+
+      return subtractTimes(endCount,startCount)/1e-6;
+#else
+      if(!stopped)
+        gettimeofday(&endCount, NULL);
+
+      startTimeInMicroSec = 
+        (startCount.tv_sec * 1000000.0) + startCount.tv_usec;
+      endTimeInMicroSec = (endCount.tv_sec * 1000000.0) + endCount.tv_usec;
+#endif
+
+      return endTimeInMicroSec - startTimeInMicroSec;
+    }
+
+  private:
+    // stop flag 
+    int    stopped;               
+#ifdef WIN32
+    // ticks per second
+    LARGE_INTEGER frequency;      
+    LARGE_INTEGER startCount;     
+    LARGE_INTEGER endCount;       
+#elif __APPLE__
+    uint64_t startCount;           
+    uint64_t endCount;             
+#else
+    timeval startCount;           
+    timeval endCount;             
+#endif
+  };
+}
+#endif // TIMER_H_DEF
+

+ 69 - 0
build2/install/include/igl/Viewport.h

@@ -0,0 +1,69 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_VIEWPORT_H
+#define IGL_VIEWPORT_H
+
+namespace igl
+{
+  // Simple Viewport class for an opengl context. Handles reshaping and mouse.
+  struct Viewport
+  {
+    int x,y,width,height;
+    // Constructors
+    Viewport(
+      const int x=0, 
+      const int y=0, 
+      const int width=0,
+      const int height=0):
+      x(x),
+      y(y),
+      width(width),
+      height(height)
+    {
+    };
+    virtual ~Viewport(){}
+    void reshape(
+      const int x, 
+      const int y, 
+      const int width,
+      const int height)
+    {
+      this->x = x;
+      this->y = y;
+      this->width = width;
+      this->height = height;
+    };
+    // Given mouse_x,mouse_y on the entire window return mouse_x, mouse_y in
+    // this viewport.
+    //
+    // Inputs:
+    //   my  mouse y-coordinate
+    //   wh  window height
+    // Returns y-coordinate in viewport
+    int mouse_y(const int my,const int wh)
+    {
+      return my - (wh - height - y);
+    }
+    // Inputs:
+    //   mx  mouse x-coordinate
+    // Returns x-coordinate in viewport
+    int mouse_x(const int mx)
+    {
+      return mx - x;
+    }
+    // Returns whether point (mx,my) is in extend of Viewport
+    bool inside(const int mx, const int my) const
+    {
+      return 
+        mx >= x && my >= y && 
+        mx < x+width && my < y+height;
+    }
+  };
+}
+
+#endif

+ 377 - 0
build2/install/include/igl/WindingNumberAABB.h

@@ -0,0 +1,377 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2014 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+
+// # MUTUAL DEPENDENCY ISSUE FOR HEADER ONLY VERSION
+// MUST INCLUDE winding_number.h first before guard:
+#include "winding_number.h"
+
+#ifndef IGL_WINDINGNUMBERAABB_H
+#define IGL_WINDINGNUMBERAABB_H
+#include "WindingNumberTree.h"
+
+namespace igl
+{
+  template <
+    typename Point,
+    typename DerivedV, 
+    typename DerivedF >
+  class WindingNumberAABB : public WindingNumberTree<Point,DerivedV,DerivedF>
+  {
+    protected:
+      Point min_corner;
+      Point max_corner;
+      typename DerivedV::Scalar total_positive_area;
+    public: 
+      enum SplitMethod
+      {
+        CENTER_ON_LONGEST_AXIS = 0,
+        MEDIAN_ON_LONGEST_AXIS = 1,
+        NUM_SPLIT_METHODS = 2
+      } split_method;
+    public:
+      inline WindingNumberAABB():
+        total_positive_area(std::numeric_limits<typename DerivedV::Scalar>::infinity()),
+        split_method(MEDIAN_ON_LONGEST_AXIS)
+      {}
+      inline WindingNumberAABB(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedF> & F);
+      inline WindingNumberAABB(
+        const WindingNumberTree<Point,DerivedV,DerivedF> & parent,
+        const Eigen::MatrixBase<DerivedF> & F);
+      // Initialize some things
+      inline void set_mesh(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedF> & F);
+      inline void init();
+      inline bool inside(const Point & p) const;
+      inline virtual void grow();
+      // Compute min and max corners
+      inline void compute_min_max_corners();
+      inline typename DerivedV::Scalar max_abs_winding_number(const Point & p) const;
+      inline typename DerivedV::Scalar max_simple_abs_winding_number(const Point & p) const;
+  };
+}
+
+// Implementation
+
+#include "winding_number.h"
+
+#include "barycenter.h"
+#include "median.h"
+#include "doublearea.h"
+#include "per_face_normals.h"
+
+#include <limits>
+#include <vector>
+#include <iostream>
+
+// Minimum number of faces in a hierarchy element (this is probably dependent
+// on speed of machine and compiler optimization)
+#ifndef WindingNumberAABB_MIN_F
+#  define WindingNumberAABB_MIN_F 100
+#endif
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberAABB<Point,DerivedV,DerivedF>::set_mesh(
+    const Eigen::MatrixBase<DerivedV> & V,
+    const Eigen::MatrixBase<DerivedF> & F)
+{
+  igl::WindingNumberTree<Point,DerivedV,DerivedF>::set_mesh(V,F);
+  init();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberAABB<Point,DerivedV,DerivedF>::init()
+{
+  using namespace Eigen;
+  assert(max_corner.size() == 3);
+  assert(min_corner.size() == 3);
+  compute_min_max_corners();
+  Eigen::Matrix<typename DerivedV::Scalar,Eigen::Dynamic,1> dblA;
+  doublearea(this->getV(),this->getF(),dblA);
+  total_positive_area = dblA.sum()/2.0;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberAABB<Point,DerivedV,DerivedF>::WindingNumberAABB(
+  const Eigen::MatrixBase<DerivedV> & V,
+  const Eigen::MatrixBase<DerivedF> & F):
+  WindingNumberTree<Point,DerivedV,DerivedF>(V,F),
+  min_corner(),
+  max_corner(),
+  total_positive_area(
+    std::numeric_limits<typename DerivedV::Scalar>::infinity()),
+  split_method(MEDIAN_ON_LONGEST_AXIS)
+{
+  init();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberAABB<Point,DerivedV,DerivedF>::WindingNumberAABB(
+  const WindingNumberTree<Point,DerivedV,DerivedF> & parent,
+  const Eigen::MatrixBase<DerivedF> & F):
+  WindingNumberTree<Point,DerivedV,DerivedF>(parent,F),
+  min_corner(),
+  max_corner(),
+  total_positive_area(
+    std::numeric_limits<typename DerivedV::Scalar>::infinity()),
+  split_method(MEDIAN_ON_LONGEST_AXIS)
+{
+  init();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberAABB<Point,DerivedV,DerivedF>::grow()
+{
+  using namespace std;
+  using namespace Eigen;
+  // Clear anything that already exists
+  this->delete_children();
+
+  //cout<<"cap.rows(): "<<this->getcap().rows()<<endl;
+  //cout<<"F.rows(): "<<this->getF().rows()<<endl;
+
+  // Base cases
+  if(
+    this->getF().rows() <= (WindingNumberAABB_MIN_F>0?WindingNumberAABB_MIN_F:0) ||
+    (this->getcap().rows() - 2) >= this->getF().rows())
+  {
+    // Don't grow
+    return;
+  }
+
+  // Compute longest direction
+  int max_d = -1;
+  typename DerivedV::Scalar max_len = 
+    -numeric_limits<typename DerivedV::Scalar>::infinity();
+  for(int d = 0;d<min_corner.size();d++)
+  {
+    if( (max_corner[d] - min_corner[d]) > max_len )
+    {
+      max_len = (max_corner[d] - min_corner[d]);
+      max_d = d;
+    }
+  }
+  // Compute facet barycenters
+  Eigen::Matrix<typename DerivedV::Scalar,Eigen::Dynamic,Eigen::Dynamic> BC;
+  barycenter(this->getV(),this->getF(),BC);
+
+
+  // Blerg, why is selecting rows so difficult
+
+  typename DerivedV::Scalar split_value;
+  // Split in longest direction
+  switch(split_method)
+  {
+    case MEDIAN_ON_LONGEST_AXIS:
+      // Determine median
+      median(BC.col(max_d),split_value);
+      break;
+    default:
+      assert(false);
+    case CENTER_ON_LONGEST_AXIS:
+      split_value = 0.5*(max_corner[max_d] + min_corner[max_d]);
+      break;
+  }
+  //cout<<"c: "<<0.5*(max_corner[max_d] + min_corner[max_d])<<" "<<
+  //  "m: "<<split_value<<endl;;
+
+  vector<int> id( this->getF().rows());
+  for(int i = 0;i<this->getF().rows();i++)
+  {
+    if(BC(i,max_d) <= split_value)
+    {
+      id[i] = 0; //left
+    }else
+    {
+      id[i] = 1; //right
+    }
+  }
+
+  const int lefts = (int) count(id.begin(),id.end(),0);
+  const int rights = (int) count(id.begin(),id.end(),1);
+  if(lefts == 0 || rights == 0)
+  {
+    // badly balanced base case (could try to recut)
+    return;
+  }
+  assert(lefts+rights == this->getF().rows());
+  DerivedF leftF(lefts,  this->getF().cols());
+  DerivedF rightF(rights,this->getF().cols());
+  int left_i = 0;
+  int right_i = 0;
+  for(int i = 0;i<this->getF().rows();i++)
+  {
+    if(id[i] == 0)
+    {
+      leftF.row(left_i++) = this->getF().row(i);
+    }else if(id[i] == 1)
+    {
+      rightF.row(right_i++) = this->getF().row(i);
+    }else
+    {
+      assert(false);
+    }
+  }
+  assert(right_i == rightF.rows());
+  assert(left_i == leftF.rows());
+  // Finally actually grow children and Recursively grow
+  WindingNumberAABB<Point,DerivedV,DerivedF> * leftWindingNumberAABB = 
+    new WindingNumberAABB<Point,DerivedV,DerivedF>(*this,leftF);
+  leftWindingNumberAABB->grow();
+  this->children.push_back(leftWindingNumberAABB);
+  WindingNumberAABB<Point,DerivedV,DerivedF> * rightWindingNumberAABB = 
+    new WindingNumberAABB<Point,DerivedV,DerivedF>(*this,rightF);
+  rightWindingNumberAABB->grow();
+  this->children.push_back(rightWindingNumberAABB);
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline bool igl::WindingNumberAABB<Point,DerivedV,DerivedF>::inside(const Point & p) const
+{
+  assert(p.size() == max_corner.size());
+  assert(p.size() == min_corner.size());
+  for(int i = 0;i<p.size();i++)
+  {
+    //// Perfect matching is **not** robust
+    //if( p(i) < min_corner(i) || p(i) >= max_corner(i))
+    // **MUST** be conservative
+    if( p(i) < min_corner(i) || p(i) > max_corner(i))
+    {
+      return false;
+    }
+  }
+  return true;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberAABB<Point,DerivedV,DerivedF>::compute_min_max_corners()
+{
+  using namespace std;
+  // initialize corners
+  for(int d = 0;d<min_corner.size();d++)
+  {
+    min_corner[d] =  numeric_limits<typename Point::Scalar>::infinity();
+    max_corner[d] = -numeric_limits<typename Point::Scalar>::infinity();
+  }
+
+  this->center = Point(0,0,0);
+  // Loop over facets
+  for(int i = 0;i<this->getF().rows();i++)
+  {
+    for(int j = 0;j<this->getF().cols();j++)
+    {
+      for(int d = 0;d<min_corner.size();d++)
+      {
+        min_corner[d] = 
+          this->getV()(this->getF()(i,j),d) < min_corner[d] ?  
+            this->getV()(this->getF()(i,j),d) : min_corner[d];
+        max_corner[d] = 
+          this->getV()(this->getF()(i,j),d) > max_corner[d] ?  
+            this->getV()(this->getF()(i,j),d) : max_corner[d];
+      }
+      // This is biased toward vertices incident on more than one face, but
+      // perhaps that's good
+      this->center += this->getV().row(this->getF()(i,j));
+    }
+  }
+  // Average
+  this->center.array() /= this->getF().size();
+
+  //cout<<"min_corner: "<<this->min_corner.transpose()<<endl;
+  //cout<<"Center: "<<this->center.transpose()<<endl;
+  //cout<<"max_corner: "<<this->max_corner.transpose()<<endl;
+  //cout<<"Diag center: "<<((this->max_corner + this->min_corner)*0.5).transpose()<<endl;
+  //cout<<endl;
+
+  this->radius = (max_corner-min_corner).norm()/2.0;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar
+igl::WindingNumberAABB<Point,DerivedV,DerivedF>::max_abs_winding_number(const Point & p) const
+{
+  using namespace std;
+  // Only valid if not inside
+  if(inside(p))
+  {
+    return numeric_limits<typename DerivedV::Scalar>::infinity();
+  }
+  // Q: we know the total positive area so what's the most this could project
+  // to? Remember it could be layered in the same direction.
+  return numeric_limits<typename DerivedV::Scalar>::infinity();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+  igl::WindingNumberAABB<Point,DerivedV,DerivedF>::max_simple_abs_winding_number(
+  const Point & p) const
+{
+  using namespace std;
+  using namespace Eigen;
+  // Only valid if not inside
+  if(inside(p))
+  {
+    return numeric_limits<typename DerivedV::Scalar>::infinity();
+  }
+  // Max simple is the same as sum of positive winding number contributions of
+  // bounding box
+
+  // begin precomputation
+  //MatrixXd BV((int)pow(2,3),3);
+  typedef
+    Eigen::Matrix<typename DerivedV::Scalar,Eigen::Dynamic,Eigen::Dynamic>
+    MatrixXS;
+  typedef
+    Eigen::Matrix<typename DerivedF::Scalar,Eigen::Dynamic,Eigen::Dynamic>
+    MatrixXF;
+  MatrixXS BV((int)(1<<3),3);
+  BV <<
+    min_corner[0],min_corner[1],min_corner[2],
+    min_corner[0],min_corner[1],max_corner[2],
+    min_corner[0],max_corner[1],min_corner[2],
+    min_corner[0],max_corner[1],max_corner[2],
+    max_corner[0],min_corner[1],min_corner[2],
+    max_corner[0],min_corner[1],max_corner[2],
+    max_corner[0],max_corner[1],min_corner[2],
+    max_corner[0],max_corner[1],max_corner[2];
+  MatrixXF BF(2*2*3,3);
+  BF <<
+    0,6,4,
+    0,2,6,
+    0,3,2,
+    0,1,3,
+    2,7,6,
+    2,3,7,
+    4,6,7,
+    4,7,5,
+    0,4,5,
+    0,5,1,
+    1,5,7,
+    1,7,3;
+  MatrixXS BFN;
+  per_face_normals(BV,BF,BFN);
+  // end of precomputation
+
+  // Only keep those with positive dot products
+  MatrixXF PBF(BF.rows(),BF.cols());
+  int pbfi = 0;
+  Point p2c = 0.5*(min_corner+max_corner)-p;
+  for(int i = 0;i<BFN.rows();i++)
+  {
+    if(p2c.dot(BFN.row(i)) > 0)
+    {
+      PBF.row(pbfi++) = BF.row(i);
+    }
+  }
+  PBF.conservativeResize(pbfi,PBF.cols());
+  return igl::winding_number(BV,PBF,p);
+}
+
+#endif

+ 23 - 0
build2/install/include/igl/WindingNumberMethod.h

@@ -0,0 +1,23 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_WINDINGNUMBERMETHOD_H
+#define IGL_WINDINGNUMBERMETHOD_H
+namespace igl
+{
+  // EXACT_WINDING_NUMBER_METHOD  exact hierarchical evaluation
+  // APPROX_SIMPLE_WINDING_NUMBER_METHOD  poor approximation
+  // APPROX_CACHE_WINDING_NUMBER_METHOD  another poor approximation
+  enum WindingNumberMethod
+  {
+    EXACT_WINDING_NUMBER_METHOD = 0,
+    APPROX_SIMPLE_WINDING_NUMBER_METHOD = 1,
+    APPROX_CACHE_WINDING_NUMBER_METHOD = 2,
+    NUM_WINDING_NUMBER_METHODS = 3
+  };
+}
+#endif

+ 501 - 0
build2/install/include/igl/WindingNumberTree.h

@@ -0,0 +1,501 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2014 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_WINDINGNUMBERTREE_H
+#define IGL_WINDINGNUMBERTREE_H
+#include <list>
+#include <map>
+#include <Eigen/Dense>
+#include "WindingNumberMethod.h"
+
+namespace igl
+{
+  // Space partitioning tree for computing winding number hierarchically.
+  //
+  // Templates:
+  //   Point  type for points in space, e.g. Eigen::Vector3d
+  template <
+    typename Point,
+    typename DerivedV, 
+    typename DerivedF >
+  class WindingNumberTree
+  {
+    public:
+      // Method to use (see enum above)
+      //static double min_max_w;
+      static std::map< 
+        std::pair<const WindingNumberTree*,const WindingNumberTree*>, 
+        typename DerivedV::Scalar>
+          cached;
+      // This is only need to fill in references, it should never actually be touched
+      // and shouldn't cause race conditions. (This is a hack, but I think it's "safe")
+      static DerivedV dummyV;
+    protected:
+      WindingNumberMethod method;
+      const WindingNumberTree * parent;
+      std::list<WindingNumberTree * > children;
+      typedef 
+        Eigen::Matrix<typename DerivedV::Scalar,Eigen::Dynamic,Eigen::Dynamic>
+        MatrixXS;
+      typedef 
+        Eigen::Matrix<typename DerivedF::Scalar,Eigen::Dynamic,Eigen::Dynamic>
+        MatrixXF;
+      //// List of boundary edges (recall edges are vertices in 2d)
+      //const Eigen::MatrixXi boundary;
+      // Base mesh vertices
+      DerivedV & V;
+      // Base mesh vertices with duplicates removed
+      MatrixXS SV;
+      // Facets in this bounding volume
+      MatrixXF F;
+      // Tessellated boundary curve
+      MatrixXF cap;
+      // Upper Bound on radius of enclosing ball
+      typename DerivedV::Scalar radius;
+      // (Approximate) center (of mass)
+      Point center;
+    public:
+      inline WindingNumberTree();
+      // For root
+      inline WindingNumberTree(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedF> & F);
+      // For chilluns 
+      inline WindingNumberTree(
+        const WindingNumberTree<Point,DerivedV,DerivedF> & parent,
+        const Eigen::MatrixBase<DerivedF> & F);
+      inline virtual ~WindingNumberTree();
+      inline void delete_children();
+      inline virtual void set_mesh(
+        const Eigen::MatrixBase<DerivedV> & V,
+        const Eigen::MatrixBase<DerivedF> & F);
+      // Set method
+      inline void set_method( const WindingNumberMethod & m);
+    public:
+      inline const DerivedV & getV() const;
+      inline const MatrixXF & getF() const;
+      inline const MatrixXF & getcap() const;
+      // Grow the Tree recursively
+      inline virtual void grow();
+      // Determine whether a given point is inside the bounding 
+      //
+      // Inputs:
+      //   p  query point 
+      // Returns true if the point p is inside this bounding volume
+      inline virtual bool inside(const Point & p) const;
+      // Compute the (partial) winding number of a given point p
+      // According to method
+      //  
+      // Inputs:
+      //   p  query point 
+      // Returns winding number 
+      inline typename DerivedV::Scalar winding_number(const Point & p) const;
+      // Same as above, but always computes winding number using exact method
+      // (sum over every facet)
+      inline typename DerivedV::Scalar winding_number_all(const Point & p) const;
+      // Same as above, but always computes using sum over tessllated boundary
+      inline typename DerivedV::Scalar winding_number_boundary(const Point & p) const;
+      //// Same as winding_number above, but if max_simple_abs_winding_number is
+      //// less than some threshold min_max_w just return 0 (colloquially the "fast
+      //// multipole method)
+      ////
+      ////
+      //// Inputs:
+      ////   p  query point 
+      ////   min_max_w  minimum max simple w to be processed
+      //// Returns approximate winding number
+      //double winding_number_approx_simple(
+      //  const Point & p, 
+      //  const double min_max_w);
+      // Print contents of Tree
+      //
+      // Optional input:
+      //   tab  tab to show depth
+      inline void print(const char * tab="");
+      // Determine max absolute winding number
+      //
+      // Inputs:
+      //   p  query point 
+      // Returns max winding number of 
+      inline virtual typename DerivedV::Scalar max_abs_winding_number(const Point & p) const; 
+      // Same as above, but stronger assumptions on (V,F). Assumes (V,F) is a
+      // simple polyhedron
+      inline virtual typename DerivedV::Scalar max_simple_abs_winding_number(const Point & p) const;
+      // Compute or read cached winding number for point p with respect to mesh
+      // in bounding box, recursing according to approximation criteria
+      //
+      // Inputs:
+      //   p  query point 
+      //   that  WindingNumberTree containing mesh w.r.t. which we're computing w.n.
+      // Returns cached winding number
+      inline virtual typename DerivedV::Scalar cached_winding_number(const WindingNumberTree & that, const Point & p) const;
+  };
+}
+
+// Implementation
+
+#include "WindingNumberTree.h"
+#include "winding_number.h"
+#include "triangle_fan.h"
+#include "exterior_edges.h"
+
+#include <igl/PI.h>
+#include <igl/remove_duplicate_vertices.h>
+
+#include <iostream>
+#include <limits>
+
+//template <typename Point, typename DerivedV, typename DerivedF>
+//WindingNumberMethod WindingNumberTree<Point,DerivedV,DerivedF>::method = EXACT_WINDING_NUMBER_METHOD;
+//template <typename Point, typename DerivedV, typename DerivedF>
+//double WindingNumberTree<Point,DerivedV,DerivedF>::min_max_w = 0;
+template <typename Point, typename DerivedV, typename DerivedF>
+std::map< std::pair<const igl::WindingNumberTree<Point,DerivedV,DerivedF>*,const igl::WindingNumberTree<Point,DerivedV,DerivedF>*>, typename DerivedV::Scalar>
+  igl::WindingNumberTree<Point,DerivedV,DerivedF>::cached;
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberTree<Point,DerivedV,DerivedF>::WindingNumberTree():
+  method(EXACT_WINDING_NUMBER_METHOD),
+  parent(NULL),
+  V(dummyV),
+  SV(),
+  F(),
+  cap(),
+  radius(std::numeric_limits<typename DerivedV::Scalar>::infinity()),
+  center(0,0,0)
+{
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberTree<Point,DerivedV,DerivedF>::WindingNumberTree(
+  const Eigen::MatrixBase<DerivedV> & _V,
+  const Eigen::MatrixBase<DerivedF> & _F):
+  method(EXACT_WINDING_NUMBER_METHOD),
+  parent(NULL),
+  V(dummyV),
+  SV(),
+  F(),
+  cap(),
+  radius(std::numeric_limits<typename DerivedV::Scalar>::infinity()),
+  center(0,0,0)
+{
+  set_mesh(_V,_F);
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberTree<Point,DerivedV,DerivedF>::set_mesh(
+    const Eigen::MatrixBase<DerivedV> & _V,
+    const Eigen::MatrixBase<DerivedF> & _F)
+{
+  using namespace std;
+  // Remove any exactly duplicate vertices
+  // Q: Can this ever increase the complexity of the boundary?
+  // Q: Would we gain even more by remove almost exactly duplicate vertices?
+  MatrixXF SF,SVI,SVJ;
+  igl::remove_duplicate_vertices(_V,_F,0.0,SV,SVI,SVJ,F);
+  triangle_fan(igl::exterior_edges(F),cap);
+  V = SV;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberTree<Point,DerivedV,DerivedF>::WindingNumberTree(
+  const igl::WindingNumberTree<Point,DerivedV,DerivedF> & parent,
+  const Eigen::MatrixBase<DerivedF> & _F):
+  method(parent.method),
+  parent(&parent),
+  V(parent.V),
+  SV(),
+  F(_F),
+  cap(triangle_fan(igl::exterior_edges(_F)))
+{
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline igl::WindingNumberTree<Point,DerivedV,DerivedF>::~WindingNumberTree()
+{
+  delete_children();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberTree<Point,DerivedV,DerivedF>::delete_children()
+{
+  using namespace std;
+  // Delete children
+  typename list<WindingNumberTree<Point,DerivedV,DerivedF>* >::iterator cit = children.begin();
+  while(cit != children.end())
+  {
+    // clear the memory of this item
+    delete (* cit);
+    // erase from list, returns next element in iterator
+    cit = children.erase(cit);
+  }
+}
+      
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberTree<Point,DerivedV,DerivedF>::set_method(const WindingNumberMethod & m)
+{
+  this->method = m;
+  for(auto child : children)
+  {
+    child->set_method(m);
+  }
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline const DerivedV & igl::WindingNumberTree<Point,DerivedV,DerivedF>::getV() const
+{
+  return V;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline const typename igl::WindingNumberTree<Point,DerivedV,DerivedF>::MatrixXF& 
+  igl::WindingNumberTree<Point,DerivedV,DerivedF>::getF() const
+{
+  return F;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline const typename igl::WindingNumberTree<Point,DerivedV,DerivedF>::MatrixXF& 
+  igl::WindingNumberTree<Point,DerivedV,DerivedF>::getcap() const
+{
+  return cap;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberTree<Point,DerivedV,DerivedF>::grow()
+{
+  // Don't grow
+  return;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline bool igl::WindingNumberTree<Point,DerivedV,DerivedF>::inside(const Point & /*p*/) const
+{
+  return true;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+igl::WindingNumberTree<Point,DerivedV,DerivedF>::winding_number(const Point & p) const
+{
+  using namespace std;
+  //cout<<"+"<<boundary.rows();
+  // If inside then we need to be careful
+  if(inside(p))
+  {
+    // If not a leaf then recurse
+    if(children.size()>0)
+    {
+      // Recurse on each child and accumulate
+      typename DerivedV::Scalar sum = 0;
+      for(
+        typename list<WindingNumberTree<Point,DerivedV,DerivedF>* >::const_iterator cit = children.begin();
+        cit != children.end();
+        cit++)
+      {
+        switch(method)
+        {
+          case EXACT_WINDING_NUMBER_METHOD:
+            sum += (*cit)->winding_number(p);
+            break;
+          case APPROX_SIMPLE_WINDING_NUMBER_METHOD:
+          case APPROX_CACHE_WINDING_NUMBER_METHOD:
+            //if((*cit)->max_simple_abs_winding_number(p) > min_max_w)
+            //{
+              sum += (*cit)->winding_number(p);
+            //}
+            break;
+          default:
+            assert(false);
+            break;
+        }
+      }
+      return sum;
+    }else
+    {
+      return winding_number_all(p);
+    }
+  }else{
+    // Otherwise we can just consider boundary
+    // Q: If we using the "multipole" method should we also subdivide the
+    // boundary case?
+    if((cap.rows() - 2) < F.rows())
+    {
+      switch(method)
+      {
+        case EXACT_WINDING_NUMBER_METHOD:
+          return winding_number_boundary(p);
+        case APPROX_SIMPLE_WINDING_NUMBER_METHOD:
+        {
+          typename DerivedV::Scalar dist = (p-center).norm();
+          // Radius is already an overestimate of inside
+          if(dist>1.0*radius)
+          {
+            return 0;
+          }else
+          {
+            return winding_number_boundary(p);
+          }
+        }
+        case APPROX_CACHE_WINDING_NUMBER_METHOD:
+        {
+          return parent->cached_winding_number(*this,p);
+        }
+        default: assert(false);break;
+      }
+    }else
+    {
+      // doesn't pay off to use boundary
+      return winding_number_all(p);
+    }
+  }
+  return 0;
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+  igl::WindingNumberTree<Point,DerivedV,DerivedF>::winding_number_all(const Point & p) const
+{
+  return igl::winding_number(V,F,p);
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+igl::WindingNumberTree<Point,DerivedV,DerivedF>::winding_number_boundary(const Point & p) const
+{
+  using namespace Eigen;
+  using namespace std;
+  return igl::winding_number(V,cap,p);
+}
+
+//template <typename Point, typename DerivedV, typename DerivedF>
+//inline double igl::WindingNumberTree<Point,DerivedV,DerivedF>::winding_number_approx_simple(
+//  const Point & p, 
+//  const double min_max_w)
+//{
+//  using namespace std;
+//  if(max_simple_abs_winding_number(p) > min_max_w)
+//  {
+//    return winding_number(p);
+//  }else
+//  {
+//    cout<<"Skipped! "<<max_simple_abs_winding_number(p)<<"<"<<min_max_w<<endl;
+//    return 0;
+//  }
+//}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline void igl::WindingNumberTree<Point,DerivedV,DerivedF>::print(const char * tab)
+{
+  using namespace std;
+  // Print all facets
+  cout<<tab<<"["<<endl<<F<<endl<<"]";
+  // Print children
+  for(
+      typename list<WindingNumberTree<Point,DerivedV,DerivedF>* >::iterator cit = children.begin();
+      cit != children.end();
+      cit++)
+  {
+    cout<<","<<endl;
+    (*cit)->print((string(tab)+"").c_str());
+  }
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+igl::WindingNumberTree<Point,DerivedV,DerivedF>::max_abs_winding_number(const Point & /*p*/) const
+{
+  return std::numeric_limits<typename DerivedV::Scalar>::infinity();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+igl::WindingNumberTree<Point,DerivedV,DerivedF>::max_simple_abs_winding_number(
+  const Point & /*p*/) const
+{
+  using namespace std;
+  return numeric_limits<typename DerivedV::Scalar>::infinity();
+}
+
+template <typename Point, typename DerivedV, typename DerivedF>
+inline typename DerivedV::Scalar 
+igl::WindingNumberTree<Point,DerivedV,DerivedF>::cached_winding_number(
+  const igl::WindingNumberTree<Point,DerivedV,DerivedF> & that,
+  const Point & p) const
+{
+  using namespace std;
+  // Simple metric for `is_far`
+  //
+  //   this             that
+  //                   --------
+  //   -----          /   |    \ .
+  //  /  r  \        /    R     \ .
+  // | p !   |      |     !      |
+  //  \_____/        \          /
+  //                  \________/
+  //
+  // 
+  // a = angle formed by trapazoid formed by raising sides with lengths r and R
+  // at respective centers.
+  //
+  // a = atan2(R-r,d), where d is the distance between centers
+
+  // That should be bigger (what about parent? what about sister?)
+  bool is_far = this->radius<that.radius;
+  if(is_far)
+  {
+    typename DerivedV::Scalar a = atan2(
+      that.radius - this->radius,
+      (that.center - this->center).norm());
+    assert(a>0);
+    is_far = (a<PI/8.0);
+  }
+
+  if(is_far)
+  {
+    // Not implemented yet
+    pair<const WindingNumberTree*,const WindingNumberTree*> this_that(this,&that);
+    // Need to compute it for first time?
+    if(cached.count(this_that)==0)
+    {
+      cached[this_that] = 
+        that.winding_number_boundary(this->center);
+    }
+    return cached[this_that];
+  }else if(children.size() == 0)
+  {
+    // not far and hierarchy ended too soon: can't use cache
+    return that.winding_number_boundary(p);
+  }else
+  {
+    for(
+      typename list<WindingNumberTree<Point,DerivedV,DerivedF>* >::const_iterator cit = children.begin();
+      cit != children.end();
+      cit++)
+    {
+      if((*cit)->inside(p))
+      {
+        return (*cit)->cached_winding_number(that,p);
+      }
+    }
+    // Not inside any children? This can totally happen because bounding boxes
+    // are set to bound contained facets. So sibilings may overlap and their
+    // union may not contain their parent (though, their union is certainly a
+    // subset of their parent).
+    assert(false);
+  }
+  return 0;
+}
+
+// Explicit instantiation of static variable
+template <
+  typename Point,
+  typename DerivedV, 
+  typename DerivedF >
+DerivedV igl::WindingNumberTree<Point,DerivedV,DerivedF>::dummyV;
+
+#endif

+ 21 - 0
build2/install/include/igl/ZERO.h

@@ -0,0 +1,21 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_ZERO_H
+#define IGL_ZERO_H
+namespace igl
+{
+  // Often one needs a reference to a dummy variable containing zero as its
+  // value, for example when using AntTweakBar's
+  // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ZERO);
+  const char CHAR_ZERO = 0;
+  const int INT_ZERO = 0;
+  const unsigned int UNSIGNED_INT_ZERO = 0;
+  const double DOUBLE_ZERO = 0;
+  const float FLOAT_ZERO = 0;
+}
+#endif

+ 52 - 0
build2/install/include/igl/accumarray.cpp

@@ -0,0 +1,52 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2018 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#include "accumarray.h"
+#include <cassert>
+
+template <
+  typename DerivedS,
+  typename DerivedV,
+  typename DerivedA
+  >
+void igl::accumarray(
+  const Eigen::MatrixBase<DerivedS> & S,
+  const Eigen::MatrixBase<DerivedV> & V,
+  Eigen::PlainObjectBase<DerivedA> & A)
+{
+  assert(V.size() == S.size() && "S and V should be same size");
+  if(S.size() == 0) { A.resize(0,1); return; }
+  A.setZero(S.maxCoeff()+1,1);
+  for(int s = 0;s<S.size();s++)
+  {
+    A(S(s)) += V(s);
+  }
+}
+
+template <
+  typename DerivedS,
+  typename DerivedA
+  >
+void igl::accumarray(
+  const Eigen::MatrixBase<DerivedS> & S,
+  const typename DerivedA::Scalar V,
+  Eigen::PlainObjectBase<DerivedA> & A)
+{
+  if(S.size() == 0) { A.resize(0,1); return; }
+  A.setZero(S.maxCoeff()+1,1);
+  for(int s = 0;s<S.size();s++)
+  {
+    A(S(s)) += V;
+  }
+}
+
+#ifdef IGL_STATIC_LIBRARY
+// Explicit template instantiation
+// generated by autoexplicit.sh
+template void igl::accumarray<Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<int, -1, 1, 0, -1, 1> >(Eigen::MatrixBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> > const&, Eigen::Matrix<int, -1, 1, 0, -1, 1>::Scalar, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&);
+template void igl::accumarray<Eigen::Matrix<int, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(Eigen::MatrixBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
+#endif

+ 50 - 0
build2/install/include/igl/accumarray.h

@@ -0,0 +1,50 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2018 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef ACCUMARRY_H
+#define ACCUMARRY_H
+#include "igl_inline.h"
+#include <Eigen/Core>
+namespace igl
+{
+  // ACCUMARRY Like Matlab's accumarray. Accumulate values in V using subscripts
+  // in S.
+  //
+  // Inputs:
+  //   S  #S list of subscripts
+  //   V  #V list of values
+  // Outputs:
+  //   A  max(subs)+1 list of accumulated values
+  template <
+    typename DerivedS,
+    typename DerivedV,
+    typename DerivedA
+    >
+  void accumarray(
+    const Eigen::MatrixBase<DerivedS> & S,
+    const Eigen::MatrixBase<DerivedV> & V,
+    Eigen::PlainObjectBase<DerivedA> & A);
+  // Inputs:
+  //   S  #S list of subscripts
+  //   V  single value used for all
+  // Outputs:
+  //   A  max(subs)+1 list of accumulated values
+  template <
+    typename DerivedS,
+    typename DerivedA
+    >
+  void accumarray(
+    const Eigen::MatrixBase<DerivedS> & S,
+    const typename DerivedA::Scalar V,
+    Eigen::PlainObjectBase<DerivedA> & A);
+}
+
+#ifndef IGL_STATIC_LIBRARY
+#  include "accumarray.cpp"
+#endif
+
+#endif

部分文件因文件數量過多而無法顯示