§
    ¢”ji  ã                   ó^   — 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dS )z#Calculate the perimeter of a glyph.é    )ÚBasePen)ÚapproximateQuadraticArcLengthCÚcalcQuadraticArcLengthCÚapproximateCubicArcLengthCÚcalcCubicArcLengthCNÚPerimeterPenc                 óh   — t          j        | d         |d         z
  | d         |d         z
  ¦  «        S )Nr   é   )ÚmathÚhypot)Úp0Úp1s     új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/pens/perimeterPen.pyÚ	_distancer      s,   € ÝŒ:�b˜”e˜b œe‘m R¨¤U¨R°¬U¡]Ñ3Ô3Ð3ó    c                   óL   — 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dS )r   Nç{®Gázt?c                 ó°   — t          j        | |¦  «         d| _        || _        |dk    r| j        n| j        | _        |dk    r| j        n| j        | _	        d S )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__   sp   € ÝÔ˜˜xÑ(Ô(Ð(ØˆŒ
Ø"ˆŒð )2°VÒ(;Ð(;ˆDÔ$Ð$ÀÔAXð 	Œð
 ˜GÒ#Ð#ð Ô(Ð(àÔ(ð 	ÔÐÐr   c                 ó   — || _         d S ©N)Ú_PerimeterPen__startPoint©r   r   s     r   Ú_moveTozPerimeterPen._moveTo'   s   € ØˆÔÐÐr   c                 ó|   — |                       ¦   «         }|| j        k    r|                      | j        ¦  «         d S d S r!   )Ú_getCurrentPointr"   Ú_lineTor#   s     r   Ú
_closePathzPerimeterPen._closePath*   sD   € Ø×"Ò"Ñ$Ô$ˆØ�Ô"Ò"Ð"Ø�LŠL˜Ô*Ñ+Ô+Ð+Ð+Ð+ð #Ð"r   c                 ój   — |                       ¦   «         }| xj        t          ||¦  «        z  c_        d S r!   )r&   r   r   )r   r   r   s      r   r'   zPerimeterPen._lineTo/   s1   € Ø×"Ò"Ñ$Ô$ˆØˆ
Œ
•i  BÑ'Ô'Ñ'ˆ
Œ
ˆ
ˆ
r   c                 óD   — | xj         t          |||¦  «        z  c_         d S r!   )r   r   ©r   Úc0Úc1Úc2s       r   r   zPerimeterPen._addQuadraticExact3   s#   € Øˆ
Œ
Õ-¨b°"°bÑ9Ô9Ñ9ˆ
Œ
ˆ
ˆ
r   c                 óD   — | xj         t          |||¦  «        z  c_         d S r!   )r   r   r+   s       r   r   z$PerimeterPen._addQuadraticQuadrature6   s#   € Øˆ
Œ
Õ4°R¸¸RÑ@Ô@Ñ@ˆ
Œ
ˆ
ˆ
r   c                 ó†   — |                       ¦   «         }|                      t          |Ž t          |Ž t          |Ž ¦  «         d S r!   )r&   r   Úcomplex)r   r   Úp2r   s       r   Ú_qCurveToOnezPerimeterPen._qCurveToOne9   s=   € Ø×"Ò"Ñ$Ô$ˆØ×Ò�7 B˜<­°"¨µwÀ°|ÑDÔDÐDÐDÐDr   c           	      óR   — | xj         t          ||||| j        ¦  «        z  c_         d S r!   )r   r   r   ©r   r,   r-   r.   Úc3s        r   r   zPerimeterPen._addCubicRecursive=   s)   € Øˆ
Œ
Õ)¨"¨b°"°b¸$¼.ÑIÔIÑIˆ
Œ
ˆ
ˆ
r   c                 óF   — | xj         t          ||||¦  «        z  c_         d S r!   )r   r   r5   s        r   r   z PerimeterPen._addCubicQuadrature@   s%   € Øˆ
Œ
Õ0°°R¸¸RÑ@Ô@Ñ@ˆ
Œ
ˆ
ˆ
r   c                 ó–   — |                       ¦   «         }|                      t          |Ž t          |Ž t          |Ž t          |Ž ¦  «         d S r!   )r&   r   r1   )r   r   r2   Úp3r   s        r   Ú_curveToOnezPerimeterPen._curveToOneC   sA   € Ø×"Ò"Ñ$Ô$ˆØ�Š•w �|¥W¨b \µ7¸B°<ÅÈ"ÀÑNÔNÐNÐNÐNr   )Nr   )Ú__name__Ú
__module__Ú__qualname__r   r$   r(   r'   r   r   r3   r   r   r:   © r   r   r   r      sÀ   € € € € € ð
ð 
ð 
ð 
ð"ð ð ð,ð ,ð ,ð
(ð (ð (ð:ð :ð :ðAð Að AðEð Eð EðJð Jð JðAð Að AðOð Oð Oð Oð Or   )Ú__doc__ÚfontTools.pens.basePenr   ÚfontTools.misc.bezierToolsr   r   r   r   r   Ú__all__r   r   r>   r   r   ú<module>rC      s»   ðà )Ð )à *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð €€€ð Ð
€ð4ð 4ð 4ð0Oð 0Oð 0Oð 0Oð 0O�7ñ 0Oô 0Oð 0Oð 0Oð 0Or   