123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- """Pen multiplexing drawing to one or more pens."""
- from fontTools.pens.basePen import AbstractPen
- __all__ = ["TeePen"]
- class TeePen(AbstractPen):
- """Pen multiplexing drawing to one or more pens.
- Use either as TeePen(pen1, pen2, ...) or TeePen(iterableOfPens)."""
- def __init__(self, *pens):
- if len(pens) == 1:
- pens = pens[0]
- self.pens = pens
- def moveTo(self, p0):
- for pen in self.pens:
- pen.moveTo(p0)
- def lineTo(self, p1):
- for pen in self.pens:
- pen.lineTo(p1)
- def qCurveTo(self, *points):
- for pen in self.pens:
- pen.qCurveTo(*points)
- def curveTo(self, *points):
- for pen in self.pens:
- pen.curveTo(*points)
- def closePath(self):
- for pen in self.pens:
- pen.closePath()
- def endPath(self):
- for pen in self.pens:
- pen.endPath()
- def addComponent(self, glyphName, transformation):
- for pen in self.pens:
- pen.addComponent(glyphName, transformation)
- if __name__ == "__main__":
- from fontTools.pens.basePen import _TestPen
- pen = TeePen(_TestPen(), _TestPen())
- pen.moveTo((0, 0))
- pen.lineTo((0, 100))
- pen.curveTo((50, 75), (60, 50), (50, 25))
- pen.closePath()
|