code: def setupTable_vmtx(self):
          
          if "vmtx" not in self.tables:
              return
  
          self.otf["vmtx"] = vmtx = newTable("vmtx")
          vmtx.metrics = {}
          for glyphName, glyph in self.allGlyphs.items():
              height = otRound(glyph.height)
              if height < 0:
                  raise ValueError(
                      "The height should not be negative: '%s'" % (glyphName))
              verticalOrigin = _getVerticalOrigin(self.otf, glyph)
              bounds = self.glyphBoundingBoxes[glyphName]
              top = bounds.yMax if bounds else 0
              vmtx[glyphName] = (height, verticalOrigin - top)
docs: Make the vmtx table.
  
          **This should not be called externally.** Subclasses
          may override or supplement this method to handle the
          table creation in a different way if desired.