ó
    oñ:iØ  ã                   ó  • S SK JrJr  SS/r " S S\5      r " S S\5      r\S:X  a\  S SKJr  \" \" S5      S	5      r	\	R                  S
5        \	R                  S5        \	R                  SSSS
5        \	R                  5         gg)é    )Ú	FilterPenÚFilterPointPenÚTransformPenÚTransformPointPenc                   ó\   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
 rS rSrU =r$ )r   é   zcPen that transforms all coordinates using a Affine transformation,
and passes them to another pen.
c                 ó    >• [         [        U ]  U5        [        US5      (       d  SSKJn  U" U6 nX l        UR                  U l        / U l	        g)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       €Ú^/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/pens/transformPen.pyr   ÚTransformPen.__init__   sJ   ø€ ô
 	Œl˜DÑ*¨6Ô2Ü�~Ð'7×8Ñ8Ý:á&¨Ð7ˆNØ-ÔØ-×<Ñ<ˆÔØˆ�ó    c                 óX   • U R                   R                  U R                  U5      5        g ©N)Ú_outPenÚmoveTor   ©r   Úpts     r   r   ÚTransformPen.moveTo   ó   € Ø�‰×Ñ˜D×0Ñ0°Ó4Õ5r   c                 óX   • U R                   R                  U R                  U5      5        g r   )r   ÚlineTor   r   s     r   r$   ÚTransformPen.lineTo   r"   r   c                 óT   • U R                   R                  " U R                  U5      6   g r   )r   ÚcurveToÚ_transformPoints©r   Úpointss     r   r'   ÚTransformPen.curveTo    s   € Ø�‰×Ò˜d×3Ñ3°FÓ;Ò<r   c                 ó–   • US   c  U R                  US S 5      S /-   nOU R                  U5      nU R                  R                  " U6   g )Néÿÿÿÿ)r(   r   ÚqCurveTor)   s     r   r.   ÚTransformPen.qCurveTo#   sK   € Ø�"‰:ÑØ×*Ñ*¨6°#°2¨;Ó7¸4¸&Ñ@‰Fà×*Ñ*¨6Ó2ˆFØ�‰×Ò˜vÒ&r   c                 óT   • U R                   nU Vs/ s H
  o2" U5      PM     sn$ s  snf r   )r   )r   r*   r
   r    s       r   r(   ÚTransformPen._transformPoints*   s*   € Ø×-Ñ-ˆÙ-3Ó4ªV r�˜rÖ"©VÑ4Ð4ùÒ4s   ‘%c                 ó8   • U R                   R                  5         g r   )r   Ú	closePath©r   s    r   r3   ÚTransformPen.closePath.   s   € Ø�‰×ÑÕ r   c                 ó8   • U R                   R                  5         g r   )r   ÚendPathr4   s    r   r7   ÚTransformPen.endPath1   s   € Ø�‰×ÑÕr   c                 óp   • U R                   R                  U5      nU R                  R                  X5        g r   ©r   Ú	transformr   ÚaddComponent)r   Ú	glyphNamer   s      r   r<   ÚTransformPen.addComponent4   s*   € Ø×-Ñ-×7Ñ7¸ÓGˆØ�‰×!Ñ! )Õ<r   )r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r$   r'   r.   r(   r3   r7   r<   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s:   ø† ñõò6ò6ò=ò'ò5ò!ò÷=ð =r   c                   ó<   ^ • \ rS rSrSrU 4S jrSS jrS rSrU =r	$ )r   é9   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U ]  U5        [        US5      (       d  SSKJn  U" U6 nX l        UR                  U l        g)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   ÚTransformPointPen.__init__T   sA   ø€ ô 	‰Ñ˜Ô%Ü�~Ð'7×8Ñ8Ý:á&¨Ð7ˆNØ-ÔØ-×<Ñ<ˆÕr   c                 ó`   • U R                   R                  " U R                  U5      X#U40 UD6  g r   )r   ÚaddPointr   )r   r    ÚsegmentTypeÚsmoothÚnameÚkwargss         r   rM   ÚTransformPointPen.addPointb   s.   € Ø�‰×ÒØ× Ñ  Ó$ k¸4ñ	
ØCIó	
r   c                 ót   • U R                   R                  U5      nU R                  R                  " X40 UD6  g r   r:   )r   ÚbaseGlyphNamer   rQ   s       r   r<   ÚTransformPointPen.addComponentg   s/   € Ø×-Ñ-×7Ñ7¸ÓGˆØ�‰×!Ò! -ÑJÀ6ÓJr   )r   r   )NFN)
r?   r@   rA   rB   rC   r   rM   r<   rD   rE   rF   s   @r   r   r   9   s   ø† ñõ4=ô
÷
Kð Kr   Ú__main__)Ú_TestPenN)é   r   g      à?rX   iöÿÿÿr   )r   r   )r   éd   )é2   éK   )é<   rZ   )rZ   é   )ÚfontTools.pens.filterPenr   r   Ú__all__r   r   r?   ÚfontTools.pens.basePenrW   Úpenr   r$   r'   r3   © r   r   Ú<module>rc      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   