code: def convexHull(actor_or_list, alphaConstant=0):
      
      if vu.isSequence(actor_or_list):
          actor = vs.Points(actor_or_list)
      else:
          actor = actor_or_list
      apoly = actor.clean().polydata()
  
      triangleFilter = vtk.vtkTriangleFilter()
      triangleFilter.SetInputData(apoly)
      triangleFilter.Update()
      poly = triangleFilter.GetOutput()
  
      delaunay = vtk.vtkDelaunay3D()  # Create the convex hull of the pointcloud
      if alphaConstant:
          delaunay.SetAlpha(alphaConstant)
      delaunay.SetInputData(poly)
      delaunay.Update()
  
      surfaceFilter = vtk.vtkDataSetSurfaceFilter()
      surfaceFilter.SetInputConnection(delaunay.GetOutputPort())
      surfaceFilter.Update()
  
      chuact = Actor(surfaceFilter.GetOutput())
      return chuact
docs: Create a 3D Delaunay triangulation of input points.
  
      :param actor_or_list: can be either an ``Actor`` or a list of 3D points.
      :param float alphaConstant: For a non-zero alpha value, only verts, edges, faces,
          or tetra contained within the circumsphere (of radius alpha) will be output.
          Otherwise, only tetrahedra will be output.
  
      .. hint:: |convexHull| |convexHull.py|_