HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/inkscape/extensions/ink2canvas/canvas.pyo
�
��Yc@s5dZddlZddlZddd��YZdS(s�
Copyright (C) 2011 Karlisson Bezerra <contact@hacktoon.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
i����NtCanvascBs7eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zddd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"RS(#sCanvas API helper classtctxcCsC||_g|_i|_i|_||_||_||_dS(N(tobjtcodetstylet
styleCachetparenttwidththeight(tselfRRRtcontext((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt__init__s						cCs+|jjd|jd|j�d�dS(Ns	Rs
(RtappendtreplaceR(R	ttext((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytwrite"scCsEddlm}d}||�|j|j|jdj|j�fS(Ni����(tdedentsm
        <!DOCTYPE html>
        <html>
        <head>
            <title>Inkscape Output</title>
        </head>
        <body>
            <canvas id='canvas' width='%d' height='%d'></canvas>
            <script>
            var %s = document.getElementById("canvas").getContext("2d");
            %s
            </script>
        </body>
        </html>
        t(ttextwrapRRRRtjoinR(R	Rthtml((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytoutput%scCs8||jkrtS||kr#tS|||j|kS(sAChecks if the last style used is the same or there's no style yet(RtTrue(R	Rtkey((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt
equalStyle8s
cCs|jd�dS(Nsctx.beginPath();(R(R	((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt	beginPath@scCs*|||||f}|jd|�dS(NsBvar %s =                    ctx.createLinearGradient(%f,%f,%f,%f);(R(R	threftx1ty1tx2ty2tdata((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytcreateLinearGradientCsc	Cs0|||||||f}|jd|�dS(NsHvar %s = ctx.createRadialGradient                   (%f,%f,%f,%f,%f,%f);(R(	R	Rtcx1tcy1trxtcx2tcy2tryR((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytcreateRadialGradientHscCs|jd|||f�dS(Ns%s.addColorStop(%f, %s);(R(R	Rtpostcolor((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytaddColorStopMscCsYtj|�\}}}t|�}|dkrDd||||fSd|||fSdS(Nis'rgba(%d, %d, %d, %.1f)'s'rgb(%d, %d, %d)'(tsimplestylet
parseColortfloat(R	trgbtatrtgtb((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytgetColorPs
cCsdS(sO
        for stop in gstops:
            style = simplestyle.parseStyle(stop.get("style"))
            stop_color = style["stop-color"]
            opacity = style["stop-opacity"]
            color = self.getColor(stop_color, opacity)
            pos = float(stop.get("offset"))
            self.addColorStop(href, pos, color)
        N(tNone(R	R((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetGradientXs
cCs|jdt|��dS(Nsctx.globalAlpha = %.1f;(RR-(R	tvalue((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt
setOpacitydscCsZy|jd}Wn
d}nX|jd�sV|j||�}|jd|�ndS(Nsfill-opacityisurl(sctx.fillStyle = %s;(Rt
startswithR3R(R	R6talphatfill((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetFillgs
cCsBy|jd}Wn
d}nX|jd|j||��dS(Nsstroke-opacityisctx.strokeStyle = %s;(RRR3(R	R6R9((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt	setStrokeps

cCs!|jd|jj|��dS(Nsctx.lineWidth = %f;(RRtunittouu(R	R6((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetStrokeWidthwscCs|jd|�dS(Nsctx.lineCap = '%s';(R(R	R6((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetStrokeLinecapzscCs|jd|�dS(Nsctx.lineJoin = '%s';(R(R	R6((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetStrokeLinejoin}scCs|jd|�dS(Nsctx.miterLimit = %s;(R(R	R6((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetStrokeMiterlimit�scCs|jd|�dS(Nsctx.font = "%s";(R(R	R6((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsetFont�scCs|jd||f�dS(Nsctx.moveTo(%f, %f);(R(R	txty((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytmoveTo�scCs|jd||f�dS(Nsctx.lineTo(%f, %f);(R(R	RCRD((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytlineTo�scCs'||||f}|jd|�dS(Ns%ctx.quadraticCurveTo(%f, %f, %f, %f);(R(R	tcpxtcpyRCRDR((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytquadraticCurveTo�scCs-||||||f}|jd|�dS(Ns*ctx.bezierCurveTo(%f, %f, %f, %f, %f, %f);(R(R	RRRRRCRDR((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt
bezierCurveTo�sicCs,|s|r|j|||�|j||||�|j|||||||�|j|||||�|j|||||||||�|j||||�|j|||||||�|j|||�|j|||||�n|jd||||f�dS(Nsctx.rect(%f, %f, %f, %f);(RERFRIR(R	RCRDtwthR#R&((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytrect�s"*"cCs-||||||f}|jd|�dS(Ns"ctx.arc(%f, %f, %f, %f, %.8f, %d);(R(R	RCRDR0ta1ta2tflagR((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytarc�scCs|jd|||f�dS(Nsctx.fillText("%s", %f, %f);(R(R	RRCRD((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytfillText�scCs|jd||f�dS(Nsctx.translate(%f, %f);(R(R	tcxtcy((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt	translate�scCs|jd|�dS(Nsctx.rotate(%f);(R(R	tangle((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytrotate�scCs|jd||f�dS(Nsctx.scale(%f, %f);(R(R	R#R&((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytscale�scCs-||||||f}|jd|�dS(Ns&ctx.transform(%f, %f, %f, %f, %f, %f);(R(R	tm11tm12tm21tm22tdxtdyR((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt	transform�scCs|jd�dS(Nsctx.save();(R(R	((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytsave�scCs|jd�dS(Nsctx.restore();(R(R	((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pytrestore�scCshd|jkr2|jddkr2|jd�nd|jkrd|jddkrd|jd�ndS(NR:tnonesctx.fill();tstrokes
ctx.stroke();(RR(R	((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt	closePath�s""(#t__name__t
__module__t__doc__RRRRRR R'R*R3R5R7R;R<R>R?R@RARBRERFRIRJRMRQRRRURWRXR_R`RaRd(((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyRsB																															((RgtinkexR+R(((s3/usr/share/inkscape/extensions/ink2canvas/canvas.pyt<module>s