def concatenate_cameras()

in tools/camera_utils.py [0:0]


def concatenate_cameras(cameras_list: List[CamerasBase]):
    """
    Make a new batch of cameras by concatenating a list of input
    PyTorch3D camera batches `cameras_list`.
    """
    for c in cameras_list:
        assert isinstance(
            c, pt3d.renderer.PerspectiveCameras
        ), "This only works for PerspectiveCameras!"
    cameras_cat = pt3d.renderer.PerspectiveCameras(
        **{
            k: torch.cat([getattr(c, k) for c in cameras_list], dim=0)
            for k in ("focal_length", "principal_point", "R", "T", "K")
            if all(hasattr(c, k) and (getattr(c, k) is not None) for c in cameras_list)
        },
        device=cameras_list[0].device,
    )
    return cameras_cat