code: def compile(self, ttFont):
      self.glyphDataOffsets = b""
      self.bitmapData = b""
  
      glyphOrder = ttFont.getGlyphOrder()
  
      # first glyph starts right after the header
      currentGlyphDataOffset = (
          sbixStrikeHeaderFormatSize
          + sbixGlyphDataOffsetFormatSize * (len(glyphOrder) + 1)
      )
      for glyphName in glyphOrder:
          if glyphName in self.glyphs:
              # we have glyph data for this glyph
              current_glyph = self.glyphs[glyphName]
          else:
              # must add empty glyph data record for this glyph
              current_glyph = Glyph(glyphName=glyphName)
          current_glyph.compile(ttFont)
          current_glyph.glyphDataOffset = currentGlyphDataOffset
          self.bitmapData += current_glyph.rawdata
          currentGlyphDataOffset += len(current_glyph.rawdata)
          self.glyphDataOffsets += sstruct.pack(
              sbixGlyphDataOffsetFormat, current_glyph
          )
  
      # add last "offset", really the end address of the last glyph data record
      dummy = Glyph()
      dummy.glyphDataOffset = currentGlyphDataOffset
      self.glyphDataOffsets += sstruct.pack(
          sbixGlyphDataOffsetFormat, dummy
      )
  
      # pack header
      self.data = sstruct.pack(sbixStrikeHeaderFormat, self)
      # add offsets and image data after header
      self.data += self.glyphDataOffsets + self.bitmapData
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/sbixStrike.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.textTools import safeEval
  from .sbixGlyph import Glyph
  import struct
label_desc: Use image node_id 3 for calling the Strike obj's underlying member method code with example usage: obj.compile(ttFont) without return types