class_docstr: Implements a 'addComponent' method that decomposes components
  (i.e. draws them onto self as simple contours).
  It can also be used as a mixin class (e.g. see ContourRecordingPen).
  
  You must override moveTo, lineTo, curveTo and qCurveTo. You may
  additionally override closePath, endPath and addComponent.
  
  By default a warning message is logged when a base glyph is missing;
  set the class variable ``skipMissingComponents`` to False if you want
  to raise a :class:`MissingComponentError` exception.
docstr: Transform the points of the base glyph and draw it onto self.
docstr_tok: ["Transform","the","points","of","the","base","glyph","and","draw","it","onto","self","."]
code: def addComponent(self, glyphName, transformation):
      """Transform the points of the base glyph and draw it onto self."""
      from fontTools.pens.transformPen import TransformPen
  
      try:
          glyph = self.glyphSet[glyphName]
      except KeyError:
          if not self.skipMissingComponents:
              raise MissingComponentError(glyphName)
          self.log.warning(
              "glyph '%s' is missing from glyphSet; skipped" % glyphName
          )
      else:
          tPen = TransformPen(self, transformation)
          glyph.draw(tPen)
  
imports: from typing import Tuple, Dict
  from fontTools.misc.loggingTools import LogMixin
  from fontTools.misc.transform import DecomposedTransform
label_desc: Use image node_id 2 for calling the DecomposingPen obj's underlying member method code with example usage: obj.addComponent(glyphName, transformation) without return types