libigl 2.6.1__tar.gz → 2.6.2.dev0__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 (479) hide show
  1. {libigl-2.6.1 → libigl-2.6.2.dev0}/CMakeLists.txt +1 -1
  2. {libigl-2.6.1 → libigl-2.6.2.dev0}/PKG-INFO +1 -2
  3. {libigl-2.6.1 → libigl-2.6.2.dev0}/README.md +0 -1
  4. {libigl-2.6.1 → libigl-2.6.2.dev0}/pyproject.toml +1 -1
  5. libigl-2.6.2.dev0/src/OrientedBoundingBoxMinimizeType.cpp +20 -0
  6. libigl-2.6.2.dev0/src/copyleft/cgal/oriented_bounding_box.cpp +40 -0
  7. libigl-2.6.2.dev0/src/lipschitz_octree.cpp +62 -0
  8. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/marching_cubes.cpp +1 -1
  9. libigl-2.6.2.dev0/src/offset_surface.cpp +53 -0
  10. libigl-2.6.2.dev0/src/oriented_bounding_box.cpp +45 -0
  11. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/random_points_on_mesh.cpp +7 -2
  12. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/remove_unreferenced.cpp +1 -0
  13. libigl-2.6.2.dev0/src/unique_sparse_voxel_corners.cpp +60 -0
  14. {libigl-2.6.1 → libigl-2.6.2.dev0}/tests/test_all.py +37 -3
  15. {libigl-2.6.1 → libigl-2.6.2.dev0}/.github/workflows/pip.yml +0 -0
  16. {libigl-2.6.1 → libigl-2.6.2.dev0}/.github/workflows/wheels.yml +0 -0
  17. {libigl-2.6.1 → libigl-2.6.2.dev0}/.gitignore +0 -0
  18. {libigl-2.6.1 → libigl-2.6.2.dev0}/LICENSE.GPL +0 -0
  19. {libigl-2.6.1 → libigl-2.6.2.dev0}/LICENSE.MPL2 +0 -0
  20. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  21. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/copyleft/triangle_triangulate.cpp +0 -0
  22. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/SolverStatus.cpp +0 -0
  23. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/WindingNumberMethod.cpp +0 -0
  24. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/angular_distance.cpp +0 -0
  25. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/canonical_quaternions.cpp +0 -0
  26. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/column_to_quats.cpp +0 -0
  27. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/comiso_nrosy.cpp +0 -0
  28. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  29. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/file_contents_as_string.cpp +0 -0
  30. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/fit_rotations.cpp +0 -0
  31. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/frame_field_deformer.cpp +0 -0
  32. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/frame_to_cross_field.cpp +0 -0
  33. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/frustum.cpp +0 -0
  34. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/group_sum_matrix.cpp +0 -0
  35. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/harwell_boeing.cpp +0 -0
  36. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/histc.cpp +0 -0
  37. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/hsv_to_rgb.cpp +0 -0
  38. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  39. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/intersect.cpp +0 -0
  40. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/invert_diag.cpp +0 -0
  41. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/is_planar.cpp +0 -0
  42. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/limit_faces.cpp +0 -0
  43. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/line_field_missmatch.cpp +0 -0
  44. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/line_search.cpp +0 -0
  45. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/mat_to_quat.cpp +0 -0
  46. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/material_colors.cpp +0 -0
  47. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  48. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/min_quad_dense.cpp +0 -0
  49. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/normalize_quat.cpp +0 -0
  50. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/on_boundary.cpp +0 -0
  51. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  52. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_floor.cpp +0 -0
  53. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  54. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_point.cpp +0 -0
  55. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  56. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  57. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  58. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_flare_textures.cpp +0 -0
  59. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  60. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  61. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_project.cpp +0 -0
  62. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_right_axis.cpp +0 -0
  63. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_shine_textures.cpp +0 -0
  64. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  65. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_unproject.cpp +0 -0
  66. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  67. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_up_axis.cpp +0 -0
  68. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl2_view_axis.cpp +0 -0
  69. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_create_shader_program.cpp +0 -0
  70. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  71. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_gl_type_size.cpp +0 -0
  72. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  73. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  74. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  75. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_load_shader.cpp +0 -0
  76. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  77. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  78. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_report_gl_error.cpp +0 -0
  79. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  80. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/ortho.cpp +0 -0
  81. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/parallel_transport_angles.cpp +0 -0
  82. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/polar_svd.cpp +0 -0
  83. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/polar_svd3x3.cpp +0 -0
  84. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  85. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  86. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quat_conjugate.cpp +0 -0
  87. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quat_mult.cpp +0 -0
  88. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quat_to_axis_angle.cpp +0 -0
  89. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quat_to_mat.cpp +0 -0
  90. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/quats_to_column.cpp +0 -0
  91. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/random_quaternion.cpp +0 -0
  92. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/readBF.cpp +0 -0
  93. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/readNODE.cpp +0 -0
  94. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/readPLY.cpp +0 -0
  95. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/readSTL.cpp +0 -0
  96. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/rgb_to_hsv.cpp +0 -0
  97. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/rotate_by_quat.cpp +0 -0
  98. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  99. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  100. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/snap_to_fixed_up.cpp +0 -0
  101. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/sort_angles.cpp +0 -0
  102. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/sort_triangles.cpp +0 -0
  103. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/sort_vectors_ccw.cpp +0 -0
  104. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/svd3x3.cpp +0 -0
  105. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/svd3x3_avx.cpp +0 -0
  106. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/svd3x3_sse.cpp +0 -0
  107. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/trackball.cpp +0 -0
  108. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/transpose_blocks.cpp +0 -0
  109. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/unique_rows.cpp +0 -0
  110. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/voxel_grid.cpp +0 -0
  111. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/writePLY.cpp +0 -0
  112. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/writeSTL.cpp +0 -0
  113. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/skip/writeWRL.cpp +0 -0
  114. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/MeshBooleanType.cpp +0 -0
  115. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/NormalType.cpp +0 -0
  116. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/collapse_edge.cpp +0 -0
  117. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  118. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  119. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  120. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  121. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  122. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  123. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  124. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  125. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  126. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  127. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  128. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  129. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  130. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  131. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  132. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  133. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  134. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  135. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  136. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  137. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  138. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  139. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  140. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  141. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  142. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  143. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  144. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  145. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  146. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  147. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  148. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  149. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  150. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  151. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  152. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  153. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  154. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  155. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  156. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  157. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  158. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  159. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  160. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  161. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  162. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  163. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  164. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  165. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  166. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  167. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  168. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  169. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  170. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  171. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  172. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  173. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  174. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  175. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  176. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  177. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  178. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  179. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  180. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  181. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  182. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  183. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  184. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  185. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  186. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  187. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  188. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  189. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/dijkstra.cpp +0 -0
  190. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/embree_bone_heat.cpp +0 -0
  191. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  192. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/fast_winding_number.cpp +0 -0
  193. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/flip_edge.cpp +0 -0
  194. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/knn.cpp +0 -0
  195. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  196. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  197. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/octree.cpp +0 -0
  198. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  199. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_readPNG.cpp +0 -0
  200. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_render_to_png.cpp +0 -0
  201. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  202. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_texture_from_file.cpp +0 -0
  203. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_texture_from_png.cpp +0 -0
  204. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/png_writePNG.cpp +0 -0
  205. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/pseudonormal_test.cpp +0 -0
  206. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/readWRL.cpp +0 -0
  207. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  208. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/seam_edges.cpp +0 -0
  209. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  210. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  211. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/straighten_seams.cpp +0 -0
  212. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  213. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/triangle_cdt.cpp +0 -0
  214. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/unzip_corners.cpp +0 -0
  215. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/writeBF.cpp +0 -0
  216. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/writeDMAT.cpp +0 -0
  217. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/writeMESH.cpp +0 -0
  218. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/writeTGF.cpp +0 -0
  219. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/xml_writeDAE.cpp +0 -0
  220. {libigl-2.6.1 → libigl-2.6.2.dev0}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  221. {libigl-2.6.1 → libigl-2.6.2.dev0}/classes/AABB.cpp +0 -0
  222. {libigl-2.6.1 → libigl-2.6.2.dev0}/classes/classes.cpp +0 -0
  223. {libigl-2.6.1 → libigl-2.6.2.dev0}/cmake/CXXFeatures.cmake +0 -0
  224. {libigl-2.6.1 → libigl-2.6.2.dev0}/cmake/FindLIBIGL.cmake +0 -0
  225. {libigl-2.6.1 → libigl-2.6.2.dev0}/cmake/UseColors.cmake +0 -0
  226. {libigl-2.6.1 → libigl-2.6.2.dev0}/cmake/Warnings.cmake +0 -0
  227. {libigl-2.6.1 → libigl-2.6.2.dev0}/include/default_types.h +0 -0
  228. {libigl-2.6.1 → libigl-2.6.2.dev0}/missing.sh +0 -0
  229. {libigl-2.6.1 → libigl-2.6.2.dev0}/mkdocs.yml +0 -0
  230. {libigl-2.6.1 → libigl-2.6.2.dev0}/postBuild +0 -0
  231. {libigl-2.6.1 → libigl-2.6.2.dev0}/priority.txt +0 -0
  232. {libigl-2.6.1 → libigl-2.6.2.dev0}/scripts/basic_function.mako +0 -0
  233. {libigl-2.6.1 → libigl-2.6.2.dev0}/scripts/blender_igl_export.py +0 -0
  234. {libigl-2.6.1 → libigl-2.6.2.dev0}/scripts/generate_bindings.py +0 -0
  235. {libigl-2.6.1 → libigl-2.6.2.dev0}/scripts/make_lean.py +0 -0
  236. {libigl-2.6.1 → libigl-2.6.2.dev0}/scripts/parser.py +0 -0
  237. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/AABB.cpp +0 -0
  238. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/FileEncoding.cpp +0 -0
  239. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/MappingEnergyType.cpp +0 -0
  240. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/MassMatrixType.cpp +0 -0
  241. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/adjacency_list.cpp +0 -0
  242. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/adjacency_matrix.cpp +0 -0
  243. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/all_pairs_distances.cpp +0 -0
  244. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/arap.cpp +0 -0
  245. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/average_from_edges_onto_vertices.cpp +0 -0
  246. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/average_onto_faces.cpp +0 -0
  247. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/average_onto_vertices.cpp +0 -0
  248. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/avg_edge_length.cpp +0 -0
  249. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/barycenter.cpp +0 -0
  250. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/barycentric_coordinates.cpp +0 -0
  251. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/bbw.cpp +0 -0
  252. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/bfs_orient.cpp +0 -0
  253. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/biharmonic_coordinates.cpp +0 -0
  254. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  255. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/blue_noise.cpp +0 -0
  256. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/boundary_facets.cpp +0 -0
  257. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/boundary_loop.cpp +0 -0
  258. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/bounding_box.cpp +0 -0
  259. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/circulation.cpp +0 -0
  260. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/circumradius.cpp +0 -0
  261. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/collapse_edge.cpp +0 -0
  262. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/connected_components.cpp +0 -0
  263. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/convex_hull.cpp +0 -0
  264. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  265. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/intersect_other.cpp +0 -0
  266. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  267. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  268. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/module.cpp +0 -0
  269. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/point_areas.cpp +0 -0
  270. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
  271. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  272. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/module.cpp +0 -0
  273. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/progressive_hulls.cpp +0 -0
  274. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/tetgen/module.cpp +0 -0
  275. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  276. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cotmatrix.cpp +0 -0
  277. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cotmatrix_entries.cpp +0 -0
  278. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cotmatrix_intrinsic.cpp +0 -0
  279. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  280. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  281. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cut_mesh.cpp +0 -0
  282. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cut_mesh_from_singularities.cpp +0 -0
  283. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cut_to_disk.cpp +0 -0
  284. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/cylinder.cpp +0 -0
  285. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/decimate.cpp +0 -0
  286. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/dihedral_angles.cpp +0 -0
  287. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/dihedral_angles_intrinsic.cpp +0 -0
  288. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/doublearea.cpp +0 -0
  289. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/dual_contouring.cpp +0 -0
  290. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/ears.cpp +0 -0
  291. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/edge_flaps.cpp +0 -0
  292. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/edge_lengths.cpp +0 -0
  293. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/edges.cpp +0 -0
  294. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/embree/EmbreeIntersector.cpp +0 -0
  295. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/embree/ambient_occlusion.cpp +0 -0
  296. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/embree/module.cpp +0 -0
  297. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/embree/reorient_facets_raycast.cpp +0 -0
  298. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/embree/shape_diameter_function.cpp +0 -0
  299. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/exact_geodesic.cpp +0 -0
  300. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/face_areas.cpp +0 -0
  301. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/facet_adjacency_matrix.cpp +0 -0
  302. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/facet_components.cpp +0 -0
  303. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/false_barycentric_subdivision.cpp +0 -0
  304. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/fast_winding_number.cpp +0 -0
  305. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/gaussian_curvature.cpp +0 -0
  306. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/grad.cpp +0 -0
  307. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/grid.cpp +0 -0
  308. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/harmonic.cpp +0 -0
  309. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/heat_geodesics.cpp +0 -0
  310. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/icosahedron.cpp +0 -0
  311. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/in_element.cpp +0 -0
  312. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/inradius.cpp +0 -0
  313. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/internal_angles.cpp +0 -0
  314. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  315. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  316. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/is_border_vertex.cpp +0 -0
  317. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/is_edge_manifold.cpp +0 -0
  318. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/is_vertex_manifold.cpp +0 -0
  319. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/ismember_rows.cpp +0 -0
  320. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/isolines.cpp +0 -0
  321. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/isolines_intrinsic.cpp +0 -0
  322. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/kelvinlets.cpp +0 -0
  323. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/knn.cpp +0 -0
  324. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/local_basis.cpp +0 -0
  325. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/loop.cpp +0 -0
  326. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/lscm.cpp +0 -0
  327. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/map_vertices_to_circle.cpp +0 -0
  328. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/massmatrix.cpp +0 -0
  329. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/massmatrix_intrinsic.cpp +0 -0
  330. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/matlab_format.cpp +0 -0
  331. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/min_quad_with_fixed.cpp +0 -0
  332. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/module.cpp +0 -0
  333. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/moments.cpp +0 -0
  334. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/noop.cpp +0 -0
  335. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/octree.cpp +0 -0
  336. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/on_boundary.cpp +0 -0
  337. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/orient_halfedges.cpp +0 -0
  338. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/oriented_facets.cpp +0 -0
  339. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/per_face_normals.cpp +0 -0
  340. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/per_vertex_normals.cpp +0 -0
  341. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/point_mesh_squared_distance.cpp +0 -0
  342. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/polar_svd.cpp +0 -0
  343. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/polygon_corners.cpp +0 -0
  344. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/polygons_to_triangles.cpp +0 -0
  345. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/principal_curvature.cpp +0 -0
  346. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/project.cpp +0 -0
  347. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/project_to_line.cpp +0 -0
  348. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/project_to_line_segment.cpp +0 -0
  349. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/qslim.cpp +0 -0
  350. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/quad_grid.cpp +0 -0
  351. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/ray_mesh_intersect.cpp +0 -0
  352. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/readDMAT.cpp +0 -0
  353. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/readMESH.cpp +0 -0
  354. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/readMSH.cpp +0 -0
  355. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/readOBJ.cpp +0 -0
  356. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/readOFF.cpp +0 -0
  357. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/read_triangle_mesh.cpp +0 -0
  358. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/remove_duplicate_vertices.cpp +0 -0
  359. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/signed_distance.cpp +0 -0
  360. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/slim.cpp +0 -0
  361. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/sparse_map_noop.cpp +0 -0
  362. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/sparse_map_shape.cpp +0 -0
  363. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/sparse_noop.cpp +0 -0
  364. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/sparse_shape.cpp +0 -0
  365. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/split_nonmanifold.cpp +0 -0
  366. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/squared_edge_lengths.cpp +0 -0
  367. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangle/module.cpp +0 -0
  368. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangle/scaf.cpp +0 -0
  369. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangle/triangulate.cpp +0 -0
  370. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangle_fan.cpp +0 -0
  371. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangle_triangle_adjacency.cpp +0 -0
  372. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/triangulated_grid.cpp +0 -0
  373. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/unique_edge_map.cpp +0 -0
  374. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/unique_simplices.cpp +0 -0
  375. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/unproject.cpp +0 -0
  376. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/upsample.cpp +0 -0
  377. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/vertex_components.cpp +0 -0
  378. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/vertex_triangle_adjacency.cpp +0 -0
  379. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/volume.cpp +0 -0
  380. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/voxel_grid.cpp +0 -0
  381. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/winding_number.cpp +0 -0
  382. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/writeDMAT.cpp +0 -0
  383. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/writeMESH.cpp +0 -0
  384. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/writeMSH.cpp +0 -0
  385. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/writeOBJ.cpp +0 -0
  386. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/writePLY.cpp +0 -0
  387. {libigl-2.6.1 → libigl-2.6.2.dev0}/src/write_triangle_mesh.cpp +0 -0
  388. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/contributing.md +0 -0
  389. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/exporter.py +0 -0
  390. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/igl_docs.md +0 -0
  391. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/102_DrawMesh.png +0 -0
  392. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/104_Colors.png +0 -0
  393. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/105_Overlays.png +0 -0
  394. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/106_ViewerMenu.png +0 -0
  395. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/501_HarmonicParam.png +0 -0
  396. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/502_LSCMParam.png +0 -0
  397. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/503_ARAPParam.png +0 -0
  398. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/504_nrosy_field.png +0 -0
  399. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/504_vector_field.png +0 -0
  400. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_1.png +0 -0
  401. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_2.png +0 -0
  402. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_3.png +0 -0
  403. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_4.png +0 -0
  404. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_5.png +0 -0
  405. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_6.png +0 -0
  406. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_7.png +0 -0
  407. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/505_MIQ_8.png +0 -0
  408. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/506_FrameField_1.png +0 -0
  409. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/506_FrameField_2.png +0 -0
  410. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/506_FrameField_3.png +0 -0
  411. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/506_FrameField_4.png +0 -0
  412. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/507_PolyVectorField.png +0 -0
  413. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/508_ConjugateField.png +0 -0
  414. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/509_Planarization.png +0 -0
  415. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/510_Integrable.png +0 -0
  416. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  417. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/602_Matlab_1.png +0 -0
  418. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/602_Matlab_2.png +0 -0
  419. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/604_Triangle.png +0 -0
  420. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/605_Tetgen.png +0 -0
  421. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/606_AmbientOcclusion.png +0 -0
  422. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/607_Picking.png +0 -0
  423. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/608_LIM.png +0 -0
  424. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/712_beetles.jpg +0 -0
  425. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/713_ShapeUp.png +0 -0
  426. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/VF.pdf +0 -0
  427. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/VF.png +0 -0
  428. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/arm-dqs.jpg +0 -0
  429. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/armadillo-fast.jpg +0 -0
  430. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  431. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/background.gif +0 -0
  432. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  433. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  434. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/bump-k-harmonic.jpg +0 -0
  435. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  436. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/bunny-signed-distance.gif +0 -0
  437. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/bunny-swept-volume.gif +0 -0
  438. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  439. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  440. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cheburashka-gradient.jpg +0 -0
  441. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  442. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  443. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cow-curvature-flow.jpg +0 -0
  444. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  445. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  446. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/decimated-knight-arap.jpg +0 -0
  447. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  448. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  449. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  450. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/edge-collapse.jpg +0 -0
  451. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/edge-collapse.pdf +0 -0
  452. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/fandisk-normals.jpg +0 -0
  453. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/fertility-edge-collapse.gif +0 -0
  454. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  455. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/geodesicdistance.jpg +0 -0
  456. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/hand-bbw.jpg +0 -0
  457. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/hat-function.jpg +0 -0
  458. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  459. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/heat-geodesic-peaks.png +0 -0
  460. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/libigl-logo.jpg +0 -0
  461. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/max-biharmonic.jpg +0 -0
  462. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/multiple-meshes.png +0 -0
  463. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  464. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  465. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/slim.png +0 -0
  466. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/streamlines.jpg +0 -0
  467. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/images/truck-facet-orientation.jpg +0 -0
  468. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/index.md +0 -0
  469. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/marching_cubes.py +0 -0
  470. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/plot_to_md.py +0 -0
  471. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter0.ipynb +0 -0
  472. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter1.ipynb +0 -0
  473. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter2.ipynb +0 -0
  474. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter3.ipynb +0 -0
  475. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter4.ipynb +0 -0
  476. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter5.ipynb +0 -0
  477. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter6.ipynb +0 -0
  478. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tut-chapter7.ipynb +0 -0
  479. {libigl-2.6.1 → libigl-2.6.2.dev0}/tutorial/tutorials.ipynb +0 -0
