class_docstr: Cairo-specific abstract edge drawer object.
class_docstr_tok: ["Cairo-specific","abstract","edge","drawer","object","."]
docstr: Construct the visual edge builder that will collect the visual
  attributes of an edge when it is being drawn.
docstr_tok: ["Construct","the","visual","edge","builder","that","will","collect","the","visual","attributes","of","an","edge","when","it","is","being","drawn","."]
code: def _construct_visual_edge_builder(self):
      """Construct the visual edge builder that will collect the visual
      attributes of an edge when it is being drawn."""
  
      class VisualEdgeBuilder(AttributeCollectorBase):
          """Builder that collects some visual properties of an edge for
          drawing"""
  
          _kwds_prefix = "edge_"
          arrow_size = 1.0
          arrow_width = 1.0
          color = ("#444", self.palette.get)
          curved = (0.0, self._curvature_to_float)
          label = None
          label_color = ("black", self.palette.get)
          label_size = 12.0
          font = "sans-serif"
          width = 1.0
  
      return VisualEdgeBuilder
  
imports: from math import atan2, cos, pi, sin
  from igraph.drawing.baseclasses import AbstractEdgeDrawer
  from igraph.drawing.colors import clamp
  from igraph.drawing.metamagic import AttributeCollectorBase
  from igraph.drawing.utils import euclidean_distance, get_bezier_control_points_for_curved_edge, intersect_bezier_curve_and_circle
  from .utils import find_cairo
label_desc: Use image node_id 2 for calling the AbstractCairoEdgeDrawer obj's underlying member method code with example usage: obj._construct_visual_edge_builder() and returns: VisualEdgeBuilder