code: def sort_segment_points(Aps, Bps):
      
      mid = []
      j = 0
      mid.append(Aps[0])
      for i in range(len(Aps)-1):
          dist = distance_tt_point(Aps[i], Aps[i+1])
          for m in range(j, len(Bps)):
              distm = distance_tt_point(Aps[i], Bps[m])
              if dist > distm:
                  direction = dot(normalize(line(Aps[i].gen2arr(), Aps[i+1].gen2arr())), normalize(Bps[m].gen2arr()))
                  if direction > 0:
                      j = m + 1
                      mid.append(Bps[m])
                      break
  
          mid.append(Aps[i+1])
      for m in range(j, len(Bps)):
          mid.append(Bps[m])
      return mid
docs: Takes two line segments and sorts all their points,
      so that they form a continuous path
  
      Args:
          Aps: Array of tracktotrip.Point
          Bps: Array of tracktotrip.Point
      Returns:
          Array with points ordered