@@ -45,7 +45,7 @@ option(LIBIGL_RESTRICTED_TRIANGLE "Build target igl_restricted::triangle" ON)
45
45
  FetchContent_Declare(
46
46
  libigl
47
47
  GIT_REPOSITORY https://github.com/libigl/libigl.git
48
- GIT_TAG v2.6.0
48
+ GIT_TAG 678e1fff76815e0c4c5d1f025ee2129181cc7d86
49
49
  )
50
50
  FetchContent_MakeAvailable(libigl)
51
51
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: libigl
3
- Version: 2.6.1
3
+ Version: 2.6.2.dev0
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)
@@ -12,7 +12,6 @@ Description-Content-Type: text/markdown
12
12
 
13
13
  # libigl Python Bindings
14
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
15
 
17
16
  This repository contains the source code for the python bindings for the C++
18
17
  [libigl](https://github.com/libigl/libigl) library written using
@@ -1,6 +1,5 @@
1
1
  # libigl Python Bindings
2
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
3
 
5
4
  This repository contains the source code for the python bindings for the C++
6
5
  [libigl](https://github.com/libigl/libigl) library written using
@@ -14,7 +14,7 @@ build-backend = "scikit_build_core.build"
14
14
 
15
15
  [project]
16
16
  name = "libigl"
17
- version = "2.6.1"
17
+ version = "2.6.2.dev0"
18
18
  description = "libigl: A simple C++ geometry processing library"
19
19
  readme = "README.md"
20
20
  requires-python = ">=3.8"
@@ -0,0 +1,20 @@
1
+ #include "default_types.h"
2
+ #include <igl/oriented_bounding_box.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
+
11
+ void bind_OrientedBoundingBoxMinimizeType(nb::module_ &m)
12
+ {
13
+ nb::enum_<igl::OrientedBoundingBoxMinimizeType>(m, "OrientedBoundingBoxMinimizeType")
14
+ .value("ORIENTED_BOUNDING_BOX_MINIMIZE_VOLUME", igl::ORIENTED_BOUNDING_BOX_MINIMIZE_VOLUME)
15
+ .value("ORIENTED_BOUNDING_BOX_MINIMIZE_SURFACE_AREA", igl::ORIENTED_BOUNDING_BOX_MINIMIZE_SURFACE_AREA)
16
+ .value("ORIENTED_BOUNDING_BOX_MINIMIZE_DIAGONAL_LENGTH", igl::ORIENTED_BOUNDING_BOX_MINIMIZE_DIAGONAL_LENGTH)
17
+ .export_values()
18
+ ;
19
+ }
20
+
@@ -0,0 +1,40 @@
1
+ #include "default_types.h"
2
+ #include <igl/copyleft/cgal/oriented_bounding_box.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto oriented_bounding_box(
14
+ const nb::DRef<const Eigen::MatrixXN> &P)
15
+ {
16
+ Eigen::MatrixXN R;
17
+ igl::copyleft::cgal::oriented_bounding_box(P, R);
18
+ return R;
19
+ }
20
+ }
21
+
22
+ // Bind the wrapper to the Python module
23
+ void bind_oriented_bounding_box(nb::module_ &m)
24
+ {
25
+ m.def(
26
+ "oriented_bounding_box",
27
+ &pyigl::oriented_bounding_box,
28
+ "P"_a,
29
+ R"(Given a set of points compute the rotation transformation of them such
30
+ that their axis-aligned bounding box is as small as possible.
31
+
32
+ igl::oriented_bounding_box is often faster and better
33
+
34
+ @param[in] P #P by 3 list of point locations
35
+ @param[out] R rotation matrix
36
+ )");
37
+
38
+ }
39
+
40
+
@@ -0,0 +1,62 @@
1
+ #include "default_types.h"
2
+ #include <igl/lipschitz_octree.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+ #include <nanobind/stl/function.h>
8
+
9
+ namespace nb = nanobind;
10
+ using namespace nb::literals;
11
+
12
+ namespace pyigl
13
+ {
14
+ // Hopefully this will avoid a copy by matching the type in lipschitz_octree_prune
15
+ using MatrixNX3R = Eigen::Matrix<Numeric, Eigen::Dynamic, 3, Eigen::RowMajor>;
16
+ auto lipschitz_octree(
17
+ const nb::DRef<const Eigen::VectorXN> &origin,
18
+ const Numeric h0,
19
+ const Integer max_depth,
20
+ const nb::typed<
21
+ nb::callable,
22
+ Eigen::VectorXN(const nb::DRef<const MatrixNX3R> &)> & udf)
23
+ {
24
+ Eigen::MatrixXI ijk;
25
+ // Instead of MatrixXN if use use MatrixNX3R we might avoid a copy
26
+ const std::function<Eigen::VectorXN(const MatrixNX3R &)> udf_wrapper =
27
+ [&](const MatrixNX3R &Q) -> Eigen::VectorXN
28
+ {
29
+ return nb::cast<Eigen::VectorXN>(udf(Q));
30
+ };
31
+ igl::lipschitz_octree<true>(origin, h0, max_depth, udf_wrapper, ijk);
32
+ return ijk;
33
+ }
34
+ }
35
+
36
+ // Bind the wrapper to the Python module
37
+ void bind_lipschitz_octree(nb::module_ &m)
38
+ {
39
+ m.def(
40
+ "lipschitz_octree",
41
+ &pyigl::lipschitz_octree,
42
+ "origin"_a,
43
+ "h0"_a,
44
+ "max_depth"_a,
45
+ "udf"_a,
46
+ R"(Given a minimum corner position (origin) and a side length (h0) and a
47
+ maximum depth (max_depth), determine the possible active leaf octree cells
48
+ based on an one-Lipschitz non-negative function to a level set (e.g.,
49
+ "unsigned distance function").
50
+
51
+ @param[in] origin 3-vector of root cell origin (minimum corner)
52
+ @param[in] h0 side length of root cell
53
+ @param[in] max_depth maximum depth of octree (root is depth=0)
54
+ @param[in] udf 1-Lipschitz function of (unsigned) distance to level set to a
55
+ list of batched query points
56
+ @param[out] ijk #ijk by 3 list of octree leaf cell minimum corner
57
+ subscripts
58
+ )");
59
+ }
60
+
61
+
62
+
@@ -77,7 +77,7 @@ EV = np.array([[k & 0xFFFFFFFF, k >> 32, v] for k, v in E2V.items()], dtype=np.i
77
77
  "S"_a,
78
78
  "GV"_a,
79
79
  "GI"_a,
80
- "isovalue"_a=0,
80
+ "isovalue"_a=0.0,
81
81
  R"(Performs marching cubes reconstruction on a grid defined by values, and
82
82
  points, and generates a mesh defined by vertices and faces
83
83
 
@@ -0,0 +1,53 @@
1
+ #include "default_types.h"
2
+ #include <igl/offset_surface.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+ #include <nanobind/stl/vector.h>
8
+
9
+ namespace nb = nanobind;
10
+ using namespace nb::literals;
11
+
12
+ namespace pyigl {
13
+ auto offset_surface(
14
+ const nb::DRef<const Eigen::MatrixXN> &V,
15
+ const nb::DRef<const Eigen::MatrixXI> &F,
16
+ const Numeric isolevel,
17
+ const Integer s,
18
+ const igl::SignedDistanceType signed_distance_type)
19
+ {
20
+ Eigen::MatrixXN SV;
21
+ Eigen::MatrixXI SF;
22
+ Eigen::MatrixXN GV;
23
+
24
+ Eigen::VectorXI side;
25
+ Eigen::MatrixXN so;
26
+ igl::offset_surface(
27
+ V, F, isolevel, s, signed_distance_type, SV, SF, GV, side,
28
+ so);
29
+
30
+ return std::make_tuple(SV, SF, GV, side, so);
31
+ }
32
+ } // namespace pyigl
33
+
34
+ // Bind the wrapper to the Python module
35
+ void bind_offset_surface(nb::module_ &m) {
36
+ m.def(
37
+ "offset_surface", &pyigl::offset_surface, "V"_a, "F"_a, "isolevel"_a,
38
+ "s"_a, "signed_distance_type"_a,
39
+ R"(Compute a triangulated offset surface using matching cubes on a grid of signed distance values from the input triangle mesh.
40
+
41
+ @param[in] V #V by 3 list of mesh vertex positions
42
+ @param[in] F #F by 3 list of mesh triangle indices into V
43
+ @param[in] isolevel iso level to extract (signed distance: negative inside)
44
+ @param[in] s number of grid cells along longest side (controls resolution)
45
+ @param[in] signed_distance_type type of signing to use one of SIGNED_DISTANCE_TYPE_PSEUDONORMAL, SIGNED_DISTANCE_TYPE_WINDING_NUMBER, SIGNED_DISTANCE_TYPE_DEFAULT, SIGNED_DISTANCE_TYPE_UNSIGNED, SIGNED_DISTANCE_TYPE_FAST_WINDING_NUMBER
46
+
47
+ @return Tuple containing:
48
+ - SV: #SV by 3 list of output surface mesh vertex positions
49
+ - SF: #SF by 3 list of output mesh triangle indices into SV
50
+ - GV: #GV=side(0)*side(1)*side(2) by 3 list of grid cell centers
51
+ - side: list of number of grid cells in x, y, and z directions
52
+ - so: #GV by 3 list of signed distance values _near_ `isolevel` ('far' from `isolevel` these values are incorrect))");
53
+ }
@@ -0,0 +1,45 @@
1
+ #include "default_types.h"
2
+ #include <igl/oriented_bounding_box.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto oriented_bounding_box(
14
+ const nb::DRef<const Eigen::MatrixXN> &P,
15
+ const int n,
16
+ const igl::OrientedBoundingBoxMinimizeType minimize_type)
17
+ {
18
+ Eigen::MatrixXN R;
19
+ igl::oriented_bounding_box(P, n, minimize_type, R);
20
+ return R;
21
+ }
22
+ }
23
+
24
+ // Bind the wrapper to the Python module
25
+ void bind_oriented_bounding_box(nb::module_ &m)
26
+ {
27
+ m.def(
28
+ "oriented_bounding_box",
29
+ &pyigl::oriented_bounding_box,
30
+ "P"_a,
31
+ "n"_a=10000,
32
+ "minimize_type"_a=igl::ORIENTED_BOUNDING_BOX_MINIMIZE_VOLUME,
33
+ R"(Given a set of points compute the rotation transformation of them such
34
+ that their axis-aligned bounding box is as small as possible.
35
+
36
+ Consider passing the points on the convex hull of original list of points.
37
+
38
+ @param[in] P #P by 3 list of point locations
39
+ @param[in] n number of rotations to try
40
+ @param[in] minimize_type which quantity to minimize
41
+ @param[out] R rotation matrix
42
+ )");
43
+
44
+ }
45
+
@@ -1,8 +1,10 @@
1
1
  #include "default_types.h"
