libigl 2.6.4.dev0__tar.gz → 2.6.4.dev1__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.4.dev0 → libigl-2.6.4.dev1}/CMakeLists.txt +3 -1
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/PKG-INFO +1 -1
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/pyproject.toml +1 -1
- libigl-2.6.4.dev1/src/LazyCageDistance.cpp +16 -0
- libigl-2.6.4.dev1/src/LazyCageGridMode.cpp +16 -0
- libigl-2.6.4.dev1/src/LazyCageMetric.cpp +17 -0
- libigl-2.6.4.dev1/src/lazy_cage.cpp +123 -0
- libigl-2.6.4.dev1/src/progressive_hulls.cpp +60 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tests/test_all.py +49 -3
- libigl-2.6.4.dev0/src/copyleft/progressive_hulls.cpp +0 -42
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.github/workflows/pip.yml +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.github/workflows/wheels.yml +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/.gitignore +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/CHANGELOG.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/LICENSE.GPL +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/LICENSE.MPL2 +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/README.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/copyleft/tetgen_tetrahedralize.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/copyleft/triangle_triangulate.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/SolverStatus.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/WindingNumberMethod.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/angular_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/canonical_quaternions.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/column_to_quats.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/comiso_nrosy.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/covariance_scatter_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/file_contents_as_string.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/fit_rotations.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frame_field_deformer.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frame_to_cross_field.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/frustum.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/group_sum_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/harwell_boeing.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/histc.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/hsv_to_rgb.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/infinite_cost_stopping_condition.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/invert_diag.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/is_planar.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/limit_faces.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/line_field_missmatch.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/line_search.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/mat_to_quat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/material_colors.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/max_faces_stopping_condition.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/min_quad_dense.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/normalize_quat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/on_boundary.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_beach_ball.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_floor.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_point.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_rectangular_marquee.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_skeleton_3d.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_flare_textures.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_model_proj_viewport.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_print_gl_get.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_project.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_right_axis.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_shine_textures.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_sort_triangles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_unproject.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_unproject_to_zero_plane.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_up_axis.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_view_axis.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_create_shader_program.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_destroy_shader_program.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_gl_type_size.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_glfw_background_window.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_glfw_imgui_ImGuiHelpers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_init_render_to_texture.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_load_shader.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_print_program_info_log.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_print_shader_info_log.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_report_gl_error.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl_uniform_type_to_string.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/ortho.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/parallel_transport_angles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/polar_svd.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/polar_svd3x3.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quadric_binary_plus_operator.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_conjugate.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_mult.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_to_axis_angle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quat_to_mat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/quats_to_column.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/random_quaternion.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readBF.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readNODE.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readPLY.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/readSTL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rgb_to_hsv.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rotate_by_quat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/rotation_matrix_from_directions.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/snap_to_canonical_view_quat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/snap_to_fixed_up.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_angles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_triangles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/sort_vectors_ccw.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3_avx.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/svd3x3_sse.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/trackball.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/transpose_blocks.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/unique_rows.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/voxel_grid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writePLY.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writeSTL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/writeWRL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/MeshBooleanType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/NormalType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/collapse_edge.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_assign.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_assign_scalar.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_cell_adjacency.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_closest_facet.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_complex_to_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_component_inside_component.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_convex_hull.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_delaunay_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_extract_cells.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_extract_feature.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_fast_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_half_space_box.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_hausdorff.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_incircle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_insert_into_cdt.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_insphere.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_intersect_other.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_intersect_with_half_space.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_boolean_type_to_funcs.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_cgal_triangle_list.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_mesh_to_polyhedron.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_minkowski_sum.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edge.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_order_facets_around_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_orient2D.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_orient3D.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_element.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_facet.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_outer_hull.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_peel_outer_hull_layers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_peel_winding_number_layers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_piecewise_constant_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_areas.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_mesh_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_segment_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_solid_signed_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_point_triangle_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_points_inside_component.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_polyhedron_to_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_projected_cdt.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_projected_delaunay.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_propagate_winding_numbers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_read_triangle_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_relabel_small_immersed_cells.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_remesh_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_remesh_self_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_resolve_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_row_to_point.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_segment_segment_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_signed_distance_isosurface.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_snap_rounding.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_string_to_mesh_boolean_type.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_subdivide_segments.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_submesh_aabb_tree.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_triangle_triangle_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_trim_with_solid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cgal_wire_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_comiso_miq.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_cork_mesh_boolean.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_marching_cubes.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_offset_surface.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_opengl2_render_to_tga.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_opengl2_texture_from_tga.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_progressive_hulls.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_progressive_hulls_cost_and_placement.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_quadprog.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_swept_volume.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_mesh_with_skeleton.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_read_into_tetgenio.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/copyleft/copyleft_tetgen_tetrahedralize.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/dijkstra.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/embree_bone_heat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/embree_reorient_facets_raycast.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/fast_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/flip_edge.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/knn.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/mosek_mosek_guarded.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/mosek_mosek_linprog.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/octree.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/per_vertex_point_to_plane_quadrics.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_readPNG.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_render_to_png.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_render_to_png_async.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_texture_from_file.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_texture_from_png.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/png_writePNG.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/pseudonormal_test.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/readWRL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/remesh_along_isoline.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/seam_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/shortest_edge_and_midpoint.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/squared_edge_lengths.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/straighten_seams.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/swept_volume_signed_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/triangle_cdt.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/unzip_corners.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeBF.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeDMAT.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeMESH.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/writeTGF.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/xml_writeDAE.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/todo-old/xml_write_triangle_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/classes/AABB.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/classes/classes.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/CXXFeatures.cmake +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/FindLIBIGL.cmake +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/UseColors.cmake +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/cmake/Warnings.cmake +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/include/default_types.h +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/include/parse_transforms.h +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/memory/MEMORY.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/missing.sh +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/mkdocs.yml +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/postBuild +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/priority.txt +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/basic_function.mako +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/blender_igl_export.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/generate_bindings.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/make_lean.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/scripts/parser.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/AABB.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/FileEncoding.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/MappingEnergyType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/MassMatrixType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/OrientedBoundingBoxMinimizeType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/accumarray.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/active_set.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/adjacency_list.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/adjacency_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/all_pairs_distances.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ambient_occlusion.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/arap.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_from_edges_onto_vertices.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_onto_faces.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/average_onto_vertices.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/avg_edge_length.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycenter.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycentric_coordinates.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/barycentric_interpolation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bbw.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bezier.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bfs_orient.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/biharmonic_coordinates.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bijective_composite_harmonic_mapping.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/blue_noise.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_conditions.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_facets.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/boundary_loop.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bounding_box.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/bounding_box_diagonal.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/centroid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/circulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/circumradius.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/collapse_edge.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/colormap.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/comb_cross_field.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/comb_frame_field.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/combine.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/compute_frame_field_bisectors.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/connect_boundary_to_infinity.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/connected_components.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/convex_hull.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/coplanar.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/delaunay_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/extract_cells.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/fast_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/intersect_other.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/intersect_with_half_space.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/mesh_boolean.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/oriented_bounding_box.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/outer_hull.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/peel_outer_hull_layers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/peel_winding_number_layers.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/point_areas.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/remesh_self_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/cgal/trim_with_solid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/marching_cubes.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/quadprog.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/cdt.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/mesh_with_skeleton.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/copyleft/tetgen/tetrahedralize.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix_entries.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cotmatrix_intrinsic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cross_field_mismatch.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/crouzeix_raviart_cotmatrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/crouzeix_raviart_massmatrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_is_flat.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_monomial_bases.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cubic_split.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/curved_hessian_energy.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_mesh_from_singularities.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cut_to_disk.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/box_cubic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/point_cubic_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/point_spline_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/roots.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cycodebase/spline_eytzinger_aabb.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/cylinder.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/decimate.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dihedral_angles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dihedral_angles_intrinsic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dijkstra.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/directed_edge_parents.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/doublearea.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/dual_contouring.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ears.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_flaps.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_lengths.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edge_topology.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/edges_to_path.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/EmbreeIntersector.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/ambient_occlusion.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/bone_visible.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/line_mesh_intersection.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/reorient_facets_raycast.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/embree/shape_diameter_function.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/euler_characteristic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/exact_geodesic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/exterior_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/extract_manifold_patches.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/face_areas.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/face_occurrences.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/facet_adjacency_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/facet_components.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/false_barycentric_subdivision.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fast_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/find_cross_field_singularities.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_cubic_bezier.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_plane.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/fit_rotations.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/flipped_triangles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/flood_fill.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/gaussian_curvature.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/grad.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/grid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/harmonic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hausdorff.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/heat_geodesics.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hessian.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hessian_energy.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/hsv_to_rgb.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/icosahedron.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/in_element.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/inradius.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/internal_angles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/intrinsic_delaunay_cotmatrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/intrinsic_delaunay_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_border_vertex.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_boundary_edge.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_delaunay.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_edge_manifold.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_intrinsic_delaunay.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_irregular_vertex.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/is_vertex_manifold.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ismember_rows.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/isolines.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/isolines_intrinsic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/iterative_closest_point.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/kelvinlets.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/knn.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lbs_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lipschitz_octree.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/local_basis.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/look_at.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/loop.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/lscm.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/map_vertices_to_circle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/marching_cubes.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/massmatrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/massmatrix_intrinsic.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/matlab_format.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/min_quad_with_fixed.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/moments.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/mvc.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/noop.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/octree.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/offset_surface.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/on_boundary.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orient_halfedges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orient_outward.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/orientable_patches.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/oriented_bounding_box.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/oriented_facets.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/path_to_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_corner_normals.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_edge_normals.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_face_normals.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_vertex_attribute_smoothing.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/per_vertex_normals.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/planarize_quad_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/point_mesh_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/point_simplex_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_dec.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_svd.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polar_svd3x3.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polygon_corners.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/polygons_to_triangles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/Orientation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/cubic_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/delaunay_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/ear_clipping.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/find_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/find_self_intersections.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/incircle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/insphere.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/lexicographic_triangulation.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/orient2d.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/orient3d.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/point_in_convex_hull.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/point_inside_convex_polygon.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/polygons_to_triangles.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/segment_segment_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/spline_winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/predicates/triangle_triangle_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/principal_curvature.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/procrustes.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project_to_line.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/project_to_line_segment.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/pseudonormal_test.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/qslim.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_grid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/quad_planarity.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ramer_douglas_peucker.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/random_dir.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/random_points_on_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_mesh_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_sphere_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/ray_triangle_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readCSV.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readDMAT.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readMESH.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readMSH.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readOBJ.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readOFF.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/readSTL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/read_triangle_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/remove_duplicate_vertices.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/remove_unreferenced.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/resolve_duplicated_faces.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rgb_to_hsv.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rigid_alignment.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rotate_vectors.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/rotation_matrix_from_directions.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sample_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/segment_segment_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sharp_edges.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/signed_angle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/signed_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/simplex_simplex_squared_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/slim.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/smooth_corner_adjacency.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/snap_points.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/solid_angle.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_map_noop.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_map_shape.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_noop.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/sparse_shape.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/EigsType.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/eigs.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/lscm.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/spectra/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/split_nonmanifold.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/squared_edge_lengths.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/super_fibonacci.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume_bounding_box.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/swept_volume_signed_distance.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/tet_tet_adjacency.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/tri_tri_intersect.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/cdt.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/module.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/refine.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/remesh_at_points.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/scaf.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle/triangulate.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle_fan.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangle_triangle_adjacency.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/triangulated_grid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/turning_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/uniformly_sample_two_manifold.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_edge_map.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_simplices.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unique_sparse_voxel_corners.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/unproject.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/upsample.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vector_area_matrix.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vertex_components.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/vertex_triangle_adjacency.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/volume.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/voronoi_mass.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/voxel_grid.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/winding_number.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeDMAT.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeMESH.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeMSH.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeOBJ.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeOFF.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writePLY.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/writeSTL.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/src/write_triangle_mesh.cpp +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/contributing.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/exporter.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/igl_docs.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/102_DrawMesh.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/104_Colors.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/105_Overlays.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/106_ViewerMenu.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/501_HarmonicParam.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/502_LSCMParam.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/503_ARAPParam.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/504_nrosy_field.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/504_vector_field.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_1.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_2.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_3.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_4.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_5.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_6.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_7.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/505_MIQ_8.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_1.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_2.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_3.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/506_FrameField_4.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/507_PolyVectorField.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/508_ConjugateField.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/509_Planarization.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/510_Integrable.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/511_PolyVectorFieldGeneral.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/602_Matlab_1.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/602_Matlab_2.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/604_Triangle.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/605_Tetgen.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/606_AmbientOcclusion.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/607_Picking.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/608_LIM.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/712_beetles.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/713_ShapeUp.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/VF.pdf +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/VF.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/arm-dqs.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/armadillo-fast.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/armadillo-marching-cubes.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/background.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/beetle-eigen-decomposition.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/big-sigcat-winding-number.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bump-k-harmonic.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bumpy-gaussian-curvature.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bunny-signed-distance.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/bunny-swept-volume.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/camelhead-laplace-equation.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-biharmonic-leq.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-gradient.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-knight-boolean.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cheburashka-multiscale-biharmonic-kernels.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cow-curvature-flow.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cube-sphere-cylinders-csg-tree.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/cube-sphere-cylinders-csg.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-arap.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-slice-color.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-sort-color.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/decimated-knight-subdivision.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/edge-collapse.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/edge-collapse.pdf +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fandisk-normals.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fertility-edge-collapse.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/fertility-principal-curvature.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/geodesicdistance.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/hand-bbw.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/hat-function.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/heat-geodesic-beetle.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/heat-geodesic-peaks.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/libigl-logo.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/max-biharmonic.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/multiple-meshes.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/octopus-biharmonic-coordinates-physics.gif +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/simplicial_complex_augmentation_framework.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/slim.png +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/streamlines.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/images/truck-facet-orientation.jpg +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/index.md +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/marching_cubes.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/plot_to_md.py +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter0.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter1.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter2.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter3.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter4.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter5.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter6.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tut-chapter7.ipynb +0 -0
- {libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/tutorial/tutorials.ipynb +0 -0
|
@@ -60,7 +60,9 @@ option(LIBIGL_CYCODEBASE "Build igl::cycodebase bindings" ON)
|
|
|
60
60
|
FetchContent_Declare(
|
|
61
61
|
libigl
|
|
62
62
|
GIT_REPOSITORY https://github.com/libigl/libigl.git
|
|
63
|
-
|
|
63
|
+
# libigl main, including igl::lazy_cage and core igl::progressive_hulls (moved
|
|
64
|
+
# to core in libigl PR #2558).
|
|
65
|
+
GIT_TAG c07f8586733378c163aae57f08c9da2ce5352fb9
|
|
64
66
|
)
|
|
65
67
|
FetchContent_MakeAvailable(libigl)
|
|
66
68
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: libigl
|
|
3
|
-
Version: 2.6.4.
|
|
3
|
+
Version: 2.6.4.dev1
|
|
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,16 @@
|
|
|
1
|
+
#include "default_types.h"
|
|
2
|
+
#include <igl/lazy_cage.h>
|
|
3
|
+
#include <nanobind/nanobind.h>
|
|
4
|
+
|
|
5
|
+
namespace nb = nanobind;
|
|
6
|
+
using namespace nb::literals;
|
|
7
|
+
|
|
8
|
+
void bind_LazyCageDistance(nb::module_ &m)
|
|
9
|
+
{
|
|
10
|
+
nb::enum_<igl::LazyCageDistance>(m, "LazyCageDistance")
|
|
11
|
+
.value("LAZY_CAGE_DISTANCE_SIGNED", igl::LAZY_CAGE_DISTANCE_SIGNED)
|
|
12
|
+
.value("LAZY_CAGE_DISTANCE_UNSIGNED", igl::LAZY_CAGE_DISTANCE_UNSIGNED)
|
|
13
|
+
.value("NUM_LAZY_CAGE_DISTANCE", igl::NUM_LAZY_CAGE_DISTANCE)
|
|
14
|
+
.export_values()
|
|
15
|
+
;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#include "default_types.h"
|
|
2
|
+
#include <igl/lazy_cage.h>
|
|
3
|
+
#include <nanobind/nanobind.h>
|
|
4
|
+
|
|
5
|
+
namespace nb = nanobind;
|
|
6
|
+
using namespace nb::literals;
|
|
7
|
+
|
|
8
|
+
void bind_LazyCageGridMode(nb::module_ &m)
|
|
9
|
+
{
|
|
10
|
+
nb::enum_<igl::LazyCageGridMode>(m, "LazyCageGridMode")
|
|
11
|
+
.value("LAZY_CAGE_GRID_DENSE", igl::LAZY_CAGE_GRID_DENSE)
|
|
12
|
+
.value("LAZY_CAGE_GRID_SPARSE", igl::LAZY_CAGE_GRID_SPARSE)
|
|
13
|
+
.value("NUM_LAZY_CAGE_GRID_MODE", igl::NUM_LAZY_CAGE_GRID_MODE)
|
|
14
|
+
.export_values()
|
|
15
|
+
;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#include "default_types.h"
|
|
2
|
+
#include <igl/lazy_cage.h>
|
|
3
|
+
#include <nanobind/nanobind.h>
|
|
4
|
+
|
|
5
|
+
namespace nb = nanobind;
|
|
6
|
+
using namespace nb::literals;
|
|
7
|
+
|
|
8
|
+
void bind_LazyCageMetric(nb::module_ &m)
|
|
9
|
+
{
|
|
10
|
+
nb::enum_<igl::LazyCageMetric>(m, "LazyCageMetric")
|
|
11
|
+
.value("LAZY_CAGE_METRIC_SIGMA", igl::LAZY_CAGE_METRIC_SIGMA)
|
|
12
|
+
.value("LAZY_CAGE_METRIC_VOLUME", igl::LAZY_CAGE_METRIC_VOLUME)
|
|
13
|
+
.value("LAZY_CAGE_METRIC_SURFACE_AREA", igl::LAZY_CAGE_METRIC_SURFACE_AREA)
|
|
14
|
+
.value("NUM_LAZY_CAGE_METRIC", igl::NUM_LAZY_CAGE_METRIC)
|
|
15
|
+
.export_values()
|
|
16
|
+
;
|
|
17
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#include "default_types.h"
|
|
2
|
+
#include <igl/lazy_cage.h>
|
|
3
|
+
#include <nanobind/nanobind.h>
|
|
4
|
+
#include <nanobind/ndarray.h>
|
|
5
|
+
#include <nanobind/eigen/dense.h>
|
|
6
|
+
#include <nanobind/stl/tuple.h>
|
|
7
|
+
|
|
8
|
+
namespace nb = nanobind;
|
|
9
|
+
using namespace nb::literals;
|
|
10
|
+
|
|
11
|
+
namespace pyigl
|
|
12
|
+
{
|
|
13
|
+
// Simple overload: {shortest edge, midpoint} decimation, the sigma metric, the
|
|
14
|
+
// dense grid, and the signed-distance field. grid_size <= 0 picks a heuristic.
|
|
15
|
+
auto lazy_cage(
|
|
16
|
+
const nb::DRef<const Eigen::MatrixXN> &V,
|
|
17
|
+
const nb::DRef<const Eigen::MatrixXI> &F,
|
|
18
|
+
const int num_faces,
|
|
19
|
+
const int grid_size)
|
|
20
|
+
{
|
|
21
|
+
const Eigen::MatrixXd Vd = V;
|
|
22
|
+
const Eigen::MatrixXi Fi = F.cast<int>();
|
|
23
|
+
Eigen::MatrixXd CV;
|
|
24
|
+
Eigen::MatrixXi CF;
|
|
25
|
+
double sigma;
|
|
26
|
+
const bool success = igl::lazy_cage(Vd, Fi, num_faces, grid_size, CV, CF, sigma);
|
|
27
|
+
return std::make_tuple(
|
|
28
|
+
success, Eigen::MatrixXN(CV), Eigen::MatrixXI(CF.cast<Integer>()), sigma);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Full overload exposing every knob.
|
|
32
|
+
auto lazy_cage_full(
|
|
33
|
+
const nb::DRef<const Eigen::MatrixXN> &V,
|
|
34
|
+
const nb::DRef<const Eigen::MatrixXI> &F,
|
|
35
|
+
const int num_faces,
|
|
36
|
+
const int grid_size,
|
|
37
|
+
const double max_sigma,
|
|
38
|
+
const int num_iters,
|
|
39
|
+
const bool use_qslim,
|
|
40
|
+
const igl::LazyCageMetric metric,
|
|
41
|
+
const igl::LazyCageGridMode grid_mode,
|
|
42
|
+
const igl::LazyCageDistance distance)
|
|
43
|
+
{
|
|
44
|
+
const Eigen::MatrixXd Vd = V;
|
|
45
|
+
const Eigen::MatrixXi Fi = F.cast<int>();
|
|
46
|
+
Eigen::MatrixXd CV;
|
|
47
|
+
Eigen::MatrixXi CF;
|
|
48
|
+
double sigma;
|
|
49
|
+
const bool success = igl::lazy_cage(
|
|
50
|
+
Vd, Fi, num_faces, grid_size, max_sigma, num_iters, use_qslim,
|
|
51
|
+
metric, grid_mode, distance, CV, CF, sigma);
|
|
52
|
+
return std::make_tuple(
|
|
53
|
+
success, Eigen::MatrixXN(CV), Eigen::MatrixXI(CF.cast<Integer>()), sigma);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void bind_lazy_cage(nb::module_ &m)
|
|
58
|
+
{
|
|
59
|
+
m.def(
|
|
60
|
+
"lazy_cage_default_grid_size",
|
|
61
|
+
&igl::lazy_cage_default_grid_size,
|
|
62
|
+
"num_faces"_a,
|
|
63
|
+
R"(Heuristic isosurfacing grid resolution (cells across the largest side) for a
|
|
64
|
+
lazy cage with num_faces faces.
|
|
65
|
+
|
|
66
|
+
@param[in] num_faces desired number of cage faces
|
|
67
|
+
@return grid resolution)");
|
|
68
|
+
|
|
69
|
+
m.def(
|
|
70
|
+
"lazy_cage",
|
|
71
|
+
&pyigl::lazy_cage,
|
|
72
|
+
"V"_a,
|
|
73
|
+
"F"_a,
|
|
74
|
+
"num_faces"_a,
|
|
75
|
+
"grid_size"_a = 0,
|
|
76
|
+
R"(Compute a "lazy cage" enclosing a closed input mesh: offset the surface and
|
|
77
|
+
decimate it down to num_faces while it stays a valid cage (encloses the input,
|
|
78
|
+
free of self-intersections, and not intersecting the input surface).
|
|
79
|
+
|
|
80
|
+
Uses the default settings ({shortest edge, midpoint} decimation, the sigma
|
|
81
|
+
metric, the dense grid, and the signed-distance field).
|
|
82
|
+
|
|
83
|
+
@param[in] V #V by 3 list of input vertex positions (closed, manifold)
|
|
84
|
+
@param[in] F #F by 3 list of input triangle indices into V
|
|
85
|
+
@param[in] num_faces desired number of faces in the cage
|
|
86
|
+
@param[in] grid_size isosurfacing resolution (cells along the largest side);
|
|
87
|
+
<= 0 uses lazy_cage_default_grid_size(num_faces)
|
|
88
|
+
@param[out] success true if a valid cage with num_faces faces was found
|
|
89
|
+
@param[out] CV #CV by 3 list of cage vertex positions
|
|
90
|
+
@param[out] CF #CF by 3 list of cage triangle indices into CV
|
|
91
|
+
@param[out] sigma the offset distance used to build the returned cage)");
|
|
92
|
+
|
|
93
|
+
m.def(
|
|
94
|
+
"lazy_cage",
|
|
95
|
+
&pyigl::lazy_cage_full,
|
|
96
|
+
"V"_a,
|
|
97
|
+
"F"_a,
|
|
98
|
+
"num_faces"_a,
|
|
99
|
+
"grid_size"_a,
|
|
100
|
+
"max_sigma"_a,
|
|
101
|
+
"num_iters"_a = 12,
|
|
102
|
+
"use_qslim"_a = false,
|
|
103
|
+
"metric"_a = igl::LAZY_CAGE_METRIC_SIGMA,
|
|
104
|
+
"grid_mode"_a = igl::LAZY_CAGE_GRID_DENSE,
|
|
105
|
+
"distance"_a = igl::LAZY_CAGE_DISTANCE_SIGNED,
|
|
106
|
+
R"(Compute a "lazy cage" with full control over the offset-and-decimate search.
|
|
107
|
+
|
|
108
|
+
@param[in] V #V by 3 list of input vertex positions (closed, manifold)
|
|
109
|
+
@param[in] F #F by 3 list of input triangle indices into V
|
|
110
|
+
@param[in] num_faces desired number of faces in the cage
|
|
111
|
+
@param[in] grid_size isosurfacing resolution; <= 0 uses the heuristic
|
|
112
|
+
@param[in] max_sigma upper bound on the searched offset distance
|
|
113
|
+
@param[in] num_iters number of bisection iterations on sigma
|
|
114
|
+
@param[in] use_qslim decimate with igl.qslim (quadric error) instead of
|
|
115
|
+
{shortest edge, midpoint}
|
|
116
|
+
@param[in] metric objective minimized when choosing sigma (LazyCageMetric)
|
|
117
|
+
@param[in] grid_mode dense vs. sparse isosurface extraction (LazyCageGridMode)
|
|
118
|
+
@param[in] distance signed vs. unsigned distance field (LazyCageDistance)
|
|
119
|
+
@param[out] success true if a valid cage with num_faces faces was found
|
|
120
|
+
@param[out] CV #CV by 3 list of cage vertex positions
|
|
121
|
+
@param[out] CF #CF by 3 list of cage triangle indices into CV
|
|
122
|
+
@param[out] sigma the offset distance used to build the returned cage)");
|
|
123
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#include "default_types.h"
|
|
2
|
+
#include <igl/progressive_hulls.h>
|
|
3
|
+
#include <nanobind/nanobind.h>
|
|
4
|
+
#include <nanobind/ndarray.h>
|
|
5
|
+
#include <nanobind/eigen/dense.h>
|
|
6
|
+
#include <nanobind/stl/tuple.h>
|
|
7
|
+
|
|
8
|
+
namespace nb = nanobind;
|
|
9
|
+
using namespace nb::literals;
|
|
10
|
+
|
|
11
|
+
namespace pyigl
|
|
12
|
+
{
|
|
13
|
+
auto progressive_hulls(
|
|
14
|
+
const nb::DRef<const Eigen::MatrixXN> &V,
|
|
15
|
+
const nb::DRef<const Eigen::MatrixXI> &F,
|
|
16
|
+
const size_t max_m,
|
|
17
|
+
const bool block_intersections)
|
|
18
|
+
{
|
|
19
|
+
// igl::progressive_hulls takes concrete Eigen::MatrixXd / int32 MatrixXi.
|
|
20
|
+
const Eigen::MatrixXd Vd = V;
|
|
21
|
+
const Eigen::MatrixXi Fi = F.cast<int>();
|
|
22
|
+
Eigen::MatrixXd U;
|
|
23
|
+
Eigen::MatrixXi G;
|
|
24
|
+
Eigen::VectorXi J;
|
|
25
|
+
const bool success =
|
|
26
|
+
igl::progressive_hulls(Vd, Fi, max_m, block_intersections, U, G, J);
|
|
27
|
+
return std::make_tuple(
|
|
28
|
+
success,
|
|
29
|
+
Eigen::MatrixXN(U),
|
|
30
|
+
Eigen::MatrixXI(G.cast<Integer>()),
|
|
31
|
+
Eigen::VectorXI(J.cast<Integer>()));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void bind_progressive_hulls(nb::module_ &m)
|
|
36
|
+
{
|
|
37
|
+
m.def(
|
|
38
|
+
"progressive_hulls",
|
|
39
|
+
&pyigl::progressive_hulls,
|
|
40
|
+
"V"_a,
|
|
41
|
+
"F"_a,
|
|
42
|
+
"max_m"_a,
|
|
43
|
+
"block_intersections"_a = false,
|
|
44
|
+
R"(Collapse edges until the desired number of faces is achieved, placing each new
|
|
45
|
+
vertex outside all previous meshes ("progressive hulls" from Sander et al.,
|
|
46
|
+
"Silhouette clipping" 2000). The result is a nested, enclosing coarsening of the
|
|
47
|
+
input.
|
|
48
|
+
|
|
49
|
+
Assumes (V,F) is a closed manifold mesh.
|
|
50
|
+
|
|
51
|
+
@param[in] V #V by 3 list of vertex positions
|
|
52
|
+
@param[in] F #F by 3 list of triangle indices into V
|
|
53
|
+
@param[in] max_m desired number of output faces
|
|
54
|
+
@param[in] block_intersections whether to refuse collapses that would introduce
|
|
55
|
+
self-intersections
|
|
56
|
+
@param[out] success true if max_m was reached (otherwise #G > max_m)
|
|
57
|
+
@param[out] U #U by 3 list of output vertex positions
|
|
58
|
+
@param[out] G #G by 3 list of output triangle indices into U
|
|
59
|
+
@param[out] J #G list of indices into F of birth faces)");
|
|
60
|
+
}
|
|
@@ -426,6 +426,53 @@ def test_decimate():
|
|
|
426
426
|
dV,dF,J,I = igl.decimate(V,F)
|
|
427
427
|
dV,dF,J,I = igl.qslim(V,F)
|
|
428
428
|
|
|
429
|
+
def test_progressive_hulls():
|
|
430
|
+
# a closed manifold with headroom to coarsen
|
|
431
|
+
V,F = igl.upsample(*igl.icosahedron(), 2) # 162 V, 320 F
|
|
432
|
+
success, U, G, J = igl.progressive_hulls(V, F, max_m=40)
|
|
433
|
+
assert success
|
|
434
|
+
assert U.shape[1] == 3
|
|
435
|
+
assert G.shape[1] == 3
|
|
436
|
+
assert G.shape[0] == 40
|
|
437
|
+
assert G.max() < U.shape[0]
|
|
438
|
+
assert J.shape[0] == G.shape[0]
|
|
439
|
+
assert J.max() < F.shape[0]
|
|
440
|
+
# a progressive hull encloses the input (loose bbox check)
|
|
441
|
+
assert (U.min(axis=0) <= V.min(axis=0) + 1e-9).all()
|
|
442
|
+
assert (U.max(axis=0) >= V.max(axis=0) - 1e-9).all()
|
|
443
|
+
# the intersection-blocking variant also runs
|
|
444
|
+
success2, U2, G2, J2 = igl.progressive_hulls(V, F, max_m=40, block_intersections=True)
|
|
445
|
+
assert G2.shape[1] == 3
|
|
446
|
+
|
|
447
|
+
def test_lazy_cage():
|
|
448
|
+
V,F = igl.icosahedron()
|
|
449
|
+
# helper + enum smoke
|
|
450
|
+
assert igl.lazy_cage_default_grid_size(100) > 0
|
|
451
|
+
assert igl.LazyCageMetric.LAZY_CAGE_METRIC_SIGMA.value == 0
|
|
452
|
+
|
|
453
|
+
# simple overload: default {shortest edge, midpoint} / sigma / dense / signed
|
|
454
|
+
success, CV, CF, sigma = igl.lazy_cage(V, F, num_faces=50, grid_size=32)
|
|
455
|
+
assert success
|
|
456
|
+
assert CV.shape[1] == 3
|
|
457
|
+
assert CF.shape[1] == 3
|
|
458
|
+
assert CF.shape[0] == 50 # exactly num_faces when successful
|
|
459
|
+
assert CF.max() < CV.shape[0]
|
|
460
|
+
assert sigma > 0.0
|
|
461
|
+
# the cage encloses the input mesh (loose bbox check)
|
|
462
|
+
assert (CV.min(axis=0) <= V.min(axis=0) + 1e-9).all()
|
|
463
|
+
assert (CV.max(axis=0) >= V.max(axis=0) - 1e-9).all()
|
|
464
|
+
|
|
465
|
+
# full overload: exercise the enum-driven knobs (unsigned distance here)
|
|
466
|
+
diag = np.linalg.norm(V.max(axis=0) - V.min(axis=0))
|
|
467
|
+
success_f, CV_f, CF_f, sigma_f = igl.lazy_cage(
|
|
468
|
+
V, F, 50, 32, 0.5 * diag,
|
|
469
|
+
num_iters=12, use_qslim=False,
|
|
470
|
+
metric=igl.LazyCageMetric.LAZY_CAGE_METRIC_VOLUME,
|
|
471
|
+
grid_mode=igl.LazyCageGridMode.LAZY_CAGE_GRID_DENSE,
|
|
472
|
+
distance=igl.LazyCageDistance.LAZY_CAGE_DISTANCE_UNSIGNED)
|
|
473
|
+
assert CF_f.shape[1] == 3
|
|
474
|
+
assert success_f
|
|
475
|
+
|
|
429
476
|
def test_parameterization():
|
|
430
477
|
V,Q,E = igl.quad_grid(3,3);
|
|
431
478
|
V,F = igl.triangulated_grid(3,3);
|
|
@@ -533,9 +580,8 @@ def test_copyleft():
|
|
|
533
580
|
T = np.array([[0,1,2,3]],dtype=np.int64)
|
|
534
581
|
F,_,_ = igl.boundary_facets(T)
|
|
535
582
|
V,F = igl.loop(V,F)
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
583
|
+
# progressive_hulls moved from igl::copyleft to core (libigl #2558); it is
|
|
584
|
+
# now igl.progressive_hulls, covered by test_progressive_hulls.
|
|
539
585
|
|
|
540
586
|
def test_cgal():
|
|
541
587
|
# tetrahedron
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#include "default_types.h"
|
|
2
|
-
#include <igl/copyleft/progressive_hulls.h>
|
|
3
|
-
#include <nanobind/nanobind.h>
|
|
4
|
-
#include <nanobind/eigen/dense.h>
|
|
5
|
-
#include <nanobind/stl/tuple.h>
|
|
6
|
-
|
|
7
|
-
namespace nb = nanobind;
|
|
8
|
-
using namespace nb::literals;
|
|
9
|
-
|
|
10
|
-
namespace pyigl
|
|
11
|
-
{
|
|
12
|
-
// igl::decimate is a nightmare of poor templating. Suffer copies.
|
|
13
|
-
auto progressive_hulls(
|
|
14
|
-
const Eigen::MatrixXd &V,
|
|
15
|
-
const Eigen::MatrixXi &F,
|
|
16
|
-
const int max_m)
|
|
17
|
-
{
|
|
18
|
-
Eigen::MatrixXd U;
|
|
19
|
-
Eigen::MatrixXi G;
|
|
20
|
-
Eigen::VectorXi J;
|
|
21
|
-
igl::copyleft::progressive_hulls(V,F,max_m,U,G,J);
|
|
22
|
-
return std::make_tuple(
|
|
23
|
-
U.cast<Numeric>().eval(), // If Numeric==double will this incur a copy?
|
|
24
|
-
G.cast<Integer>().eval(),
|
|
25
|
-
J.cast<Integer>().eval());
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
void bind_progressive_hulls(nb::module_ &m)
|
|
29
|
-
{
|
|
30
|
-
m.def(
|
|
31
|
-
"progressive_hulls",
|
|
32
|
-
&pyigl::progressive_hulls,
|
|
33
|
-
"V"_a, "F"_a, "max_m"_a=0,
|
|
34
|
-
R"(Performs progressive hull simplification on a mesh, collapsing edges until a target number of faces is reached.
|
|
35
|
-
|
|
36
|
-
@param[in] V #V by dim list of vertex positions
|
|
37
|
-
@param[in] F #F by 3 list of face indices into V
|
|
38
|
-
@param[in] max_m Target number of output faces
|
|
39
|
-
@param[out] U Output vertex positions
|
|
40
|
-
@param[out] G Output face indices into U
|
|
41
|
-
@param[out] J Indices into F indicating the birth face for each face in G)");
|
|
42
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/opengl2_draw_skeleton_vector_graphics.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libigl-2.6.4.dev0 → libigl-2.6.4.dev1}/attic/skip/qslim_optimal_collapse_edge_callbacks.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|