libigl 2.6.3.dev4__tar.gz → 2.6.3.dev5__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 (610) hide show
  1. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/.github/workflows/pip.yml +1 -1
  2. libigl-2.6.3.dev5/.github/workflows/wheels.yml +180 -0
  3. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/CMakeLists.txt +1 -2
  4. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/PKG-INFO +1 -1
  5. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/include/default_types.h +1 -0
  6. libigl-2.6.3.dev5/include/parse_transforms.h +45 -0
  7. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/pyproject.toml +1 -1
  8. libigl-2.6.3.dev5/src/active_set.cpp +100 -0
  9. libigl-2.6.3.dev5/src/ambient_occlusion.cpp +49 -0
  10. libigl-2.6.3.dev5/src/boundary_conditions.cpp +67 -0
  11. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/boundary_loop.cpp +1 -1
  12. libigl-2.6.3.dev5/src/cycodebase/point_cubic_squared_distance.cpp +67 -0
  13. libigl-2.6.3.dev5/src/cycodebase/point_spline_squared_distance.cpp +78 -0
  14. libigl-2.6.3.dev5/src/fast_winding_number.cpp +181 -0
  15. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/marching_cubes.cpp +10 -4
  16. libigl-2.6.3.dev5/src/resolve_duplicated_faces.cpp +45 -0
  17. libigl-2.6.3.dev5/src/swept_volume.cpp +60 -0
  18. libigl-2.6.3.dev5/src/swept_volume_bounding_box.cpp +48 -0
  19. libigl-2.6.3.dev5/src/swept_volume_signed_distance.cpp +91 -0
  20. libigl-2.6.3.dev5/src/vertex_components.cpp +54 -0
  21. libigl-2.6.3.dev5/src/voxel_grid.cpp +81 -0
  22. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tests/test_all.py +315 -3
  23. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter1.ipynb +2 -16
  24. libigl-2.6.3.dev4/.github/workflows/wheels.yml +0 -97
  25. libigl-2.6.3.dev4/src/cycodebase/point_cubic_squared_distance.cpp +0 -36
  26. libigl-2.6.3.dev4/src/cycodebase/point_spline_squared_distance.cpp +0 -40
  27. libigl-2.6.3.dev4/src/fast_winding_number.cpp +0 -38
  28. libigl-2.6.3.dev4/src/vertex_components.cpp +0 -33
  29. libigl-2.6.3.dev4/src/voxel_grid.cpp +0 -42
  30. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/.gitignore +0 -0
  31. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/LICENSE.GPL +0 -0
  32. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/LICENSE.MPL2 +0 -0
  33. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/README.md +0 -0
  34. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  35. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/copyleft/triangle_triangulate.cpp +0 -0
  36. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/SolverStatus.cpp +0 -0
  37. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/WindingNumberMethod.cpp +0 -0
  38. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/angular_distance.cpp +0 -0
  39. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/canonical_quaternions.cpp +0 -0
  40. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/column_to_quats.cpp +0 -0
  41. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/comiso_nrosy.cpp +0 -0
  42. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  43. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/file_contents_as_string.cpp +0 -0
  44. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/fit_rotations.cpp +0 -0
  45. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/frame_field_deformer.cpp +0 -0
  46. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/frame_to_cross_field.cpp +0 -0
  47. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/frustum.cpp +0 -0
  48. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/group_sum_matrix.cpp +0 -0
  49. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/harwell_boeing.cpp +0 -0
  50. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/histc.cpp +0 -0
  51. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/hsv_to_rgb.cpp +0 -0
  52. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  53. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/intersect.cpp +0 -0
  54. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/invert_diag.cpp +0 -0
  55. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/is_planar.cpp +0 -0
  56. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/limit_faces.cpp +0 -0
  57. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/line_field_missmatch.cpp +0 -0
  58. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/line_search.cpp +0 -0
  59. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/mat_to_quat.cpp +0 -0
  60. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/material_colors.cpp +0 -0
  61. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  62. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/min_quad_dense.cpp +0 -0
  63. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/normalize_quat.cpp +0 -0
  64. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/on_boundary.cpp +0 -0
  65. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  66. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_floor.cpp +0 -0
  67. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  68. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_point.cpp +0 -0
  69. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  70. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  71. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  72. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_flare_textures.cpp +0 -0
  73. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  74. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  75. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_project.cpp +0 -0
  76. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_right_axis.cpp +0 -0
  77. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_shine_textures.cpp +0 -0
  78. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  79. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_unproject.cpp +0 -0
  80. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  81. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_up_axis.cpp +0 -0
  82. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl2_view_axis.cpp +0 -0
  83. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_create_shader_program.cpp +0 -0
  84. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  85. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_gl_type_size.cpp +0 -0
  86. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  87. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  88. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  89. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_load_shader.cpp +0 -0
  90. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  91. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  92. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_report_gl_error.cpp +0 -0
  93. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  94. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/ortho.cpp +0 -0
  95. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/parallel_transport_angles.cpp +0 -0
  96. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/polar_svd.cpp +0 -0
  97. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/polar_svd3x3.cpp +0 -0
  98. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  99. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  100. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quat_conjugate.cpp +0 -0
  101. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quat_mult.cpp +0 -0
  102. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quat_to_axis_angle.cpp +0 -0
  103. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quat_to_mat.cpp +0 -0
  104. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/quats_to_column.cpp +0 -0
  105. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/random_quaternion.cpp +0 -0
  106. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/readBF.cpp +0 -0
  107. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/readNODE.cpp +0 -0
  108. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/readPLY.cpp +0 -0
  109. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/readSTL.cpp +0 -0
  110. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/rgb_to_hsv.cpp +0 -0
  111. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/rotate_by_quat.cpp +0 -0
  112. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  113. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  114. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/snap_to_fixed_up.cpp +0 -0
  115. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/sort_angles.cpp +0 -0
  116. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/sort_triangles.cpp +0 -0
  117. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/sort_vectors_ccw.cpp +0 -0
  118. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/svd3x3.cpp +0 -0
  119. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/svd3x3_avx.cpp +0 -0
  120. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/svd3x3_sse.cpp +0 -0
  121. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/trackball.cpp +0 -0
  122. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/transpose_blocks.cpp +0 -0
  123. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/unique_rows.cpp +0 -0
  124. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/voxel_grid.cpp +0 -0
  125. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/writePLY.cpp +0 -0
  126. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/writeSTL.cpp +0 -0
  127. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/skip/writeWRL.cpp +0 -0
  128. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/MeshBooleanType.cpp +0 -0
  129. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/NormalType.cpp +0 -0
  130. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/collapse_edge.cpp +0 -0
  131. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  132. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  133. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  134. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  135. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  136. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  137. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  138. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  139. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  140. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  141. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  142. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  143. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  144. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  145. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  146. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  147. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  148. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  149. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  150. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  151. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  152. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  153. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  154. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  155. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  156. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  157. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  158. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  159. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  160. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  161. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  162. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  163. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  164. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  165. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  166. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  167. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  168. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  169. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  170. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  171. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  172. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  173. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  174. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  175. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  176. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  177. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  178. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  179. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  180. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  181. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  182. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  183. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  184. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  185. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  186. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  187. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  188. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  189. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  190. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  191. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  192. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  193. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  194. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  195. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  196. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  197. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  198. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  199. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  200. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  201. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  202. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  203. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/dijkstra.cpp +0 -0
  204. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/embree_bone_heat.cpp +0 -0
  205. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  206. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/fast_winding_number.cpp +0 -0
  207. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/flip_edge.cpp +0 -0
  208. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/knn.cpp +0 -0
  209. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  210. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  211. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/octree.cpp +0 -0
  212. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  213. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_readPNG.cpp +0 -0
  214. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_render_to_png.cpp +0 -0
  215. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  216. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_texture_from_file.cpp +0 -0
  217. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_texture_from_png.cpp +0 -0
  218. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/png_writePNG.cpp +0 -0
  219. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/pseudonormal_test.cpp +0 -0
  220. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/readWRL.cpp +0 -0
  221. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  222. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/seam_edges.cpp +0 -0
  223. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  224. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  225. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/straighten_seams.cpp +0 -0
  226. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  227. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/triangle_cdt.cpp +0 -0
  228. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/unzip_corners.cpp +0 -0
  229. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/writeBF.cpp +0 -0
  230. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/writeDMAT.cpp +0 -0
  231. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/writeMESH.cpp +0 -0
  232. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/writeTGF.cpp +0 -0
  233. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/xml_writeDAE.cpp +0 -0
  234. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  235. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/classes/AABB.cpp +0 -0
  236. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/classes/classes.cpp +0 -0
  237. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/cmake/CXXFeatures.cmake +0 -0
  238. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/cmake/FindLIBIGL.cmake +0 -0
  239. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/cmake/UseColors.cmake +0 -0
  240. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/cmake/Warnings.cmake +0 -0
  241. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/memory/MEMORY.md +0 -0
  242. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/missing.sh +0 -0
  243. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/mkdocs.yml +0 -0
  244. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/postBuild +0 -0
  245. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/priority.txt +0 -0
  246. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/scripts/basic_function.mako +0 -0
  247. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/scripts/blender_igl_export.py +0 -0
  248. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/scripts/generate_bindings.py +0 -0
  249. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/scripts/make_lean.py +0 -0
  250. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/scripts/parser.py +0 -0
  251. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/AABB.cpp +0 -0
  252. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/FileEncoding.cpp +0 -0
  253. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/MappingEnergyType.cpp +0 -0
  254. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/MassMatrixType.cpp +0 -0
  255. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
  256. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/accumarray.cpp +0 -0
  257. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/adjacency_list.cpp +0 -0
  258. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/adjacency_matrix.cpp +0 -0
  259. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/all_pairs_distances.cpp +0 -0
  260. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/arap.cpp +0 -0
  261. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/average_from_edges_onto_vertices.cpp +0 -0
  262. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/average_onto_faces.cpp +0 -0
  263. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/average_onto_vertices.cpp +0 -0
  264. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/avg_edge_length.cpp +0 -0
  265. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/barycenter.cpp +0 -0
  266. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/barycentric_coordinates.cpp +0 -0
  267. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/barycentric_interpolation.cpp +0 -0
  268. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bbw.cpp +0 -0
  269. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bezier.cpp +0 -0
  270. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bfs_orient.cpp +0 -0
  271. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/biharmonic_coordinates.cpp +0 -0
  272. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  273. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/blue_noise.cpp +0 -0
  274. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/boundary_facets.cpp +0 -0
  275. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bounding_box.cpp +0 -0
  276. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/bounding_box_diagonal.cpp +0 -0
  277. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/centroid.cpp +0 -0
  278. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/circulation.cpp +0 -0
  279. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/circumradius.cpp +0 -0
  280. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/collapse_edge.cpp +0 -0
  281. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/colormap.cpp +0 -0
  282. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/comb_cross_field.cpp +0 -0
  283. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/comb_frame_field.cpp +0 -0
  284. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/combine.cpp +0 -0
  285. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/compute_frame_field_bisectors.cpp +0 -0
  286. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/connected_components.cpp +0 -0
  287. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/convex_hull.cpp +0 -0
  288. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/coplanar.cpp +0 -0
  289. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/delaunay_triangulation.cpp +0 -0
  290. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/extract_cells.cpp +0 -0
  291. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  292. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/intersect_other.cpp +0 -0
  293. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  294. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  295. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/module.cpp +0 -0
  296. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
  297. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/outer_hull.cpp +0 -0
  298. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/peel_outer_hull_layers.cpp +0 -0
  299. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/peel_winding_number_layers.cpp +0 -0
  300. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/point_areas.cpp +0 -0
  301. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
  302. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  303. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/marching_cubes.cpp +0 -0
  304. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/module.cpp +0 -0
  305. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/progressive_hulls.cpp +0 -0
  306. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/quadprog.cpp +0 -0
  307. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/tetgen/cdt.cpp +0 -0
  308. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/tetgen/mesh_with_skeleton.cpp +0 -0
  309. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/tetgen/module.cpp +0 -0
  310. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  311. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cotmatrix.cpp +0 -0
  312. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cotmatrix_entries.cpp +0 -0
  313. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cotmatrix_intrinsic.cpp +0 -0
  314. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cross_field_mismatch.cpp +0 -0
  315. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  316. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  317. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cubic.cpp +0 -0
  318. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cubic_is_flat.cpp +0 -0
  319. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cubic_monomial_bases.cpp +0 -0
  320. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cubic_split.cpp +0 -0
  321. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/curved_hessian_energy.cpp +0 -0
  322. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cut_mesh.cpp +0 -0
  323. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cut_mesh_from_singularities.cpp +0 -0
  324. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cut_to_disk.cpp +0 -0
  325. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cycodebase/box_cubic.cpp +0 -0
  326. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cycodebase/module.cpp +0 -0
  327. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cycodebase/roots.cpp +0 -0
  328. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cycodebase/spline_eytzinger_aabb.cpp +0 -0
  329. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/cylinder.cpp +0 -0
  330. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/decimate.cpp +0 -0
  331. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/dihedral_angles.cpp +0 -0
  332. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/dihedral_angles_intrinsic.cpp +0 -0
  333. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/dijkstra.cpp +0 -0
  334. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/directed_edge_parents.cpp +0 -0
  335. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/doublearea.cpp +0 -0
  336. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/dual_contouring.cpp +0 -0
  337. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/ears.cpp +0 -0
  338. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/edge_flaps.cpp +0 -0
  339. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/edge_lengths.cpp +0 -0
  340. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/edge_topology.cpp +0 -0
  341. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/edges.cpp +0 -0
  342. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/edges_to_path.cpp +0 -0
  343. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/EmbreeIntersector.cpp +0 -0
  344. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/ambient_occlusion.cpp +0 -0
  345. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/bone_visible.cpp +0 -0
  346. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/line_mesh_intersection.cpp +0 -0
  347. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/module.cpp +0 -0
  348. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/reorient_facets_raycast.cpp +0 -0
  349. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/embree/shape_diameter_function.cpp +0 -0
  350. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/euler_characteristic.cpp +0 -0
  351. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/exact_geodesic.cpp +0 -0
  352. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/exterior_edges.cpp +0 -0
  353. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/extract_manifold_patches.cpp +0 -0
  354. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/face_areas.cpp +0 -0
  355. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/face_occurrences.cpp +0 -0
  356. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/facet_adjacency_matrix.cpp +0 -0
  357. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/facet_components.cpp +0 -0
  358. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/false_barycentric_subdivision.cpp +0 -0
  359. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/find_cross_field_singularities.cpp +0 -0
  360. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/fit_cubic_bezier.cpp +0 -0
  361. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/fit_plane.cpp +0 -0
  362. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/flipped_triangles.cpp +0 -0
  363. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/flood_fill.cpp +0 -0
  364. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/gaussian_curvature.cpp +0 -0
  365. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/grad.cpp +0 -0
  366. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/grid.cpp +0 -0
  367. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/harmonic.cpp +0 -0
  368. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/hausdorff.cpp +0 -0
  369. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/heat_geodesics.cpp +0 -0
  370. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/hessian.cpp +0 -0
  371. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/hessian_energy.cpp +0 -0
  372. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/hsv_to_rgb.cpp +0 -0
  373. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/icosahedron.cpp +0 -0
  374. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/in_element.cpp +0 -0
  375. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/inradius.cpp +0 -0
  376. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/internal_angles.cpp +0 -0
  377. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  378. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  379. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_border_vertex.cpp +0 -0
  380. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_boundary_edge.cpp +0 -0
  381. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_delaunay.cpp +0 -0
  382. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_edge_manifold.cpp +0 -0
  383. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_intrinsic_delaunay.cpp +0 -0
  384. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_irregular_vertex.cpp +0 -0
  385. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/is_vertex_manifold.cpp +0 -0
  386. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/ismember_rows.cpp +0 -0
  387. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/isolines.cpp +0 -0
  388. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/isolines_intrinsic.cpp +0 -0
  389. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/iterative_closest_point.cpp +0 -0
  390. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/kelvinlets.cpp +0 -0
  391. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/knn.cpp +0 -0
  392. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/lbs_matrix.cpp +0 -0
  393. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/lexicographic_triangulation.cpp +0 -0
  394. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/lipschitz_octree.cpp +0 -0
  395. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/local_basis.cpp +0 -0
  396. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/look_at.cpp +0 -0
  397. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/loop.cpp +0 -0
  398. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/lscm.cpp +0 -0
  399. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/map_vertices_to_circle.cpp +0 -0
  400. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/massmatrix.cpp +0 -0
  401. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/massmatrix_intrinsic.cpp +0 -0
  402. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/matlab_format.cpp +0 -0
  403. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/min_quad_with_fixed.cpp +0 -0
  404. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/module.cpp +0 -0
  405. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/moments.cpp +0 -0
  406. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/mvc.cpp +0 -0
  407. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/noop.cpp +0 -0
  408. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/octree.cpp +0 -0
  409. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/offset_surface.cpp +0 -0
  410. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/on_boundary.cpp +0 -0
  411. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/orient_halfedges.cpp +0 -0
  412. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/orient_outward.cpp +0 -0
  413. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/orientable_patches.cpp +0 -0
  414. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/oriented_bounding_box.cpp +0 -0
  415. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/oriented_facets.cpp +0 -0
  416. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/per_corner_normals.cpp +0 -0
  417. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/per_edge_normals.cpp +0 -0
  418. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/per_face_normals.cpp +0 -0
  419. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/per_vertex_attribute_smoothing.cpp +0 -0
  420. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/per_vertex_normals.cpp +0 -0
  421. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/point_mesh_squared_distance.cpp +0 -0
  422. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/polar_dec.cpp +0 -0
  423. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/polar_svd.cpp +0 -0
  424. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/polygon_corners.cpp +0 -0
  425. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/polygons_to_triangles.cpp +0 -0
  426. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/Orientation.cpp +0 -0
  427. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/cubic_winding_number.cpp +0 -0
  428. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/delaunay_triangulation.cpp +0 -0
  429. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/ear_clipping.cpp +0 -0
  430. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/find_intersections.cpp +0 -0
  431. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/find_self_intersections.cpp +0 -0
  432. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/incircle.cpp +0 -0
  433. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/insphere.cpp +0 -0
  434. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/lexicographic_triangulation.cpp +0 -0
  435. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/module.cpp +0 -0
  436. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/orient2d.cpp +0 -0
  437. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/orient3d.cpp +0 -0
  438. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/point_in_convex_hull.cpp +0 -0
  439. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/point_inside_convex_polygon.cpp +0 -0
  440. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/polygons_to_triangles.cpp +0 -0
  441. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/segment_segment_intersect.cpp +0 -0
  442. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/spline_winding_number.cpp +0 -0
  443. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/predicates/triangle_triangle_intersect.cpp +0 -0
  444. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/principal_curvature.cpp +0 -0
  445. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/procrustes.cpp +0 -0
  446. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/project.cpp +0 -0
  447. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/project_to_line.cpp +0 -0
  448. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/project_to_line_segment.cpp +0 -0
  449. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/pseudonormal_test.cpp +0 -0
  450. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/qslim.cpp +0 -0
  451. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/quad_grid.cpp +0 -0
  452. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/random_dir.cpp +0 -0
  453. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/random_points_on_mesh.cpp +0 -0
  454. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/ray_mesh_intersect.cpp +0 -0
  455. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/ray_sphere_intersect.cpp +0 -0
  456. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/ray_triangle_intersect.cpp +0 -0
  457. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readCSV.cpp +0 -0
  458. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readDMAT.cpp +0 -0
  459. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readMESH.cpp +0 -0
  460. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readMSH.cpp +0 -0
  461. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readOBJ.cpp +0 -0
  462. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readOFF.cpp +0 -0
  463. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/readSTL.cpp +0 -0
  464. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/read_triangle_mesh.cpp +0 -0
  465. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/remove_duplicate_vertices.cpp +0 -0
  466. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/remove_unreferenced.cpp +0 -0
  467. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/rgb_to_hsv.cpp +0 -0
  468. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/rigid_alignment.cpp +0 -0
  469. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/rotate_vectors.cpp +0 -0
  470. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/rotation_matrix_from_directions.cpp +0 -0
  471. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sample_edges.cpp +0 -0
  472. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/segment_segment_intersect.cpp +0 -0
  473. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sharp_edges.cpp +0 -0
  474. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/signed_angle.cpp +0 -0
  475. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/signed_distance.cpp +0 -0
  476. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/slim.cpp +0 -0
  477. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/snap_points.cpp +0 -0
  478. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/solid_angle.cpp +0 -0
  479. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sparse_map_noop.cpp +0 -0
  480. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sparse_map_shape.cpp +0 -0
  481. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sparse_noop.cpp +0 -0
  482. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/sparse_shape.cpp +0 -0
  483. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/spectra/EigsType.cpp +0 -0
  484. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/spectra/eigs.cpp +0 -0
  485. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/spectra/lscm.cpp +0 -0
  486. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/spectra/module.cpp +0 -0
  487. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/split_nonmanifold.cpp +0 -0
  488. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/squared_edge_lengths.cpp +0 -0
  489. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/super_fibonacci.cpp +0 -0
  490. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/tet_tet_adjacency.cpp +0 -0
  491. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/tri_tri_intersect.cpp +0 -0
  492. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle/cdt.cpp +0 -0
  493. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle/module.cpp +0 -0
  494. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle/refine.cpp +0 -0
  495. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle/scaf.cpp +0 -0
  496. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle/triangulate.cpp +0 -0
  497. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle_fan.cpp +0 -0
  498. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangle_triangle_adjacency.cpp +0 -0
  499. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/triangulated_grid.cpp +0 -0
  500. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/turning_number.cpp +0 -0
  501. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/uniformly_sample_two_manifold.cpp +0 -0
  502. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/unique_edge_map.cpp +0 -0
  503. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/unique_simplices.cpp +0 -0
  504. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/unique_sparse_voxel_corners.cpp +0 -0
  505. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/unproject.cpp +0 -0
  506. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/upsample.cpp +0 -0
  507. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/vector_area_matrix.cpp +0 -0
  508. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/vertex_triangle_adjacency.cpp +0 -0
  509. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/volume.cpp +0 -0
  510. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/voronoi_mass.cpp +0 -0
  511. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/winding_number.cpp +0 -0
  512. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeDMAT.cpp +0 -0
  513. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeMESH.cpp +0 -0
  514. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeMSH.cpp +0 -0
  515. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeOBJ.cpp +0 -0
  516. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeOFF.cpp +0 -0
  517. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writePLY.cpp +0 -0
  518. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/writeSTL.cpp +0 -0
  519. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/src/write_triangle_mesh.cpp +0 -0
  520. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/contributing.md +0 -0
  521. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/exporter.py +0 -0
  522. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/igl_docs.md +0 -0
  523. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/102_DrawMesh.png +0 -0
  524. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/104_Colors.png +0 -0
  525. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/105_Overlays.png +0 -0
  526. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/106_ViewerMenu.png +0 -0
  527. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/501_HarmonicParam.png +0 -0
  528. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/502_LSCMParam.png +0 -0
  529. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/503_ARAPParam.png +0 -0
  530. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/504_nrosy_field.png +0 -0
  531. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/504_vector_field.png +0 -0
  532. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_1.png +0 -0
  533. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_2.png +0 -0
  534. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_3.png +0 -0
  535. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_4.png +0 -0
  536. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_5.png +0 -0
  537. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_6.png +0 -0
  538. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_7.png +0 -0
  539. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/505_MIQ_8.png +0 -0
  540. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/506_FrameField_1.png +0 -0
  541. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/506_FrameField_2.png +0 -0
  542. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/506_FrameField_3.png +0 -0
  543. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/506_FrameField_4.png +0 -0
  544. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/507_PolyVectorField.png +0 -0
  545. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/508_ConjugateField.png +0 -0
  546. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/509_Planarization.png +0 -0
  547. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/510_Integrable.png +0 -0
  548. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  549. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/602_Matlab_1.png +0 -0
  550. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/602_Matlab_2.png +0 -0
  551. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/604_Triangle.png +0 -0
  552. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/605_Tetgen.png +0 -0
  553. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/606_AmbientOcclusion.png +0 -0
  554. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/607_Picking.png +0 -0
  555. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/608_LIM.png +0 -0
  556. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/712_beetles.jpg +0 -0
  557. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/713_ShapeUp.png +0 -0
  558. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/VF.pdf +0 -0
  559. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/VF.png +0 -0
  560. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/arm-dqs.jpg +0 -0
  561. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/armadillo-fast.jpg +0 -0
  562. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  563. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/background.gif +0 -0
  564. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  565. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  566. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/bump-k-harmonic.jpg +0 -0
  567. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  568. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/bunny-signed-distance.gif +0 -0
  569. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/bunny-swept-volume.gif +0 -0
  570. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  571. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  572. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cheburashka-gradient.jpg +0 -0
  573. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  574. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  575. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cow-curvature-flow.jpg +0 -0
  576. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  577. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  578. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/decimated-knight-arap.jpg +0 -0
  579. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  580. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  581. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  582. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/edge-collapse.jpg +0 -0
  583. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/edge-collapse.pdf +0 -0
  584. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/fandisk-normals.jpg +0 -0
  585. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/fertility-edge-collapse.gif +0 -0
  586. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  587. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/geodesicdistance.jpg +0 -0
  588. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/hand-bbw.jpg +0 -0
  589. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/hat-function.jpg +0 -0
  590. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  591. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/heat-geodesic-peaks.png +0 -0
  592. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/libigl-logo.jpg +0 -0
  593. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/max-biharmonic.jpg +0 -0
  594. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/multiple-meshes.png +0 -0
  595. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  596. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  597. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/slim.png +0 -0
  598. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/streamlines.jpg +0 -0
  599. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/images/truck-facet-orientation.jpg +0 -0
  600. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/index.md +0 -0
  601. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/marching_cubes.py +0 -0
  602. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/plot_to_md.py +0 -0
  603. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter0.ipynb +0 -0
  604. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter2.ipynb +0 -0
  605. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter3.ipynb +0 -0
  606. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter4.ipynb +0 -0
  607. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter5.ipynb +0 -0
  608. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter6.ipynb +0 -0
  609. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tut-chapter7.ipynb +0 -0
  610. {libigl-2.6.3.dev4 → libigl-2.6.3.dev5}/tutorial/tutorials.ipynb +0 -0
