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.
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.gitignore +1 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/CMakeLists.txt +17 -1
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/PKG-INFO +1 -1
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/pyproject.toml +1 -1
- libigl-2.6.3.dev4/src/cubic.cpp +29 -0
- libigl-2.6.3.dev4/src/cubic_is_flat.cpp +31 -0
- libigl-2.6.3.dev4/src/cubic_monomial_bases.cpp +35 -0
- libigl-2.6.3.dev4/src/cubic_split.cpp +33 -0
- libigl-2.6.3.dev4/src/cycodebase/box_cubic.cpp +50 -0
- libigl-2.6.3.dev4/src/cycodebase/module.cpp +11 -0
- libigl-2.6.3.dev4/src/cycodebase/point_cubic_squared_distance.cpp +36 -0
- libigl-2.6.3.dev4/src/cycodebase/point_spline_squared_distance.cpp +40 -0
- libigl-2.6.3.dev4/src/cycodebase/roots.cpp +39 -0
- libigl-2.6.3.dev4/src/cycodebase/spline_eytzinger_aabb.cpp +35 -0
- libigl-2.6.3.dev4/src/fit_cubic_bezier.cpp +37 -0
- libigl-2.6.3.dev4/src/predicates/Orientation.cpp +21 -0
- libigl-2.6.3.dev4/src/predicates/cubic_winding_number.cpp +27 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/incircle.cpp +1 -1
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/insphere.cpp +1 -1
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/orient2d.cpp +1 -1
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/orient3d.cpp +1 -1
- libigl-2.6.3.dev4/src/predicates/point_in_convex_hull.cpp +35 -0
- libigl-2.6.3.dev4/src/predicates/spline_winding_number.cpp +41 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tests/test_all.py +209 -0
- libigl-2.6.3.dev3/src/predicates/Orientation.cpp +0 -21
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.github/workflows/pip.yml +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/.github/workflows/wheels.yml +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/LICENSE.GPL +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/LICENSE.MPL2 +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/README.md +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/copyleft/triangle_triangulate.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/SolverStatus.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/WindingNumberMethod.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/angular_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/canonical_quaternions.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/column_to_quats.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/comiso_nrosy.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/covariance_scatter_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/file_contents_as_string.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/fit_rotations.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frame_field_deformer.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frame_to_cross_field.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/frustum.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/group_sum_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/harwell_boeing.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/histc.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/hsv_to_rgb.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/invert_diag.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/is_planar.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/limit_faces.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/line_field_missmatch.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/line_search.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/mat_to_quat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/material_colors.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/max_faces_stopping_condition.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/min_quad_dense.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/normalize_quat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/on_boundary.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_floor.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_point.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_flare_textures.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_print_gl_get.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_project.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_right_axis.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_shine_textures.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_sort_triangles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_unproject.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_up_axis.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl2_view_axis.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_create_shader_program.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_gl_type_size.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_glfw_background_window.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_load_shader.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_print_program_info_log.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_report_gl_error.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/ortho.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/parallel_transport_angles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/polar_svd.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/polar_svd3x3.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_conjugate.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_mult.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_to_axis_angle.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quat_to_mat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/quats_to_column.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/random_quaternion.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readBF.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readNODE.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readPLY.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/readSTL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rgb_to_hsv.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rotate_by_quat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/snap_to_fixed_up.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_angles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_triangles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/sort_vectors_ccw.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3_avx.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/svd3x3_sse.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/trackball.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/transpose_blocks.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/unique_rows.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/voxel_grid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writePLY.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writeSTL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/skip/writeWRL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/MeshBooleanType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/NormalType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/collapse_edge.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/dijkstra.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/embree_bone_heat.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/fast_winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/flip_edge.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/knn.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/octree.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_readPNG.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_render_to_png.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_render_to_png_async.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_texture_from_file.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_texture_from_png.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/png_writePNG.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/pseudonormal_test.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/readWRL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/remesh_along_isoline.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/seam_edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/squared_edge_lengths.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/straighten_seams.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/triangle_cdt.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/unzip_corners.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeBF.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeDMAT.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeMESH.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/writeTGF.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/xml_writeDAE.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/classes/AABB.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/classes/classes.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/CXXFeatures.cmake +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/FindLIBIGL.cmake +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/UseColors.cmake +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/cmake/Warnings.cmake +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/include/default_types.h +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/memory/MEMORY.md +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/missing.sh +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/mkdocs.yml +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/postBuild +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/priority.txt +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/basic_function.mako +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/blender_igl_export.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/generate_bindings.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/make_lean.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/scripts/parser.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/AABB.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/FileEncoding.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/MappingEnergyType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/MassMatrixType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/accumarray.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/adjacency_list.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/adjacency_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/all_pairs_distances.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/arap.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_from_edges_onto_vertices.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_onto_faces.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/average_onto_vertices.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/avg_edge_length.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycenter.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycentric_coordinates.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/barycentric_interpolation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bbw.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bezier.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bfs_orient.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/biharmonic_coordinates.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bijective_composite_harmonic_mapping.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/blue_noise.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/boundary_facets.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/boundary_loop.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bounding_box.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/bounding_box_diagonal.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/centroid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/circulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/circumradius.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/collapse_edge.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/colormap.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/comb_cross_field.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/comb_frame_field.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/combine.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/compute_frame_field_bisectors.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/connected_components.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/convex_hull.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/coplanar.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/delaunay_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/extract_cells.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/intersect_other.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/outer_hull.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/peel_outer_hull_layers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/peel_winding_number_layers.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/point_areas.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/marching_cubes.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/progressive_hulls.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/quadprog.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/cdt.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/mesh_with_skeleton.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix_entries.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cotmatrix_intrinsic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cross_field_mismatch.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/crouzeix_raviart_massmatrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/curved_hessian_energy.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_mesh_from_singularities.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cut_to_disk.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/cylinder.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/decimate.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dihedral_angles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dihedral_angles_intrinsic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dijkstra.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/directed_edge_parents.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/doublearea.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/dual_contouring.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ears.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_flaps.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_lengths.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edge_topology.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/edges_to_path.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/EmbreeIntersector.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/ambient_occlusion.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/bone_visible.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/line_mesh_intersection.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/reorient_facets_raycast.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/embree/shape_diameter_function.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/euler_characteristic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/exact_geodesic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/exterior_edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/extract_manifold_patches.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/face_areas.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/face_occurrences.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/facet_adjacency_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/facet_components.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/false_barycentric_subdivision.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/fast_winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/find_cross_field_singularities.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/fit_plane.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/flipped_triangles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/flood_fill.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/gaussian_curvature.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/grad.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/grid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/harmonic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hausdorff.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/heat_geodesics.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hessian.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hessian_energy.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/hsv_to_rgb.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/icosahedron.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/in_element.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/inradius.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/internal_angles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/intrinsic_delaunay_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_border_vertex.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_boundary_edge.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_delaunay.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_edge_manifold.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_intrinsic_delaunay.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_irregular_vertex.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/is_vertex_manifold.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ismember_rows.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/isolines.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/isolines_intrinsic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/iterative_closest_point.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/kelvinlets.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/knn.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lbs_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lipschitz_octree.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/local_basis.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/look_at.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/loop.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/lscm.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/map_vertices_to_circle.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/marching_cubes.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/massmatrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/massmatrix_intrinsic.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/matlab_format.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/min_quad_with_fixed.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/moments.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/mvc.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/noop.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/octree.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/offset_surface.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/on_boundary.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orient_halfedges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orient_outward.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/orientable_patches.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/oriented_bounding_box.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/oriented_facets.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_corner_normals.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_edge_normals.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_face_normals.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_vertex_attribute_smoothing.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/per_vertex_normals.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/point_mesh_squared_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polar_dec.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polar_svd.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polygon_corners.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/polygons_to_triangles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/delaunay_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/ear_clipping.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/find_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/find_self_intersections.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/point_inside_convex_polygon.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/polygons_to_triangles.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/segment_segment_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/predicates/triangle_triangle_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/principal_curvature.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/procrustes.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project_to_line.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/project_to_line_segment.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/pseudonormal_test.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/qslim.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/quad_grid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/random_dir.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/random_points_on_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_mesh_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_sphere_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/ray_triangle_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readCSV.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readDMAT.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readMESH.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readMSH.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readOBJ.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readOFF.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/readSTL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/read_triangle_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/remove_duplicate_vertices.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/remove_unreferenced.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rgb_to_hsv.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rigid_alignment.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rotate_vectors.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/rotation_matrix_from_directions.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sample_edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/segment_segment_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sharp_edges.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/signed_angle.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/signed_distance.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/slim.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/snap_points.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/solid_angle.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_map_noop.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_map_shape.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_noop.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/sparse_shape.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/EigsType.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/eigs.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/lscm.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/spectra/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/split_nonmanifold.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/squared_edge_lengths.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/super_fibonacci.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/tet_tet_adjacency.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/tri_tri_intersect.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/cdt.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/module.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/refine.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/scaf.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle/triangulate.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle_fan.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangle_triangle_adjacency.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/triangulated_grid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/turning_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/uniformly_sample_two_manifold.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_edge_map.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_simplices.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unique_sparse_voxel_corners.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/unproject.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/upsample.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vector_area_matrix.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vertex_components.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/vertex_triangle_adjacency.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/volume.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/voronoi_mass.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/voxel_grid.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/winding_number.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeDMAT.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeMESH.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeMSH.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeOBJ.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeOFF.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writePLY.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/writeSTL.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/src/write_triangle_mesh.cpp +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/contributing.md +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/exporter.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/igl_docs.md +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/102_DrawMesh.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/104_Colors.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/105_Overlays.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/106_ViewerMenu.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/501_HarmonicParam.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/502_LSCMParam.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/503_ARAPParam.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/504_nrosy_field.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/504_vector_field.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_1.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_2.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_3.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_4.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_5.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_6.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_7.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/505_MIQ_8.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_1.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_2.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_3.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/506_FrameField_4.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/507_PolyVectorField.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/508_ConjugateField.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/509_Planarization.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/510_Integrable.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/602_Matlab_1.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/602_Matlab_2.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/604_Triangle.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/605_Tetgen.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/606_AmbientOcclusion.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/607_Picking.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/608_LIM.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/712_beetles.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/713_ShapeUp.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/VF.pdf +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/VF.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/arm-dqs.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/armadillo-fast.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/background.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/big-sigcat-winding-number.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bump-k-harmonic.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bunny-signed-distance.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/bunny-swept-volume.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-gradient.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cow-curvature-flow.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-arap.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/decimated-knight-subdivision.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/edge-collapse.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/edge-collapse.pdf +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fandisk-normals.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fertility-edge-collapse.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/fertility-principal-curvature.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/geodesicdistance.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/hand-bbw.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/hat-function.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/heat-geodesic-beetle.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/heat-geodesic-peaks.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/libigl-logo.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/max-biharmonic.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/multiple-meshes.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/slim.png +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/streamlines.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/images/truck-facet-orientation.jpg +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/index.md +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/marching_cubes.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/plot_to_md.py +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter0.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter1.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter2.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter3.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter4.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter5.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter6.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tut-chapter7.ipynb +0 -0
- {libigl-2.6.3.dev3 → libigl-2.6.3.dev4}/tutorial/tutorials.ipynb +0 -0
|
@@ -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
|
|
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.
|
|
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)
|
|
@@ -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
|
+
}
|
|
@@ -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
|
+
}
|