code: def clip(dataset, normal='x', origin=None, invert=True):
          
          if isinstance(normal, str):
              normal = NORMALS[normal.lower()]
          # find center of data if origin not specified
          if origin is None:
              origin = dataset.center
          # create the plane for clipping
          plane = _generate_plane(normal, origin)
          # run the clip
          alg = vtk.vtkClipDataSet()
          alg.SetInputDataObject(dataset) # Use the grid as the data we desire to cut
          alg.SetClipFunction(plane) # the the cutter to use the plane we made
          alg.SetInsideOut(invert) # invert the clip if needed
          alg.Update() # Perfrom the Cut
          return _get_output(alg)
docs: Clip a dataset by a plane by specifying the origin and normal. If no
          parameters are given the clip will occur in the center of that dataset
  
          Parameters
          ----------
          normal : tuple(float) or str
              Length 3 tuple for the normal vector direction. Can also be
              specified as a string conventional direction such as ``'x'`` for
              ``(1,0,0)`` or ``'-x'`` for ``(-1,0,0)``, etc.
  
          origin : tuple(float)
              The center ``(x,y,z)`` coordinate of the plane on which the clip
              occurs
  
          invert : bool
              Flag on whether to flip/invert the clip