code: def ParametricSuperEllipsoid(
      xradius=None,
      yradius=None,
      zradius=None,
      n1=None,
      n2=None,
      **kwargs,
  ):
      """Generate a superellipsoid.
  
      ParametricSuperEllipsoid generates a superellipsoid.  A superellipsoid
      is a versatile primitive that is controlled by two parameters n1 and
      n2. As special cases it can represent a sphere, square box, and closed
      cylindrical can.
  
      Parameters
      ----------
      xradius : float, default: 1
          The scaling factor for the x-axis.
  
      yradius : float, default: 1
          The scaling factor for the y-axis.
  
      zradius : float, default: 1
          The scaling factor for the z-axis.
  
      n1 : float, default: 1
          The "squareness" parameter in the z axis.
  
      n2 : float, default: 1
          The "squareness" parameter in the x-y plane.
  
      **kwargs : dict, optional
          See :func:`surface_from_para` for additional keyword arguments.
  
      Returns
      -------
      pyvista.PolyData
          ParametricSuperEllipsoid surface.
  
      See Also
      --------
      pyvista.ParametricSuperToroid :
          Toroidal equivalent of ParametricSuperEllipsoid.
      pyvista.Superquadric :
          Geometric object with additional parameters.
  
      Examples
      --------
      Create a ParametricSuperEllipsoid surface that looks like a box
      with smooth edges.
  
      >>> import pyvista as pv
      >>> mesh = pv.ParametricSuperEllipsoid(n1=0.02, n2=0.02)
      >>> mesh.plot(color='w', smooth_shading=True)
  
      Create one that looks like a spinning top.
  
      >>> mesh = pv.ParametricSuperEllipsoid(n1=4, n2=0.5)
      >>> mesh.plot(color='w', smooth_shading=True, cpos='xz')
  
      """
      parametric_function = _vtk.vtkParametricSuperEllipsoid()
      if xradius is not None:
          parametric_function.SetXRadius(xradius)
  
      if yradius is not None:
          parametric_function.SetYRadius(yradius)
  
      if zradius is not None:
          parametric_function.SetZRadius(zradius)
  
      if n1 is not None:
          parametric_function.SetN1(n1)
  
      if n2 is not None:
          parametric_function.SetN2(n2)
  
      center = kwargs.pop("center", [0.0, 0.0, 0.0])
      direction = kwargs.pop("direction", [1.0, 0.0, 0.0])
      surf = surface_from_para(parametric_function, **kwargs)
  
      translate(surf, center, direction)
  
      return surf
  
imports: from math import pi
  import warnings
  import numpy
  import pyvista
  from pyvista.core import _vtk_core
  from pyvista.core.errors import PyVistaDeprecationWarning
  from .geometric_objects import translate
  from .helpers import wrap
  from .misc import check_valid_vector
label_desc: Use image node_id 21 for calling a global function with example usage: ParametricSuperEllipsoid(xradius, yradius, zradius, n1, n2) and returns: surf