2
2
  #include <igl/random_points_on_mesh.h>
3
+ #include <igl/generate_default_urbg.h>
3
4
  #include <nanobind/nanobind.h>
4
5
  #include <nanobind/eigen/dense.h>
5
6
  #include <nanobind/stl/tuple.h>
7
+ #include <nanobind/stl/optional.h>
6
8
 
7
9
  namespace nb = nanobind;
8
10
  using namespace nb::literals;
@@ -13,11 +15,13 @@ namespace pyigl
13
15
  auto random_points_on_mesh(
14
16
  const Integer n,
15
17
  const nb::DRef<const Eigen::MatrixXN> &V,
16
- const nb::DRef<const Eigen::MatrixXI> &F)
18
+ const nb::DRef<const Eigen::MatrixXI> &F,
19
+ const std::optional<int> seed)
17
20
  {
21
+ std::mt19937 urbg = seed.has_value() ? std::mt19937(*seed) : igl::generate_default_urbg();
18
22
  Eigen::VectorXI FI;
19
23
  Eigen::MatrixXN B,X;
20
- igl::random_points_on_mesh(n, V, F, B, FI, X);
24
+ igl::random_points_on_mesh(n, V, F, B, FI, X, urbg);
21
25
  return std::make_tuple(B, FI, X);
22
26
  }
