From dd38d299512f9fcb29459ec372073061b65d9413 Mon Sep 17 00:00:00 2001 From: Aliaksandr Dziarkach <18146690+AliaksandrDziarkach@users.noreply.github.com> Date: Fri, 4 Oct 2024 13:08:45 +0300 Subject: [PATCH] Backmerge: #2444 - Preview: the thickness of the arrow is incorrect when saving to png(svg) (#2488) --- .../ref/rendering/render_reactions.py.out | 2 + .../tests/rendering/reactions/issue_2444.ket | 196 ++++++++++++++++++ .../tests/rendering/ref/linux/issue_2444.png | Bin 0 -> 3733 bytes .../tests/rendering/ref/mac/issue_2444.png | Bin 0 -> 3904 bytes .../tests/rendering/ref/win/issue_2444.png | Bin 0 -> 3197 bytes .../tests/rendering/render_reactions.py | 13 ++ core/render2d/src/render_common.cpp | 6 +- 7 files changed, 216 insertions(+), 1 deletion(-) create mode 100644 api/tests/integration/tests/rendering/reactions/issue_2444.ket create mode 100644 api/tests/integration/tests/rendering/ref/linux/issue_2444.png create mode 100644 api/tests/integration/tests/rendering/ref/mac/issue_2444.png create mode 100644 api/tests/integration/tests/rendering/ref/win/issue_2444.png diff --git a/api/tests/integration/ref/rendering/render_reactions.py.out b/api/tests/integration/ref/rendering/render_reactions.py.out index 5cd739d7a8..6e83fd63a8 100644 --- a/api/tests/integration/ref/rendering/render_reactions.py.out +++ b/api/tests/integration/ref/rendering/render_reactions.py.out @@ -9,3 +9,5 @@ epoxy.png rendering status: OK Done issue 2457 wrong chiral label position issue_2457.png rendering status: OK +issue 2444 wrong arrow and plus width +issue_2444.png rendering status: OK diff --git a/api/tests/integration/tests/rendering/reactions/issue_2444.ket b/api/tests/integration/tests/rendering/reactions/issue_2444.ket new file mode 100644 index 0000000000..416cd10a95 --- /dev/null +++ b/api/tests/integration/tests/rendering/reactions/issue_2444.ket @@ -0,0 +1,196 @@ +{ + "root": { + "nodes": [ + { + "$ref": "mol0" + }, + { + "$ref": "mol1" + }, + { + "$ref": "mol2" + }, + { + "$ref": "mol3" + }, + { + "type": "arrow", + "data": { + "mode": "equilibrium-filled-half-bow", + "pos": [ + { + "x": 21.700001256913012, + "y": -10.68125, + "z": 0 + }, + { + "x": 23.700000753998914, + "y": -10.68125, + "z": 0 + } + ] + } + }, + { + "type": "plus", + "location": [ + 18.45000140359629, + -10.68125, + 0 + ], + "prop": {} + }, + { + "type": "plus", + "location": [ + 26.94999941522297, + -10.68125, + 0 + ], + "prop": {} + } + ], + "connections": [], + "templates": [] + }, + "mol0": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 16.200001485086997, + -10.68125, + 0 + ] + }, + { + "label": "C", + "location": [ + 17.20000134538864, + -10.68125, + 0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + } + ], + "stereoFlagPosition": { + "x": 17.20000134538864, + "y": 9.68125, + "z": 0 + } + }, + "mol1": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 19.70000116378077, + -10.68125, + 0 + ] + }, + { + "label": "C", + "location": [ + 20.70000121034689, + -10.68125, + 0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + } + ], + "stereoFlagPosition": { + "x": 20.70000121034689, + "y": 9.68125, + "z": 0 + } + }, + "mol2": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 24.700000800565036, + -10.68125, + 0 + ] + }, + { + "label": "C", + "location": [ + 25.700000847131154, + -10.68125, + 0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + } + ], + "stereoFlagPosition": { + "x": 25.700000847131154, + "y": 9.68125, + "z": 0 + } + }, + "mol3": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 28.199997983314788, + -10.68125, + 0 + ] + }, + { + "label": "C", + "location": [ + 29.19999802988091, + -10.68125, + 0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + } + ], + "stereoFlagPosition": { + "x": 29.19999802988091, + "y": 9.68125, + "z": 0 + } + } +} \ No newline at end of file diff --git a/api/tests/integration/tests/rendering/ref/linux/issue_2444.png b/api/tests/integration/tests/rendering/ref/linux/issue_2444.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd05c4c0f4a928e9029e39a63e6a882ccd3f782 GIT binary patch literal 3733 zcmZu!2{c>V8a|=YKGMlmiV7{2R)~2jr324QOIuo^swpMr5M#rovkrzD>Z-K8MN375 za)~Hy)le}uB4R3ySz=Z(y+eENdh4yXvsTX8|33Td|Lp(!|L@!P&e)pm6qXVO0AQzu zxrsdh2ql2`Iy(fw|4tpGD|msrTbY>v8=Jr9wA^F>*kx&9a`IeQ=2UOA_4x(ax*43R z(zOEY4vO23iiMB*ip8Z}mbL6{Z^~bLY5T@;w1$;33$CwS^&{1ku=Y#kvl@f;ITbLZ zUcPv+{}}Vb1CG+|m`fijMXbN!%QM&iTFK(3#V-*CvT(*k9CvPpxv(D9ugjaO2$gLq zugjjOfPy{&z;n^E$xSE0rg*hRKxEDtn)y^1OFQ*+{tbb0FWCe zQMpP-j_3sr-kdxI00Bng%HTv3-!Ae==7JeK{8e6FBX8*oYC8ZRz_$UwiLaBaVq)}q zIGQ;zKF)o=u}&hPSojs^X)}VH8r_1B>>30BP0RRuo9SlPdh>@o!p+QIU@(T)5&;n01qt{pS9Sfy44#43kRaJjKKcj$w z>dNpr1#u`4b9Gu;JjP2eV{bs-sI%@K6aq2waksGxE#e*c%}#eWoe41C0WReQg+lel zjsifA+isC+t+($4ZENA;>Az=Nr4d$V>V$-ZC?XIyqpAhSJ#}yZ%Or)Ywfy+;*T8S+ z%CNSubEc-Zo@#q%xLTWbQKheu)uI+cX!9u zJRd8>n$0X((j{YDylsUV8t0Iwe%Tb@TtTtu_SFFmfRs+zW&za=6;SY&zXQgLeg4a26N*A1z2HwNN%-g}q>R-YLYDL%^ zwS5Y4dPy}dZDoFLmt0UxD^;47j*em^DFpp+D#J&@tTbPq?}7T~QBOqN%R4utW@;sJ zZJ!CFUCC}WMOW)IG&J0e#`_|9zTVzSN=oe^=#COTpFhPe%YF6A$vNL=UbrF7OTw(M z={y>(LfxiEPn0*)@$FWi3Lj4RXOCDk``{Y)maOBSIfC1F-3>Oxa2ivb%lu^EaM$;Q z8(v;-Vr6t?{thFK@%3vx3KF0^YkAUuF20RFz2nST0gY$%D>+uMrUuaZ1A8 z-ab|JGHQ0*0tuldX$YP<(C}O@2~rJ9n7S{|J}3nCMi8gJ-#h)m?uv$HVy@cQ_;_Pu zqj2vr&*sc&S%IU<%BvHF??3P=ueZHywHX^5%gGczT%p(hHrrj?|7_u_mKc-3s=)Yq z?tKz+6AA}CW)uX0lkH_#O7EWHFiLOm{|-O0yKQnnG-!>#P$wI`I?MSIFQIA_F+U2n zfq{Yg`g$;3Kpees$aN(wbEa2TqN-YN8SpAKAski)Izqcw@`Q$*B^F7)79yfSn`xjjWi>O+ksB_*wM-#Hwc zX!YyegHgq)_b*nO(vpk>MQfKos~n;tD@fH~;@nQJO@;y6Ec!_e_|r{;4fu}#9X2qM zbf3He7Nc$b?bX#Mo{StldX!b-)p28~S9gqWCVS&tM~SqqA6QRiKd1b=<00ozkF`L= z;cHMZ1SbO(1Y;!S*!#>%PYZ*+&0Sd?rl+bnm-?_YI5sajNPqQmo0_bL8o{#EAH4x4 zL}KDzVvFbM&OHq%S_T&;Cz$}-{CIO{b$C5~qAS}GV{j;O%jA&>)3C!z?by~AJ|bh& zQR&JnDC_ffArguHF5J=4gfmZXbkQ7j|9~iHCLJW;dHWgwz1=LhF?H#_kD0=j>3kC= zf$a8TqM~I4>*t3;p^ONtVR$?qjYj{Ffk%uU916nWa34fUe*0rlX&5H=uSA$4#p{gxr^Ir0B0a9 zBNg>{1lz{*zejjKFy`~Irj}c6bar6C&C_!v?J_}MU41Ws*wfR~-rnBI0a=|2^3NsJ zqR1ugjg>{t$VlPk_v;`kbDk6^8!TF4pb0+aP#mksQ9*FP5JN4W>_Spx5`UUHETN9y zDfI4l*vIhWQWXbwZ1bRt@~xA7|3Tr$^==vw4%Dz~RqO9hFXU|x=$$k-o_Ye;d^I?X*zP{?jsrj*vZ^rT6 zU0p|3kBYbcKn1{qIGWi3$z2HVgI0$MGiL zIn+?>DG2Gzxa5I^e%%1Ld^0r{UO>()eApLTCsq+3iW!{Rypa?WEHMO(7-Tu<0?*9HluMALu&CzwG zrKI4IlSN5MNtv0M4<0;dYik4fl?P&C`rAiGl8ZWg<*S1ogUNJW&ieY2Q0So}7@(6> z<2}CAh;JBJh-i6curwI2N|P$#v7}+>r0P8wAn0|fKow8Sy{~gCVQ%{9OtRFUrd>8VLh2*ujwY= zCcR0UN40-4tnkB!55Gm870{HAOb9_2{p40F3EDSGetep}!%2<1IE;pZd(F$@V$I+l z9tdGjc_}I?2BT%ArLjIfO>{a#i#{~tQXa(dXfae*5BxFxt+KLmbP8YYlAWEsNiWJ> ziB01v-kNR_ZR{<|*7>#e+S;0Hp>BlL@1q#IB2s=CI(cfa9$)^ozhdY`_om9oOoRQ4 zzcYTRKe}Jf+=JUw4yxVHsuO*Ibuua{D(b}OsHn>9>}z$8WRMr$);Bj-aZ;T@ax#Rs z4A#bfX>9byVk09Xg{(pv!(OXKpz1++_Dd_O^?v&FiS7ShhOpy^nhM3tiFv*k zEX#oys`9vh@5~w8W)|35-acxJ^-j#n$^xZBXJ=<$UmpmE9x(5gdT@4ufitDPYzl=U z>LB<%XceZnvdvLEaP^#=BDLj2Xy{ULixHc_I85Es^*GL0VzLS?Pk2OxR4veBhH?ee z>26TbGB=1GTo!#IXm(}I0A!P5PrFgXpTNl|6tGxZW+bQXLBUZ`CRQ zGlD{CADO##IefV3>2`S7i3=70fSW1UZ4TQy_XIrIDXkM65>ntwJGR=mwzBjk4?Me6 z=X8A(P}_-}0$>#+CWCR_(Q##sVAEmm;IP8yYiMd-V+sLkkbZv5Cs6qVK+{N2d0t)~ z;m5Z-v9SU+9jkHzlI?0&=cV6M~{~$H6lc z`HZ)>w~Y-QRB;~kjF9j3ds!TCau-xY8~~h9!R;NOJZIh7GTpfeUckm7-x1onIn(_9 XOpd}$-%qbQH~SW*wkD)gZn6IXoo_#* literal 0 HcmV?d00001 diff --git a/api/tests/integration/tests/rendering/ref/mac/issue_2444.png b/api/tests/integration/tests/rendering/ref/mac/issue_2444.png new file mode 100644 index 0000000000000000000000000000000000000000..c75bba023b31adf08e401bdb2f51a6eddc0a59ab GIT binary patch literal 3904 zcmZu!c{r5q7k*KQu@%Wql(k5{%Au)z(CNcJ{K5Moi$ySz8kx;KXcq-N*nqIK18y@{<98lV)O|XBm)A8TY#JigwWYdpSK!@?&Mpvr%rD zz8v976)zd~3v+ox1sskYA3a^H``vx(%**GjZh7{iDaU8F?quO-g1MIC^>eV+_ zM{jVl2(%mse-+5|u2=64<^S{J;iv9PBwuaPyk<{paff$_cSa3$IfT$X^3AuqY-ca@ z&@2FG6kf?<|N8`_wiL4Iid82Xz*&IaFJ<)U4Nt ziO2sc;fiKJ+Ash><(>NAoz?MLrVi1B`Cn7bP$<;1=B_&o0IVVTa^QYVw~$Ef^>^pa zofA@X*Lb{^QxFIMrI|tTyId3l^19EAtMLP9}Pk^E_CX|8T=)cRe| z@JI&0mLnK`^gWk$6{|IDAzLU_R!eK|Ys?99wZ{nrE5P*o&=y%8V442>?|Z7Zwcy{*ZEU(H+% z^ra#f7Z*+KjKQpxSI4&Md8eoT;Ey>)pnBs`(Wl@raYiof?H`2}`D<%y2K?npCq&0l zwSK5t?z-i-TtwUBCry~qNht!#cv*apCawPls!@i-#W~mB2WoIV>N{Ol% zwn3xu@$=VIRTb8ZdG}~35;pqjwB?HO^8Wt*G0&|@^ugZG1fBhj0kd$vmX;R3mG8fo zaSd}bGpyJM;!YB|y`>`J^~J`+{1z7%L3U?J2dYgO zsgIP1jCdaZkl+JibamT35i)9{D$p5#o$k-Q9upH2PRYs1@$vC-emr;|y{Ecv9uX12 z!!OPw8R&rNd&#MIXI(1B&8V`Sbh!X8zD_B`s8L#z6uXm}(W`Q^j4iDGwZIYR-TsZ%Q zGak9vvFHfKL zZ?m<2pT3-L_HLrmWnj4Yu2|5@1$#CXp8uTZ1Glk}#UE)*Ym=ue@J+J}lw?!|Ip8h$ zZr;4v+}s>Kn{nCy{N3ssyY}AR-d^MQTx7f5r@f}qO4YlG@#;}&ERg*6t{ zoAjK}p9x_P2ENX(J2*PJ23vt#n?%^#+Z!c_YCT??X>1JZat!(r&Qk3@vNn9z%K?Sz zyi`CepX zWJpNJ&dyGa=Xl!Z@<3Hq@6X~kfqcV&cxWPoIVl$|#bj%Os?|d+@{Pp5H)f7#>o01< zJP0q6b5|oLNgAnGDQRlbf47SD;D3X`yA4VnA9QD_2nT|2{L`avv3%fu9*&N43kwUM zz2{@&;)ZAz78YI;b%iqR-@m7}%)hv6xFtsiVbS@2uqb3g_HETX$4-4BdDgHXBnnnn zJ$);3b92LmbpHIh8rA%WO4#Z~px5WRVzcW0taV)U>g?)*sVl3gpSJdg$Gkf>=XDpxm;B0s}Lv}}U8ZUv(AK;cYX8vj1Cy!w$ zl`0?CxV;hUZgfj3;!(~5>?@Hwj*9*CGyXD|gD)+&(CPGv2_)1!GhjOAO^uU-LtzKM zBJ#Q3<26h!`~e3r%|f*0wh8=~eL@DW|7D+2v;rYkLBQ@2)-G>#bycx`d-{!2=18qS zZrl?MBB18}UCBEV3?FPqS6A1RXG3M>MxT+GuV#kM!JlhUkjk98=`QD@wL`8kE%B4%63kqaPSN{3jM9)ip_KZ29 z^@MdOeKCKazu!l0EGK9A)oTV_;nM;eXAn4J=0;4LUx*1wzFb5v2|~w|z#p7xX4J95 z;>O0tir_fr*JkM&=3w^y{{531siZL>rJ%jNJ#>32s&Q?qIVuihpf^>mKdOE2X`WM~^R$0R~D)6&y@G&B5yJ~oUW8$KIYlAlC5E%n5AVWetERYZAsdR7b+_wb4pM!&FeClA%Zqn%;Bcj zuDN=63?Zvme5kNa!;4>mHs{Tb!2{{PemE{6;N!nKb}7`6OY^u^-$0vROd{p1L`R

