+
    f7i  c                   s   ^ RI HtHt RR.t ! R R]4      t ! R R]4      t]R8X  d^   ^ RIHt ]! ]! R4      R	4      t	]	P                  R
4       ]	P                  R4       ]	P                  RRRR
4       ]	P                  4        R# R# )    )	FilterPenFilterPointPenTransformPenTransformPointPenc                   sf   a a ] tR t^t oRtV 3R ltR tR tR tR t	R t
R tR	 tR
 tRtVtV ;t# )r   zcPen that transforms all coordinates using a Affine transformation,
and passes them to another pen.
c                s   < \         \        V `  V4       \        VR4      '       g   ^ RIHp V! V!  pW n        VP                  V n        . V n	        R# )zThe '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.
transformPoint	TransformN)
superr   __init__hasattrfontTools.misc.transformr   _transformationr   _transformPoint_stack)selfZoutPentransformationr   	__class__   &&& B/usr/lib64/python3.14/site-packages/fontTools/pens/transformPen.pyr	   ZTransformPen.__init__   sJ    
 	lD*62~'788:&7N--<<    c                Z    V P                   P                  V P                  V4      4       R # N)_outPenmoveTor   r   pt   &&r   r   ZTransformPen.moveTo       D0045r   c                r   r   )r   lineTor   r   r   r   r   ZTransformPen.lineTo   r   r   c                sX    V P                   P                  ! V P                  V4      !   R # r   )r   curveTo_transformPointsr   points   &*r   r   ZTransformPen.curveTo    s    d33F;<r   c                s    VR,          f   V P                  VRR 4      R.,           pMV P                  V4      pV P                  P                  ! V!   R# )i   Ni)r   r   qCurveTor    r"   r   r#   ZTransformPen.qCurveTo#   sK    ":**6#2;74&@F**62Fv&r   c                sR    V P                   pV Uu. uF
  q2! V4      NK  	  up# u upi r   )r   )r   r!   r   r   s   &&  r   r   ZTransformPen._transformPoints*   s*    ---34Vrr"V444s   $c                :    V P                   P                  4        R # r   )r   	closePathr      &r   r%   ZTransformPen.closePath.   s     r   c                r$   r   )r   endPathr&   r'   r   r(   ZTransformPen.endPath1   s    r   c                sr    V P                   P                  V4      pV P                  P                  W4       R # r   r   Z	transformr   addComponent)r   Z	glyphNamer   s   &&&r   r*   ZTransformPen.addComponent4   s*    --77G!!)<r   )r   r   r   )__name__
__module____qualname____firstlineno____doc__r	   r   r   r   r#   r   r%   r(   r*   __static_attributes____classdictcell____classcell__r   Z__classdict__   @@r   r   r      s<     66='5!= =r   c                   sF   a a ] tR t^9t oRtV 3R ltRR ltR tRtVt	V ;t
# )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                s   < \         SV `  V4       \        VR4      '       g   ^ RIHp V! V!  pW n        VP                  V n        R# )zThe '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   N)r   r	   r
   r   r   r   r   r   )r   ZoutPointPenr   r   r   r   r   r	   ZTransformPointPen.__init__T   sA     	%~'788:&7N--<<r   c                sb    V P                   P                  ! V P                  V4      W#V3/ VB  R # r   )r   addPointr   )r   r   ZsegmentTypeZsmoothZnamekwargss   &&&&&,r   r5   ZTransformPointPen.addPointb   s.      $k4	
CI	
r   c                sv    V P                   P                  V4      pV P                  P                  ! W3/ VB  R # r   r)   )r   ZbaseGlyphNamer   r6   s   &&&,r   r*   ZTransformPointPen.addComponentg   s/    --77G!!-J6Jr   )r   r   )NFN)r+   r,   r-   r.   r/   r	   r5   r*   r0   r1   r2   r3   r4   r   r   r   9   s      4=

K Kr   Z__main__)_TestPenN)   r    g      ?r8   ir    )r    r    )r    id   )2   iK   )i<   r9   )r9   i   )ZfontTools.pens.filterPenr   r   Z__all__r   r   r+   ZfontTools.pens.basePenr7   Zpenr   r   r   r%   ) r   r   <module>r:      s    > .
//=9 /=d0K 0Kf z/
x~'=
>CJJvJJxKK(Hf5MMO r   