libigl 2.6.3.dev3__tar.gz → 2.6.3.dev4__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 (597) hide show
  1. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.gitignore +1 -0
  2. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/CMakeLists.txt +17 -1
  3. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/PKG-INFO +1 -1
  4. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/pyproject.toml +1 -1
  5. libigl-2.6.3.dev4/src/cubic.cpp +29 -0
  6. libigl-2.6.3.dev4/src/cubic_is_flat.cpp +31 -0
  7. libigl-2.6.3.dev4/src/cubic_monomial_bases.cpp +35 -0
  8. libigl-2.6.3.dev4/src/cubic_split.cpp +33 -0
  9. libigl-2.6.3.dev4/src/cycodebase/box_cubic.cpp +50 -0
  10. libigl-2.6.3.dev4/src/cycodebase/module.cpp +11 -0
  11. libigl-2.6.3.dev4/src/cycodebase/point_cubic_squared_distance.cpp +36 -0
  12. libigl-2.6.3.dev4/src/cycodebase/point_spline_squared_distance.cpp +40 -0
  13. libigl-2.6.3.dev4/src/cycodebase/roots.cpp +39 -0
  14. libigl-2.6.3.dev4/src/cycodebase/spline_eytzinger_aabb.cpp +35 -0
  15. libigl-2.6.3.dev4/src/fit_cubic_bezier.cpp +37 -0
  16. libigl-2.6.3.dev4/src/predicates/Orientation.cpp +21 -0
  17. libigl-2.6.3.dev4/src/predicates/cubic_winding_number.cpp +27 -0
  18. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/incircle.cpp +1 -1
  19. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/insphere.cpp +1 -1
  20. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/orient2d.cpp +1 -1
  21. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/orient3d.cpp +1 -1
  22. libigl-2.6.3.dev4/src/predicates/point_in_convex_hull.cpp +35 -0
  23. libigl-2.6.3.dev4/src/predicates/spline_winding_number.cpp +41 -0
  24. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tests/test_all.py +209 -0
  25. libigl-2.6.3.dev3/src/predicates/Orientation.cpp +0 -21
  26. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.github/workflows/pip.yml +0 -0
  27. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.github/workflows/wheels.yml +0 -0
  28. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/LICENSE.GPL +0 -0
  29. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/LICENSE.MPL2 +0 -0
  30. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/README.md +0 -0
  31. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
  32. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/copyleft/triangle_triangulate.cpp +0 -0
  33. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/SolverStatus.cpp +0 -0
  34. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/WindingNumberMethod.cpp +0 -0
  35. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/angular_distance.cpp +0 -0
  36. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/canonical_quaternions.cpp +0 -0
  37. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/column_to_quats.cpp +0 -0
  38. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/comiso_nrosy.cpp +0 -0
  39. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/covariance_scatter_matrix.cpp +0 -0
  40. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/file_contents_as_string.cpp +0 -0
  41. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/fit_rotations.cpp +0 -0
  42. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frame_field_deformer.cpp +0 -0
  43. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frame_to_cross_field.cpp +0 -0
  44. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frustum.cpp +0 -0
  45. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/group_sum_matrix.cpp +0 -0
  46. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/harwell_boeing.cpp +0 -0
  47. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/histc.cpp +0 -0
  48. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/hsv_to_rgb.cpp +0 -0
  49. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
  50. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/intersect.cpp +0 -0
  51. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/invert_diag.cpp +0 -0
  52. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/is_planar.cpp +0 -0
  53. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/limit_faces.cpp +0 -0
  54. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/line_field_missmatch.cpp +0 -0
  55. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/line_search.cpp +0 -0
  56. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/mat_to_quat.cpp +0 -0
  57. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/material_colors.cpp +0 -0
  58. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/max_faces_stopping_condition.cpp +0 -0
  59. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/min_quad_dense.cpp +0 -0
  60. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/normalize_quat.cpp +0 -0
  61. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/on_boundary.cpp +0 -0
  62. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
  63. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_floor.cpp +0 -0
  64. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_mesh.cpp +0 -0
  65. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_point.cpp +0 -0
  66. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
  67. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
  68. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
  69. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_flare_textures.cpp +0 -0
  70. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
  71. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_print_gl_get.cpp +0 -0
  72. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_project.cpp +0 -0
  73. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_right_axis.cpp +0 -0
  74. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_shine_textures.cpp +0 -0
  75. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_sort_triangles.cpp +0 -0
  76. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_unproject.cpp +0 -0
  77. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
  78. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_up_axis.cpp +0 -0
  79. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_view_axis.cpp +0 -0
  80. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_create_shader_program.cpp +0 -0
  81. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
  82. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_gl_type_size.cpp +0 -0
  83. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_glfw_background_window.cpp +0 -0
  84. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
  85. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
  86. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_load_shader.cpp +0 -0
  87. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_print_program_info_log.cpp +0 -0
  88. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
  89. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_report_gl_error.cpp +0 -0
  90. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
  91. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/ortho.cpp +0 -0
  92. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/parallel_transport_angles.cpp +0 -0
  93. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/polar_svd.cpp +0 -0
  94. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/polar_svd3x3.cpp +0 -0
  95. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
  96. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
  97. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_conjugate.cpp +0 -0
  98. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_mult.cpp +0 -0
  99. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_to_axis_angle.cpp +0 -0
  100. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_to_mat.cpp +0 -0
  101. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quats_to_column.cpp +0 -0
  102. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/random_quaternion.cpp +0 -0
  103. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readBF.cpp +0 -0
  104. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readNODE.cpp +0 -0
  105. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readPLY.cpp +0 -0
  106. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readSTL.cpp +0 -0
  107. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rgb_to_hsv.cpp +0 -0
  108. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rotate_by_quat.cpp +0 -0
  109. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
  110. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
  111. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/snap_to_fixed_up.cpp +0 -0
  112. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_angles.cpp +0 -0
  113. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_triangles.cpp +0 -0
  114. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_vectors_ccw.cpp +0 -0
  115. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3.cpp +0 -0
  116. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3_avx.cpp +0 -0
  117. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3_sse.cpp +0 -0
  118. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/trackball.cpp +0 -0
  119. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/transpose_blocks.cpp +0 -0
  120. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/unique_rows.cpp +0 -0
  121. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/voxel_grid.cpp +0 -0
  122. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writePLY.cpp +0 -0
  123. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writeSTL.cpp +0 -0
  124. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writeWRL.cpp +0 -0
  125. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/MeshBooleanType.cpp +0 -0
  126. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/NormalType.cpp +0 -0
  127. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/collapse_edge.cpp +0 -0
  128. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
  129. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
  130. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
  131. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
  132. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
  133. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
  134. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
  135. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
  136. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
  137. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
  138. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
  139. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
  140. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
  141. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
  142. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
  143. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
  144. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
  145. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
  146. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
  147. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
  148. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
  149. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
  150. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
  151. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
  152. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
  153. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
  154. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
  155. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
  156. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
  157. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
  158. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
  159. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
  160. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
  161. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
  162. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
  163. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
  164. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
  165. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
  166. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
  167. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
  168. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
  169. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
  170. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
  171. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
  172. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
  173. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
  174. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
  175. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
  176. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
  177. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
  178. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
  179. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
  180. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
  181. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
  182. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
  183. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
  184. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
  185. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
  186. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
  187. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
  188. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
  189. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
  190. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
  191. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
  192. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
  193. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
  194. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
  195. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
  196. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
  197. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
  198. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
  199. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
  200. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/dijkstra.cpp +0 -0
  201. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/embree_bone_heat.cpp +0 -0
  202. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
  203. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/fast_winding_number.cpp +0 -0
  204. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/flip_edge.cpp +0 -0
  205. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/knn.cpp +0 -0
  206. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
  207. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
  208. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/octree.cpp +0 -0
  209. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
  210. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_readPNG.cpp +0 -0
  211. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_render_to_png.cpp +0 -0
  212. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_render_to_png_async.cpp +0 -0
  213. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_texture_from_file.cpp +0 -0
  214. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_texture_from_png.cpp +0 -0
  215. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_writePNG.cpp +0 -0
  216. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/pseudonormal_test.cpp +0 -0
  217. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/readWRL.cpp +0 -0
  218. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/remesh_along_isoline.cpp +0 -0
  219. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/seam_edges.cpp +0 -0
  220. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
  221. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/squared_edge_lengths.cpp +0 -0
  222. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/straighten_seams.cpp +0 -0
  223. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
  224. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/triangle_cdt.cpp +0 -0
  225. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/unzip_corners.cpp +0 -0
  226. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeBF.cpp +0 -0
  227. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeDMAT.cpp +0 -0
  228. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeMESH.cpp +0 -0
  229. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeTGF.cpp +0 -0
  230. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/xml_writeDAE.cpp +0 -0
  231. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
  232. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/classes/AABB.cpp +0 -0
  233. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/classes/classes.cpp +0 -0
  234. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/CXXFeatures.cmake +0 -0
  235. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/FindLIBIGL.cmake +0 -0
  236. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/UseColors.cmake +0 -0
  237. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/Warnings.cmake +0 -0
  238. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/include/default_types.h +0 -0
  239. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/memory/MEMORY.md +0 -0
  240. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/missing.sh +0 -0
  241. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/mkdocs.yml +0 -0
  242. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/postBuild +0 -0
  243. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/priority.txt +0 -0
  244. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/basic_function.mako +0 -0
  245. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/blender_igl_export.py +0 -0
  246. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/generate_bindings.py +0 -0
  247. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/make_lean.py +0 -0
  248. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/parser.py +0 -0
  249. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/AABB.cpp +0 -0
  250. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/FileEncoding.cpp +0 -0
  251. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/MappingEnergyType.cpp +0 -0
  252. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/MassMatrixType.cpp +0 -0
  253. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
  254. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/accumarray.cpp +0 -0
  255. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/adjacency_list.cpp +0 -0
  256. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/adjacency_matrix.cpp +0 -0
  257. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/all_pairs_distances.cpp +0 -0
  258. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/arap.cpp +0 -0
  259. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_from_edges_onto_vertices.cpp +0 -0
  260. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_onto_faces.cpp +0 -0
  261. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_onto_vertices.cpp +0 -0
  262. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/avg_edge_length.cpp +0 -0
  263. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycenter.cpp +0 -0
  264. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycentric_coordinates.cpp +0 -0
  265. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycentric_interpolation.cpp +0 -0
  266. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bbw.cpp +0 -0
  267. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bezier.cpp +0 -0
  268. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bfs_orient.cpp +0 -0
  269. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/biharmonic_coordinates.cpp +0 -0
  270. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bijective_composite_harmonic_mapping.cpp +0 -0
  271. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/blue_noise.cpp +0 -0
  272. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/boundary_facets.cpp +0 -0
  273. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/boundary_loop.cpp +0 -0
  274. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bounding_box.cpp +0 -0
  275. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bounding_box_diagonal.cpp +0 -0
  276. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/centroid.cpp +0 -0
  277. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/circulation.cpp +0 -0
  278. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/circumradius.cpp +0 -0
  279. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/collapse_edge.cpp +0 -0
  280. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/colormap.cpp +0 -0
  281. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/comb_cross_field.cpp +0 -0
  282. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/comb_frame_field.cpp +0 -0
  283. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/combine.cpp +0 -0
  284. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/compute_frame_field_bisectors.cpp +0 -0
  285. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/connected_components.cpp +0 -0
  286. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/convex_hull.cpp +0 -0
  287. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/coplanar.cpp +0 -0
  288. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/delaunay_triangulation.cpp +0 -0
  289. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/extract_cells.cpp +0 -0
  290. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
  291. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/intersect_other.cpp +0 -0
  292. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
  293. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
  294. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/module.cpp +0 -0
  295. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
  296. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/outer_hull.cpp +0 -0
  297. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/peel_outer_hull_layers.cpp +0 -0
  298. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/peel_winding_number_layers.cpp +0 -0
  299. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/point_areas.cpp +0 -0
  300. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
  301. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
  302. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/marching_cubes.cpp +0 -0
  303. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/module.cpp +0 -0
  304. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/progressive_hulls.cpp +0 -0
  305. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/quadprog.cpp +0 -0
  306. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/cdt.cpp +0 -0
  307. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/mesh_with_skeleton.cpp +0 -0
  308. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/module.cpp +0 -0
  309. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
  310. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix.cpp +0 -0
  311. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix_entries.cpp +0 -0
  312. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix_intrinsic.cpp +0 -0
  313. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cross_field_mismatch.cpp +0 -0
  314. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
  315. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/crouzeix_raviart_massmatrix.cpp +0 -0
  316. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/curved_hessian_energy.cpp +0 -0
  317. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_mesh.cpp +0 -0
  318. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_mesh_from_singularities.cpp +0 -0
  319. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_to_disk.cpp +0 -0
  320. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cylinder.cpp +0 -0
  321. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/decimate.cpp +0 -0
  322. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dihedral_angles.cpp +0 -0
  323. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dihedral_angles_intrinsic.cpp +0 -0
  324. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dijkstra.cpp +0 -0
  325. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/directed_edge_parents.cpp +0 -0
  326. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/doublearea.cpp +0 -0
  327. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dual_contouring.cpp +0 -0
  328. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ears.cpp +0 -0
  329. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_flaps.cpp +0 -0
  330. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_lengths.cpp +0 -0
  331. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_topology.cpp +0 -0
  332. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edges.cpp +0 -0
  333. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edges_to_path.cpp +0 -0
  334. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/EmbreeIntersector.cpp +0 -0
  335. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/ambient_occlusion.cpp +0 -0
  336. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/bone_visible.cpp +0 -0
  337. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/line_mesh_intersection.cpp +0 -0
  338. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/module.cpp +0 -0
  339. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/reorient_facets_raycast.cpp +0 -0
  340. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/shape_diameter_function.cpp +0 -0
  341. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/euler_characteristic.cpp +0 -0
  342. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/exact_geodesic.cpp +0 -0
  343. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/exterior_edges.cpp +0 -0
  344. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/extract_manifold_patches.cpp +0 -0
  345. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/face_areas.cpp +0 -0
  346. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/face_occurrences.cpp +0 -0
  347. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/facet_adjacency_matrix.cpp +0 -0
  348. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/facet_components.cpp +0 -0
  349. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/false_barycentric_subdivision.cpp +0 -0
  350. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/fast_winding_number.cpp +0 -0
  351. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/find_cross_field_singularities.cpp +0 -0
  352. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/fit_plane.cpp +0 -0
  353. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/flipped_triangles.cpp +0 -0
  354. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/flood_fill.cpp +0 -0
  355. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/gaussian_curvature.cpp +0 -0
  356. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/grad.cpp +0 -0
  357. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/grid.cpp +0 -0
  358. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/harmonic.cpp +0 -0
  359. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hausdorff.cpp +0 -0
  360. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/heat_geodesics.cpp +0 -0
  361. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hessian.cpp +0 -0
  362. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hessian_energy.cpp +0 -0
  363. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hsv_to_rgb.cpp +0 -0
  364. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/icosahedron.cpp +0 -0
  365. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/in_element.cpp +0 -0
  366. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/inradius.cpp +0 -0
  367. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/internal_angles.cpp +0 -0
  368. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
  369. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/intrinsic_delaunay_triangulation.cpp +0 -0
  370. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_border_vertex.cpp +0 -0
  371. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_boundary_edge.cpp +0 -0
  372. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_delaunay.cpp +0 -0
  373. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_edge_manifold.cpp +0 -0
  374. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_intrinsic_delaunay.cpp +0 -0
  375. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_irregular_vertex.cpp +0 -0
  376. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_vertex_manifold.cpp +0 -0
  377. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ismember_rows.cpp +0 -0
  378. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/isolines.cpp +0 -0
  379. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/isolines_intrinsic.cpp +0 -0
  380. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/iterative_closest_point.cpp +0 -0
  381. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/kelvinlets.cpp +0 -0
  382. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/knn.cpp +0 -0
  383. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lbs_matrix.cpp +0 -0
  384. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lexicographic_triangulation.cpp +0 -0
  385. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lipschitz_octree.cpp +0 -0
  386. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/local_basis.cpp +0 -0
  387. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/look_at.cpp +0 -0
  388. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/loop.cpp +0 -0
  389. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lscm.cpp +0 -0
  390. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/map_vertices_to_circle.cpp +0 -0
  391. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/marching_cubes.cpp +0 -0
  392. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/massmatrix.cpp +0 -0
  393. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/massmatrix_intrinsic.cpp +0 -0
  394. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/matlab_format.cpp +0 -0
  395. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/min_quad_with_fixed.cpp +0 -0
  396. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/module.cpp +0 -0
  397. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/moments.cpp +0 -0
  398. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/mvc.cpp +0 -0
  399. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/noop.cpp +0 -0
  400. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/octree.cpp +0 -0
  401. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/offset_surface.cpp +0 -0
  402. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/on_boundary.cpp +0 -0
  403. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orient_halfedges.cpp +0 -0
  404. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orient_outward.cpp +0 -0
  405. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orientable_patches.cpp +0 -0
  406. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/oriented_bounding_box.cpp +0 -0
  407. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/oriented_facets.cpp +0 -0
  408. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_corner_normals.cpp +0 -0
  409. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_edge_normals.cpp +0 -0
  410. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_face_normals.cpp +0 -0
  411. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_vertex_attribute_smoothing.cpp +0 -0
  412. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_vertex_normals.cpp +0 -0
  413. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/point_mesh_squared_distance.cpp +0 -0
  414. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polar_dec.cpp +0 -0
  415. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polar_svd.cpp +0 -0
  416. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polygon_corners.cpp +0 -0
  417. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polygons_to_triangles.cpp +0 -0
  418. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/delaunay_triangulation.cpp +0 -0
  419. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/ear_clipping.cpp +0 -0
  420. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/find_intersections.cpp +0 -0
  421. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/find_self_intersections.cpp +0 -0
  422. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/lexicographic_triangulation.cpp +0 -0
  423. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/module.cpp +0 -0
  424. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/point_inside_convex_polygon.cpp +0 -0
  425. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/polygons_to_triangles.cpp +0 -0
  426. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/segment_segment_intersect.cpp +0 -0
  427. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/triangle_triangle_intersect.cpp +0 -0
  428. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/principal_curvature.cpp +0 -0
  429. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/procrustes.cpp +0 -0
  430. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project.cpp +0 -0
  431. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project_to_line.cpp +0 -0
  432. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project_to_line_segment.cpp +0 -0
  433. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/pseudonormal_test.cpp +0 -0
  434. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/qslim.cpp +0 -0
  435. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/quad_grid.cpp +0 -0
  436. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/random_dir.cpp +0 -0
  437. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/random_points_on_mesh.cpp +0 -0
  438. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_mesh_intersect.cpp +0 -0
  439. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_sphere_intersect.cpp +0 -0
  440. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_triangle_intersect.cpp +0 -0
  441. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readCSV.cpp +0 -0
  442. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readDMAT.cpp +0 -0
  443. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readMESH.cpp +0 -0
  444. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readMSH.cpp +0 -0
  445. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readOBJ.cpp +0 -0
  446. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readOFF.cpp +0 -0
  447. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readSTL.cpp +0 -0
  448. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/read_triangle_mesh.cpp +0 -0
  449. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/remove_duplicate_vertices.cpp +0 -0
  450. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/remove_unreferenced.cpp +0 -0
  451. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rgb_to_hsv.cpp +0 -0
  452. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rigid_alignment.cpp +0 -0
  453. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rotate_vectors.cpp +0 -0
  454. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rotation_matrix_from_directions.cpp +0 -0
  455. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sample_edges.cpp +0 -0
  456. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/segment_segment_intersect.cpp +0 -0
  457. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sharp_edges.cpp +0 -0
  458. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/signed_angle.cpp +0 -0
  459. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/signed_distance.cpp +0 -0
  460. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/slim.cpp +0 -0
  461. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/snap_points.cpp +0 -0
  462. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/solid_angle.cpp +0 -0
  463. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_map_noop.cpp +0 -0
  464. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_map_shape.cpp +0 -0
  465. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_noop.cpp +0 -0
  466. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_shape.cpp +0 -0
  467. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/EigsType.cpp +0 -0
  468. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/eigs.cpp +0 -0
  469. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/lscm.cpp +0 -0
  470. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/module.cpp +0 -0
  471. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/split_nonmanifold.cpp +0 -0
  472. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/squared_edge_lengths.cpp +0 -0
  473. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/super_fibonacci.cpp +0 -0
  474. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/tet_tet_adjacency.cpp +0 -0
  475. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/tri_tri_intersect.cpp +0 -0
  476. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/cdt.cpp +0 -0
  477. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/module.cpp +0 -0
  478. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/refine.cpp +0 -0
  479. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/scaf.cpp +0 -0
  480. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/triangulate.cpp +0 -0
  481. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle_fan.cpp +0 -0
  482. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle_triangle_adjacency.cpp +0 -0
  483. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangulated_grid.cpp +0 -0
  484. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/turning_number.cpp +0 -0
  485. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/uniformly_sample_two_manifold.cpp +0 -0
  486. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_edge_map.cpp +0 -0
  487. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_simplices.cpp +0 -0
  488. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_sparse_voxel_corners.cpp +0 -0
  489. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unproject.cpp +0 -0
  490. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/upsample.cpp +0 -0
  491. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vector_area_matrix.cpp +0 -0
  492. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vertex_components.cpp +0 -0
  493. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vertex_triangle_adjacency.cpp +0 -0
  494. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/volume.cpp +0 -0
  495. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/voronoi_mass.cpp +0 -0
  496. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/voxel_grid.cpp +0 -0
  497. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/winding_number.cpp +0 -0
  498. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeDMAT.cpp +0 -0
  499. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeMESH.cpp +0 -0
  500. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeMSH.cpp +0 -0
  501. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeOBJ.cpp +0 -0
  502. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeOFF.cpp +0 -0
  503. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writePLY.cpp +0 -0
  504. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeSTL.cpp +0 -0
  505. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/write_triangle_mesh.cpp +0 -0
  506. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/contributing.md +0 -0
  507. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/exporter.py +0 -0
  508. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/igl_docs.md +0 -0
  509. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/102_DrawMesh.png +0 -0
  510. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/104_Colors.png +0 -0
  511. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/105_Overlays.png +0 -0
  512. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/106_ViewerMenu.png +0 -0
  513. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/501_HarmonicParam.png +0 -0
  514. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/502_LSCMParam.png +0 -0
  515. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/503_ARAPParam.png +0 -0
  516. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/504_nrosy_field.png +0 -0
  517. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/504_vector_field.png +0 -0
  518. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_1.png +0 -0
  519. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_2.png +0 -0
  520. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_3.png +0 -0
  521. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_4.png +0 -0
  522. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_5.png +0 -0
  523. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_6.png +0 -0
  524. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_7.png +0 -0
  525. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_8.png +0 -0
  526. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_1.png +0 -0
  527. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_2.png +0 -0
  528. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_3.png +0 -0
  529. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_4.png +0 -0
  530. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/507_PolyVectorField.png +0 -0
  531. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/508_ConjugateField.png +0 -0
  532. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/509_Planarization.png +0 -0
  533. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/510_Integrable.png +0 -0
  534. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
  535. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/602_Matlab_1.png +0 -0
  536. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/602_Matlab_2.png +0 -0
  537. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/604_Triangle.png +0 -0
  538. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/605_Tetgen.png +0 -0
  539. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/606_AmbientOcclusion.png +0 -0
  540. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/607_Picking.png +0 -0
  541. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/608_LIM.png +0 -0
  542. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/712_beetles.jpg +0 -0
  543. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/713_ShapeUp.png +0 -0
  544. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/VF.pdf +0 -0
  545. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/VF.png +0 -0
  546. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/arm-dqs.jpg +0 -0
  547. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/armadillo-fast.jpg +0 -0
  548. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
  549. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/background.gif +0 -0
  550. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
  551. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/big-sigcat-winding-number.gif +0 -0
  552. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bump-k-harmonic.jpg +0 -0
  553. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
  554. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bunny-signed-distance.gif +0 -0
  555. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bunny-swept-volume.gif +0 -0
  556. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
  557. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
  558. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-gradient.jpg +0 -0
  559. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
  560. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
  561. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cow-curvature-flow.jpg +0 -0
  562. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
  563. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
  564. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-arap.jpg +0 -0
  565. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
  566. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
  567. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-subdivision.gif +0 -0
  568. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/edge-collapse.jpg +0 -0
  569. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/edge-collapse.pdf +0 -0
  570. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fandisk-normals.jpg +0 -0
  571. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fertility-edge-collapse.gif +0 -0
  572. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fertility-principal-curvature.jpg +0 -0
  573. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/geodesicdistance.jpg +0 -0
  574. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/hand-bbw.jpg +0 -0
  575. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/hat-function.jpg +0 -0
  576. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/heat-geodesic-beetle.gif +0 -0
  577. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/heat-geodesic-peaks.png +0 -0
  578. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/libigl-logo.jpg +0 -0
  579. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/max-biharmonic.jpg +0 -0
  580. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/multiple-meshes.png +0 -0
  581. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
  582. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
  583. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/slim.png +0 -0
  584. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/streamlines.jpg +0 -0
  585. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/truck-facet-orientation.jpg +0 -0
  586. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/index.md +0 -0
  587. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/marching_cubes.py +0 -0
  588. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/plot_to_md.py +0 -0
  589. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter0.ipynb +0 -0
  590. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter1.ipynb +0 -0
  591. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter2.ipynb +0 -0
  592. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter3.ipynb +0 -0
  593. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter4.ipynb +0 -0
  594. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter5.ipynb +0 -0
  595. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter6.ipynb +0 -0
  596. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter7.ipynb +0 -0
  597. {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tutorials.ipynb +0 -0
@@ -5,6 +5,7 @@ external
5
5
  bin
6
6
  bin_rel
7
7
  build
8
+ build-full
8
9
 
9
10
  tutorial/data
10
11
  tutorial/.ipynb_*
@@ -36,6 +36,18 @@ FetchContent_Declare(
36
36
  )
37
37
  FetchContent_MakeAvailable(nanobind)
38
38
 
39
+ # Pin Eigen to 3.4.0. Recent libigl bumped its Eigen dependency to 5.0.1, whose
40
+ # stricter ScalarBinaryOpTraits rejects the int64-vs-int comparisons in some
41
+ # libigl headers (e.g. unique_edge_map), which the 64-bit-index Python bindings
42
+ # instantiate. Declaring Eigen first makes FetchContent use this version instead
43
+ # of the one requested by libigl's own recipe.
44
+ FetchContent_Declare(
45
+ eigen
46
+ GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
47
+ GIT_TAG tags/3.4.0
48
+ GIT_SHALLOW TRUE
49
+ )
50
+
39
51
  # Download and set up libigl
40
52
  option(LIBIGL_COPYLEFT_CORE "Build target igl_copyleft::core" ON)
41
53
  option(LIBIGL_COPYLEFT_CGAL "Build target igl_copyleft::cgal" ON)
@@ -44,10 +56,11 @@ option(LIBIGL_COPYLEFT_TETGEN "Build target igl_copyleft::tetgen" ON)
44
56
  option(LIBIGL_RESTRICTED_TRIANGLE "Build target igl_restricted::triangle" ON)
45
57
  option(LIBIGL_SPECTRA "Build igl::spectra bindings" ON)
46
58
  option(LIBIGL_PREDICATES "Build igl::predicates bindings" ON)
59
+ option(LIBIGL_CYCODEBASE "Build igl::cycodebase bindings" ON)
47
60
  FetchContent_Declare(
48
61
  libigl
49
62
  GIT_REPOSITORY https://github.com/libigl/libigl.git
50
- GIT_TAG 678e1fff76815e0c4c5d1f025ee2129181cc7d86
63
+ GIT_TAG 477e15a3d566a21f415aa5ee62992b12a836b01b
51
64
  )
52
65
  FetchContent_MakeAvailable(libigl)
53
66
 
@@ -190,6 +203,9 @@ endif()
190
203
  if(LIBIGL_PREDICATES)
191
204
  pyigl_include("" "predicates")
192
205
  endif()
206
+ if(LIBIGL_CYCODEBASE)
207
+ pyigl_include("" "cycodebase")
208
+ endif()
193
209
 
194
210
 
195
211
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: libigl
3
- Version: 2.6.3.dev3
3
+ Version: 2.6.3.dev4
4
4
  Summary: libigl: A simple C++ geometry processing library
5
5
  Author-Email: Alec Jacobson <alecjacobson@gmail.com>
6
6
  Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
@@ -13,7 +13,7 @@ build-backend = "scikit_build_core.build"
13
13
 
14
14
  [project]
15
15
  name = "libigl"
16
- version = "2.6.3.dev3"
16
+ version = "2.6.3.dev4"
17
17
  description = "libigl: A simple C++ geometry processing library"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.8"
@@ -0,0 +1,29 @@
1
+ #include "default_types.h"
2
+ #include <igl/cubic.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 cubic(
12
+ const nb::DRef<const Eigen::MatrixXN> &C,
13
+ const Numeric t)
14
+ {
15
+ Eigen::MatrixXN P;
16
+ igl::cubic(C, t, P);
17
+ return P;
18
+ }
19
+ }
20
+
21
+ void bind_cubic(nb::module_ &m)
22
+ {
23
+ m.def("cubic", &pyigl::cubic, "C"_a, "t"_a,
24
+ R"(Evaluate a cubic Bézier curve defined by control points C at parameter t.
25
+
26
+ @param[in] C 4 by dim matrix of control points for a cubic Bézier curve
27
+ @param[in] t parameter at which to evaluate the curve
28
+ @return P 1 by dim point on the curve C(t))");
29
+ }
@@ -0,0 +1,31 @@
1
+ #include "default_types.h"
2
+ #include <igl/cubic_is_flat.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 cubic_is_flat(
12
+ const nb::DRef<const Eigen::MatrixXN> &C,
13
+ const Numeric squared_distance_bound)
14
+ {
15
+ return igl::cubic_is_flat(C, squared_distance_bound);
16
+ }
17
+ }
18
+
19
+ void bind_cubic_is_flat(nb::module_ &m)
20
+ {
21
+ m.def("cubic_is_flat", &pyigl::cubic_is_flat, "C"_a, "squared_distance_bound"_a,
22
+ R"(Test whether a cubic Bézier curve is flat within a given tolerance.
23
+
24
+ "Piecewise Linear Approximation of Bézier Curves" [Fischer 2000]. If the test
25
+ passes, the curve's maximum squared distance to the chord from its first to its
26
+ last control point is less than squared_distance_bound.
27
+
28
+ @param[in] C 4 by dim matrix of control points for a cubic Bézier curve
29
+ @param[in] squared_distance_bound squared distance tolerance
30
+ @return True if the curve is flat within the given tolerance)");
31
+ }
@@ -0,0 +1,35 @@
1
+ #include "default_types.h"
2
+ #include <igl/cubic_monomial_bases.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto cubic_monomial_bases(
14
+ const nb::DRef<const Eigen::MatrixXN> &C)
15
+ {
16
+ Eigen::MatrixXN M, D;
17
+ // B is a 6-vector of inner products (cubic_monomial_bases calls vector
18
+ // methods on it), so it must be a vector type, not a general matrix.
19
+ Eigen::VectorXN B;
20
+ igl::cubic_monomial_bases(C, M, D, B);
21
+ return std::make_tuple(M, D, B);
22
+ }
23
+ }
24
+
25
+ void bind_cubic_monomial_bases(nb::module_ &m)
26
+ {
27
+ m.def("cubic_monomial_bases", &pyigl::cubic_monomial_bases, "C"_a,
28
+ R"(Compute monomial basis representations for a cubic Bézier curve.
29
+
30
+ @param[in] C 4 by dim matrix of control points for a cubic Bézier curve
31
+ @return Tuple (M, D, B) where
32
+ M 4 by dim matrix of monomial coefficients for C(t)
33
+ D 3 by dim matrix of monomial coefficients for dC/dt
34
+ B 6-vector of inner products of those basis functions for C(t))");
35
+ }
@@ -0,0 +1,33 @@
1
+ #include "default_types.h"
2
+ #include <igl/cubic_split.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto cubic_split(
14
+ const nb::DRef<const Eigen::MatrixXN> &C,
15
+ const Numeric t)
16
+ {
17
+ Eigen::MatrixXN C1, C2;
18
+ igl::cubic_split(C, t, C1, C2);
19
+ return std::make_tuple(C1, C2);
20
+ }
21
+ }
22
+
23
+ void bind_cubic_split(nb::module_ &m)
24
+ {
25
+ m.def("cubic_split", &pyigl::cubic_split, "C"_a, "t"_a,
26
+ R"(Split a cubic Bézier curve at parameter t into two cubic Bézier curves.
27
+
28
+ @param[in] C 4 by dim matrix of control points for a cubic Bézier curve
29
+ @param[in] t parameter at which to split the curve
30
+ @return Tuple (C1, C2) where
31
+ C1 4 by dim control points of the sub-curve from C(0) to C(t)
32
+ C2 4 by dim control points of the sub-curve from C(t) to C(1))");
33
+ }
@@ -0,0 +1,50 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/box_cubic.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ // Bounding box of a single cubic Bézier curve.
14
+ auto box_cubic_C(
15
+ const nb::DRef<const Eigen::MatrixXN> &C)
16
+ {
17
+ Eigen::RowVectorXN B1, B2;
18
+ igl::cycodebase::box_cubic(C, B1, B2);
19
+ return std::make_tuple(B1, B2);
20
+ }
21
+ // Bounding boxes of many indexed cubic Bézier curves.
22
+ auto box_cubic_PC(
23
+ const nb::DRef<const Eigen::MatrixXN> &P,
24
+ const nb::DRef<const Eigen::MatrixXI> &C)
25
+ {
26
+ Eigen::MatrixXN B1, B2;
27
+ igl::cycodebase::box_cubic(P, C, B1, B2);
28
+ return std::make_tuple(B1, B2);
29
+ }
30
+ }
31
+
32
+ void bind_box_cubic(nb::module_ &m)
33
+ {
34
+ m.def("box_cubic", &pyigl::box_cubic_C, "C"_a,
35
+ R"(Compute the min/max box corners tightly containing a cubic Bézier curve.
36
+
37
+ @param[in] C 4 by dim matrix of control points defining the cubic Bézier curve
38
+ @return Tuple (B1, B2) where
39
+ B1 1 by dim min corner of the bounding box
40
+ B2 1 by dim max corner of the bounding box)");
41
+
42
+ m.def("box_cubic", &pyigl::box_cubic_PC, "P"_a, "C"_a,
43
+ R"(Compute bounding boxes for a collection of indexed cubic Bézier curves.
44
+
45
+ @param[in] P #P by dim matrix of control point locations
46
+ @param[in] C #C by 4 matrix of indices into P defining the cubics
47
+ @return Tuple (B1, B2) where
48
+ B1 #C by dim matrix of min corners of the bounding boxes
49
+ B2 #C by dim matrix of max corners of the bounding boxes)");
50
+ }
@@ -0,0 +1,11 @@
1
+ #include <nanobind/nanobind.h>
2
+ namespace nb = nanobind;
3
+
4
+ // generated by cmake
5
+ #include "cycodebase/BINDING_DECLARATIONS.in"
6
+
7
+ NB_MODULE(pyigl_cycodebase, m) {
8
+ m.doc() = "libigl cycodebase module python bindings";
9
+ // generated by cmake
10
+ #include "cycodebase/BINDING_INVOCATIONS.in"
11
+ }
@@ -0,0 +1,36 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/point_cubic_squared_distance.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto point_cubic_squared_distance(
14
+ const nb::DRef<const Eigen::MatrixXN> &Q,
15
+ const nb::DRef<const Eigen::MatrixXN> &C)
16
+ {
17
+ Eigen::VectorXN sqrD, S;
18
+ Eigen::MatrixXN K;
19
+ igl::cycodebase::point_cubic_squared_distance(Q, C, sqrD, S, K);
20
+ return std::make_tuple(sqrD, S, K);
21
+ }
22
+ }
23
+
24
+ void bind_point_cubic_squared_distance(nb::module_ &m)
25
+ {
26
+ m.def("point_cubic_squared_distance", &pyigl::point_cubic_squared_distance,
27
+ "Q"_a, "C"_a,
28
+ R"(Squared distance from each query point to a cubic Bézier curve.
29
+
30
+ @param[in] Q #Q by dim matrix of query points
31
+ @param[in] C 4 by dim matrix of control points for the cubic Bézier curve
32
+ @return Tuple (sqrD, S, K) where
33
+ sqrD #Q vector of smallest squared distances
34
+ S #Q vector of parameters of the closest points on the curve
35
+ K #Q by dim matrix of closest points on the curve)");
36
+ }
@@ -0,0 +1,40 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/point_spline_squared_distance.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto point_spline_squared_distance(
14
+ const nb::DRef<const Eigen::MatrixXN> &Q,
15
+ const nb::DRef<const Eigen::MatrixXN> &P,
16
+ const nb::DRef<const Eigen::MatrixXI> &C)
17
+ {
18
+ Eigen::VectorXN sqrD, S;
19
+ Eigen::VectorXI I;
20
+ Eigen::MatrixXN K;
21
+ igl::cycodebase::point_spline_squared_distance(Q, P, C, sqrD, I, S, K);
22
+ return std::make_tuple(sqrD, I, S, K);
23
+ }
24
+ }
25
+
26
+ void bind_point_spline_squared_distance(nb::module_ &m)
27
+ {
28
+ m.def("point_spline_squared_distance", &pyigl::point_spline_squared_distance,
29
+ "Q"_a, "P"_a, "C"_a,
30
+ R"(Squared distance from each query point to a spline of cubic Bézier curves.
31
+
32
+ @param[in] Q #Q by dim matrix of query points
33
+ @param[in] P #P by dim matrix of spline control points
34
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
35
+ @return Tuple (sqrD, I, S, K) where
36
+ sqrD #Q vector of smallest squared distances
37
+ I #Q vector of indices of the closest cubic (row of C)
38
+ S #Q vector of parameters of the closest points on that cubic
39
+ K #Q by dim matrix of closest points on the spline)");
40
+ }
@@ -0,0 +1,39 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/roots.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto roots(
14
+ const nb::DRef<const Eigen::VectorXN> &coef_in,
15
+ const Numeric xmin,
16
+ const Numeric xmax)
17
+ {
18
+ // Copy to a contiguous vector of monomial coefficients (low to high).
19
+ const Eigen::VectorXN coef = coef_in;
20
+ Eigen::VectorXN R;
21
+ const int nr = igl::cycodebase::roots(coef, xmin, xmax, R);
22
+ return std::make_tuple(nr, R);
23
+ }
24
+ }
25
+
26
+ void bind_roots(nb::module_ &m)
27
+ {
28
+ m.def("roots", &pyigl::roots, "coef"_a, "xmin"_a, "xmax"_a,
29
+ R"(Find the real roots of a polynomial within an interval [xmin, xmax].
30
+
31
+ @param[in] coef #coef list of monomial coefficients (low to high order); the
32
+ polynomial degree is len(coef)-1
33
+ @param[in] xmin lower bound of the search interval
34
+ @param[in] xmax upper bound of the search interval
35
+ @return Tuple (n, R) where
36
+ n number of roots found in [xmin, xmax]
37
+ R degree-length vector whose first n entries are the roots (ascending); the
38
+ remaining entries are NaN)");
39
+ }
@@ -0,0 +1,35 @@
1
+ #include "default_types.h"
2
+ #include <igl/cycodebase/spline_eytzinger_aabb.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/tuple.h>
6
+ #include <tuple>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto spline_eytzinger_aabb(
14
+ const nb::DRef<const Eigen::MatrixXN> &P,
15
+ const nb::DRef<const Eigen::MatrixXI> &C)
16
+ {
17
+ Eigen::MatrixXN B1, B2;
18
+ Eigen::VectorXI leaf;
19
+ igl::cycodebase::spline_eytzinger_aabb(P, C, B1, B2, leaf);
20
+ return std::make_tuple(B1, B2, leaf);
21
+ }
22
+ }
23
+
24
+ void bind_spline_eytzinger_aabb(nb::module_ &m)
25
+ {
26
+ m.def("spline_eytzinger_aabb", &pyigl::spline_eytzinger_aabb, "P"_a, "C"_a,
27
+ R"(Compute an Eytzinger-layout AABB tree for a spline of cubic Bézier curves.
28
+
29
+ @param[in] P #P by dim matrix of spline control points
30
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
31
+ @return Tuple (B1, B2, leaf) where
32
+ B1 #B by dim matrix of AABB min box corners
33
+ B2 #B by dim matrix of AABB max box corners
34
+ leaf #B vector of AABB leaf node indices/flags)");
35
+ }
@@ -0,0 +1,37 @@
1
+ #include "default_types.h"
2
+ #include <igl/fit_cubic_bezier.h>
3
+ #include <nanobind/nanobind.h>
4
+ #include <nanobind/eigen/dense.h>
5
+ #include <nanobind/stl/vector.h>
6
+ #include <vector>
7
+
8
+ namespace nb = nanobind;
9
+ using namespace nb::literals;
10
+
11
+ namespace pyigl
12
+ {
13
+ auto fit_cubic_bezier(
14
+ const nb::DRef<const Eigen::MatrixXN> &d,
15
+ const Numeric error)
16
+ {
17
+ // fit_cubic_bezier takes a concrete Eigen::MatrixXd (column-major)
18
+ const Eigen::MatrixXd D = d;
19
+ std::vector<Eigen::MatrixXd> cubics;
20
+ igl::fit_cubic_bezier(D, error, cubics);
21
+ return cubics;
22
+ }
23
+ }
24
+
25
+ void bind_fit_cubic_bezier(nb::module_ &m)
26
+ {
27
+ m.def("fit_cubic_bezier", &pyigl::fit_cubic_bezier, "d"_a, "error"_a,
28
+ R"(Fit a G1-continuous cubic Bézier spline to an ordered list of points.
29
+
30
+ According to "An algorithm for automatically fitting digitized curves"
31
+ [Schneider 1990].
32
+
33
+ @param[in] d #d by dim list of points along a curve (roughly uniformly spaced).
34
+ If d[0]==d[-1] the curve is treated as closed.
35
+ @param[in] error maximum squared distance allowed
36
+ @return cubics list of 4 by dim arrays of cubic Bézier control points)");
37
+ }
@@ -0,0 +1,21 @@
1
+ #include "default_types.h"
2
+ #include <igl/Orientation.h>
3
+ #include <nanobind/nanobind.h>
4
+
5
+ namespace nb = nanobind;
6
+ using namespace nb::literals;
7
+
8
+ void bind_Orientation(nb::module_ &m)
9
+ {
10
+ nb::enum_<igl::Orientation>(m, "Orientation")
11
+ .value("POSITIVE", igl::Orientation::POSITIVE)
12
+ .value("INSIDE", igl::Orientation::INSIDE)
13
+ .value("NEGATIVE", igl::Orientation::NEGATIVE)
14
+ .value("OUTSIDE", igl::Orientation::OUTSIDE)
15
+ .value("COLLINEAR", igl::Orientation::COLLINEAR)
16
+ .value("COPLANAR", igl::Orientation::COPLANAR)
17
+ .value("COCIRCULAR", igl::Orientation::COCIRCULAR)
18
+ .value("COSPHERICAL", igl::Orientation::COSPHERICAL)
19
+ .value("DEGENERATE", igl::Orientation::DEGENERATE)
20
+ .export_values();
21
+ }
@@ -0,0 +1,27 @@
1
+ #include "default_types.h"
2
+ #include <igl/predicates/cubic_winding_number.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
+ Numeric cubic_winding_number(
12
+ const nb::DRef<const Eigen::MatrixXN> &C,
13
+ const Eigen::RowVector2d &q)
14
+ {
15
+ return igl::predicates::cubic_winding_number(C, q);
16
+ }
17
+ }
18
+
19
+ void bind_cubic_winding_number(nb::module_ &m)
20
+ {
21
+ m.def("cubic_winding_number", &pyigl::cubic_winding_number, "C"_a, "q"_a,
22
+ R"(Exact winding number of a 2D cubic Bézier curve about a query point.
23
+
24
+ @param[in] C 4 by 2 matrix of control points for the cubic Bézier curve
25
+ @param[in] q 2D query point
26
+ @return the (fractional) winding number of the curve about q)");
27
+ }
@@ -8,7 +8,7 @@ using namespace nb::literals;
8
8
 