@@ -5,7 +5,7 @@ on:
5
5
  pull_request:
6
6
  push:
7
7
  branches:
8
- - master
8
+ - main
9
9
 
10
10
  jobs:
11
11
  build:
@@ -0,0 +1,180 @@
1
+ name: Wheels
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches:
7
+ - main
8
+ pull_request:
9
+ branches:
10
+ - main
11
+
12
+ jobs:
13
+ build_sdist:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ submodules: true
19
+ - run: pipx run build --sdist
20
+ - run: pipx run twine check dist/* || exit 1 # Ensure failure on twine check errors
21
+ - uses: actions/upload-artifact@v4
22
+ with:
23
+ name: dist-sdist
24
+ path: dist/*.tar.gz
25
+
26
+ build_wheels:
27
+ runs-on: ${{ matrix.os }}
28
+ strategy:
29
+ fail-fast: false
30
+ matrix:
31
+ os: [ubuntu-24.04, ubuntu-24.04-arm, macos-latest, macos-15-intel, windows-latest] # Use specific versions for clarity
32
+ arch: [x86_64, arm64]
33
+ pybuilds: [cp38, cp39, cp310, cp311, cp312] # Define pybuilds at the top level
34
+ exclude:
35
+ - os: ubuntu-24.04-arm # No need to specify arch, it's already implicit
36
+ arch: x86_64 # Exclude x86_64 on ARM
37
+ - os: macos-latest
38
+ arch: x86_64 # Exclude x86_64 explicitly
39
+ - os: macos-latest # Exclude cp38
40
+ pybuilds: cp38
41
+ - os: macos-15-intel
42
+ arch: arm64 # Exclude arm64 on macOS 13
43
+ - os: macos-15-intel
44
+ pybuilds: cp38
45
+
46
+ name: >
47
+ ${{ matrix.pybuilds }} ${{ matrix.os }} ${{ matrix.arch }}
48
+
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+ - uses: actions/setup-python@v5
52
+ with:
53
+ python-version: '3.12'
54
+ - run: pip install cibuildwheel==3.1.4
55
+ - name: Build wheels
56
+ run: python -m cibuildwheel --output-dir wheelhouse
57
+ env:
58
+ CIBW_BEFORE_ALL_LINUX: "yum install -y clang"
59
+ CIBW_ENVIRONMENT_LINUX: "CC=clang CXX=clang++"
60
+ CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28"
61
+ CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux_2_28"
62
+ CIBW_BUILD: "${{ matrix.pybuilds }}-*" # Use matrix.pybuilds and matrix.arch
63
+ CIBW_ARCHS_MACOS: ${{ matrix.arch }}
64
+ CIBW_SKIP: "cp*-manylinux_i686 cp*-musllinux* cp*-win32"
65
+ - name: Upload Artifact
66
+ uses: actions/upload-artifact@v4
67
+ continue-on-error: true # Important: Continue if upload fails
68
+ with:
69
+ # Include pybuilds in the artifact name
70
+ name: wheels-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.pybuilds }}
71
+ path: ./wheelhouse/*.whl
72
+ if-no-files-found: error # Fail if no wheels are found
73
+ compression-level: 6
74
+ overwrite: false
75
+ include-hidden-files: false
76
+
77
+ check_version:
78
+ name: Check for a version bump
79
+ # Only a push to main can release; PRs and workflow_dispatch never do.
80
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
81
+ runs-on: ubuntu-latest
82
+ outputs:
83
+ should_release: ${{ steps.check.outputs.should_release }}
84
+ version: ${{ steps.check.outputs.version }}
85
+ prerelease: ${{ steps.check.outputs.prerelease }}
86
+ steps:
87
+ - uses: actions/checkout@v4
88
+ with:
89
+ # Need history to read pyproject.toml as of the previous commit
90
+ fetch-depth: 0
91
+ - uses: actions/setup-python@v5
92
+ with:
93
+ python-version: '3.12' # tomllib needs >=3.11
94
+ - name: Compare pyproject.toml version against the previous commit
95
+ id: check
96
+ env:
97
+ BEFORE: ${{ github.event.before }}
98
+ run: |
99
+ set -euo pipefail
100
+
101
+ # Read project.version from pyproject.toml at a given revision
102
+ # (empty revision = the working tree)
103
+ read_version() {
104
+ if [ -z "${1:-}" ]; then cat pyproject.toml; else git show "$1:pyproject.toml"; fi \
105
+ | python3 -c 'import sys,tomllib; print(tomllib.loads(sys.stdin.read())["project"]["version"])'
106
+ }
107
+
108
+ version=$(read_version)
109
+ echo "version=$version" >> "$GITHUB_OUTPUT"
110
+ # PEP 440 pre-releases (aN/bN/rcN/.devN) are flagged as such on GitHub.
111
+ # Note `.postN` is deliberately not a pre-release.
112
+ if printf '%s' "$version" | grep -Eq '(a[0-9]+|b[0-9]+|rc[0-9]+|\.dev[0-9]*)$'; then
113
+ echo "prerelease=true" >> "$GITHUB_OUTPUT"
114
+ else
115
+ echo "prerelease=false" >> "$GITHUB_OUTPUT"
116
+ fi
117
+
118
+ # `before` is all-zeros when the branch is first created, and can point
119
+ # at a vanished commit after a force-push; fall back to the first parent.
120
+ base="$BEFORE"
121
+ if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ] \
122
+ || ! git cat-file -e "$base^{commit}" 2>/dev/null; then
123
+ base=$(git rev-parse --verify --quiet HEAD^ || true)
124
+ fi
125
+ if [ -z "$base" ]; then
126
+ echo "No previous commit to compare against; not releasing."
127
+ echo "should_release=false" >> "$GITHUB_OUTPUT"
128
+ exit 0
129
+ fi
130
+
131
+ previous=$(read_version "$base")
132
+ echo "previous version: $previous"
133
+ echo "current version: $version"
134
+ if [ "$version" = "$previous" ]; then
135
+ echo "Version unchanged; not releasing."
136
+ echo "should_release=false" >> "$GITHUB_OUTPUT"
137
+ exit 0
138
+ fi
139
+
140
+ # Belt and braces: PyPI refuses to overwrite an existing version, and a
141
+ # re-run of this workflow would otherwise try to. Also covers the case
142
+ # where a bump was published by some other route.
143
+ if curl -sfL -o /dev/null "https://pypi.org/pypi/libigl/$version/json"; then
144
+ echo "libigl $version is already on PyPI; not releasing."
145
+ echo "should_release=false" >> "$GITHUB_OUTPUT"
146
+ exit 0
147
+ fi
148
+
149
+ echo "Version bumped $previous -> $version; releasing."
150
+ echo "should_release=true" >> "$GITHUB_OUTPUT"
151
+
152
+ release_artifacts:
153
+ name: Publish ${{ needs.check_version.outputs.version }} to PyPI
154
+ needs: [check_version, build_sdist, build_wheels]
155
+ if: needs.check_version.outputs.should_release == 'true'
156
+ runs-on: ubuntu-latest
157
+ permissions:
158
+ id-token: write # for PyPI trusted publishing
159
+ contents: write # to create the tag and GitHub release
160
+ steps:
161
+ - uses: actions/download-artifact@v4
162
+ with:
163
+ path: ./artifacts
164
+ merge-multiple: true
165
+ - run: ls -R ./artifacts
166
+ - name: Tag and create a GitHub release
167
+ uses: ncipollo/release-action@v1
168
+ with:
169
+ tag: ${{ needs.check_version.outputs.version }}
170
+ commit: ${{ github.sha }}
171
+ name: ${{ needs.check_version.outputs.version }}
172
+ prerelease: ${{ needs.check_version.outputs.prerelease }}
173
+ allowUpdates: true
174
+ artifacts: "./artifacts/**/*"
175
+ token: ${{ secrets.GITHUB_TOKEN }}
176
+ - name: Publish to PyPI
177
+ uses: pypa/gh-action-pypi-publish@v1.13.0
178
+ with:
179
+ packages-dir: ./artifacts
180
+ skip-existing: true
@@ -60,7 +60,7 @@ 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 477e15a3d566a21f415aa5ee62992b12a836b01b
63
+ GIT_TAG 0cbcaf886314ff331402c38fbb04cc4de8d7c033
64
64
  )
