class_docstr: Filtering PointPen that tries to determine whether an on-curve point
  should be "smooth", ie. that it's a "tangent" point or a "curve" point.
class_docstr_tok: ["Filtering","PointPen","that","tries","to","determine","whether","an","on-curve","point","should","be","``","smooth","''",",","ie",".","that","it","'s","a","``","tangent","''","point","or","a","``","curve","''","point","."]
code: def addPoint(
      self,
      pt,
      segmentType=None,
      smooth=False,
      name=None,
      identifier=None,
      **kwargs,
  ):
      if self._points is None:
          raise PenError("Path not begun")
      if identifier is not None:
          kwargs["identifier"] = identifier
      self._points.append((pt, segmentType, False, name, kwargs))
  
imports: import math
  from typing import Any, Optional, Tuple, Dict
  from fontTools.pens.basePen import AbstractPen, PenError
  from fontTools.misc.transform import DecomposedTransform
label_desc: Use image node_id 5 for calling the GuessSmoothPointPen obj's underlying member method code with example usage: obj.addPoint(pt, segmentType, smooth, name, identifier) without return types