code: def merge(self, grid=None, merge_points=True, inplace=False,
                main_has_priority=True):
          
          append_filter = vtk.vtkAppendFilter()
          append_filter.SetMergePoints(merge_points)
  
          if not main_has_priority:
              append_filter.AddInputData(self)
  
          if isinstance(grid, vtki.UnstructuredGrid):
              append_filter.AddInputData(grid)
          elif isinstance(grid, list):
              grids = grid
              for grid in grids:
                  append_filter.AddInputData(grid)
  
          if main_has_priority:
              append_filter.AddInputData(self)
  
          append_filter.Update()
          merged = _get_output(append_filter)
          if inplace:
              self.DeepCopy(merged)
          else:
              return merged
docs: Join one or many other grids to this grid.  Grid is updated
          in-place by default.
  
          Can be used to merge points of adjcent cells when no grids
          are input.
  
          Parameters
          ----------
          grid : vtk.UnstructuredGrid or list of vtk.UnstructuredGrids
              Grids to merge to this grid.
  
          merge_points : bool, optional
              Points in exactly the same location will be merged between
              the two meshes.
  
          inplace : bool, optional
              Updates grid inplace when True.
  
          main_has_priority : bool, optional
              When this parameter is true and merge_points is true,
              the scalar arrays of the merging grids will be overwritten
              by the original main mesh.
  
          Returns
          -------
          merged_grid : vtk.UnstructuredGrid
              Merged grid.  Returned when inplace is False.
  
          Notes
          -----
          When two or more grids are joined, the type and name of each
          scalar array must match or the arrays will be ignored and not
          included in the final merged mesh.