class_docstr: A solid (infinite) cylindrical object.
  
  Explanation
  ===========
  
  A wrapping geometry that allows for circular arcs to be defined between
  pairs of points. These paths are always geodetic (the shortest possible) in
  the sense that they will be a straight line on the unwrapped cylinder's
  surface. However, it is also possible for a direction to be specified, i.e.
  paths can be influenced such that they either wrap along the shortest side
  or the longest side of the cylinder. To define these directions, rotations
  are in the positive direction following the right-hand rule.
  
  Examples
  ========
  
  To create a ``WrappingCylinder`` instance, a ``Symbol`` denoting its
  radius, a ``Vector`` defining its axis, and a ``Point`` through which its
  axis passes are needed:
  
  >>> from sympy import symbols
  >>> from sympy.physics.mechanics import (Point, ReferenceFrame,
  ...     WrappingCylinder)
  >>> N = ReferenceFrame('N')
  >>> r = symbols('r')
  >>> pO = Point('pO')
  >>> ax = N.x
  
  A cylinder with radius ``r``, and axis parallel to ``N.x`` passing through
  ``pO`` can be instantiated with:
  
  >>> WrappingCylinder(r, pO, ax)
  WrappingCylinder(radius=r, point=pO, axis=N.x)
  
  Parameters
  ==========
  
  radius : Symbol
      The radius of the cylinder.
  point : Point
      A point through which the cylinder's axis passes.
  axis : Vector
      The axis along which the cylinder is aligned.
  
  See Also
  ========
  
  WrappingSphere: Spherical geometry where the wrapping direction is always
      geodetic.
code: def point(self, point):
      self._point = point
  
imports: from abc import ABC, abstractmethod
  from sympy import Integer, acos, pi, sqrt, sympify, tan
  from sympy.core.relational import Eq
  from sympy.functions.elementary.trigonometric import atan2
  from sympy.polys.polytools import cancel
  from sympy.physics.vector import Vector, dot
  from sympy.simplify.simplify import trigsimp
label_desc: Use image node_id 5 for calling the WrappingCylinder obj's underlying member method code with example usage: obj.point(point) without return types