code: def bounding_box(self):
          
  
          w2 = self.width / 2.
          h2 = self.height / 2.
          cos_angle = np.cos(self.angle)    # self.angle is a Quantity
          sin_angle = np.sin(self.angle)    # self.angle is a Quantity
          dx1 = abs(w2 * cos_angle - h2 * sin_angle)
          dy1 = abs(w2 * sin_angle + h2 * cos_angle)
          dx2 = abs(w2 * cos_angle + h2 * sin_angle)
          dy2 = abs(w2 * sin_angle - h2 * cos_angle)
          dx = max(dx1, dx2)
          dy = max(dy1, dy2)
  
          xmin = self.center.x - dx
          xmax = self.center.x + dx
          ymin = self.center.y - dy
          ymax = self.center.y + dy
  
          return BoundingBox.from_float(xmin, xmax, ymin, ymax)
docs: The minimal bounding box (`~regions.BoundingBox`) enclosing the
          exact rectangular region.