fix pts scale, save ply

Summary:
Fix:
* Scaling of point clouds for scalars
* save_ply compatible cat

Reviewed By: nikhilaravi

Differential Revision: D22298609

fbshipit-source-id: abe94a5b64baf325587202d20adfc36912cc1478
This commit is contained in:
Georgia Gkioxari
2020-07-03 10:19:58 -07:00
committed by Facebook GitHub Bot
parent 275ddade66
commit 2f0fd60186
4 changed files with 41 additions and 27 deletions

View File

@@ -783,7 +783,11 @@ def save_ply(
decimal_places: Number of decimal places for saving.
"""
verts_normals = torch.FloatTensor([]) if verts_normals is None else verts_normals
verts_normals = (
torch.tensor([], dtype=torch.float32, device=verts.device)
if verts_normals is None
else verts_normals
)
faces = torch.LongTensor([]) if faces is None else faces
if len(verts) and not (verts.dim() == 2 and verts.size(1) == 3):

View File

@@ -511,7 +511,6 @@ class Pointclouds(object):
Returns:
1D tensor of indices.
"""
self._compute_packed()
if self._padded_to_packed_idx is not None:
return self._padded_to_packed_idx
if self._N == 0:
@@ -520,7 +519,7 @@ class Pointclouds(object):
self._padded_to_packed_idx = torch.cat(
[
torch.arange(v, dtype=torch.int64, device=self.device) + i * self._P
for (i, v) in enumerate(self._num_points_per_cloud)
for (i, v) in enumerate(self.num_points_per_cloud())
],
dim=0,
)
@@ -797,7 +796,7 @@ class Pointclouds(object):
self.
"""
if not torch.is_tensor(scale):
scale = torch.full(len(self), scale)
scale = torch.full((len(self),), scale, device=self.device)
new_points_list = []
points_list = self.points_list()
for i, old_points in enumerate(points_list):