class_docstr: A :class:`Camera` that uses perspective projection.
  
  Args:
    focal_length (float): The focal length of the camera lens in `mm`. `Default
      = 50`
    sensor_width (float): Horizontal size of the camera sensor in `mm`. `Default
      = 36`
    shift_x (float): Principal point horizontal offset defined as fraction of
      sensor width. `Default = 0.0`
    shift_y (float): Principal point vertical offset defined as fraction of
      sensor height. `Default = 0.0`
class_docstr_tok: ["A",":","class",":","`","Camera","`","that","uses","perspective","projection",".","Args",":","focal_length","(","float",")",":","The","focal","length","of","the","camera","lens","in","`","mm","`",".","`","Default","=","50","`","sensor_width","(","float",")",":","Horizontal","size","of","the","camera","sensor","in","`","mm","`",".","`","Default","=","36","`","shift_x","(","float",")",":","Principal","point","horizontal","offset","defined","as","fraction","of","sensor","width",".","`","Default","=","0.0","`","shift_y","(","float",")",":","Principal","point","vertical","offset","defined","as","fraction","of","sensor","height",".","`","Default","=","0.0","`"]
docstr: The (horizontal) field of view (fov) in radians.
  
  .. math:: \texttt{fov} = 2 * \arctan{ \frac{\texttt{sensor_width}}{2 * \texttt{fl}} }
  
  Setting the :py:attr:`field_of_view` will internally adjust the :py:obj:`focal_length` (fl),
  but keep the :py:attr:`sensor_width`.
docstr_tok: ["The","(","horizontal",")","field","of","view","(","fov",")","in","radians",".","..","math",":",":","\\texttt","{","fov","}","=","2","*","\\arctan","{","\\frac","{","\\texttt","{","sensor_width","}","}","{","2","*","\\texttt","{","fl","}","}","}","Setting","the",":","py",":","attr",":","`","field_of_view","`","will","internally","adjust","the",":","py",":","obj",":","`","focal_length","`","(","fl",")",",","but","keep","the",":","py",":","attr",":","`","sensor_width","`","."]
code: def field_of_view(self) -> float:
      """The (horizontal) field of view (fov) in radians.
  
      .. math:: \\texttt{fov} = 2 * \\arctan{ \\frac{\\texttt{sensor_width}}{2 * \\texttt{fl}} }
  
      Setting the :py:attr:`field_of_view` will internally adjust the :py:obj:`focal_length` (fl),
      but keep the :py:attr:`sensor_width`.
      """
      return 2 * np.arctan2(self.sensor_width / 2, self.focal_length)
  
imports: import numpy
  import traitlets
  from kubric.core.assets import UndefinedAsset
  from kubric.core import objects
  from kubric.kubric_typing import ArrayLike
label_desc: Use image node_id 2 for calling the PerspectiveCamera obj's underlying member method code with example usage: obj.field_of_view() and returns: unknown