23
27
  }
@@ -32,6 +36,7 @@ void bind_random_points_on_mesh(nb::module_ &m)
32
36
  "n"_a,
33
37
  "V"_a,
34
38
  "F"_a,
39
+ "seed"_a = nb::none(),
35
40
  R"(
36
41
  Randomly sample a mesh (V,F) n times.
37
42
 
@@ -33,6 +33,7 @@ void bind_remove_unreferenced(nb::module_ &m)
33
33
  R"(Remove unreferenced vertices from V, updating F accordingly
34
34
  @param[in] V #V by dim list of mesh vertex positions
35
35
  @param[in] F #F by ss list of simplices (Values of -1 are quitely skipped)
36
+ @param[out] NV #NV by dim list of simplices
36
37
  @param[out] NF #NF by ss list of simplices
37
38
  @param[out] I #V by 1 list of indices such that: NF = IM(F) and NT = IM(T)
38
39
  and V(find(IM<=size(NV,1)),:) = NV
@@ -0,0 +1,60 @@
1
+ #include "default_types.h"
2
+ #include <igl/unique_sparse_voxel_corners.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/ndarray.h>
5
+ #include <nanobind/eigen/dense.h>
6
+ #include <nanobind/stl/tuple.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto unique_sparse_voxel_corners(
14
+ const nb::DRef<const Eigen::VectorXN> &origin,
15
+ const Numeric h0,
16
+ const Integer depth,
17
+ const nb::DRef<const Eigen::MatrixXI> &ijk)
18
+ {
19
+ Eigen::MatrixXI unique_ijk;
20
+ Eigen::MatrixXI J;
21
+ Eigen::MatrixXN unique_corners;
22
+
23
+ igl::unique_sparse_voxel_corners(
24
+ origin, h0, depth, ijk, unique_ijk, J, unique_corners);
25
+
26
+ return std::make_tuple(unique_ijk, J, unique_corners);
27
+ }
28
+ }
29
+
30
+ // Bind the wrapper to the Python module
31
+ void bind_unique_sparse_voxel_corners(nb::module_ &m)
32
+ {
33
+ m.def(
34
+ "unique_sparse_voxel_corners",
35
+ &pyigl::unique_sparse_voxel_corners,
36
+ "origin"_a,
37
+ "h0"_a,
38
+ "depth"_a,
39
+ "ijk"_a,
40
+ R"(
41
+ Give a list of octree cells subscripts (ijk) (minimum corners) at a given depth,
42
+ determine a unique list of subscripts to all incident corners of those
43
+ cells (de-replicating shared corners).
44
+
45
+ @param[in] origin 3-vector of root cell minimum
46
+ @param[in] h0 side length of current depth level
47
+ @param[in] depth current depth (single root cell is depth = 0)
48
+ @param[in] ijk #ijk by 3 list of octree leaf cell minimum corner
49
+ subscripts
50
+ @param[out] unique_ijk #unique_ijk by 3 list of unique corner subscripts
51
+ @param[out] J #ijk by 8 list of indices into unique_ijk in yxz binary
52
+ counting order
53
+ @param[out] unique_corners #unique_ijk by 3 list of unique corner
54
+ positions
55
+ )");
56
+
57
+ }
58
+
59
+
60
+
@@ -261,6 +261,10 @@ def test_volume():
261
261
  F = np.array([[2,1,3]],dtype=np.int64)
