Spaces:
Runtime error
Runtime error
eliphatfs
commited on
Commit
·
b3bdbc8
1
Parent(s):
1faee00
Fix.
Browse files- misc_utils.py +6 -2
misc_utils.py
CHANGED
@@ -33,7 +33,11 @@ def model_to_pc(mesh: trimesh.Trimesh, n_sample_points=10000):
|
|
33 |
rgba = mesh.visual.face_colors[face_idx]
|
34 |
elif isinstance(mesh.visual, trimesh.visual.TextureVisuals):
|
35 |
bc = trimesh.proximity.points_to_barycentric(mesh.triangles[face_idx], pcd)
|
36 |
-
uv
|
|
|
|
|
|
|
|
|
37 |
material = mesh.visual.material
|
38 |
if hasattr(material, 'materials'):
|
39 |
if len(material.materials) == 0:
|
@@ -79,7 +83,7 @@ def trimesh_to_pc(scene_or_mesh):
|
|
79 |
geometry = geometry.apply_transform(transform)
|
80 |
meshes.append(model_to_pc(geometry, 10000 // len(scene_or_mesh.geometry)))
|
81 |
if not len(meshes):
|
82 |
-
|
83 |
return numpy.concatenate(meshes)
|
84 |
else:
|
85 |
assert isinstance(scene_or_mesh, trimesh.Trimesh)
|
|
|
33 |
rgba = mesh.visual.face_colors[face_idx]
|
34 |
elif isinstance(mesh.visual, trimesh.visual.TextureVisuals):
|
35 |
bc = trimesh.proximity.points_to_barycentric(mesh.triangles[face_idx], pcd)
|
36 |
+
if mesh.visual.uv is None or len(mesh.visual.uv) < mesh.faces[face_idx].max():
|
37 |
+
uv = numpy.zeros([len(bc), 2])
|
38 |
+
st.warning("Invalid UV, filling with zeroes")
|
39 |
+
else:
|
40 |
+
uv = numpy.einsum('ntc,nt->nc', mesh.visual.uv[mesh.faces[face_idx]], bc)
|
41 |
material = mesh.visual.material
|
42 |
if hasattr(material, 'materials'):
|
43 |
if len(material.materials) == 0:
|
|
|
83 |
geometry = geometry.apply_transform(transform)
|
84 |
meshes.append(model_to_pc(geometry, 10000 // len(scene_or_mesh.geometry)))
|
85 |
if not len(meshes):
|
86 |
+
raise ValueError("Unsupported mesh object: no triangles found")
|
87 |
return numpy.concatenate(meshes)
|
88 |
else:
|
89 |
assert isinstance(scene_or_mesh, trimesh.Trimesh)
|