+
    f7ii  c                   sX    R t ^ RIHt ^ RIHtHtHtHt ^ RItR.t	R t
 ! R R]4      tR# )z#Calculate the perimeter of a glyph.)BasePen)approximateQuadraticArcLengthCcalcQuadraticArcLengthCapproximateCubicArcLengthCcalcCubicArcLengthCNPerimeterPenc                 s    \         P                  ! V ^ ,          V^ ,          ,
          V ^,          V^,          ,
          4      # )    )mathZhypot)p0p1   &&B/usr/lib64/python3.14/site-packages/fontTools/pens/perimeterPen.py	_distancer      s+    ::bebemRURU]33    c                   s`   a  ] tR t^t o RR ltR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )r   Nc                s    \         P                  ! W4       ^ V n        W n        VR8  d   V P                  MV P
                  V n        VR8  d   V P                  V n	        R# V P                  V n	        R# )r   g~jtX?g~jtH?N)
r    __init__value	tolerance_addCubicQuadrature_addCubicRecursive	_addCubic_addQuadraticQuadrature_addQuadraticExact_addQuadratic)selfZglyphsetr   s   &&&r   r   ZPerimeterPen.__init__   sm    (
" )2V(;D$$AXAX 	
 G# (( 	 (( 	r   c                s    Wn         R # N)_PerimeterPen__startPointr   r   r
   r   _moveToZPerimeterPen._moveTo'   s    r   c                s    V P                  4       pWP                  8w  d   V P                  V P                  4       R # R # r   )_getCurrentPointr   _lineTor   s   & r   
_closePathZPerimeterPen._closePath*   s3    ""$"""LL**+ #r   c                sj    V P                  4       pV ;P                  \        W!4      ,          un        R # r   )r   r   r   )r   r	   r   s   && r   r   ZPerimeterPen._lineTo/   s#    ""$

i''
r   c                L    V ;P                   \        WV4      ,          un         R # r   )r   r   r   c0c1c2   &&&&r   r   ZPerimeterPen._addQuadraticExact3   s    

-bb99
r   c                r   r   )r   r   r    r$   r   r   Z$PerimeterPen._addQuadraticQuadrature6   s    

4RR@@
r   c                sv    V P                  4       pV P                  \        V!  \        V!  \        V!  4       R # r   )r   r   complex)r   r	   p2r   s   &&& r   _qCurveToOneZPerimeterPen._qCurveToOne9   s.    ""$7B<"w|Dr   c           	     sb    V ;P                   \        WW4V P                  4      ,          un         R # r   )r   r   r   r   r!   r"   r#   Zc3   &&&&&r   r   ZPerimeterPen._addCubicRecursive=   s    

)""$..II
r   c                sL    V ;P                   \        WW44      ,          un         R # r   )r   r   r(   r)   r   r   Z PerimeterPen._addCubicQuadrature@   s    

0@@
r   c           	     s    V P                  4       pV P                  \        V!  \        V!  \        V!  \        V!  4       R # r   )r   r   r%   )r   r	   r&   Zp3r   s   &&&& r   _curveToOneZPerimeterPen._curveToOneC   s2    ""$w|Wb\7B<"Nr   )Z__startPointr   r   r   r   )Ng{Gzt?)Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r   r   r   r   r   r'   r   r   r*   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sB     
",
(:AEJAO Or   )Z__doc__ZfontTools.pens.basePenr    ZfontTools.misc.bezierToolsr   r   r   r   r   Z__all__r   r   ) r   r   <module>r+      s7    ) *   
40O7 0Or   