code: def compute_box_3d(scale, transform, rotation):
      scales = [i / 2 for i in scale]
      l, h, w = scales
      center = np.reshape(transform, (-1, 3))
      center = center.reshape(3)
      x_corners = [l, l, -l, -l, l, l, -l, -l]
      y_corners = [h, -h, -h, h, h, -h, -h, h]
      z_corners = [w, w, w, w, -w, -w, -w, -w]
      corners_3d = np.dot(
          np.transpose(rotation),
          np.vstack([x_corners, y_corners, z_corners]),
      )
  
      corners_3d[0, :] += center[0]
      corners_3d[1, :] += center[1]
      corners_3d[2, :] += center[2]
      bbox3d_raw = np.transpose(corners_3d)
      return bbox3d_raw
  
imports: import vtk
  import json
  import numpy
  import argparse
  import sys
  import subprocess
  from plyfile import PlyData
label_desc: Use image node_id 2 for calling a global function with example usage: compute_box_3d(scale, transform, rotation) and returns: bbox3d_raw