code: def Cube(center=(0., 0., 0.), x_length=1.0, y_length=1.0, z_length=1.0, bounds=None):
      
      src = vtk.vtkCubeSource()
      if bounds is not None:
          if np.array(bounds).size != 6:
              raise TypeError('Bounds must be given as length 6 tuple: (xMin,xMax, yMin,yMax, zMin,zMax)')
          src.SetBounds(bounds)
      else:
          src.SetCenter(center)
          src.SetXLength(x_length)
          src.SetYLength(y_length)
          src.SetZLength(z_length)
      src.Update()
      return vtki.wrap(src.GetOutput())
docs: Create a cube by either specifying the center and side lengths or just
      the bounds of the cube. If ``bounds`` are given, all other arguments are
      ignored.
  
      Parameters
      ----------
      center : np.ndarray or list
          Center in [x, y, z].
  
      x_length : float
          length of the cube in the x-direction.
  
      y_length : float
          length of the cube in the y-direction.
  
      z_length : float
          length of the cube in the z-direction.
  
      bounds : np.ndarray or list
          Specify the bounding box of the cube. If given, all other arguments are
          ignored. ``(xMin,xMax, yMin,yMax, zMin,zMax)``