class_docstr: Base class for 3D cameras supporting orthographic and
  perspective projections.
  
  Parameters
  ----------
  fov : float
      Field of view. Default 60.0.
  scale_factor : scalar
      A measure for the scale/range of the scene that the camera
      should show. The exact meaning differs per camera type.
  **kwargs : dict
      Keyword arguments to pass to `BaseCamera`.
code: def __init__(
      self, fov=60.0, scale_factor=None, center=None, **kwargs
  ):
      super(PerspectiveCamera, self).__init__(**kwargs)
      # Camera transform
      self.transform = MatrixTransform()
  
      # Set camera attributes
      self.fov = fov
      self._scale_factor = None
      self._center = None
  
      # Only set if they are given. They're set during _set_range if None
      if scale_factor is not None:
          self.scale_factor = scale_factor
      if center is not None:
          self.center = center
  
imports: from __future__ import division
  import math
  import numpy
  from .base_camera import BaseCamera
  from ...util import keys, transforms
  from ...visuals.transforms import MatrixTransform
label_desc: Use image node_id 1 to create a new PerspectiveCamera object from inherited base classes: BaseCamera with example: obj = PerspectiveCamera(fov, scale_factor, center)