class_docstr: Extension of QVector3D which adds a few helpful methods.
docstr: Handle additional constructions of a Vector
  
  ==============  ================================================================================================
  **Arguments:**
  *args*          Could be any of:
  
                   * 3 numerics (x, y, and z)
                   * 2 numerics (x, y, and `0` assumed for z)
                   * Either of the previous in a list-like collection
                   * 1 QSizeF (`0` assumed for z)
                   * 1 QPointF (`0` assumed for z)
                   * Any other valid QVector3D init args.
  ==============  ================================================================================================
code: def __init__(self, *args):
      """
      Handle additional constructions of a Vector
  
      ==============  ================================================================================================
      **Arguments:**
      *args*          Could be any of:
  
                       * 3 numerics (x, y, and z)
                       * 2 numerics (x, y, and `0` assumed for z)
                       * Either of the previous in a list-like collection
                       * 1 QSizeF (`0` assumed for z)
                       * 1 QPointF (`0` assumed for z)
                       * Any other valid QVector3D init args.
      ==============  ================================================================================================
      """
      initArgs = args
      if len(args) == 1:
          if isinstance(args[0], QtCore.QSizeF):
              initArgs = (
                  float(args[0].width()),
                  float(args[0].height()),
                  0,
              )
          elif isinstance(args[0], QtCore.QPoint) or isinstance(
              args[0], QtCore.QPointF
          ):
              initArgs = (float(args[0].x()), float(args[0].y()), 0)
          elif hasattr(args[0], "__getitem__") and not isinstance(
              args[0], QtGui.QVector3D
          ):
              vals = list(args[0])
              if len(vals) == 2:
                  vals.append(0)
              if len(vals) != 3:
                  raise Exception(
                      "Cannot init Vector with sequence of length %d"
                      % len(args[0])
                  )
              initArgs = vals
          elif isinstance(args[0], QtGui.QVector3D):
              # PySide6 6.1 does not accept initialization from QVector3D
              initArgs = args[0].x(), args[0].y(), args[0].z()
      elif len(args) == 2:
          initArgs = (args[0], args[1], 0)
      QtGui.QVector3D.__init__(self, *initArgs)
  
file_path: pyqtgraph/pyqtgraph/Vector.py
imports: from math import acos, degrees
  from .None import functions
  from .Qt import QT_LIB, QtCore, QtGui
label_desc: Use image node_id 1 to create a new Vector object from inherited base classes: QtGui with example: obj = Vector()