262
262
  NV,NF,I,J = igl.remove_unreferenced(V,F)
263
263
 
264
+ def test_offset_surface():
265
+ V,F = triangulated_square()
266
+ v, f, _, _, _ = igl.offset_surface(V, F, -0.1, 1, igl.SIGNED_DISTANCE_TYPE_DEFAULT)
267
+
264
268
  def test_oriented_facets():
265
269
  V,F,T = single_tet()
266
270
  E = igl.oriented_facets(F)
@@ -328,6 +332,19 @@ def test_sample():
328
332
  I = igl.knn(X,X,1,point_indices,CH,CN,W)
329
333
  B,FI,P = igl.blue_noise(V,F,0.5)
330
334
 
335
+ # Test equal seed yields same result
336
+ B1,I1,X1 = igl.random_points_on_mesh(10,V,F, 1)
337
+ B1_,I1_,X1_ = igl.random_points_on_mesh(10,V,F, 1)
338
+ assert np.all(B1 == B1_)
339
+ assert np.all(I1 == I1_)
340
+ assert np.all(X1 == X1_)
341
+ # Test different seed yields different result
342
+ B2,I2,X2 = igl.random_points_on_mesh(10,V,F,2)
343
+ assert not np.all(B1 == B2)
344
+ assert not np.all(I1 == I2)
345
+ assert not np.all(X1 == X2)
346
+
347
+
331
348
  def test_curvature():