znG zR{}~aDh3YFi$At@5$8!@?K%9>#(QZ{mR1Hbqo5y`f2iuzn>}5445y@;My4?_r}Jv_<3_t^q)si^J=e2ZU4Qgsj0^H zcOjcLy&P&PDxFt!cuSr8vS`bs`MJ5goSe=*s<2j|WzZL^EPLFBR@})hpzTasUsZ4T zSrLq$rc?xv={s$L&tiXX)Rj{4zKAO?+*3G5&ZjFF`KuT+FIp=KKy+Zg_jjrCv6#ff z-k~8?w>?Rt_#;-U3k#`UZ;OkImxqhl(-7PR!os$fV1^uXen*5FJzXeI(FkgOI@a^sGg^OtuJ372S-wPKC z(Z28D;i0epBufTYw{~rziymALioEvDOtM}>f2U)GgOd|_XEvqAYjPNgg)R2WhZtR? zGbBP6G`RmV$Rr73_-iLvEM%i^Oy@oz7$Z96f~w7F^9x5^!e{F#8@FF0+O8}5ltOV; zRlcq9BA@`v%F2SO59W{hfZx+qZX{ml2;SGt+j~6=8dvG=6dXK8@!Q(m#E-9j`0xSr zKDflu$%%!KcBcCc79PkEMjUak=H6-nt0+z)cTnEaD^<)?`zv{ngnwHF)*1UD($R9Q z%^O4VZm8WS0VMwO7zyyLh?PZm*9GHz56p=L1!UC%KroYe1JxKTzVSLk#VrU z>t$-nsk3u3>Z2Brem^0#iiL^2yalMNtgPFfjsx2bABn_gv-kNwK5~|{8x{p7Xwc5l zi14G4s=x&;7=!gG#XGv`LLwsPM5 zW$a~9yaVt;U7Vf2H=rBnKkqVt4qQ^VWB^dDwc6s$+wSK801rY8LNQtGLGBdN+1s!% zr-6-5TXc~e5b`ioB&?mf1&6~gXP73mX3NAjPdx;=aDRyrXp8^53k>XhG%H5jXJ=>8 z`#VlZWM-BO*gUQG=;j0PM)SyJ)_R0SMu6+`{~81-zXOB4m>ew_vW$_p6&9 z&viaH@1%a?tCfUU+LazWPFAcWZuii}%@9OBJTIFXHXqh%O&$+Rs~n7^rcYnU?qRmj z!7YJwbm{mA_b;~N{UT4wE4$JshaHtO93&3`@k`U~aa*h7_O9GOr_K`BXHOIt0G!CQ zF<`<$^6~NU@GwT50|2MTBZ2^M-|1fCSgCzUS67z-i&nI-;5#x00PgZoZBYM=E_!)1 zf=<}_){{<%*h)%BcpLu13S|laqYr-yzkyb|v44DFl0BEsqcsPp$i@xs4%~)S;rmL~~K?%khQEu{0P&>+1QSkua z&d1p_jo8uAL8HA~RCd1)Ek|vCpRR0SEiR6f-zMR&y9xmSxkK9?Tve3F_B;Ssh?UEL z9p9;_Y5-7B3P#CGe*C1lsb3YSsi|4#yfR#TwJob9c)_j$db`ef;j=scS)`Y3pph5*)BAqOv^&b)$OFL2x}!4Ig^Cz>G$oK-8hsJKuzsvD7eTqybCLNi8d!oSonDqs%ShQt9Oou`83yrr-t>27hPUJ7Ka7WVz(Nfaz$Lxh?kd|xrO3d zJFatgYT;8!S;UR4*(`ra^ZN468?e3@{gYB1?`$oqaX#WPI+2ecll!>VPTSA z-D)y^DJeNwTRL&IwQM{fBCo+GW^t?$DG{~uxbcBL4IR`cUXUEU$E4N{8pudXJ3Beq zy5f?$RlxCO;|5&qZT$O8eMo((o~>=M9bXHi&N*>(yJ0fwaDa*r~w_;_;Y3QD~DNlZ*kx{^)6*Vkv~NFy8Dij>aOm4Bu<&N%`) zM<(5vRbw^DWqQ!?ynM@d=ozu5qUWUY8imHj;act2oyt*tF{dnef)u#!H!Othrmf6$ zqyN17MG{$XD9t$cVUPPTN_&2OejxYqCw5S1sMFmkYJT)Y*i_T%26b@G@jr6&{F?=o z&I^vfHDk9&xA5-5O|H4cNJY$zVtPz3f7Fqewr3a@>)k3FC@XofH0DFUHq%K6RoThL zW^ioFXf7dur||*z3(dPX6tE^5K)iW7ctb+E(Wd|Z10rqVtJM9SC>I?pM;~u)D5<72 z1ZKG=eR--fiVct?x*Ryq9j2J{>xj_<86UOn?-4{Ir%Ovqk<zgYSBoaAf zGEb#8Cr?K2W7;HZ?ER3%mVrimfBqXqRjPj`!D?KOk(0!HYPKwSf-+BIyW`AQ_1`qL zbNZ`rb>VrEYnOjdtx?oqrCYR}9QHQ*Uv2Z{nE|y5I z8B~=dtF3>-++5GD>qi&m7^|JlP-pfjm>g3uImqoOeq2@-KjN2RRXpSq{Me^~lAfNP zG`l=neG84&Vy6}Gg|{P?F@G0o1IVD=Qvw7J%}s;%9m|QY9ku=HoJ+=LiOC`KXUzfQ zO_-fclv?C^yRhL47txExfujk8()c0GOPA(!tm~Ww zDJMcJ9PKw#l%;aYy&|}z%rq>XR5zZI0+6XIqF(;^Zgftn0Eao4Zj2jA%+AiHx9&&n z@3HYqvVVl0_phD8gzWEb47$O*{QN%TUHuG4;15P{WkWP9va|n56|H;!*6XRb&>v_(G6J*EUl$6aRT>9%dve+Y#rpkiaS*_B=<6V0^nEhrbf{K*LkubnHZRfASsu^lk-(~O@-@3Xh&`*SK`t=9X+ zsUBboov8J;`Ji4#UAxN3p_kfjz;a_0u)$iVu}_2(Eu?5WQN?ya$4ZuE6hXB>q)jQENE#Z2m&aM;^$yGAsb1)=%R_8}JfmGI)@zKSXA`?D? zQJXi)ho>aMQ>c(ahs67KRxB`J9AIVpzoI87*d0x|SL zFUh_FinX5%XwV;2$?6RZ{9bPrAA-O{_rE!uGBT2gsAX46MPTNYRV)~sx|%YZVNVAL-XG@HYbuBRwKkY< zw^vIYl=ayvH4v7I?}SX#G{zc!q9?^5?c_;PB@9-JNZjuD4F~r{Vf}67$ao2F%qcF* zSO!=jeJcZkTbRFV!JbhFp?ON%&R~}4RfEiJgsmy{oqvS%f&|jATbEP8qf}Nf5#0mv z4TByQ)7L$`$V0~SgYQpWJlFj#IGg*rg7&sn$*`&=FYmRuRfc?6x%F57##_I-CR)yw zhgUp?Bp***{YM2GZo>O^@DUgSpHE4>i1@KM^6;=E6z?Jxw9R$(!%x)`UkLudpY9Q-rf#krXjlU zab3oAoSgDmzOT~9IOO2UeLw2%7v7hb3YtLZr7?gSCnn3u8Ak0+5F*+pD_t7b-#TYG*6aA z(It1l&?|SWEIY>s!d@Ataj?|~VZsiRn%}&IBLvNM?e4x^d=4(1KwRVjfKutBM|C1L zml+HOSgNR0DzU4}!SNsng8$&)N!x;m)=?El{M)b%Gt^~J3IReZ0JsFLa7HoL=k7Hw xhvh9ggX4Xf8yFah19?GW&(?BqB>=qh-#bondThicknessAngstrom > 0) + metaLineWidth = bondLineWidth; // new behavior: plus and arrow width same as bond width + else + metaLineWidth = 1.0 / 16; arrowLength = 3 * plusSize; arrowHeadWidth = plusSize / 2; arrowHeadSize = plusSize / 2;