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/simpletransform.pyo
�
��Yc@s6dZddlZddlZddlZddlZddlZddlZddlZdddgdddggd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zdddgdddggd�Zdddgdddggd�ZdS(s�
Copyright (C) 2006 Jean-Francois Barraud, barraud@math.univ-lille1.fr
Copyright (C) 2010 Alvin Penner, penner@vaxxine.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.
barraud@math.univ-lille1.fr

This code defines several functions to make handling of transform
attribute easier.
i����Ng�?gcCs�|dks|dkr|S|j�}tjd|�}|jd�dkr�|jd�jdd�j�}t|d�}t|�dkr�d	}nt|d�}dd|gdd|gg}n|jd�d
kr^|jd�jdd�j�}t|d�}t|�dkr-|}	nt|d�}	|ddgd|	dgg}n|jd�dkrX|jd�jdd�j�}t|d�t	j
d}
t|�dkr�d\}}ntt|d�\}}t	j|
�t	j
|
�|gt	j
|
�t	j|
�|gg}t|dd|gdd|gg�}n|jd�d
kr�t|jd��t	j
d}
dt	j|
�dgdddgg}n|jd�dkrt|jd��t	j
d}
dddgt	j|
�ddgg}n|jd�dkr�|jd�jdd�j�\}
}}}}}t|
�t|�t|�gt|�t|�t|�gg}nt||�}|j�t|�kr�t||j�|�S|SdS(Nts>(translate|scale|rotate|skewX|skewY|matrix)\s*\(([^)]*)\)\s*,?it	translateit,t igtscaletrotatei�tskewXtskewYtmatrix(gg(tNonetstriptretmatchtgrouptreplacetsplittfloattlentmathtpitmaptcostsintcomposeTransformttantendtparseTransform(ttransftmattstransftresulttargstdxtdyRtsxtsytatcxtcyta11ta21ta12ta22tv1tv2((s1/usr/share/inkscape/extensions/simpletransform.pyRsN!	!!	!!C, * *3EcCsJd|dd|dd|dd|dd|dd|ddfS(Nsmatrix(%f,%f,%f,%f,%f,%f)iii((R((s1/usr/share/inkscape/extensions/simpletransform.pytformatTransformNscCs|dd|dd|dd|dd}|dkr�|dd|}|dd|}|dd|}|dd|}||dd||dd}||dd||dd}|||g|||ggSdd|ddgdd|ddggSdS(Niii((RtdetR'R)R(R*ta13ta23((s1/usr/share/inkscape/extensions/simpletransform.pytinvertTransformQs2##cCs`|dd|dd|dd|dd}|dd|dd|dd|dd}|dd|dd|dd|dd}|dd|dd|dd|dd}|dd|dd|dd|dd|dd}|dd|dd|dd|dd|dd}|||g|||ggS(Niii((tM1tM2R'R)R(R*R+R,((s1/usr/share/inkscape/extensions/simpletransform.pyR`s2222>>cCsj|jd�}|r-tt|�|�}n|j�jtjdd�krft|j�|�}n|S(Nt	transformtgtsvg(tgetRRt	getparentttagtinkextaddNStcomposeParents(tnodeRttrans((s1/usr/share/inkscape/extensions/simpletransform.pyR<js!cCs>t|jd��}tt||��}|jd|�dS(NR4(RR7R-Rtset(RR=tmt	newtransf((s1/usr/share/inkscape/extensions/simpletransform.pytapplyTransformToNoderscCs�|dd|d|dd|d|dd}|dd|d|dd|d|dd}||d<||d<dS(Niii((Rtpttxty((s1/usr/share/inkscape/extensions/simpletransform.pytapplyTransformToPointws66
cCsDx=|D]5}x,|D]$}x|D]}t||�q!WqWqWdS(N(RF(RtpathtcomptctlRC((s1/usr/share/inkscape/extensions/simpletransform.pytapplyTransformToPath}s


cCs�|jd�dkr!td�n|jd�}|dkr@dSt|�}|jd�}tj|�}t||�|jdtj|��|j	d=dS(Ntds?can not fuse "transform" of elements that have no "d" attributeR4(
R7R	tAssertionErrorRtcubicsuperpatht	parsePathRJR?t
formatPathtattrib(R=ttR@RKtp((s1/usr/share/inkscape/extensions/simpletransform.pyt
fuseTransform�s
cCsx|dkr|S|dkr |St|d|d�t|d|d�t|d|d�t|d|d�fSdS(Niiii(R	tmintmax(tb1tb2((s1/usr/share/inkscape/extensions/simpletransform.pytboxunion�s
cCs�|dddd|dddd|dddd|ddddf\}}}}x||D]t}xk|D]c}xZ|D]R}t||d�}t||d�}t||d�}t||d�}qWqrWqeW||||fS(Nii(RTRU(RGtxmintxMaxtymintyMaxtpathcompRIRC((s1/usr/share/inkscape/extensions/simpletransform.pyt	roughBBox�s^


c	Cs�|dddd|dddd|dddd|ddddf\}}}}x|D]}x�tdt|��D]�}t||ddd||ddd||dd||dd�\}}t||�}t||�}t||ddd||ddd||dd||dd�\}}t||�}t||�}q�WqeW||||fS(Niii(trangeRtcubicExtremaRTRU(	RGRYRZR[R\R]titcmintcmax((s1/usr/share/inkscape/extensions/simpletransform.pytrefinedBBox�s^
SScCs�t||�}t||�}||}||}||}|d||r||||kr�||tj||||�|d||}	|	dkr0|	dkr0|d|	d|	d|	d||	d|	d|	d||	|	d|	||	|	|	}
t||
�}t||
�}n||tj||||�|d||}	|	dkr|	dkr|d|	d|	d|	d||	d|	d|	d||	|	d|	||	|	|	}
t||
�}t||
�}qq�n�||r�|||}	|	dkr�|	dkr�|d|	d|	d|	d||	d|	d|	d||	|	d|	||	|	|	}
t||
�}t||
�}q�n||fS(Niiii(RTRURtsqrt(ty0ty1ty2ty3RbRctd1td2td3RQRE((s1/usr/share/inkscape/extensions/simpletransform.pyR`�s0


3b3b
biicCsqd}xd|D]\}t|jd��}t||�}d}|jd�r^|jd�}n6|jd�r�d|jd�}n|jtjdd�dtjdd�dgkrd|jdd	�d
|jdd	�d|jd
�d|jd�d|jd
�}n~|jtjdd�dgkr�d|jd�d
|jd�d|jd�d
|jd�}n|jtjdd�dtjdd�dgkr�|jd�}|dk	r�|}n|jd�}|jd�}t|jdd	��}t|jdd	��}	|t|�}
|t|�}d|
|	fd|d
|d ||	fd|d
|d |
|	f}n|dk	r�tj	|�}t
||�tt|�|�}n}|jtjd!d�ks�|jd!krQ|jtjd"d#��}
d$|
d%}|j
|�}tt||�|�}ntt||�|�}q
W|S(&NR4RKtpointstMtrectR6timageRDt0RREthtwidthtvtheightsh-tlinetx1RgRtx2RhtcircletellipsetrtrxtryR%R&sM %f %f tAs 0 1 0 %f,%ftusethreftxlinks
//*[@id="%s"]i(R	RR7RR9R:R;RRMRNRJRXRdtxpathtcomputeBBox(taListRtbboxR=R@RKR|R}R%R&RwRxRRtrefidRGtrefnode((s1/usr/share/inkscape/extensions/simpletransform.pyR��sH
3`!I	O
*cCs5|j�dk	r1ttt||��|�n|S(N(R8R	RFR1R<(RCR=R((s1/usr/share/inkscape/extensions/simpletransform.pytcomputePointInNode�s(t__doc__R:RMtbezmisctsimplestyletcopyRRRR-R1RR<RBRFRJRSRXR^RdR`R�R�(((s1/usr/share/inkscape/extensions/simpletransform.pyt<module>s"0$$4			
									$1