From 3d51b3949b23b9bd0f25eea39dca342fc9830949 Mon Sep 17 00:00:00 2001 From: phkahler <14852918+phkahler@users.noreply.github.com> Date: Thu, 11 Jun 2020 20:50:21 -0400 Subject: [PATCH] Change default chord tolerance (to 0.1%) and maximum segments (to 20). See the discussion in #627 for details. --- src/solvespace.cpp | 4 ++-- test/constraint/arc_line_tangent/normal.png | Bin 5101 -> 5100 bytes .../cubic_line_tangent/free_in_3d.png | Bin 5049 -> 5073 bytes test/constraint/cubic_line_tangent/normal.png | Bin 5208 -> 5220 bytes .../curve_curve_tangent/arc_arc.png | Bin 5017 -> 5027 bytes .../curve_curve_tangent/arc_cubic.png | Bin 5219 -> 5201 bytes test/constraint/diameter/normal.png | Bin 5023 -> 5024 bytes test/constraint/diameter/reference.png | Bin 5100 -> 5101 bytes test/constraint/equal_line_arc_len/normal.png | Bin 4554 -> 4564 bytes test/constraint/equal_line_arc_len/pi.png | Bin 4672 -> 4667 bytes test/constraint/equal_line_arc_len/tau.png | Bin 4966 -> 4963 bytes test/constraint/equal_radius/normal.png | Bin 5249 -> 5258 bytes test/constraint/pt_face_distance/normal.png | Bin 4305 -> 4314 bytes .../constraint/pt_face_distance/reference.png | Bin 4369 -> 4378 bytes test/constraint/pt_on_circle/normal.png | Bin 4879 -> 4884 bytes test/constraint/pt_on_face/normal.png | Bin 4661 -> 4662 bytes test/request/arc_of_circle/normal.png | Bin 4569 -> 4560 bytes test/request/circle/free_in_3d.png | Bin 4803 -> 4796 bytes test/request/circle/free_in_3d_dof.png | Bin 7197 -> 7195 bytes test/request/circle/normal.png | Bin 4803 -> 4796 bytes test/request/circle/normal_dof.png | Bin 4836 -> 4830 bytes test/request/cubic/normal.png | Bin 4947 -> 4949 bytes test/request/cubic_periodic/normal.png | Bin 5223 -> 5225 bytes test/request/ttf_text/normal.png | Bin 6154 -> 6158 bytes 24 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/solvespace.cpp b/src/solvespace.cpp index c88f50a..736846c 100644 --- a/src/solvespace.cpp +++ b/src/solvespace.cpp @@ -44,9 +44,9 @@ void SolveSpaceUI::Init() { exportMode = false; // Chord tolerance - chordTol = settings->ThawFloat("ChordTolerancePct", 0.5); + chordTol = settings->ThawFloat("ChordTolerancePct", 0.1); // Max pwl segments to generate - maxSegments = settings->ThawInt("MaxSegments", 10); + maxSegments = settings->ThawInt("MaxSegments", 20); // Chord tolerance exportChordTol = settings->ThawFloat("ExportChordTolerance", 0.1); // Max pwl segments to generate diff --git a/test/constraint/arc_line_tangent/normal.png b/test/constraint/arc_line_tangent/normal.png index b885995f86ab05f5afd6d0a1841a6aaa6282d999..ab59db735cdd656b8eff17463b758c7b6c2add85 100644 GIT binary patch literal 5100 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 literal 5101 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
WHDb}CxB1eaL=*BW50y%-v}mXc*fR7rvPWX zuS?zj0$&XPW41KJ{(95Qz-uu;6QrJdqI`Cb$O)U`zig#%$eA!z0K4X~20behGTppS zjsnnAzfX^GtNf``UTWVS_*gstY6bvuKL5J_-6>NUwN(blq$_3mscix1-mXHD4F&Kn z_!%zsJHX&OeGFsC}AFZZ9!YhgwiV_F2!c`srezooItTq3b(7?WzASuZxS43(1pS!+9NrNrAmy zeZnXF#;}}2@8VnzNme!A6uX*Lb?5Xv?btf_g5Mq1-E*t8F;CD@B+>3@kn}vw6)pu! z%x1pfXX}iKL&xHo7JV^Zy<+j!!AnskG4Pb~Tk~LUXiFM%ba+aIKr&_+mHDB;^1GY^ z?k)R`jB;GuA@lG;((2!8uJrb7yWju%X7Lzkx;CHZQ*@!N;pl~`_ig}PHCQ6wE#CI) zwWzHjGq?0*^@;1>Cv=fQ`-Y=RIzneko_@$UC4){qrAqI!dFqhz)@hGSSIQGsA2T~# z=abo3f_wd9OWNM7E{P61yFXO9?&gqZ!gB8-aahS3_-s%qQ?kq?Z@x|Qa^}tUx#F!p zTopD_@j|b-c6HQUQ}9WF*6hObKg4hqxTxWRU6$&{?&+RoxWNtS)EO->cHDu>VC8O^3f0 z=?r|1>@L6G7xl`#d^Qt@vk;s5n3m!+t*)i3FV TiV^%753I3SzbbnLkPV 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 Oz{YiUR@^nLi2nmA5tzpS literal 5049 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 diff --git a/test/constraint/cubic_line_tangent/normal.png b/test/constraint/cubic_line_tangent/normal.png index 66d86a0fcbb53334becfc70aadc87386a3930e0e..394f8ff73f425202b8707b3862be09473e65dcd0 100644 GIT binary patch delta 3579 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 HyyU+FK_n~E delta 3587 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 diff --git a/test/constraint/curve_curve_tangent/arc_arc.png b/test/constraint/curve_curve_tangent/arc_arc.png index c6ceb2abf9a5a3f1c13fb0cdd9dadd22d6e98fba..c83e0a8890f47f4c2cc4ae968c82f58c611fb0bd 100644 GIT binary patch literal 5027 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 OKCphRvwf}|6!AZ4{mI4v diff --git a/test/constraint/diameter/normal.png b/test/constraint/diameter/normal.png index c58025bd0ef2ccf623037dc3c533a104402a0a4e..fc57623150ada2185bfde3200d1b167c1f5b36be 100644 GIT binary patch literal 5024 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 literal 5023 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 literal 5100 zcmeI0dpOkj9>>2kjC¹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 literal 4554 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 delta 949 zcmdn3azJH*3M2bQ)s4*cs*4!}3n7!z88&Je>E0YC3zf>!~Ksdwmq$XDDVo!kwHOsEelFwkPw-y8nJ`qxU z;}XL-XZnFA*$(Z7V&Mn@wRH>v5dtdf7&3el9D8;!J?K8r#8CKE@pH^xriM@!v6c>P zhJ745KbE~-zJ=K#dun6qmGcZSQY;VTgmo$=1Jw&QvNH6ne$h4aK$H25IK~e>K)O?# zK~6AY!^HPMb)t=|`38IInI1?svPuILYydj7*JnLLg=@k=uVvv3Yg9KRFkjYYxF!&> zq3PvSM;-64Tn+a`=9;sJF*wXP&@?qhjwM02kyU?(4ab47;Ow*a7O_1K*uFE*eEv$5VU5z{DNF+OzXJC%Sgd*{fAPcf z$^C!-Z470YGs(M!;lPfrbu&117#a*fnxDz(_`UpeyX*Jre>)!*M`vH&-#vf&*X@Qs zivE9|wsY(L+E>lzSs&;!bq7ZYJI9;vEdRXV;%$$rlG_LO>^Lc#kgg}l#LzM`;UM#6 zldpeQumx*17^y`tFeEZ@doU>YBryK{aJTP3nCo+1sIyzw<(IH8XgR>dz%e^2`(GuW ze~jMrIyp101Bx>e7#UhPbs`SdMlj?kZh(5~pY~*BwxIgO>oupHfCN9t_q@v@7;Ka` zJn+q{U_-s%(qr%P5$Z9PR$?#llLxQ>z_k%rmnpv%P^XYs~Wt>yr%qjNf zjnyij%@2O)?f+SP>N}^-kA}=yF-AT!AVI$2LGwCg?+nHs?}UTxcl|cEh#jbS#dLbb z{K>`nVh48kY*;WMQ|!PD7BQIvdoKt@GcdY_pQ)Q7Bf8`DH*4PgUyFJF*L>P|fBXBs z{7+vWT>djpTNRW?-k;w!H?1;3)AqndP92LK)#it}^%|0eBQ8w5J)ue@X6;t9zu5;~ z{JOuiinVb1|D8V?Q{6wGH{7?m{6w*X`<*9zvcGp({=2t%6MHF_NJgFR`=(k4O9mkD MboFyt=akR{0J0#NrT_o{ diff --git a/test/constraint/equal_line_arc_len/tau.png b/test/constraint/equal_line_arc_len/tau.png index 5336ac9645ebbe9e39f8320a0a68708fc034e1e8..1abd363cd474e157522b2b20b5ebef35ccdd5194 100644 GIT binary patch literal 4963 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 diff --git a/test/constraint/equal_radius/normal.png b/test/constraint/equal_radius/normal.png index c7f8e797d10020ffc2aa995e8f5cb7a59ef78cd5..2d338c93b3735bfe553753f3e99aede6f0578167 100644 GIT binary patch delta 3465 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 diff --git a/test/constraint/pt_face_distance/normal.png b/test/constraint/pt_face_distance/normal.png index c92fc4f3e767cee126cb99e4de0e0fa6f96b75b0..5fe42722bbb52363aa3c4bcff7a982c1ca233260 100644 GIT binary patch literal 4314 zcmeI0dr(t%7RP^yNexDnH)s*CBNQY+6d$;Vs61TCLn{hdfpAfg-H8DN5rF~;Dhz@$ z-BpN{V#Nmvgv3X9L?S^{tOgO0%OeobEXL)jrUW%4>;<;zTurSz)1CdNGsz@#^GohI z=lA`6&*vn2OTZ@GISc0i0Cau+?70;HEM@9R_zbyna}TQ<0KKz5o*T9uEFA9H5NGbS zF!QNMCp<&<_?lTau@5>$i!Od+UF>qp^I*f@?K`5ZM48SE=66Syct67^b_zZ!zRi>^A(b{=~ocs)vjAbz|4e1 z34^|mYc>MVdK+zV}a(DfuG#JDhd{BYs+pi}Eq6!pb zN-2t(1^n*gwA7BVubehEhtXp6eh^4j+nulgve6p3rtIY7k(a3$p$|F(WS3aMEfRlJ zbVxChigW?l&QROd-Mv!LW)Hjr_xI?bN;L*|1qld%af*dX>iu08y5wI-#)B_E5D7%} zN?DCZ)iQzEpR@`H&--apj#(o=hy%?0TM|4_H-tlIA!AMbExwUAt!DG!RIGom7pt`7*)`DZ(x433>B?H88j4GR_i65DrV6 zryKVT2XwruK`6!sLj!{394MM2y!|q*%F1Mc;ob{9##Cn^n$n2 zJonN95PL$Hv0<&T$B&#fvUqTi6>=EqLJ5YX`3vwxPse-HIaI9hYmG;WY!V^cGwV`I zQCFvR+Ia{+_l^Y;&@YP}HbS;_Dn-bc0XRNo0?&CQ>k?zMN6_QK^I@1b^plXaH*U5! zgm$0V$FLq(W)sbrh#8PM#jBra+Tx!1Cgc<0=_+2b4%pP@&t1FQ2(V5}N3ZFjo&TIS z_s$`2roI+$MQ)b)%x6SMKwOg5dUYFzVUM^NtCcVD%zwm>_Nr53iHs!n;G_r9@g9cKYeqVEd7rrz4d^jd_+KH1^oKN3J^l>}o3}UfAu&w(VP{ z3q-!5U!NZdI}D;?b7I3YtG!<2TOGlfka0|&lLyYkC@x3uzhD?SUzv8o6y5I1h~>p8 z#Q-=pX=~|7t6|fA{2RLG&9w7A7X3!eHbI(-f6)3m-1VOvBssxYj@ zSxnAVE9hee)g|Lp0j|SA)BBQXP5%18&XtY4;46Nl|e8FFgLXI*bDa8&jd=Rl~0a`LA!QuV-R>746UI2)0Yu)&da4=;4 zV5?S~2!lF(F~0(bA5qe8f}s{3pFyK@cKm1piU1Kapw0o%R*f;D0AEBygkg`W+aR0A zPSyv&d6_nH`q*4x)`&Qn7P>ntIHTs_?Hz zD?Zm4aacG+ZzCdb8Ei^9nPTT@0$yfR#2_c~<%g3EtDT=;7=%&`Eatf#kdH)(eS?v$ z6#bvI@vL|xtx~Yx7zl4`C2Z~H2S409+-1R@59In3SL^G2m|yhDa~7nk=>}dVAa@fq z{3K$xjsq~u5_T}U*DFN?WKK1rN*#N#ax5VJQr7Bl{@38zO7AP7VZZVHpWCL=U z&zF?Vq66<*nmgDHKP-GD1E3vxEc~unRc#OixG`9o%#RKFh~-n(2_HYT10!VN;CWN8 z9XR+Q3weE$ERUWHt5M$33kGDz=K8Kv4KaDMx}~n`!6Ed}qUplZzO68(WX05{4LNjf z7Hn5O*;V*%A7D5S+j9eW74x%NJlqu>GD&J$%W5XBsD6?ow7NUDykzZuOq%UgzY4%G zT^wv-<|Bt7kBnfchmGKG{GAZSW-zt_DG2dEvDr`xZt zRgLDQHrbs?e7Ht3R0KjIY!lGQ6a(So>3l8kG zWR6jmWZNL)s&u6OPq~~D3)?v$c7yaYco!ncEqg`6423byTPnZ5YAtR%5+P8e9NxaV<=o0<5kN;jnzQW!AhpY3>E$FgG Q{<8o+UICsJ8=;JU17L2V3jhEB literal 4305 zcmeHKX;c$w7X2!OCV(u8BFf^pjM^F{ZVd`?1EevC3nF1Jn^ByOER7~15J)06jELgW z1Bgh*tvM`_fD^(ZP^dF%qkxV^_MixA2w^V+XM7!t5%#S(#sB?1aRKD-s z_wIY|-Xq(5Jk3mIng9UIyuNhb0RWDwdkCMQZ)*2ucK~3S?d85wp zFa!=869Jd>U;3!!s0|XuFF4)2yxE59FOB(CFnyY zm0U=0GQ{ME&g*4;0gy`*o=7@Q7vuq(E%#Y&m>G=04qw9KbrL(YNpH>G|s^w zK+A$$OB?K*iYd<{!_4Qc0GuwH=tRU>B8tbsD?Of@VJb*PDe%Y*fV(%%F`)E|o*o`h zxBxgGeUBB2MO92+476R-sd*6w!25>@Pwb&SmKk&JPd(>^Wm%1=+|L36Br6vTD1FY6 zj_)bR1KmXZ_`uzw7hPMh&_ZBVo*5v0KH-V!;UPr}z$V{=U6z;&QM&CS;{oD5VL9LR z#V3O3O@&Vc!4A&%2%@?W54v63{e$}JR0$l7Br$qjxuhV2b+-z12$KyBDr{X+>$*4t z(+!(f&r)R5Aw~hpXcubCi+rOl)#%s0Z+fZ0_6btT#TU76|J8KHp4d_u?&6ht|9}rT zr&yK|FrC|^YZze_<#5A;wyI2fhsIKkqWg7+|KrtzUCd)kEBDV(y3vM`UK5MSaY~sV zO(5!0YnamtD~wDXnmNwH&$h={NF4m|-Q}I`olNb>pzKzkHc_ilKbnhNF($$bXRS*r zc7VF)sdYWyT7SqbIruYqovNv}XDHY6^ITmN>YVX6iYD1);De4LtHsqb>|w{W+VhR( z)|2E6@kBNcv97(bmM{xu@T2S1xM_<<4%sQQcG@m?@EnhDgds#}_xkTlb4zbA)(a zd2O0z#FPm7L{~Ve*1;zc9Gt|sTCv=z(qK&WkLTJ^1&1@<&#xO%JNY}LRBJUsG`@D^ zTCHqhR<&(Fe<0cHbWwZ#Yd?GpZ~TgQyl;!rhW$XQlt`7bWlNdrQ|Fu9TxVwyptz(c zrqJDb>m{+I{M1~|%P^U5dv!*D_SBMa-Ll9#F;~0UY`?Z4O=PL5P8}21n53RzS&-vqpR_#Tbk9!x5sFIioT*?q-mB4x9IPiy&E z-$y8jqYKW9BwckJX&_CY4s|t_pSIW64!@?UCS)wn@8FiHpt}I8aO56J0J7r7RFO&o zSb+8=p+;RE8I+(Ir7IV*%OZo6gc!8{?Ige72-|4xos~_lxTp>#NdSd6-rao-fu!9VdaxN%R-u0XA z+Tx|c4hr-kX$%yBk5An&!HkV~T4a&K)50i@xaObj(n^dH2S#0PKyUrOE>#qy;Z&Y!TtOKPvmGHOyX>g~K=8gW9{mcvW?lN= zm?(TGVQk!E9ezq2UR#Gtwpk%`h?N=-*WNBWUt#tD`}(%>k5m@U5?zLZ6XSB|CrN ri;q4;bq#Xq-$wX7PX7;$yif}z8~pk9<|rKMX94i?@NvJg5kB-2(vGjN diff --git a/test/constraint/pt_face_distance/reference.png b/test/constraint/pt_face_distance/reference.png index b01d4ea8fe58b5ecfb518ef5f8c5fcfc8b069833..6e392b3c61c4a9e483479e07a2c677ede3fb41ff 100644 GIT binary patch literal 4378 zcmeHLc~FyQ9)9yd1cJz21O=pCWeA5>i6W;0Y9T~W4k6MYC~XngC9psuIl#hd1x682 zL}2ZT2SfrIE=7V!P*6e_2owQBQ4B{o3gHgy7u{h^%`n@Y-Th<7KQi;q_kA<(^Shqk z^W^LyxBV(8Jrn>y<=_EF4*(z^$xm?={N&Ne%UuAd^&WI|I1-aB?8ZjCbT&xp^*+fVIhN2q2cUZ<~(5};l1saYxOG|F?LXf?1@|80B(yb~FN zl)5pB{)S=+*m;Fg@cvP`=F}6na}do}uTLaORq)hz3`ScTT>Z1367sI^KPBW-hrB1d z|M z0})+vWG4Ts{M>wOfrH=m6OAEex;nHWH3^ACWh(w~_w3`{JgPpvfByK(A!k1u(#WrT zVx~Pew#kY7bj{-Uu0U0*v0>Bxn;-DN?y#_A2JM{o%KCOR_v{>^AL6gp1< zQeJaxc00etuDzZl!$Q+juM zXzYv4eg1a_y?YlH=SRKu4L3LtYSOE;_C0IQp2&9bCy!uVr%QsB^Wt63NJ2F63EPgs z^I{=V~`z$l-hD+ChcxV0t{oB#))Uu1P$iZ3m!H|TAGAZ z`?B6%g!BI4N*uJT;KKFr_)|wY*-R8=&({ z?3NaYA}!!{$FC+L%^eU9nW;k`EZvi7dz!T|dPovM8meR|y?YlOp&)rj+x7xp66Jvq zd@^mk`BcMqnjsi6XM(luB@1@<`H90dP~|VqKjL418)WJt#Fs03F==t+rLmZ?S}JvB zqDCkdE{W%-%8Gspvq?;ELx<&=F;6GR1z)yx4JFN&lJu-4r#TBxT;FM&x$a!_pG`{Q zk!*2sR$V%l!D79Bnmdn;8`PWI+?Pu{)-%JwEJktc)|35x{oD*kb6-)Zi`fPXW1@D> z()01r$Hk+)NB*k2MC#KSeo&x-UZ+AooHHUk+K;Od@f)es*!kJ63d2|8n1!_PFifiA z)t=FP?%^@;)}F3coyA{aLv!2a6)tdt+6EW3;uy%!nBl6K*Lb3qu*CMFuXWrK>l;f9 z?I@=hEK96@Ra)~MZOkS(7gs$^P~})T(5K<8b(^eX#MZ@s-j!))re3+}fDs)T=|B*= z=+Keh<3E@G*JTj9+<iaDN@KWNMjTaMh4#lt%)07bYlRz&rY zrfg1)y(>$Z6q+%IZve3B#K+AKYZ}@gO-STp^K31$Kz6y38Tb8ip=ct=ttMfU#48?nnXZoFnnXYh9S%TSEr(*45& z@cy97?xz*3)_Xr9!2T4wPpa0i`Iv%TVuI|clL>@X>V^9y-{9YYvgckY`2ouooZn9n zUTTgHmUt6dj}~mOculUtqUtT~K?r-QJkL$vIine(Q4|aH?`0uD+#SgnS-v~QdfL#3 zVvHT~)3}0~&P6?cz^0Ttb`&+9(VE`4Xyr%Vw zr1gBIY6K)W^Wot9#^9C~v8_%kPZgI1RZn^e8G)z7)_{FwO54ZJv~eO}va3GDW_o9-MxhPzXQO$(mDVD literal 4369 zcmeI0c~nz(7RN7v2#UxmCG^Kq-?*gsSXI$h;H}rx9eFp7xyiqkrU_ocDgoyT5zC zzx(~%7j*!?M{SAz5&%$h+PnL601Q#~QCWmuDLa0>13;t2Y4^@UXOjCnEn-*g(ZAf? zcWG01)xID_u~Lmy>q#>Rnb|TH2K)=vSF5gsMtd=(M&HJF5JRtZazVGV^FFCpM-0Pi1h)L z#tv@-b=4z!)Ffaa=<%}oqLon9O}ajJ$7TxT6V++9qxI>QC=x0^vp% zbn3`uqzM~0*$NPGCt{w|?XZu#MZ=_9y&FVJqq|35B*2O&g9Q^R;@P^n06S_k}oVO0hS>K$e#qiyH&ZOr>`0Gv{OLV&Cx+j zo~X@PF2BUXE=_NRGvq_cT@N%uP=|)xZD$sTLsJ39)s}|~X^s(A9XPB6 zNprMnUXV$#!pf=Oba-#rRzT8U%BAV8xa*k5a#BI$TpzGY?)FwxZhapE{N=BI2;}FJ z|A#<+8-cW3=~EyFiQOnkVJU`^VP$6MRHM7lEAUwf^T9~nYwPUPkg*OHMImM{`Jq}$ zbWEj)w!w8%=rc>Pq0RCLUU`|(w^cd^{8BwU;!e;#!m+$C+7CX3MP`9cUCC{|6W{Ya z?+*B6d1tq{!zf}&q^@l!Y{=?NH?6wRUh(4jo|j5So7N%)i%q&V$9G)IsEAZwle-7DJ+&kvq;pqH z7!U47V0nJ$^nl>Q=+p#%YMFA@Mg4rEMb+{F2^l6eE z1|cof(~9dqt^0@l^wALHp!AbYbHoo@h#!v2N-MM`jGUE13xYsLeMAqBntZ$bA2$X z3=7kzyvJJZqbyOaH(9~F;Mh3*L*wPsQ-U<#U~7UPeoqkm^3w*b4v_Nyd6RB`g3Pr+F%xKDK0_w&FTwgKyfAEGEO~U z7hV%Xr5gsbck5dH8SReOLZ-hjZxr4ODI`g+nfl0#x`-q_(|`6$-|f<{!mz2=ZxV3h ze zwx#OX#{}hcfjh-F(Ru>!Q0i*CHXMtzymUW^`0B%ocy8w2&JazECt_R?`r-$j48jE+ zE#eM6rRK6AP2z#avpDe~+!G`279PZHo~^CSO;N{No}!HfuI0Rz2Qd`VzUQv<*-Qi^$Y0xiY_44+dpd~;iFJwe>{!TV_{l)@4bI|Xb-u+G2rN8QxHWWZ5E{@sLPf~_|fs;yO3^XmaEMD zCR^*M^<<1;e*fSr42)D7SHun*MuBPJwACdvZ=~7sUf62razL-L;(A}3(_ZrN zcB9?nj`m7g+zV3gaQx6pqRZKrFhxAtT8sg|n*zi-Hp{g1An#yr-VxCivlzzywl6tP)hFG{?|9DpI=GI@pQw&%PJg3eCU&?b&$SG;uUdvwYN*>0UhXCIlPLP{j~|C z6Vt*^_cdlTL;;eKx%GM*Z_?7%p6{j*f2sql>xDA8#x@O*QwEK^bKKE^x@cy$*2_^v n$!6zv*&zHOruX|Uk}5tqQeEuq+NglO>HsH4{O$q=@`e8Zx18eF diff --git a/test/constraint/pt_on_circle/normal.png b/test/constraint/pt_on_circle/normal.png index fe0734c2bbfb8bb60b5797d4541fc21092dcaef4..406aa817df87ee2ad6e5484d4c88285172613ae2 100644 GIT binary patch delta 2880 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 C;5J(T diff --git a/test/constraint/pt_on_face/normal.png b/test/constraint/pt_on_face/normal.png index 1f7a7e895a9b2d4c3d5a34466ee6b6fcb7877ad8..0d6ef8215d12540e19517c40006ac4f53ed8239f 100644 GIT binary patch literal 4662 zcmeHLdpMM78-M0CqhTnA9KLEPV%top&9V$85!Pv2Vw^`}TeK6tXh!i;tx#-bQ9?)O zVQP0A7ca^r6^db1%&xC>n1pqhgz>%7woT1;eb-*s_kI8DT<=`(T=Txq^W69Eci;E( zyPt&59j#@hS4jf^WNmFMzW@NDEPnBl=s&fA8IJ&vpSQK#=5p}-$m4Bc4{gqU^Rs2V zUi<1Hh462rO9x~W2X!3$pSAH5jko(+^xWBOl(ed9ug4|wkY@Dy-{=~uJIey}t`Mu-CROZ= z^OUqfFTcn_3pU$f;^uwfQ~QLc$)B)Nw5tppnTEnA!Z8blx6lU*kW(2VUcF5_+5Fc^1`ZU7dVvDF-^(h>5GMlWf!HU} zp8#arS#dMAr34iCVA?V-O?)E)Zb%R_t55|4_OBPqUMxoH8n^ad z2a$-ScvCBLWWoN=#m+eC?_THzCUXaWTqgo9)yoz5d|Mk^K zJ=EP$N1N-32`Q7NYQ7HLVqI2ZNdhz*X`Iy?JvWg<6OxeL?jyKV+neoCoU_`7d~6V& zNOc~)*)}mT5nm^mD({+}NT7Zn3M1y3Xmt30OP z(UcOfY49b6_w@k&r!B?YN4e{sklMH0 zh0GeuZ)2W?(FK#ed9LN>%?%@ymYHp*Vv0T(I?Y?v+S+PWdNcj+boa^>*+@mpL7%Cb(x8cN{ z$-?9=wI;Owk5O|e`f9PbBjY#Kc;l!Q4O)c^p$v7+Qasg@z0`{P+40x#L|C@c9`BE? z4tzT>Wm-!Ki0pXU7#E5ssvgyQmLhn_51vwhv*ajXT@1;T-RI+bO!;XuDV@YbApDE| zp&{$NHJr@lyyuHym=RdtUAs#U94zk5(<)u4!ly0>XE;s^GcK%4Q@Wb`l)S^GO1BC# zsY>38IOFMZ;l0)A=`s%AQ`ew-a0r4WG<^}3Fs9>N9MG&jd)eQ(wm(bNv{*b|?pMP?A4<(;HuSU}!YjCugTEWq zzK)6?s;1FGmI)qVWdF%;gHdPss* zz%ZY4M^sUkZfI?U_bqaA+*36PiQ87O703D@7RQo5Md(Kxy~=2~gFwVtt^WJw%Z7KYiV_^wSf0ONkz{#hp$n-F%`2OOV`i z2^yoIZv-~{W;D>{dZ!@+UH-O;kTbEWu>$>hZ>3Iaur#_*H@)G$og8Ui7&WEf`f*KM z)~jeVTK8?IT``oR#e%u#^lezzJ}^S-b!57y!*%3~j;{~UTnb}ZMG+)zG@1BWwn3$h&Z z)cx-B1Gf9&)-Tqid)w~&@0HTw$q(zwE2AN+Ht^#5&)ldVp84e{joD~Z$d8^_7O~4R z3%CcKCT!>&#ZSm~i^cSV$6&5geyo3|ph_YM1yIv3>gois}#W!>;5*W$Rh+-5MoN zW&lmFHXr^BB5XLIb5ysV-`huM^9bJO{#iEn_dUtMXoRBM-5bDu!sa@5CIMii zAb!Z7cY1L2o$x7XxOe3nebs6`mLsZmKyryLYop+c<3zxVZOTL!B)!`;iUXu)Z~0?V zOqui0MgU8E{Qr*7Oyj>|ib;6T<;NcCAlaHalG+w$_ynsSLcTPxCeG76Nyq%C#i+r_&B zb>zh2ofgzPQl~RuE)$9a^I_`6S(U2^6#{ORGcKYQ$yQ2V@?0QvvIt6OQEj2FFyD-4yS_;C@J8h{5+Ac;5 zsNS3|=ITTUgyi=jjFejtNSyiyWz^gFpP$Nu3YQK^=h=y9*@xfPNmry#NTMcxi1yMZ zt|s*_Zn+7s4nIeQ$*arviY}VH%WrF0{7+9r{^S5=)?B@N$U}>`We0j51Z=GwElVt@ GasLL6s(|+Z literal 4661 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 diff --git a/test/request/arc_of_circle/normal.png b/test/request/arc_of_circle/normal.png index e006a1d84bd0ad4492fea73f2396098fddcd796d..2839007cc95fc697f1a43d21aae85094b3dc6524 100644 GIT binary patch literal 4560 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 U!C812`=tiBIC<>gY=`6i1zXKwMF0Q* literal 4569 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 KFXu)_X3ifNt2a~t delta 2596 zcmeH{eLT~98^^!<*)Tsu%kq$^k#tB>N~w%Il%yogL;N~A#0b?KrP+p)Je0JKqmD*; zLQZyp+*cz)=`_Qz)}d;KbGmZy-NgRQi67Mg^O)jsauy7m0H zY2C=hPmC#R<1(@23I^znm}K9vtW9eX9Ino$(r z9359<3LMJBq%B7<$9)i&Wn7&94<~Q5+;z^AL7hH`kj*%J?+Ejir*P>lAl9cQP&^CC zJzT$7OsqLyw)nK3f9uSG5YOOcsIR7tBa3Uf<>dr^1*=~bM?cfxz3H5vb4A9dOaI^> zi_GW;XCl*ZIFIbJ-B|_EL^Qtlk!d4yXsxS$OeYZ1fh+KJ26k2ircH^-Z_L@cV|Y-mX#&dp2uj5T)UtpyyhuSF?wZZBav03X=8YwVX-M?Z-0HV4iOc_ z>O&v{Kle{a#z^y;9gMsF>2Va6y(JZ(x3iV=^HAu{D#a6xcsn(Q-nUnP#i}~g-&}HW zVCt6-;GCTh(%tzNqdi39=G2j+~N?F)!%gNJ7VGc~ChwmTu48=4MsOY|v0muRf z?nSZ%X6@DpR<*RiRyF@%H=m6&o3CCxb}tE8_hk2>VAYoI|9O2PE_W*;%yc7yNi1>K zgK;gxju*jWEeAFA;O=^QgEEGvh$@}{7UvO{le~Kq%~o@)xRB)ziMS#*nr4?j!7REB ziCk5*xrvLL4d!S|B3CJQhGL@3`G{vtK3&{4KM*y-+jMrtQHz#W9lX5zt4#)%MQ`XR zcpXR0vX)1Grk=Q3ACtn{L zpD?{ozd%<=(b`UOhFY!kN2kZMKX1sby0m6KK70Gz*{pMT4eYp(VB=U4m_Kpq_R$4N z?+E40r#!)xBps6;PgR!|rQ?Z?CbWx ziIppr3#LV*;im1Qrn5+kG-5izf9vp3#)rI3D|svAqRE#9A6;(FR@9#O7*;JAXJBxP&8ABXf4?;7F{*726+0G`wL>oeNU;}wy+(2NZe;VaKbUZCLS#;xnmWnwrAhz; z=0f<|408>%Rv@`{!QNctouf!-{Z>M+BBtfXUih=iTqsK*ah0q-W7Oe^aH?Duv)NHC`>h~x=>wzq3C1u%^c17{VI~eC|8$#Yj=NV8U5FbW*Jliis zzhLaaLjyU^h8V99gPwJ#NB6Z(UK$^G$-UnuiEHd$Jl!XjIr&Z=U{szyJpC$+@vJ;N zq)wDFDNnui)3hj2x=AFFe;Vw3vxs%dHuLDyvDVp{A!&7&o(N;$9Ier(Tg^*y1FEsj L-N)^QE0Xq4woPZN diff --git a/test/request/circle/free_in_3d_dof.png b/test/request/circle/free_in_3d_dof.png index 0a4422b0e2ad5020f922bc3613a65f385db408f2..2b5dff0e5ea948effb9fce02f99a9f59e235c707 100644 GIT binary patch literal 7195 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 LW`_Ct* literal 7197 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 diff --git a/test/request/circle/normal.png b/test/request/circle/normal.png index 86257e073098c089a4b0acaeff1e7d2d6d60a86e..31e2499f9dd2402663bfd7a77611b323bf906d42 100644 GIT binary patch delta 2407 zcmd^A`#+TV9{_YMa@kt=80dX_qO^4ZMG=S_<4K zz8vf)^CcjoOjFH*JzOISdds84TMHU2+@IFIGR;uuM!TkKffy>ohk4Dkt^DZauQ7{n z%U{B;dJ`y-*9dJayV|+mAn8RU$8vXX-o&7@h9vG?XfDp=pFfpKNYScp?EP5MEbq$RYU5R6AQGrbQ(Ygx zW9bCW=!fDFJ1i;h4ELi)6MImNrb-BaU!0{eBU7@YgaUHc(1J6`%8W>>{N4)Zx`i)M zstMR#!$7tcq&~xv?jJnzMr?+4rSREKggWE^O6gD>qoaJ)HRcG)+{9;6=!=+i7iNc^ z2X8i_09S;Dr<^5K;^!kd=TK5~0ZxHp>y{-pLYfZqU?BAzWI3TSH34IOk`bAMvlRckZXy#XT$vbdKSqsny=DA_Fzc^7rt!_#UN&ohRt4HCzL_qOK|j;7;)WJe$i(P8+N$N#EiBs z&b1G@1BMG~?zP$TZ3})U{H6ADiG$PaMp^Q)uwWeW4^(c|6<}Kh=UEldL!mR-)@v6%MO{L%7miJFgK(Vd^Fj7M+9BzuJRC;|1Ummb8cjTkD^m!f`IB zWWqh#%S&xf?59xNpX!(ktZ^vr68x}QA-QM!1IQJvLr+Jtdp$&1$C%y}KE2yAP9?RO zW_)7`26r44e(9n9ck6b!<1QWfP&otRAOB`3X(aXl|xqGg@ zIlr_O>Oa8j=uhYz_b5rxyST;+v-148_Ks#^MK#L4xt0I6ZBpnHrLgE+sJ)0%{)5$c z7$=M=tsR=$Ri<*(lj(5Tw+;$?qK;PSY8V5q+%4PQK-$s&bVJ&Y(31K^vM33Lr$Rn;y$ef@jjs*qbe$`SD#J}Mb8sqY<)nQDjlw+Ha{Am0b~OBZ zMotXrN-r!7;*P-c3csb^Li*!}$%_Hq-<<5G5Bxs&-1f+ZuQEd`79s@hvAuU^mZE#- zD#c;3jj!$v$60izEjH`7OMdauV;GETR+;d|x!f3`Jhq|qQ(98U(t?cp=}f$%sgF<( z?R%wnW|dx#UhG8LRB4q)$?&1XL*}Obw}a85p+(#qRi2!@j;rxc3WYSt&xGpJJMq9_ zT>WUnhs1S|=95x#lJRQY#I1u$iVbyBvaJPCHxqecSuKOoTO@DKPnzi-9}9ACU% zNu{PT(pq}`*V~*?Xj@6KhOYk?jF}^;#{hfZUqxSOL>)u?UFPtdY$ctN0UhO{*g!Wg zb51|TiZh1S{Qq+R|8I!aIvWMQ{|m;Y)xA@_Cyd!bZ366&^6h9+Qn##i^q+|Usze4@ z10T}(YhJ9*7=CTJJbo8XkZKl!16EeV)v@!pVJr!7ir4Gt4&g+5FO};8rZ<%VKscl! zJ^geS-wz$9=%Uke;^JxW8(px`C!T3h*aLz5L+vi6Xc!M@?oVT6O5Bzv6K%jh9f6ud z?9rdSSQvEgu;nZ$wG=BmJ<^YI zwPbcTGfrxOB;{OXQF_8_HwFf|rBpbXXBeqtD%z>1H*pgSz9}(M)tLK<- zF@D9VEo*z%2B47LpUO=cNc*mRC0$?g!~q_IUhYX`;^#4g0NHkB7e9y?2oQK{zX7A+ zEDeyo*3xL2onnl_NXSm%O63X+`-(${AT9uhXLJftOVY}w?n*! zkckHiDfAajtclhs!)SR*W=h;~EyVRw=iaxUCSZ7WrCCDg$81>1NPDeA<^FIQpx;3k KFXu)_X3ifNt2a~t delta 2596 zcmeH{eLT~98^^!<*)Tsu%kq$^k#tB>N~w%Il%yogL;N~A#0b?KrP+p)Je0JKqmD*; zLQZyp+*cz)=`_Qz)}d;KbGmZy-NgRQi67Mg^O)jsauy7m0H zY2C=hPmC#R<1(@23I^znm}K9vtW9eX9Ino$(r z9359<3LMJBq%B7<$9)i&Wn7&94<~Q5+;z^AL7hH`kj*%J?+Ejir*P>lAl9cQP&^CC zJzT$7OsqLyw)nK3f9uSG5YOOcsIR7tBa3Uf<>dr^1*=~bM?cfxz3H5vb4A9dOaI^> zi_GW;XCl*ZIFIbJ-B|_EL^Qtlk!d4yXsxS$OeYZ1fh+KJ26k2ircH^-Z_L@cV|Y-mX#&dp2uj5T)UtpyyhuSF?wZZBav03X=8YwVX-M?Z-0HV4iOc_ z>O&v{Kle{a#z^y;9gMsF>2Va6y(JZ(x3iV=^HAu{D#a6xcsn(Q-nUnP#i}~g-&}HW zVCt6-;GCTh(%tzNqdi39=G2j+~N?F)!%gNJ7VGc~ChwmTu48=4MsOY|v0muRf z?nSZ%X6@DpR<*RiRyF@%H=m6&o3CCxb}tE8_hk2>VAYoI|9O2PE_W*;%yc7yNi1>K zgK;gxju*jWEeAFA;O=^QgEEGvh$@}{7UvO{le~Kq%~o@)xRB)ziMS#*nr4?j!7REB ziCk5*xrvLL4d!S|B3CJQhGL@3`G{vtK3&{4KM*y-+jMrtQHz#W9lX5zt4#)%MQ`XR zcpXR0vX)1Grk=Q3ACtn{L zpD?{ozd%<=(b`UOhFY!kN2kZMKX1sby0m6KK70Gz*{pMT4eYp(VB=U4m_Kpq_R$4N z?+E40r#!)xBps6;PgR!|rQ?Z?CbWx ziIppr3#LV*;im1Qrn5+kG-5izf9vp3#)rI3D|svAqRE#9A6;(FR@9#O7*;JAXJBxP&8ABXf4?;7F{*726+0G`wL>oeNU;}wy+(2NZe;VaKbUZCLS#;xnmWnwrAhz; z=0f<|408>%Rv@`{!QNctouf!-{Z>M+BBtfXUih=iTqsK*ah0q-W7Oe^aH?Duv)NHC`>h~x=>wzq3C1u%^c17{VI~eC|8$#Yj=NV8U5FbW*Jliis zzhLaaLjyU^h8V99gPwJ#NB6Z(UK$^G$-UnuiEHd$Jl!XjIr&Z=U{szyJpC$+@vJ;N zq)wDFDNnui)3hj2x=AFFe;Vw3vxs%dHuLDyvDVp{A!&7&o(N;$9Ier(Tg^*y1FEsj L-N)^QE0Xq4woPZN diff --git a/test/request/circle/normal_dof.png b/test/request/circle/normal_dof.png index a032f1aa3105641d6c7ac4b6dde80b94461c1a01..0e62eba3dbcd8923d76338faf33196ccbd7ecc55 100644 GIT binary patch literal 4830 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 literal 4836 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 x#go1*;D8Pd%c#{2KrO diff --git a/test/request/cubic/normal.png b/test/request/cubic/normal.png index c4fc05047440a458dcb706f9e18230ab8ea34eb8..e7eb94d81a78bb0ccc1e5238b2b7fe99fb678396 100644 GIT binary patch delta 3065 zcmai$c~}$I8pcnC1VX}&1dv6==6L_nHmC4xO6s@Zscn{R`9H6} za4=`rGvS@QT>*iGnX3WVB);bZ04D%RQ&dM#oLXA8BjST6Snyoi!NI}B14&tyLCO%4CZ&m7gkmU@r%o!)a_oM3L|{QRtU-e?LHz zkSv^*+CFvqK(IWJ`!}8p^qesH(1xB(X}=ok+tJeRL=)^nu(Egxu)D^A08y0=fUhfK z+^vQPSZSp`I5$XZ=5{m=C@xmb&A$KG&5VsS0Y)$KHpZlrjJx`+&WHtBrqeF^F8RA|FH(J7~F(F zXJhX*L!#~kGVhX!eNNv-grHj$XjSN=uz(Cg^>!HdBlS#Y*=YO6#U+rv4rQH9tN+*&)!S}PrniKltPrg& zMQud~h>BBZ*IbdR9w+*SCGVn4rN~mI(p#FXJOaE9(8&A@4&?K;?7O;i#(ZTqp&4$1ICr``vYNHI_z4uOLN1=pFy^;j z>0_G($wIN&*x=%)owL_}#uZ|nLcG1KLb3lGO=^bl6#mRUEhYD3K@eHN#p`I3AE{}t zIz2N*UL?qpLdIA?6kU zo|~UQUxf}Bm_JJ>Suy^e*5rO)TZjxB2C3FttyJORdJ{KN*aUQ4xva083Vv7m>iE3J{X z_?;y0Ox~8O0j#B0gf82w7(n6OSYm0he$t`#FmCK}a*Dm(3(LdM3av1>v2>;t>;=fm z+S->ILU!9lbw{9>`(ND*MHGVxowJmcr^A3 z#QYqi)aaK$5c=^$TAhkvV~Ct{aYQYsK%ljGMW6IqH}Mk@vw69Uuh;VHlo7`nNP~6$ zkLalq+SYPXTT!iU9y5Dsb})_#TOmm#18a=JlK6CHRxD+^~+^NWhPdxoZDQmIAq+=Nf+K!BoG??d%S+-`!Wjq)Mq*|W7UvMgx z7-{O%#<{JjYvE+2x%%`svuBNREZBrTy$1v9iddypoQ&ZIu2Nj@o$2jRQ>Oq7h7n$h^$5 zN$YAgM@D?{U8vjuWtmpT4oxI?s?%4caKVOB1Q5A zU8m0%bR|;y%mvvI@OJDc#9J5?vc3SogZQqt>mE3c_K0ryyBZ13(TeR1MREm>!BpH}lCf&4Epr}c$0!`; zR9(om=(sz2R|Vg$KB&RO6>o?h;58}6)GFNZT=Q6cJELOW^yC=gd2(_`f8h+(rtN)P z%$F_Pt>xjF-9_DTAuV4rhiYSPmZkQV`X!$LKA}C&k7lhAiv}j$r=yCsPuyRa9y_7i zf7K#;RuEepKbF~a1M_XGyW=za%4?$f`uqBPYOr%Ea!c6;7l8~YZ^f-g zbX3+c)!&pJt$8|wv^CAQl@xWq>@^>M9alFKRykW)v*FX6)SlZ@k3@UA?;K-VS4Rc) zw^@qKDjz)xJFXRyjDG)2Cx9dFpBJ^0CSYy8_NzjsYd zk^}XiO)&3OeCh+ZZs#K}8E|H;#NpM_WPsGEuvWdQA~_vqJvsrf&n^d-9YywV!hZm+ C#abc& delta 3044 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 A2mk;8 diff --git a/test/request/ttf_text/normal.png b/test/request/ttf_text/normal.png index ccb581f00aeae407da622342f3f8f36250276b27..b023b8388bcb35bb4aed0b2fe7f0e9f88dc24cc0 100644 GIT binary patch delta 1694 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 C$5JH#