code: def ParametricBohemianDome(a=None, b=None, c=None, **kwargs):
      """Generate a Bohemian dome surface.
  
      Parameters
      ----------
      a : float, default: 0.5
          Bohemian dome surface parameter a.
  
      b : float, default: 1.5
          Bohemian dome surface parameter b.
  
      c : float, default: 1.0
          Bohemian dome surface parameter c.
  
      **kwargs : dict, optional
          See :func:`surface_from_para` for additional keyword arguments.
  
      Returns
      -------
      pyvista.PolyData
          ParametricBohemianDome surface.
  
      Examples
      --------
      Create a ParametricBohemianDome mesh.
  
      >>> import pyvista as pv
      >>> mesh = pv.ParametricBohemianDome()
      >>> mesh.plot(color='w', smooth_shading=True)
  
      """
      parametric_function = _vtk.vtkParametricBohemianDome()
      if a is not None:
          parametric_function.SetA(a)
      if b is not None:
          parametric_function.SetB(b)
      if c is not None:
          parametric_function.SetC(c)
  
      center = kwargs.pop("center", [0.0, 0.0, 0.0])
      direction = kwargs.pop("direction", [1.0, 0.0, 0.0])
      kwargs.setdefault("clean", True)
      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 3 for calling a global function with example usage: ParametricBohemianDome(a, b, c) and returns: surf