class GlyphPointPen(AbstractPointPen): """A point pen. See :mod:`fontTools.pens.basePen` and :mod:`fontTools.pens.pointPen` for an introduction to pens. """ __slots__ = "_glyph", "_contour" def __init__(self, glyph: "Glyph") -> None: self._glyph: "Glyph" = glyph self._contour: Optional[Contour] = None def beginPath(self, identifier: Optional[str] = None, **kwargs: Any) -> None: self._contour = Contour(identifier=identifier) def endPath(self) -> None: if self._contour is None: raise ValueError("Call beginPath first.") self._glyph.contours.append(self._contour) self._contour = None def addPoint( self, pt: Tuple[float, float], segmentType: Optional[str] = None, smooth: bool = False, name: Optional[str] = None, identifier: Optional[str] = None, **kwargs: Any, ) -> None: if self._contour is None: raise ValueError("Call beginPath first.") x, y = pt self._contour.append( Point(x, y, type=segmentType, smooth=smooth, name=name, identifier=identifier)) def addComponent( self, baseGlyph: str, transformation: Transform, identifier: Optional[str] = None, **kwargs: Any, ) -> None: component = Component(baseGlyph, transformation, identifier=identifier) self._glyph.components.append(component)
class GlyphPointPen(AbstractPointPen): __slots__ = "_glyph", "_contour" def __init__(self, glyph): self._glyph = glyph self._contour = None def beginPath(self, identifier=None, **kwargs): self._contour = Contour(identifier=identifier) def endPath(self): self._glyph.contours.append(self._contour) self._contour = None def addPoint(self, pt, segmentType=None, smooth=False, name=None, identifier=None, **kwargs): x, y = pt self._contour.append( Point(x, y, type=segmentType, smooth=smooth, name=name, identifier=identifier)) def addComponent(self, baseGlyph, transformation, identifier=None, **kwargs): component = Component(baseGlyph, transformation, identifier=identifier) self._glyph.components.append(component)
def test_contour_getControlBounds(contour: Contour) -> None: assert contour.getControlBounds() == (0, 0, 10, 20) assert contour.getControlBounds(layer={}) == (0, 0, 10, 20)
def test_contour_getBounds(contour: Contour) -> None: assert contour.getBounds() == (0, 0, 7.5, 20) assert contour.getBounds(layer={}) == (0, 0, 7.5, 20) assert contour.bounds == (0, 0, 7.5, 20)
def beginPath(self, identifier: str | None = None, **kwargs: Any) -> None: self._contour = Contour(identifier=identifier)
def beginPath(self, identifier=None, **kwargs): self._contour = Contour(identifier=identifier)
def beginPath(self, identifier: Optional[str] = None, **kwargs: Any) -> None: self._contour = Contour(identifier=identifier)