+
    f7i  c                   sH    ^ RI Ht ^ RIHt ^ RIHt ^ RIt ! R R]4      tR# )i    )quadratic_to_curves)ContourFilterPen)ReverseContourPenNc                   sF   a a ] tR t^t oRtRV 3R lltR tR tRtVt	V ;t
# )Qu2CuPena  A filter pen to convert quadratic bezier splines to cubic curves
using the FontTools SegmentPen protocol.

Args:

    other_pen: another SegmentPen used to draw the transformed outline.
    max_err: maximum approximation error in font units. For optimal results,
        if you know the UPEM of the font, we recommend setting this to a
        value equal, or close to UPEM / 1000.
    reverse_direction: flip the contours' direction but keep starting point.
    stats: a dictionary counting the point numbers of cubic segments.
c                sp   < V'       d   \        V4      p\        SV `	  V4       W0n        W n        WPn        R # )N)r   Zsuper__init__	all_cubicmax_errstats)selfZ	other_penr   r   Zreverse_directionr   	__class__s   &&&&&&>/usr/lib64/python3.14/site-packages/fontTools/pens/qu2cuPen.pyr   ZQu2CuPen.__init__$   s.     ))4I#"
    c              #  s~  "   \        WP                  V P                  R 7      pV P                  eU   V FN  p\	        \        V4      ^,
          4      pV P                  P                  V^ 4      ^,           V P                  V&   KP  	  V F/  p\        V4      ^8X  d   RVR,          3x  K"  RVR,          3x  K1  	  R# 5i))r   NZcurveTo:i   NNqCurveTo)r    r   r   r   ZstrlenZget)r   ZqZcurvesZcurveZns   &&   r
   _quadratics_to_curveZQu2CuPen._quadratics_to_curve3   s     $QO::!E
Q' $

q! 4q 8

1   E5zQ %),,!59--	 s   B;B=c                sn   . pR p. pV F  w  rVVR8X  d^   V P                   '       g   \        V4      ^8  d<   VR,          e1   VR,          f   \        R4      hVP                  V3V,           4       M<V'       d#   VP	                  V P                  V4      4       . pVP                  WV34       V'       d
   VR,          MR pK  	  V'       d!   VP	                  V P                  V4      4       V P                   '       Eg6   Tp. pV EF*  w  rVVR8X  Ed   V'       Ed   VR,          ^ ,          R8X  d   VR,          ^,          R,          pVR,          ^,          R,          pV^ ,          p	Ve   \        P                  ! V	^ ,          V^ ,          ,
          V^ ,          V^ ,          ,
          4      '       dk   \        P                  ! V	^,          V^,          ,
          V^,          V^,          ,
          4      '       d$   VR,          ^,          R R V,           p
WZ3VR&   EK  VP                  WV34       EK-  	  V# )Nr   z4oncurve-less contours with all_cubic not implementedii)r   r   ZNotImplementedErrorZappendZextendr   mathZisclose)r   ZcontourZ
quadraticsZ	currentPtZ
newContourZopZargsZpt0Zpt1Zpt2ZnewArgss   &&         r
   filterContourZQu2CuPen.filterContour?   s   
	
HBZ3t9q=T"X5I8#-N  !!9,"56%%d&?&?
&KL!#J!!2*-$(RdI   d77
CD~~~ GJ##

z"~a7HJ7V$R.+B/C$R.+B/Cq'C LLQ#a&#a&3q6/JJ LLQ#a&#a&3q6/JJ",R."3CR"84"?*,
2 !!2*- $  r   )r   r   r   )FFN)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   Z__static_attributes__Z__classdictcell__Z__classcell__)r	   Z__classdict__s   @@r
   r   r      s     
.* *r   r   )ZfontTools.qu2cur    ZfontTools.pens.filterPenr   Z fontTools.pens.reverseContourPenr   r   r   ) r   r
   <module>r      s"     0 5 > S Sr   