code: def _compute_intersection_points(box1, box2):
      """Computes the intersection of two boxes."""
      intersection_points = []
  
      # Transform box1 to be axis-aligned
      inv_transform = np.linalg.inv(box1.transformation)
      box1_axis_aligned = box1._apply_transformation(inv_transform)
      box2_in_box1_coord = box2._apply_transformation(inv_transform)
      for face in range(len(_FACES)):
          indices = _FACES[face, :]
          poly = [
              box2_in_box1_coord.vertices[indices[i], :]
              for i in range(4)
          ]
          clip = _intersect_box_poly(box1_axis_aligned, poly)
          for point in clip:
              # Transform the intersection point back to the world coordinate
              point_w = (
                  np.matmul(box1.rotation, point) + box1.translation
              )
              intersection_points.append(point_w)
  
      for point_id in range(_NUM_KEYPOINTS):
          v = box2_in_box1_coord.vertices[point_id, :]
          if box1_axis_aligned._inside(v):
              point_w = np.matmul(box1.rotation, v) + box1.translation
              intersection_points.append(point_w)
  
      return intersection_points
  
imports: import itertools
  import logging
  import warnings
  import numpy
  import scipy.spatial
  import eta.core.numutils
  import fiftyone.core.fields
  import fiftyone.core.labels
  import fiftyone.core.media
  from fiftyone.core.sample import Sample
  import fiftyone.core.utils
  import fiftyone.core.validation
  from fiftyone.core.odm import DynamicEmbeddedDocument
  import fiftyone.utils.image
label_desc: Use image node_id 7 for calling a global function with example usage: _compute_intersection_points(box1, box2) and returns: intersection_points