Ejemplo n.º 1
0
 def test_buildMarkArray(self):
     markArray = builder.buildMarkArray(
         {
             "acute": (7, builder.buildAnchor(300, 800)),
             "grave": (2, builder.buildAnchor(10, 80)),
         },
         self.GLYPHMAP,
     )
     assert self.GLYPHMAP["grave"] < self.GLYPHMAP["acute"]
     assert getXML(markArray.toXML) == [
         "<MarkArray>",
         "  <!-- MarkCount=2 -->",
         '  <MarkRecord index="0">',
         '    <Class value="2"/>',
         '    <MarkAnchor Format="1">',
         '      <XCoordinate value="10"/>',
         '      <YCoordinate value="80"/>',
         "    </MarkAnchor>",
         "  </MarkRecord>",
         '  <MarkRecord index="1">',
         '    <Class value="7"/>',
         '    <MarkAnchor Format="1">',
         '      <XCoordinate value="300"/>',
         '      <YCoordinate value="800"/>',
         "    </MarkAnchor>",
         "  </MarkRecord>",
         "</MarkArray>",
     ]
Ejemplo n.º 2
0
 def test_buildMarkArray(self):
     markArray = builder.buildMarkArray(
         {
             "acute": (7, builder.buildAnchor(300, 800)),
             "grave": (2, builder.buildAnchor(10, 80))
         }, self.GLYPHMAP)
     self.assertLess(self.GLYPHMAP["grave"], self.GLYPHMAP["acute"])
     self.assertEqual(
         getXML(markArray.toXML), '<MarkArray>'
         '  <!-- MarkCount=2 -->'
         '  <MarkRecord index="0">'
         '    <Class value="2"/>'
         '    <MarkAnchor Format="1">'
         '      <XCoordinate value="10"/>'
         '      <YCoordinate value="80"/>'
         '    </MarkAnchor>'
         '  </MarkRecord>'
         '  <MarkRecord index="1">'
         '    <Class value="7"/>'
         '    <MarkAnchor Format="1">'
         '      <XCoordinate value="300"/>'
         '      <YCoordinate value="800"/>'
         '    </MarkAnchor>'
         '  </MarkRecord>'
         '</MarkArray>')
Ejemplo n.º 3
0
    def build(self):
        markClasses = self.buildMarkClasses_(self.marks)
        markClassList = sorted(markClasses.keys(), key=markClasses.get)
        marks = {mark: (markClasses[mc], anchor) for mark, (mc, anchor) in self.marks.items()}

        st = otTables.MarkMarkPos()
        st.Format = 1
        st.ClassCount = len(markClasses)
        st.Mark1Coverage = otl.buildCoverage(marks, self.glyphMap)
        st.Mark2Coverage = otl.buildCoverage(self.baseMarks, self.glyphMap)
        st.Mark1Array = otl.buildMarkArray(marks, self.glyphMap)
        st.Mark2Array = otTables.Mark2Array()
        st.Mark2Array.Mark2Count = len(st.Mark2Coverage.glyphs)
        st.Mark2Array.Mark2Record = []
        for base in st.Mark2Coverage.glyphs:
            anchors = [self.baseMarks[base].get(mc) for mc in markClassList]
            st.Mark2Array.Mark2Record.append(otl.buildMark2Record(anchors))
        return self.buildLookup_([st])
Ejemplo n.º 4
0
    def build(self):
        markClasses = self.buildMarkClasses_(self.marks)
        markClassList = sorted(markClasses.keys(), key=markClasses.get)
        marks = {mark: (markClasses[mc], anchor)
                 for mark, (mc, anchor) in self.marks.items()}

        st = otTables.MarkMarkPos()
        st.Format = 1
        st.ClassCount = len(markClasses)
        st.Mark1Coverage = otl.buildCoverage(marks, self.glyphMap)
        st.Mark2Coverage = otl.buildCoverage(self.baseMarks, self.glyphMap)
        st.Mark1Array = otl.buildMarkArray(marks, self.glyphMap)
        st.Mark2Array = otTables.Mark2Array()
        st.Mark2Array.Mark2Count = len(st.Mark2Coverage.glyphs)
        st.Mark2Array.Mark2Record = []
        for base in st.Mark2Coverage.glyphs:
            anchors = [self.baseMarks[base].get(mc) for mc in markClassList]
            st.Mark2Array.Mark2Record.append(otl.buildMark2Record(anchors))
        return self.buildLookup_([st])
Ejemplo n.º 5
0
 def test_buildMarkArray(self):
     markArray = builder.buildMarkArray({
         "acute": (7, builder.buildAnchor(300, 800)),
         "grave": (2, builder.buildAnchor(10, 80))
     }, self.GLYPHMAP)
     self.assertLess(self.GLYPHMAP["grave"], self.GLYPHMAP["acute"])
     self.assertEqual(getXML(markArray.toXML),
                      '<MarkArray>'
                      '  <!-- MarkCount=2 -->'
                      '  <MarkRecord index="0">'
                      '    <Class value="2"/>'
                      '    <MarkAnchor Format="1">'
                      '      <XCoordinate value="10"/>'
                      '      <YCoordinate value="80"/>'
                      '    </MarkAnchor>'
                      '  </MarkRecord>'
                      '  <MarkRecord index="1">'
                      '    <Class value="7"/>'
                      '    <MarkAnchor Format="1">'
                      '      <XCoordinate value="300"/>'
                      '      <YCoordinate value="800"/>'
                      '    </MarkAnchor>'
                      '  </MarkRecord>'
                      '</MarkArray>')