code: def Cylinder(
      center=(0.0, 0.0, 0.0),
      direction=(1.0, 0.0, 0.0),
      radius=0.5,
      height=1.0,
      resolution=100,
      capping=True,
  ):
      """Create the surface of a cylinder.
  
      .. warning::
         :func:`pyvista.Cylinder` function rotates the :class:`pyvista.CylinderSource` 's :class:`pyvista.PolyData` in its own way.
         It rotates the :attr:`pyvista.CylinderSource.output` 90 degrees in z-axis, translates and
         orients the mesh to a new ``center`` and ``direction``.
  
      See also :func:`pyvista.CylinderStructured`.
  
      Parameters
      ----------
      center : sequence[float], default: (0.0, 0.0, 0.0)
          Location of the centroid in ``[x, y, z]``.
  
      direction : sequence[float], default: (1.0, 0.0, 0.0)
          Direction cylinder points to  in ``[x, y, z]``.
  
      radius : float, default: 0.5
          Radius of the cylinder.
  
      height : float, default: 1.0
          Height of the cylinder.
  
      resolution : int, default: 100
          Number of points on the circular face of the cylinder.
  
      capping : bool, default: True
          Cap cylinder ends with polygons.
  
      Returns
      -------
      pyvista.PolyData
          Cylinder surface.
  
      Examples
      --------
      >>> import pyvista as pv
      >>> cylinder = pv.Cylinder(
      ...     center=[1, 2, 3], direction=[1, 1, 1], radius=1, height=2
      ... )
      >>> cylinder.plot(show_edges=True, line_width=5, cpos='xy')
  
      >>> pl = pv.Plotter()
      >>> _ = pl.add_mesh(
      ...     pv.Cylinder(
      ...         center=[1, 2, 3], direction=[1, 1, 1], radius=1, height=2
      ...     ),
      ...     show_edges=True,
      ...     line_width=5,
      ... )
      >>> pl.camera_position = "xy"
      >>> pl.show()
  
      The above examples are similar in terms of their behavior.
      """
      algo = CylinderSource(
          center=center,
          direction=direction,
          radius=radius,
          height=height,
          capping=capping,
          resolution=resolution,
      )
      output = wrap(algo.output)
      output.rotate_z(90, inplace=True)
      translate(output, center, direction)
      return output
  
imports: from itertools import product
  import numpy
  import pyvista
  from pyvista.core import _vtk_core
  from .arrays import _coerce_pointslike_arg
  from .geometric_sources import ConeSource, CylinderSource, MultipleLinesSource, Text3DSource, translate
  from .helpers import wrap
  from .misc import check_valid_vector
label_desc: Use image node_id 1 for calling a global function with example usage: Cylinder(center, direction, radius, height, resolution, capping) and returns: output