class_docstr: Pan-zoom transform
  
  Parameters
  ----------
  canvas : instance of Canvas | None
      The canvas to attch to.
  aspect : float | None
      The aspect ratio to apply.
  **kwargs : dict
      Keyword arguments to pass to the underlying `STTransform`.
docstr: Mouse move handler
  
  Parameters
  ----------
  event : instance of Event
      The event.
docstr_tok: ["Mouse","move","handler","Parameters","--","--","--","--","--","event",":","instance","of","Event","The","event","."]
code: def on_mouse_move(self, event):
      """Mouse move handler
  
      Parameters
      ----------
      event : instance of Event
          The event.
      """
      if event.is_dragging:
          dxy = event.pos - event.last_event.pos
          button = event.press_event.button
  
          if button == 1:
              dxy = self.canvas_tr.map(dxy)
              o = self.canvas_tr.map([0, 0])
              t = dxy - o
              self.move(t)
          elif button == 2:
              center = self.canvas_tr.map(event.press_event.pos)
              if self._aspect is None:
                  self.zoom(np.exp(dxy * (0.01, -0.01)), center)
              else:
                  s = dxy[1] * -0.01
                  self.zoom(np.exp(np.array([s, s])), center)
  
          self.shader_map()
  
file_path: vispy/vispy/visuals/transforms/interactive.py
imports: from __future__ import division
  import numpy
  from .linear import STTransform
label_desc: Use image node_id 5 for calling the PanZoomTransform obj's underlying member method code with example usage: obj.on_mouse_move(event) without return types