old_contents: from bpy import data, types, context
  from .. import logger
  
  
  def _camera(func):
      """
  
      :param func:
  
      """
  
      def inner(name, *args, **kwargs):
          """
  
          :param name:
          :param *args:
          :param **kwargs:
  
          """
  
          if isinstance(name, types.Camera):
              camera = name
          else:
              camera = data.cameras[name]
  
          return func(camera, *args, **kwargs)
  
      return inner
  
  
  @_camera
  def aspect(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.aspect(%s)", camera)
      render = context.scene.render
      return render.resolution_x/render.resolution_y
  
  
  @_camera
  def bottom(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.bottom(%s)", camera)
      return -(camera.angle_y * camera.ortho_scale)
  
  
  @_camera
  def far(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.far(%s)", camera)
      return camera.clip_end
  
  
  @_camera
  def fov(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.fov(%s)", camera)
      return camera.angle
  
  
  @_camera
  def left(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.left(%s)", camera)
      return -(camera.angle_x * camera.ortho_scale)
  
  
  @_camera
  def near(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.near(%s)", camera)
      return camera.clip_start
  
  
  @_camera
  def right(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.right(%s)", camera)
      return camera.angle_x * camera.ortho_scale
  
  
  @_camera
  def top(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.top(%s)", camera)
      return camera.angle_y * camera.ortho_scale
  
new_contents: import math
  from bpy import data, types, context
  from .. import logger
  
  
  def _camera(func):
      """
  
      :param func:
  
      """
  
      def inner(name, *args, **kwargs):
          """
  
          :param name:
          :param *args:
          :param **kwargs:
  
          """
  
          if isinstance(name, types.Camera):
              camera = name
          else:
              camera = data.cameras[name]
  
          return func(camera, *args, **kwargs)
  
      return inner
  
  
  @_camera
  def aspect(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.aspect(%s)", camera)
      render = context.scene.render
      return render.resolution_x/render.resolution_y
  
  
  @_camera
  def bottom(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.bottom(%s)", camera)
      return -(camera.angle_y * camera.ortho_scale)
  
  
  @_camera
  def far(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.far(%s)", camera)
      return camera.clip_end
  
  
  @_camera
  def fov(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.fov(%s)", camera)
      fov_in_radians = camera.angle
      aspect_ratio = aspect(camera)
      if aspect_ratio > 1:
          fov_in_radians = 2 * math.atan(math.tan(fov_in_radians / 2) / aspect_ratio)
      return math.degrees(fov_in_radians)
  
  
  @_camera
  def left(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.left(%s)", camera)
      return -(camera.angle_x * camera.ortho_scale)
  
  
  @_camera
  def near(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.near(%s)", camera)
      return camera.clip_start
  
  
  @_camera
  def right(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.right(%s)", camera)
      return camera.angle_x * camera.ortho_scale
  
  
  @_camera
  def top(camera):
      """
  
      :param camera:
      :rtype: float
  
      """
      logger.debug("camera.top(%s)", camera)
      return camera.angle_y * camera.ortho_scale
  
subject: Fix perspective camera FOV export. (#9482)