code: def smoothLaplacian(self, niter=15, relaxfact=0.1, edgeAngle=15, featureAngle=60):
          
          poly = self.poly
          cl = vtk.vtkCleanPolyData()
          cl.SetInputData(poly)
          cl.Update()
          smoothFilter = vtk.vtkSmoothPolyDataFilter()
          smoothFilter.SetInputData(cl.GetOutput())
          smoothFilter.SetNumberOfIterations(niter)
          smoothFilter.SetRelaxationFactor(relaxfact)
          smoothFilter.SetEdgeAngle(edgeAngle)
          smoothFilter.SetFeatureAngle(featureAngle)
          smoothFilter.BoundarySmoothingOn()
          smoothFilter.FeatureEdgeSmoothingOn()
          smoothFilter.GenerateErrorScalarsOn()
          smoothFilter.Update()
          return self.updateMesh(smoothFilter.GetOutput())
docs: Adjust mesh point positions using `Laplacian` smoothing.
  
          :param int niter: number of iterations.
          :param float relaxfact: relaxation factor. Small `relaxfact` and large `niter` are more stable.
          :param float edgeAngle: edge angle to control smoothing along edges (either interior or boundary).
          :param float featureAngle: specifies the feature angle for sharp edge identification.
  
          .. hint:: |mesh_smoothers.py|_