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/draw_from_triangle.pyo
�
��Yc@s%dZddlZddlTddlZddlZddlZd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zdefd��YZdejfd��YZedkr!e�Zej�ndS(sb
Copyright (C) 2007 John Beard john.j.beard@gmail.com

##This extension allows you to draw various triangle constructions
##It requires a path to be selected
##It will use the first three nodes of this path

## Dimensions of a triangle__
#
#        /`__
#       / a_c``--__
#      /           ``--__ s_a
# s_b /                  ``--__
#    /a_a                    a_b`--__  
#   /--------------------------------``B
#  A              s_b

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����N(t*cCs�|dkrB|j}i|jd6t|j�d6|jd6}n0|}i|jd6t|j�d6|jd6}t||�\}}	it	j
|�d6|tjdd�6t|�d6t|	�d	6t|�d
6}
tj
j|tjdd�|
�dS(
Nitstrokesstroke-widthtfilltstyletlabeltinkscapetcxtcytrtcircletsvg(td_radtd_coltstrtd_thtd_filltc_coltc_thtc_filltget_cartesian_pttsimplestyletformatStyletinkextaddNStetreet
SubElement(tradtcentretparamsRtnametparentRt
circ_styleRRtcirc_attribs((s4/usr/share/inkscape/extensions/draw_from_triangle.pytdraw_SVG_circle-s	-*c
Cs(t||�\}}}i|jd6t|j�d6|jd6}itj|�d6|tjdd�6dt|d�d	t|d
�dt|d�d	t|d
�dt|d�d	t|d
�dt|d�d	t|d
�dd
6}	tj	j
|tjdd�|	�dS(NRsstroke-widthRRRRsM it,is L s ztdtpathR
(tget_cartesian_tritl_colR
tl_thtl_fillRRRRRR(
tvert_matRRRRtp1tp2tp3t	tri_stylettri_attribs((s4/usr/share/inkscape/extensions/draw_from_triangle.pytdraw_SVG_tri=s*�cCs�|\}}|\}}i|jd6t|j�d6|jd6}	itj|	�d6|tjdd�6dt|�dt|�d	t|�dt|�d
6}
tjj	|tjdd�|
�dS(
NRsstroke-widthRRRRsM R"s L R#R$R
(
R&R
R'R(RRRRRR(t.0t.1RRRtx1ty1tx2ty2t
line_styletline_attribs((s4/usr/share/inkscape/extensions/draw_from_triangle.pyt
draw_SVG_lineIs*>cCs_xXtd�D]J}t|||�}t|d|d|||dt|�|�q
WdS(Nit:(trangeRR8R
(R)RtwidthRRtit
oppositepoint((s4/usr/share/inkscape/extensions/draw_from_triangle.pytdraw_vertex_linesQscCs>|\}}|\}}t||||||||�S(N(tsqrt(R0R1tx0ty0R2R3((s4/usr/share/inkscape/extensions/draw_from_triangle.pytdistanceXscCs*|\}}|\}}||||fS(N((R0R1R@RAR2R3((s4/usr/share/inkscape/extensions/draw_from_triangle.pytvector_from_to[scCs�|dd|d|dd|d|dd|d}|dd|d|}|dd|d|}||ddd||ddd||ddd||dddfS(Niii((tttptdenomtc1tc2((s4/usr/share/inkscape/extensions/draw_from_triangle.pyR^s>cCs|\\}}}\}}}\}}	}
t|||f|�}t|||f|�}t||	|
f|�}
|||
fS(N(R(R0Rtt11tt12tt13tt21tt22tt23tt31tt32tt33R*R+R,((s4/usr/share/inkscape/extensions/draw_from_triangle.pyR%ds
'cCs0||||||d||}t|�S(Ni(tacos(tatbtctcosx((s4/usr/share/inkscape/extensions/draw_from_triangle.pytangle_from_3_sidesjs&cCs|jddt|dd�d�}|jddt|dd�d�}|jddt|d	d�d�}|jd
dt|dd�d�}|jddt|dd�d�}|jd
dt|d	d�d�}|jdd�}|jdd�}|S(Nts_as
params[0][iit]ts_bits_cita_as
params[1][ta_bta_ctareasparams[4][0]t	semiperimsparams[4][1](treplaceR
(tstringtos((s4/usr/share/inkscape/extensions/draw_from_triangle.pyttranslate_stringns((((((cCsbg}xUtd�D]G}|}t||�}td|jd��}|j||��qW|S(Nislambda params: t"(R:Rdtevaltstriptappend(ttcfRt
trilin_ptsR<ttemptfunc((s4/usr/share/inkscape/extensions/draw_from_triangle.pytpt_from_tcfysc
Cs>tj|jd��}g}g}x�|D]�\}}tj|}x�t|d�D]z}|d|dkr�t|�|kr�|j||�qU|d|dkrUt|�|krU|j||�qUqUWq+Wt|�|kr6t|�|kr6g}	x6t|�D]!}|	j||||g�qWngS|	S(NR#iitxty(t
simplepatht	parsePathtgettpathdefsR:tlenRh(
tnodetnREtxityitcmdRtdefsR<tpoints((s4/usr/share/inkscape/extensions/draw_from_triangle.pytget_n_points_from_path�s 
&&$"cCs_|tdksI|tdksI|dtdksI|dtdkrMdSdt|�SdS(Niii����I�vHi(tpitcos(Rn((s4/usr/share/inkscape/extensions/draw_from_triangle.pytsec�sIcCsN|dks8|tks8|dtks8|dtkr<dSdt|�SdS(Niii����I�vHi(R}tsin(Rn((s4/usr/share/inkscape/extensions/draw_from_triangle.pytcsc�s8cCsN|dks8|tks8|dtks8|dtkr<dSdt|�SdS(Niii����I�vHi(R}ttan(Rn((s4/usr/share/inkscape/extensions/draw_from_triangle.pytcot�s8cCsctjt�}tjtd�j|t|dd���tjtd�j|t|dd���tjtd�j|t|dd���tjtd�jt|dd���tjtd�jt|dd���tjtd	�j|dd��tjtd
�j|dd��tjtd�j|t|dd���dS(
NsSide Length 'a' ({0}): {1}isSide Length 'b' ({0}): {1}isSide Length 'c' ({0}): {1}isAngle 'A' (radians): {}sAngle 'B' (radians): {}sAngle 'C' (radians): {}sSemiperimeter (px): {}isArea ({0}^2): {1}(tDraw_From_TriangletgetDocumentUnitteRterrormsgt_tformatR
(Rtunit((s4/usr/share/inkscape/extensions/draw_from_triangle.pytreport_properties�s---**$$-tStylecBseZd�ZRS(cCs�tjtd�|_tjtd�|_d|_d|_tjtd�|_d|_d|_	tjtd�|_
d|_d|_dS(Nt4pxt2pxs#aaaaaas#000000tnone(
R�tunittouuR�RRRRR'R(R&RRR(tselftoptions((s4/usr/share/inkscape/extensions/draw_from_triangle.pyt__init__�s					(t__name__t
__module__R�(((s4/usr/share/inkscape/extensions/draw_from_triangle.pyR��sR�cBseZd�Zd�ZRS(cCs�tjj|�|jjddddddddd	d
d�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dddt�|jjddddd
dd dt�|jjd!dddd
dd"dt�|jjd#dddd
dd$dt�|jjd%dddd
dd&dt�|jjd'dddd
dd(dt�|jjd)dddd
dd*dt�|jjd+dddd
dd,dt�|jjd-dddd
dd.dt�|jjd/dddd
dd0dt�|jjd1dddd
dd2dt�|jjd3dddd
dd4dt�|jjd5dddd
dd6dt�|jjd7dddddd8dd9�|jjd:dddddd;dd<�|jjd=dddd
dd>dt�|jjd?dddd
dd@dt�|jjdAddddddBdd<�|jjdCdddd
ddDdt�|jjdEdddd
ddFdt�|jjdGdddd
ddHdt�dS(INs--tabtactiontstorettypeRbtdestttabtdefaulttsamplingthelps'The selected UI-tab when OK was presseds--circumcircletinkbooltdo_circumcircles--circumcentretdo_circumcentres
--incircletdo_incircles
--incentretdo_incentres
--contact_tritdo_contact_tris--excirclestdo_excircless--excentrestdo_excentress
--extouch_tritdo_extouch_tris--excentral_tritdo_excentral_tris
--orthocentretdo_orthocentres--orthic_trit
do_orthic_tris--altitudestdo_altitudess--anglebisectorstdo_anglebisectorss
--centroidtdo_centroids--ninepointcentretdo_ninepointcentres--ninepointcircletdo_ninepointcircles--symmedianst
do_symmedianss--sym_pointt	do_sym_pts	--sym_trit
do_sym_tris
--gergonne_pttdo_gergonne_pts
--nagel_pttdo_nagel_pts--modetmodettrilins
--cust_strtcust_strRXs	--cust_ptt
do_cust_pts
--cust_radiustdo_cust_radiuss--radiustradiuss--isogonal_conjtdo_isogonal_conjs--isotomic_conjtdo_isotomic_conjs--reporttreport(RtEffectR�tOptionParsert
add_optiontFalse(R�((s4/usr/share/inkscape/extensions/draw_from_triangle.pyR��s�



























c&Cs|j}g}xJ|jj�D]9\}}|jtjdd�krt|d�}qqWt|�dkrt|�}dt	|dd�dt	|dd�d}id	tjd
d�6|d6}tj
j|jd
|�}ddg|dd|dd|dd|ddg|dd|dd|dd|ddgg}	t
|	d|	d�}
t
|	d|	d�}t
|	d|	d�}|
||f}
t|||
�}t|
||�}t|
||�}|||f}t|	d|	d�}t|	d|	d�}t|	d|	d�}||f}|
||d}t|||
||||�}||f}|
|||	|f}|jr�t|�n|js�|jrE|
||d|}t|�t|�t|�f}|jrtd|||d|�n|jrEt||||d|�qEn|jsW|jr�dddg}|jr�td|||d|�n|jr�||}t||||d|�q�n|jrL|||
||}|
||
||}|
||
||}d||f|d|f||dff}t|||d|�n|jr�|
|||
}|
|||}|
|||}d||f|d|f||dff}t|||d|�n|jrtd|�}td|||d|�n|jrsdt|�t|�gt|�dt|�gt|�t|�dgg}t|||d|�n|j r�d|
d|d|g}td|||d|�n|j!s�|j"rUt||�t||�t||�g}|j!rtd|||d|�n|j"rU|
||d|}t||||d|�qUn|j#r�dt|�t|�gt|�dt|�gt|�t|�dgg}t$|||d|�n|j%r�d3d4d5f}t$|||d|�n|j&s|j's|j(r�d6d7d8f}|j(rBt|||d!|�nx�t)d�D]~} |j&r�|||
| }t||| ||d"t	| �|�n|j'rOtd|| ||d#t	| �|�qOqOWn|j*s�|j+rWd||f|
d|f|
|dff}|j*r2t|||d$|�n|j+rWt$|||d%|�qWn|j,r�|
||f}td|||d&|�n|j-r�td'|�}td|||d(|�n|j.r�td)|�}td|||d*|�n|j/s	|j0s	|j1s	|j2rg}|j3d+kr�	x�t)d�D]_} |j4j5d,�}!t6|!| d�|!| <t7d-|!| j8d.��}"|j9|"|��q9	Wn|j4}#t|#|�}|j/r�	td|||d/|�n|j0r8
t6|j:d�}!t7d-|!j8d.��}"|"|�}t||||d0|�n|j1r�
dddg}$x&t)d�D]} d|| |$| <q]
Wtd|$||d1|�n|j2r
dddg}%x>t)d�D]0} d|d| |d| || |%| <q�
Wtd|%||d2|�q
qndS(9NR$R
is
translate(iR"it)tTriangleElementsRRt	transformtgig@itCircumcentretCircumcircletIncentretIncircletContactTriangletExtouchTrianglescos(a_b)*cos(a_c)tOrthocentretOrthicTriangletCentroidtNinePointCentreitNinePointCircletAltitudetAngleBisectorsi����tExcentralTriangles	Excircle:s	Excentre:tSymmedialTrianglet	SymmediantSymmmedianPoints1/(s_a*(s_b+s_c-s_a))t
GergonnePoints(s_b+s_c-s_a)/s_at
NagelPointR�R9slambda params: RetCustomTrilinearPointtCustomTrilinearCircletCustomIsogonalConjugatetCustomIsotomicConjugate(iii(iii(iii(i����ii(ii����i(iii����(;R�tselectedt	iteritemsttagRRR|RtR�R
RRt
current_layerRBRWRCR?R�R�R�R�R~R!R�R�R�R/R�R�RmR�RR�R�R�R�R>R�R�R�R�R:R�R�R�R�R�R�R�R�R�R�R�tsplitRdRfRgRhR�(&R�tsotptstidRutsttgroup_translationt
group_attribstlayertvtxRXRZR[tsidesR\R]R^tanglestabtactbctvecsR`R_tuvalsRRtpttt1tt2tt3tv_matR<tstringsRlRbtisogonaltisotomic((s4/usr/share/inkscape/extensions/draw_from_triangle.pyteffect3s	2
	17$	
!				
	*	*		N	-			N			*	1*					$					.(R�R�R�R�(((s4/usr/share/inkscape/extensions/draw_from_triangle.pyR��s	at__main__(t__doc__tsystmathRRRpR!R/R8R>RBRCRR%RWRdRmR|RR�R�R�tobjectR�R�R�R�R�taffect(((s4/usr/share/inkscape/extensions/draw_from_triangle.pyt<module> s6
																