docstr: Returns 3D bounding box for a vehicle based on camera view.
docstr_tok: ["Returns","3D","bounding","box","for","a","vehicle","based","on","camera","view","."]
code: def get_bounding_box(vehicle, camera_transform, calibration):
      """
      Returns 3D bounding box for a vehicle based on camera view.
      """
  
      bb_cords = RssBoundingBoxVisualizer._create_bb_points(vehicle)
      cords_x_y_z = RssBoundingBoxVisualizer._vehicle_to_sensor(
          bb_cords, vehicle, camera_transform
      )[:3, :]
      cords_y_minus_z_x = np.concatenate(
          [cords_x_y_z[1, :], -cords_x_y_z[2, :], cords_x_y_z[0, :]]
      )
      bbox = np.transpose(np.dot(calibration, cords_y_minus_z_x))
      camera_bbox = np.concatenate(
          [
              bbox[:, 0] / bbox[:, 2],
              bbox[:, 1] / bbox[:, 2],
              bbox[:, 2],
          ],
          axis=1,
      )
      return camera_bbox
  
imports: import glob
  import os
  import sys
  from enum import Enum
  import math
  import numpy
  import pygame
  import weakref
  import carla
  from carla import ad
label_desc: Use image node_id 6 for calling the RssBoundingBoxVisualizer obj's underlying member method code with example usage: obj.get_bounding_box(vehicle, camera_transform, calibration) and returns: camera_bbox