libigl 2.6.4.dev0__tar.gz → 2.6.4.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/CMakeLists.txt +3 -1
  2. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/PKG-INFO +1 -1
  3. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/pyproject.toml +1 -1
  4. libigl-2.6.4.dev1/src/LazyCageDistance.cpp +16 -0
  5. libigl-2.6.4.dev1/src/LazyCageGridMode.cpp +16 -0
  6. libigl-2.6.4.dev1/src/LazyCageMetric.cpp +17 -0
  7. libigl-2.6.4.dev1/src/lazy_cage.cpp +123 -0
  8. libigl-2.6.4.dev1/src/progressive_hulls.cpp +60 -0
  9. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tests/test_all.py +49 -3
  10. libigl-2.6.4.dev0/src/copyleft/progressive_hulls.cpp +0 -42
  11. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.github/workflows/pip.yml +0 -0
  12. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.github/workflows/wheels.yml +0 -0
  13. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.gitignore +0 -0
  14. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/CHANGELOG.md +0 -0
  15. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/LICENSE.GPL +0 -0
  16. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/LICENSE.MPL2 +0 -0
  17. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/README.md +0 -0
  18. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  19. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/copyleft/triangle_triangulate.cpp +0 -0
  20. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/SolverStatus.cpp +0 -0
  21. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/WindingNumberMethod.cpp +0 -0
  22. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/angular_distance.cpp +0 -0
  23. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/canonical_quaternions.cpp +0 -0
  24. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/column_to_quats.cpp +0 -0
  25. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/comiso_nrosy.cpp +0 -0
  26. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  27. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/file_contents_as_string.cpp +0 -0
  28. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/fit_rotations.cpp +0 -0
  29. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frame_field_deformer.cpp +0 -0
  30. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frame_to_cross_field.cpp +0 -0
  31. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frustum.cpp +0 -0
  32. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/group_sum_matrix.cpp +0 -0
  33. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/harwell_boeing.cpp +0 -0
  34. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/histc.cpp +0 -0
  35. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/hsv_to_rgb.cpp +0 -0
  36. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  37. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/intersect.cpp +0 -0
  38. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/invert_diag.cpp +0 -0
  39. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/is_planar.cpp +0 -0
  40. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/limit_faces.cpp +0 -0
  41. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/line_field_missmatch.cpp +0 -0
  42. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/line_search.cpp +0 -0
  43. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/mat_to_quat.cpp +0 -0
  44. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/material_colors.cpp +0 -0
  45. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  46. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/min_quad_dense.cpp +0 -0
  47. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/normalize_quat.cpp +0 -0
  48. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/on_boundary.cpp +0 -0
  49. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  50. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_floor.cpp +0 -0
  51. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  52. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_point.cpp +0 -0
  53. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  54. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  55. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  56. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_flare_textures.cpp +0 -0
  57. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  58. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  59. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_project.cpp +0 -0
  60. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_right_axis.cpp +0 -0
  61. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_shine_textures.cpp +0 -0
  62. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  63. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_unproject.cpp +0 -0
  64. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  65. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_up_axis.cpp +0 -0
  66. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_view_axis.cpp +0 -0
  67. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_create_shader_program.cpp +0 -0
  68. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  69. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_gl_type_size.cpp +0 -0
  70. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  71. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  72. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  73. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_load_shader.cpp +0 -0
  74. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  75. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  76. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_report_gl_error.cpp +0 -0
  77. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  78. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/ortho.cpp +0 -0
  79. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/parallel_transport_angles.cpp +0 -0
  80. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/polar_svd.cpp +0 -0
  81. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/polar_svd3x3.cpp +0 -0
  82. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  83. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  84. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_conjugate.cpp +0 -0
  85. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_mult.cpp +0 -0
  86. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_to_axis_angle.cpp +0 -0
  87. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_to_mat.cpp +0 -0
  88. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quats_to_column.cpp +0 -0
  89. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/random_quaternion.cpp +0 -0
  90. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readBF.cpp +0 -0
  91. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readNODE.cpp +0 -0
  92. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readPLY.cpp +0 -0
  93. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readSTL.cpp +0 -0
  94. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rgb_to_hsv.cpp +0 -0
  95. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rotate_by_quat.cpp +0 -0
  96. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  97. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  98. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/snap_to_fixed_up.cpp +0 -0
  99. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_angles.cpp +0 -0
  100. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_triangles.cpp +0 -0
  101. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_vectors_ccw.cpp +0 -0
  102. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3.cpp +0 -0
  103. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3_avx.cpp +0 -0
  104. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3_sse.cpp +0 -0
  105. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/trackball.cpp +0 -0
  106. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/transpose_blocks.cpp +0 -0
  107. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/unique_rows.cpp +0 -0
  108. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/voxel_grid.cpp +0 -0
  109. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writePLY.cpp +0 -0
  110. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writeSTL.cpp +0 -0
  111. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writeWRL.cpp +0 -0
  112. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/MeshBooleanType.cpp +0 -0
  113. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/NormalType.cpp +0 -0
  114. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/collapse_edge.cpp +0 -0
  115. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  116. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  117. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  118. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  119. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  120. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  121. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  122. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  123. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  124. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  125. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  126. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  127. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  128. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  129. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  130. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  131. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  132. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  133. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  134. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  135. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  136. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  137. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  138. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  139. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  140. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  141. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  142. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  143. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  144. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  145. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  146. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  147. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  148. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  149. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  150. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  151. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  152. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  153. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  154. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  155. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  156. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  157. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  158. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  159. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  160. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  161. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  162. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  163. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  164. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  165. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  166. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  167. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  168. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  169. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  170. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  171. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  172. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  173. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  174. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  175. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  176. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  177. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  178. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  179. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  180. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  181. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  182. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  183. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  184. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  185. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  186. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  187. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/dijkstra.cpp +0 -0
  188. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/embree_bone_heat.cpp +0 -0
  189. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  190. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/fast_winding_number.cpp +0 -0
  191. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/flip_edge.cpp +0 -0
  192. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/knn.cpp +0 -0
  193. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  194. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  195. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/octree.cpp +0 -0
  196. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  197. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_readPNG.cpp +0 -0
  198. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_render_to_png.cpp +0 -0
  199. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  200. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_texture_from_file.cpp +0 -0
  201. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_texture_from_png.cpp +0 -0
  202. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_writePNG.cpp +0 -0
  203. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/pseudonormal_test.cpp +0 -0
  204. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/readWRL.cpp +0 -0
  205. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  206. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/seam_edges.cpp +0 -0
  207. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  208. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  209. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/straighten_seams.cpp +0 -0
  210. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  211. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/triangle_cdt.cpp +0 -0
  212. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/unzip_corners.cpp +0 -0
  213. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeBF.cpp +0 -0
  214. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeDMAT.cpp +0 -0
  215. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeMESH.cpp +0 -0
  216. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeTGF.cpp +0 -0
  217. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/xml_writeDAE.cpp +0 -0
  218. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  219. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/classes/AABB.cpp +0 -0
  220. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/classes/classes.cpp +0 -0
  221. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/CXXFeatures.cmake +0 -0
  222. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/FindLIBIGL.cmake +0 -0
  223. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/UseColors.cmake +0 -0
  224. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/Warnings.cmake +0 -0
  225. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/include/default_types.h +0 -0
  226. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/include/parse_transforms.h +0 -0
  227. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/memory/MEMORY.md +0 -0
  228. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/missing.sh +0 -0
  229. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/mkdocs.yml +0 -0
  230. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/postBuild +0 -0
  231. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/priority.txt +0 -0
  232. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/basic_function.mako +0 -0
  233. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/blender_igl_export.py +0 -0
  234. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/generate_bindings.py +0 -0
  235. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/make_lean.py +0 -0
  236. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/parser.py +0 -0
  237. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/AABB.cpp +0 -0
  238. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/FileEncoding.cpp +0 -0
  239. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/MappingEnergyType.cpp +0 -0
  240. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/MassMatrixType.cpp +0 -0
  241. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
  242. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/accumarray.cpp +0 -0
  243. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/active_set.cpp +0 -0
  244. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/adjacency_list.cpp +0 -0
  245. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/adjacency_matrix.cpp +0 -0
  246. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/all_pairs_distances.cpp +0 -0
  247. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ambient_occlusion.cpp +0 -0
  248. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/arap.cpp +0 -0
  249. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_from_edges_onto_vertices.cpp +0 -0
  250. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_onto_faces.cpp +0 -0
  251. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_onto_vertices.cpp +0 -0
  252. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/avg_edge_length.cpp +0 -0
  253. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycenter.cpp +0 -0
  254. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycentric_coordinates.cpp +0 -0
  255. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycentric_interpolation.cpp +0 -0
  256. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bbw.cpp +0 -0
  257. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bezier.cpp +0 -0
  258. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bfs_orient.cpp +0 -0
  259. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/biharmonic_coordinates.cpp +0 -0
  260. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  261. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/blue_noise.cpp +0 -0
  262. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_conditions.cpp +0 -0
  263. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_facets.cpp +0 -0
  264. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_loop.cpp +0 -0
  265. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bounding_box.cpp +0 -0
  266. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bounding_box_diagonal.cpp +0 -0
  267. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/centroid.cpp +0 -0
  268. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/circulation.cpp +0 -0
  269. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/circumradius.cpp +0 -0
  270. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/collapse_edge.cpp +0 -0
  271. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/colormap.cpp +0 -0
  272. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/comb_cross_field.cpp +0 -0
  273. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/comb_frame_field.cpp +0 -0
  274. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/combine.cpp +0 -0
  275. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/compute_frame_field_bisectors.cpp +0 -0
  276. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/connect_boundary_to_infinity.cpp +0 -0
  277. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/connected_components.cpp +0 -0
  278. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/convex_hull.cpp +0 -0
  279. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/coplanar.cpp +0 -0
  280. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/delaunay_triangulation.cpp +0 -0
  281. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/extract_cells.cpp +0 -0
  282. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  283. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/intersect_other.cpp +0 -0
  284. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  285. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  286. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/module.cpp +0 -0
  287. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
  288. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/outer_hull.cpp +0 -0
  289. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/peel_outer_hull_layers.cpp +0 -0
  290. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/peel_winding_number_layers.cpp +0 -0
  291. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/point_areas.cpp +0 -0
  292. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
  293. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  294. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/marching_cubes.cpp +0 -0
  295. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/module.cpp +0 -0
  296. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/quadprog.cpp +0 -0
  297. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/cdt.cpp +0 -0
  298. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/mesh_with_skeleton.cpp +0 -0
  299. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/module.cpp +0 -0
  300. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  301. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix.cpp +0 -0
  302. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix_entries.cpp +0 -0
  303. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix_intrinsic.cpp +0 -0
  304. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cross_field_mismatch.cpp +0 -0
  305. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  306. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  307. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic.cpp +0 -0
  308. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_is_flat.cpp +0 -0
  309. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_monomial_bases.cpp +0 -0
  310. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_split.cpp +0 -0
  311. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/curved_hessian_energy.cpp +0 -0
  312. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_mesh.cpp +0 -0
  313. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_mesh_from_singularities.cpp +0 -0
  314. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_to_disk.cpp +0 -0
  315. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/box_cubic.cpp +0 -0
  316. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/module.cpp +0 -0
  317. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/point_cubic_squared_distance.cpp +0 -0
  318. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/point_spline_squared_distance.cpp +0 -0
  319. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/roots.cpp +0 -0
  320. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/spline_eytzinger_aabb.cpp +0 -0
  321. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cylinder.cpp +0 -0
  322. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/decimate.cpp +0 -0
  323. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dihedral_angles.cpp +0 -0
  324. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dihedral_angles_intrinsic.cpp +0 -0
  325. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dijkstra.cpp +0 -0
  326. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/directed_edge_parents.cpp +0 -0
  327. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/doublearea.cpp +0 -0
  328. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dual_contouring.cpp +0 -0
  329. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ears.cpp +0 -0
  330. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_flaps.cpp +0 -0
  331. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_lengths.cpp +0 -0
  332. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_topology.cpp +0 -0
  333. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edges.cpp +0 -0
  334. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edges_to_path.cpp +0 -0
  335. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/EmbreeIntersector.cpp +0 -0
  336. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/ambient_occlusion.cpp +0 -0
  337. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/bone_visible.cpp +0 -0
  338. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/line_mesh_intersection.cpp +0 -0
  339. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/module.cpp +0 -0
  340. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/reorient_facets_raycast.cpp +0 -0
  341. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/shape_diameter_function.cpp +0 -0
  342. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/euler_characteristic.cpp +0 -0
  343. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/exact_geodesic.cpp +0 -0
  344. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/exterior_edges.cpp +0 -0
  345. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/extract_manifold_patches.cpp +0 -0
  346. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/face_areas.cpp +0 -0
  347. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/face_occurrences.cpp +0 -0
  348. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/facet_adjacency_matrix.cpp +0 -0
  349. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/facet_components.cpp +0 -0
  350. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/false_barycentric_subdivision.cpp +0 -0
  351. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fast_winding_number.cpp +0 -0
  352. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/find_cross_field_singularities.cpp +0 -0
  353. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_cubic_bezier.cpp +0 -0
  354. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_plane.cpp +0 -0
  355. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_rotations.cpp +0 -0
  356. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/flipped_triangles.cpp +0 -0
  357. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/flood_fill.cpp +0 -0
  358. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/gaussian_curvature.cpp +0 -0
  359. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/grad.cpp +0 -0
  360. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/grid.cpp +0 -0
  361. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/harmonic.cpp +0 -0
  362. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hausdorff.cpp +0 -0
  363. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/heat_geodesics.cpp +0 -0
  364. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hessian.cpp +0 -0
  365. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hessian_energy.cpp +0 -0
  366. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hsv_to_rgb.cpp +0 -0
  367. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/icosahedron.cpp +0 -0
  368. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/in_element.cpp +0 -0
  369. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/inradius.cpp +0 -0
  370. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/internal_angles.cpp +0 -0
  371. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  372. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  373. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_border_vertex.cpp +0 -0
  374. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_boundary_edge.cpp +0 -0
  375. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_delaunay.cpp +0 -0
  376. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_edge_manifold.cpp +0 -0
  377. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_intrinsic_delaunay.cpp +0 -0
  378. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_irregular_vertex.cpp +0 -0
  379. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_vertex_manifold.cpp +0 -0
  380. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ismember_rows.cpp +0 -0
  381. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/isolines.cpp +0 -0
  382. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/isolines_intrinsic.cpp +0 -0
  383. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/iterative_closest_point.cpp +0 -0
  384. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/kelvinlets.cpp +0 -0
  385. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/knn.cpp +0 -0
  386. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lbs_matrix.cpp +0 -0
  387. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lexicographic_triangulation.cpp +0 -0
  388. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lipschitz_octree.cpp +0 -0
  389. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/local_basis.cpp +0 -0
  390. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/look_at.cpp +0 -0
  391. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/loop.cpp +0 -0
  392. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lscm.cpp +0 -0
  393. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/map_vertices_to_circle.cpp +0 -0
  394. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/marching_cubes.cpp +0 -0
  395. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/massmatrix.cpp +0 -0
  396. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/massmatrix_intrinsic.cpp +0 -0
  397. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/matlab_format.cpp +0 -0
  398. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/min_quad_with_fixed.cpp +0 -0
  399. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/module.cpp +0 -0
  400. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/moments.cpp +0 -0
  401. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/mvc.cpp +0 -0
  402. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/noop.cpp +0 -0
  403. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/octree.cpp +0 -0
  404. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/offset_surface.cpp +0 -0
  405. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/on_boundary.cpp +0 -0
  406. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orient_halfedges.cpp +0 -0
  407. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orient_outward.cpp +0 -0
  408. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orientable_patches.cpp +0 -0
  409. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/oriented_bounding_box.cpp +0 -0
  410. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/oriented_facets.cpp +0 -0
  411. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/path_to_edges.cpp +0 -0
  412. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_corner_normals.cpp +0 -0
  413. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_edge_normals.cpp +0 -0
  414. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_face_normals.cpp +0 -0
  415. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_vertex_attribute_smoothing.cpp +0 -0
  416. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_vertex_normals.cpp +0 -0
  417. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/planarize_quad_mesh.cpp +0 -0
  418. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/point_mesh_squared_distance.cpp +0 -0
  419. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/point_simplex_squared_distance.cpp +0 -0
  420. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_dec.cpp +0 -0
  421. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_svd.cpp +0 -0
  422. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_svd3x3.cpp +0 -0
  423. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polygon_corners.cpp +0 -0
  424. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polygons_to_triangles.cpp +0 -0
  425. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/Orientation.cpp +0 -0
  426. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/cubic_winding_number.cpp +0 -0
  427. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/delaunay_triangulation.cpp +0 -0
  428. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/ear_clipping.cpp +0 -0
  429. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/find_intersections.cpp +0 -0
  430. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/find_self_intersections.cpp +0 -0
  431. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/incircle.cpp +0 -0
  432. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/insphere.cpp +0 -0
  433. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/lexicographic_triangulation.cpp +0 -0
  434. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/module.cpp +0 -0
  435. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/orient2d.cpp +0 -0
  436. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/orient3d.cpp +0 -0
  437. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/point_in_convex_hull.cpp +0 -0
  438. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/point_inside_convex_polygon.cpp +0 -0
  439. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/polygons_to_triangles.cpp +0 -0
  440. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/segment_segment_intersect.cpp +0 -0
  441. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/spline_winding_number.cpp +0 -0
  442. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/triangle_triangle_intersect.cpp +0 -0
  443. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/principal_curvature.cpp +0 -0
  444. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/procrustes.cpp +0 -0
  445. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project.cpp +0 -0
  446. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project_to_line.cpp +0 -0
  447. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project_to_line_segment.cpp +0 -0
  448. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/pseudonormal_test.cpp +0 -0
  449. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/qslim.cpp +0 -0
  450. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_edges.cpp +0 -0
  451. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_grid.cpp +0 -0
  452. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_planarity.cpp +0 -0
  453. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ramer_douglas_peucker.cpp +0 -0
  454. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/random_dir.cpp +0 -0
  455. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/random_points_on_mesh.cpp +0 -0
  456. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_mesh_intersect.cpp +0 -0
  457. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_sphere_intersect.cpp +0 -0
  458. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_triangle_intersect.cpp +0 -0
  459. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readCSV.cpp +0 -0
  460. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readDMAT.cpp +0 -0
  461. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readMESH.cpp +0 -0
  462. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readMSH.cpp +0 -0
  463. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readOBJ.cpp +0 -0
  464. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readOFF.cpp +0 -0
  465. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readSTL.cpp +0 -0
  466. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/read_triangle_mesh.cpp +0 -0
  467. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/remove_duplicate_vertices.cpp +0 -0
  468. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/remove_unreferenced.cpp +0 -0
  469. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/resolve_duplicated_faces.cpp +0 -0
  470. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rgb_to_hsv.cpp +0 -0
  471. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rigid_alignment.cpp +0 -0
  472. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rotate_vectors.cpp +0 -0
  473. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rotation_matrix_from_directions.cpp +0 -0
  474. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sample_edges.cpp +0 -0
  475. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/segment_segment_intersect.cpp +0 -0
  476. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sharp_edges.cpp +0 -0
  477. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/signed_angle.cpp +0 -0
  478. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/signed_distance.cpp +0 -0
  479. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/simplex_simplex_squared_distance.cpp +0 -0
  480. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/slim.cpp +0 -0
  481. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/smooth_corner_adjacency.cpp +0 -0
  482. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/snap_points.cpp +0 -0
  483. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/solid_angle.cpp +0 -0
  484. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_map_noop.cpp +0 -0
  485. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_map_shape.cpp +0 -0
  486. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_noop.cpp +0 -0
  487. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_shape.cpp +0 -0
  488. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/EigsType.cpp +0 -0
  489. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/eigs.cpp +0 -0
  490. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/lscm.cpp +0 -0
  491. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/module.cpp +0 -0
  492. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/split_nonmanifold.cpp +0 -0
  493. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/squared_edge_lengths.cpp +0 -0
  494. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/super_fibonacci.cpp +0 -0
  495. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume.cpp +0 -0
  496. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume_bounding_box.cpp +0 -0
  497. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume_signed_distance.cpp +0 -0
  498. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/tet_tet_adjacency.cpp +0 -0
  499. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/tri_tri_intersect.cpp +0 -0
  500. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/cdt.cpp +0 -0
  501. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/module.cpp +0 -0
  502. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/refine.cpp +0 -0
  503. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/remesh_at_points.cpp +0 -0
  504. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/scaf.cpp +0 -0
  505. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/triangulate.cpp +0 -0
  506. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle_fan.cpp +0 -0
  507. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle_triangle_adjacency.cpp +0 -0
  508. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangulated_grid.cpp +0 -0
  509. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/turning_number.cpp +0 -0
  510. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/uniformly_sample_two_manifold.cpp +0 -0
  511. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_edge_map.cpp +0 -0
  512. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_simplices.cpp +0 -0
  513. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_sparse_voxel_corners.cpp +0 -0
  514. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unproject.cpp +0 -0
  515. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/upsample.cpp +0 -0
  516. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vector_area_matrix.cpp +0 -0
  517. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vertex_components.cpp +0 -0
  518. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vertex_triangle_adjacency.cpp +0 -0
  519. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/volume.cpp +0 -0
  520. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/voronoi_mass.cpp +0 -0
  521. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/voxel_grid.cpp +0 -0
  522. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/winding_number.cpp +0 -0
  523. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeDMAT.cpp +0 -0
  524. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeMESH.cpp +0 -0
  525. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeMSH.cpp +0 -0
  526. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeOBJ.cpp +0 -0
  527. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeOFF.cpp +0 -0
  528. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writePLY.cpp +0 -0
  529. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeSTL.cpp +0 -0
  530. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/write_triangle_mesh.cpp +0 -0
  531. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/contributing.md +0 -0
  532. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/exporter.py +0 -0
  533. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/igl_docs.md +0 -0
  534. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/102_DrawMesh.png +0 -0
  535. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/104_Colors.png +0 -0
  536. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/105_Overlays.png +0 -0
  537. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/106_ViewerMenu.png +0 -0
  538. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/501_HarmonicParam.png +0 -0
  539. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/502_LSCMParam.png +0 -0
  540. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/503_ARAPParam.png +0 -0
  541. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/504_nrosy_field.png +0 -0
  542. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/504_vector_field.png +0 -0
  543. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_1.png +0 -0
  544. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_2.png +0 -0
  545. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_3.png +0 -0
  546. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_4.png +0 -0
  547. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_5.png +0 -0
  548. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_6.png +0 -0
  549. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_7.png +0 -0
  550. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_8.png +0 -0
  551. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_1.png +0 -0
  552. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_2.png +0 -0
  553. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_3.png +0 -0
  554. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_4.png +0 -0
  555. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/507_PolyVectorField.png +0 -0
  556. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/508_ConjugateField.png +0 -0
  557. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/509_Planarization.png +0 -0
  558. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/510_Integrable.png +0 -0
  559. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  560. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/602_Matlab_1.png +0 -0
  561. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/602_Matlab_2.png +0 -0
  562. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/604_Triangle.png +0 -0
  563. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/605_Tetgen.png +0 -0
  564. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/606_AmbientOcclusion.png +0 -0
  565. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/607_Picking.png +0 -0
  566. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/608_LIM.png +0 -0
  567. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/712_beetles.jpg +0 -0
  568. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/713_ShapeUp.png +0 -0
  569. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/VF.pdf +0 -0
  570. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/VF.png +0 -0
  571. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/arm-dqs.jpg +0 -0
  572. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/armadillo-fast.jpg +0 -0
  573. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  574. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/background.gif +0 -0
  575. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  576. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  577. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bump-k-harmonic.jpg +0 -0
  578. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  579. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bunny-signed-distance.gif +0 -0
  580. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bunny-swept-volume.gif +0 -0
  581. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  582. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  583. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-gradient.jpg +0 -0
  584. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  585. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  586. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cow-curvature-flow.jpg +0 -0
  587. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  588. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  589. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-arap.jpg +0 -0
  590. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  591. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  592. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  593. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/edge-collapse.jpg +0 -0
  594. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/edge-collapse.pdf +0 -0
  595. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fandisk-normals.jpg +0 -0
  596. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fertility-edge-collapse.gif +0 -0
  597. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  598. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/geodesicdistance.jpg +0 -0
  599. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/hand-bbw.jpg +0 -0
  600. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/hat-function.jpg +0 -0
  601. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  602. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/heat-geodesic-peaks.png +0 -0
  603. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/libigl-logo.jpg +0 -0
  604. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/max-biharmonic.jpg +0 -0
  605. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/multiple-meshes.png +0 -0
  606. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  607. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  608. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/slim.png +0 -0
  609. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/streamlines.jpg +0 -0
  610. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/truck-facet-orientation.jpg +0 -0
  611. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/index.md +0 -0
  612. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/marching_cubes.py +0 -0
  613. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/plot_to_md.py +0 -0
  614. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter0.ipynb +0 -0
  615. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter1.ipynb +0 -0
  616. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter2.ipynb +0 -0
  617. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter3.ipynb +0 -0
  618. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter4.ipynb +0 -0
  619. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter5.ipynb +0 -0
  620. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter6.ipynb +0 -0
  621. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter7.ipynb +0 -0
  622. {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tutorials.ipynb +0 -0
@@ -60,7 +60,9 @@ option(LIBIGL_CYCODEBASE "Build igl::cycodebase bindings" ON)
60
60
  FetchContent_Declare(
61
61
  libigl
62
62
  GIT_REPOSITORY https://github.com/libigl/libigl.git
63
- GIT_TAG f68f01c23ac82351e2543ce8c529b6d4c89fdf16
63
+ # libigl main, including igl::lazy_cage and core igl::progressive_hulls (moved
64
+ # to core in libigl PR #2558).
65
+ GIT_TAG c07f8586733378c163aae57f08c9da2ce5352fb9
64
66
  )
65
67
  FetchContent_MakeAvailable(libigl)
66
68
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: libigl
3
- Version: 2.6.4.dev0
3
+ Version: 2.6.4.dev1
4
4
  Summary: libigl: A simple C++ geometry processing library
5
5
  Author-Email: Alec Jacobson <alecjacobson@gmail.com>
6
6
  Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
@@ -13,7 +13,7 @@ build-backend = "scikit_build_core.build"
13
13
 
14
14
  [project]
15
15
  name = "libigl"
16
- version = "2.6.4.dev0"
16
+ version = "2.6.4.dev1"
17
17
  description = "libigl: A simple C++ geometry processing library"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.8"
@@ -0,0 +1,16 @@
1
+ #include "default_types.h"
2
+ #include <igl/lazy_cage.h>
3
+ #include <nanobind/nanobind.h>
4
+
5
+ namespace nb = nanobind;
6
+ using namespace nb::literals;
7
+
8
+ void bind_LazyCageDistance(nb::module_ &m)
9
+ {
10
+ nb::enum_<igl::LazyCageDistance>(m, "LazyCageDistance")
11
+ .value("LAZY_CAGE_DISTANCE_SIGNED", igl::LAZY_CAGE_DISTANCE_SIGNED)
12
+ .value("LAZY_CAGE_DISTANCE_UNSIGNED", igl::LAZY_CAGE_DISTANCE_UNSIGNED)
13
+ .value("NUM_LAZY_CAGE_DISTANCE", igl::NUM_LAZY_CAGE_DISTANCE)
14
+ .export_values()
15
+ ;
16
+ }
@@ -0,0 +1,16 @@
1
+ #include "default_types.h"
2
+ #include <igl/lazy_cage.h>
3
+ #include <nanobind/nanobind.h>
4
+
5
+ namespace nb = nanobind;
6
+ using namespace nb::literals;
7
+
8
+ void bind_LazyCageGridMode(nb::module_ &m)
9
+ {
10
+ nb::enum_<igl::LazyCageGridMode>(m, "LazyCageGridMode")
11
+ .value("LAZY_CAGE_GRID_DENSE", igl::LAZY_CAGE_GRID_DENSE)
12
+ .value("LAZY_CAGE_GRID_SPARSE", igl::LAZY_CAGE_GRID_SPARSE)
13
+ .value("NUM_LAZY_CAGE_GRID_MODE", igl::NUM_LAZY_CAGE_GRID_MODE)
14
+ .export_values()
15
+ ;
16
+ }
@@ -0,0 +1,17 @@
1
+ #include "default_types.h"
2
+ #include <igl/lazy_cage.h>
3
+ #include <nanobind/nanobind.h>
4
+
5
+ namespace nb = nanobind;
6
+ using namespace nb::literals;
7
+
8
+ void bind_LazyCageMetric(nb::module_ &m)
9
+ {
10
+ nb::enum_<igl::LazyCageMetric>(m, "LazyCageMetric")
11
+ .value("LAZY_CAGE_METRIC_SIGMA", igl::LAZY_CAGE_METRIC_SIGMA)
12
+ .value("LAZY_CAGE_METRIC_VOLUME", igl::LAZY_CAGE_METRIC_VOLUME)
13
+ .value("LAZY_CAGE_METRIC_SURFACE_AREA", igl::LAZY_CAGE_METRIC_SURFACE_AREA)
14
+ .value("NUM_LAZY_CAGE_METRIC", igl::NUM_LAZY_CAGE_METRIC)
15
+ .export_values()
16
+ ;
17
+ }
@@ -0,0 +1,123 @@
1
+ #include "default_types.h"
2
+ #include <igl/lazy_cage.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ // Simple overload: {shortest edge, midpoint} decimation, the sigma metric, the
14
+ // dense grid, and the signed-distance field. grid_size <= 0 picks a heuristic.
15
+ auto lazy_cage(
16
+ const nb::DRef<const Eigen::MatrixXN> &V,
17
+ const nb::DRef<const Eigen::MatrixXI> &F,
18
+ const int num_faces,
19
+ const int grid_size)
20
+ {
21
+ const Eigen::MatrixXd Vd = V;
22
+ const Eigen::MatrixXi Fi = F.cast<int>();
23
+ Eigen::MatrixXd CV;
24
+ Eigen::MatrixXi CF;
25
+ double sigma;
26
+ const bool success = igl::lazy_cage(Vd, Fi, num_faces, grid_size, CV, CF, sigma);
27
+ return std::make_tuple(
28
+ success, Eigen::MatrixXN(CV), Eigen::MatrixXI(CF.cast<Integer>()), sigma);
29
+ }
30
+
31
+ // Full overload exposing every knob.
32
+ auto lazy_cage_full(
33
+ const nb::DRef<const Eigen::MatrixXN> &V,
34
+ const nb::DRef<const Eigen::MatrixXI> &F,
35
+ const int num_faces,
36
+ const int grid_size,
37
+ const double max_sigma,
38
+ const int num_iters,
39
+ const bool use_qslim,
40
+ const igl::LazyCageMetric metric,
41
+ const igl::LazyCageGridMode grid_mode,
42
+ const igl::LazyCageDistance distance)
43
+ {
44
+ const Eigen::MatrixXd Vd = V;
45
+ const Eigen::MatrixXi Fi = F.cast<int>();
46
+ Eigen::MatrixXd CV;
47
+ Eigen::MatrixXi CF;
48
+ double sigma;
49
+ const bool success = igl::lazy_cage(
50
+ Vd, Fi, num_faces, grid_size, max_sigma, num_iters, use_qslim,
51
+ metric, grid_mode, distance, CV, CF, sigma);
52
+ return std::make_tuple(
53
+ success, Eigen::MatrixXN(CV), Eigen::MatrixXI(CF.cast<Integer>()), sigma);
54
+ }
55
+ }
56
+
57
+ void bind_lazy_cage(nb::module_ &m)
58
+ {
59
+ m.def(
60
+ "lazy_cage_default_grid_size",
61
+ &igl::lazy_cage_default_grid_size,
62
+ "num_faces"_a,
63
+ R"(Heuristic isosurfacing grid resolution (cells across the largest side) for a
64
+ lazy cage with num_faces faces.
65
+
66
+ @param[in] num_faces desired number of cage faces
67
+ @return grid resolution)");
68
+
69
+ m.def(
70
+ "lazy_cage",
71
+ &pyigl::lazy_cage,
72
+ "V"_a,
73
+ "F"_a,
74
+ "num_faces"_a,
75
+ "grid_size"_a = 0,
76
+ R"(Compute a "lazy cage" enclosing a closed input mesh: offset the surface and
77
+ decimate it down to num_faces while it stays a valid cage (encloses the input,
78
+ free of self-intersections, and not intersecting the input surface).
79
+
80
+ Uses the default settings ({shortest edge, midpoint} decimation, the sigma
81
+ metric, the dense grid, and the signed-distance field).
82
+
83
+ @param[in] V #V by 3 list of input vertex positions (closed, manifold)
84
+ @param[in] F #F by 3 list of input triangle indices into V
85
+ @param[in] num_faces desired number of faces in the cage
86
+ @param[in] grid_size isosurfacing resolution (cells along the largest side);
87
+ <= 0 uses lazy_cage_default_grid_size(num_faces)
88
+ @param[out] success true if a valid cage with num_faces faces was found
89
+ @param[out] CV #CV by 3 list of cage vertex positions
90
+ @param[out] CF #CF by 3 list of cage triangle indices into CV
91
+ @param[out] sigma the offset distance used to build the returned cage)");
92
+
93
+ m.def(
94
+ "lazy_cage",
95
+ &pyigl::lazy_cage_full,
96
+ "V"_a,
97
+ "F"_a,
98
+ "num_faces"_a,
99
+ "grid_size"_a,
100
+ "max_sigma"_a,
101
+ "num_iters"_a = 12,
102
+ "use_qslim"_a = false,
103
+ "metric"_a = igl::LAZY_CAGE_METRIC_SIGMA,
104
+ "grid_mode"_a = igl::LAZY_CAGE_GRID_DENSE,
105
+ "distance"_a = igl::LAZY_CAGE_DISTANCE_SIGNED,
106
+ R"(Compute a "lazy cage" with full control over the offset-and-decimate search.
107
+
108
+ @param[in] V #V by 3 list of input vertex positions (closed, manifold)
109
+ @param[in] F #F by 3 list of input triangle indices into V
110
+ @param[in] num_faces desired number of faces in the cage
111
+ @param[in] grid_size isosurfacing resolution; <= 0 uses the heuristic
112
+ @param[in] max_sigma upper bound on the searched offset distance
113
+ @param[in] num_iters number of bisection iterations on sigma
114
+ @param[in] use_qslim decimate with igl.qslim (quadric error) instead of
115
+ {shortest edge, midpoint}
116
+ @param[in] metric objective minimized when choosing sigma (LazyCageMetric)
117
+ @param[in] grid_mode dense vs. sparse isosurface extraction (LazyCageGridMode)
118
+ @param[in] distance signed vs. unsigned distance field (LazyCageDistance)
119
+ @param[out] success true if a valid cage with num_faces faces was found
120
+ @param[out] CV #CV by 3 list of cage vertex positions
121
+ @param[out] CF #CF by 3 list of cage triangle indices into CV
122
+ @param[out] sigma the offset distance used to build the returned cage)");
123
+ }
@@ -0,0 +1,60 @@
1
+ #include "default_types.h"
2
+ #include <igl/progressive_hulls.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto progressive_hulls(
14
+ const nb::DRef<const Eigen::MatrixXN> &V,
15
+ const nb::DRef<const Eigen::MatrixXI> &F,
16
+ const size_t max_m,
17
+ const bool block_intersections)
18
+ {
19
+ // igl::progressive_hulls takes concrete Eigen::MatrixXd / int32 MatrixXi.
20
+ const Eigen::MatrixXd Vd = V;
21
+ const Eigen::MatrixXi Fi = F.cast<int>();
22
+ Eigen::MatrixXd U;
23
+ Eigen::MatrixXi G;
24
+ Eigen::VectorXi J;
25
+ const bool success =
26
+ igl::progressive_hulls(Vd, Fi, max_m, block_intersections, U, G, J);
27
+ return std::make_tuple(
28
+ success,
29
+ Eigen::MatrixXN(U),
30
+ Eigen::MatrixXI(G.cast<Integer>()),
31
+ Eigen::VectorXI(J.cast<Integer>()));
32
+ }
33
+ }
34
+
35
+ void bind_progressive_hulls(nb::module_ &m)
36
+ {
37
+ m.def(
38
+ "progressive_hulls",
39
+ &pyigl::progressive_hulls,
40
+ "V"_a,
41
+ "F"_a,
42
+ "max_m"_a,
43
+ "block_intersections"_a = false,
44
+ R"(Collapse edges until the desired number of faces is achieved, placing each new
45
+ vertex outside all previous meshes ("progressive hulls" from Sander et al.,
46
+ "Silhouette clipping" 2000). The result is a nested, enclosing coarsening of the
47
+ input.
48
+
49
+ Assumes (V,F) is a closed manifold mesh.
50
+
51
+ @param[in] V #V by 3 list of vertex positions
52
+ @param[in] F #F by 3 list of triangle indices into V
53
+ @param[in] max_m desired number of output faces
54
+ @param[in] block_intersections whether to refuse collapses that would introduce
55
+ self-intersections
56
+ @param[out] success true if max_m was reached (otherwise #G > max_m)
57
+ @param[out] U #U by 3 list of output vertex positions
58
+ @param[out] G #G by 3 list of output triangle indices into U
59
+ @param[out] J #G list of indices into F of birth faces)");
60
+ }
@@ -426,6 +426,53 @@ def test_decimate():
426
426
  dV,dF,J,I = igl.decimate(V,F)
427
427
  dV,dF,J,I = igl.qslim(V,F)
428
428
 
429
+ def test_progressive_hulls():
430
+ # a closed manifold with headroom to coarsen
431
+ V,F = igl.upsample(*igl.icosahedron(), 2) # 162 V, 320 F
432
+ success, U, G, J = igl.progressive_hulls(V, F, max_m=40)
433
+ assert success
434
+ assert U.shape[1] == 3
435
+ assert G.shape[1] == 3
436
+ assert G.shape[0] == 40
437
+ assert G.max() < U.shape[0]
438
+ assert J.shape[0] == G.shape[0]
439
+ assert J.max() < F.shape[0]
440
+ # a progressive hull encloses the input (loose bbox check)
441
+ assert (U.min(axis=0) <= V.min(axis=0) + 1e-9).all()
442
+ assert (U.max(axis=0) >= V.max(axis=0) - 1e-9).all()
443
+ # the intersection-blocking variant also runs
444
+ success2, U2, G2, J2 = igl.progressive_hulls(V, F, max_m=40, block_intersections=True)
445
+ assert G2.shape[1] == 3
446
+
447
+ def test_lazy_cage():
448
+ V,F = igl.icosahedron()
449
+ # helper + enum smoke
450
+ assert igl.lazy_cage_default_grid_size(100) > 0
451
+ assert igl.LazyCageMetric.LAZY_CAGE_METRIC_SIGMA.value == 0
452
+
453
+ # simple overload: default {shortest edge, midpoint} / sigma / dense / signed
454
+ success, CV, CF, sigma = igl.lazy_cage(V, F, num_faces=50, grid_size=32)
455
+ assert success
456
+ assert CV.shape[1] == 3
457
+ assert CF.shape[1] == 3
458
+ assert CF.shape[0] == 50 # exactly num_faces when successful
459
+ assert CF.max() < CV.shape[0]
460
+ assert sigma > 0.0
461
+ # the cage encloses the input mesh (loose bbox check)
462
+ assert (CV.min(axis=0) <= V.min(axis=0) + 1e-9).all()
463
+ assert (CV.max(axis=0) >= V.max(axis=0) - 1e-9).all()
464
+
465
+ # full overload: exercise the enum-driven knobs (unsigned distance here)
466
+ diag = np.linalg.norm(V.max(axis=0) - V.min(axis=0))
467
+ success_f, CV_f, CF_f, sigma_f = igl.lazy_cage(
468
+ V, F, 50, 32, 0.5 * diag,
469
+ num_iters=12, use_qslim=False,
470
+ metric=igl.LazyCageMetric.LAZY_CAGE_METRIC_VOLUME,
471
+ grid_mode=igl.LazyCageGridMode.LAZY_CAGE_GRID_DENSE,
472
+ distance=igl.LazyCageDistance.LAZY_CAGE_DISTANCE_UNSIGNED)
473
+ assert CF_f.shape[1] == 3
474
+ assert success_f
475
+
429
476
  def test_parameterization():
430
477
  V,Q,E = igl.quad_grid(3,3);
431
478
  V,F = igl.triangulated_grid(3,3);
@@ -533,9 +580,8 @@ def test_copyleft():
533
580
  T = np.array([[0,1,2,3]],dtype=np.int64)
534
581
  F,_,_ = igl.boundary_facets(T)
535
582
  V,F = igl.loop(V,F)
536
-
537
- dV,dF,J = igl.copyleft.progressive_hulls(V,F)
538
-
583
+ # progressive_hulls moved from igl::copyleft to core (libigl #2558); it is
584
+ # now igl.progressive_hulls, covered by test_progressive_hulls.
539
585
 
540
586
  def test_cgal():
541
587
  # tetrahedron
@@ -1,42 +0,0 @@
1
- #include "default_types.h"
2
- #include <igl/copyleft/progressive_hulls.h>
3
- #include <nanobind/nanobind.h>
4
- #include <nanobind/eigen/dense.h>
5
- #include <nanobind/stl/tuple.h>
6
-
7
- namespace nb = nanobind;
8
- using namespace nb::literals;
9
-
10
- namespace pyigl
11
- {
12
- // igl::decimate is a nightmare of poor templating. Suffer copies.
13
- auto progressive_hulls(
14
- const Eigen::MatrixXd &V,
15
- const Eigen::MatrixXi &F,
16
- const int max_m)
17
- {
18
- Eigen::MatrixXd U;
19
- Eigen::MatrixXi G;
20
- Eigen::VectorXi J;
21
- igl::copyleft::progressive_hulls(V,F,max_m,U,G,J);
22
- return std::make_tuple(
23
- U.cast<Numeric>().eval(), // If Numeric==double will this incur a copy?
24
- G.cast<Integer>().eval(),
25
- J.cast<Integer>().eval());
26
- }
27
- }
28
- void bind_progressive_hulls(nb::module_ &m)
29
- {
30
- m.def(
31
- "progressive_hulls",
32
- &pyigl::progressive_hulls,
33
- "V"_a, "F"_a, "max_m"_a=0,
34
- R"(Performs progressive hull simplification on a mesh, collapsing edges until a target number of faces is reached.
35
-
36
- @param[in] V #V by dim list of vertex positions
37
- @param[in] F #F by 3 list of face indices into V
38
- @param[in] max_m Target number of output faces
39
- @param[out] U Output vertex positions
40
- @param[out] G Output face indices into U
41
- @param[out] J Indices into F indicating the birth face for each face in G)");
42
- }
File without changes
File without changes
File without changes
File without changes
File without changes