; tDc@sdkZdkZdkZdkZdkZdkZddaedZ dZ dZ dZ dfdYZ d efd YZd eieifd YZd efdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefd YZdS(!Nf1.0000000000000001e-05icCs|tj o |andS(N(sepsilonsNones_epsilon(sepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pyssets cCsPti|d}ti|ti| fti|ti|ffSdS(Nf180.0(smathspisanglesphiscosssin(sanglesphi((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys_rmatrix&scCsdti|d}dti||ti||ti| |dti||fSdS(Nf180.0i(smathspisanglesphiscossxssinsy(sanglesxsysphi((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys_rvector,scCsti|d}ti|ti|ti|ti|dti|ti|fdti|ti|ti|ti|ti|ti|ffSdS(Nf180.0i(smathspisanglesphiscosssin(sanglesphi((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys_mmatrix3ss_markercBstZRS(N(s__name__s __module__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys_marker;ssTrafoExceptioncBstZRS(N(s__name__s __module__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysTrafoException?sstrafo_ptcBs tZdZddfddffddfedZdZdZdZdZdZ d Z d Z d Z d Z d ZeedZeedZeeedZeeedZdeedZdeedZdZdZRS(saffine transformation (coordinates in constructor in pts) Note that though the coordinates in the constructor are in pts (which is useful for internal purposes), all other methods only accept units in the standard user notation. iicCs|tjo t}n||_|tj o<t|dd|dd|dd|dd|jotdn ||_||_dS(s Return trafo with given transformation matrix and vector. If epsilon is passed it is used instead of the global epsilon defined in the module to check whether the matrix is singular or not. Use epsilon=None to turn of this checking. iis*transformation matrix must not be singularN( sepsilons_markers_epsilonsselfsNonesabssmatrixsTrafoExceptionsvector(sselfsmatrixsvectorsepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__Ns   L cCs t|to|itjp |itjo t}n*|i|ijo |i}n |i}|idd|idd|idd|idd|idd|idd|idd|iddf|idd|idd|idd|idd|idd|idd|idd|iddff}|idd|id|idd|id|id|idd|id|idd|id|idf}td|d|d|Sn tddS(Niismatrixsvectorsepsilons%can only multiply two transformations( s isinstancesotherstrafo_ptsselfsepsilonsNonesmatrixsvectorsNotImplementedError(sselfsothersvectorsmatrixsepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__mul__]s     cCsXd|idd|idd|idd|idd|id|idfSdS(Ns[%f %f %f %f %f %f]ii(sselfsmatrixsvector(sself((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__str__zsc Csa|id|idd|idd|idd|idd|id|idfdS(Ns[%f %f %f %f %f %f] concat ii(sfileswritesselfsmatrixsvector(sselfsfileswriterscontextsregistrysbbox((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys processPSsc Csa|id|idd|idd|idd|idd|id|idfdS(Ns%f %f %f %f %f %f cm ii(sfileswritesselfsmatrixsvector(sselfsfileswriterscontextsregistrysbbox((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys processPDFscCstiSdS(N(s bboxmodulesempty(sself((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysbboxscCsh|idd||idd||id|idd||idd||idfSdS(s1apply transformation to point (x_pt, y_pt) in ptsiiN(sselfsmatrixsx_ptsy_ptsvector(sselfsx_ptsy_pt((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysapply_ptscCsF|iti|ti|\}}|ti|tifSdS(N( sselfsapply_ptsunitstoptsxsystxstyst_pt(sselfsxsystxsty((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysapplys*cCs|i|SdS(N(spaths transformedsself(sselfspath((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysdeformscCsd|idd|idd|idd|idd}|idd||idd |f|idd ||idd|ff}td|d|itd|id |id fd|iSdS(Nf1.0iismatrixsepsilonsvector(sselfsmatrixsdetstrafo_ptsepsilonsvector(sselfsdetsmatrix((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysinversesBVcCst|d|i|SdS(Nsepsilon(smirrorsanglesselfsepsilon(sselfsangle((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysmirroredscCs!t|||d|i|SdS(Nsepsilon(s rotate_ptsanglesxsysselfsepsilon(sselfsanglesxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys rotated_ptscCs!t|||d|i|SdS(Nsepsilon(srotatesanglesxsysselfsepsilon(sselfsanglesxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysrotatedscCs$t||||d|i|SdS(Nsepsilon(sscale_ptssxssysxsysselfsepsilon(sselfssxssysxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys scaled_ptscCs$t||||d|i|SdS(Nsepsilon(sscalessxssysxsysselfsepsilon(sselfssxssysxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysscaledscCs$t||||d|i|SdS(Nsepsilon(sslant_ptsasanglesxsysselfsepsilon(sselfsasanglesxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys slanted_ptscCs$t||||d|i|SdS(Nsepsilon(sslantsasanglesxsysselfsepsilon(sselfsasanglesxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysslantedscCst||d|i|SdS(Nsepsilon(s translate_ptsxsysselfsepsilon(sselfsxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys translated_ptscCst||d|i|SdS(Nsepsilon(s translatesxsysselfsepsilon(sselfsxsy((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys translateds(s__name__s __module__s__doc__s_markers__init__s__mul__s__str__s processPSs processPDFsbboxsapply_ptsapplysdeformsinversesmirroredsNones rotated_ptsrotateds scaled_ptsscaleds slanted_ptsslanteds translated_pts translated(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pystrafo_ptDs( *           strafocBs8tZdZddfddffddfedZRS(saffine transformationiicCs=ti||ti|dti|dfd|dS(Niisepsilon(strafo_pts__init__sselfsmatrixsunitstoptsvectorsepsilon(sselfsmatrixsvectorsepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s &(s__name__s __module__s__doc__s_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pystrafos smirrorcBstZdedZRS(NicCs#ti|dt|d|dS(Nsmatrixsepsilon(strafos__init__sselfs_mmatrixsanglesepsilon(sselfsanglesepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s(s__name__s __module__s_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysmirrorss rotate_ptcBstZeeedZRS(NcCsddf}|tj p |tj o@|tjp |tjotdnt|||}nti|dt |d|d|dS(Nis+either specify both x and y or none of themsmatrixsvectorsepsilon( svectorsxsNonesysTrafoExceptions_rvectorsanglestrafo_pts__init__sselfs_rmatrixsepsilon(sselfsanglesxsysepsilonsvector((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s  (s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys rotate_ptssrotatecBstZeeedZRS(NcCsddf}|tj p |tj oR|tjp |tjotdnt|ti|ti|}nt i |dt |d|d|dS(Nis+either specify both x and y or none of themsmatrixsvectorsepsilon(svectorsxsNonesysTrafoExceptions_rvectorsanglesunitstoptstrafo_pts__init__sselfs_rmatrixsepsilon(sselfsanglesxsysepsilonsvector((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s  ((s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysrotatessscale_ptcBstZeeeedZRS(NcCs|tjo |}nddf}|tj p |tj oJ|tjp |tjotdnd||d||f}nti|d|dfd|ffd|d|dS(Nis+either specify both x and y or none of themismatrixsvectorsepsilon( ssysNonessxsvectorsxsysTrafoExceptionstrafo_pts__init__sselfsepsilon(sselfssxssysxsysepsilonsvector((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s    (s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysscale_ptssscalecBstZeeeedZRS(NcCs|tjo |}nddf}|tj p |tj oJ|tjp |tjotdnd||d||f}nti|d|dfd|ffd|d|dS(Nis+either specify both x and y or none of themismatrixsvectorsepsilon( ssysNonessxsvectorsxsysTrafoExceptionstrafos__init__sselfsepsilon(sselfssxssysxsysepsilonsvector((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s    (s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysscalessslant_ptcBstZdeeedZRS(NicCswt| ||d|tdd|fddffd|t|||d|}ti ||i |i d|dS(Nsepsilonsmatrixii( s rotate_ptsanglesxsysepsilonstrafosaststrafo_pts__init__sselfsmatrixsvector(sselfsasanglesxsysepsilonst((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__sT(s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysslant_ptssslantcBstZdeeedZRS(NicCswt| ||d|tdd|fddffd|t|||d|}ti||i |i d|dS(Nsepsilonsmatrixii( srotatesanglesxsysepsilonstrafosasts__init__sselfsmatrixsvector(sselfsasanglesxsysepsilonst((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__sT(s__name__s __module__sNones_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pysslantss translate_ptcBstZedZRS(NcCs#ti|d||fd|dS(Nsvectorsepsilon(strafo_pts__init__sselfsxsysepsilon(sselfsxsysepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s(s__name__s __module__s_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys translate_ptss translatecBstZedZRS(NcCs#ti|d||fd|dS(Nsvectorsepsilon(strafos__init__sselfsxsysepsilon(sselfsxsysepsilon((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys__init__s(s__name__s __module__s_markers__init__(((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys translates(smathsattrscanvassdeformersunitsbboxs bboxmodules_epsilonsNonessets_rmatrixs_rvectors_mmatrixs_markers ExceptionsTrafoExceptions canvasitemstrafo_ptstrafosmirrors rotate_ptsrotatesscale_ptsscalesslant_ptsslants translate_pts translate(ssets_rvectors bboxmodulesmirrorsscale_ptsunitstrafoscanvassscales translates_rmatrixstrafo_pts_mmatrixsmaths_markersslantsslant_pts rotate_ptsrotatesattrsTrafoExceptions translate_ptsdeformer((s=/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/trafo.pys?s( $      {