)Ej ~ddlmZddlmZmZmZmZddlmZm Z ddl m Z ddl m Z mZddlmZGddeZd S) ) annotations)AnyDictListTuple)commandsToProgramspecializeCommands) T2CharString)otRound roundFunc)BasePencjeZdZdZ d$d%fd Zd&dZd'dZd'dZd(dZd)dZ d)dZ d*d+d#Z xZ S),T2CharStringPenaPen to draw Type 2 CharStrings. The 'roundTolerance' argument controls the rounding of point coordinates. It is defined as the maximum absolute difference between the original float and the rounded integer value. The default tolerance of 0.5 means that all floats are rounded to integer; a value of 0 disables rounding; values in between will only round floats which are close to their integral part within the tolerated range. ?Fwidth float | NoneglyphSetDict[str, Any] | NoneroundTolerancefloatCFF2boolreturnNonectt||t||_||_||_g|_d|_dS)N)rr) superr__init__r round_CFF2_width _commands_p0)selfrrrr __class__s PC:\PYTHON\MyICR_Suite\python\Lib\site-packages\fontTools/pens/t2CharStringPen.pyrzT2CharStringPen.__init__sR ot$$--h777~..   @BptTuple[float, float] List[float]c|j}||d||dfx}|_|d|dz |d|dz gS)Nr)r"r)r#r'p0s r%_pzT2CharStringPen._p's] XBqE**DJJr!u,=,=>>TX11 r!ur!u}--r&cd|jd||fdS)Nrmovetor!appendr-r#r's r%_moveTozT2CharStringPen._moveTo,- y$''"++677777r&cd|jd||fdS)Nrlinetor0r2s r%_lineTozT2CharStringPen._lineTo/r4r&pt1pt2pt3c|j}|jd||||z||zfdS)N rrcurveto)r-r!r1)r#r8r9r:r-s r% _curveToOnezT2CharStringPen._curveToOne2sN W {BBsGGbbgg,=3,GHIIIIIr&cdSNr#s r% _closePathzT2CharStringPen._closePath; r&cdSr?r@rAs r%_endPathzT2CharStringPen._endPath>rCr&NTprivate Dict | None globalSubrs List | Noneoptimizer cL|j}|r|jsdnd}t|d|}t|}|j9|jr Jd|dt |j|js|dt|||}|S) N0iF)generalizeFirstmaxstackz7CFF2 does not allow encoding glyph width in CharString.rendchar)programrFrH) r!rr rr insertr r1r )r#rFrHrJcommandsrNrP charStrings r% getCharStringzT2CharStringPen.getCharStringAs >  !%4rrH)%(H$H-- ; "J I IH I I NN1gdk22 3 3 3z & NN9 % % %!W+   r&)rF) rrrrrrrrrr)r'r(rr))r'r(rr)r8r(r9r(r:r(rr)rr)NNT)rFrGrHrIrJrrr ) __name__ __module__ __qualname____doc__rr-r3r7r=rBrErT __classcell__)r$s@r%rrs!$       .... 88888888JJJJ        $#' r&rN) __future__rtypingrrrrfontTools.cffLib.specializerrr fontTools.misc.psCharStringsr fontTools.misc.roundToolsr r fontTools.pens.basePenr rr@r&r%r`s#"""""))))))))))))NNNNNNNN55555588888888******JJJJJgJJJJJr&