libigl 2.5.4.dev0__tar.gz → 2.6.1__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 (476) hide show
  1. {libigl-2.5.4.dev0 → libigl-2.6.1}/.github/workflows/pip.yml +5 -5
  2. libigl-2.6.1/.github/workflows/wheels.yml +91 -0
  3. {libigl-2.5.4.dev0 → libigl-2.6.1}/CMakeLists.txt +9 -10
  4. libigl-2.6.1/PKG-INFO +117 -0
  5. libigl-2.6.1/README.md +105 -0
  6. {libigl-2.5.4.dev0 → libigl-2.6.1}/cmake/Warnings.cmake +1 -1
  7. {libigl-2.5.4.dev0 → libigl-2.6.1}/priority.txt +0 -3
  8. {libigl-2.5.4.dev0 → libigl-2.6.1}/pyproject.toml +7 -1
  9. libigl-2.6.1/src/all_pairs_distances.cpp +37 -0
  10. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/remesh_self_intersections.cpp +4 -2
  11. libigl-2.6.1/src/internal_angles.cpp +31 -0
  12. libigl-2.6.1/src/is_vertex_manifold.cpp +38 -0
  13. libigl-2.6.1/src/map_vertices_to_circle.cpp +33 -0
  14. libigl-2.6.1/src/sparse_map_noop.cpp +27 -0
  15. libigl-2.6.1/src/sparse_map_shape.cpp +29 -0
  16. libigl-2.6.1/src/sparse_noop.cpp +27 -0
  17. libigl-2.6.1/src/sparse_shape.cpp +29 -0
  18. {libigl-2.5.4.dev0 → libigl-2.6.1}/tests/test_all.py +5 -0
  19. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/igl_docs.md +17 -1
  20. libigl-2.5.4.dev0/.github/workflows/wheels.yml +0 -70
  21. libigl-2.5.4.dev0/PKG-INFO +0 -56
  22. libigl-2.5.4.dev0/README.md +0 -44
  23. {libigl-2.5.4.dev0 → libigl-2.6.1}/.gitignore +0 -0
  24. {libigl-2.5.4.dev0 → libigl-2.6.1}/LICENSE.GPL +0 -0
  25. {libigl-2.5.4.dev0 → libigl-2.6.1}/LICENSE.MPL2 +0 -0
  26. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  27. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/copyleft/triangle_triangulate.cpp +0 -0
  28. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/SolverStatus.cpp +0 -0
  29. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/WindingNumberMethod.cpp +0 -0
  30. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/angular_distance.cpp +0 -0
  31. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/canonical_quaternions.cpp +0 -0
  32. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/column_to_quats.cpp +0 -0
  33. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/comiso_nrosy.cpp +0 -0
  34. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  35. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/file_contents_as_string.cpp +0 -0
  36. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/fit_rotations.cpp +0 -0
  37. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/frame_field_deformer.cpp +0 -0
  38. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/frame_to_cross_field.cpp +0 -0
  39. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/frustum.cpp +0 -0
  40. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/group_sum_matrix.cpp +0 -0
  41. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/harwell_boeing.cpp +0 -0
  42. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/histc.cpp +0 -0
  43. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/hsv_to_rgb.cpp +0 -0
  44. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  45. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/intersect.cpp +0 -0
  46. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/invert_diag.cpp +0 -0
  47. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/is_planar.cpp +0 -0
  48. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/limit_faces.cpp +0 -0
  49. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/line_field_missmatch.cpp +0 -0
  50. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/line_search.cpp +0 -0
  51. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/mat_to_quat.cpp +0 -0
  52. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/material_colors.cpp +0 -0
  53. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  54. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/min_quad_dense.cpp +0 -0
  55. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/normalize_quat.cpp +0 -0
  56. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/on_boundary.cpp +0 -0
  57. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  58. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_floor.cpp +0 -0
  59. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  60. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_point.cpp +0 -0
  61. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  62. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  63. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  64. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_flare_textures.cpp +0 -0
  65. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  66. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  67. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_project.cpp +0 -0
  68. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_right_axis.cpp +0 -0
  69. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_shine_textures.cpp +0 -0
  70. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  71. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_unproject.cpp +0 -0
  72. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  73. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_up_axis.cpp +0 -0
  74. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl2_view_axis.cpp +0 -0
  75. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_create_shader_program.cpp +0 -0
  76. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  77. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_gl_type_size.cpp +0 -0
  78. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  79. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  80. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  81. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_load_shader.cpp +0 -0
  82. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  83. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  84. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_report_gl_error.cpp +0 -0
  85. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  86. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/ortho.cpp +0 -0
  87. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/parallel_transport_angles.cpp +0 -0
  88. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/polar_svd.cpp +0 -0
  89. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/polar_svd3x3.cpp +0 -0
  90. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  91. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  92. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quat_conjugate.cpp +0 -0
  93. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quat_mult.cpp +0 -0
  94. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quat_to_axis_angle.cpp +0 -0
  95. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quat_to_mat.cpp +0 -0
  96. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/quats_to_column.cpp +0 -0
  97. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/random_quaternion.cpp +0 -0
  98. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/readBF.cpp +0 -0
  99. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/readNODE.cpp +0 -0
  100. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/readPLY.cpp +0 -0
  101. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/readSTL.cpp +0 -0
  102. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/rgb_to_hsv.cpp +0 -0
  103. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/rotate_by_quat.cpp +0 -0
  104. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  105. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  106. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/snap_to_fixed_up.cpp +0 -0
  107. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/sort_angles.cpp +0 -0
  108. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/sort_triangles.cpp +0 -0
  109. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/sort_vectors_ccw.cpp +0 -0
  110. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/svd3x3.cpp +0 -0
  111. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/svd3x3_avx.cpp +0 -0
  112. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/svd3x3_sse.cpp +0 -0
  113. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/trackball.cpp +0 -0
  114. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/transpose_blocks.cpp +0 -0
  115. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/unique_rows.cpp +0 -0
  116. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/voxel_grid.cpp +0 -0
  117. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/writePLY.cpp +0 -0
  118. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/writeSTL.cpp +0 -0
  119. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/skip/writeWRL.cpp +0 -0
  120. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/MeshBooleanType.cpp +0 -0
  121. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/NormalType.cpp +0 -0
  122. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/collapse_edge.cpp +0 -0
  123. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  124. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  125. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  126. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  127. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  128. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  129. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  130. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  131. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  132. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  133. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  134. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  135. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  136. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  137. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  138. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  139. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  140. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  141. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  142. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  143. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  144. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  145. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  146. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  147. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  148. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  149. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  150. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  151. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  152. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  153. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  154. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  155. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  156. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  157. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  158. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  159. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  160. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  161. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  162. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  163. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  164. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  165. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  166. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  167. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  168. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  169. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  170. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  171. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  172. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  173. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  174. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  175. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  176. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  177. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  178. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  179. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  180. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  181. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  182. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  183. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  184. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  185. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  186. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  187. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  188. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  189. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  190. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  191. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  192. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  193. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  194. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  195. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/dijkstra.cpp +0 -0
  196. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/embree_bone_heat.cpp +0 -0
  197. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  198. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/fast_winding_number.cpp +0 -0
  199. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/flip_edge.cpp +0 -0
  200. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/knn.cpp +0 -0
  201. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  202. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  203. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/octree.cpp +0 -0
  204. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  205. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_readPNG.cpp +0 -0
  206. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_render_to_png.cpp +0 -0
  207. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  208. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_texture_from_file.cpp +0 -0
  209. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_texture_from_png.cpp +0 -0
  210. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/png_writePNG.cpp +0 -0
  211. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/pseudonormal_test.cpp +0 -0
  212. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/readWRL.cpp +0 -0
  213. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  214. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/seam_edges.cpp +0 -0
  215. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  216. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  217. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/straighten_seams.cpp +0 -0
  218. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  219. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/triangle_cdt.cpp +0 -0
  220. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/unzip_corners.cpp +0 -0
  221. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/writeBF.cpp +0 -0
  222. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/writeDMAT.cpp +0 -0
  223. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/writeMESH.cpp +0 -0
  224. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/writeTGF.cpp +0 -0
  225. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/xml_writeDAE.cpp +0 -0
  226. {libigl-2.5.4.dev0 → libigl-2.6.1}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  227. {libigl-2.5.4.dev0 → libigl-2.6.1}/classes/AABB.cpp +0 -0
  228. {libigl-2.5.4.dev0 → libigl-2.6.1}/classes/classes.cpp +0 -0
  229. {libigl-2.5.4.dev0 → libigl-2.6.1}/cmake/CXXFeatures.cmake +0 -0
  230. {libigl-2.5.4.dev0 → libigl-2.6.1}/cmake/FindLIBIGL.cmake +0 -0
  231. {libigl-2.5.4.dev0 → libigl-2.6.1}/cmake/UseColors.cmake +0 -0
  232. {libigl-2.5.4.dev0 → libigl-2.6.1}/include/default_types.h +0 -0
  233. {libigl-2.5.4.dev0 → libigl-2.6.1}/missing.sh +0 -0
  234. {libigl-2.5.4.dev0 → libigl-2.6.1}/mkdocs.yml +0 -0
  235. {libigl-2.5.4.dev0 → libigl-2.6.1}/postBuild +0 -0
  236. {libigl-2.5.4.dev0 → libigl-2.6.1}/scripts/basic_function.mako +0 -0
  237. {libigl-2.5.4.dev0 → libigl-2.6.1}/scripts/blender_igl_export.py +0 -0
  238. {libigl-2.5.4.dev0 → libigl-2.6.1}/scripts/generate_bindings.py +0 -0
  239. {libigl-2.5.4.dev0 → libigl-2.6.1}/scripts/make_lean.py +0 -0
  240. {libigl-2.5.4.dev0 → libigl-2.6.1}/scripts/parser.py +0 -0
  241. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/AABB.cpp +0 -0
  242. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/FileEncoding.cpp +0 -0
  243. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/MappingEnergyType.cpp +0 -0
  244. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/MassMatrixType.cpp +0 -0
  245. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/adjacency_list.cpp +0 -0
  246. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/adjacency_matrix.cpp +0 -0
  247. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/arap.cpp +0 -0
  248. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/average_from_edges_onto_vertices.cpp +0 -0
  249. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/average_onto_faces.cpp +0 -0
  250. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/average_onto_vertices.cpp +0 -0
  251. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/avg_edge_length.cpp +0 -0
  252. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/barycenter.cpp +0 -0
  253. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/barycentric_coordinates.cpp +0 -0
  254. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/bbw.cpp +0 -0
  255. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/bfs_orient.cpp +0 -0
  256. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/biharmonic_coordinates.cpp +0 -0
  257. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  258. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/blue_noise.cpp +0 -0
  259. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/boundary_facets.cpp +0 -0
  260. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/boundary_loop.cpp +0 -0
  261. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/bounding_box.cpp +0 -0
  262. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/circulation.cpp +0 -0
  263. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/circumradius.cpp +0 -0
  264. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/collapse_edge.cpp +0 -0
  265. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/connected_components.cpp +0 -0
  266. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/convex_hull.cpp +0 -0
  267. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  268. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/intersect_other.cpp +0 -0
  269. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  270. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  271. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/module.cpp +0 -0
  272. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/point_areas.cpp +0 -0
  273. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  274. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/module.cpp +0 -0
  275. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/progressive_hulls.cpp +0 -0
  276. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/tetgen/module.cpp +0 -0
  277. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  278. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cotmatrix.cpp +0 -0
  279. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cotmatrix_entries.cpp +0 -0
  280. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cotmatrix_intrinsic.cpp +0 -0
  281. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  282. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  283. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cut_mesh.cpp +0 -0
  284. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cut_mesh_from_singularities.cpp +0 -0
  285. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cut_to_disk.cpp +0 -0
  286. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/cylinder.cpp +0 -0
  287. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/decimate.cpp +0 -0
  288. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/dihedral_angles.cpp +0 -0
  289. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/dihedral_angles_intrinsic.cpp +0 -0
  290. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/doublearea.cpp +0 -0
  291. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/dual_contouring.cpp +0 -0
  292. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/ears.cpp +0 -0
  293. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/edge_flaps.cpp +0 -0
  294. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/edge_lengths.cpp +0 -0
  295. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/edges.cpp +0 -0
  296. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/embree/EmbreeIntersector.cpp +0 -0
  297. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/embree/ambient_occlusion.cpp +0 -0
  298. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/embree/module.cpp +0 -0
  299. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/embree/reorient_facets_raycast.cpp +0 -0
  300. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/embree/shape_diameter_function.cpp +0 -0
  301. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/exact_geodesic.cpp +0 -0
  302. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/face_areas.cpp +0 -0
  303. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/facet_adjacency_matrix.cpp +0 -0
  304. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/facet_components.cpp +0 -0
  305. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/false_barycentric_subdivision.cpp +0 -0
  306. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/fast_winding_number.cpp +0 -0
  307. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/gaussian_curvature.cpp +0 -0
  308. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/grad.cpp +0 -0
  309. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/grid.cpp +0 -0
  310. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/harmonic.cpp +0 -0
  311. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/heat_geodesics.cpp +0 -0
  312. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/icosahedron.cpp +0 -0
  313. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/in_element.cpp +0 -0
  314. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/inradius.cpp +0 -0
  315. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  316. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  317. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/is_border_vertex.cpp +0 -0
  318. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/is_edge_manifold.cpp +0 -0
  319. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/ismember_rows.cpp +0 -0
  320. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/isolines.cpp +0 -0
  321. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/isolines_intrinsic.cpp +0 -0
  322. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/kelvinlets.cpp +0 -0
  323. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/knn.cpp +0 -0
  324. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/local_basis.cpp +0 -0
  325. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/loop.cpp +0 -0
  326. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/lscm.cpp +0 -0
  327. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/marching_cubes.cpp +0 -0
  328. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/massmatrix.cpp +0 -0
  329. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/massmatrix_intrinsic.cpp +0 -0
  330. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/matlab_format.cpp +0 -0
  331. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/min_quad_with_fixed.cpp +0 -0
  332. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/module.cpp +0 -0
  333. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/moments.cpp +0 -0
  334. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/noop.cpp +0 -0
  335. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/octree.cpp +0 -0
  336. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/on_boundary.cpp +0 -0
  337. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/orient_halfedges.cpp +0 -0
  338. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/oriented_facets.cpp +0 -0
  339. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/per_face_normals.cpp +0 -0
  340. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/per_vertex_normals.cpp +0 -0
  341. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/point_mesh_squared_distance.cpp +0 -0
  342. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/polar_svd.cpp +0 -0
  343. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/polygon_corners.cpp +0 -0
  344. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/polygons_to_triangles.cpp +0 -0
  345. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/principal_curvature.cpp +0 -0
  346. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/project.cpp +0 -0
  347. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/project_to_line.cpp +0 -0
  348. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/project_to_line_segment.cpp +0 -0
  349. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/qslim.cpp +0 -0
  350. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/quad_grid.cpp +0 -0
  351. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/random_points_on_mesh.cpp +0 -0
  352. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/ray_mesh_intersect.cpp +0 -0
  353. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/readDMAT.cpp +0 -0
  354. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/readMESH.cpp +0 -0
  355. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/readMSH.cpp +0 -0
  356. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/readOBJ.cpp +0 -0
  357. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/readOFF.cpp +0 -0
  358. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/read_triangle_mesh.cpp +0 -0
  359. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/remove_duplicate_vertices.cpp +0 -0
  360. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/remove_unreferenced.cpp +0 -0
  361. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/signed_distance.cpp +0 -0
  362. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/slim.cpp +0 -0
  363. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/split_nonmanifold.cpp +0 -0
  364. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/squared_edge_lengths.cpp +0 -0
  365. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangle/module.cpp +0 -0
  366. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangle/scaf.cpp +0 -0
  367. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangle/triangulate.cpp +0 -0
  368. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangle_fan.cpp +0 -0
  369. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangle_triangle_adjacency.cpp +0 -0
  370. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/triangulated_grid.cpp +0 -0
  371. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/unique_edge_map.cpp +0 -0
  372. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/unique_simplices.cpp +0 -0
  373. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/unproject.cpp +0 -0
  374. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/upsample.cpp +0 -0
  375. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/vertex_components.cpp +0 -0
  376. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/vertex_triangle_adjacency.cpp +0 -0
  377. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/volume.cpp +0 -0
  378. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/voxel_grid.cpp +0 -0
  379. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/winding_number.cpp +0 -0
  380. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/writeDMAT.cpp +0 -0
  381. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/writeMESH.cpp +0 -0
  382. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/writeMSH.cpp +0 -0
  383. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/writeOBJ.cpp +0 -0
  384. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/writePLY.cpp +0 -0
  385. {libigl-2.5.4.dev0 → libigl-2.6.1}/src/write_triangle_mesh.cpp +0 -0
  386. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/contributing.md +0 -0
  387. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/exporter.py +0 -0
  388. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/102_DrawMesh.png +0 -0
  389. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/104_Colors.png +0 -0
  390. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/105_Overlays.png +0 -0
  391. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/106_ViewerMenu.png +0 -0
  392. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/501_HarmonicParam.png +0 -0
  393. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/502_LSCMParam.png +0 -0
  394. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/503_ARAPParam.png +0 -0
  395. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/504_nrosy_field.png +0 -0
  396. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/504_vector_field.png +0 -0
  397. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_1.png +0 -0
  398. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_2.png +0 -0
  399. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_3.png +0 -0
  400. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_4.png +0 -0
  401. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_5.png +0 -0
  402. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_6.png +0 -0
  403. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_7.png +0 -0
  404. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/505_MIQ_8.png +0 -0
  405. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/506_FrameField_1.png +0 -0
  406. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/506_FrameField_2.png +0 -0
  407. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/506_FrameField_3.png +0 -0
  408. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/506_FrameField_4.png +0 -0
  409. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/507_PolyVectorField.png +0 -0
  410. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/508_ConjugateField.png +0 -0
  411. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/509_Planarization.png +0 -0
  412. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/510_Integrable.png +0 -0
  413. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  414. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/602_Matlab_1.png +0 -0
  415. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/602_Matlab_2.png +0 -0
  416. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/604_Triangle.png +0 -0
  417. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/605_Tetgen.png +0 -0
  418. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/606_AmbientOcclusion.png +0 -0
  419. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/607_Picking.png +0 -0
  420. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/608_LIM.png +0 -0
  421. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/712_beetles.jpg +0 -0
  422. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/713_ShapeUp.png +0 -0
  423. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/VF.pdf +0 -0
  424. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/VF.png +0 -0
  425. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/arm-dqs.jpg +0 -0
  426. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/armadillo-fast.jpg +0 -0
  427. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  428. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/background.gif +0 -0
  429. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  430. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  431. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/bump-k-harmonic.jpg +0 -0
  432. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  433. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/bunny-signed-distance.gif +0 -0
  434. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/bunny-swept-volume.gif +0 -0
  435. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  436. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  437. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cheburashka-gradient.jpg +0 -0
  438. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  439. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  440. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cow-curvature-flow.jpg +0 -0
  441. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  442. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  443. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/decimated-knight-arap.jpg +0 -0
  444. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  445. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  446. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  447. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/edge-collapse.jpg +0 -0
  448. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/edge-collapse.pdf +0 -0
  449. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/fandisk-normals.jpg +0 -0
  450. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/fertility-edge-collapse.gif +0 -0
  451. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  452. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/geodesicdistance.jpg +0 -0
  453. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/hand-bbw.jpg +0 -0
  454. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/hat-function.jpg +0 -0
  455. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  456. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/heat-geodesic-peaks.png +0 -0
  457. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/libigl-logo.jpg +0 -0
  458. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/max-biharmonic.jpg +0 -0
  459. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/multiple-meshes.png +0 -0
  460. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  461. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  462. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/slim.png +0 -0
  463. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/streamlines.jpg +0 -0
  464. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/images/truck-facet-orientation.jpg +0 -0
  465. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/index.md +0 -0
  466. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/marching_cubes.py +0 -0
  467. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/plot_to_md.py +0 -0
  468. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter0.ipynb +0 -0
  469. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter1.ipynb +0 -0
  470. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter2.ipynb +0 -0
  471. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter3.ipynb +0 -0
  472. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter4.ipynb +0 -0
  473. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter5.ipynb +0 -0
  474. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter6.ipynb +0 -0
  475. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tut-chapter7.ipynb +0 -0
  476. {libigl-2.5.4.dev0 → libigl-2.6.1}/tutorial/tutorials.ipynb +0 -0