9
9
  namespace pyigl
10
10
  {
11
- igl::predicates::Orientation incircle(
11
+ igl::Orientation incircle(
12
12
  const Eigen::Vector2d &pa,
13
13
  const Eigen::Vector2d &pb,
14
14
  const Eigen::Vector2d &pc,
@@ -8,7 +8,7 @@ using namespace nb::literals;
8
8
 
9
9
  namespace pyigl
10
10
  {
11
- igl::predicates::Orientation insphere(
11
+ igl::Orientation insphere(
12
12
  const Eigen::Vector3d &pa,
13
13
  const Eigen::Vector3d &pb,
14
14
  const Eigen::Vector3d &pc,
@@ -8,7 +8,7 @@ using namespace nb::literals;
8
8
 
9
9
  namespace pyigl
10
10
  {
11
- igl::predicates::Orientation orient2d(
11
+ igl::Orientation orient2d(
12
12
  const Eigen::Vector2d &pa,
13
13
  const Eigen::Vector2d &pb,
14
14
  const Eigen::Vector2d &pc)
@@ -8,7 +8,7 @@ using namespace nb::literals;
8
8
 
9
9
  namespace pyigl
10
10
  {
11
- igl::predicates::Orientation orient3d_scalar(
11
+ igl::Orientation orient3d_scalar(
12
12
  const Eigen::Vector3d &pa,
13
13
  const Eigen::Vector3d &pb,
14
14
  const Eigen::Vector3d &pc,
@@ -0,0 +1,35 @@
1
+ #include "default_types.h"
2
+ #include <igl/predicates/point_in_convex_hull.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
+ igl::Orientation point_in_convex_hull(
12
+ const Eigen::RowVector2d &q,
13
+ const Eigen::RowVector2d &a,
14
+ const Eigen::RowVector2d &b,
15
+ const Eigen::RowVector2d &c,
16
+ const Eigen::RowVector2d &d)
17
+ {
18
+ return igl::predicates::point_in_convex_hull(q, a, b, c, d);
19
+ }
20
+ }
21
+
22
+ void bind_point_in_convex_hull(nb::module_ &m)
23
+ {
24
+ m.def("point_in_convex_hull", &pyigl::point_in_convex_hull,
25
+ "q"_a, "a"_a, "b"_a, "c"_a, "d"_a,
26
+ R"(Test whether a 2D point lies in the convex hull of four points using exact predicates.
27
+
28
+ @param[in] q 2D query point
29
+ @param[in] a 2D point
30
+ @param[in] b 2D point
31
+ @param[in] c 2D point
32
+ @param[in] d 2D point
33
+ @return POSITIVE if q is strictly inside the convex hull of {a,b,c,d},
34
+ NEGATIVE if strictly outside, COLLINEAR if on the boundary.)");
35
+ }
@@ -0,0 +1,41 @@
1
+ #include "default_types.h"
2
+ #include <igl/predicates/spline_winding_number.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 spline_winding_number(
12
+ const nb::DRef<const Eigen::MatrixXN> &P,
13
+ const nb::DRef<const Eigen::MatrixXI> &C,
14
+ const nb::DRef<const Eigen::MatrixXN> &B1,
15
+ const nb::DRef<const Eigen::MatrixXN> &B2,
16
+ const nb::DRef<const Eigen::VectorXI> &leaf,
17
+ const nb::DRef<const Eigen::MatrixXN> &Q)
18
+ {
19
+ Eigen::VectorXN W;
20
+ igl::predicates::spline_winding_number(P, C, B1, B2, leaf, Q, W);
21
+ return W;
22
+ }
23
+ }
24
+
25
+ void bind_spline_winding_number(nb::module_ &m)
26
+ {
27
+ m.def("spline_winding_number", &pyigl::spline_winding_number,
28
+ "P"_a, "C"_a, "B1"_a, "B2"_a, "leaf"_a, "Q"_a,
29
+ R"(Winding number of a closed spline of cubic Bézier curves about query points.
30
+
31
+ Uses the Eytzinger-layout AABB tree produced by
32
+ igl.cycodebase.spline_eytzinger_aabb for acceleration.
33
+
34
+ @param[in] P #P by 2 matrix of spline control points
35
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
36
+ @param[in] B1 #B by 2 matrix of AABB min box corners
37
+ @param[in] B2 #B by 2 matrix of AABB max box corners
38
+ @param[in] leaf #B vector of AABB leaf node indices/flags
39
+ @param[in] Q #Q by 2 matrix of query points
40
+ @return W #Q vector of winding numbers about each query point)");
41
+ }