class_docstr: Provides a rectangular widget to which its subscene is rendered.
  
  Three classes work together when using a ViewBox:
  * The :class:`SubScene` class describes a "world" coordinate system and the
  entities that live inside it.
  * ViewBox is a "window" through which we view the
  subscene. Multiple ViewBoxes may view the same subscene.
  * :class:`Camera` describes both the perspective from which the
  subscene is rendered, and the way user interaction affects that
  perspective.
  
  In general it is only necessary to create the ViewBox; a SubScene and
  Camera will be generated automatically.
  
  Parameters
  ----------
  camera : instance of Camera | str | None
      The camera through which to view the SubScene. If None, then a
      PanZoomCamera (2D interaction) is used. If str, then the string is
      used as the argument to :func:`make_camera`.
  **kwargs : dict
      Extra keyword arguments to pass to `Widget`.
class_docstr_tok: ["Provides","a","rectangular","widget","to","which","its","subscene","is","rendered",".","Three","classes","work","together","when","using","a","ViewBox",":","*","The",":","class",":","`","SubScene","`","class","describes","a","``","world","''","coordinate","system","and","the","entities","that","live","inside","it",".","*","ViewBox","is","a","``","window","''","through","which","we","view","the","subscene",".","Multiple","ViewBoxes","may","view","the","same","subscene",".","*",":","class",":","`","Camera","`","describes","both","the","perspective","from","which","the","subscene","is","rendered",",","and","the","way","user","interaction","affects","that","perspective",".","In","general","it","is","only","necessary","to","create","the","ViewBox",";","a","SubScene","and","Camera","will","be","generated","automatically",".","Parameters","--","--","--","--","--","camera",":","instance","of","Camera","|","str","|","None","The","camera","through","which","to","view","the","SubScene",".","If","None",",","then","a","PanZoomCamera","(","2D","interaction",")","is","used",".","If","str",",","then","the","string","is","used","as","the","argument","to",":","func",":","`","make_camera","`",".","*","*","kwargs",":","dict","Extra","keyword","arguments","to","pass","to","`","Widget","`","."]
docstr: Get/set the Camera in use by this ViewBox
  
  If a string is given (e.g. 'panzoom', 'turntable', 'fly'). A
  corresponding camera is selected if it already exists in the
  scene, otherwise a new camera is created.
  
  The camera object is made a child of the scene (if it is not
  already in the scene).
  
  Multiple cameras can exist in one scene, although only one can
  be active at a time. A single camera can be used by multiple
  viewboxes at the same time.
docstr_tok: ["Get\/set","the","Camera","in","use","by","this","ViewBox","If","a","string","is","given","(","e.g",".","'panzoom","'",",","'turntable","'",",","'fly","'",")",".","A","corresponding","camera","is","selected","if","it","already","exists","in","the","scene",",","otherwise","a","new","camera","is","created",".","The","camera","object","is","made","a","child","of","the","scene","(","if","it","is","not","already","in","the","scene",")",".","Multiple","cameras","can","exist","in","one","scene",",","although","only","one","can","be","active","at","a","time",".","A","single","camera","can","be","used","by","multiple","viewboxes","at","the","same","time","."]
code: def camera(self) -> BaseCamera:
      """Get/set the Camera in use by this ViewBox
  
      If a string is given (e.g. 'panzoom', 'turntable', 'fly'). A
      corresponding camera is selected if it already exists in the
      scene, otherwise a new camera is created.
  
      The camera object is made a child of the scene (if it is not
      already in the scene).
  
      Multiple cameras can exist in one scene, although only one can
      be active at a time. A single camera can be used by multiple
      viewboxes at the same time.
      """
      return self._camera
  
file_path: vispy/vispy/scene/widgets/viewbox.py
imports: from __future__ import division
  from typing import Union
  import numpy
  from .widget import Widget
  from ..subscene import SubScene
  from ..cameras import make_camera, BaseCamera
  from ...visuals.filters import Clipper
label_desc: Use image node_id 2 for calling the ViewBox obj's underlying member method code with example usage: obj.camera() and returns: self