332
349
  V,F = igl.icosahedron()
333
350
  K = igl.gaussian_curvature(V,F)
@@ -491,6 +508,8 @@ def test_cgal():
491
508
  point_indices, CH,CN,W = igl.octree(X)
492
509
  I = igl.knn(X,X,20,point_indices,CH,CN,W)
493
510
  A,T = igl.copyleft.cgal.point_areas(X,I,N)
511
+
512
+ R = igl.copyleft.cgal.oriented_bounding_box(VC)
494
513
 
495
514
  def test_embree():
496
515
  # octahedron
@@ -553,6 +572,21 @@ def test_misc():
553
572
  theta, cos_theta = igl.dihedral_angles_intrinsic(L,A)
554
573
  D = igl.all_pairs_distances(V,V,squared=False)
555
574
  D = igl.all_pairs_distances(V,V,squared=True)
556
-
557
-
558
-
575
+ R = igl.oriented_bounding_box(V)
576
+ R = igl.oriented_bounding_box(V,n=100,minimize_type=igl.ORIENTED_BOUNDING_BOX_MINIMIZE_SURFACE_AREA)
577
+
578
+ def test_octree():
579
+
580
+ def sdf_sphere(Q):
581
+ return np.linalg.norm(Q,axis=1) - 0.5
582
+ def udf_sphere(Q):
583
+ return np.abs(sdf_sphere(Q))
584
+
585
+ origin = np.array([-1,-1,-1],dtype=np.float64)
586
+ h0 = 2.0
587
+ max_depth = 4
588
+ ijk = igl.lipschitz_octree(origin,h0,max_depth,udf_sphere)
589
+ h = h0 / (2**max_depth)
590
+ unique_ijk, J, unique_corners = igl.unique_sparse_voxel_corners(origin,h0,max_depth,ijk)
591
+ unique_S = sdf_sphere(unique_corners)
592
+ V,F = igl.marching_cubes(unique_S,unique_corners,J,0.0)
File without changes
File without changes
File without changes
File without changes
File without changes