code: def on_draw(self, event):
      gloo.clear()
      if self.visible:
          # Filled mesh
          gloo.set_state(
              blend=False, depth_test=True, polygon_offset_fill=True
          )
          self.program["u_color"] = 1, 1, 1, 1
          self.program.draw("triangles", self.filled_buf)
  
          # Outline
          gloo.set_state(
              blend=True, depth_test=True, polygon_offset_fill=False
          )
          gloo.set_depth_mask(False)
          self.program["u_color"] = 0, 0, 0, 1
          self.program.draw("lines", self.outline_buf)
          gloo.set_depth_mask(True)
  
imports: from PyQt5 import QtCore, QtWidgets
  import sys
  import numpy
  from vispy import app, gloo
  from vispy.util.transforms import perspective, translate, rotate
  from vispy.geometry import meshdata
  from vispy.geometry import generation
label_desc: Use image node_id 4 for calling the Canvas obj's underlying member method code with example usage: obj.on_draw(event) without return types