code: def _make_intersection(edge_info, all_edge_nodes):
      
      edges = []
      for index, start, end in edge_info:
          nodes = all_edge_nodes[index]
          new_nodes = _curve_helpers.specialize_curve(nodes, start, end)
          degree = new_nodes.shape[1] - 1
          edge = _curve_mod.Curve(new_nodes, degree, _copy=False)
          edges.append(edge)
      return curved_polygon.CurvedPolygon(
          *edges, metadata=edge_info, _verify=False
      )
docs: Convert a description of edges into a curved polygon.
  
      .. note::
  
         This is a helper used only by :meth:`.Surface.intersect`.
  
      Args:
          edge_info (Tuple[Tuple[int, float, float], ...]): Information
              describing each edge in the curved polygon by indicating which
              surface / edge on the surface and then start and end parameters
              along that edge. (See :func:`.ends_to_curve`.)
          all_edge_nodes (Tuple[numpy.ndarray, ...]): The nodes of three edges
              of the first surface being intersected followed by the nodes of
              the three edges of the second.
  
      Returns:
          .CurvedPolygon: The intersection corresponding to ``edge_info``.