Skip to content

Commit

Permalink
Submesh 0/n: Default to empty Meshes
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Krzysztof Chalupka authored and facebook-github-bot committed Apr 11, 2022
1 parent 67fff95 commit aab9557
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 5 deletions.
4 changes: 2 additions & 2 deletions pytorch3d/structures/meshes.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,8 @@ class Meshes:

def __init__(
self,
verts=None,
faces=None,
verts,
faces,
textures=None,
*,
verts_normals=None,
Expand Down
4 changes: 1 addition & 3 deletions tests/test_meshes.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,7 @@ def test_simple_random_meshes(self):
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)
Expand Down

0 comments on commit aab9557

Please sign in to comment.