65
65
  FetchContent_MakeAvailable(libigl)
66
66
 
@@ -208,4 +208,3 @@ if(LIBIGL_CYCODEBASE)
208
208
  endif()
209
209
 
210
210
 
211
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: libigl
3
- Version: 2.6.3.dev4
3
+ Version: 2.6.3.dev5
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)
@@ -1,3 +1,4 @@
1
+ #pragma once
1
2
  #include <Eigen/Dense>
2
3
  #include <Eigen/Sparse>
3
4
  #include <cstdint>
@@ -0,0 +1,45 @@
1
+ #pragma once
2
+ #include "default_types.h"
3
+ #include <Eigen/Geometry>
4
+ #include <stdexcept>
5
+ #include <string>
6
+ #include <vector>
7
+
8
+ namespace pyigl
9
+ {
10
+ typedef Eigen::Transform<Numeric,3,Eigen::Affine> AffineN3;
11
+ typedef std::vector<AffineN3,Eigen::aligned_allocator<AffineN3> > AffineN3List;
12
+
13
+ /// Convert a Python list of 4×4 (or 3×4) matrices into the list of
14
+ /// Eigen::Transforms that the igl::swept_volume* functions expect.
15
+ ///
16
+ /// @param[in] transforms #transforms list of 4×4 or 3×4 matrices
17
+ /// @param[in] caller name used to prefix error messages
18
+ /// @return #transforms list of affine transformations
19
+ inline AffineN3List parse_transforms(
20
+ const std::vector<Eigen::MatrixXN> &transforms,
21
+ const char * const caller)
22
+ {
23
+ if(transforms.empty())
24
+ {
25
+ throw std::runtime_error(
26
+ std::string(caller)+": transforms must be non-empty");
27
+ }
28
+ AffineN3List T;
29
+ T.reserve(transforms.size());
30
+ for(const auto & M : transforms)
31
+ {
32
+ if(M.cols() != 4 || (M.rows() != 3 && M.rows() != 4))
33
+ {
34
+ throw std::runtime_error(
35
+ std::string(caller)+": each transform must be 3×4 or 4×4");
36
+ }
37
+ AffineN3 Ti;
38
+ // A 3×4 input leaves the implicit bottom row as [0 0 0 1]
39
+ Ti.matrix().setIdentity();
40
+ Ti.matrix().topRows(M.rows()) = M;
41
+ T.emplace_back(Ti);
42
+ }
43
+ return T;
44
+ }
45
+ }
@@ -13,7 +13,7 @@ build-backend = "scikit_build_core.build"
13
13
 
