code: def drawVertex(self, path, i):
      d = self.point_size / self.scale
      shape = self.point_type
      point = self.points[i]
      if i == self._highlightIndex:
          size, shape = self._highlightSettings[self._highlightMode]
          d *= size
      if self._highlightIndex is not None:
          self.vertex_fill_color = self.hvertex_fill_color
      else:
          self.vertex_fill_color = Shape.vertex_fill_color
      if shape == self.P_SQUARE:
          path.addRect(point.x() - d / 2, point.y() - d / 2, d, d)
      elif shape == self.P_ROUND:
          path.addEllipse(point, d / 2.0, d / 2.0)
      else:
          assert False, "unsupported vertex shape"
  
imports: import math
  import sys
  from PyQt5.QtCore import QPointF
  from PyQt5.QtGui import QColor, QPen, QPainterPath, QFont
  from libs.utils import distance
label_desc: Use image node_id 12 for calling the Shape obj's underlying member method code with example usage: obj.drawVertex(path, i) without return types