diff --git a/docarray/document/mixins/mesh.py b/docarray/document/mixins/mesh.py index 2ae34328656..4c9a7fbe51e 100644 --- a/docarray/document/mixins/mesh.py +++ b/docarray/document/mixins/mesh.py @@ -1,5 +1,7 @@ from typing import TYPE_CHECKING +import numpy as np + if TYPE_CHECKING: from ...typing import T @@ -31,10 +33,10 @@ def load_uri_to_point_cloud_tensor( scene = loader(self.uri, force='scene') for geo in scene.geometry.values(): geo: trimesh.Trimesh - self.chunks.append(Document(tensor=geo.sample(samples))) + self.chunks.append(Document(tensor=np.array(geo.sample(samples)))) else: # combine a scene into a single mesh mesh = loader(self.uri, force='mesh') - self.tensor = mesh.sample(samples) + self.tensor = np.array(mesh.sample(samples)) return self diff --git a/tests/unit/document/test_converters.py b/tests/unit/document/test_converters.py index e8e5ad2d364..e957ea06e7f 100644 --- a/tests/unit/document/test_converters.py +++ b/tests/unit/document/test_converters.py @@ -247,6 +247,7 @@ def test_glb_converters(uri, chunk_num): doc = Document(uri=uri) doc.load_uri_to_point_cloud_tensor(2000) assert doc.tensor.shape == (2000, 3) + assert isinstance(doc.tensor, np.ndarray) doc.load_uri_to_point_cloud_tensor(2000, as_chunks=True) assert len(doc.chunks) == chunk_num