diff --git a/CMakeLists.txt b/CMakeLists.txt index a5b9251f..e6d863d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ option(LIBIGL_RESTRICTED_TRIANGLE "Build target igl_restricted::triangle" ON) FetchContent_Declare( libigl GIT_REPOSITORY https://github.com/libigl/libigl.git - GIT_TAG 788871103938ce92112714d11ea491e8e6b4d972 + GIT_TAG v2.6.0 ) FetchContent_MakeAvailable(libigl) diff --git a/pyproject.toml b/pyproject.toml index d399c9e6..b34f6c20 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ build-backend = "scikit_build_core.build" [project] name = "libigl" -version = "2.5.4dev" +version = "2.6.0" description = "libigl: A simple C++ geometry processing library" readme = "README.md" requires-python = ">=3.8" diff --git a/src/internal_angles.cpp b/src/internal_angles.cpp index cbddb5c7..4f3145b2 100644 --- a/src/internal_angles.cpp +++ b/src/internal_angles.cpp @@ -25,7 +25,7 @@ void bind_internal_angles(nb::module_ &m) "F"_a, R"(Compute internal angles for all tets of a given tet mesh (V,T). @param[in] V #V by dim eigen Matrix of mesh vertex nD positions -@param[in] T #F by poly-size eigen Matrix of face (triangle) indices +@param[in] F #F by poly-size eigen Matrix of face (triangle) indices @param[out] K #F by poly-size eigen Matrix of internal angles for triangles, columns correspond to edges [1,2],[2,0],[0,1])"); } diff --git a/test_sparse.py b/test_sparse.py deleted file mode 100644 index 74074d80..00000000 --- a/test_sparse.py +++ /dev/null @@ -1,36 +0,0 @@ -import igl -import time - -V, F = igl.icosahedron() -V, F = igl.upsample(V, F) -V, F = igl.upsample(V, F) -V, F = igl.upsample(V, F) -V, F = igl.upsample(V, F) -V, F = igl.upsample(V, F) -V, F = igl.upsample(V, F) - -max_iters = 6 -for i in range(max_iters): - A = igl.adjacency_matrix(F) - n = A.shape[0] - - start = time.time() - dims = igl.sparse_shape(A) - t_shape = time.time() - start - - start = time.time() - A2 = igl.sparse_noop(A) - t_noop = time.time() - start - - start = time.time() - dims = igl.sparse_map_shape(A) - t_map_shape = time.time() - start - - start = time.time() - A2 = igl.sparse_map_noop(A) - t_map_noop = time.time() - start - - print(f"{n} {t_shape:.6g} {t_noop:.6g} {t_map_shape:.6g} {t_map_noop:.6g}") - - if i != max_iters-1: - V, F = igl.upsample(V, F) diff --git a/tests/test_all.py b/tests/test_all.py index 1dd1a13e..4dfd55eb 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -313,6 +313,7 @@ def test_boundary_loop(): F = F[1:-1,:] L_all = igl.boundary_loop_all(F) L = igl.boundary_loop(F) + UV = igl.map_vertices_to_circle(V,L) def test_voxel(): V,_,_ = single_tet() @@ -538,6 +539,7 @@ def test_misc(): BV,BF = igl.bounding_box(V,pad=1.0) R,C,B = igl.circumradius(V,F) R = igl.inradius(V,F) + K = igl.internal_angles(V,F) _,E,EMAP,_,_ = igl.unique_edge_map(F) L = igl.crouzeix_raviart_cotmatrix(V,F,E,EMAP) M = igl.crouzeix_raviart_massmatrix(V,F,E,EMAP) @@ -549,5 +551,8 @@ def test_misc(): L = igl.edge_lengths(V,T) A = igl.face_areas(V,T) theta, cos_theta = igl.dihedral_angles_intrinsic(L,A) + D = igl.all_pairs_distances(V,V,squared=False) + D = igl.all_pairs_distances(V,V,squared=True) +