Ë
    £ehi  ã                   óV   — d Z ddlmZ ddlmZmZmZmZ ddlZdgZ	d„ Z
 G d„ de«      Zy)z#Calculate the perimeter of a glyph.é    )ÚBasePen)ÚapproximateQuadraticArcLengthCÚcalcQuadraticArcLengthCÚapproximateCubicArcLengthCÚcalcCubicArcLengthCNÚPerimeterPenc                 óR   — t        j                  | d   |d   z
  | d   |d   z
  «      S )Nr   é   )ÚmathÚhypot)Úp0Úp1s     úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/pens/perimeterPen.pyÚ	_distancer      s+   € Ü�:‰:�b˜‘e˜b ™e‘m R¨¡U¨R°©U¡]Ó3Ð3ó    c                   óJ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zy)r   Nc                 óà   — t        j                  | |«       d| _        || _        |dk\  r| j                  n| j
                  | _        |dk\  r| j                  | _	        y | j                  | _	        y )Nr   gú~j¼t“X?gú~j¼t“H?)
r   Ú__init__ÚvalueÚ	toleranceÚ_addCubicQuadratureÚ_addCubicRecursiveÚ	_addCubicÚ_addQuadraticQuadratureÚ_addQuadraticExactÚ_addQuadratic)ÚselfÚglyphsetr   s      r   r   zPerimeterPen.__init__   sq   € Ü×Ñ˜˜xÔ(ØˆŒ
Ø"ˆŒð )2°VÒ(;ˆD×$Ò$À×AXÑAXð 	Œð
 ˜GÒ#ð ×(Ñ(ð 	Õð ×(Ñ(ð 	Õr   c                 ó   — || _         y ©N)Ú_PerimeterPen__startPoint©r   r   s     r   Ú_moveTozPerimeterPen._moveTo'   s
   € ØˆÕr   c                 óz   — | j                  «       }|| j                  k7  r| j                  | j                  «       y y r    )Ú_getCurrentPointr!   Ú_lineTor"   s     r   Ú
_closePathzPerimeterPen._closePath*   s5   € Ø×"Ñ"Ó$ˆØ�×"Ñ"Ò"Ø�L‰L˜×*Ñ*Õ+ð #r   c                 ób   — | j                  «       }| xj                  t        ||«      z  c_        y r    )r%   r   r   )r   r   r   s      r   r&   zPerimeterPen._lineTo/   s%   € Ø×"Ñ"Ó$ˆØ�
Š
”i  BÓ'Ñ'Ž
r   c                 óD   — | xj                   t        |||«      z  c_         y r    )r   r   ©r   Úc0Úc1Úc2s       r   r   zPerimeterPen._addQuadraticExact3   s   € Ø�
Š
Ô-¨b°"°bÓ9Ñ9Ž
r   c                 óD   — | xj                   t        |||«      z  c_         y r    )r   r   r*   s       r   r   z$PerimeterPen._addQuadraticQuadrature6   s   € Ø�
Š
Ô4°R¸¸RÓ@Ñ@Ž
r   c                 ón   — | j                  «       }| j                  t        |Ž t        |Ž t        |Ž «       y r    )r%   r   Úcomplex)r   r   Úp2r   s       r   Ú_qCurveToOnezPerimeterPen._qCurveToOne9   s.   € Ø×"Ñ"Ó$ˆØ×Ñœ7 B˜<¬°"¨´wÀ°|ÕDr   c           	      ó\   — | xj                   t        ||||| j                  «      z  c_         y r    )r   r   r   ©r   r+   r,   r-   Úc3s        r   r   zPerimeterPen._addCubicRecursive=   s"   € Ø�
Š
Ô)¨"¨b°"°b¸$¿.¹.ÓIÑIŽ
r   c                 óF   — | xj                   t        ||||«      z  c_         y r    )r   r   r4   s        r   r   z PerimeterPen._addCubicQuadrature@   s   € Ø�
Š
Ô0°°R¸¸RÓ@Ñ@Ž
r   c                 ó|   — | j                  «       }| j                  t        |Ž t        |Ž t        |Ž t        |Ž «       y r    )r%   r   r0   )r   r   r1   Úp3r   s        r   Ú_curveToOnezPerimeterPen._curveToOneC   s2   € Ø×"Ñ"Ó$ˆØ�‰”w �|¤W¨b \´7¸B°<ÄÈ"ÀÕNr   )Ng{®Gázt?)Ú__name__Ú
__module__Ú__qualname__r   r#   r'   r&   r   r   r2   r   r   r9   © r   r   r   r      s9   „ ó
ò"ò,ò
(ò:òAòEòJòAóOr   )Ú__doc__ÚfontTools.pens.basePenr   ÚfontTools.misc.bezierToolsr   r   r   r   r   Ú__all__r   r   r=   r   r   ú<module>rB      s7   ðá )å *÷ó ó ð Ð
€ò4ô0O�7õ 0Or   