@@ -2,10 +2,10 @@ name: Pip
2
2
 
3
3
  on:
4
4
  workflow_dispatch:
5
- #pull_request:
6
- #push:
7
- # branches:
8
- # - master
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - master
9
9
 
10
10
  jobs:
11
11
  build:
@@ -14,7 +14,7 @@ jobs:
14
14
  strategy:
15
15
  fail-fast: false
16
16
  matrix:
17
- platform: [windows-latest, macos-latest, ubuntu-latest]
17
+ platform: [windows-latest, macos-latest, ubuntu-latest, ubuntu-24.04-arm]
18
18
  python-version: ["3.10"]
19
19
 
20
20
  steps:
@@ -0,0 +1,91 @@
1
+ name: Wheels
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ build_sdist:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ with:
17
+ submodules: true
18
+ - run: pipx run build --sdist
19
+ - run: pipx run twine check dist/* || exit 1 # Ensure failure on twine check errors
20
+ - uses: actions/upload-artifact@v4
21
+ with:
22
+ name: dist-sdist
23
+ path: dist/*.tar.gz
24
+
25
+ build_wheels:
26
+ runs-on: ${{ matrix.os }}
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ os: [ubuntu-24.04, ubuntu-24.04-arm, macos-14, macos-13, windows-latest] # Use specific versions for clarity
31
+ arch: [x86_64, arm64]
32
+ pybuilds: [cp38, cp39, cp310, cp311, cp312] # Define pybuilds at the top level
33
+ exclude:
34
+ - os: ubuntu-24.04-arm # No need to specify arch, it's already implicit
35
+ arch: x86_64 # Exclude x86_64 on ARM
36
+ - os: macos-14 # Exclude macOS 14 (Sonoma)
37
+ arch: x86_64 # Exclude x86_64 explicitly
38
+ - os: macos-14 # Exclude cp38
39
+ pybuilds: cp38
40
+ - os: macos-13 # Exclude macOS 13 (Ventura) - arm64
41
+ arch: arm64 # Exclude arm64 on macOS 13
42
+ - os: macos-13
43
+ pybuilds: cp38
44
+
45
+ name: >
46
+ ${{ matrix.pybuilds }} ${{ matrix.os }} ${{ matrix.arch }}
47
+
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+ - uses: actions/setup-python@v5
51
+ with:
52
+ python-version: '3.12'
53
+ - run: pip install cibuildwheel==2.23.0
54
+ - run: python -m cibuildwheel --output-dir wheelhouse
55
+ env:
56
+ CIBW_BUILD: "${{ matrix.pybuilds }}-*" # Use matrix.pybuilds and matrix.arch
57
+ CIBW_ARCHS_MACOS: ${{ matrix.arch }}
58
+ CIBW_SKIP: "cp*-manylinux_i686 cp*-musllinux* cp*-win32"
59
+ - name: Upload Artifact
60
+ uses: actions/upload-artifact@v4
61
+ continue-on-error: true # Important: Continue if upload fails
62
+ with:
63
+ # Include pybuilds in the artifact name
64
+ name: wheels-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.pybuilds }}
65
+ path: ./wheelhouse/*.whl
66
+ if-no-files-found: error # Fail if no wheels are found
67
+ compression-level: 6
68
+ overwrite: false
69
+ include-hidden-files: false
70
+
71
+ release_artifacts:
72
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
73
+ needs: build_wheels
74
+ runs-on: ubuntu-latest
75
+ permissions:
76
+ id-token: write
77
+ contents: write
78
+ steps:
79
+ - uses: actions/download-artifact@v4
80
+ with:
81
+ path: ./artifacts
82
+ merge-multiple: true
83
+ - run: ls -R ./artifacts
84
+ - uses: ncipollo/release-action@v1
85
+ with:
86
+ allowUpdates: true
87
+ artifacts: "./artifacts/**/*"
88
+ token: ${{ secrets.GITHUB_TOKEN }}
89
+ - uses: pypa/gh-action-pypi-publish@v1.12.4
90
+ with:
91
+ packages-dir: ./artifacts
@@ -14,13 +14,9 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")
14
14
  # <20 for embree
