;ò GÒ Fc@stdklZdkZdklZlZlZlZlZydklZl Z Wn%e j od„Zd„Z nXdk Z dk Z dk lZl Z lZlZlZdkZdk lZdk lZyegƒWnej od „ZnXyegƒWnej od „ZnXeZd fd „ƒYZd efd„ƒYZd„Zd„Zdd„Z d„Z!d„Z"dfd„ƒYZ#dfd„ƒYZ$de$fd„ƒYZ%de$fd„ƒYZ&de$fd„ƒYZ'de$fd „ƒYZ(d!e$fd"„ƒYZ)d#e$fd$„ƒYZ*d%e$fd&„ƒYZ+d'e$fd(„ƒYZ,d)e$fd*„ƒYZ-d+e$fd,„ƒYZ.d-e&fd.„ƒYZ/d/e'fd0„ƒYZ0d1e(fd2„ƒYZ1d3e)fd4„ƒYZ2d5e*fd6„ƒYZ3d7e+fd8„ƒYZ4d9e-fd:„ƒYZ5d;e,fd<„ƒYZ6d=e.fd>„ƒYZ7d?e$fd@„ƒYZ8dAe$fdB„ƒYZ9dCfdD„ƒYZ:dEe:fdF„ƒYZ;dGe:fdH„ƒYZ<dIe:fdJ„ƒYZ=dKe:fdL„ƒYZ>dMe:fdN„ƒYZ?dOe;fdP„ƒYZ@dQe<fdR„ƒYZAdSe=fdT„ƒYZBdUe>fdV„ƒYZCdWe?fdX„ƒYZDdS(Y(s nested_scopesN(scosssinstansacosspi(sradianssdegreescCs|tdSdS(Ni´(sxspi(sx((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysradians scCs|dtSdS(Ni´(sxspi(sx((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysdegrees!s(sNormpathExceptionsnormpaths normsubpaths normline_pts normcurve_pt(sset(sinvalidcCstd„|dƒSdS(NcCs||S(N(sxsy(sxsy((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys1si(sreduceslist(slist((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyssum0scCsttt|ƒƒ|ƒSdS(N(szipsxrangeslenslist(slist((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys enumerate7ss_markercBstZRS(N(s__name__s __module__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys_marker=ss PathExceptioncBstZRS(N(s__name__s __module__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys PathExceptionBsc CsÁddg} |d|d||}d|d|d|}||}||d||} | djoó|djod |t i | ƒ}nd |t i | ƒ}y|d|} Wnt j on1Xd| jo djno| i| ƒny|d|} Wnt j oq`Xd| jo djno| i| ƒq`ngi}| D]0} ||| d|| d|| |ƒqn~} t| Œt| ŒfSdS( Niiiiif0.5f1.0f1.5(stcsx3sx2sx1sx0sasbscsssmathssqrtsqstsZeroDivisionErrorsappends_[1]spsminsmax( sx0sx1sx2sx3sas_[1]scsbsqspssststc((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys_bezierpolyrangeHs.    Gc Cs(||} | djotSn||t|ƒ||t|ƒf\} }||t|ƒ||t|ƒf\} } |ddt| dƒdt| dƒ}| |t|ƒ||t|ƒf\}} | |t|ƒ| |t|ƒf\}}t| ||| ||| | ƒSdS(s>generate the best bezier curve corresponding to an arc segmentiiiiiN(sphi2sphi1sdphisNonesx_ptsr_ptscossy_ptssinsx0_ptsy0_ptsx3_ptsy3_ptslsx1_ptsy1_ptsx2_ptsy2_pts normcurve_pt(sx_ptsy_ptsr_ptsphi1sphi2sx1_ptsx2_ptslsy2_ptsy3_ptsx0_ptsy1_ptsdphisx3_ptsy0_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys _arctobcurveks  .....i-c CsVg} t|ƒ}t|ƒ}t|ƒ}||jo/|ti||dtƒddt}nE||dtjo/|ti||dtƒddt}n|djp||djogSnt t d|||ƒƒd}d|||}xGt |ƒD]9}| it||||||||d|ƒƒqW| SdS(Niiif1.0(sapathsradianssphi1sphi2sdphimaxsmathsfloorspisr_ptsabssints subdivisionssdphisrangesisappends _arctobcurvesx_ptsy_pt( sx_ptsy_ptsr_ptsphi1sphi2sdphimaxsisdphis subdivisionssapath((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys_arctobezierpath€s     //" 7cCs6||tt|ƒƒ||tt|ƒƒfSdS(s$return starting point of arc segmentN(sx_ptsr_ptscossradianssanglesy_ptssin(sx_ptsy_ptsr_ptsangle((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys _arcpoint™scCsÚt|ƒ} t|ƒ} t||||ƒ\}}t||||ƒ\} }| | jo/| t i| | dtƒddt} n| dt i| tdtƒdtjot|| ƒ} n ||} | dt i| dtddtƒddtjot||ƒ}n ||}| dt i| dtƒdtjot|| ƒ}n ||}| dt i| tddtƒddtjot||ƒ} n ||} | ||| fSdS(Niiif3.0f7.0f5.0(sradianssangle1sphi1sangle2sphi2s _arcpointsx_ptsy_ptsr_ptssarcx_ptssarcy_ptsearcx_ptsearcy_ptsmathsfloorspismins minarcx_pts minarcy_ptsmaxs maxarcx_pts maxarcy_pt(sx_ptsy_ptsr_ptsangle1sangle2ssarcy_pts maxarcx_ptsearcy_pts minarcy_pts maxarcy_ptsphi2sphi1searcx_pts minarcx_ptssarcx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys _arcbboxdatas&   /. : * 6 scontextcBstZdZd„ZRS(scontext for pathitemcCs(||_||_||_||_dS(sinitializes a context for path items x_pt, y_pt are the currentpoint. subfirstx_pt, subfirsty_pt are the starting point of the current subpath. There are no invalid contexts, i.e. all variables need to be set to integer or float numbers. N(sx_ptsselfsy_pts subfirstx_pts subfirsty_pt(sselfsx_ptsy_pts subfirstx_pts subfirsty_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ùs    (s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscontextÕs spathitemcBsPtZdZd„Zd„Zd„Zed„Zd„Zd„Z d„Z RS(selement of a PS style pathcCs tƒ‚dS(N(sNotImplementedError(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ëscCstd|ƒ‚dS(sØcreates a context from the current pathitem Returns a context instance. Is called, when no context has yet been defined, i.e. for the very first pathitem. Most of the pathitems do not provide this method. Note, that you should pass the context created by createcontext to updatebbox and updatenormpath of successive pathitems only; use the context-free createbbox and createnormpath for the first pathitem instead. s,path must start with moveto or the like (%r)N(s PathExceptionsself(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createcontextîs cCstd|ƒ‚dS(sOcreates a bbox from the current pathitem Returns a bbox instance. Is called, when a bbox has to be created instead of updating it, i.e. for the very first pathitem. Most pathitems do not provide this method. updatebbox must not be called for the created instance and the same pathitem. s,path must start with moveto or the like (%r)N(s PathExceptionsself(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createbboxúscCstd|ƒ‚dS(s]create a normpath from the current pathitem Return a normpath instance. Is called, when a normpath has to be created instead of updating it, i.e. for the very first pathitem. Most pathitems do not provide this method. updatenormpath must not be called for the created instance and the same pathitem. s,path must start with moveto or the like (%r)N(s PathExceptionsself(sselfsepsilon((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscreatenormpathscCs tƒ‚dS(supdates the bbox to contain the pathitem for the given context Is called for all subsequent pathitems in a path to complete the bbox information. Both, the bbox and context are updated inplace. Does not return anything. N(sNotImplementedError(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxscCs tƒ‚dS(syupdate the normpath to contain the pathitem for the given context Is called for all subsequent pathitems in a path to complete the normpath. Both the normpath and the context are updated inplace. Most pathitem implementations will use normpath.normsubpath[-1].append to add normsubpathitem(s). Does not return anything. N(sNotImplementedError(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpaths cCsdS(s+write PS representation of pathitem to fileN((sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS&s( s__name__s __module__s__doc__s__str__s createcontexts createbboxs_markerscreatenormpaths updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyspathitemçs   s closepathcBs8tZdZfZd„Zd„Zd„Zd„ZRS(s*Connect subpath back to its starting pointcCsdSdS(Ns closepath()((sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__:scCs|i|_|i|_dS(N(scontexts subfirstx_ptsx_pts subfirsty_ptsy_pt(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebbox=s cCs-|idiƒ|i|_|i|_dS(Niÿÿÿÿ(snormpaths normsubpathssclosescontexts subfirstx_ptsx_pts subfirsty_ptsy_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathAs cCs|idƒdS(Ns closepath (sfileswrite(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSFs(s__name__s __module__s__doc__s __slots__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys closepath4s    s moveto_ptcBsetZdZddfZd„Zd„Zd„Zd„Zed„Z d„Z d „Z d „Z RS( sNStart a new subpath and set current point to (x_pt, y_pt) (coordinates in pts)sx_ptsy_ptcCs||_||_dS(N(sx_ptsselfsy_pt(sselfsx_ptsy_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ps cCsd|i|ifSdS(Nsmoveto_pt(%g, %g)(sselfsx_ptsy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__TscCs#t|i|i|i|iƒSdS(N(scontextsselfsx_ptsy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createcontextWscCs&ti|i|i|i|iƒSdS(N(s bboxmodulesbbox_ptsselfsx_ptsy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createbboxZscCs}|tjo5ttt|i|i|i|iƒgƒgƒSn8ttt|i|i|i|iƒgd|ƒgƒSdS(Nsepsilon(sepsilons_markersnormpaths normsubpaths normline_ptsselfsx_ptsy_pt(sselfsepsilon((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscreatenormpath]s 5'cCs@|i|i|iƒ|i|_|_|i|_|_dS(N(sbboxsincludepoint_ptsselfsx_ptsy_ptscontexts subfirstx_pts subfirsty_pt(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxdscCs¦|iditj oE|itt|i|i |i|i ƒgd|idiƒƒn!|itd|idiƒƒ|i|_|_ |i |_ |_ dS(Niÿÿÿÿsepsilon( snormpaths normsubpathssepsilonsNonesappends normsubpaths normline_ptsselfsx_ptsy_ptscontexts subfirstx_pts subfirsty_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathis * cCs!|id|i|ifƒdS(Ns %g %g moveto (sfileswritesselfsx_ptsy_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSrs( s__name__s __module__s__doc__s __slots__s__init__s__str__s createcontexts createbboxs_markerscreatenormpaths updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys moveto_ptJs         s lineto_ptcBsGtZdZddfZd„Zd„Zd„Zd„Zd„ZRS(s9Append straight line to (x_pt, y_pt) (coordinates in pts)sx_ptsy_ptcCs||_||_dS(N(sx_ptsselfsy_pt(sselfsx_ptsy_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__|s cCsd|i|ifSdS(Nslineto_pt(%g, %g)(sselfsx_ptsy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__€scCs2|i|i|iƒ|i|_|i|_dS(N(sbboxsincludepoint_ptsselfsx_ptsy_ptscontext(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxƒs cCsK|idit|i|i|i|iƒƒ|i|_|i|_dS(Niÿÿÿÿ(snormpaths normsubpathssappends normline_ptscontextsx_ptsy_ptsself(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathˆs cCs!|id|i|ifƒdS(Ns %g %g lineto (sfileswritesselfsx_ptsy_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSŽs( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys lineto_ptvs      s curveto_ptcBsStZdZddddddfZd„Zd„Zd „Zd „Zd „ZRS( s#Append curveto (coordinates in pts)sx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_ptcCs:||_||_||_||_||_||_dS(N(sx1_ptsselfsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt(sselfsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__˜s      cCs0d|i|i|i|i|i|ifSdS(Ns"curveto_pt(%g, %g, %g, %g, %g, %g)(sselfsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ scCsŠt|i|i|i|iƒ\}}t|i |i |i |i ƒ\}}|i||ƒ|i||ƒ|i|_|i |_ dS(N(s_bezierpolyrangescontextsx_ptsselfsx1_ptsx2_ptsx3_ptsxmin_ptsxmax_ptsy_ptsy1_ptsy2_ptsy3_ptsymin_ptsymax_ptsbboxsincludepoint_pt(sselfsbboxscontextsxmin_ptsymin_ptsxmax_ptsymax_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebbox¥s '' c Csc|idit|i|i|i|i |i |i |i |i ƒƒ|i |_|i |_dS(Niÿÿÿÿ(snormpaths normsubpathssappends normcurve_ptscontextsx_ptsy_ptsselfsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpath­s    cCs9|id|i|i|i|i|i|ifƒdS(Ns%g %g %g %g %g %g curveto ( sfileswritesselfsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSµs( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys curveto_pt’s     s rmoveto_ptcBsGtZdZddfZd„Zd„Zd„Zd„Zd„ZRS(s,Perform relative moveto (coordinates in pts)sdx_ptsdy_ptcCs||_||_dS(N(sdx_ptsselfsdy_pt(sselfsdx_ptsdy_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ás cCsd|i|ifSdS(Nsrmoveto_pt(%g, %g)(sselfsdx_ptsdy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ÅscCsd|i|i|i|i|iƒ|i|i7_|i|i7_|i|_|i|_ dS(N( sbboxsincludepoint_ptscontextsx_ptsselfsdx_ptsy_ptsdy_pts subfirstx_pts subfirsty_pt(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxÈs $ cCs¼|i|i7_|i|i7_|i|_|i|_|i di t j oE|i t t|i|i|i|iƒgd|i di ƒƒn!|i t d|i di ƒƒdS(Niÿÿÿÿsepsilon(scontextsx_ptsselfsdx_ptsy_ptsdy_pts subfirstx_pts subfirsty_ptsnormpaths normsubpathssepsilonsNonesappends normsubpaths normline_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathÏs  cCs!|id|i|ifƒdS(Ns%g %g rmoveto (sfileswritesselfsdx_ptsdy_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSÛs( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys rmoveto_pt»s      s rlineto_ptcBsGtZdZddfZd„Zd„Zd„Zd„Zd„ZRS(s,Perform relative lineto (coordinates in pts)sdx_ptsdy_ptcCs||_||_dS(N(sdx_ptsselfsdy_pt(sselfsdx_ptsdy_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__ås cCsd|i|ifSdS(Nsrlineto_pt(%g %g)(sselfsdx_ptsdy_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__éscCsL|i|i|i|i|iƒ|i|i7_|i|i7_dS(N(sbboxsincludepoint_ptscontextsx_ptsselfsdx_ptsy_ptsdy_pt(sselfsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxìs$cCse|idit|i|i|i|i|i|i ƒƒ|i|i7_|i|i 7_dS(Niÿÿÿÿ( snormpaths normsubpathssappends normline_ptscontextsx_ptsy_ptsselfsdx_ptsdy_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathñs!cCs!|id|i|ifƒdS(Ns%g %g rlineto (sfileswritesselfsdx_ptsdy_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS÷s( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys rlineto_ptßs      s rcurveto_ptcBsStZdZddddddfZd„Zd„Zd „Zd „Zd „ZRS( s$Append rcurveto (coordinates in pts)sdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_ptcCs:||_||_||_||_||_||_dS(N(sdx1_ptsselfsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_pt(sselfsdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__s      cCs0d|i|i|i|i|i|ifSdS(Ns#rcurveto_pt(%g, %g, %g, %g, %g, %g)(sselfsdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ scCsÀt|i|i|i|i|i|i|iƒ\}}t|i |i |i |i |i |i |i ƒ\}}|i||ƒ|i||ƒ|i|i7_|i |i 7_ dS(N(s_bezierpolyrangescontextsx_ptsselfsdx1_ptsdx2_ptsdx3_ptsxmin_ptsxmax_ptsy_ptsdy1_ptsdy2_ptsdy3_ptsymin_ptsymax_ptsbboxsincludepoint_pt(sselfsbboxscontextsxmin_ptsymin_ptsxmax_ptsymax_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxs      c Cs™|idit|i|i|i|i|i|i |i|i |i|i |i|i |i|i ƒƒ|i|i 7_|i|i 7_dS(Niÿÿÿÿ(snormpaths normsubpathssappends normcurve_ptscontextsx_ptsy_ptsselfsdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_pt(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpaths !cCs9|id|i|i|i|i|i|ifƒdS(Ns%g %g %g %g %g %g rcurveto ( sfileswritesselfsdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS$s( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys rcurveto_ptûs     sarc_ptcBsntZdZdddddfZd„Zd„Zd„Zd „Zed „Z d „Z d „Z d „Z RS(s0Append counterclockwise arc (coordinates in pts)sx_ptsy_ptsr_ptsangle1sangle2cCs1||_||_||_||_||_dS(N(sx_ptsselfsy_ptsr_ptsangle1sangle2(sselfsx_ptsy_ptsr_ptsangle1sangle2((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__0s     cCs*d|i|i|i|i|ifSdS(Nsarc_pt(%g, %g, %g, %g, %g)(sselfsx_ptsy_ptsr_ptsangle1sangle2(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__7scCs>t|i|i|i|iƒ\}}t||||ƒSdS(N(s _arcpointsselfsx_ptsy_ptsr_ptsangle2scontext(sselfsy_ptsx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createcontext;s'cCs2tit|i|i|i|i|iƒŒSdS(N( s bboxmodulesbbox_pts _arcbboxdatasselfsx_ptsy_ptsr_ptsangle1sangle2(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createbbox?scCsƒ|tjo8ttt|i|i|i|i |i ƒƒgƒSn;ttt|i|i|i|i |i ƒd|ƒgƒSdS(Nsepsilon( sepsilons_markersnormpaths normsubpaths_arctobezierpathsselfsx_ptsy_ptsr_ptsangle1sangle2(sselfsepsilon((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscreatenormpathCs 8*cCs„t|i|i|i|i|iƒ\}}}}|i ||ƒ|i ||ƒt |i|i|i|iƒ\|_|_dS(N(s _arcbboxdatasselfsx_ptsy_ptsr_ptsangle1sangle2s minarcx_pts minarcy_pts maxarcx_pts maxarcy_ptsbboxsincludepoint_pts _arcpointscontext(sselfsbboxscontexts minarcy_pts maxarcy_pts minarcx_pts maxarcx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxJs c Cs|idioW|itt|i|it |i|i|i |i ƒŒgd|idi ƒƒnB|idit|i|it |i|i|i |i ƒŒƒ|idit|i|i|i |i |iƒƒt |i|i|i |iƒ\|_|_dS(Niÿÿÿÿsepsilon(snormpaths normsubpathssclosedsappends normsubpaths normline_ptscontextsx_ptsy_pts _arcpointsselfsr_ptsangle1sepsilonsextends_arctobezierpathsangle2(sselfsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathQs <A5cCs3|id|i|i|i|i|ifƒdS(Ns%g %g %g %g %g arc (sfileswritesselfsx_ptsy_ptsr_ptsangle1sangle2(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS\s( s__name__s __module__s__doc__s __slots__s__init__s__str__s createcontexts createbboxs_markerscreatenormpaths updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarc_pt*s        sarcn_ptcBsntZdZdddddfZd„Zd„Zd„Zd „Zed „Z d „Z d „Z d „Z RS(s)Append clockwise arc (coordinates in pts)sx_ptsy_ptsr_ptsangle1sangle2cCs1||_||_||_||_||_dS(N(sx_ptsselfsy_ptsr_ptsangle1sangle2(sselfsx_ptsy_ptsr_ptsangle1sangle2((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__is     cCs*d|i|i|i|i|ifSdS(Nsarcn_pt(%g, %g, %g, %g, %g)(sselfsx_ptsy_ptsr_ptsangle1sangle2(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__pscCs>t|i|i|i|iƒ\}}t||||ƒSdS(N(s _arcpointsselfsx_ptsy_ptsr_ptsangle2scontext(sselfsy_ptsx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createcontextts'cCs2tit|i|i|i|i|iƒŒSdS(N( s bboxmodulesbbox_pts _arcbboxdatasselfsx_ptsy_ptsr_ptsangle2sangle1(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys createbboxxscCs|tjo>ttt|i|i|i|i |i ƒƒgƒi ƒSnAttt|i|i|i|i |i ƒd|ƒgƒi ƒSdS(Nsepsilon( sepsilons_markersnormpaths normsubpaths_arctobezierpathsselfsx_ptsy_ptsr_ptsangle2sangle1sreversed(sselfsepsilon((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscreatenormpath|s >*cCs„t|i|i|i|i|iƒ\}}}}|i ||ƒ|i ||ƒt |i|i|i|iƒ\|_|_dS(N(s _arcbboxdatasselfsx_ptsy_ptsr_ptsangle2sangle1s minarcx_pts minarcy_pts maxarcx_pts maxarcy_ptsbboxsincludepoint_pts _arcpointscontext(sselfsbboxscontexts minarcy_pts maxarcy_pts minarcx_pts maxarcx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxƒs c Cs6|idioW|itt|i|it |i|i|i |i ƒŒgd|idi ƒƒnB|idit|i|it |i|i|i |i ƒŒƒt|i|i|i |i|i ƒ}|iƒx(|D] }|idi|iƒƒqáWt |i|i|i |iƒ\|_|_dS(Niÿÿÿÿsepsilon(snormpaths normsubpathssclosedsappends normsubpaths normline_ptscontextsx_ptsy_pts _arcpointsselfsr_ptsangle1sepsilons_arctobezierpathsangle2s bpathitemssreverses bpathitemsreversed(sselfsnormpathscontexts bpathitems bpathitems((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathŠs<A' cCs3|id|i|i|i|i|ifƒdS(Ns%g %g %g %g %g arcn (sfileswritesselfsx_ptsy_ptsr_ptsangle1sangle2(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS˜s( s__name__s __module__s__doc__s __slots__s__init__s__str__s createcontexts createbboxs_markerscreatenormpaths updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarcn_ptcs        sarct_ptcBsYtZdZdddddfZd„Zd„Zd„Zd „Zd „Zd „Z RS( s'Append tangent arc (coordinates in pts)sx1_ptsy1_ptsx2_ptsy2_ptsr_ptcCs1||_||_||_||_||_dS(N(sx1_ptsselfsy1_ptsx2_ptsy2_ptsr_pt(sselfsx1_ptsy1_ptsx2_ptsy2_ptsr_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__¥s     cCs*d|i|i|i|i|ifSdS(Nsarct_pt(%g, %g, %g, %g, %g)(sselfsx1_ptsy1_ptsx2_ptsy2_ptsr_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__¬scCs|i||i|f\} }ti| |ƒ}| |||f\} }|i |i|i |if\} }ti| |ƒ}| |||f\} }| ||| djot| | ||ƒ}nt| | ||ƒ }yé|i| |itt|ƒdƒ}|i||itt|ƒdƒ}|i| |itt|ƒdƒ}|i||itt|ƒdƒ}d|||i}d|||i}ti||ƒ}||||f\}}|i||it!|dƒ}|i||it!|dƒ}t$ti%| | ƒƒ} t$|ƒd}t(t)|||i| |ƒŒ}|djo+|t+|||i| || |ƒgSn(|t,|||i| || |ƒgSWn)t-j ot(|i|iƒgSnXdS(s(return pathitems corresponding to arct for given currentpoint x_pt, y_pt. The return is a list containing line_pt, arc_pt, a arcn_pt instances. This is a helper routine for updatebbox and updatenormpath, which will delegate the work to the constructed pathitem. iif0.5N(.sselfsx1_ptsx_ptsy1_ptsy_ptsdx1_ptsdy1_ptsmathshypotsl1_ptsdx1sdy1sx2_ptsy2_ptsdx2_ptsdy2_ptsl2_ptsdx2sdy2sacossalphasr_ptstansabssxt1_ptsyt1_ptsxt2_ptsyt2_ptsdmx_ptsdmy_ptslm_ptsdmxsdmyscossmx_ptsmy_ptsdegreessatan2sphisdeltaphis lineto_pts _arcpointslinesarc_ptsarcn_ptsZeroDivisionError(sselfsx_ptsy_ptsdy1sdy2syt1_ptsdeltaphisl2_ptsmy_ptsdx1_ptsdx2_ptsphisdx2sdx1sxt1_ptsxt2_ptsalphaslinesdmy_ptsdmx_ptsdy2_ptsyt2_ptsl1_ptslm_ptsmx_ptsdmxsdmysdy1_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys _pathitems±s: &((((""" ++cCs7x0|i|i|iƒD]}|i||ƒqWdS(N(sselfs _pathitemsscontextsx_ptsy_ptspathitems updatebboxsbbox(sselfsbboxscontextspathitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxïscCs7x0|i|i|iƒD]}|i||ƒqWdS(N(sselfs _pathitemsscontextsx_ptsy_ptspathitemsupdatenormpathsnormpath(sselfsnormpathscontextspathitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathóscCs3|id|i|i|i|i|ifƒdS(Ns%g %g %g %g %g arct (sfileswritesselfsx1_ptsy1_ptsx2_ptsy2_ptsr_pt(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS÷s( s__name__s __module__s__doc__s __slots__s__init__s__str__s _pathitemss updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarct_ptŸs    >  smovetocBs#tZdZddfZd„ZRS(sSet current point to (x, y)sx_ptsy_ptcCs)ti|ti|ƒti|ƒƒdS(N(s moveto_pts__init__sselfsunitstoptsxsy(sselfsxsy((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__s(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysmovetos  slinetocBs#tZdZddfZd„ZRS(sAppend straight line to (x, y)sx_ptsy_ptcCs)ti|ti|ƒti|ƒƒdS(N(s lineto_pts__init__sselfsunitstoptsxsy(sselfsxsy((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__s(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyslineto s  scurvetocBs/tZdZddddddfZd„ZRS(sAppend curvetosx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_ptc CsYti|ti|ƒti|ƒti|ƒti|ƒti|ƒti|ƒƒdS(N( s curveto_pts__init__sselfsunitstoptsx1sy1sx2sy2sx3sy3(sselfsx1sy1sx2sy2sx3sy3((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__s (s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscurvetos srmovetocBs#tZdZddfZd„ZRS(sPerform relative movetosdx_ptsdy_ptcCs)ti|ti|ƒti|ƒƒdS(N(s rmoveto_pts__init__sselfsunitstoptsdxsdy(sselfsdxsdy((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__&s(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrmoveto s  srlinetocBs#tZdZddfZd„ZRS(sPerform relative linetosdx_ptsdy_ptcCs)ti|ti|ƒti|ƒƒdS(N(s rlineto_pts__init__sselfsunitstoptsdxsdy(sselfsdxsdy((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__0s(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrlineto*s  srcurvetocBs/tZdZddddddfZd„ZRS(sAppend rcurvetosdx1_ptsdy1_ptsdx2_ptsdy2_ptsdx3_ptsdy3_ptc CsYti|ti|ƒti|ƒti|ƒti|ƒti|ƒti|ƒƒdS(N( s rcurveto_pts__init__sselfsunitstoptsdx1sdy1sdx2sdy2sdx3sdy3(sselfsdx1sdy1sdx2sdy2sdx3sdy3((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__:s (s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrcurveto4s sarcncBs,tZdZdddddfZd„ZRS(sAppend clockwise arcsx_ptsy_ptsr_ptsangle1sangle2cCs;ti|ti|ƒti|ƒti|ƒ||ƒdS(N( sarcn_pts__init__sselfsunitstoptsxsysrsangle1sangle2(sselfsxsysrsangle1sangle2((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Gs(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarcnAs sarccBs,tZdZdddddfZd„ZRS(sAppend counterclockwise arcsx_ptsy_ptsr_ptsangle1sangle2cCs;ti|ti|ƒti|ƒti|ƒ||ƒdS(N( sarc_pts__init__sselfsunitstoptsxsysrsangle1sangle2(sselfsxsysrsangle1sangle2((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Qs(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarcKs sarctcBs,tZdZdddddfZd„ZRS(sAppend tangent arcsx1_ptsy1_ptsx2_ptsy2_ptsr_ptcCsMti|ti|ƒti|ƒti|ƒti|ƒti|ƒƒdS(N( sarct_pts__init__sselfsunitstoptsx1sy1sx2sy2sr(sselfsx1sy1sx2sy2sr((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__[s!(s__name__s __module__s__doc__s __slots__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarctUs smultilineto_ptcBsAtZdZdZd„Zd„Zd„Zd„Zd„ZRS(s-Perform multiple linetos (coordinates in pts)s points_ptcCs ||_dS(N(s points_ptsself(sselfs points_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__iscCs@g}x"|iD]}|id|ƒqWddi|ƒSdS(Ns(%g, %g)smultilineto_pt([%s])s, (sresultsselfs points_ptspoint_ptsappendsjoin(sselfsresultspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ls  cCsLx|iD]}|i|Œq W|io|id\|_|_ndS(Niÿÿÿÿ(sselfs points_ptspoint_ptsbboxsincludepoint_ptscontextsx_ptsy_pt(sselfsbboxscontextspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebboxrs   cCst|i|if\}}x=|iD]2}|i di t |||Œƒ|\}}q"W||f\|_|_dS(Niÿÿÿÿ( scontextsx_ptsy_ptsx0_ptsy0_ptsselfs points_ptspoint_ptsnormpaths normsubpathssappends normline_pt(sselfsnormpathscontextspoint_ptsx0_ptsy0_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpathxs   cCs)x"|iD]}|id|ƒq WdS(Ns %g %g lineto (sselfs points_ptspoint_ptsfileswrite(sselfsfileswriterspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSs ( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysmultilineto_ptcs     smulticurveto_ptcBsAtZdZdZd„Zd„Zd„Zd„Zd„ZRS(s.Perform multiple curvetos (coordinates in pts)s points_ptcCs ||_dS(N(s points_ptsself(sselfs points_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__ŠscCs@g}x"|iD]}|id|ƒqWddi|ƒSdS(Ns(%g, %g, %g, %g, %g, %g)smulticurveto_pt([%s])s, (sresultsselfs points_ptspoint_ptsappendsjoin(sselfsresultspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__s  cCsxM|iD]B}|i|dd!Œ|i|dd!Œ|i|dd!Œq W|io!|idd\|_|_ndS(Niiiiiÿÿÿÿ(sselfs points_ptspoint_ptsbboxsincludepoint_ptscontextsx_ptsy_pt(sselfsbboxscontextspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys updatebbox“s  cCsx|i|if\}}xA|iD]6}|i di t |||Œƒ|d\}}q"W||f\|_|_dS(Niÿÿÿÿi( scontextsx_ptsy_ptsx0_ptsy0_ptsselfs points_ptspoint_ptsnormpaths normsubpathssappends normcurve_pt(sselfsnormpathscontextspoint_ptsx0_ptsy0_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysupdatenormpath›s   cCs)x"|iD]}|id|ƒq WdS(Ns%g %g %g %g %g %g curveto (sselfs points_ptspoint_ptsfileswrite(sselfsfileswriterspoint_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPS¢s ( s__name__s __module__s__doc__s __slots__s__init__s__str__s updatebboxsupdatenormpathsoutputPS(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysmulticurveto_pt„s     spathcBs tZdZddfZd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZeZed„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)d'd(„Z*d)„Z+d*„Z,d+„Z-d,„Z.d-„Z/RS(.s PS style paths pathitemss _normpathcGsGx(|D] }t|tƒp td‚qWt|ƒ|_t|_dS(s%construct a path from pathitems *argssonly pathitem instances allowedN( s pathitemss apathitems isinstancespathitemsAssertionErrorslistsselfsNones _normpath(sselfs pathitemss apathitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__±s cCst|i|iƒiŒSdS(s%create new path out of self and otherN(spathsselfs pathitemssother(sselfsother((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__add__»scCs)|i|iƒi7_t|_|SdS(szadd other inplace If other is a normpath instance, it is converted to a path before being added. N(sselfs pathitemssotherspathsNones _normpath(sselfsother((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__iadd__¿s cCs|i|SdS(sreturn path item iN(sselfs pathitemssi(sselfsi((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys __getitem__ÉscCst|iƒSdS(sreturn the number of path itemsN(slensselfs pathitems(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__len__ÍscCs'ditt|iƒƒ}d|SdS(Ns, spath(%s)(sjoinsmapsstrsselfs pathitemssl(sselfsl((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__str__ÑscCs7t|tƒp td‚|ii|ƒt|_dS(sappend a path itemsonly pathitem instance allowedN( s isinstances apathitemspathitemsAssertionErrorsselfs pathitemssappendsNones _normpath(sselfs apathitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysappendÕscCs|iƒiƒSdS(sreturn arc length in ptsN(sselfsnormpaths arclen_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys arclen_ptÛscCs|iƒiƒSdS(sreturn arc lengthN(sselfsnormpathsarclen(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarclenßscCs|iƒi|ƒSdS(s:return the param(s) matching the given length(s)_pt in ptsN(sselfsnormpathsarclentoparam_pts lengths_pt(sselfs lengths_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysarclentoparam_ptãscCs|iƒi|ƒSdS(s0return the param(s) matching the given length(s)N(sselfsnormpaths arclentoparamslengths(sselfslengths((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys arclentoparamçscCs|iƒi|ƒSdS(sEreturn coordinates of path in pts at param(s) or arc length(s) in ptsN(sselfsnormpathsat_ptsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysat_ptëscCs|iƒi|ƒSdS(s7return coordinates of path at param(s) or arc length(s)N(sselfsnormpathsatsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysatïscCs|iƒiƒSdS(sCreturn coordinates of the beginning of first subpath in path in ptsN(sselfsnormpaths atbegin_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys atbegin_ptóscCs|iƒiƒSdS(s<return coordinates of the beginning of first subpath in pathN(sselfsnormpathsatbegin(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysatbegin÷scCs|iƒiƒSdS(s<return coordinates of the end of last subpath in path in ptsN(sselfsnormpathsatend_pt(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysatend_ptûscCs|iƒiƒSdS(s5return coordinates of the end of last subpath in pathN(sselfsnormpathsatend(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysatendÿscCsn|ioV|idiƒ}|idiƒ}x%|idD]}|i||ƒq>W|Sn ti ƒSdS(sreturn bbox of pathiiN( sselfs pathitemss createbboxsbboxs createcontextscontextspathitems updatebboxs bboxmodulesempty(sselfspathitemsbboxscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysbboxs cCs|iƒiƒSdS(s7return param corresponding of the beginning of the pathN(sselfsnormpathsbegin(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysbeginscCs|iƒi|ƒSdS(sreturn the curvature radius in pts at param(s) or arc length(s) in pts The curvature radius is the inverse of the curvature. When the curvature is 0, None is returned. Note that this radius can be negative or positive, depending on the sign of the curvature.N(sselfsnormpathscurveradius_ptsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscurveradius_ptscCs|iƒi|ƒSdS(s return the curvature radius at param(s) or arc length(s) The curvature radius is the inverse of the curvature. When the curvature is 0, None is returned. Note that this radius can be negative or positive, depending on the sign of the curvature.N(sselfsnormpaths curveradiussparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys curveradiusscCs|iƒiƒSdS(s1return param corresponding of the end of the pathN(sselfsnormpathsend(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysend"scCsHx(|D] }t|tƒp td‚qW|ii|ƒt|_dS(sextend path by pathitemssonly pathitem instance allowedN( s pathitemss apathitems isinstancespathitemsAssertionErrorsselfsextendsNones _normpath(sselfs pathitemss apathitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysextend&s cCs|iƒi|ƒSdS(s®intersect self with other path Returns a tuple of lists consisting of the parameter values of the intersection points of the corresponding normpath. N(sselfsnormpaths intersectsother(sselfsother((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys intersect-scCs,|i|ƒiƒi|_t|_|SdS(sŠjoin other path/normpath inplace If other is a normpath instance, it is converted to a path before being joined. N(sselfsjoinedsotherspaths pathitemssNones _normpath(sselfsother((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysjoin5s cCs|iƒi|ƒiƒSdS(s8return path consisting of self and other joined togetherN(sselfsnormpathsjoinedsotherspath(sselfsother((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysjoined?scCsù|itj o |tjo |iSn|ioy|tjo|idiƒ}n|idi|ƒ}|idiƒ}xU|idD]}|i ||ƒqWn-|tjo|gƒ}n|d|ƒ}|tjo ||_n|SdS(s convert the path into a normpathiisepsilonN( sselfs _normpathsNonesepsilons_markers pathitemsscreatenormpathsnormpaths createcontextscontextspathitemsupdatenormpath(sselfsepsilonspathitemsnormpathscontext((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysnormpathFs"      cCs|iƒi|ƒSdS(s7return arc lenght(s) in pts matching the given param(s)N(sselfsnormpathsparamtoarclen_ptsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysparamtoarclen_pt\scCs|iƒi|ƒSdS(s0return arc lenght(s) matching the given param(s)N(sselfsnormpaths paramtoarclensparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys paramtoarclen`scCs|SdS(s%return corresponding path, i.e., selfN(sself(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyspathdscCs|iƒiƒSdS(sreturn reversed normpathN(sselfsnormpathsreversed(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysreversedhscCs|iƒi|ƒSdS(s3return rotation at param(s) or arc length(s) in ptsN(sselfsnormpathsrotationsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys rotation_ptnscCs|iƒi|ƒSdS(s,return rotation at param(s) or arc length(s)N(sselfsnormpathsrotationsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrotationrscCs|iƒi|ƒSdS(sOsplit normpath at param(s) or arc length(s) in pts and return list of normpathsN(sselfsnormpathssplitsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyssplit_ptvscCs|iƒi|ƒSdS(sHsplit normpath at param(s) or arc length(s) and return list of normpathsN(sselfsnormpathssplitsparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyssplitzscCs|iƒi||ƒSdS(s²return tangent vector of path at param(s) or arc length(s) in pts If length in pts is not None, the tangent vector will be scaled to the desired length. N(sselfsnormpaths tangent_ptsparamsslength(sselfsparamsslength((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys tangent_pt~sicCs|iƒi||ƒSdS(s¤return tangent vector of path at param(s) or arc length(s) If length is not None, the tangent vector will be scaled to the desired length. N(sselfsnormpathstangentsparamsslength(sselfsparamsslength((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pystangent†scCs|iƒi|ƒSdS(s9return transformation at param(s) or arc length(s) in ptsN(sselfsnormpathstrafosparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pystrafo_ptŽscCs|iƒi|ƒSdS(s2return transformation at param(s) or arc length(s)N(sselfsnormpathstrafosparams(sselfsparams((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pystrafo’scCs|iƒi|ƒSdS(sreturn transformed pathN(sselfsnormpaths transformedstrafo(sselfstrafo((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys transformed–scCs(x!|iD]}|i||ƒq WdS(swrite PS code to fileN(sselfs pathitemsspitemsoutputPSsfileswriter(sselfsfileswriterspitem((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysoutputPSšs cCs |idtƒi||ƒdS(swrite PDF code to filesepsilonN(sselfsnormpathsNones outputPDFsfileswriter(sselfsfileswriter((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys outputPDFŸs(0s__name__s __module__s__doc__s __slots__s__init__s__add__s__iadd__s __getitem__s__len__s__str__sappends arclen_ptsarclensarclentoparam_pts arclentoparamsat_ptsats atbegin_ptsatbeginsatend_ptsatendsbboxsbeginscurveradius_pts curveradiussendsextends intersectsjoinsjoineds __lshift__s_markersnormpathsparamtoarclen_pts paramtoarclenspathsreverseds rotation_ptsrotationssplit_ptssplits tangent_ptstangentstrafo_ptstrafos transformedsoutputPSs outputPDF(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyspath«sZ                                       sline_ptcBstZdZd„ZRS(s:straight line from (x1_pt, y1_pt) to (x2_pt, y2_pt) in ptscCs)ti|t||ƒt||ƒƒdS(N( spaths__init__sselfs moveto_ptsx1_ptsy1_pts lineto_ptsx2_ptsy2_pt(sselfsx1_ptsy1_ptsx2_ptsy2_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__¯s(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysline_pt«s scurve_ptcBstZdZd„ZRS(sJbezier curve with control points (x0_pt, y1_pt),..., (x3_pt, y3_pt) in ptsc Cs5ti|t||ƒt||||||ƒƒdS(N( spaths__init__sselfs moveto_ptsx0_ptsy0_pts curveto_ptsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt( sselfsx0_ptsy0_ptsx1_ptsy1_ptsx2_ptsy2_ptsx3_ptsy3_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__·s  (s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscurve_pt³s srect_ptcBstZdZd„ZRS(sErectangle at position (x_pt, y_pt) with width_pt and height_pt in ptsc CsWti|t||ƒt|||ƒt||||ƒt|||ƒt ƒƒdS(N( spaths__init__sselfs moveto_ptsx_ptsy_pts lineto_ptswidth_pts height_pts closepath(sselfsx_ptsy_ptswidth_pts height_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ás (s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrect_pt½s s circle_ptcBstZdZdd„ZRS(s4circle with center (x_pt, y_pt) and radius_pt in ptsf0.10000000000000001c Cs@ti|t|||ƒt||||d|ƒt ƒƒdS(Nih( spaths__init__sselfs moveto_ptsx_pts radius_ptsy_ptsarc_pts arcepsilons closepath(sselfsx_ptsy_pts radius_pts arcepsilon((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ís(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys circle_ptÉs s ellipse_ptcBstZdZd„ZRS(sxellipse with center (x_pt, y_pt) in pts, the two axes (a_pt, b_pt) in pts, and the angle angle of the first axisc Kstti||dtƒi|ƒi||ƒ}t ddd|i dtƒi|ƒiƒ}ti||iŒdS(Nsepsilonii(strafosscalesa_ptsb_ptsNonesrotatedsangles translated_ptsx_ptsy_ptsts circle_ptskwargssnormpaths transformedspathsps__init__sselfs pathitems( sselfsx_ptsy_ptsa_ptsb_ptsangleskwargsspst((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__Ùs-0(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys ellipse_ptÓs slinecBstZdZd„ZRS(s'straight line from (x1, y1) to (x2, y2)cCsAti|ti|ƒti|ƒti|ƒti|ƒƒdS(N( sline_pts__init__sselfsunitstoptsx1sy1sx2sy2(sselfsx1sy1sx2sy2((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__ãs!(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyslineßs scurvecBstZdZd„ZRS(s7bezier curve with control points (x0, y1),..., (x3, y3)c Csqti|ti|ƒti|ƒti|ƒti|ƒti|ƒti|ƒti|ƒti|ƒƒ dS(N( scurve_pts__init__sselfsunitstoptsx0sy0sx1sy1sx2sy2sx3sy3( sselfsx0sy0sx1sy1sx2sy2sx3sy3((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__ìs!(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscurveès srectcBstZdZd„ZRS(s1rectangle at position (x,y) with width and heightcCsAti|ti|ƒti|ƒti|ƒti|ƒƒdS(N( srect_pts__init__sselfsunitstoptsxsyswidthsheight(sselfsxsyswidthsheight((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__÷s!(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysrectós scirclecBstZdZd„ZRS(s#circle with center (x,y) and radiuscKs8ti|ti|ƒti|ƒti|ƒ|dS(N( s circle_pts__init__sselfsunitstoptsxsysradiusskwargs(sselfsxsysradiusskwargs((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__s(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pyscircleüs sellipsecBstZdZd„ZRS(sZellipse with center (x, y), the two axes (a, b), and the angle angle of the first axiscKsGti|ti|ƒti|ƒti|ƒti|ƒ||dS(N( s ellipse_pts__init__sselfsunitstoptsxsysasbsangleskwargs(sselfsxsysasbsangleskwargs((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys__init__ s(s__name__s __module__s__doc__s__init__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pysellipses (Es __future__s nested_scopessmathscosssinstansacosspisradianssdegreess ImportErrorstrafosunitsnormpathsNormpathExceptions normsubpaths normline_pts normcurve_ptsbboxs bboxmodulessetsinvalidssums NameErrors enumeratestypes __metaclass__s_markers Exceptions PathExceptions_bezierpolyranges _arctobcurves_arctobezierpaths _arcpoints _arcbboxdatascontextspathitems closepaths moveto_pts lineto_pts curveto_pts rmoveto_pts rlineto_pts rcurveto_ptsarc_ptsarcn_ptsarct_ptsmovetoslinetoscurvetosrmovetosrlinetosrcurvetosarcnsarcsarctsmultilineto_ptsmulticurveto_ptspathsline_ptscurve_ptsrect_pts circle_pts ellipse_ptslinescurvesrectscirclesellipse(?srcurvetos normsubpathssets __metaclass__scurvetos moveto_pts_bezierpolyrangesrmovetos bboxmodules rcurveto_ptsarcs enumerates closepathstans lineto_ptsunitstrafoslinetos rlineto_pts normcurve_ptsarct_ptssums rmoveto_ptsinvalidsellipsespathitemsdegreess ellipse_ptscirclespis normline_ptssinsmathsarcts_markersarc_pts nested_scopessline_pts _arctobcurveslinesmovetos_arctobezierpathsNormpathExceptionsarcn_ptspathsarcns curveto_ptsrect_ptsrects _arcpointscossmultilineto_pts _arcbboxdatascurvesradianss circle_ptsnormpathsrlinetoscurve_ptscontextsmulticurveto_ptsacoss PathException((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/path.pys?s~  % %    #    8M,)$/9<a        !'ÿ