libigl 2.6.2.dev0__tar.gz → 2.6.3.dev2__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 (563) hide show
  1. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/.github/workflows/wheels.yml +14 -8
  2. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/.gitignore +1 -0
  3. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/PKG-INFO +4 -2
  4. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/README.md +3 -1
  5. libigl-2.6.3.dev2/memory/MEMORY.md +26 -0
  6. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/pyproject.toml +2 -3
  7. libigl-2.6.3.dev2/src/accumarray.cpp +48 -0
  8. libigl-2.6.3.dev2/src/barycentric_interpolation.cpp +36 -0
  9. libigl-2.6.3.dev2/src/bezier.cpp +48 -0
  10. libigl-2.6.3.dev2/src/bounding_box_diagonal.cpp +25 -0
  11. libigl-2.6.3.dev2/src/centroid.cpp +40 -0
  12. libigl-2.6.3.dev2/src/colormap.cpp +62 -0
  13. libigl-2.6.3.dev2/src/comb_cross_field.cpp +39 -0
  14. libigl-2.6.3.dev2/src/comb_frame_field.cpp +47 -0
  15. libigl-2.6.3.dev2/src/combine.cpp +33 -0
  16. libigl-2.6.3.dev2/src/compute_frame_field_bisectors.cpp +71 -0
  17. libigl-2.6.3.dev2/src/copyleft/cgal/coplanar.cpp +24 -0
  18. libigl-2.6.3.dev2/src/copyleft/cgal/delaunay_triangulation.cpp +26 -0
  19. libigl-2.6.3.dev2/src/copyleft/cgal/extract_cells.cpp +35 -0
  20. libigl-2.6.3.dev2/src/copyleft/cgal/outer_hull.cpp +42 -0
  21. libigl-2.6.3.dev2/src/copyleft/cgal/peel_outer_hull_layers.cpp +36 -0
  22. libigl-2.6.3.dev2/src/copyleft/cgal/peel_winding_number_layers.cpp +34 -0
  23. libigl-2.6.3.dev2/src/copyleft/marching_cubes.cpp +68 -0
  24. libigl-2.6.3.dev2/src/copyleft/quadprog.cpp +49 -0
  25. libigl-2.6.3.dev2/src/copyleft/tetgen/cdt.cpp +57 -0
  26. libigl-2.6.3.dev2/src/copyleft/tetgen/mesh_with_skeleton.cpp +61 -0
  27. libigl-2.6.3.dev2/src/cross_field_mismatch.cpp +45 -0
  28. libigl-2.6.3.dev2/src/curved_hessian_energy.cpp +46 -0
  29. libigl-2.6.3.dev2/src/dijkstra.cpp +84 -0
  30. libigl-2.6.3.dev2/src/directed_edge_parents.cpp +26 -0
  31. libigl-2.6.3.dev2/src/edge_topology.cpp +32 -0
  32. libigl-2.6.3.dev2/src/edges_to_path.cpp +36 -0
  33. libigl-2.6.3.dev2/src/embree/bone_visible.cpp +40 -0
  34. libigl-2.6.3.dev2/src/embree/line_mesh_intersection.cpp +44 -0
  35. libigl-2.6.3.dev2/src/euler_characteristic.cpp +20 -0
  36. libigl-2.6.3.dev2/src/exterior_edges.cpp +26 -0
  37. libigl-2.6.3.dev2/src/extract_manifold_patches.cpp +30 -0
  38. libigl-2.6.3.dev2/src/face_occurrences.cpp +26 -0
  39. libigl-2.6.3.dev2/src/find_cross_field_singularities.cpp +64 -0
  40. libigl-2.6.3.dev2/src/fit_plane.cpp +30 -0
  41. libigl-2.6.3.dev2/src/flipped_triangles.cpp +29 -0
  42. libigl-2.6.3.dev2/src/flood_fill.cpp +31 -0
  43. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/harmonic.cpp +24 -1
  44. libigl-2.6.3.dev2/src/hausdorff.cpp +37 -0
  45. libigl-2.6.3.dev2/src/hessian.cpp +48 -0
  46. libigl-2.6.3.dev2/src/hessian_energy.cpp +47 -0
  47. libigl-2.6.3.dev2/src/hsv_to_rgb.cpp +26 -0
  48. libigl-2.6.3.dev2/src/is_boundary_edge.cpp +55 -0
  49. libigl-2.6.3.dev2/src/is_delaunay.cpp +30 -0
  50. libigl-2.6.3.dev2/src/is_intrinsic_delaunay.cpp +33 -0
  51. libigl-2.6.3.dev2/src/is_irregular_vertex.cpp +22 -0
  52. libigl-2.6.3.dev2/src/iterative_closest_point.cpp +45 -0
  53. libigl-2.6.3.dev2/src/lbs_matrix.cpp +34 -0
  54. libigl-2.6.3.dev2/src/look_at.cpp +36 -0
  55. libigl-2.6.3.dev2/src/mvc.cpp +31 -0
  56. libigl-2.6.3.dev2/src/orient_outward.cpp +39 -0
  57. libigl-2.6.3.dev2/src/orientable_patches.cpp +45 -0
  58. libigl-2.6.3.dev2/src/per_corner_normals.cpp +34 -0
  59. libigl-2.6.3.dev2/src/per_edge_normals.cpp +47 -0
  60. libigl-2.6.3.dev2/src/per_vertex_attribute_smoothing.cpp +32 -0
  61. libigl-2.6.3.dev2/src/polar_dec.cpp +57 -0
  62. libigl-2.6.3.dev2/src/procrustes.cpp +41 -0
  63. libigl-2.6.3.dev2/src/pseudonormal_test.cpp +56 -0
  64. libigl-2.6.3.dev2/src/random_dir.cpp +28 -0
  65. libigl-2.6.3.dev2/src/ray_sphere_intersect.cpp +41 -0
  66. libigl-2.6.3.dev2/src/ray_triangle_intersect.cpp +50 -0
  67. libigl-2.6.3.dev2/src/readCSV.cpp +29 -0
  68. libigl-2.6.3.dev2/src/readSTL.cpp +42 -0
  69. libigl-2.6.3.dev2/src/rgb_to_hsv.cpp +26 -0
  70. libigl-2.6.3.dev2/src/rigid_alignment.cpp +36 -0
  71. libigl-2.6.3.dev2/src/rotate_vectors.cpp +28 -0
  72. libigl-2.6.3.dev2/src/rotation_matrix_from_directions.cpp +31 -0
  73. libigl-2.6.3.dev2/src/sample_edges.cpp +34 -0
  74. libigl-2.6.3.dev2/src/segment_segment_intersect.cpp +49 -0
  75. libigl-2.6.3.dev2/src/sharp_edges.cpp +32 -0
  76. libigl-2.6.3.dev2/src/signed_angle.cpp +32 -0
  77. libigl-2.6.3.dev2/src/snap_points.cpp +34 -0
  78. libigl-2.6.3.dev2/src/solid_angle.cpp +35 -0
  79. libigl-2.6.3.dev2/src/super_fibonacci.cpp +28 -0
  80. libigl-2.6.3.dev2/src/tet_tet_adjacency.cpp +30 -0
  81. libigl-2.6.3.dev2/src/tri_tri_intersect.cpp +73 -0
  82. libigl-2.6.3.dev2/src/triangle/cdt.cpp +47 -0
  83. libigl-2.6.3.dev2/src/triangle/refine.cpp +39 -0
  84. libigl-2.6.3.dev2/src/turning_number.cpp +20 -0
  85. libigl-2.6.3.dev2/src/uniformly_sample_two_manifold.cpp +38 -0
  86. libigl-2.6.3.dev2/src/vector_area_matrix.cpp +29 -0
  87. libigl-2.6.3.dev2/src/voronoi_mass.cpp +29 -0
  88. libigl-2.6.3.dev2/src/writeOFF.cpp +52 -0
  89. libigl-2.6.3.dev2/src/writeSTL.cpp +37 -0
  90. libigl-2.6.3.dev2/tests/test_all.py +1375 -0
  91. libigl-2.6.2.dev0/tests/test_all.py +0 -592
  92. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/.github/workflows/pip.yml +0 -0
  93. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/CMakeLists.txt +0 -0
  94. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/LICENSE.GPL +0 -0
  95. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/LICENSE.MPL2 +0 -0
  96. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  97. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/copyleft/triangle_triangulate.cpp +0 -0
  98. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/SolverStatus.cpp +0 -0
  99. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/WindingNumberMethod.cpp +0 -0
  100. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/angular_distance.cpp +0 -0
  101. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/canonical_quaternions.cpp +0 -0
  102. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/column_to_quats.cpp +0 -0
  103. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/comiso_nrosy.cpp +0 -0
  104. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  105. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/file_contents_as_string.cpp +0 -0
  106. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/fit_rotations.cpp +0 -0
  107. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/frame_field_deformer.cpp +0 -0
  108. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/frame_to_cross_field.cpp +0 -0
  109. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/frustum.cpp +0 -0
  110. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/group_sum_matrix.cpp +0 -0
  111. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/harwell_boeing.cpp +0 -0
  112. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/histc.cpp +0 -0
  113. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/hsv_to_rgb.cpp +0 -0
  114. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  115. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/intersect.cpp +0 -0
  116. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/invert_diag.cpp +0 -0
  117. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/is_planar.cpp +0 -0
  118. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/limit_faces.cpp +0 -0
  119. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/line_field_missmatch.cpp +0 -0
  120. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/line_search.cpp +0 -0
  121. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/mat_to_quat.cpp +0 -0
  122. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/material_colors.cpp +0 -0
  123. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  124. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/min_quad_dense.cpp +0 -0
  125. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/normalize_quat.cpp +0 -0
  126. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/on_boundary.cpp +0 -0
  127. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  128. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_floor.cpp +0 -0
  129. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  130. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_point.cpp +0 -0
  131. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  132. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  133. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  134. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_flare_textures.cpp +0 -0
  135. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  136. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  137. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_project.cpp +0 -0
  138. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_right_axis.cpp +0 -0
  139. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_shine_textures.cpp +0 -0
  140. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  141. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_unproject.cpp +0 -0
  142. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  143. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_up_axis.cpp +0 -0
  144. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl2_view_axis.cpp +0 -0
  145. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_create_shader_program.cpp +0 -0
  146. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  147. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_gl_type_size.cpp +0 -0
  148. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  149. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  150. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  151. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_load_shader.cpp +0 -0
  152. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  153. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  154. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_report_gl_error.cpp +0 -0
  155. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  156. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/ortho.cpp +0 -0
  157. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/parallel_transport_angles.cpp +0 -0
  158. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/polar_svd.cpp +0 -0
  159. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/polar_svd3x3.cpp +0 -0
  160. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  161. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  162. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quat_conjugate.cpp +0 -0
  163. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quat_mult.cpp +0 -0
  164. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quat_to_axis_angle.cpp +0 -0
  165. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quat_to_mat.cpp +0 -0
  166. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/quats_to_column.cpp +0 -0
  167. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/random_quaternion.cpp +0 -0
  168. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/readBF.cpp +0 -0
  169. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/readNODE.cpp +0 -0
  170. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/readPLY.cpp +0 -0
  171. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/readSTL.cpp +0 -0
  172. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/rgb_to_hsv.cpp +0 -0
  173. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/rotate_by_quat.cpp +0 -0
  174. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  175. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  176. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/snap_to_fixed_up.cpp +0 -0
  177. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/sort_angles.cpp +0 -0
  178. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/sort_triangles.cpp +0 -0
  179. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/sort_vectors_ccw.cpp +0 -0
  180. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/svd3x3.cpp +0 -0
  181. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/svd3x3_avx.cpp +0 -0
  182. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/svd3x3_sse.cpp +0 -0
  183. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/trackball.cpp +0 -0
  184. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/transpose_blocks.cpp +0 -0
  185. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/unique_rows.cpp +0 -0
  186. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/voxel_grid.cpp +0 -0
  187. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/writePLY.cpp +0 -0
  188. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/writeSTL.cpp +0 -0
  189. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/skip/writeWRL.cpp +0 -0
  190. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/MeshBooleanType.cpp +0 -0
  191. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/NormalType.cpp +0 -0
  192. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/collapse_edge.cpp +0 -0
  193. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  194. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  195. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  196. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  197. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  198. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  199. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  200. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  201. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  202. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  203. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  204. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  205. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  206. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  207. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  208. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  209. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  210. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  211. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  212. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  213. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  214. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  215. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  216. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  217. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  218. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  219. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  220. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  221. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  222. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  223. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  224. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  225. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  226. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  227. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  228. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  229. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  230. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  231. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  232. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  233. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  234. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  235. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  236. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  237. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  238. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  239. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  240. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  241. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  242. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  243. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  244. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  245. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  246. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  247. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  248. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  249. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  250. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  251. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  252. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  253. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  254. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  255. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  256. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  257. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  258. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  259. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  260. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  261. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  262. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  263. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  264. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  265. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/dijkstra.cpp +0 -0
  266. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/embree_bone_heat.cpp +0 -0
  267. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  268. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/fast_winding_number.cpp +0 -0
  269. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/flip_edge.cpp +0 -0
  270. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/knn.cpp +0 -0
  271. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  272. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  273. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/octree.cpp +0 -0
  274. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  275. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_readPNG.cpp +0 -0
  276. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_render_to_png.cpp +0 -0
  277. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  278. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_texture_from_file.cpp +0 -0
  279. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_texture_from_png.cpp +0 -0
  280. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/png_writePNG.cpp +0 -0
  281. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/pseudonormal_test.cpp +0 -0
  282. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/readWRL.cpp +0 -0
  283. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  284. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/seam_edges.cpp +0 -0
  285. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  286. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  287. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/straighten_seams.cpp +0 -0
  288. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  289. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/triangle_cdt.cpp +0 -0
  290. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/unzip_corners.cpp +0 -0
  291. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/writeBF.cpp +0 -0
  292. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/writeDMAT.cpp +0 -0
  293. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/writeMESH.cpp +0 -0
  294. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/writeTGF.cpp +0 -0
  295. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/xml_writeDAE.cpp +0 -0
  296. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  297. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/classes/AABB.cpp +0 -0
  298. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/classes/classes.cpp +0 -0
  299. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/cmake/CXXFeatures.cmake +0 -0
  300. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/cmake/FindLIBIGL.cmake +0 -0
  301. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/cmake/UseColors.cmake +0 -0
  302. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/cmake/Warnings.cmake +0 -0
  303. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/include/default_types.h +0 -0
  304. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/missing.sh +0 -0
  305. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/mkdocs.yml +0 -0
  306. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/postBuild +0 -0
  307. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/priority.txt +0 -0
  308. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/scripts/basic_function.mako +0 -0
  309. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/scripts/blender_igl_export.py +0 -0
  310. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/scripts/generate_bindings.py +0 -0
  311. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/scripts/make_lean.py +0 -0
  312. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/scripts/parser.py +0 -0
  313. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/AABB.cpp +0 -0
  314. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/FileEncoding.cpp +0 -0
  315. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/MappingEnergyType.cpp +0 -0
  316. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/MassMatrixType.cpp +0 -0
  317. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
  318. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/adjacency_list.cpp +0 -0
  319. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/adjacency_matrix.cpp +0 -0
  320. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/all_pairs_distances.cpp +0 -0
  321. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/arap.cpp +0 -0
  322. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/average_from_edges_onto_vertices.cpp +0 -0
  323. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/average_onto_faces.cpp +0 -0
  324. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/average_onto_vertices.cpp +0 -0
  325. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/avg_edge_length.cpp +0 -0
  326. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/barycenter.cpp +0 -0
  327. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/barycentric_coordinates.cpp +0 -0
  328. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/bbw.cpp +0 -0
  329. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/bfs_orient.cpp +0 -0
  330. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/biharmonic_coordinates.cpp +0 -0
  331. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  332. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/blue_noise.cpp +0 -0
  333. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/boundary_facets.cpp +0 -0
  334. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/boundary_loop.cpp +0 -0
  335. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/bounding_box.cpp +0 -0
  336. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/circulation.cpp +0 -0
  337. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/circumradius.cpp +0 -0
  338. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/collapse_edge.cpp +0 -0
  339. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/connected_components.cpp +0 -0
  340. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/convex_hull.cpp +0 -0
  341. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  342. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/intersect_other.cpp +0 -0
  343. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  344. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  345. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/module.cpp +0 -0
  346. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
  347. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/point_areas.cpp +0 -0
  348. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
  349. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  350. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/module.cpp +0 -0
  351. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/progressive_hulls.cpp +0 -0
  352. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/tetgen/module.cpp +0 -0
  353. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  354. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cotmatrix.cpp +0 -0
  355. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cotmatrix_entries.cpp +0 -0
  356. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cotmatrix_intrinsic.cpp +0 -0
  357. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  358. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  359. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cut_mesh.cpp +0 -0
  360. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cut_mesh_from_singularities.cpp +0 -0
  361. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cut_to_disk.cpp +0 -0
  362. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/cylinder.cpp +0 -0
  363. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/decimate.cpp +0 -0
  364. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/dihedral_angles.cpp +0 -0
  365. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/dihedral_angles_intrinsic.cpp +0 -0
  366. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/doublearea.cpp +0 -0
  367. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/dual_contouring.cpp +0 -0
  368. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/ears.cpp +0 -0
  369. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/edge_flaps.cpp +0 -0
  370. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/edge_lengths.cpp +0 -0
  371. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/edges.cpp +0 -0
  372. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/embree/EmbreeIntersector.cpp +0 -0
  373. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/embree/ambient_occlusion.cpp +0 -0
  374. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/embree/module.cpp +0 -0
  375. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/embree/reorient_facets_raycast.cpp +0 -0
  376. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/embree/shape_diameter_function.cpp +0 -0
  377. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/exact_geodesic.cpp +0 -0
  378. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/face_areas.cpp +0 -0
  379. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/facet_adjacency_matrix.cpp +0 -0
  380. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/facet_components.cpp +0 -0
  381. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/false_barycentric_subdivision.cpp +0 -0
  382. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/fast_winding_number.cpp +0 -0
  383. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/gaussian_curvature.cpp +0 -0
  384. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/grad.cpp +0 -0
  385. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/grid.cpp +0 -0
  386. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/heat_geodesics.cpp +0 -0
  387. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/icosahedron.cpp +0 -0
  388. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/in_element.cpp +0 -0
  389. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/inradius.cpp +0 -0
  390. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/internal_angles.cpp +0 -0
  391. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  392. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  393. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/is_border_vertex.cpp +0 -0
  394. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/is_edge_manifold.cpp +0 -0
  395. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/is_vertex_manifold.cpp +0 -0
  396. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/ismember_rows.cpp +0 -0
  397. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/isolines.cpp +0 -0
  398. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/isolines_intrinsic.cpp +0 -0
  399. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/kelvinlets.cpp +0 -0
  400. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/knn.cpp +0 -0
  401. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/lipschitz_octree.cpp +0 -0
  402. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/local_basis.cpp +0 -0
  403. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/loop.cpp +0 -0
  404. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/lscm.cpp +0 -0
  405. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/map_vertices_to_circle.cpp +0 -0
  406. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/marching_cubes.cpp +0 -0
  407. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/massmatrix.cpp +0 -0
  408. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/massmatrix_intrinsic.cpp +0 -0
  409. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/matlab_format.cpp +0 -0
  410. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/min_quad_with_fixed.cpp +0 -0
  411. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/module.cpp +0 -0
  412. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/moments.cpp +0 -0
  413. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/noop.cpp +0 -0
  414. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/octree.cpp +0 -0
  415. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/offset_surface.cpp +0 -0
  416. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/on_boundary.cpp +0 -0
  417. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/orient_halfedges.cpp +0 -0
  418. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/oriented_bounding_box.cpp +0 -0
  419. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/oriented_facets.cpp +0 -0
  420. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/per_face_normals.cpp +0 -0
  421. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/per_vertex_normals.cpp +0 -0
  422. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/point_mesh_squared_distance.cpp +0 -0
  423. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/polar_svd.cpp +0 -0
  424. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/polygon_corners.cpp +0 -0
  425. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/polygons_to_triangles.cpp +0 -0
  426. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/principal_curvature.cpp +0 -0
  427. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/project.cpp +0 -0
  428. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/project_to_line.cpp +0 -0
  429. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/project_to_line_segment.cpp +0 -0
  430. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/qslim.cpp +0 -0
  431. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/quad_grid.cpp +0 -0
  432. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/random_points_on_mesh.cpp +0 -0
  433. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/ray_mesh_intersect.cpp +0 -0
  434. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/readDMAT.cpp +0 -0
  435. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/readMESH.cpp +0 -0
  436. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/readMSH.cpp +0 -0
  437. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/readOBJ.cpp +0 -0
  438. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/readOFF.cpp +0 -0
  439. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/read_triangle_mesh.cpp +0 -0
  440. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/remove_duplicate_vertices.cpp +0 -0
  441. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/remove_unreferenced.cpp +0 -0
  442. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/signed_distance.cpp +0 -0
  443. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/slim.cpp +0 -0
  444. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/sparse_map_noop.cpp +0 -0
  445. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/sparse_map_shape.cpp +0 -0
  446. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/sparse_noop.cpp +0 -0
  447. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/sparse_shape.cpp +0 -0
  448. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/split_nonmanifold.cpp +0 -0
  449. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/squared_edge_lengths.cpp +0 -0
  450. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangle/module.cpp +0 -0
  451. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangle/scaf.cpp +0 -0
  452. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangle/triangulate.cpp +0 -0
  453. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangle_fan.cpp +0 -0
  454. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangle_triangle_adjacency.cpp +0 -0
  455. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/triangulated_grid.cpp +0 -0
  456. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/unique_edge_map.cpp +0 -0
  457. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/unique_simplices.cpp +0 -0
  458. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/unique_sparse_voxel_corners.cpp +0 -0
  459. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/unproject.cpp +0 -0
  460. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/upsample.cpp +0 -0
  461. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/vertex_components.cpp +0 -0
  462. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/vertex_triangle_adjacency.cpp +0 -0
  463. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/volume.cpp +0 -0
  464. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/voxel_grid.cpp +0 -0
  465. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/winding_number.cpp +0 -0
  466. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/writeDMAT.cpp +0 -0
  467. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/writeMESH.cpp +0 -0
  468. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/writeMSH.cpp +0 -0
  469. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/writeOBJ.cpp +0 -0
  470. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/writePLY.cpp +0 -0
  471. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/src/write_triangle_mesh.cpp +0 -0
  472. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/contributing.md +0 -0
  473. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/exporter.py +0 -0
  474. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/igl_docs.md +0 -0
  475. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/102_DrawMesh.png +0 -0
  476. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/104_Colors.png +0 -0
  477. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/105_Overlays.png +0 -0
  478. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/106_ViewerMenu.png +0 -0
  479. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/501_HarmonicParam.png +0 -0
  480. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/502_LSCMParam.png +0 -0
  481. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/503_ARAPParam.png +0 -0
  482. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/504_nrosy_field.png +0 -0
  483. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/504_vector_field.png +0 -0
  484. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_1.png +0 -0
  485. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_2.png +0 -0
  486. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_3.png +0 -0
  487. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_4.png +0 -0
  488. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_5.png +0 -0
  489. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_6.png +0 -0
  490. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_7.png +0 -0
  491. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/505_MIQ_8.png +0 -0
  492. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/506_FrameField_1.png +0 -0
  493. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/506_FrameField_2.png +0 -0
  494. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/506_FrameField_3.png +0 -0
  495. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/506_FrameField_4.png +0 -0
  496. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/507_PolyVectorField.png +0 -0
  497. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/508_ConjugateField.png +0 -0
  498. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/509_Planarization.png +0 -0
  499. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/510_Integrable.png +0 -0
  500. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  501. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/602_Matlab_1.png +0 -0
  502. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/602_Matlab_2.png +0 -0
  503. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/604_Triangle.png +0 -0
  504. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/605_Tetgen.png +0 -0
  505. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/606_AmbientOcclusion.png +0 -0
  506. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/607_Picking.png +0 -0
  507. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/608_LIM.png +0 -0
  508. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/712_beetles.jpg +0 -0
  509. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/713_ShapeUp.png +0 -0
  510. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/VF.pdf +0 -0
  511. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/VF.png +0 -0
  512. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/arm-dqs.jpg +0 -0
  513. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/armadillo-fast.jpg +0 -0
  514. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  515. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/background.gif +0 -0
  516. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  517. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  518. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/bump-k-harmonic.jpg +0 -0
  519. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  520. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/bunny-signed-distance.gif +0 -0
  521. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/bunny-swept-volume.gif +0 -0
  522. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  523. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  524. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cheburashka-gradient.jpg +0 -0
  525. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  526. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  527. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cow-curvature-flow.jpg +0 -0
  528. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  529. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  530. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/decimated-knight-arap.jpg +0 -0
  531. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  532. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  533. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  534. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/edge-collapse.jpg +0 -0
  535. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/edge-collapse.pdf +0 -0
  536. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/fandisk-normals.jpg +0 -0
  537. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/fertility-edge-collapse.gif +0 -0
  538. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  539. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/geodesicdistance.jpg +0 -0
  540. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/hand-bbw.jpg +0 -0
  541. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/hat-function.jpg +0 -0
  542. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  543. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/heat-geodesic-peaks.png +0 -0
  544. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/libigl-logo.jpg +0 -0
  545. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/max-biharmonic.jpg +0 -0
  546. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/multiple-meshes.png +0 -0
  547. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  548. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  549. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/slim.png +0 -0
  550. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/streamlines.jpg +0 -0
  551. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/images/truck-facet-orientation.jpg +0 -0
  552. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/index.md +0 -0
  553. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/marching_cubes.py +0 -0
  554. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/plot_to_md.py +0 -0
  555. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter0.ipynb +0 -0
  556. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter1.ipynb +0 -0
  557. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter2.ipynb +0 -0
  558. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter3.ipynb +0 -0
  559. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter4.ipynb +0 -0
  560. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter5.ipynb +0 -0
  561. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter6.ipynb +0 -0
  562. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tut-chapter7.ipynb +0 -0
  563. {libigl-2.6.2.dev0 → libigl-2.6.3.dev2}/tutorial/tutorials.ipynb +0 -0
