code: def Lines(startPoints, endPoints=None, scale=1, lw=1, c=None, alpha=1, dotted=False):
      
      if endPoints is not None:
          startPoints = list(zip(startPoints, endPoints))
  
      polylns = vtk.vtkAppendPolyData()
      for twopts in startPoints:
          lineSource = vtk.vtkLineSource()
          lineSource.SetPoint1(twopts[0])
  
          if scale != 1:
              vers = (np.array(twopts[1]) - twopts[0]) * scale
              pt2 = np.array(twopts[0]) + vers
          else:
              pt2 = twopts[1]
  
          lineSource.SetPoint2(pt2)
          polylns.AddInputConnection(lineSource.GetOutputPort())
      polylns.Update()
  
      actor = Actor(polylns.GetOutput(), c, alpha)
      actor.GetProperty().SetLineWidth(lw)
      if dotted:
          actor.GetProperty().SetLineStipplePattern(0xF0F0)
          actor.GetProperty().SetLineStippleRepeatFactor(1)
  
      settings.collectable_actors.append(actor)
      return actor
docs: Build the line segments between two lists of points `startPoints` and `endPoints`.
      `startPoints` can be also passed in the form ``[[point1, point2], ...]``.
  
      :param float scale: apply a rescaling factor to the length 
  
      |lines|
  
      .. hint:: |fitspheres2.py|_