;ò ³ tDc@sîdklZdkZdkZdkZdkZdkZdkZdkZdk Z dk Z dk Z ydkl Z Wne j od„Z nXdfd„ƒYZdeifd„ƒYZdfd „ƒYZd eeifd „ƒYZeƒZeieƒe_d eeifd „ƒYZeƒZeieƒe_d„Zde iZdeeifd„ƒYZeieƒe_eddddƒZedeeidƒƒe_edeeidƒƒe_ edeeidƒƒe_!edeeidƒƒe_"edeeidƒƒe_#edeeidƒƒe_$edeƒe_%edeeidƒƒe_&edeeidƒƒe_'edeeidƒƒe_(edeeidƒƒe_)edeeidƒƒe_*edeeidƒƒe_+eƒZ,e,deeidƒƒe,_e,deeidƒƒe,_ e,deeidƒƒe,_!e,deeidƒƒe,_"e,deeidƒƒe,_#e,deeidƒƒe,_$e,deƒe,_%e,deeidƒƒe,_&e,deeidƒƒe,_'e,deeidƒƒe,_(e,deeidƒƒe,_)e,deeidƒƒe,_*e,deeidƒƒe,_+deeifd„ƒYZ-deeifd „ƒYZ.dS(!(s nested_scopesN(sradianscCs|tidSdS(Ni´(sxsmathspi(sx((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysradians%ss_markercBstZRS(N(s__name__s __module__(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys_marker'ss decoratedpathcBs_tZdZeeeeeed„Zd„Zd„Zd„Zd„Zd„Z d„Z RS(s±Decorated path The main purpose of this class is during the drawing (stroking/filling) of a path. It collects attributes for the stroke and/or fill operations. cCsZ||_||_||_||_|tjotiƒ|_n ||_t|_dS(N( spathsselfsstyless strokestyless fillstyless ornamentssNonescanvassnostrokeranges(sselfspaths strokepathsfillpathsstyless strokestyless fillstyless ornaments((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__init__5s      cCsF|itjpt|itiƒp td‚|iiƒ|_dS(s!convert self.path into a normpaths'you don't understand what you are doingN(sselfsnostrokerangessNones isinstancespathsnormpathsAssertionError(sself((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysensurenormpathKs0cCs³t|itiƒp td‚|itjo||fg|_njd}x=|t |iƒjo|i|d|jo|d7}qOW|t |iƒjo|ii ||fƒdSnt |iƒd}x4d|jo||i|djo|d8}qÖW|djo!|ii d||fƒdSn|i|d|jo|i|d}n||i|djo|i|d}n||fg|i||d+dS(Ns'you don't understand what this is aboutiiiÿÿÿÿ(s isinstancesselfspathsnormpathsAssertionErrorsnostrokerangessNonesbeginsendsibeginslensappendsiendsinsert(sselfsbeginsendsibeginsiend((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys excluderangePs, .% cCs?|iiƒ}|iiƒ}|tj o ||Sn|SdS(N(sselfspathsbboxspathbboxs ornamentss ornamentsbboxsNone(sselfspathbboxs ornamentsbbox((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysbboxls   cCs¤|iog}x1|iD]&\}}|i|ƒ|i|ƒqW|ii|ƒ}|d}x.t dt |ƒdƒD]}|||7}qyW|Sn|iSdS(Nii( sselfsnostrokerangess splitlistsbeginsendsappendspathssplitsresultsrangeslensi(sselfsbeginsendsis splitlistsresultssplit((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys strokepathts    c s\‡‡d†}|itjo |itjoEt|iƒ otdƒ‚n|iiˆˆ|||ƒdSn|iƒ} |i}|io0ˆidƒ|ƒ}||i|||ƒn|itj o~ˆidƒ|iˆˆƒ|itj o | |joÔˆidƒ|io||i|ƒ||ƒnˆidƒˆidƒ|ƒ}|io'ˆidƒ||i|||ƒnˆidƒ|| i ƒid|iƒ7}|ioˆidƒqMqQ|io*ˆidƒ||i|ƒ||ƒnˆidƒ||i ƒ7}|ioˆidƒqQn|itj o| |j p |itjo£|ƒ}|io'ˆidƒ||i|||ƒnˆidƒ| iˆˆƒˆidƒ|| i ƒid|iƒ7}|ioˆidƒq!n|iiˆˆ|||ƒ|ioˆidƒndS( Ncs.x'|D]}|iˆˆ|||ƒqWdS(N(sstylessstyles processPSsfileswriterscontextsregistrysbbox(sstylesscontextsregistrysbboxsstyle(swritersfile(s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys _writestyles‰ssBPath neither to be stroked nor filled nor decorated in another waysgsave snewpath sfill s grestore sstroke f0.5(s _writestylessselfs strokestylessNones fillstylesslens ornamentss RuntimeErrors processPSsfileswriterscontextsregistrysbboxs strokepathspathsfillpathsstylesswritesoutputPSsacontexts enlarged_pts linewidth_pt( sselfsfileswriterscontextsregistrysbboxsfillpaths _writestylessacontexts strokepath((sfileswriters</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys processPSƒsd                     -        c s(‡‡d†}‡‡d†}‡‡d†} |itjo |itjoEt|iƒ ot dƒ‚n|ii ˆˆ|||ƒdSn|iƒ} |i}|io0ˆidƒ|ƒ}||i|||ƒn|itj o9|iˆˆƒ|itj o | |joœˆidƒ|ƒ} |io| |i| ||ƒn|io||i| ||ƒnˆidƒ|| iƒid| iƒ7}ˆidƒq*|io*ˆidƒ| |i|ƒ||ƒnˆid ƒ||iƒ7}|ioˆidƒq*n|itj o| |j p |itjo–|ƒ} |io'ˆidƒ||i| ||ƒn| iˆˆƒˆid ƒ|| iƒid| iƒ7}|ioˆidƒqín|ii ˆˆ|||ƒ|ioˆidƒndS( Ncs.x'|D]}|iˆˆ|||ƒqWdS(N(sstylessstyles processPDFsfileswriterscontextsregistrysbbox(sstylesscontextsregistrysbboxsstyle(swritersfile(s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys _writestylesÝscs@d|_x'|D]}|iˆˆ|||ƒqWd|_dS(Nii( scontextsfillattrs strokestylessstyles processPDFsfileswritersregistrysbbox(s strokestylesscontextsregistrysbboxsstyle(swritersfile(s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys_writestrokestylesás  cs@d|_x'|D]}|iˆˆ|||ƒqWd|_dS(Nii( scontexts strokeattrs fillstylessstyles processPDFsfileswritersregistrysbbox(s fillstylesscontextsregistrysbboxsstyle(swritersfile(s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys_writefillstylesçs  sBPath neither to be stroked nor filled nor decorated in another waysq sB f0.5sQ sf sS (s _writestyless_writestrokestyless_writefillstylessselfs strokestylessNones fillstylesslens ornamentss RuntimeErrors processPDFsfileswriterscontextsregistrysbboxs strokepathspathsfillpathsstylesswrites outputPDFsacontexts enlarged_pts linewidth_pt( sselfsfileswriterscontextsregistrysbboxsfillpaths _writestyless_writestrokestylessacontexts strokepaths_writefillstyles((sfileswriters</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys processPDFÚs\                -       ( s__name__s __module__s__doc__sNones__init__sensurenormpaths excluderangesbboxs strokepaths processPSs processPDF(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys decoratedpath-s      WsdecocBstZdZd„ZRS(sÞdecorators In contrast to path styles, path decorators depend on the concrete path to which they are applied. In particular, they don't make sense without any path and can thus not be used in canvas.set! cCsdS(s¢apply a style to a given decoratedpath object dp decorate accepts a decoratedpath object dp, applies PathStyle by modifying dp in place. N((sselfsdps texrunner((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecorateAs(s__name__s __module__s__doc__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdeco7s s_strokedcBs/tZdZgd„Zgd„Zd„ZRS(s;stroked is a decorator, which draws the outline of the pathcCsBtii|tƒti|ƒ|_ti|iti gƒdS(N( sattrs exclusiveattrs__init__sselfs_strokeds mergeattrssstyless checkattrssstyles strokestyle(sselfsstyles((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__init__SscCst|ƒSdS(N(s_strokedsstyles(sselfsstyles((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__call__XscCs0|itj otdƒ‚n|i|_dS(Ns%Cannot stroke an already stroked path(sdps strokestylessNones RuntimeErrorsselfsstyles(sselfsdps texrunner((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecorate\s(s__name__s __module__s__doc__s__init__s__call__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys_strokedOs   s_filledcBs/tZdZgd„Zgd„Zd„ZRS(s;filled is a decorator, which fills the interior of the pathcCsBtii|tƒti|ƒ|_ti|iti gƒdS(N( sattrs exclusiveattrs__init__sselfs_filleds mergeattrssstyless checkattrssstyles fillstyle(sselfsstyles((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__init__iscCst|ƒSdS(N(s_filledsstyles(sselfsstyles((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__call__nscCs0|itj otdƒ‚n|i|_dS(Ns"Cannot fill an already filled path(sdps fillstylessNones RuntimeErrorsselfsstyles(sselfsdps texrunner((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecoraters(s__name__s __module__s__doc__s__init__s__call__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys_filledes   cCs|i|ƒ\}}|i||||gƒd} | i t i | d||ƒƒ} | i t i |d||ƒƒ} |tj oT|i|||ƒ\} } ti| iƒ| | fŒ}| iƒ| >|>}n| iƒ| >}|diƒ|SdS(sËhelper routine, which returns an arrowhead from a given anormpath - arclenfrombegin: position of arrow in arc length from the start of the path - direction: +1 for an arrow pointing along the direction of anormpath or -1 for an arrow pointing opposite to the direction of normpath - size: size of the arrow as arc length - angle. opening angle - constrictionlen: None (no constriction) or arc length of constriction. if2.0iÿÿÿÿN(s anormpathsatsarclenfrombeginstxstyssplits directionssizes arrowtemplates transformedstrafosrotatesanglesarrowlsarrowrsconstrictionlensNonescxscyspathslinesatendsarrowcrsreversedsarrowsclose(s anormpathsarclenfrombegins directionssizesanglesconstrictionlensarrowcrstxstys arrowtemplatesarrowrscxscysarrowlsarrow((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys _arrowhead€s !#" isarrowcBsMtZdZgddeddd„Zeeeeeed„Zd„ZRS(sCarrow is a decorator which adds an arrow to either side of the pathiii-f0.80000000000000004cCsutitiitg|ƒ|_ti|it ti ti gƒ||_ ||_ ||_||_||_dS(N(sattrs mergeattrssstyles linestylessolidsfilledsattrssselfs checkattrssdecos fillstyles strokestylespossreversedssizesangles constriction(sselfsattrsspossreversedssizesangles constriction((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__init__«s""    c CsË|tjo |i}n|tjo |i}n|tjo |i}n|tjo |i}n|tjo |i}n|tjo |i}nt d|d|d|d|d|d|ƒSdS(Nsattrsspossreversedssizesangles constriction( sattrssNonesselfspossreversedssizesangles constrictions_markersarrow(sselfsattrsspossreversedssizesangles constriction((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__call__´s            c Csl|iƒ|i}|itj o2|i|iti t |i dƒƒ}}n.|idti t |i dƒƒ}t}|i|iƒ}|iodpd}t||||i|i |ƒ}|ii||iƒ|idjo|io |idt|i|ƒƒnL|idjo|i o0|i|iƒt|i|ƒ|iƒƒndS(Nf2.0iiÿÿÿÿi(sdpsensurenormpathspaths anormpathsselfs constrictionsNonessizesmathscossradianssanglesconstrictionlensarrowheadconstrictionlenspossarclensarclenfrombeginsreverseds directions _arrowheads arrowheads ornamentssdrawsattrss excluderangesminsend( sselfsdps texrunnersarclenfrombegins arrowheadsarrowheadconstrictionlens directionsconstrictionlens anormpath((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecorateÃs  2'! ( s__name__s __module__s__doc__s_bases__init__sNones_markers__call__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysarrow§s  sposisreversedissizei@i iiiistextcBs5tZdZgdddeeed„Zd„ZRS(sa simple text decoratorif0.20000000000000001f0.5c Csv|tj o |tj otdƒ‚n||_||_||_||_||_ ||_||_||_ dS(Ns+either set arclenfrombegin or arclenfromend( sarclenfrombeginsNones arclenfromends ValueErrorstextsselfs textattrssanglestextdists relarclenposs texrunner( sselfstexts textattrssanglestextdists relarclenpossarclenfrombegins arclenfromends texrunner((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys__init__s       cCse|io |i}ndk}ti|ii|ii g|i ƒ}|i ƒ|i tj o,|ii|iiƒ|i ƒ\}}ne|itj o,|ii|iiƒ|iƒ\}}n)|ii|i|iiƒƒ\}}|i|||i|ƒ}|i|iti|itidƒti|itidƒƒ|i i!|ƒdS(Ni´("sselfs texrunnerstexts textmodulesattrs mergeattrsshalignscentersvshiftsmathaxiss textattrssdpsensurenormpathsarclenfrombeginsNonespathsatsbeginsxsys arclenfromendsends relarclenpossarclensts linealignstextdistsmathscossanglespissins ornamentssinsert(sselfsdps texrunnerstsysxs textattrss textmodule((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecorates   ( ,,(D(s__name__s __module__s__doc__sNones__init__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pystexts s shownormpathcBstZd„ZRS(Nc CsÃd}|iƒx³|iiD]¥}xœt|iƒD]‹\}}t |t i ƒo8|i it i t i|gƒgƒtiigƒq3|i it i t i|gƒgƒtiigƒq3WqWxE|iiD]7}x.t|iƒD]\}}t |t i ƒoþ|i iti|i|i|i|iƒtiitiigƒ|i iti|i|i|i|iƒtiitiigƒ|i i ti!|i|i|ƒt"tiigƒgƒ|i i ti!|i|i|ƒt"tiigƒgƒqéqéWqÓWx®|iiD] }x—t|iƒD]†\}}| o;|i#ƒ\}}|i i ti!|||ƒt"gƒn|i&ƒ\}}|i i ti!|||ƒt"gƒq1WqWdS(Ni('sr_ptsdpsensurenormpathspaths normsubpathss normsubpaths enumeratesnormsubpathitemssisnormsubpathitems isinstancesnormpaths normcurve_pts ornamentssstrokescolorsrgbsgreensbluesline_ptsx0_ptsy0_ptsx1_ptsy1_ptsstyles linestylesdashedsredsx2_ptsy2_ptsx3_ptsy3_ptsdraws circle_ptsfilleds atbegin_ptsx_ptsy_ptsatend_pt( sselfsdps texrunners normsubpathsisnormsubpathitemsr_ptsy_ptsx_pt((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pysdecorate+s6   8<  CC:F  )(s__name__s __module__sdecorate(((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys shownormpath)s(/s __future__s nested_scopesssyssmathsattrscanvasscolorspathsnormpathsstylestrafosunitsradianss ImportErrors_markers canvasitems decoratedpathsdecos exclusiveattrs_strokedsstrokeds clearclasssclears_filledsfilleds _arrowheadsv_pts_basesarrowsbarrowssqrtsSMALLsSMALlsSMAllsSMallsSmallssmallsnormalslargesLargesLArgesLARgesLARGesLARGEsearrowstexts shownormpath(s_strokedsdecoscolorstexts_filleds _arrowheadsunitstrafoscanvass decoratedpathsearrowsbarrowsfilleds_markers nested_scopessstylessyss_basespathsstrokedsattrs shownormpathsradianssnormpathsmathsarrow((s</mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/deco.pys?sd Hÿ    % : %