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/hpgl_encoder.pyc
�
��Yc@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddd��YZ
dS(s
Copyright (C) 2008 Aaron Spike, aaron@ekips.org
Copyright (C) 2013 Sebastian Wüst, sebi@timewaster.de

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����NthpglEncodercBs�eZejZedZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
d�Zd	�Zd
�Zd�ZRS(icCs<|j|_|jj�|_|j|jjd��|_|j|jjd��|_d|_d|_	d|_
d|_d|_t
|_dddg|_d|_d|_d|_|jj|jd�|_|jj|jd�|_|j|jd}|jt|jj�d	�||_|jt|jj�d	�||_|jjd
|jj|jjd|_|jdkr�|j|jd|_n	d|_d
|_|jjr�d|_nd|_|jjr�d
|_n|jjr,i|_|j|jd<|j|jd<nd|_ d|_!|jjrgd|jd<d|jd<n|jjd�}|r8t"j#|d�}t$|�dkr�t"j#|d�}n|jjr�|d|jd<|d|jd<n|j|j|j%|d��|_ |j|j|j%|d��|_!ndS(s options:
                "resolutionX":float
                "resolutionY":float
                "pen":int
                "force:int
                "speed:int
                "orientation":string // "0", "90", "-90", "180"
                "mirrorX":bool
                "mirrorY":bool
                "center":bool
                "flat":float
                "overcut":float
                "toolOffset":float
                "precut":bool
                "autoAlign":bool
                "debug":bool
        twidththeightttFalseii����s1.0initmmi�gg@g�?g�tdocWidtht	docHeightit-tviewBoxWidtht
