code: def bounding_boxes(self):
          
  
          w2 = self.w_out / 2.
          h2 = self.h_out / 2.
          cos_theta = math.cos(self.theta)
          sin_theta = math.sin(self.theta)
          dx1 = abs(w2 * cos_theta - h2 * sin_theta)
          dy1 = abs(w2 * sin_theta + h2 * cos_theta)
          dx2 = abs(w2 * cos_theta + h2 * sin_theta)
          dy2 = abs(w2 * sin_theta - h2 * cos_theta)
          dx = max(dx1, dx2)
          dy = max(dy1, dy2)
  
          xmin = self.positions[:, 0] - dx
          xmax = self.positions[:, 0] + dx
          ymin = self.positions[:, 1] - dy
          ymax = self.positions[:, 1] + dy
  
          return [BoundingBox._from_float(x0, x1, y0, y1)
                  for x0, x1, y0, y1 in zip(xmin, xmax, ymin, ymax)]
docs: A list of minimal bounding boxes (`~photutils.BoundingBox`), one
          for each position, enclosing the rectangular apertures for the
          "exact" case.