class_docstr: Abstract vertex drawer object from which all concrete vertex drawer
  implementations are derived.
class_docstr_tok: ["Abstract","vertex","drawer","object","from","which","all","concrete","vertex","drawer","implementations","are","derived","."]
docstr: Constructs the vertex drawer and associates it to the given
  palette.
  
  @param palette: the palette that can be used to map integer
                  color indices to colors when drawing vertices
  @param layout:  the layout of the vertices in the graph being drawn
docstr_tok: ["Constructs","the","vertex","drawer","and","associates","it","to","the","given","palette",".","@","param","palette",":","the","palette","that","can","be","used","to","map","integer","color","indices","to","colors","when","drawing","vertices","@","param","layout",":","the","layout","of","the","vertices","in","the","graph","being","drawn"]
code: def __init__(self, palette, layout):
      """Constructs the vertex drawer and associates it to the given
      palette.
  
      @param palette: the palette that can be used to map integer
                      color indices to colors when drawing vertices
      @param layout:  the layout of the vertices in the graph being drawn
      """
      self.layout = layout
      self.palette = palette
  
imports: from abc import ABCMeta, abstractmethod
  from math import atan2, pi
  from .text import TextAlignment
  from .utils import get_bezier_control_points_for_curved_edge, evaluate_cubic_bezier
label_desc: Use image node_id 1 to create a new AbstractVertexDrawer object from inherited base classes: AbstractDrawer with example: obj = AbstractVertexDrawer(palette, layout)