class_docstr: Camera implementing 2D pan/zoom mouse interaction.
  
  For this camera, the ``scale_factor`` indicates the zoom level, and
  the ``center`` indicates the center position of the view.
  
  By default, this camera inverts the y axis of the scene. This usually
  results in the scene +y axis pointing upward because widgets (including
  ViewBox) have their +y axis pointing downward.
  
  Parameters
  ----------
  rect : Rect
      A Rect object or 4-element tuple that specifies the rectangular
      area to show.
  aspect : float | None
      The aspect ratio (i.e. scaling) between x and y dimension of
      the scene. E.g. to show a square image as square, the aspect
      should be 1. If None (default) the x and y dimensions are scaled
      independently.
  **kwargs : dict
      Keyword arguments to pass to `BaseCamera`.
  
  Notes
  -----
  Interaction:
  
      * LMB: pan the view
      * RMB or scroll: zooms the view
class_docstr_tok: ["Camera","implementing","2D","pan\/zoom","mouse","interaction",".","For","this","camera",",","the","``","scale_factor","``","indicates","the","zoom","level",",","and","the","``","center","``","indicates","the","center","position","of","the","view",".","By","default",",","this","camera","inverts","the","y","axis","of","the","scene",".","This","usually","results","in","the","scene","+y","axis","pointing","upward","because","widgets","(","including","ViewBox",")","have","their","+y","axis","pointing","downward",".","Parameters","--","--","--","--","--","rect",":","Rect","A","Rect","object","or","4-element","tuple","that","specifies","the","rectangular","area","to","show",".","aspect",":","float","|","None","The","aspect","ratio","(","i.e",".","scaling",")","between","x","and","y","dimension","of","the","scene",".","E.g",".","to","show","a","square","image","as","square",",","the","aspect","should","be","1",".","If","None","(","default",")","the","x","and","y","dimensions","are","scaled","independently",".","*","*","kwargs",":","dict","Keyword","arguments","to","pass","to","`","BaseCamera","`",".","Notes","--","--","-","Interaction",":","*","LMB",":","pan","the","view","*","RMB","or","scroll",":","zooms","the","view"]
docstr: The ratio between the x and y dimension. E.g. to show a
  square image as square, the aspect should be 1. If None, the
  dimensions are scaled automatically, dependening on the
  available space. Otherwise the ratio between the dimensions
  is fixed.
docstr_tok: ["The","ratio","between","the","x","and","y","dimension",".","E.g",".","to","show","a","square","image","as","square",",","the","aspect","should","be","1",".","If","None",",","the","dimensions","are","scaled","automatically",",","dependening","on","the","available","space",".","Otherwise","the","ratio","between","the","dimensions","is","fixed","."]
code: def aspect(self):
      """The ratio between the x and y dimension. E.g. to show a
      square image as square, the aspect should be 1. If None, the
      dimensions are scaled automatically, dependening on the
      available space. Otherwise the ratio between the dimensions
      is fixed.
      """
      return self._aspect
  
imports: from __future__ import division
  import numpy
  from .base_camera import BaseCamera
  from ...geometry import Rect
  from ...visuals.transforms import STTransform, MatrixTransform
label_desc: Use image node_id 2 for calling the PanZoomCamera obj's underlying member method code with example usage: obj.aspect() and returns: self