code: def add_visual(self, name, value):
      value.shared_program.vert["transform"] = self._pz
      value.events.update.connect(self.update)
      self._visuals.append(value)
  
imports: import numpy
  import math
  from vispy import gloo, app, scene
  from vispy.visuals import Visual
  from vispy.visuals.shaders import Function, Variable
  from vispy.visuals.transforms import TransformSystem, BaseTransform
  from vispy.util.profiler import Profiler
label_desc: Use image node_id 8 for calling the PanZoomCanvas obj's underlying member method code with example usage: obj.add_visual(name, value) without return types