class_docstr: The default vertex drawer implementation of igraph.
code: def draw(self, visual_vertex, vertex, coords):
      context = self.context
  
      width = (
          visual_vertex.width
          if visual_vertex.width is not None
          else visual_vertex.size
      )
      height = (
          visual_vertex.height
          if visual_vertex.height is not None
          else visual_vertex.size
      )
  
      visual_vertex.shape.draw_path(
          context, coords[0], coords[1], width, height
      )
      context.set_source_rgba(*visual_vertex.color)
      context.fill_preserve()
      context.set_source_rgba(*visual_vertex.frame_color)
      context.set_line_width(visual_vertex.frame_width)
      context.stroke()
  
file_path: python-igraph/src/igraph/drawing/cairo/vertex.py
imports: from math import pi
  from igraph.drawing.baseclasses import AbstractVertexDrawer
  from igraph.drawing.metamagic import AttributeCollectorBase
  from igraph.drawing.shapes import ShapeDrawerDirectory
  from .base import AbstractCairoDrawer
label_desc: Use image node_id 3 for calling the CairoVertexDrawer obj's underlying member method code with example usage: obj.draw(visual_vertex, vertex, coords) without return types