From c9b21668e2d785061ff8b1e976545c8075102c2e Mon Sep 17 00:00:00 2001 From: HuiwenShi Date: Wed, 24 Sep 2025 11:35:53 +0800 Subject: [PATCH] Create is_watertight.py --- hy3dshape/tools/evaluation/is_watertight.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 hy3dshape/tools/evaluation/is_watertight.py diff --git a/hy3dshape/tools/evaluation/is_watertight.py b/hy3dshape/tools/evaluation/is_watertight.py new file mode 100644 index 0000000..3508bc1 --- /dev/null +++ b/hy3dshape/tools/evaluation/is_watertight.py @@ -0,0 +1,13 @@ +import igl # pip install libigl +import numpy as np +import trimesh + +mesh_file = 'your_mesh.glb' +mesh = trimesh.load(mesh_file, force='mesh', process=False) +F = np.asarray(mesh.faces) +bnd_loops = igl.boundary_loop(F) + +if len(bnd_loops) == 0 and igl.is_edge_manifold(F) and igl.is_vertex_manifold(F).all(): + print("判断网格是水密的封闭流形") +else: + print("非水密网格")