code: def on_mouse_move(self, event):
      x, y = event.pos
      x, y = x / float(self.width), 1 - y / float(self.height)
      self.program_v["u_seeds[%d]" % self.idx] = (
          x * self.ps,
          y * self.ps,
      )
      # TODO: just update the first line in the VBO instead of uploading the
      # whole array of seed points.
      self.seeds[self.idx, :] = x, y
      self.program_s["a_position"].set_data(self.seeds)
      self.update()
  
file_path: vispy/examples/demo/gloo/voronoi.py
imports: import numpy
  from vispy import app
  from vispy import gloo
label_desc: Use image node_id 5 for calling the Canvas obj's underlying member method code with example usage: obj.on_mouse_move(event) without return types