class_docstr: Abstract edge drawer object from which all concrete edge drawer
  implementations are derived.
class_docstr_tok: ["Abstract","edge","drawer","object","from","which","all","concrete","edge","drawer","implementations","are","derived","."]
docstr: Draws a directed edge.
  
  @param edge: the edge to be drawn. Visual properties of the edge
    are defined by the attributes of this object.
  @param src_vertex: the source vertex. Visual properties are defined
    by the attributes of this object.
  @param dest_vertex: the source vertex. Visual properties are defined
    by the attributes of this object.
docstr_tok: ["Draws","a","directed","edge",".","@","param","edge",":","the","edge","to","be","drawn",".","Visual","properties","of","the","edge","are","defined","by","the","attributes","of","this","object",".","@","param","src_vertex",":","the","source","vertex",".","Visual","properties","are","defined","by","the","attributes","of","this","object",".","@","param","dest_vertex",":","the","source","vertex",".","Visual","properties","are","defined","by","the","attributes","of","this","object","."]
code: def draw_directed_edge(self, edge, src_vertex, dest_vertex):
      """Draws a directed edge.
  
      @param edge: the edge to be drawn. Visual properties of the edge
        are defined by the attributes of this object.
      @param src_vertex: the source vertex. Visual properties are defined
        by the attributes of this object.
      @param dest_vertex: the source vertex. Visual properties are defined
        by the attributes of this object.
      """
      raise NotImplementedError
  
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 2 for calling the AbstractEdgeDrawer obj's underlying member method code with example usage: obj.draw_directed_edge(edge, src_vertex, dest_vertex) without return types