docstr: Tests plotting of all supported structures using plot_scene.
docstr_tok: ["Tests","plotting","of","all","supported","structures","using","plot_scene","."]
code: def test_plot_scene(
      self,
      B: int = 3,
      n_rays: int = 128,
      n_pts_per_ray: int = 32,
      n_verts: int = 32,
      n_edges: int = 64,
      n_pts: int = 256,
  ):
      """
      Tests plotting of all supported structures using plot_scene.
      """
      for device in ["cpu", "cuda:0"]:
          plot_scene(
              {
                  "scene": {
                      "ray_bundle": RayBundle(
                          origins=torch.randn(
                              B, n_rays, 3, device=device
                          ),
                          xys=torch.randn(B, n_rays, 2, device=device),
                          directions=torch.randn(
                              B, n_rays, 3, device=device
                          ),
                          lengths=torch.randn(
                              B, n_rays, n_pts_per_ray, device=device
                          ),
                      ),
                      "heterogeneous_ray_bundle": HeterogeneousRayBundle(
                          origins=torch.randn(
                              B * n_rays, 3, device=device
                          ),
                          xys=torch.randn(B * n_rays, 2, device=device),
                          directions=torch.randn(
                              B * n_rays, 3, device=device
                          ),
                          lengths=torch.randn(
                              B * n_rays, n_pts_per_ray, device=device
                          ),
                          camera_ids=torch.randint(
                              low=0,
                              high=B,
                              size=(B * n_rays,),
                              device=device,
                          ),
                      ),
                      "camera": PerspectiveCameras(
                          R=random_rotations(B, device=device),
                          T=torch.randn(B, 3, device=device),
                      ),
                      "mesh": Meshes(
                          verts=torch.randn(
                              B, n_verts, 3, device=device
                          ),
                          faces=torch.randint(
                              low=0,
                              high=n_verts,
                              size=(B, n_edges, 3),
                              device=device,
                          ),
                      ),
                      "point_clouds": Pointclouds(
                          points=torch.randn(
                              B, n_pts, 3, device=device
                          ),
                      ),
                  }
              }
          )
  
file_path: pytorch3d/tests/test_vis.py
imports: import unittest
  import torch
  from pytorch3d.renderer import HeterogeneousRayBundle, PerspectiveCameras, RayBundle
  from pytorch3d.structures import Meshes, Pointclouds
  from pytorch3d.transforms import random_rotations
  from pytorch3d.vis import get_camera_wireframe, plot_batch_individually, plot_scene, texturesuv_image_PIL
label_desc: Use image node_id 1 for calling the TestPlotlyVis obj's underlying member method code with example usage: obj.test_plot_scene(B, n_rays, n_pts_per_ray, n_verts, n_edges, n_pts) without return types