(rays: T.List['Ray'], dim: int)
| 1090 | |
| 1091 | @staticmethod |
| 1092 | def cat(rays: T.List['Ray'], dim: int) -> 'Ray': |
| 1093 | out_dict = dict() |
| 1094 | for name in ['origins_w', 'directions_w']: |
| 1095 | arr = [getattr(p, name, None) for p in rays] |
| 1096 | if None in arr: |
| 1097 | out_dict[name] = None |
| 1098 | else: |
| 1099 | out_dict[name] = torch.cat(arr, dim=dim) |
| 1100 | return Ray(**out_dict) |
| 1101 | |
| 1102 | def masked_fill(self, mask: torch.Tensor, ray_src: 'Ray'): |
| 1103 | self.origins_w[mask] = ray_src.origins_w[mask] |