code: def enable_cell_picking(self, mesh=None, callback=None):
          
          if mesh is None:
              if not hasattr(self, 'mesh'):
                  raise Exception('Input a mesh into the Plotter class first or '
                                  + 'or set it in this function')
              mesh = self.mesh
  
          def pick_call_back(picker, event_id):
              extract = vtk.vtkExtractGeometry()
              mesh.cell_arrays['orig_extract_id'] = np.arange(mesh.n_cells)
              extract.SetInputData(mesh)
              extract.SetImplicitFunction(picker.GetFrustum())
              extract.Update()
              self.picked_cells = vtki.wrap(extract.GetOutput())
  
              if callback is not None:
                  callback(self.picked_cells)
  
          area_picker = vtk.vtkAreaPicker()
          area_picker.AddObserver(vtk.vtkCommand.EndPickEvent, pick_call_back)
  
          self.enable_rubber_band_style()
          self.iren.SetPicker(area_picker)
docs: Enables picking of cells.  Press r to enable retangle based
          selection.  Press "r" again to turn it off.  Selection will be
          saved to self.picked_cells.
  
          Uses last input mesh for input
  
          Parameters
          ----------
          mesh : vtk.UnstructuredGrid, optional
              UnstructuredGrid grid to select cells from.  Uses last
              input grid by default.
  
          callback : function, optional
              When input, calls this function after a selection is made.
              The picked_cells are input as the first parameter to this function.