14
14
  [project]
15
15
  name = "libigl"
16
- version = "2.6.3.dev4"
16
+ version = "2.6.3.dev5"
17
17
  description = "libigl: A simple C++ geometry processing library"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.8"
@@ -0,0 +1,100 @@
1
+ #include "default_types.h"
2
+ #include <igl/active_set.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/eigen/sparse.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ // Wrapper for active_set function
14
+ auto active_set(
15
+ const Eigen::SparseMatrixN &A,
16
+ const nb::DRef<const Eigen::VectorXN> &B,
17
+ const nb::DRef<const Eigen::VectorXI> &known,
18
+ const nb::DRef<const Eigen::VectorXN> &Y,
19
+ const Eigen::SparseMatrixN &Aeq,
20
+ const nb::DRef<const Eigen::VectorXN> &Beq,
21
+ const Eigen::SparseMatrixN &Aieq,
22
+ const nb::DRef<const Eigen::VectorXN> &Bieq,
23
+ const nb::DRef<const Eigen::VectorXN> &lx,
24
+ const nb::DRef<const Eigen::VectorXN> &ux,
25
+ const bool Auu_pd,
26
+ const int max_iter,
27
+ const double inactive_threshold,
28
+ const double constraint_threshold,
29
+ const double solution_diff_threshold)
30
+ {
31
+ igl::active_set_params params;
32
+ params.Auu_pd = Auu_pd;
33
+ params.max_iter = max_iter;
34
+ params.inactive_threshold = inactive_threshold;
35
+ params.constraint_threshold = constraint_threshold;
36
+ params.solution_diff_threshold = solution_diff_threshold;
37
+
38
+ Eigen::VectorXN Z;
39
+ igl::SolverStatus status = igl::active_set(
40
+ A, B, known, Y, Aeq, Beq, Aieq, Bieq, lx, ux, params, Z);
41
+
42
+ if(status == igl::SOLVER_STATUS_ERROR)
43
+ {
44
+ throw std::runtime_error("active_set: solver failed");
45
+ }
46
+ return Z;
47
+ }
48
+ }
49
+
50
+ // Bind the wrapper to the Python module
51
+ void bind_active_set(nb::module_ &m)
52
+ {
53
+ igl::active_set_params params;
54
+ m.def(
55
+ "active_set",
56
+ &pyigl::active_set,
57
+ "A"_a,
58
+ "B"_a,
59
+ "known"_a = Eigen::VectorXI(),
60
+ "Y"_a = Eigen::VectorXN(),
61
+ "Aeq"_a = Eigen::SparseMatrixN(),
62
+ "Beq"_a = Eigen::VectorXN(),
63
+ "Aieq"_a = Eigen::SparseMatrixN(),
64
+ "Bieq"_a = Eigen::VectorXN(),
65
+ "lx"_a = Eigen::VectorXN(),
66
+ "ux"_a = Eigen::VectorXN(),
67
+ "Auu_pd"_a = params.Auu_pd,
68
+ "max_iter"_a = params.max_iter,
69
+ "inactive_threshold"_a = params.inactive_threshold,
70
+ "constraint_threshold"_a = params.constraint_threshold,
71
+ "solution_diff_threshold"_a = params.solution_diff_threshold,
72
+ R"(Minimize a convex quadratic energy subject to linear constraints.
73
+
74
+ Solves:
75
+ min 0.5 * Z' * A * Z + Z' * B
76
+ Z
77
+ subject to
78
+ Z(known) = Y
79
+ Aeq * Z = Beq
80
+ Aieq * Z <= Bieq
81
+ lx <= Z <= ux
82
+
83
+ @param[in] A n by n matrix of quadratic coefficients
84
+ @param[in] B n by 1 column of linear coefficients
85
+ @param[in] known list of indices to known rows in Z
86
+ @param[in] Y list of fixed values corresponding to known rows in Z
87
+ @param[in] Aeq meq by n list of linear equality constraint coefficients
88
+ @param[in] Beq meq by 1 list of linear equality constraint constant values
89
+ @param[in] Aieq mieq by n list of linear inequality constraint coefficients
90
+ @param[in] Bieq mieq by 1 list of linear inequality constraint constant values
91
+ @param[in] lx n by 1 list of lower bounds [] implies -Inf
92
+ @param[in] ux n by 1 list of upper bounds [] implies Inf
93
+ @param[in] Auu_pd whether Auu is positive definite {false}
94
+ @param[in] max_iter maximum number of iterations {100}
95
+ @param[in] inactive_threshold threshold on Lagrange multiplier values {1e-14}
96
+ @param[in] constraint_threshold threshold on constraint violation {1e-14}
97
+ @param[in] solution_diff_threshold threshold on solution difference {1e-14}
98
+ @return Z n by 1 solution vector)"
99
+ );
100
+ }
@@ -0,0 +1,49 @@
1
+ #include "default_types.h"
2
+ #include <igl/ambient_occlusion.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+
6
+ namespace nb = nanobind;
7
+ using namespace nb::literals;
8
+
9
+ namespace pyigl
10
+ {
11
+ // Core (embree-free) ambient occlusion: builds an AABB over (V,F) and shoots
12
+ // rays with libigl's own intersector, so it is available in every wheel
13
+ // regardless of whether the embree module was built.
14
+ auto ambient_occlusion(
15
+ const nb::DRef<const Eigen::MatrixXN> &V,
16
+ const nb::DRef<const Eigen::MatrixXI> &F,
17
+ const nb::DRef<const Eigen::MatrixXN> &P,
18
+ const nb::DRef<const Eigen::MatrixXN> &N,
19
+ const int num_samples)
20
+ {
21
+ Eigen::VectorXN S;
22
+ igl::ambient_occlusion(V, F, P, N, num_samples, S);
23
+ return S;
24
+ }
25
+ }
26
+
27
+ void bind_ambient_occlusion(nb::module_ &m)
28
+ {
29
+ m.def(
30
+ "ambient_occlusion",
31
+ &pyigl::ambient_occlusion,
32
+ "V"_a,
33
+ "F"_a,
34
+ "P"_a,
35
+ "N"_a,
36
+ "num_samples"_a,
37
+ R"(Compute ambient occlusion per given point for a mesh (V,F).
38
+
39
+ This is the embree-free implementation from igl::core; for the (typically
40
+ faster) embree-accelerated version see igl.embree.ambient_occlusion.
41
+
42
+ @param[in] V #V by 3 list of mesh vertex positions
43
+ @param[in] F #F by 3 list of mesh triangle indices into rows of V
44
+ @param[in] P #P by 3 list of origin points
45
+ @param[in] N #P by 3 list of origin normals
46
+ @param[in] num_samples number of rays to shoot per point (e.g. 1000)
47
+ @return S #P list of ambient occlusion values between 1 (fully occluded) and
48
+ 0 (not occluded))");
49
+ }
@@ -0,0 +1,67 @@
1
+ #include "default_types.h"
2
+ #include <igl/boundary_conditions.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
+ namespace pyigl
11
+ {
12
+ auto boundary_conditions(
13
+ const nb::DRef<const Eigen::MatrixXN> &V,
14
+ const nb::DRef<const Eigen::MatrixXI> &Ele,
15
+ const nb::DRef<const Eigen::MatrixXN> &C,
16
+ const nb::DRef<const Eigen::VectorXI> &P,
17
+ const nb::DRef<const Eigen::MatrixXI> &BE,
18
+ const nb::DRef<const Eigen::MatrixXI> &CE,
19
+ const nb::DRef<const Eigen::MatrixXI> &CF)
20
+ {
21
+
22
+ Eigen::VectorXI b;
23
+ Eigen::MatrixXN bc;
24
+ if(!igl::boundary_conditions(V, Ele, C, P, BE, CE, CF, b, bc))
25
+ {
26
+ throw std::runtime_error("boundary_conditions: failed to compute");
27
+ }
28
+ return std::make_tuple(b, bc);
29
+ }
30
+ }
31
+
32
+ void bind_boundary_conditions(nb::module_ &m)
33
+ {
34
+ m.def(
35
+ "boundary_conditions",
36
+ &pyigl::boundary_conditions,
37
+ "V"_a,
38
+ "Ele"_a,
39
+ "C"_a,
40
+ "P"_a=Eigen::VectorXI(),
41
+ "BE"_a=Eigen::MatrixXI(),
42
+ "CE"_a=Eigen::MatrixXI(),
43
+ "CF"_a=Eigen::MatrixXI(),
44
+ R"(Compute boundary conditions for automatic weights computation. This
45
+ function expects that the given mesh (V,Ele) has sufficient samples
46
+ (vertices) exactly at point handle locations and exactly along bone and
47
+ cage edges/faces.
48
+ @param[in] V #V by dim list of domain vertices
49
+ @param[in] Ele #Ele by simplex-size list of simplex indices
50
+ @param[in] C #C by dim list of handle positions
51
+ @param[in] P #P by 1 list of point handle indices into C
52
+ @param[in] BE #BE by 2 list of bone edge indices into C
53
+ @param[in] CE #CE by 2 list of cage edge indices into *P*
54
+ @param[in] CF #CF by 3 list of (triangular) cage face indices into *P*
55
+ @param[out] b #b list of boundary indices (indices into V of vertices which have
56
+ known, fixed values)
57
+ @param[out] bc #b by #weights list of known/fixed values for boundary vertices
58
+ (notice the #b != #weights in general because #b will include all the
59
+ intermediary samples along each bone, etc.. The ordering of the
60
+ weights corresponds to [P;BE]
61
+ throws error if boundary conditions are suspicious:
62
+ P and BE are empty
63
+ bc is empty
64
+ some column of bc doesn't have a 0 (assuming bc has >1 columns)
65
+ some column of bc doesn't have a 1 (assuming bc has >1 columns))"
66
+ );
67
+ }
@@ -16,7 +16,7 @@ namespace pyigl
16
16
  igl::boundary_loop(F, loops);
