code: def bboxes(self):
      bbox_list = []
      for label_info in self.annotation["data"]:
          rotation = np.array(
              label_info["segments"]["obbAligned"]["normalizedAxes"]
          ).reshape(3, 3)
          transform = np.array(
              label_info["segments"]["obbAligned"]["centroid"]
          ).reshape(-1, 3)
          scale = np.array(
              label_info["segments"]["obbAligned"]["axesLengths"]
          ).reshape(-1, 3)
          box3d = compute_box_3d(
              scale.reshape(3).tolist(), transform, rotation
          )
          bbox_list.append(box3d)
      bbox_list = np.asarray(bbox_list)
      return bbox_list
  
imports: import vtk
  import json
  import numpy
  import argparse
  import sys
  import subprocess
  from plyfile import PlyData
label_desc: Use image node_id 14 for calling the Render obj's underlying member method code with example usage: obj.bboxes() and returns: bbox_list