class_docstr: Base camera class.
  
  The Camera describes the perspective from which a ViewBox views its
  subscene, and the way that user interaction affects that perspective.
  
  Most functionality is implemented in subclasses. This base class has
  no user interaction and causes the subscene to use the same coordinate
  system as the ViewBox.
  
  Parameters
  ----------
  interactive : bool
      Whether the camera processes mouse and keyboard events.
  flip : tuple of bools
      For each dimension, specify whether it is flipped.
  up : {'+z', '-z', '+y', '-y', '+x', '-x'}
      The direction that is considered up. Default '+z'. Not all
      camera's may support this (yet).
  parent : Node
      The parent of the camera.
  name : str
      Name used to identify the camera in the scene.
class_docstr_tok: ["Base","camera","class",".","The","Camera","describes","the","perspective","from","which","a","ViewBox","views","its","subscene",",","and","the","way","that","user","interaction","affects","that","perspective",".","Most","functionality","is","implemented","in","subclasses",".","This","base","class","has","no","user","interaction","and","causes","the","subscene","to","use","the","same","coordinate","system","as","the","ViewBox",".","Parameters","--","--","--","--","--","interactive",":","bool","Whether","the","camera","processes","mouse","and","keyboard","events",".","flip",":","tuple","of","bools","For","each","dimension",",","specify","whether","it","is","flipped",".","up",":","{","'+z","'",",","'-z","'",",","'+y","'",",","'-y","'",",","'+x","'",",","'-x","'","}","The","direction","that","is","considered","up",".","Default","'+z","'",".","Not","all","camera","'s","may","support","this","(","yet",")",".","parent",":","Node","The","parent","of","the","camera",".","name",":","str","Name","used","to","identify","the","camera","in","the","scene","."]
code: def __init__(
      self, interactive=True, flip=None, up="+z", parent=None, name=None
  ):
      super(BaseCamera, self).__init__(parent, name)
  
      # The viewbox for which this camera is active
      self._viewbox = None
  
      # Linked cameras
      self._linked_cameras = {}
      self._linked_cameras_no_update = None
  
      # Variables related to transforms
      self.transform = NullTransform()
      self._pre_transform = None
      self._viewbox_tr = STTransform()  # correction for viewbox
      self._projection = MatrixTransform()
      self._transform_cache = TransformCache()
  
      # For internal use, to store event related information
      self._event_value = None
  
      # Flags
      self._resetting = False  # Avoid lots of updates during set_range
      self._key_events_bound = False  # Have we connected to key events
      self._set_range_args = None  # hold set_range() args
  
      # Limits set in reset (interesting region of the scene)
      self._xlim = None  # None is flag that no reset has been performed
      self._ylim = None
      self._zlim = None
  
      # Our default state to apply when resetting
      self._default_state = None
  
      # We initialize these parameters here, because we want these props
      # available in all cameras. Note that PanZoom does not use _center
      self._fov = 0.0
      self._center = None
      self._depth_value = (
          1e6  # bit+depth >= 24, otherwise should do 3e3
      )
  
      # Set parameters. These are all not part of the "camera state"
      self.interactive = bool(interactive)
      self.flip = flip if (flip is not None) else (False, False, False)
      self.up = up
  
imports: from __future__ import division
  from ...util import keys
  from ..node import Node
  from ...visuals.transforms import STTransform, MatrixTransform, NullTransform, TransformCache
label_desc: Use image node_id 1 to create a new BaseCamera object from inherited base classes: Node with example: obj = BaseCamera(interactive, flip, up, parent, name)