From 6afcd821182137e8c3f128f9600e97cff79978b8 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 15 Oct 2008 22:41:26 +0100 Subject: [PATCH] [test] Add a spline test. Test the decomposition of 5 different types of spline curve. Useful test for future experiments in improving the decomposition algorithm. Note: the vector targets all need separate reference images due to their lack of support for cairo_set_tolerance(). Also GS strokes the Bezier curve differently using offset curves and opposed to transcribing the outline of a pen. --- test/.gitignore | 1 + test/Makefile.am | 7 + test/spline-decomposition-pdf-ref.png | Bin 0 -> 20404 bytes test/spline-decomposition-ps2-ref.png | Bin 0 -> 8957 bytes test/spline-decomposition-ps3-ref.png | Bin 0 -> 8957 bytes test/spline-decomposition-ref.png | Bin 0 -> 20402 bytes test/spline-decomposition-svg11-ref.png | Bin 0 -> 20404 bytes test/spline-decomposition-svg12-ref.png | Bin 0 -> 20404 bytes test/spline-decomposition.c | 416 ++++++++++++++++++++++++ 9 files changed, 424 insertions(+) create mode 100644 test/spline-decomposition-pdf-ref.png create mode 100644 test/spline-decomposition-ps2-ref.png create mode 100644 test/spline-decomposition-ps3-ref.png create mode 100644 test/spline-decomposition-ref.png create mode 100644 test/spline-decomposition-svg11-ref.png create mode 100644 test/spline-decomposition-svg12-ref.png create mode 100644 test/spline-decomposition.c diff --git a/test/.gitignore b/test/.gitignore index e7ec82b2f..02f5647fc 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -204,6 +204,7 @@ solid-pattern-cache-stress source-clip source-clip-scale source-surface-scale-paint +spline-decomposition stroke-image stroke-ctm-caps surface-finish-twice diff --git a/test/Makefile.am b/test/Makefile.am index 2a88d53e3..712a01067 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -159,6 +159,7 @@ solid-pattern-cache-stress$(EXEEXT) \ source-clip$(EXEEXT) \ source-clip-scale$(EXEEXT) \ source-surface-scale-paint$(EXEEXT) \ +spline-decomposition$(EXEEXT) \ surface-finish-twice$(EXEEXT) \ surface-pattern$(EXEEXT) \ surface-pattern-big-scale-down$(EXEEXT) \ @@ -851,6 +852,12 @@ REFERENCE_IMAGES = \ source-clip-scale-pdf-ref.png \ source-surface-scale-paint-ref.png \ source-surface-scale-paint-rgb24-ref.png \ + spline-decomposition-ref.png \ + spline-decomposition-ps2-ref.png \ + spline-decomposition-ps3-ref.png \ + spline-decomposition-pdf-ref.png \ + spline-decomposition-svg11-ref.png \ + spline-decomposition-svg12-ref.png \ stroke-ctm-caps-ps2-ref.png \ stroke-ctm-caps-ps3-ref.png \ surface-pattern-big-scale-down-ref.png \ diff --git a/test/spline-decomposition-pdf-ref.png b/test/spline-decomposition-pdf-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd25a62b9e9427b383d8bd007d07d5a69ac6b6e GIT binary patch literal 20404 zcmdUXWmFYy^zR@ch|)+%3rLBCf*>KGQX(ZG-AGADhbSN+AdNJLgwhRCf`T+6(%sTX zw|9^4U3cAeKmNbn^}a}*!mS-keI~%#?L#i zqSI8cu!xJN^uyn$J(swvMkFEe;Z4NE2deNe8KUqBNy3+E0#5u5i_K#E3*E_Bk*n(_ zf{Vw8t8eODoEOLL)Hp7rcm!i0loCW(5+~x^?)Z1%i@EDEyzq&L<^v_}D+XKwm5cBV z)_Hau_~w-_876$wC=vV;zL{cZMxS68ZUo;j-2T6wRwP{GvN53T=NWKoF^LS*@D>Rv z>2Nrs)X=BLxjUCxCW|clIRs2viDKWq%c*3$pqiy%m@MpMWc)p>Upw0K>rk<=R<>gD zP&B)0-nKsjE~nl4m=G2=_DfzIdU|@D&(CF_MI@!j$8k4)|9(D%7k)E6R_*Bi#;+~v znlEowt=RD@f89L?cl5Ju_q9hUNh=%7&3ES#ii&s+j*lJ1yM>*W8H9wip7kch&dr(p z`luR^==kEr3qODVCDy(Qn^7VnqAzXVD8GhK@js7h8;%$A`ph$lfq^kpVWVA8zh6!6 z+h{PQ$Stc9yXLnR&K#8J=-U`>T9eNcuP{{W#*Y{*{mg74+^O52C|x?-=HIB>PvMz_ z1I9+ICu*r!quL6#R)>l)5h6OeFs6IKxFue@{Tj|O*Ti|AO^6t#czJmd)6o%3HCRQG zrfBn$aqGMzWe^Y$=x}aw{?^js;HXz+H_bI_^U_-Q0s+B&BO@kcYIjhdf~+t0y0$f| zl(*^jLRS;!@Je9=0V1QIAZ=$?r29}l>e{3Ge`cD=x2J+4|+XGi!55j8c3P8>XEL?K1D#u;ysQ==fsfe;rT zf0mAc(wK)jRI}P4v&+Q6Sv^k^Bcr#q>tkG8TuJ5gm4WNiDV>yG3v_EroKhCmFT&fK zQGC8OQqDDsH)_AT{Mfb|{adCr<+3s|U+{0#eo4-iiD0U7+h#?kI&L(OdB2-Wj`R>a z-BC5vTkJ|akHD|83`So}`%{F6ha2#_G0Qe>PJhLY=g=s~%Oi2wn7A&&Mj3kl~y!F1aFBE6W%s7FIjKIJQ4-|DDjQICHMCP~yI zHgS7uY6=!i<5FMt^z?LNa-scfi_F7^{>-w!$Er*1_2{c)b;t0IVv0yxmzyunr4s8(a{S9& zMBah3Euol*^!@wqP1+)L^bHIc)+FYAVB@B#eN-9KiRE~FL0MTD@qvTJ8#HWuh3y>G zV=XXSKBz}(f_vdYQ^te02-0x6mzaeoUGauAetR+Xg=NB=fb|f9xbFOpAd!mxvpZr{ zI6vffJQgfrGb-}@w-UO5Za@D`Bna0)u%~2PT_)0ReZ0nT@wvTy<3ybYhK2b2-csN9 zEIy&DUPn7^&v(n=d>dXZdGMCb+2x90V%P8Sno2vzPpa7jMn*;mvNDiQ>P_g6Pr=G5 zbs5gO`sOAdETc+WT7*GZn7Z6*@bW?(T+Ql{K@Z#JAN5`y>)$-~R@+LFi)f)$>r3QvPveI@^P#^w=S)ZRbM@+yolqw^*1Oq^d6jf zzr*!`{3|LdDh^KTu!QT}cV`s2Zy57gU9L;UmSPX<|%k#ehRBC^YMMvoK~@56Ka5+9eE zbw#Ju+^9d0{9X8@{F9M06W2mI$Ky}9+dIt^`bZI0oPf=U+V2f0`2{iO!Y?&%4ro8K zKX zz7Rw{maDB)u%tFH_PuV22_7<)`r?dOqzRrDl})zRm;I%`gSRyuKyNmzI1~nlXzzFi zmEC;U_Qv`|9jEmCK%SPWY*zL}j>j}y&3*zAs)8}W~#}* zCfu^RZFsc15@!m#^jE>lk^o7wwLNLhqrHr`V&@Es6JyzwU#;ZAb$p!qoF>`N4~tRe zqjV5S@TqS83Dxn9Wsw_Ozk9ECrEw0c)6vrxJ{6!6_pa@Z98LW*``s#GaE{?#eqDTf z4CkoHvjuoPIA3jezuw<_gI3OTz4smUQ}N}aSDd~?L1(J>I!2Ju%4Za{Dz6FY3*IET z5j!y#!!Np%?_gNeWD(GbXqpG5cI~bV-m0@wFVwrl;5h$h++}i!tNQd{y=J4NcBxRW z?nz&we7Ass4P4c+&rWYhKj~CEpjS0RA)aq6X|mqyPKUDxDLwt$U~*1}5|fLz9*fB? zeu>h~j@7rX-f>wcJ3Db$-hv&8kKs$ssV?p5S=+55PXFZWfGQ&u{(kV6FLw(jEp9Hn znQVrZfK^xzKVV@@SN~O-KPwKe`XMvZzNzN(=O$|b^AW|N*JWilyU$jamxIg7$`nR- zXMUth#p6`QE3m5Nsy}o+3JMDwc&JwgpDx>mz$VmCNyzp69&-O`7@g>+(qF^If6q?Y zl+qAEf*Ut((1?4}_*87!?IBg>p@#>5W+i`>LVw-cn0%&MUGlgwlrL}j?L_?JQeX9- zf|_=)-|@{dQNX5sr{x7yc?I7wnwWcUF5}H!*Zo{Za=oyBvdZ2# z+rjvutZeVtbNw<4Vnkl8#$BJ)xFNqS*684O#@pMB^GFu@_xa7cX>1F=hfqbC)=XGn zSC&8R!--^Ogq>7w**|k67tQt(F4W5Pit)hUU=opX%fW)s=x8#i>jU}Pj$UG7V!>;} z5%B^x33h!Qlv7#c$Rd|*UVL?C`>||1cGWQd`Zev~>FiYR87x{p6B%d_yUHFXty%G% zBirYmG}<`q^}r$Evd8Ot?LJOssi0?MWE>kBA0LlN`|_;*@cuhNq1G-cr8|r~W^K3} zvLu~mrDkby{8;xa+0nHDD?loex%Ox|SMu+jjap+3s?tnK#iZMfc%wyzUttfd%myy? zu)y;|0SmQ96$%?A7T2yNKD$0psGqtNx&b?>t-0htu)vm+_npwN;g@=Zi105as=G{rXT3f4*3!PMrU)dNK zkV@O}b7{1>L~vO0XF1mFI7k!sQRo%H66PIhPd=%!kN=D?*X9KX7fR|qT49s07VSNHWIa};tZ8)aGR58e zz1qN$=Tl2dL2oE-oI}idQm&5?CHKldMbY%_#qMPMFEj6R)WZvFw}QJ#M(M7!4n!G=wKcnJc^A9ck9>d!F#-LpHNgD)|4>6@j^C>{r;tm z=I-dp7k_nehpdK6GG|_Xn0LG7xS#+(t~XLzyuY=#cmK%~>J%}r_Io9ttE%QWUp&{2 zdiSn1o>E6gXLGKN^h0(w{>Os(uDsfi&tb*c+1Cnms?Q+@C)+*#*VwePk)rd*`x_J~ zfq)AyB2~|qA`K*$M=J~AN~Csro@6V;pF>;^Hq*m}KUnm>7m#O-yJ9<0%bpj8iHR9= zw;p;W{%j{_G4-(eMMSAUN641vdl)Sya?^I~ofQg-?E;omMX7e!co23@I|01Z`I#xd$iBZy!;a&mQrNjiWjT=d^s(VKKkUbag}us2Z%hWW z@iLeGim~^5Djb?cX_4F~Fa92<+VNi^BplS5StX^T<7N|b+va6rl5F+=mGOWunWg)R zNd;dxe>VXo&)urS1^?4>Sk<@=mneAgY%8PD4_ZBV2YTcqrA6^N)Fa6-bS8D-$3F9#5*;^++f6`UxlN$QabBlmSrMXLrP z9an>MiCXjF&`Iz}rD&-r?SoLVSY}za3mY37Z*y|k5Tol>;^N`~tv!DMcug-U*WU-C zw7I{(cr=$+iuJb5grsEib4|@GNF0cdX-6!cppK}HShgNzhIcri3zE}u5YP%^-QAJorM!6Cbu+D-#Jn45k^ejYXAP&9eKJ=+ zetx7FBw^AGijJRK6g|=Vj0|kSBe@uk;Y`*F_0VmH`F8e9%YH&!9A6Ar50%wA)r{Xk z5gVy|)^o`fRwlyN5KlaOjh`h~@og^T3z#H zpwstum-~gZfCu7(-T*&k#FhkI;G^P^BXGD>T+ZK4D+3rsY{upLg8=(%xclJWYDa3I z_J@n9NSSVl_~9IBVn?*LLnbA7}ZfSQR}A4^Fl~YYe0wnH7uyc0%wqVkeSy{_1JGM$>f|K%!i(UZsf3L zYip}W&T_}|z|Pha*0G%RSCD=D>H`CDlUdH*Li@wRcAf)?ClI&Mm-Pm=sn7*rh!jTR zKq|7BnbbV)gETe3%9?p_;F`|u7{&T9+An-Lff`*o(8}_;1FpBm7$H7zMeTg!GE^Im zmN_MIJFeXORtho-QHlUCBf`6Clny@WrD(HYykrmP8_~3GTduDqBg!He;#AM0{KvyZ zJ@%l1o;!y=ESbewp-jhXzE)MEKu6-`Ic)0!pZ?x1>5+dkpGg^V?CI0uMw43CP04&zo1%BfM;_DAydmZm-t&JV;t&s{e&A(T@rkF&u zCw#QO@vPi&)K`b|HS{vvk;4FbZv?6Rdv>hjG2b53_UKqh=Fy`E@MU#%)VAVB-^L4M zY-z6Iw@D+J@z`TI)pC5keUk=Q3#asgm-~@lq5^9pXBKQ@V418@vO}cqOPO)M8^Yyh zW@h}{@|81iBBP>iS$UX*-0ryq5Rkk!ocfj}7A#UwKN&GhnuE!SDJabSiAUe+aN;1Y zEBTdGLE%=sI<>CKKR&q$xwz{|)TNv9P}+gKB@@Z)T60@9|J<#`o>YpxqB$mMIP$_D z*UoD#zZ4$&F+Q%#-v5!?c79>u^^3o!8iHEMK_Jjvc(hnD*mJnO=pUJuaX++uSLi_~ zb+cD?KtO}rpersg}I z9`l}*eyt~?@0~k#H#e2!UWQ!}RQ%m%?D!8JUy@N*p}3((#-wLjY1<^6^WrM3Te)r? zr<)~j-ry6^izUrE(u#R%ZiXcC8si`xUP`p1^Erbf9Kjeq;a8<6h}6t=Ohecu7AKroJ~rY>Tt7_Wjd=NM_js{b){&ZjObEGvbkv zkxKbbZrP?-0r!9k@F6SfLNTv|goKa-)kArCDJ7*Jj;YyC$}QbK-IsPQN-$EQxb0$Z zuiQy*sjUy2qP70hOAy~!yYGimOGGm3)VV))RT-{zE1h5(#om4PhBu2$Wl+xkw z>wsZqTlC*c9-auS=mldTSf z3-8;nEBS|AyZbGnS0p1vhrK<3NEl+O6kwUlU%vi?S%f9!jtc?8W7bJo(9_Y;!DwlJ zhwtCwjuw9Y8@YSja<-88Ol;qUkWS>?ab96z;d{+rA765)|Ixw2!<#+=vb9)L(J_{$xU@b!oi5^<;~NS^CHf1WHW6@( zZ&9_|-FJ{O!HjveB|n?t&rZ2T%cxX?5y+x;3FoV$+eO+t&I+3a(HpuTIOp2c=WADv zJP+CX@(CJ@_t~Mj;nw_3Dxi(5gBp37ya7G9mY3eYfA43Z=N9ii^9^tMLAArY9Kg5$ z*rSavbSA6^+?h~a%!c*Nh;>Bo&2(py9O$jEvu#-M8~e(wG;Gg+!{bM_eTe^1Ea8iz zweBJZFnvEFiY`Hcby}hd)}%Ad$F-u*Mo?ZTf-TEz$EkfXLo$TFLx~M6zh`$FbhEEr zvLNflY=te~EdW7pF}Du;7VvkHlpk|}>gDWxAoCXUYDWP>x{xI*q}v8cDWJ(NizYFP z{2|td30QYWS8m+Ad9!ch=g58(e>M{-}3AS~t5IHVrI~{;?3-(Te>3 zo<|}e6s4mqL9gz@-A?nzub~t^jG^>&I9}H+K>UW?ep}W$XyRYhHDrPEq`GsQtk7I9ZX^VgVb}H>HJTQlL6LX z8hlJl7r<^CR>m*@7}4Y#ziK;{_3%nTA?T=zl^f=&&EcRRNQ=gCYACWN^wzjMn_hTF zKX&xXHZFvBXMOyNPv${@JKk84p%lkyP9spw)Z_cQWfr|Urs@4ph)psB>(7p?azi3o zX`f^@Lsv(LO2yCP;4p#U19Eqhr9`)Ft$7dK^l{$PPo11YYP?7+*SnOIlriacC(YT} zS^uL-9N)%|eK^)5WwM%=u+E?7Y**10AL#4rV@}VSkij~8m?KWDW*UXzZMm#ym`K_zadcoZJii57D!W(sGO2R9owoA7g_g$M;p)pWc)_UmqLBxytPDW~8}F ztJDnPx_qfTK&2(_&6_tW8d6?_jtf>c6wQd{iFg0KpXhsH+7Lh8iLz4$PijlLt!1pl zX+?cHE7iWAjF^})F9DpqWLC|Vfh6%4dab?`s8-Wg&wczCbRqrUVDh1E#VUK& zl^0E6%yukmZC>Jqs~KXBFXUuxp`O5nA~DJov}whKAcAP#o*X1aP+IY)`nmTq3= z7l7ys4eZq^QtEj+)hboaCG@qzB^65Pk|3*Eyny|@Pmk~@(p9q+<$T(J!{1u-9jEB6%MjA2XQO_!a&5F>+d&*p;utUyh@Y@K@AL4NE}?G{IZJ;8wzyHzK!6wZz*&x zpC_Qf{W61DxL4LeXgd%Vrrz~@cwUn>qiN_x@eRwt#pV9oJEt#xtp{Tijgj>$H-uKOLeaa0aC+GhnEv8H8ZJOOIN(#P)#jo-?3o5SDq(E5GB?@>`zCgPDZ| zFH;QU9KtUpZ!;!N{vOP}9mCqiwZh`ZuTw)^okV@ZuiG@XC z3cN^Vc=+@?=)F-YMI=vdwSZ1@Q8qF>I-2>HW4OG%nRIepIdE7RIl1-{R>A4pIleOU z9M8Z(R3Dk+YM~W=J{1<@>zGWdOO9y}qy(^|z^;_*Nm&lb_kZ;`#mw{ZCpEk`m#>#t zIZH*g`Jr+=l@h<$NAI292Xexbs2$EuZoss;7^{PqFUax%WzE8vjQ@ zYq{64Gx7yYB{m&n^GkLPW?}T=+?ot@qV9gsf3dKz(m)840k~^o^1%S(HYimSGo#q! za6DQQPuGO1s;Ug>n6opPe52li^b7!-o6{X%D;ob=|}^cSsL_J997aPV2!Z_51{q z>g%#3S&GS@s^ceMvw9YD^<$R%O0}q@E+5UleEBjkEUX1~m)|Ax>UC!Yg%G>0l;p{CS*q7Xy8qeO;Z?N-R+fX9G~V4YkA3 zZEBFg{olSN6kK!|*++#ny?cfAN1wutC;R$Hp}-*wSrRuuJbOrg7k8A;unBA3y`A?G zXbu|cfl!;e)dCl_=BSz(w$~~rE#0rWd3YGZ>$X4KhtvWt9$p(?lCF2%!OR;<9s>lj zJa54Cp8?Ob%JmNuortRsKv~#Q)3CzOpM=rgc?}OR0^b*Xyq@QuW^?Zb;6H$IP=uz}#x z?`R>-E#$ax(M7bbwl+K|=_0HiV4}>|uHh4=qH@2sbxp(~8Kyzol@EG9I|^ZO&whD{ z*_MRKVJZt$2}-$J;X!HQZDYM&fA)&TO**Vq13{q zCkjY*QAfQ{zab1xPnz5Ig1VNhtGoMq`05=ztw6t_AnCicfHAPB1n!)zT!=Z$Ef(-Y z-EG>9w%T7GE)D1~onK!s5U~TfTU;`xFg%<{G(b`_0xUqsL3M)HSPW{Ko+)G;-F_H| zCfzjwfmpA-VRLJ!U0kA~y4&wS8!8o?aP_U*YUj*@_bgX4Y;6|Dt!o6A#Ss0V;MOtV z<>loP5KwpHZP7#pp}4}r8@YOQ!nyE9{(Y$DQ#(32J+9{$5lONctBT0it4n}GmRF^N z0L=X`nl|u{TP{#=Ti3NQlyud3>}%TD@w^ENQXYY*N+&p!?ZA+RU{eo+HbiM0a$T?X zUAfI@?7e&Uis7jxKtR}2|7>p?Lti(Ao$E}GY3K!Z;}=lT(rZD_5k3Z&g334q71?#G z>?D@Z@3lZxTjS2K{hc3Q@)aD0{H1|U-jDM%iH%!A8llSPMSfynXUBuUK@-^7*n)!j z8Xz!i!ZWoEzxkCP%*W~9)JWW4A14ii_yrxR0n^Y^Q-AWE^Fsq$W4pUsTPjDtu*-``(!+Z7rJK-ydLOAVk)b^=_~X5?w9B9{hfsK##kRY^OT z5hVPHT|FWip#2R4F3<$CD8A94bypK_WefG9p~l+VfO}*8^Mh<2`0^pVEfvWRWj{W;v=Wpxdj(J0A=>zer`r zr+mHp8N{%L%qny2I`%(O%oY(bEb!_??2~wF=0dOGrpa zV{&O}sqNLPSDKJF(S&2s0+Bc#czFyn>yE*2iK+F@?_Mr$ZpG3D2%=e^og7-XhBG?H zh7<{c?P>z*2uZXrR54(q)W>sCkDf;=h$kuX<`nyDkWABz)p^9_KPeBU6?KnBUlqqWc zN#yZ=n3Vkg`)Q4GA3l8eeO3((vUAHY6czy%t8D(1mI68@eAi^agS))~!YD+U7_MKx z^yS6iH$6z58bZB5e4yXimw=A(IN}Wh4W7zHA!a^464UnRMqriUDJcZVZLg!7uz&m# zDU2^dV|d`|TGg#`hc5e3YRj7&^*KV>AT*+nK^R0uX~B1wi03mUqM~~0Sl!gr^rOU7 zo~MNeE)ens6!+=n<@UBJV5*57l0*Zq$)pH?#k}2Gd^S-l1YrdnL`G4urOJNR;3l>I zmH2>w^MFLo%SJwr72CKv`CC*(#Lw*}btr5i8c?7x5Y+F1Egf?v=5;irRsogBVGD5H z6a-8WpUMgMH>hVyl245r;0rH>d+8FntvaA(%`%G!hdy!l9X6DG9)1{wlRVb&LVrxO?XWL!S<`2!WUYhCDp> z*E9})&%D6=f4tqIR%K_H2l*o*XGrA5b42b>cs$|_nllH5coRB;Ww$c)?qb8QIP*hL zThpQ9C47f>+s~cL3&KK;v&}kGw0)d^ni0=S=%hmne8hg`49(&4vD~`B;J-bc_yEdT zz|fE;5}SArG_G53b0LceuKD|InVnfQE%H#^8~X2M=zW+71czrJG1(_l0Ho7daM*hM za|{Hnc-RPVAfHS(sF9^W<&H4W;HX?wpMtGu(U%pva4FaGa4Q(!6wWgmhZstmzcLEU z#ECBGRIARtJj)0)_$iV4vy<&dpn)qohK-gz^#wC%Sl3xL5+o>0#aP&hNYQE(8Jm*N ziZ+n7aZ~2Nq`Se5azJ8HpH5FtuPL;{;-=Bex1eB`c4+X)OD#LFp-|6!+rk<(F-2VY zY?=oY}w+S*OP%FE01<&KMrhW(p^`Y$k$v;Bs@_FjN2$a*AiV|}2^ z>umUYmiSTY10+X-wXHy>)`RFy*DPRwAi(y^A|#{s^X=q~xz{oduY)jvpa#cH>mjA> zDzND}xZk_?K|IMY^?zqt**s5o2ZiP3iF#g>`CdXd2mp>-SDo<5IsEj!5AO*%w?(pS z?(C3-ajJa4Ma$YOoAp<4X>JOJ!66rc@-bfp#=2#~JIFkMa{W%kv~aT2{4K*GL_!b* zwfhJ4YF+K$DX=E9umIFImOQ7C=*A@^d~mom@BarJfmtZus$tsop4FQsU6j6{@R}R7ca&N72S?RCOcX%S zTrjR#F-RGb=1=jM9A$WiA^;y)B!o~JyKZ+0lK1_DN=rmZ$wo7~wiY_+ef)4ySwuWN zJw0KG19CMnWtU}TWhwbg0vD1@Zt@D91K>!~LUj2u=sb|D9b88P6D6e5dcI`7$smk> z@xj2n`OFVMsOrfddNI!&lMS_vI|?ZxLXWP^fPe}%pkBS#+?O>oq;E0YZGF zAlr>U5T^o(R9kfcIu&Oz4J_jtGeu@VU|jn3I+GG}uYkkg8Alc_f>2St2h{-e&dr1H zB>l*I!%(5Ebik+A;@i$rU(Dl1=w>(fuL0%GU|#LO2kpnA#SZ8R$1z(Zvmt2y2^dyr z)KFlSHXh_?$5~6@VF-hm7~MaiOzi0QRrIKdRW1rgfoBiYr0d!$Y-{upKJ&6=z-F3w zS>&RXm~3|EAY%x*pnge&L(FkE&ud!5aw!1&x`iRqgKR!8tx?LjC& zVvU4vS^gplvv+c8u65gf9yP9>Lv8>V5PD@8Fk%oCUawpcex5TiLjnUVuSKN6KQyp3 z=v1kZ*t3;YQ23>gX?T-bX#bH%F|5dkr9U7oRWOHrH2YTk=00gK#f>mvs6)DD9_YS; zW@b05TWWR*k-x83?(iIklzLhu+^E$U$}|P!ib-tWqgJEh3-IUD*bi?xuWHt~a%E;` z8w09M;Dbo9a)cq2`~-U{Xd>$Bq}}a+u&a4BK#TeK@gt}uq+_u*x?#}_C75umG7b)W zXd0+1as7Csfv|M=B60w+;G12KAZPKw((+T+oIC^$8oW<$#tZ^bK{Qniz_C+tya;ks zyJ~fqbu+w-AK41%Jm(l<1G?VD+`0i8k{@sfhMPCZz=>|9pn4JX7aB?c?830D_$&Zf z!MV%O{FNZ*J^jvh{PQq#b7`B2B=AVTZE`M6A`qEy4D7Ym2J#cLs;xj@P>*B3k-
Nj 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
Nj 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
Nj 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 + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +static const cairo_test_t test = { + "spline-decomposition", + "Tests splines with various inflection points", + 390, 260, + draw +}; + +typedef struct _point { + double x,y; +} point_t; + +typedef struct _knots { + point_t a,b,c,d; +} knots_t; + +static knots_t knots[5] = { + { {0, 0}, {0, 100}, {100, 100}, {100, 0} }, + { {0, 0}, {75, 100}, {25, 100}, {100, 0} }, + { {0, 0}, {100, 100}, {0, 100}, {100, 0} }, + { {0, 0}, {150, 100}, {-50, 100}, {100, 0} }, + { {0, 0}, {100, 200}, {0, -100}, {100, 100} }, +}; + +#ifdef REFERENCE +static void +_lerp_half (const point_t *a, const point_t *b, point_t *result) +{ + result->x = .5 * (a->x + b->x); + result->y = .5 * (a->y + b->y); +} + +static void +_de_casteljau (knots_t *k1, knots_t *k2) +{ + point_t ab, bc, cd; + point_t abbc, bccd; + point_t final; + + _lerp_half (&k1->a, &k1->b, &ab); + _lerp_half (&k1->b, &k1->c, &bc); + _lerp_half (&k1->c, &k1->d, &cd); + _lerp_half (&ab, &bc, &abbc); + _lerp_half (&bc, &cd, &bccd); + _lerp_half (&abbc, &bccd, &final); + + k2->a = final; + k2->b = bccd; + k2->c = cd; + k2->d = k1->d; + + k1->b = ab; + k1->c = abbc; + k1->d = final; +} + +static double +_spline_error_squared (const knots_t *knots) +{ + double bdx, bdy, berr; + double cdx, cdy, cerr; + double dx, dy, v; + + /* Intersection point (px): + * px = p1 + u(p2 - p1) + * (p - px) ∙ (p2 - p1) = 0 + * Thus: + * u = ((p - p1) ∙ (p2 - p1)) / ∥p2 - p1∥²; + */ + bdx = knots->b.x - knots->a.x; + bdy = knots->b.y - knots->a.y; + + cdx = knots->c.x - knots->a.x; + cdy = knots->c.y - knots->a.y; + + dx = knots->d.x - knots->a.x; + dy = knots->d.y - knots->a.y; + v = dx * dx + dy * dy; + if (v != 0.) { + double u; + + u = bdx * dx + bdy * dy; + if (u <= 0) { + /* bdx -= 0; + * bdy -= 0; + */ + } else if (u >= v) { + bdx -= dx; + bdy -= dy; + } else { + bdx -= u/v * dx; + bdy -= u/v * dy; + } + + u = cdx * dx + cdy * dy; + if (u <= 0) { + /* cdx -= 0; + * cdy -= 0; + */ + } else if (u >= v) { + cdx -= dx; + cdy -= dy; + } else { + cdx -= u/v * dx; + cdy -= u/v * dy; + } + } + + berr = bdx * bdx + bdy * bdy; + cerr = cdx * cdx + cdy * cdy; + if (berr > cerr) + return berr * v; + else + return cerr * v; +} + +static void +_offset_line_to (cairo_t *cr, + const point_t *p0, + const point_t *p1, + const point_t *p2, + const point_t *p3, + double offset) +{ + double dx, dy, v; + + dx = p1->x - p0->x; + dy = p1->y - p0->y; + v = hypot (dx, dy); + if (v == 0) { + dx = p2->x - p0->x; + dy = p2->y - p0->y; + v = hypot (dx, dy); + if (v == 0) { + dx = p3->x - p0->x; + dy = p3->y - p0->y; + v = hypot (dx, dy); + } + } + + if (v == 0) { + cairo_line_to (cr, p0->x, p0->y); + } else + cairo_line_to (cr, p0->x - offset * dy / v, p0->y + offset * dx / v); +} + +static void +_spline_decompose_into (knots_t *k1, + double tolerance_squared, + double offset, + cairo_t *cr) +{ + knots_t k2; + + if (_spline_error_squared (k1) < tolerance_squared) { + _offset_line_to (cr, &k1->a, &k1->b, &k1->c, &k1->d, offset); + return; + } + + _de_casteljau (k1, &k2); + + _spline_decompose_into (k1, tolerance_squared, offset, cr); + _spline_decompose_into (&k2, tolerance_squared, offset, cr); +} + +static void +_spline_decompose (const knots_t *knots, + double tolerance, double offset, + cairo_t *cr) +{ + knots_t k; + + k = *knots; + _spline_decompose_into (&k, tolerance * tolerance, offset, cr); + + _offset_line_to (cr, &knots->d, &knots->c, &knots->b, &knots->a, -offset); +} + +static void +_knots_reverse (knots_t *knots) +{ + point_t tmp; + + tmp = knots->a; + knots->a = knots->d; + knots->d = tmp; + + tmp = knots->b; + knots->b = knots->c; + knots->c = tmp; +} + +static void +thick_splines (cairo_t *cr, double offset) +{ + knots_t k; + + cairo_save (cr); + cairo_translate (cr, 15, 15); + + k = knots[0]; + + cairo_new_path (cr); + _spline_decompose (&k, .1, offset, cr); + _knots_reverse (&k); + _spline_decompose (&k, .1, offset, cr); + cairo_close_path (cr); + cairo_fill (cr); + + cairo_translate (cr, 130, 0); + + k = knots[1]; + + cairo_new_path (cr); + _spline_decompose (&k, .1, offset, cr); + _knots_reverse (&k); + _spline_decompose (&k, .1, offset, cr); + cairo_close_path (cr); + cairo_fill (cr); + + cairo_translate (cr, 130, 0); + + k = knots[2]; + + cairo_new_path (cr); + _spline_decompose (&k, .1, offset, cr); + _knots_reverse (&k); + _spline_decompose (&k, .1, offset, cr); + cairo_close_path (cr); + cairo_fill (cr); + + cairo_translate (cr, -130 - 65, 130); + + k = knots[3]; + + cairo_new_path (cr); + _spline_decompose (&k, .1, offset, cr); + _knots_reverse (&k); + _spline_decompose (&k, .1, offset, cr); + cairo_close_path (cr); + cairo_fill (cr); + + cairo_translate (cr, 130, 0); + + k = knots[4]; + + cairo_new_path (cr); + _spline_decompose (&k, .1, offset, cr); + _knots_reverse (&k); + _spline_decompose (&k, .1, offset, cr); + cairo_close_path (cr); + cairo_fill (cr); + cairo_restore (cr); +} + +static void +thin_splines (cairo_t *cr) +{ + cairo_save (cr); + cairo_translate (cr, 15, 15); + + cairo_new_path (cr); + _spline_decompose (&knots[0], .1, 0, cr); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + _spline_decompose (&knots[1], .1, 0, cr); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + _spline_decompose (&knots[2], .1, 0, cr); + cairo_stroke (cr); + + cairo_translate (cr, -130 - 65, 130); + + cairo_new_path (cr); + _spline_decompose (&knots[3], .1, 0, cr); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + _spline_decompose (&knots[4], .1, 0, cr); + cairo_stroke (cr); + cairo_restore (cr); +} +#endif + +static void +stroke_splines (cairo_t *cr) +{ + cairo_save (cr); + cairo_translate (cr, 15, 15); + + cairo_new_path (cr); + cairo_move_to (cr, + knots[0].a.x, knots[0].a.y); + cairo_curve_to (cr, + knots[0].b.x, knots[0].b.y, + knots[0].c.x, knots[0].c.y, + knots[0].d.x, knots[0].d.y); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + cairo_move_to (cr, + knots[1].a.x, knots[1].a.y); + cairo_curve_to (cr, + knots[1].b.x, knots[1].b.y, + knots[1].c.x, knots[1].c.y, + knots[1].d.x, knots[1].d.y); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + cairo_move_to (cr, + knots[2].a.x, knots[2].a.y); + cairo_curve_to (cr, + knots[2].b.x, knots[2].b.y, + knots[2].c.x, knots[2].c.y, + knots[2].d.x, knots[2].d.y); + cairo_stroke (cr); + + cairo_translate (cr, -130 - 65, 130); + + cairo_new_path (cr); + cairo_move_to (cr, + knots[3].a.x, knots[3].a.y); + cairo_curve_to (cr, + knots[3].b.x, knots[3].b.y, + knots[3].c.x, knots[3].c.y, + knots[3].d.x, knots[3].d.y); + cairo_stroke (cr); + + cairo_translate (cr, 130, 0); + + cairo_new_path (cr); + cairo_move_to (cr, + knots[4].a.x, knots[4].a.y); + cairo_curve_to (cr, + knots[4].b.x, knots[4].b.y, + knots[4].c.x, knots[4].c.y, + knots[4].d.x, knots[4].d.y); + cairo_stroke (cr); + cairo_restore (cr); +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + +#ifdef REFERENCE + cairo_set_source_rgb (cr, 0, 0, 0); + thick_splines (cr, 5); + + cairo_set_source_rgb (cr, 1, 1, 1); + thin_splines (cr); +#endif + + /* + * Use a high tolerance to reduce dependence upon algorithm used for + * spline decomposition. + */ + cairo_set_tolerance (cr, 0.001); + + cairo_set_line_width (cr, 10); + cairo_set_source_rgb (cr, 0, 0, 0); + stroke_splines (cr); + cairo_set_line_width (cr, 2); + cairo_set_source_rgb (cr, 1, 1, 1); + stroke_splines (cr); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +}