code: def get_bbox(self):
          
  
          width = self.width
          height = self.height
  
          cos_angle = cos(self.angle)
          sin_angle = sin(self.angle)
  
          x_diff = 0.5 * width
          y_diff = 0.5 * height
  
          # self rotates around (0, 0).
          c_x_diff = cos_angle * x_diff
          s_x_diff = sin_angle * x_diff
  
          c_y_diff = cos_angle * y_diff
          s_y_diff = sin_angle * y_diff
  
          if cos_angle > 0:
              if sin_angle > 0:
                  x_max = c_x_diff + s_y_diff
                  x_min = -x_max
                  y_max = c_y_diff + s_x_diff
                  y_min = -y_max
              else:  # sin_angle <= 0.0
                  x_max = c_x_diff - s_y_diff
                  x_min = -x_max
                  y_max = c_y_diff - s_x_diff
                  y_min = -y_max
  
          else:  # cos(angle) <= 0.0
              if sin_angle > 0:
                  x_min = c_x_diff - s_y_diff
                  x_max = -x_min
                  y_min = c_y_diff - s_x_diff
                  y_max = -y_min
              else:  # sin_angle <= 0.0
                  x_min = c_x_diff + s_y_diff
                  x_max = -x_min
                  y_min = c_y_diff + s_x_diff
                  y_max = -y_min
  
          return x_min, x_max, y_min, y_max
docs: Returns bounding box (xmin, xmax, ymin, ymax)