@@ -1,6 +1,7 @@
1
1
  name: Wheels
2
2
 
3
3
  on:
4
+ workflow_dispatch:
4
5
  push:
5
6
  branches:
6
7
  - main
@@ -27,19 +28,19 @@ jobs:
27
28
  strategy:
28
29
  fail-fast: false
29
30
  matrix:
30
- os: [ubuntu-24.04, ubuntu-24.04-arm, macos-14, macos-13, windows-latest] # Use specific versions for clarity
31
+ os: [ubuntu-24.04, ubuntu-24.04-arm, macos-latest, macos-15-intel, windows-latest] # Use specific versions for clarity
31
32
  arch: [x86_64, arm64]
32
33
  pybuilds: [cp38, cp39, cp310, cp311, cp312] # Define pybuilds at the top level
33
34
  exclude:
34
35
  - os: ubuntu-24.04-arm # No need to specify arch, it's already implicit
35
36
  arch: x86_64 # Exclude x86_64 on ARM
36
- - os: macos-14 # Exclude macOS 14 (Sonoma)
37
+ - os: macos-latest
37
38
  arch: x86_64 # Exclude x86_64 explicitly
38
- - os: macos-14 # Exclude cp38
39
+ - os: macos-latest # Exclude cp38
39
40
  pybuilds: cp38
