code: def pointSampler(actor, distance=None):
      
      poly = actor.polydata(True)
  
      pointSampler = vtk.vtkPolyDataPointSampler()
      if not distance:
          distance = actor.diagonalSize() / 100.0
      pointSampler.SetDistance(distance)
      #    pointSampler.GenerateVertexPointsOff()
      #    pointSampler.GenerateEdgePointsOff()
      #    pointSampler.GenerateVerticesOn()
      #    pointSampler.GenerateInteriorPointsOn()
      pointSampler.SetInputData(poly)
      pointSampler.Update()
  
      uactor = Actor(pointSampler.GetOutput())
      prop = vtk.vtkProperty()
      prop.DeepCopy(actor.GetProperty())
      uactor.SetProperty(prop)
      return uactor
docs: Algorithm to generate points the specified distance apart.