code: def subdivide(self, N=1, method=0):
          
          triangles = vtk.vtkTriangleFilter()
          triangles.SetInputData(self.polydata())
          triangles.Update()
          originalMesh = triangles.GetOutput()
          if method == 0:
              sdf = vtk.vtkLoopSubdivisionFilter()
          elif method == 1:
              sdf = vtk.vtkLinearSubdivisionFilter()
          elif method == 2:
              sdf = vtk.vtkAdaptiveSubdivisionFilter()
          elif method == 3:
              sdf = vtk.vtkButterflySubdivisionFilter()
          else:
              colors.printc("~times Error in subdivide: unknown method.", c="r")
              exit()
          if method != 2:
              sdf.SetNumberOfSubdivisions(N)
          sdf.SetInputData(originalMesh)
          sdf.Update()
          return self.updateMesh(sdf.GetOutput())
docs: Increase the number of vertices of a surface mesh.
  
          :param int N: number of subdivisions.
          :param int method: Loop(0), Linear(1), Adaptive(2), Butterfly(3)
  
          .. hint:: |tutorial_subdivide| |tutorial.py|_