From aab95575a64dc43b8e24f49976cc263741efa47a Mon Sep 17 00:00:00 2001 From: Krzysztof Chalupka Date: Mon, 11 Apr 2022 16:27:53 -0700 Subject: [PATCH] Submesh 0/n: Default to empty Meshes Summary: The default behavior of Meshes (with verts=None, faces=None) throws an exception: ``` meshes = Meshes() > ValueError: Verts and Faces must be either a list or a tensor with shape (batch_size, N, 3) where N is either the maximum number of verts or faces respectively. ``` Instead, let's default to an empty mesh, following e.g. PyTorch: ``` empty_tensor = torch.FloatTensor() > torch.tensor([]) ``` this change is backwards-compatible (you can still init with verts=[], faces=[]). Reviewed By: bottler, nikhilaravi Differential Revision: D35443453 fbshipit-source-id: d638a8fef49a089bf0da6dd2201727b94ceb21ec --- pytorch3d/structures/meshes.py | 4 ++-- tests/test_meshes.py | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pytorch3d/structures/meshes.py b/pytorch3d/structures/meshes.py index 027a60b1..0cc36dcd 100644 --- a/pytorch3d/structures/meshes.py +++ b/pytorch3d/structures/meshes.py @@ -214,8 +214,8 @@ class Meshes: def __init__( self, - verts=None, - faces=None, + verts, + faces, textures=None, *, verts_normals=None, diff --git a/tests/test_meshes.py b/tests/test_meshes.py index c61f3c4e..a0e940df 100644 --- a/tests/test_meshes.py +++ b/tests/test_meshes.py @@ -265,9 +265,7 @@ class TestMeshes(TestCaseMixin, unittest.TestCase): self.assertTrue(mesh_to_edges_packed_first_idx[0] == 0) def test_allempty(self): - verts_list = [] - faces_list = [] - mesh = Meshes(verts=verts_list, faces=faces_list) + mesh = Meshes(verts=[], faces=[]) self.assertEqual(len(mesh), 0) self.assertEqual(mesh.verts_padded().shape[0], 0) self.assertEqual(mesh.faces_padded().shape[0], 0)