)Ej^dZddlmZddlmZmZmZmZddlZdgZ dZ GddeZ dS)z#Calculate the perimeter of a glyph.)BasePen)approximateQuadraticArcLengthCcalcQuadraticArcLengthCapproximateCubicArcLengthCcalcCubicArcLengthCN PerimeterPenchtj|d|dz |d|dz S)Nr)mathhypot)p0p1s MC:\PYTHON\MyICR_Suite\python\Lib\site-packages\fontTools/pens/perimeterPen.py _distancers, :bebemRURU] 3 33cLeZdZd dZdZdZdZdZdZd Z d Z d Z d Z dS)rN{Gzt?ctj||d|_||_|dkr|jn|j|_|dkr|jn|j|_ dS)Nrg~jtX?g~jtH?) r__init__value tolerance_addCubicQuadrature_addCubicRecursive _addCubic_addQuadraticQuadrature_addQuadraticExact _addQuadratic)selfglyphsetrs rrzPerimeterPen.__init__spx((( " )2V(;(;D $ $AX  G##  ( (( rc||_dSN)_PerimeterPen__startPointrr s r_moveTozPerimeterPen._moveTo'src||}||jkr||jdSdSr!)_getCurrentPointr"_lineTor#s r _closePathzPerimeterPen._closePath*sD  " " $ $ " " " LL* + + + + + # "rcj|}|xjt||z c_dSr!)r&rr)rrr s rr'zPerimeterPen._lineTo/s1  " " $ $ iB''' rcD|xjt|||z c_dSr!)rrrc0c1c2s rrzPerimeterPen._addQuadraticExact3s# -b"b999 rcD|xjt|||z c_dSr!)rrr+s rrz$PerimeterPen._addQuadraticQuadrature6s# 4RR@@@ rc|}|t|t|t|dSr!)r&rcomplex)rrp2r s r _qCurveToOnezPerimeterPen._qCurveToOne9s=  " " $ $ 7B<"w|DDDDDrc R|xjt|||||jz c_dSr!)rrrrr,r-r.c3s rrzPerimeterPen._addCubicRecursive=s) )"b"b$.III rcF|xjt||||z c_dSr!)rrr5s rrz PerimeterPen._addCubicQuadrature@s% 0RR@@@ rc|}|t|t|t|t|dSr!)r&rr1)rrr2p3r s r _curveToOnezPerimeterPen._curveToOneCsA  " " $ $ w|Wb\7B<"NNNNNr)Nr) __name__ __module__ __qualname__rr$r(r'rrr3rrr:rrrrs    ",,, (((:::AAAEEEJJJAAAOOOOOr) __doc__fontTools.pens.basePenrfontTools.misc.bezierToolsrrrrr __all__rrr>rrrCs))******    4440O0O0O0O0O70O0O0O0O0Or