15
15
  set(CMAKE_CXX_STANDARD 17)
16
16
 
17
- if (CMAKE_VERSION VERSION_LESS 3.18)
18
- set(DEV_MODULE Development)
19
- else()
20
- set(DEV_MODULE Development.Module)
21
- endif()
22
-
23
- find_package(Python 3.8 COMPONENTS Interpreter ${DEV_MODULE} REQUIRED)
17
+ find_package(Python 3.8
18
+ REQUIRED COMPONENTS Interpreter Development.Module
19
+ OPTIONAL_COMPONENTS Development.SABIModule)
24
20
 
25
21
  if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
26
22
  set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
@@ -36,7 +32,7 @@ include(FetchContent)
36
32
  FetchContent_Declare(
37
33
  nanobind
38
34
  GIT_REPOSITORY https://github.com/wjakob/nanobind.git
39
- GIT_TAG v2.2.0
35
+ GIT_TAG v2.7.0
40
36
  )
41
37
  FetchContent_MakeAvailable(nanobind)
42
38
 
@@ -49,7 +45,7 @@ option(LIBIGL_RESTRICTED_TRIANGLE "Build target igl_restricted::triangle" ON)
49
45
  FetchContent_Declare(
50
46
  libigl
51
47
  GIT_REPOSITORY https://github.com/libigl/libigl.git
52
- GIT_TAG a221faf1e4bd571529ca2101c08bc2458579b1da
48
+ GIT_TAG v2.6.0
53
49
  )
