code: def _is_heterogeneous_ray_bundle(
      struct: Union[List[Struct], Struct]
  ) -> bool:
      """
      Args:
          struct :object to test
      Returns:
          True if something is a HeterogeneousRayBundle or ImplicitronRayBundle
          and cant be reduced to RayBundle else False
      """
      # pyre-ignore[16]
      return (
          hasattr(struct, "camera_counts")
          and struct.camera_counts is not None
      )
  
imports: import warnings
  from typing import Dict, List, NamedTuple, Optional, Tuple, Union
  import plotly.graph_objects
  import torch
  from plotly.subplots import make_subplots
  from pytorch3d.renderer import HeterogeneousRayBundle, ray_bundle_to_ray_points, RayBundle, TexturesAtlas, TexturesVertex
  from pytorch3d.renderer.camera_utils import camera_to_eye_at_up
  from pytorch3d.renderer.cameras import CamerasBase
  from pytorch3d.structures import join_meshes_as_scene, Meshes, Pointclouds
label_desc: Use image node_id 3 for calling a global function with example usage: _is_heterogeneous_ray_bundle(struct) and returns: unknown