code: def _ReconstructPath(self, came_from, current_node):
      
      if current_node in came_from:
        (previous_node, previous_edge) = came_from[current_node]
        if previous_edge.GetPoint(0) == current_node:
          previous_edge = previous_edge.Reversed()
        p = self._ReconstructPath(came_from, previous_node)
        return Poly.MergePolys([p, previous_edge], merge_point_threshold=0)
      else:
        return Poly([], '')
docs: Helper method for ShortestPath, to reconstruct path.
  
      Arguments:
        came_from: a dictionary mapping Point to (Point, Poly) tuples.
            This dictionary keeps track of the previous neighbor to a node, and
            the edge used to get from the previous neighbor to the node.
        current_node: the current Point in the path.
  
      Returns:
        A Poly that represents the path through the graph from the start of the
        search to current_node.