40
- - os: macos-13 # Exclude macOS 13 (Ventura) - arm64
41
+ - os: macos-15-intel
41
42
  arch: arm64 # Exclude arm64 on macOS 13
42
- - os: macos-13
43
+ - os: macos-15-intel
43
44
  pybuilds: cp38
44
45
 
45
46
  name: >
@@ -50,9 +51,14 @@ jobs:
50
51
  - uses: actions/setup-python@v5
51
52
  with:
52
53
  python-version: '3.12'
53
- - run: pip install cibuildwheel==2.23.0
54
- - run: python -m cibuildwheel --output-dir wheelhouse
54
+ - run: pip install cibuildwheel==3.1.4
55
+ - name: Build wheels
56
+ run: python -m cibuildwheel --output-dir wheelhouse
55
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"
56
62
  CIBW_BUILD: "${{ matrix.pybuilds }}-*" # Use matrix.pybuilds and matrix.arch
57
63
  CIBW_ARCHS_MACOS: ${{ matrix.arch }}
58
64
  CIBW_SKIP: "cp*-manylinux_i686 cp*-musllinux* cp*-win32"
@@ -86,6 +92,6 @@ jobs:
86
92
  allowUpdates: true
87
93
  artifacts: "./artifacts/**/*"
88
94
  token: ${{ secrets.GITHUB_TOKEN }}