viewBoxHeighttviewBoxt,it iN(&toptionstdocumenttgetroottdoctunittouutgetRRthpgltdivergenceXtdivergenceYtsizeXtsizeYtTruetdryRunt	lastPointtlastPentoffsetXtoffsetYtresolutionXtscaleXtresolutionYtscaleYtstrtovercutt
toolOffsettflatttoolOffsetFlattmirrorXtmirrorYtdebugtdebugValuestviewBoxTransformXtviewBoxTransformYtstringtsplittlentaddDocumentUnit(tselfteffecttscaleXYRtviewBox2((s./usr/share/inkscape/extensions/hpgl_encoder.pyt__init__&s`									&&+						
&cCsi|j|j|jddgd|j|j|jdgg}tj|tjd|j	j
d��}ddddgddddgddddgddddgg|_|j|j
|�|jdks�|jdks�|jdks�|jdkrtd��nt|_|j	jr�|j|j|jd<|j|j|jd	<|jd|j|jd
<|jd	|j|jd<n|j	jr�|j	jr�|j|j|jd8_|j|j|jd8_q�nd|_d|_|j	jr=|j	j
d
krM|j|j|jd8_|j|j|jd7_n|j	j
dkr�|j|j|jd7_|j|j|jd7_n|j	j
dkr�|j|j|jd7_|j|j|jd8_n|j	j
dkr�|j|j|jd8_|j|j|jd8_q�n�|j	j
d
krk|j|j|j7_n|j	j
dkr�|j|j|j7_|j|j|j7_n|j	j
dkr�|j|j|j7_n|j	jr#|jdkr#|j|j7_|j|j7_n|j|j|jd|j|jgd|j|j|j|j|jgg}tj|tjd|j	j
d��}ddddgddddgddddgddddgg|_|jdkr�|j	jr�|j	jr�|jdkr0|j|j}n|j|j}|jdkrb|j|j}n|j|j}|jd|||j	j �|jd|||jd|j	j �q�|jddd|j	j �|jdd|jd|j	j �n|j|j
|�|jdkr?|jr?|jdddd�n|j	jrX|j!|fS|j!dfSdS(Ngsrotate(t)RRitNO_PATHStdrawingWidtht
drawingHeighttdrawingWidthUUtdrawingHeightUUit0t90t180t270tPUtPDi("R(R R,R)R"R-tsimpletransformtcomposeTransformtparseTransformRtorientationtvDatat
processGroupsRRRRRt	ExceptionRRR*R+t	autoAligntcenterRRRRR%tprecutt
processOffsettpenR(R2tgroupmattprecutXtprecutY((s./usr/share/inkscape/extensions/hpgl_encoder.pytgetHpglks~@)E<	#		   #(.)E*&
c	
Cs
g}x�|D]}|jtjdd�kr=|j|�sX|jtjdd�kr
|j|j||j||�|j|�g�q
q
Wd}t}x|r�t}xt	|�D]�\}}||dtjdd�kr�|j||d�r�t}x�||dD]�}|jtjdd�kr@|j|�s[|jtjdd�kr|j
|d|j||j|||d�||dg�qqWd||d<q�q�Wq�WxL|D]D}|dtjdd�kr�|j|d|d|d�q�q�WdS(	NtgtsvgtpathRiiii(ttagtinkextaddNStisGroupVisibletappendtmergeTransformtgetPenNumberRRt	enumeratetinserttprocessPath(	R2RROtpathstnodet	hasGroupstitelmRU((s./usr/share/inkscape/extensions/hpgl_encoder.pyRH�s$
E8	7EF
cCsut|jdtjdd��j�jd�}tjd|�rgtjdd|d�}t	|�S|j
jSdS(	Nt{tinkscapes}labels 	

s( |\A)pen *\d+( |\Z)s(.* |\A)pen *(\d+)( .*|\Z)s\2i(R#RRWtNSStlowertstriptretsearchtsubtintRRN(R2RtpenNum((s./usr/share/inkscape/extensions/hpgl_encoder.pyR\�s
3
cCs6|jd�}|r.tj|tj|��S|SdS(Nt	transform(RRCRDRE(R2Rtmatrixttrans((s./usr/share/inkscape/extensions/hpgl_encoder.pyR[�scCsK|jd�}|rGtj|�}d|krG|ddkrGtSntS(Ntstyletdisplaytnone(Rtsimplestylet
parseStyleRR(R2tgroupRr((s./usr/share/inkscape/extensions/hpgl_encoder.pyRY�scCs�|jd�}|r�tj|�}tj||�tj||j�d}d}x.|D]#}d}x�|D]�}	|	d\}
}tt|
��tt|��ks�tt|��tt|��krm|j	||
||�d}|
}|}qmqmW|j
dkrZ|jrZtt|��tt|ddd��kr}tt|��tt|ddd��kr}d}x�|D]�}	|	d\}
}tt|
��tt|��ks�tt|��tt|��kr�||j|||
|�7}||j
krN|j
|||
|||j
�}
|j	||
d|
d|�Pn|j	||
||�|
}|}q�q�Wq}qZqZWndS(NtdgRAiRBi(Rtcubicsuperpatht	parsePathRCtapplyTransformToPatht	cspsubdivR&RmtroundRMR$Rt	getLengthtchangeLength(R2RatmatRNRUtoldPosXtoldPosYt
singlePathtcmdtsinglePathPointtposXtposYt
overcutLengtht	newLength((s./usr/share/inkscape/extensions/hpgl_encoder.pyR_�s<

H
`
H#cCs?tj||d||d�}|r;tj|�}n|S(Ng@(tmathtsqrttfabs(R2tx1ty1tx2ty2tabsolutetlength((s./usr/share/inkscape/extensions/hpgl_encoder.pyR~s#cCs�|dkr1t|j||||�|�}n||||j||||t�|}||||j||||t�|}||gS(Ni(tmaxR~R(R2R�R�R�R�toffsettxty((s./usr/share/inkscape/extensions/hpgl_encoder.pyRs
%++c

Cs�|jdks|jr1|j||||�n�|jjd�|jjd||||g�|jdddkr�|jdddkr�|j|jdd|jdd|jdd|jdd�q�|jdddkr`|j|jdd|jdd|jdd|jdd|j�}|jd|d|d|jdd�n0|jdddkrE|j|jdd|jdd|jdd|jdd|j�}|jdd|jdd|d|d<|jdd|jdd|d|d<|jd|d|d|jdd�nK|jdd|jddg}|jd|d|d|jdd�|jdddkr�|j|jdd|jdd|jdd|jdd�|jkrB|j|jdd|jdd|jdd|jdd|j�}n�|j|jdd|jdd|jdd|jdd|j|j|jdd|jdd|jdd|jdd��}tj	|d|jdd|d|jdd�}tj	|d|jdd|d|jdd�|}||j
kra||j8}n ||j
kr�||j7}n|dkr ||j}	x|	||kr|jd|jddtj
|	�|j|jddtj|	�|j|jdd�|	|j7}	q�Wn�||j}	x�|	||kr�|jd|jddtj
|	�|j|jddtj|	�|j|jdd�|	|j8}	q0W|jd|d|d|jdd�q�ndS(	NgiiiiRRBRA(R%Rt
storePointRGtpopR^RR~R�tatan2tPItTWO_PIR'tcostsin(
R2R�R�R�RNt
pointThreet	pointFourt
angleStarttangleVectortangle((s./usr/share/inkscape/extensions/hpgl_encoder.pyRMsLEJ,J,,,")MN>N8<
_
_c
Cs�tt|��}tt|��}|jd|kra|jd|kra|jd|kradS|jr|jdks�||jkr�||_n|jdks�||jkr�||_n|jdks�||jkr�||_n|jdks||jkr�||_q�n�|jj	sN|dkr6d}n|dkrNd}qNn|j
|krs|jd|7_n|dkr�|jddkr�|j
|kr�|jd||f7_n|jd|||f7_||_
|||g|_dS(	NiiiRs;SP%dRBs,%d,%ds;%s%d,%d(RmR}RRRRRRRRKRR(R2tcommandR�R�RN((s./usr/share/inkscape/extensions/hpgl_encoder.pyR�Vs29		.	(t__name__t
__module__R�tpiR�R�R6RRRHR\R[RYR_RR~RRMR�(((s./usr/share/inkscape/extensions/hpgl_encoder.pyR"s	
	E	O					(		8((t__doc__R�RjR.tbezmiscR|RyRWRuRCR(((s./usr/share/inkscape/extensions/hpgl_encoder.pyt<module>s