54
50
  FetchContent_MakeAvailable(libigl)
55
51
 
@@ -125,7 +121,10 @@ function(pyigl_include prefix name)
125
121
  file(WRITE "${generated_dir}/BINDING_INVOCATIONS.in" "${BINDING_INVOCATIONS}")
126
122
 
127
123
  set(target_name "pyigl${prefix_lc}_${name}")
128
- nanobind_add_module(${target_name} ${sources})
124
+ nanobind_add_module(
125
+ ${target_name}
126
+ STABLE_ABI
127
+ ${sources})
129
128
 
130
129
  # important for scikit-build
131
130
  install(TARGETS ${target_name} LIBRARY DESTINATION "igl/${subpath}")
libigl-2.6.1/PKG-INFO ADDED
@@ -0,0 +1,117 @@
1
+ Metadata-Version: 2.1
2
+ Name: libigl
3
+ Version: 2.6.1
4
+ Summary: libigl: A simple C++ geometry processing library
5
+ Author-Email: Alec Jacobson <alecjacobson@gmail.com>
6
+ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
7
+ Project-URL: Homepage, https://github.com/libigl/libigl-python-bindings
8
+ Requires-Python: >=3.8
9
+ Requires-Dist: numpy
10
+ Requires-Dist: scipy
11
+ Description-Content-Type: text/markdown
12
+
13
+ # libigl Python Bindings
14
+ [![PyPI version](https://badge.fury.io/py/libigl.svg)](https://pypi.org/project/libigl/)
15
+ [![buildwheels](https://github.com/libigl/libigl-python-bindings/actions/workflows/wheels.yml/badge.svg)](https://github.com/libigl/libigl-python-bindings/actions/workflows/wheels.yml?query=branch%3Amain)
16
+
17
+ This repository contains the source code for the python bindings for the C++
18
+ [libigl](https://github.com/libigl/libigl) library written using
19
+ [nanobind](https://nanobind.readthedocs.io/en/latest/). Functions allow NumPy
20
+ arrays as input and output for dense matrices and vectors and SciPy sparse
21
+ matrices for sparse matrices.
22
+
23
+ ## Installation
24
+
25
+ ```
26
+ python -m pip install libigl
27
+ ```
28
+
29
+ ## Documentation
30
+
31
+ | :warning: WARNING |
32
+ |:----------------------------|
33
+ | The [python-binding documentation](https://libigl.github.io/libigl-python-bindings/) is perennially out of date and will likely be removed/changed. |
34
+
35
+ * A tutorial on how to use the bindings can be found [here](https://libigl.github.io/libigl-python-bindings/tutorials/)
36
+ * A function reference can be found [here](https://libigl.github.io/libigl-python-bindings/igl_docs/)
37
+
38
+ ## Getting the current version of libigl within python code
39
+
40
+ Since version 2.5.4.dev0, the `igl.__version__` attribute has been removed. To
41
+ get the version of the libigl package you're using within your python code, you
42
+ can use the following code:
43
+
44
+ ```
45
+ import importlib.metadata
46
+ libigl_version = importlib.metadata.version('libigl')
47
+ ```
48
+
49
+ The version of libigl is defined in the [pyproject.toml](./pyproject.toml) file.
50
+
51
+
52
+ ## Compiling and modifying the bindiings
53
+
54
+ According to the [scikit-build-core documentation](https://scikit-build-core.readthedocs.io/en/latest/configuration.html#editable-installs), the way to make an editable (incremental) build is to:
55
+
56
+ 1. Preinstall the dependencies (at the top of pyproject.toml
57
+ 2. Then use this very long command:
58
+
59
+ ```
60
+ CMAKE_BUILD_PARALLEL_LEVEL=10 python -m pip install --no-build-isolation --config-settings=editable.rebuild=true -Cbuild-dir=build -ve.
61
+ ```
62
+
63
+ The `CMAKE_BUILD_PARALLEL_LEVEL=10` will invoke with 10 parallel build threads.
64
+
65
+ ### Adding a missing binding
66
+
67
+ Bindings are fairly mechanical to write. For example, suppose we didn't have a
68
+ binding for the c++ function `igl::moments`. The first step would be to look at
69
+ the corresponding `.h` header file in the C++ libigl library:
70
+ [moments.h](https://github.com/libigl/libigl/blob/main/include/igl/moments.h).
71
+
72
+ Then we would create the [src/moments.cpp](src/moments.cpp) file in this project
73
+ which uses `Eigen::MatrixXN` for numeric types and `Eigen::MatrixXI` for integer
74
+ types. Typically this requires a simple wrapper around the function matching
75
+ its signature to these types and some boilerplate `void bind_moments(...` code which adds the function to the python module.
76
+
77
+ Simply adding this `.cpp` file will be enough to add the bindings on the next
78
+ build.
79
+
80
+ If submitting a pull request with a new binding, please also add an execution
81
+ test in `tests/test_all.py` to ensure the binding can at least be called as
82
+ expected.
83
+
84
+
85
+ ## Testing cibuildwheel locally
86
+
87
+ Install whichever version of Python from the [official website](https://www.python.org/downloads/) and then run:
88
+
89
+
90
+ /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m venv venv-official-3.11
91
+ source venv-official-3.11/bin/activate
92
+ python -m pip install cibuildwheel
93
+ CIBW_BUILD="cp311-*" python -m cibuildwheel --output-dir wheelhouse --platform macos
94
+
95
+ ## Downloading all the artifacts
96
+
97
+ A successful [.github/workflows/wheels.yml](.github/workflows/wheels.yml) run will a lot of `.whl` files. To download these all at once, you can use the following command:
98
+
99
+ mkdir wheelhouse
100
+ cd wheelhouse
101
+ gh run download [runid]
102
+
103
+ Then these can be uploaded to pypi using:
104
+
105
+ python -m twine upload --repository testpypi wheelhouse/*/*.whl wheelhouse/*/*.tar.gz
106
+
107
+ ## Acknowledgements
108
+
109
+ The original python bindings were generated and maintained by
110
+ [@teseoch](https://github.com/teseoch),
111
+ [@KarlLeell](https://github.com/KarlLeell),
112
+ [@fwilliams](https://github.com/fwilliams),
113
+ [@skoch9](https://github.com/skoch9), and
114
+ [@danielepanozzo](https://github.com/danielepanozzo)
115
+
116
+ The modern python bindings (since 2.5.4.dev0) can largely be blamed on
117
+ [@alecjacobson](https://github.com/alecjacobson).
libigl-2.6.1/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # libigl Python Bindings
2
+ [![PyPI version](https://badge.fury.io/py/libigl.svg)](https://pypi.org/project/libigl/)
3
+ [![buildwheels](https://github.com/libigl/libigl-python-bindings/actions/workflows/wheels.yml/badge.svg)](https://github.com/libigl/libigl-python-bindings/actions/workflows/wheels.yml?query=branch%3Amain)
4
+
5
+ This repository contains the source code for the python bindings for the C++
6
+ [libigl](https://github.com/libigl/libigl) library written using
7
+ [nanobind](https://nanobind.readthedocs.io/en/latest/). Functions allow NumPy
8
+ arrays as input and output for dense matrices and vectors and SciPy sparse
9
+ matrices for sparse matrices.
10
+
11
+ ## Installation
12
+
13
+ ```
14
+ python -m pip install libigl
15
+ ```
16
+
17
+ ## Documentation
18
+
19
+ | :warning: WARNING |
20
+ |:----------------------------|
21
+ | The [python-binding documentation](https://libigl.github.io/libigl-python-bindings/) is perennially out of date and will likely be removed/changed. |
22
+
23
+ * A tutorial on how to use the bindings can be found [here](https://libigl.github.io/libigl-python-bindings/tutorials/)
24
+ * A function reference can be found [here](https://libigl.github.io/libigl-python-bindings/igl_docs/)
25
+
26
+ ## Getting the current version of libigl within python code
27
+
28
+ Since version 2.5.4.dev0, the `igl.__version__` attribute has been removed. To
29
+ get the version of the libigl package you're using within your python code, you
30
+ can use the following code:
31
+
32
+ ```
33
+ import importlib.metadata
34
+ libigl_version = importlib.metadata.version('libigl')
35
+ ```
36
+
37
+ The version of libigl is defined in the [pyproject.toml](./pyproject.toml) file.
38
+
39
+
40
+ ## Compiling and modifying the bindiings
41
+
42
+ According to the [scikit-build-core documentation](https://scikit-build-core.readthedocs.io/en/latest/configuration.html#editable-installs), the way to make an editable (incremental) build is to:
43
+
44
+ 1. Preinstall the dependencies (at the top of pyproject.toml
45
+ 2. Then use this very long command:
46
+
47
+ ```
48
+ CMAKE_BUILD_PARALLEL_LEVEL=10 python -m pip install --no-build-isolation --config-settings=editable.rebuild=true -Cbuild-dir=build -ve.
49
+ ```
50
+
51
+ The `CMAKE_BUILD_PARALLEL_LEVEL=10` will invoke with 10 parallel build threads.
52
+
53
+ ### Adding a missing binding
54
+
55
+ Bindings are fairly mechanical to write. For example, suppose we didn't have a
56
+ binding for the c++ function `igl::moments`. The first step would be to look at
57
+ the corresponding `.h` header file in the C++ libigl library:
58
+ [moments.h](https://github.com/libigl/libigl/blob/main/include/igl/moments.h).
59
+
60
+ Then we would create the [src/moments.cpp](src/moments.cpp) file in this project
61
+ which uses `Eigen::MatrixXN` for numeric types and `Eigen::MatrixXI` for integer
62
+ types. Typically this requires a simple wrapper around the function matching
63
+ its signature to these types and some boilerplate `void bind_moments(...` code which adds the function to the python module.
64
+
65
+ Simply adding this `.cpp` file will be enough to add the bindings on the next
66
+ build.
67
+
68
+ If submitting a pull request with a new binding, please also add an execution
69
+ test in `tests/test_all.py` to ensure the binding can at least be called as
70
+ expected.
71
+
72
+
73
+ ## Testing cibuildwheel locally
74
+
75
+ Install whichever version of Python from the [official website](https://www.python.org/downloads/) and then run:
76
+
77
+
78
+ /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m venv venv-official-3.11
79
+ source venv-official-3.11/bin/activate
80
+ python -m pip install cibuildwheel
81
+ CIBW_BUILD="cp311-*" python -m cibuildwheel --output-dir wheelhouse --platform macos
82
+
83
+ ## Downloading all the artifacts
84
+
85
+ A successful [.github/workflows/wheels.yml](.github/workflows/wheels.yml) run will a lot of `.whl` files. To download these all at once, you can use the following command:
86
+
87
+ mkdir wheelhouse
88
+ cd wheelhouse
89
+ gh run download [runid]
90
+
91
+ Then these can be uploaded to pypi using:
92
+
93
+ python -m twine upload --repository testpypi wheelhouse/*/*.whl wheelhouse/*/*.tar.gz
94
+
95
+ ## Acknowledgements
96
+
97
+ The original python bindings were generated and maintained by
98
+ [@teseoch](https://github.com/teseoch),
99
+ [@KarlLeell](https://github.com/KarlLeell),
100
+ [@fwilliams](https://github.com/fwilliams),
101
+ [@skoch9](https://github.com/skoch9), and
102
+ [@danielepanozzo](https://github.com/danielepanozzo)
103
+
104
+ The modern python bindings (since 2.5.4.dev0) can largely be blamed on
105
+ [@alecjacobson](https://github.com/alecjacobson).
@@ -1,5 +1,5 @@
1
1
  ################################################################################
2
- cmake_minimum_required(VERSION 2.8.12)
2
+ cmake_minimum_required(VERSION 3.5)
3
3
  ################################################################################
4
4
  # See comments and discussions here:
5
5
  # http://stackoverflow.com/questions/5088460/flags-to-enable-thorough-and-verbose-g-warnings
@@ -7,13 +7,11 @@ euler_characteristic.cpp
7
7
  grad_intrinsic.cpp
8
8
  hessian.cpp
9
9
  hessian_energy.cpp
10
- internal_angles.cpp
11
10
  is_delaunay.cpp
12
11
  is_intrinsic_delaunay.cpp
13
12
  is_irregular_vertex.cpp
14
13
  iterative_closest_point.cpp
15
14
  lbs_matrix.cpp
16
- map_vertices_to_circle.cpp
17
15
  marching_tets.cpp
18
16
  mvc.cpp
19
17
  offset_surface.cpp
@@ -35,7 +33,6 @@ sparse_voxel_grid.cpp
35
33
  tet_tet_adjacency.cpp
36
34
 
37
35
  active_set.cpp
38
- all_pairs_distances.cpp
39
36
  ambient_occlusion.cpp
40
37
  arap_linear_block.cpp
41
38
  arap_rhs.cpp
@@ -14,7 +14,7 @@ build-backend = "scikit_build_core.build"
14
14
 
15
15
  [project]
16
16
  name = "libigl"
17
- version = "2.5.4dev"
17
+ version = "2.6.1"
18
18
  description = "libigl: A simple C++ geometry processing library"
19
19
  readme = "README.md"
20
20
  requires-python = ">=3.8"
@@ -42,10 +42,12 @@ build-dir = "build/{wheel_tag}"
42
42
  # Build stable ABI wheels for CPython 3.12+
43
43
  wheel.py-api = "cp312"
44
44
 
45
+
45
46
  [tool.scikit-build.cmake]
46
47
  build-type = "Release"
47
48
 
48
49
  [tool.cibuildwheel]
50
+ archs = "auto64"
49
51
  # Necessary to see build output from the actual compilation
50
52
  build-verbosity = 1
51
53
 
@@ -53,6 +55,10 @@ build-verbosity = 1
53
55
  test-command = "pytest {project}/tests"
54
56
  test-requires = "pytest"
55
57
 
58
+ # linux images
59
+ manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64"
60
+ manylinux-aarch64-image = "quay.io/pypa/manylinux_2_28_aarch64"
61
+
56
62
  # Don't test Python 3.8 wheels on macOS/arm64
57
63
  test-skip="cp38-macosx_*:arm64"
58
64
 
@@ -0,0 +1,37 @@
1
+ #include "default_types.h"
2
+ #include <igl/all_pairs_distances.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+ namespace pyigl
10
+ {
11
+ auto all_pairs_distances(
12
+ const Eigen::MatrixXd &V,
13
+ const Eigen::MatrixXd &U,
14
+ const bool squared)
15
+ {
16
+ Eigen::MatrixXd D;
17
+ igl::all_pairs_distances(V, U, squared, D);
18
+ return D;
19
+ }
20
+ }
21
+
22
+ void bind_all_pairs_distances(nb::module_ &m)
23
+ {
24
+ m.def("all_pairs_distances", &pyigl::all_pairs_distances,
25
+ "V"_a,
26
+ "U"_a,
27
+ "squared"_a,
28
+ R"(Compute distances between each point i in V and point j in U
29
+ D = all_pairs_distances(V,U)
30
+ @tparam matrix class like MatrixXd
31
+ @param[in] V #V by dim list of points
32
+ @param[in] U #U by dim list of points
33
+ @param[in] squared whether to return squared distances
34
+ @param[out] D #V by #U matrix of distances, where D(i,j) gives the distance or
35
+ squareed distance between V(i,:) and U(j,:)
36
+ )");
37
+ }
@@ -61,7 +61,9 @@ void bind_remesh_self_intersections(nb::module_ &m)
61
61
  - VV: remeshed vertex positions
62
62
  - FF: remeshed face indices
63
63
  - IF: intersecting face pairs
64
- - J: birth triangle indices)");
65
-
64
+ - J: birth triangle indices
65
+ - IM if stitch_all = true #VV list from 0 to #VV-1
66
+ elseif stitch_all = false #VV list of indices into VV of unique vertices.
67
+ )");
66
68
  }
67
69
 
@@ -0,0 +1,31 @@
1
+ #include "default_types.h"
2
+ #include <igl/internal_angles.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+ namespace pyigl
10
+ {
11
+ auto internal_angles(
12
+ const nb::DRef<const Eigen::MatrixXN> &V,
13
+ const nb::DRef<const Eigen::MatrixXI> &F)
14
+ {
15
+ Eigen::MatrixXN K;
16
+ igl::internal_angles(V, F, K);
17
+ return K;
18
+ }
19
+ }
20
+
21
+ void bind_internal_angles(nb::module_ &m)
22
+ {
23
+ m.def("internal_angles", &pyigl::internal_angles,
24
+ "V"_a,
25
+ "F"_a,
26
+ R"(Compute internal angles for all tets of a given tet mesh (V,T).
27
+ @param[in] V #V by dim eigen Matrix of mesh vertex nD positions
28
+ @param[in] F #F by poly-size eigen Matrix of face (triangle) indices
29
+ @param[out] K #F by poly-size eigen Matrix of internal angles
30
+ for triangles, columns correspond to edges [1,2],[2,0],[0,1])");
31
+ }
@@ -0,0 +1,38 @@
1
+ #include "default_types.h"
2
+ #include <igl/is_vertex_manifold.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+
10
+ namespace pyigl
11
+ {
12
+ // Wrapper for is_vertex_manifold with overload handling
13
+ auto is_vertex_manifold(
14
+ const nb::DRef<const Eigen::MatrixXI> &F)
15
+ {
16
+ Eigen::Matrix<bool, Eigen::Dynamic, 1> B;
17
+ igl::is_vertex_manifold(F, B);
18
+ return B;
19
+ }
20
+ }
21
+
22
+ // Bind the wrapper to the Python module
23
+ void bind_is_vertex_manifold(nb::module_ &m)
24
+ {
25
+ m.def(
26
+ "is_vertex_manifold",
27
+ &pyigl::is_vertex_manifold,
28
+ "F"_a,
29
+ R"(Check if a mesh is vertex-manifold.
30
+
31
+ This only checks whether the faces incident on each vertex form exactly one
32
+ connected component. Vertices incident on non-manifold edges are not consider
33
+ non-manifold by this function (see is_edge_manifold). Unreferenced verties are
34
+ considered non-manifold (zero components).
35
+
36
+ @param[in] F #F by 3 list of triangle indices
37
+ @return B #V list indicate whether each vertex is locally manifold (the mesh is vertex manifold if all(B) == True)");
38
+ }
@@ -0,0 +1,33 @@
1
+ #include "default_types.h"
2
+ #include <igl/map_vertices_to_circle.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/vector.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+ namespace pyigl
11
+ {
12
+ auto map_vertices_to_circle(
13
+ const Eigen::MatrixXd &V,
14
+ const Eigen::VectorXi &bnd)
15
+ {
16
+ Eigen::MatrixXd UV;
17
+ igl::map_vertices_to_circle(V, bnd, UV);
18
+ return UV;
19
+ }
20
+ }
21
+
22
+ void bind_map_vertices_to_circle(nb::module_ &m)
23
+ {
24
+ m.def("map_vertices_to_circle", &pyigl::map_vertices_to_circle,
25
+ "V"_a,
26
+ "bnd"_a,
27
+ R"(Map the vertices whose indices are in a given boundary loop (bnd) on the
28
+ unit circle with spacing proportional to the original boundary edge
29
+ lengths.
30
+ @param[in] V #V by dim list of mesh vertex positions
31
+ @param[in] b #W list of vertex ids
32
+ @param[out] UV #W by 2 list of 2D position on the unit circle for the vertices in b)");
33
+ }
@@ -0,0 +1,27 @@
1
+ #include "default_types.h"
2
+ #include <nanobind/nanobind.h>
3
+ #include <nanobind/eigen/sparse.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/stl/tuple.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+
10
+ namespace pyigl
11
+ {
12
+ auto sparse_map_noop( const Eigen::Map<const Eigen::SparseMatrix<Integer>> &A)
13
+ {
14
+ return A;
15
+ }
16
+ }
17
+
18
+ // Bind the wrapper to the Python module
19
+ void bind_sparse_map_noop(nb::module_ &m)
20
+ {
21
+ m.def(
22
+ "sparse_map_noop",
23
+ &pyigl::sparse_map_noop,
24
+ "A"_a,
25
+ R"("Returns input A)");
26
+ }
27
+
@@ -0,0 +1,29 @@
1
+ #include "default_types.h"
2
+ #include <nanobind/nanobind.h>
3
+ #include <nanobind/eigen/sparse.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/stl/tuple.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+
10
+ namespace pyigl
11
+ {
12
+ auto sparse_map_shape( const Eigen::Map<const Eigen::SparseMatrix<Integer>> &A)
13
+ {
14
+ Eigen::Matrix<Integer,2,1> dims(A.rows(), A.cols());
15
+ return dims;
16
+ }
17
+ }
18
+
19
+ // Bind the wrapper to the Python module
20
+ void bind_sparse_map_shape(nb::module_ &m)
21
+ {
22
+ m.def(
23
+ "sparse_map_shape",
24
+ &pyigl::sparse_map_shape,
25
+ "A"_a,
26
+ R"("Returns shape of A as 2-vector)");
27
+ }
28
+
29
+