89
- - uses: pypa/gh-action-pypi-publish@v1.12.4
95
+ - uses: pypa/gh-action-pypi-publish@v1.13.0
90
96
  with:
91
97
  packages-dir: ./artifacts
@@ -40,3 +40,4 @@ junit
40
40
  *~
41
41
  dist/
42
42
  igl/*
43
+ CLAUDE.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: libigl
3
- Version: 2.6.2.dev0
3
+ Version: 2.6.3.dev2
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)
@@ -101,7 +101,9 @@ A successful [.github/workflows/wheels.yml](.github/workflows/wheels.yml) run wi
101
101
 
102
102
  Then these can be uploaded to pypi using:
103
103
 
104
- python -m twine upload --repository testpypi wheelhouse/*/*.whl wheelhouse/*/*.tar.gz
104
+ for f in wheelhouse/*/*.whl wheelhouse/*/*.tar.gz; do
105
+ python3 -m twine upload --repository pypi "$f" || echo "Skipping failed upload: $f"
106
+ done
105
107
 
106
108
  ## Acknowledgements
107
109
 
@@ -89,7 +89,9 @@ A successful [.github/workflows/wheels.yml](.github/workflows/wheels.yml) run wi
89
89
 
90
90
  Then these can be uploaded to pypi using:
91
91
 
92
- python -m twine upload --repository testpypi wheelhouse/*/*.whl wheelhouse/*/*.tar.gz
92
+ for f in wheelhouse/*/*.whl wheelhouse/*/*.tar.gz; do
93
+ python3 -m twine upload --repository pypi "$f" || echo "Skipping failed upload: $f"
94
+ done
93
95
 
94
96
  ## Acknowledgements
95
97
 
@@ -0,0 +1,26 @@
1
+ # libigl-python-bindings memory
2
+
3
+ ## Project
4
+ Python bindings for libigl C++ geometry library using nanobind + scikit-build-core.
5
+ C++ libigl source lives at `build/_deps/libigl-src/include/igl/` (fetched by CMake).
6
+
7
+ ## Binding Architecture
8
+ - Each `src/<name>.cpp` → corresponds to `build/_deps/libigl-src/include/igl/<name>.h`
9
+ - CMake globs all `.cpp` files, generates `BINDING_DECLARATIONS.in` / `BINDING_INVOCATIONS.in`, `module.cpp` includes them — adding a `.cpp` auto-registers it
10
+ - Types centralized in `include/default_types.h`: `Numeric=double`, `Integer=int64_t`, `RowMajor`
11
+ - Zero-copy input: `nb::DRef<const Eigen::MatrixXN>` (requires C-contiguous float64)
12
+ - Multiple C++ output params → `std::make_tuple(...)` → Python tuple unpacking
13
+ - Sparse output: `Eigen::SparseMatrixN` + `<nanobind/eigen/sparse.h>` → scipy CSR automatically
14
+
15
+ ## Submodules
16
+ - `src/` → `igl` (core, MPL2)
17
+ - `src/copyleft/` → `igl.copyleft` (GPL)
18
+ - `src/copyleft/cgal/` → `igl.copyleft.cgal`
19
+ - `src/embree/` → `igl.embree`
20
+ - `src/triangle/` → `igl.triangle`
21
+
22
+ ## Key Gotchas
23
+ - numpy `int32`/`float32` silently copies; always use `int64`/`float64` in tests
24
+ - In-place mutation: use `Eigen::Ref<>` + `.noconvert()` on the arg
25
+ - Class templates must be typedef'd to concrete type before `nb::class_<>`
26
+ - Sparse inputs must be `scipy.sparse.csr_matrix`
@@ -1,9 +1,8 @@
1
1
  [build-system]
2
2
  requires = [
3
- "cmake>=3.16",
4
3
  "nanobind >=1.3.2",
5
4
  "numpy>=2.0.0; python_version >= '3.9'",
6
- "numpy; python_version < '3.9'",
5
+ "numpy<2.0.0; python_version < '3.9'",
7
6
  "packaging",
8
7
  "scikit-build-core >=0.10",
9
8
  "scipy",
@@ -14,7 +13,7 @@ build-backend = "scikit_build_core.build"
14
13
 
15
14
  [project]
16
15
  name = "libigl"
17
- version = "2.6.2.dev0"
16
+ version = "2.6.3.dev2"
18
17
  description = "libigl: A simple C++ geometry processing library"
19
18
  readme = "README.md"
20
19
  requires-python = ">=3.8"
@@ -0,0 +1,48 @@
1
+ #include "default_types.h"
2
+ #include <igl/accumarray.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
+ auto accumarray_V(
12
+ const nb::DRef<const Eigen::MatrixXI> &S,
13
+ const nb::DRef<const Eigen::MatrixXN> &V)
14
+ {
15
+ // Copy to compact column vectors so single-index (i) access works
16
+ const Eigen::VectorXI s = S.reshaped();
17
+ const Eigen::VectorXN v = V.reshaped();
18
+ Eigen::VectorXN A;
19
+ igl::accumarray(s, v, A);
20
+ return A;
21
+ }
22
+ auto accumarray_val(
23
+ const nb::DRef<const Eigen::MatrixXI> &S,
24
+ const Numeric val)
25
+ {
26
+ const Eigen::VectorXI s = S.reshaped();
27
+ Eigen::VectorXN A;
28
+ igl::accumarray(s, val, A);
29
+ return A;
30
+ }
31
+ }
32
+
33
+ void bind_accumarray(nb::module_ &m)
34
+ {
35
+ m.def("accumarray", &pyigl::accumarray_V, "S"_a, "V"_a,
36
+ R"(Accumulate values V at subscripts S. Like MATLAB's accumarray.
37
+
38
+ @param[in] S #S list of subscripts (integer indices)
39
+ @param[in] V #S list of values
40
+ @return A max(S)+1 list of accumulated (summed) values)");
41
+
42
+ m.def("accumarray", &pyigl::accumarray_val, "S"_a, "val"_a,
43
+ R"(Accumulate a constant value at subscripts S. Like MATLAB's accumarray.
44
+
45
+ @param[in] S #S list of subscripts (integer indices)
46
+ @param[in] val scalar value to accumulate at each subscript
47
+ @return A max(S)+1 list of accumulated (summed) values)");
48
+ }
@@ -0,0 +1,36 @@
1
+ #include "default_types.h"
2
+ #include <igl/barycentric_interpolation.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
+ auto barycentric_interpolation(
12
+ const nb::DRef<const Eigen::MatrixXN> &D,
13
+ const nb::DRef<const Eigen::MatrixXI> &F,
14
+ const nb::DRef<const Eigen::MatrixXN> &B,
15
+ const nb::DRef<const Eigen::MatrixXI> &I)
16
+ {
17
+ // I is indexed as a vector internally
18
+ const Eigen::VectorXI idx = I.reshaped();
19
+ Eigen::MatrixXN X;
20
+ igl::barycentric_interpolation(D, F, B, idx, X);
21
+ return X;
22
+ }
23
+ }
24
+
25
+ void bind_barycentric_interpolation(nb::module_ &m)
26
+ {
27
+ m.def("barycentric_interpolation", &pyigl::barycentric_interpolation,
28
+ "D"_a, "F"_a, "B"_a, "I"_a,
29
+ R"(Interpolate per-vertex data on a triangle mesh using barycentric coordinates.
30
+
31
+ @param[in] D #V by dim list of per-vertex data
32
+ @param[in] F #F by 3 list of triangle indices
33
+ @param[in] B #X by 3 list of barycentric coordinates
34
+ @param[in] I #X list of triangle indices into F
35
+ @return X #X by dim list of interpolated data)");
36
+ }
@@ -0,0 +1,48 @@
1
+ #include "default_types.h"
2
+ #include <igl/bezier.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
+ // Single parameter t
12
+ auto bezier_t(
13
+ const nb::DRef<const Eigen::MatrixXN> &V,
14
+ const Numeric t)
15
+ {
16
+ Eigen::MatrixXN P;
17
+ igl::bezier(V, t, P);
18
+ return P;
19
+ }
20
+ // Array of parameters T
21
+ auto bezier_T(
22
+ const nb::DRef<const Eigen::MatrixXN> &V,
23
+ const nb::DRef<const Eigen::MatrixXN> &T)
24
+ {
25
+ // Copy T to compact vector for single-index access
26
+ const Eigen::VectorXN t = T.reshaped();
27
+ Eigen::MatrixXN P;
28
+ igl::bezier(V, t, P);
29
+ return P;
30
+ }
31
+ }
32
+
33
+ void bind_bezier(nb::module_ &m)
34
+ {
35
+ m.def("bezier", &pyigl::bezier_t, "V"_a, "t"_a,
36
+ R"(Evaluate a polynomial Bezier curve at a single parameter value.
37
+
38
+ @param[in] V #V by dim list of Bezier control points
39
+ @param[in] t evaluation parameter in [0,1]
40
+ @return P 1 by dim output point)");
41
+
42
+ m.def("bezier", &pyigl::bezier_T, "V"_a, "T"_a,
43
+ R"(Evaluate a polynomial Bezier curve at many parameter values.
44
+
45
+ @param[in] V #V by dim list of Bezier control points
46
+ @param[in] T #T list of evaluation parameters in [0,1]
47
+ @return P #T by dim output points)");
48
+ }
@@ -0,0 +1,25 @@
1
+ #include "default_types.h"
2
+ #include <igl/bounding_box_diagonal.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
+ auto bounding_box_diagonal(
11
+ const nb::DRef<const Eigen::MatrixXd>& V
12
+ ) {
13
+ return igl::bounding_box_diagonal(V);
14
+ }
15
+ }
16
+
17
+ void bind_bounding_box_diagonal(nb::module_ &m) {
18
+ m.def("bounding_box_diagonal", &pyigl::bounding_box_diagonal,
19
+ "V"_a,
20
+ R"(Compute the length of the diagonal of a given meshes axis-aligned bounding
21
+
22
+ @param[in] V #V by 3 list of vertex/point positions
23
+ @return length of bounding box diagonal)"
24
+ );
25
+ }
@@ -0,0 +1,40 @@
1
+ #include "default_types.h"
2
+ #include <igl/centroid.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+
7
+ namespace nb = nanobind;
8
+ using namespace nb::literals;
9
+
10
+ namespace pyigl
11
+ {
12
+ auto centroid(
13
+ const nb::DRef<const Eigen::MatrixXN> &V,
14
+ const nb::DRef<const Eigen::MatrixXI> &F)
15
+ {
16
+ Eigen::VectorXN c;
17
+ Numeric vol;
18
+ igl::centroid(V,F,c,vol);
19
+ return std::make_tuple(c,vol);
20
+ }
21
+ }
22
+
23
+ void bind_centroid(nb::module_ &m)
24
+ {
25
+ m.def(
26
+ "centroid",
27
+ &pyigl::centroid,
28
+ "V"_a,
29
+ "F"_a,
30
+ R"(Computes the centroid and enclosed volume of a closed mesh using a surface
31
+ integral.
32
+
33
+ @param[in] V #V by dim list of rest domain positions
34
+ @param[in] F #F by 3 list of triangle indices into V
35
+ @return c dim vector of centroid coordinates
36
+ @return vol total volume of solid
37
+
38
+ \see moments
39
+ )");
40
+ }
@@ -0,0 +1,62 @@
1
+ #include "default_types.h"
2
+ #include <igl/colormap.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
+ // Map scalar array to RGB colors using a colormap
12
+ auto colormap(
13
+ const igl::ColorMapType cm,
14
+ const nb::DRef<const Eigen::VectorXN> &Z,
15
+ const bool normalize)
16
+ {
17
+ Eigen::MatrixXN C;
18
+ igl::colormap(cm, Z, normalize, C);
19
+ return C;
20
+ }
21
+ // Map scalar to single RGB triple
22
+ auto colormap_scalar(
23
+ const igl::ColorMapType cm,
24
+ const Numeric f)
25
+ {
26
+ Numeric r, g, b;
27
+ igl::colormap(cm, f, r, g, b);
28
+ Eigen::Vector3d rgb;
29
+ rgb << r, g, b;
30
+ return rgb;
31
+ }
32
+ }
33
+
34
+ void bind_colormap(nb::module_ &m)
35
+ {
36
+ nb::enum_<igl::ColorMapType>(m, "ColorMapType")
37
+ .value("INFERNO", igl::COLOR_MAP_TYPE_INFERNO)
38
+ .value("JET", igl::COLOR_MAP_TYPE_JET)
39
+ .value("MAGMA", igl::COLOR_MAP_TYPE_MAGMA)
40
+ .value("PARULA", igl::COLOR_MAP_TYPE_PARULA)
41
+ .value("PLASMA", igl::COLOR_MAP_TYPE_PLASMA)
42
+ .value("VIRIDIS", igl::COLOR_MAP_TYPE_VIRIDIS)
43
+ .value("TURBO", igl::COLOR_MAP_TYPE_TURBO)
44
+ .export_values();
45
+
46
+ m.def("colormap", &pyigl::colormap,
47
+ "cm"_a, "Z"_a, "normalize"_a = true,
48
+ R"(Map scalar values to RGB colors using a colormap.
49
+
50
+ @param[in] cm colormap type (igl.ColorMapType.VIRIDIS, .JET, etc.)
51
+ @param[in] Z #Z list of scalar values
52
+ @param[in] normalize if true, normalize Z to [0,1] range before mapping
53
+ @return C #Z by 3 list of RGB colors in [0,1])");
54
+
55
+ m.def("colormap", &pyigl::colormap_scalar,
56
+ "cm"_a, "f"_a,
57
+ R"(Map a single scalar in [0,1] to an RGB color.
58
+
59
+ @param[in] cm colormap type
60
+ @param[in] f scalar in [0,1]
61
+ @return 3-vector of RGB values in [0,1])");
62
+ }
@@ -0,0 +1,39 @@
1
+ #include "default_types.h"
2
+ #include <igl/comb_cross_field.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
+ void bind_comb_cross_field(nb::module_ &m)
12
+ {
13
+ m.def("comb_cross_field",
14
+ [](
15
+ const Eigen::MatrixXN& V,
16
+ const Eigen::MatrixXI& F,
17
+ const Eigen::MatrixXN& PD1,
18
+ const Eigen::MatrixXN& PD2
19
+ ) {
20
+ Eigen::MatrixXN PD1_out, PD2_out;
21
+ igl::comb_cross_field(V, F, PD1, PD2, PD1_out, PD2_out);
22
+ return std::make_tuple(PD1_out, PD2_out);
23
+ },
24
+ "V"_a,
25
+ "F"_a,
26
+ "PD1"_a,
27
+ "PD2"_a,
28
+ R"(Computes principal matchings of the vectors of a cross field across face edges,
29
+ and generates a combed cross field defined on the mesh faces
30
+
31
+ @param[in] V #V by 3 eigen Matrix of mesh vertex 3D positions
32
+ @param[in] F #F by 4 eigen Matrix of face (quad) indices
33
+ @param[in] PD1in #F by 3 eigen Matrix of the first per face cross field vector
34
+ @param[in] PD2in #F by 3 eigen Matrix of the second per face cross field vector
35
+ @param[out] PD1out #F by 3 eigen Matrix of the first combed cross field vector
36
+ @param[out] PD2out #F by 3 eigen Matrix of the second combed cross field vector
37
+ )"
38
+ );
39
+ }
@@ -0,0 +1,47 @@
1
+ #include "default_types.h"
2
+ #include <igl/comb_frame_field.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
+ void bind_comb_frame_field(nb::module_ &m)
12
+ {
13
+ m.def("comb_frame_field",
14
+ [](
15
+ const Eigen::MatrixXN& V,
16
+ const Eigen::MatrixXI& F,
17
+ const Eigen::MatrixXN& PD1,
18
+ const Eigen::MatrixXN& PD2,
19
+ const Eigen::MatrixXN& BIS1_combed,
20
+ const Eigen::MatrixXN& BIS2_combed
21
+ ) {
22
+ Eigen::MatrixXN PD1_combed, PD2_combed;
23
+ igl::comb_frame_field(V, F, PD1, PD2, BIS1_combed, BIS2_combed, PD1_combed, PD2_combed);
24
+ return std::make_tuple(PD1_combed, PD2_combed);
25
+ },
26
+ "V"_a,
27
+ "F"_a,
28
+ "PD1"_a,
29
+ "PD2"_a,
30
+ "BIS1_combed"_a,
31
+ "BIS2_combed"_a,
32
+ R"(Computes principal matchings of the vectors of a frame field across face edges,
33
+ and generates a combed frame field defined on the mesh faces. This makes use of a
34
+ combed cross field generated by combing the field created by the bisectors of the
35
+ frame field.
36
+
37
+ @param[in] V #V by 3 eigen Matrix of mesh vertex 3D positions
38
+ @param[in] F #F by 4 eigen Matrix of face (quad) indices
39
+ @param[in] PD1 #F by 3 eigen Matrix of the first per face cross field vector
40
+ @param[in] PD2 #F by 3 eigen Matrix of the second per face cross field vector
41
+ @param[in] BIS1_combed #F by 3 eigen Matrix of the first combed bisector field vector
42
+ @param[in] BIS2_combed #F by 3 eigen Matrix of the second combed bisector field vector
43
+ @param[out] PD1_combed #F by 3 eigen Matrix of the first combed cross field vector
44
+ @param[out] PD2_combed #F by 3 eigen Matrix of the second combed cross field vector
45
+ )"
46
+ );
47
+ }
@@ -0,0 +1,33 @@
1
+ #include "default_types.h"
2
+ #include <igl/combine.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <nanobind/stl/vector.h>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto combine(
14
+ const std::vector<Eigen::MatrixXN> &VV,
15
+ const std::vector<Eigen::MatrixXI> &FF)
16
+ {
17
+ Eigen::MatrixXN V;
18
+ Eigen::MatrixXI F;
19
+ igl::combine(VV, FF, V, F);
20
+ return std::make_tuple(V, F);
21
+ }
22
+ }
23
+
24
+ void bind_combine(nb::module_ &m)
25
+ {
26
+ m.def("combine", &pyigl::combine, "VV"_a, "FF"_a,
27
+ R"(Concatenate multiple meshes into a single mesh.
28
+
29
+ @param[in] VV list of vertex position matrices, each #Vi by dim
30
+ @param[in] FF list of face index matrices, each #Fi by simplex_size
31
+ @return V concatenated vertex positions
32
+ @return F concatenated face indices (reindexed into V))");
33
+ }
@@ -0,0 +1,71 @@
1
+ #include "default_types.h"
2
+ #include <igl/compute_frame_field_bisectors.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
+ void bind_compute_frame_field_bisectors(nb::module_ &m)
12
+ {
13
+ m.def("compute_frame_field_bisectors",
14
+ [](
15
+ const Eigen::MatrixXN& V,
16
+ const Eigen::MatrixXI& F,
17
+ const Eigen::MatrixXN& B1,
18
+ const Eigen::MatrixXN& B2,
19
+ const Eigen::MatrixXN& PD1,
20
+ const Eigen::MatrixXN& PD2
21
+ ) {
22
+ Eigen::MatrixXN BIS1, BIS2;
23
+ igl::compute_frame_field_bisectors(V, F, B1, B2, PD1, PD2, BIS1, BIS2);
24
+ return std::make_tuple(BIS1, BIS2);
25
+ },
26
+ "V"_a,
27
+ "F"_a,
28
+ "B1"_a,
29
+ "B2"_a,
30
+ "PD1"_a,
31
+ "PD2"_a,
32
+ R"(Compute bisectors of a frame field defined on mesh faces.
33
+
34
+ @param[in] V #V by 3 eigen Matrix of mesh vertex 3D positions
35
+ @param[in] F #F by 3 eigen Matrix of face (triangle) indices
36
+ @param[in] B1 #F by 3 eigen Matrix of face (triangle) base vector 1
37
+ @param[in] B2 #F by 3 eigen Matrix of face (triangle) base vector 2
38
+ @param[in] PD1 #F by 3 eigen Matrix of the first per face frame field vector
39
+ @param[in] PD2 #F by 3 eigen Matrix of the second per face frame field vector
40
+ @param[out] BIS1 #F by 3 eigen Matrix of the first per face frame field bisector
41
+ @param[out] BIS2 #F by 3 eigen Matrix of the second per face frame field bisector
42
+ )"
43
+ );
44
+
45
+ // Overload
46
+ m.def("compute_frame_field_bisectors",
47
+ [](
48
+ const Eigen::MatrixXN& V,
49
+ const Eigen::MatrixXI& F,
50
+ const Eigen::MatrixXN& PD1,
51
+ const Eigen::MatrixXN& PD2
52
+ ) {
53
+ Eigen::MatrixXN BIS1, BIS2;
54
+ igl::compute_frame_field_bisectors(V, F, PD1, PD2, BIS1, BIS2);
55
+ return std::make_tuple(BIS1, BIS2);
56
+ },
57
+ "V"_a,
58
+ "F"_a,
59
+ "PD1"_a,
60
+ "PD2"_a,
61
+ R"(Compute bisectors of a frame field defined on mesh faces.
62
+
63
+ @param[in] V #V by 3 eigen Matrix of mesh vertex 3D positions
64
+ @param[in] F #F by 3 eigen Matrix of face (triangle) indices
65
+ @param[in] PD1 #F by 3 eigen Matrix of the first per face frame field vector
66
+ @param[in] PD2 #F by 3 eigen Matrix of the second per face frame field vector
67
+ @param[out] BIS1 #F by 3 eigen Matrix of the first per face frame field bisector
68
+ @param[out] BIS2 #F by 3 eigen Matrix of the second per face frame field bisector
69
+ )"
70
+ );
71
+ }
@@ -0,0 +1,24 @@
1
+ #include "default_types.h"
2
+ #include <igl/copyleft/cgal/coplanar.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
+ bool coplanar(const nb::DRef<const Eigen::MatrixXN> &V)
12
+ {
13
+ return igl::copyleft::cgal::coplanar(V);
14
+ }
15
+ }
16
+
17
+ void bind_coplanar(nb::module_ &m)
18
+ {
19
+ m.def("coplanar", &pyigl::coplanar, "V"_a,
20
+ R"(Test whether all points lie on the same plane.
21
+
22
+ @param[in] V #V by 3 list of 3D vertex positions
23
+ @return true if all points are coplanar)");
24
+ }
@@ -0,0 +1,26 @@
1
+ #include "default_types.h"
2
+ #include <igl/copyleft/cgal/delaunay_triangulation.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
+ auto delaunay_triangulation(const nb::DRef<const Eigen::MatrixXN> &V)
12
+ {
13
+ Eigen::MatrixXi F; // int32 required by libigl internals
14
+ igl::copyleft::cgal::delaunay_triangulation(V, F);
15
+ return Eigen::MatrixXI(F.cast<Integer>());
16
+ }
17
+ }
18
+
19
+ void bind_delaunay_triangulation(nb::module_ &m)
20
+ {
21
+ m.def("delaunay_triangulation", &pyigl::delaunay_triangulation, "V"_a,
22
+ R"(Compute the Delaunay triangulation of a 2D point set using CGAL.
23
+
24
+ @param[in] V #V by 2 list of 2D vertex positions
25
+ @return F #F by 3 triangle indices into V)");
26
+ }