17
17
  return loops;
18
18
  }
19
- // Wrapper for boundary_loop that returns all loops as a vector of vectors
19
+ // Wrapper for boundary_loop that returns only the longest loop as a vector
20
20
  auto boundary_loop(const nb::DRef<const Eigen::MatrixXI> &F)
21
21
  {
22
22
  Eigen::VectorXI longest;
@@ -0,0 +1,67 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/point_cubic_squared_distance.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto point_cubic_squared_distance(
14
+ const nb::DRef<const Eigen::MatrixXN> &Q,
15
+ const nb::DRef<const Eigen::MatrixXN> &C)
16
+ {
17
+ Eigen::VectorXN sqrD, S;
18
+ Eigen::MatrixXN K;
19
+ igl::cycodebase::point_cubic_squared_distance(Q, C, sqrD, S, K);
20
+ return std::make_tuple(sqrD, S, K);
21
+ }
22
+
23
+ // Precomputed overload: reuse the monomial bases (D, B) from
24
+ // igl.cubic_monomial_bases so repeated queries don't recompute them.
25
+ auto point_cubic_squared_distance_bases(
26
+ const nb::DRef<const Eigen::MatrixXN> &Q,
27
+ const nb::DRef<const Eigen::MatrixXN> &C,
28
+ const nb::DRef<const Eigen::MatrixXN> &D,
29
+ const nb::DRef<const Eigen::VectorXN> &B)
30
+ {
31
+ Eigen::VectorXN sqrD, S;
32
+ Eigen::MatrixXN K;
33
+ igl::cycodebase::point_cubic_squared_distance(Q, C, D, B, sqrD, S, K);
34
+ return std::make_tuple(sqrD, S, K);
35
+ }
36
+ }
37
+
38
+ void bind_point_cubic_squared_distance(nb::module_ &m)
39
+ {
40
+ m.def("point_cubic_squared_distance", &pyigl::point_cubic_squared_distance,
41
+ "Q"_a, "C"_a,
42
+ R"(Squared distance from each query point to a cubic Bézier curve.
43
+
44
+ @param[in] Q #Q by dim matrix of query points
45
+ @param[in] C 4 by dim matrix of control points for the cubic Bézier curve
46
+ @return Tuple (sqrD, S, K) where
47
+ sqrD #Q vector of smallest squared distances
48
+ S #Q vector of parameters of the closest points on the curve
49
+ K #Q by dim matrix of closest points on the curve)");
50
+
51
+ m.def("point_cubic_squared_distance", &pyigl::point_cubic_squared_distance_bases,
52
+ "Q"_a, "C"_a, "D"_a, "B"_a,
53
+ R"(Squared distance to a cubic Bézier curve, reusing precomputed monomial bases.
54
+
55
+ Compute the bases once with igl.cubic_monomial_bases(C) -> (M, D, B) and pass
56
+ (D, B) here so repeated queries against the same curve skip recomputing them.
57
+ The result matches the two-argument overload.
58
+
59
+ @param[in] Q #Q by dim matrix of query points
60
+ @param[in] C 4 by dim matrix of control points for the cubic Bézier curve
61
+ @param[in] D 3 by dim matrix of monomial coefficients for dC/dt (from cubic_monomial_bases)
62
+ @param[in] B 6-vector of inner products of the monomial bases (from cubic_monomial_bases)
63
+ @return Tuple (sqrD, S, K) where
64
+ sqrD #Q vector of smallest squared distances
65
+ S #Q vector of parameters of the closest points on the curve
66
+ K #Q by dim matrix of closest points on the curve)");
67
+ }
@@ -0,0 +1,78 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/point_spline_squared_distance.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto point_spline_squared_distance(
14
+ const nb::DRef<const Eigen::MatrixXN> &Q,
15
+ const nb::DRef<const Eigen::MatrixXN> &P,
16
+ const nb::DRef<const Eigen::MatrixXI> &C)
17
+ {
18
+ Eigen::VectorXN sqrD, S;
19
+ Eigen::VectorXI I;
20
+ Eigen::MatrixXN K;
21
+ igl::cycodebase::point_spline_squared_distance(Q, P, C, sqrD, I, S, K);
22
+ return std::make_tuple(sqrD, I, S, K);
23
+ }
24
+
25
+ // Accelerated overload: reuse a prebuilt Eytzinger AABB (B1, B2, leaf) from
26
+ // igl.cycodebase.spline_eytzinger_aabb so repeated queries don't rebuild it.
27
+ auto point_spline_squared_distance_aabb(
28
+ const nb::DRef<const Eigen::MatrixXN> &Q,
29
+ const nb::DRef<const Eigen::MatrixXN> &P,
30
+ const nb::DRef<const Eigen::MatrixXI> &C,
31
+ const nb::DRef<const Eigen::MatrixXN> &B1,
32
+ const nb::DRef<const Eigen::MatrixXN> &B2,
33
+ const nb::DRef<const Eigen::VectorXI> &leaf)
34
+ {
35
+ Eigen::VectorXN sqrD, S;
36
+ Eigen::VectorXI I;
37
+ Eigen::MatrixXN K;
38
+ igl::cycodebase::point_spline_squared_distance(
39
+ Q, P, C, B1, B2, leaf, sqrD, I, S, K);
40
+ return std::make_tuple(sqrD, I, S, K);
41
+ }
42
+ }
43
+
44
+ void bind_point_spline_squared_distance(nb::module_ &m)
45
+ {
46
+ m.def("point_spline_squared_distance", &pyigl::point_spline_squared_distance,
47
+ "Q"_a, "P"_a, "C"_a,
48
+ R"(Squared distance from each query point to a spline of cubic Bézier curves.
49
+
50
+ @param[in] Q #Q by dim matrix of query points
51
+ @param[in] P #P by dim matrix of spline control points
52
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
53
+ @return Tuple (sqrD, I, S, K) where
54
+ sqrD #Q vector of smallest squared distances
55
+ I #Q vector of indices of the closest cubic (row of C)
56
+ S #Q vector of parameters of the closest points on that cubic
57
+ K #Q by dim matrix of closest points on the spline)");
58
+
59
+ m.def("point_spline_squared_distance", &pyigl::point_spline_squared_distance_aabb,
60
+ "Q"_a, "P"_a, "C"_a, "B1"_a, "B2"_a, "leaf"_a,
61
+ R"(Squared distance to a spline, reusing a prebuilt Eytzinger AABB.
62
+
63
+ Build the AABB once with igl.cycodebase.spline_eytzinger_aabb(P, C) and pass its
64
+ (B1, B2, leaf) here so repeated queries against the same spline skip rebuilding
65
+ the acceleration structure. The result matches the unaccelerated overload.
66
+
67
+ @param[in] Q #Q by dim matrix of query points
68
+ @param[in] P #P by dim matrix of spline control points
69
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
70
+ @param[in] B1 #B by dim matrix of AABB min box corners (from spline_eytzinger_aabb)
71
+ @param[in] B2 #B by dim matrix of AABB max box corners (from spline_eytzinger_aabb)
72
+ @param[in] leaf #B vector of AABB leaf node indices/flags (from spline_eytzinger_aabb)
73
+ @return Tuple (sqrD, I, S, K) where
74
+ sqrD #Q vector of smallest squared distances
75
+ I #Q vector of indices of the closest cubic (row of C)
76
+ S #Q vector of parameters of the closest points on that cubic
77
+ K #Q by dim matrix of closest points on the spline)");
78
+ }