Ë
    £ehØ  ã                   ó
  — d dl mZmZ ddgZ G d„ de«      Z G d„ de«      Zedk(  r\d dlmZ  e ed«      d	«      Z	e	j                  d
«       e	j                  d«       e	j                  dddd
«       e	j                  «        yy)é    )Ú	FilterPenÚFilterPointPenÚTransformPenÚTransformPointPenc                   óR   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zˆ xZS )r   zkPen that transforms all coordinates using a Affine transformation,
    and passes them to another pen.
    c                 ó˜   •— t         t        | �  |«       t        |d«      sddlm}  ||Ž }|| _        |j                  | _        g | _	        y)zÛThe 'outPen' argument is another pen object. It will receive the
        transformed coordinates. The 'transformation' argument can either
        be a six-tuple, or a fontTools.misc.transform.Transform object.
        ÚtransformPointr   ©Ú	TransformN)
Úsuperr   Ú__init__ÚhasattrÚfontTools.misc.transformr   Ú_transformationr	   Ú_transformPointÚ_stack)ÚselfÚoutPenÚtransformationr   Ú	__class__s       €úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/pens/transformPen.pyr   zTransformPen.__init__   sI   ø€ ô
 	Œl˜DÑ*¨6Ô2Ü�~Ð'7Ô8Ý:á&¨Ð7ˆNØ-ˆÔØ-×<Ñ<ˆÔØˆ�ó    c                 óX   — | j                   j                  | j                  |«      «       y ©N)Ú_outPenÚmoveTor   ©r   Úpts     r   r   zTransformPen.moveTo   ó   € Ø�‰×Ñ˜D×0Ñ0°Ó4Õ5r   c                 óX   — | j                   j                  | j                  |«      «       y r   )r   ÚlineTor   r   s     r   r!   zTransformPen.lineTo   r   r   c                 óT   —  | j                   j                  | j                  |«      Ž  y r   )r   ÚcurveToÚ_transformPoints©r   Úpointss     r   r#   zTransformPen.curveTo    s!   € Øˆ�‰×Ñ˜d×3Ñ3°FÓ;Ò<r   c                 ó”   — |d   €| j                  |d d «      d gz   }n| j                  |«      } | j                  j                  |Ž  y )Néÿÿÿÿ)r$   r   ÚqCurveTor%   s     r   r)   zTransformPen.qCurveTo#   sM   € Ø�"‰:ÐØ×*Ñ*¨6°#°2¨;Ó7¸4¸&Ñ@‰Fà×*Ñ*¨6Ó2ˆFØˆ�‰×Ñ˜vÒ&r   c                 óP   — | j                   }|D �cg c]
  } ||«      ‘Œ c}S c c}w r   )r   )r   r&   r	   r   s       r   r$   zTransformPen._transformPoints*   s&   € Ø×-Ñ-ˆØ-3Ö4 r‘˜rÕ"Ò4Ð4ùÒ4s   ‘#c                 ó8   — | j                   j                  «        y r   )r   Ú	closePath©r   s    r   r,   zTransformPen.closePath.   s   € Ø�‰×ÑÕ r   c                 ó8   — | j                   j                  «        y r   )r   ÚendPathr-   s    r   r/   zTransformPen.endPath1   s   € Ø�‰×ÑÕr   c                 ór   — | j                   j                  |«      }| j                  j                  ||«       y r   ©r   Ú	transformr   ÚaddComponent)r   Ú	glyphNamer   s      r   r3   zTransformPen.addComponent4   s,   € Ø×-Ñ-×7Ñ7¸ÓGˆØ�‰×!Ñ! )¨^Õ<r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r#   r)   r$   r,   r/   r3   Ú__classcell__©r   s   @r   r   r      s5   ø„ ñôò6ò6ò=ò'ò5ò!òö=r   c                   ó0   ‡ — e Zd ZdZˆ fd„Zdd„Zd„ Zˆ xZS )r   a^  PointPen that transforms all coordinates using a Affine transformation,
    and passes them to another PointPen.

    For example::

        >>> from fontTools.pens.recordingPen import RecordingPointPen
        >>> rec = RecordingPointPen()
        >>> pen = TransformPointPen(rec, (2, 0, 0, 2, -10, 5))
        >>> v = iter(rec.value)
        >>> pen.beginPath(identifier="contour-0")
        >>> next(v)
        ('beginPath', (), {'identifier': 'contour-0'})

        >>> pen.addPoint((100, 100), "line")
        >>> next(v)
        ('addPoint', ((190, 205), 'line', False, None), {})

        >>> pen.endPath()
        >>> next(v)
        ('endPath', (), {})

        >>> pen.addComponent("a", (1, 0, 0, 1, -10, 5), identifier="component-0")
        >>> next(v)
        ('addComponent', ('a', <Transform [2 0 0 2 -30 15]>), {'identifier': 'component-0'})
    c                 ó‚   •— t         ‰| �  |«       t        |d«      sddlm}  ||Ž }|| _        |j                  | _        y)zîThe 'outPointPen' argument is another point pen object.
        It will receive the transformed coordinates.
        The 'transformation' argument can either be a six-tuple, or a
        fontTools.misc.transform.Transform object.
        r	   r   r
   N)r   r   r   r   r   r   r	   r   )r   ÚoutPointPenr   r   r   s       €r   r   zTransformPointPen.__init__T   s@   ø€ ô 	‰Ñ˜Ô%Ü�~Ð'7Ô8Ý:á&¨Ð7ˆNØ-ˆÔØ-×<Ñ<ˆÕr   c                 ób   —  | j                   j                  | j                  |«      |||fi |¤Ž y r   )r   ÚaddPointr   )r   r   ÚsegmentTypeÚsmoothÚnameÚkwargss         r   r?   zTransformPointPen.addPointb   s2   € Øˆ�‰×ÑØ× Ñ  Ó$ k°6¸4ñ	
ØCIó	
r   c                 óv   — | j                   j                  |«      } | j                  j                  ||fi |¤Ž y r   r1   )r   ÚbaseGlyphNamer   rC   s       r   r3   zTransformPointPen.addComponentg   s3   € Ø×-Ñ-×7Ñ7¸ÓGˆØ!ˆ�‰×!Ñ! -°ÑJÀ6ÓJr   )NFN)r5   r6   r7   r8   r   r?   r3   r9   r:   s   @r   r   r   9   s   ø„ ñô4=ó
ö
Kr   Ú__main__)Ú_TestPenN)é   r   g      à?rH   iöÿÿÿr   )r   r   )r   éd   )é2   éK   )é<   rJ   )rJ   é   )ÚfontTools.pens.filterPenr   r   Ú__all__r   r   r5   ÚfontTools.pens.basePenrG   Úpenr   r!   r#   r,   © r   r   ú<module>rS      s‡   ðß >ð Ð.Ð
/€ô/=�9ô /=ôd0K˜ô 0Kðf ˆzÒÝ/á
‘x “~Ð'=Ó
>€CØ‡J�JˆvÔØ‡J�JˆxÔØ‡K�K�˜( H¨fÔ5Ø‡M�M…Oð r   