;ò ° tDc@spdkZdklZlZlZlZlZlZlZlZdk Z dk Z dk Z dk Z ydkl Z lZWn%ej od„Z d„ZnXde i fd„ƒYZdefd„ƒYZd efd „ƒYZd efd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdS(N(spissinscossatan2stanshypotsacosssqrt(sradianssdegreescCs|tdSdS(Ni´(sxspi(sx((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysradiansscCs|dtSdS(Ni´(sxspi(sx((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysdegreesss connector_ptcBstZd„Zd„ZRS(NcCs†|i|iƒƒd}|o!|i|dƒdi|_n|i|iƒƒd}|o!|i|d ƒdi|_ndS(s'intersects a path with the boxes' pathsiiÿÿÿÿiN(sselfs intersectsbox1spathsspssplits normsubpathssbox2(sselfsbox1sbox2ssp((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysomitends(s!cCs|iƒ}ti|d|d|dƒ}y|iƒ}Wntij on2X|i |ƒd}|i |dƒdi |_ |i ƒ}ti|d|d|dƒ}y|iƒ}Wntij on=X|i |ƒd}|o!|i |d ƒdi |_ ndS(s&shortens a path by the given distancesiiiÿÿÿÿN(sselfs atbegin_ptscenterspaths circle_ptsdistsscutpathsnormpathsNormpathExceptions intersectsspssplits normsubpathssatend_pt(sselfsdistsscentersspscutpath((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys shortenpath6s$ ! !(s__name__s __module__somitendss shortenpath(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys connector_pt&s sline_ptcBstZddgd„ZRS(Nic Cs’||_||_ti|titi|iid|iid|iid|iidƒgddƒgƒ|i ||ƒ|i |ƒdS(Niisclosed( sbox1sselfsbox2s connector_pts__init__spaths normsubpaths normline_ptscentersomitendss shortenpathsboxdists(sselfsbox1sbox2sboxdists((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__Ys   & (s__name__s __module__s__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysline_ptWssarc_ptcBs#tZdeeddgd„ZRS(Ni-ic CsD||_||_|iid|iid|iid|iidf} t| Œ} | d| | d| f} |tj p |tj oDd}|tj o||7}n|tj o||| 7}qõn"d| t i dt |ƒƒ}t|ƒtijoBti|titi|ii|iiŒgddƒgƒn×td|d| d|ƒ}ti|ƒ|t|ƒ} d|iid|iid| d| d|iid|iid| d| f} t|iid| d|iid| dƒ}t|iid| d|iid| dƒ} |djogtiti|iiŒti| d| d|t |ƒt | ƒƒƒ}ti||iƒi"ƒndtiti|iiŒti#| d| d|t |ƒt | ƒƒƒ}ti||iƒi"ƒ|i$||ƒ|i%|ƒdS(Niif0.5sclosedf0.25i('sbox1sselfsbox2scenterstangentshypotsdistancesrelbulgesNonesabsbulgesbulgesmathstansradianssrelanglesabssnormpaths_epsilons connector_pts__init__spaths normsubpaths normline_ptsradiuss mathutilsssigns centerdistsatan2sangle1sangle2s moveto_ptsarcn_ptsdegreess connectorpaths normsubpathssarc_ptsomitendss shortenpathsboxdists(sselfsbox1sbox2srelanglesabsbulgesrelbulgesboxdistss connectorpathsradiussangle2s centerdiststangentsdistancescentersbulgesangle1((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__hs:  <   ! 9 \33 22(s__name__s __module__sNones__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysarc_ptfsscurve_ptcBs,tZddeeddddgd„ZRS(Ni-if0.39000000000000001c Csã||_||_|iid|iid|iid|iidf} t| Œ}t| d| dƒ} t |||ƒ}|tj ot|ƒ} n| t|ƒ} |tj ot|ƒ} n| t|ƒ} t| ƒt| ƒf}t| ƒt| ƒf}|iid|d||iid|d|f}|iid|d||iid|d|f}ti|titi|ii|||iiŒgdƒgƒ|i||ƒ|i| ƒdS(Nii(!sbox1sselfsbox2scentersrelshypotsdistancesatan2sdanglesabssrelbulgesabsbulgesbulges absangle1sNonesradianssangle1s relangle1s absangle2sangle2s relangle2scosssinscontrol1scontrol2s connector_pts__init__spaths normsubpaths normcurve_ptsomitendss shortenpathsboxdists(sselfsbox1sbox2s relangle1s relangle2s absangle1s absangle2sabsbulgesrelbulgesboxdistssangle1sangle2sdanglesrelsdistancescontrol1scontrol2sbulge((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__¡s*  <   88 - (s__name__s __module__sNones__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pyscurve_ptŸss twolines_ptc BsStZeeeeeeeededdgd„ Zd„Zd„Zd„ZRS(NiicCs||_||_|ii}|ii}|iid|iid|iid|iidf}t|Œ}t |d|dƒ}|t j ot |ƒ}n|t j ot |ƒ}n|t j ot |ƒ}n|t j o|t |ƒ}n|t j oti|t |ƒ}nddf\}}x2|||fD]!}|t j o|d7}qKqKWx/|| fD]!}|t j o|d7}q}q}W||djo td‚n|djo¢|t joti||}nE|t joti||}n#|t joti||}n|tt|ƒt|ƒƒ}|i||||ƒ}n4|djoHt|d|d| dd||ƒ}|i||||ƒ}nß|t j ok|t j o|i||||ƒ}q¢| t j o1|i | ||ƒ}|i||||ƒ}q¢ng|t j ok|t j o1|i |||ƒ} |i!||| |ƒ}q¢| t j o|i!||| |ƒ}q¢nï|t j oØ|t j o]|i |||ƒ} t|d|d| dd||ƒ}|i||||ƒ}q¢| t j o]|i || |ƒ}t|d|d| dd||ƒ}|i||||ƒ}q¢n td‚t"i"t"i#|iiŒt"i$|Œt"i$|iiŒƒ}t&i'||i(ƒi)ƒ|i*||ƒ|i+| ƒdS(Niiis,Please specify exactly two angles or lengthsf2.0s*I found a strange combination of arguments(-sbox1sselfsbox2scentersbeginsendsrelshypotsdistancesatan2sdangles relangle1sNonesradianss relangle2s relangleMs absangle1s absangle2smathspis no_angless no_lengthssanangleslength1slength2salengthsNotImplementedErrorsabsssins _middle_asmiddlesacoss_missinglengths _middle_bspaths moveto_pts lineto_pts connectorpaths connector_pts__init__snormpaths normsubpathssomitendss shortenpathsboxdists(sselfsbox1sbox2s absangle1s absangle2s relangle1s relangle2s relangleMslength1slength2s bezierradiussbeziersoftnesss arcradiussboxdistss connectorpathsmiddlesananglesalengthsendsdangles no_lengthssrelsbeginsdistances no_angles((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__Ùsˆ    <                ,          , ,   cCsP||}t|ƒt|ƒf}|d||d|d||dfSdS(Nii(sdanglesangle1sascosssinsdirsbeginslength1(sselfsbeginsdangleslength1sangle1sasdir((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys _middle_a:s cCs#|i|ti ||| ƒSdS(N(sselfs _middle_asendsmathspisdangleslength2sangle2(sselfsendsdangleslength2sangle2((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys _middle_b?scCsU|t|ƒ}t|d|d|dƒ}||jo ||Sn||SdS(Ni(slenBscossangleAstmp1ssqrtslenAstmp2(sselfslenAslenBsangleAstmp1stmp2((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys_missinglengthCs   (s__name__s __module__sNones__init__s _middle_as _middle_bs_missinglength(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys twolines_pt×s0a  slinecBs tZdZddfd„ZRS(sAa line is the straight connector between the centers of two boxesicCs)ti|||dtti|ƒƒdS(Nsboxdists( sline_pts__init__sselfsbox1sbox2smapsunitstoptsboxdists(sselfsbox1sbox2sboxdists((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__Ps(s__name__s __module__s__doc__s__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pyslineLs scurvecBs2tZdZddeeddddgd„ZRS(spa curve is the curved connector between the centers of two boxes. The constructor needs both angle and bulgei-if0.39000000000000001c CsVti|||d|d|d|d|dt i |ƒd|dt t i | ƒƒdS(Ns relangle1s relangle2s absangle1s absangle2sabsbulgesrelbulgesboxdists(scurve_pts__init__sselfsbox1sbox2s relangle1s relangle2s absangle1s absangle2sunitstoptsabsbulgesrelbulgesmapsboxdists( sselfsbox1sbox2s relangle1s relangle2s absangle1s absangle2sabsbulgesrelbulgesboxdists((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__Zs   (s__name__s __module__s__doc__sNones__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pyscurveTs sarccBs)tZdZdeeddgd„ZRS(sßan arc is a round connector between the centers of two boxes. The constructor gets either an angle in (-pi,pi) or a bulge parameter in (-distance, distance) (relbulge and absbulge are added)i-icCs[|tj oti|ƒ}nti|||d|d|d|dt ti|ƒƒdS(Nsrelanglesabsbulgesrelbulgesboxdists( sabsbulgesNonesunitstoptsarc_pts__init__sselfsbox1sbox2srelanglesrelbulgesmapsboxdists(sselfsbox1sbox2srelanglesabsbulgesrelbulgesboxdists((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__ms   (s__name__s __module__s__doc__sNones__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pysarces stwolinesc Bs>tZdZeeeeeeeededdgd„ ZRS(sßa twolines is a connector consisting of two straight lines. The construcor takes a combination of angles and lengths: either two angles (relative or absolute) or two lenghts or one length and one angleiicCså|tj oti|ƒ}n| tj oti| ƒ} n| tj oti| ƒ} n| tj oti| ƒ} nti|||d|d|d|d|d|d|d| d| d d d | d tti| ƒƒ dS( Ns absangle1s absangle2s relangle1s relangle2s relangleMslength1slength2s bezierradiussbeziersoftnessis arcradiussboxdists(slength1sNonesunitstoptslength2s bezierradiuss arcradiuss twolines_pts__init__sselfsbox1sbox2s absangle1s absangle2s relangle1s relangle2s relangleMsmapsboxdists(sselfsbox1sbox2s absangle1s absangle2s relangle1s relangle2s relangleMslength1slength2s bezierradiussbeziersoftnesss arcradiussboxdists((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys__init__s         (s__name__s __module__s__doc__sNones__init__(((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pystwolinesws (smathspissinscossatan2stanshypotsacosssqrtspathsunits mathutilssnormpathsradianssdegreess ImportErrors connector_ptsline_ptsarc_ptscurve_pts twolines_ptslinescurvesarcstwolines(s twolines_ptshypotstansunitscurve_ptssqrtstwolinessdegreesspis connector_ptssinsmaths mathutilssarc_ptsline_ptspathslinescosscurvesradianssnormpathsatan2sarcsacos((sA/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/connector.pys?s 7$ 198u