make _TTGlyph an abstract base class, with draw and drawPoints abstract methods
This commit is contained in:
parent
b1441c583b
commit
7ae37322cd
@ -1,5 +1,6 @@
|
||||
"""GlyphSets returned by a TTFont."""
|
||||
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from collections.abc import Mapping
|
||||
from copy import copy
|
||||
from fontTools.misc.fixedTools import otRound
|
||||
@ -75,7 +76,7 @@ class _TTGlyphSetCFF(_TTGlyphSet):
|
||||
return _TTGlyphCFF(self, glyphName)
|
||||
|
||||
|
||||
class _TTGlyph:
|
||||
class _TTGlyph(metaclass=ABCMeta):
|
||||
|
||||
"""Glyph object that supports the Pen protocol, meaning that it has
|
||||
.draw() and .drawPoints() methods that take a pen object as their only
|
||||
@ -103,6 +104,20 @@ class _TTGlyph:
|
||||
self.width += glyphSet.hvarInstancer[varidx]
|
||||
# TODO: VVAR/VORG
|
||||
|
||||
@abstractmethod
|
||||
def draw(self, pen):
|
||||
"""Draw the glyph onto ``pen``. See fontTools.pens.basePen for details
|
||||
how that works.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
def drawPoints(self, pen):
|
||||
"""Draw the glyph onto ``pen``. See fontTools.pens.pointPen for details
|
||||
how that works.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class _TTGlyphGlyf(_TTGlyph):
|
||||
def draw(self, pen):
|
||||
|
Loading…
x
Reference in New Issue
Block a user