From 9a748c8e0d90f50a26f38662065d376a15911358 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 12 Jul 2025 19:00:24 +0100 Subject: [PATCH] done converting coordinates to triangles for exporting (but I still need header and footer for that) --- dotscape | Bin 1049192 -> 1049192 bytes fcore/ndc.sml | 14 +++++++------- fcore/quad-tree.sml | 10 +++++++++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/dotscape b/dotscape index 5feee0da5516bb1534e844fbde16c9803adbfa84..b285c658f885d767d0fcecc3d8fb602c1e157091 100755 GIT binary patch delta 11076 zcmbuE4_H*yw!qKc`!H}uK;%DEFf%A3Dj+H#7>-ngSeP`SqUp@wUs6mfGjHh(mKt@* z@u=HdU7W%EGrTf&%2QTe^!Ci`rb6BFdb{2M|KwF8!TSvQ-m|y%nKQ=|@Ah8b_xQeX zpS^#3@3r>YYp=b|@$&QL%g>wlmEqW^`h#s_Q={ncCqFI8d;Zk)xPh-<^3B2V+)MSXxZC_Cu}t_F`yRW`iEw9;udDQFgnO~Lpv;3!qeT6r zQvAkfv2xN@R$Q6Xj6I{p#`0arBaWTC1Me8^J3F}sv3Vyvn8`}4@}vKaTyVJPu-c9p5|!RJ&$@lTRE@IF{jt~pA)~BFoJYDMq$f@9MXMc zB(~IW=DvyWyFqZve-N&vGgYjwEKae;JKEit>$4`C`;45U9dTTrpTxGjoQgIZP2#!A zcztKIqrJHvdkrz-t;*3!Wu$vzIJRJz%P<%QH-vcIoygTZMl65$9;VSN4{ym;HQMxZ zjr_3zjXcqcM!dQ20%&t7RjjgPVSl=Bouvq&4Byd51|SqIo~*hfVzi^ZL(lcubmqR! zG2+dtq7(=2HjKcQR4B{hpj?T&-3DyQ7zWReV{yu~;z6LLrwm&VXnCmwxvay)rfHdx zoy5_O6FINWz`0Dkc=okqJfujx`C5v8r@_%4V&J{=3}VXb#p3ko^X}V>yB(8Z#%-{t zmDpkcRn1@>BU?BanFAxI-buR67U%>z? z({aMugY6^5!?tSd87U^)Z?VSYnzPt6QoLCsACAhojo848opYBnn^w)s#ik;$Vct3X zMxj_c|F3AMSi0a4zL+55g(d9xlrGdECZS@He5l$NRbead%dCyZ*f`!-vUnguF=FMC z?1-3vZmrBiH4&R?g*#lb`!+k>)-W4(^s^?jztPC>(ojndZLpaboo2 zATv$OdmLmY`DQ;3fx~YQE7p`GwC3Y{6g+qk1KiWV{15|Pdg3C&rtxBpTiK73Vao7 zig94>a@OgrQ<*ncTwHHpEsgc^+~sTK(YMyhb5}ku&n=#PW~?}T-BWB+o7a`Hd9SQH z2vUcO%^Qwlf01wgiEs^W=1@*Pjef$n*vE^}TO>B#k2%Yn93p=9Q{W@nZ3gDs(|aGlq&E z?ij>Ib77oi4fycaI~F1R5b&>%pns+N9^V<;udO!T2FBPcc=dX z@|EvifCjPC5giDzJ58MH!Wi-Bo&{)(nCUGV#T*W_WOu3u7}Invn3v~KZ?lf;ldmmM zD$dQhF!+s;7q@yF9esU+LNGMYLGlIiyDpMt&_>PBiomJ>L}4)h;p>Q0e7BZtnX5LEi6m#tNcm_mrsaT zeP%Z97$+V&Q_c$AUw#Zb4=2?GKhgX_tnbdV*AVuP^Xb2V8w|?mzlj9TCBEJMLIkCF zzT+9}$@9(bT!C2m)%kjaYw~>67oq#yJkfrskTo}53gGz54LmmF`pX{2q-93@MtE+9}@a+Iy4d#lFsT7 zi0T|iJ44Y)XrKqe&{kHK3+O8tK}~ve7&k{roqF^V29@d32;^iPdLj^8x>Om7K4WW< zQlnr>?2eKuq7l1q3Tb03vg3}Cv?msAV)b=#FvOT8U5Z1+h>cB8KzFdjmEMzx4zTiv zM8q;!T9kxVL0yuP(7Vjbq`DMT!Gmd}!zNTb5SAw08ig7LGSn~;4M))*!YPLPBNfWa ztbB(^pOm0U%qOJi`%oHYJq${Z4S^o?{`*l6ZUu2=C=bJkC(2MoIEtZ1EhrPx0NQ0i z$=H}A=^sH=u(S}#J`I(Ucstu-NTP9uxo-}~y^qE~t`|ZNSEF1euBRGJK`4)w%tE6P zPgl%BrMNRhIy?*gormTo8>)qFRBs0%a|h5oJ4(ULda25e2B2XO^Bov+ieg9|A;~sC z8p-kt6S!^1ct^VvJhTQ_MxXAYDc85X z1dn5?uoTEyFL<3tv1=^^v}PDz->CQ2m#{i^)i)0C)^{S;`8Zm!0OZ)yXx#!>qCH7^ zbpd)>UYZk@hVKo$KTL$B;SuJ(dthnJu(Wzu8V{_qkQOe2rP+B}w+O{!dk9^(2xVcD zUOKo4C8Ky7m>+@pZOhGl6Ttk|6>w??&`Y(@$sJAOA48DlL{j@>XjQZ)2^I;;gWbIK z5cE8QY1d;Y4UM7Ei@_OT8DB5Wh+S1Z8ZJtJwu)2N=cN3KMr@x}pxbsfQ#y=+~rIHuPs(At&Yq#jIXKf?|S zUBwDQw?2cKup867Rd8N`o?HdZVe|?VW5XQnYooz$*4_3YXD8>fHE?~+!0MBMH895Y zIZeoA+XU__(8AxKrAVMHzd`LL8(b;QYOc?|i@gdu+Sy)pfNMJKfi@#go1TTeH5ExG zo@Eil7D?NmL$9E4YF`cR?vA7_tI=}okDw`QP+`0qmgdCaUTdMb&w(Sn&Sv7WhSRz= z?3_hPudYE|V9^+mT9=YhjxYF~?LP=R!8Eox^;FMag|bQR@E z>(-%}NY7ruK999b*oNuV^~ea9JB{3c+H;4b!7UBWQV*|}Cdj)>;9YDET;-0hV_7=c zJ@L=6@|ACoH~0M$UYRbW(&GInO&a?m9O6iM&7cXh1FU&d1L$ikk`6bZEW&)F>$hlu z9Kfc%5(r=eHllSbaETjHE+1`%JLl6VODdG!qfp+9>DQZ470RGlThL5~9s6TtT=q7U z1(?3J1$~aKW2D-xXgD5n4RyPh$5@U(6=Ruj0d-GY8pAGrZ_V>&?;6hhQ8D~HnbM(c z=oZ{A@bD^xsdyvYR;YmMbAY>BOW1`L+v16m(tnRyz{Ufm_9m3e9;nWZuCTJljk;Lb z=|OeH?tyUXnS)e{Go8iRTQs}N` zv>JO-XyhAcG@Y>nO~4&W<#SdsrZPg&Si0*C*u=4P(@t~>jg{=X;MT!&jkM4U_Pmf! zyS!*-gauyWXT(}IRKfl}AXT-X57=iC8uKQ44jb;4Hob{b*zHOWyoFX^LnzJMi;|O# zxj?`Y+y{PZ zKS=U_VIbXFL0;;oT-Fq_zF(89?>AF4`huBY9bl$@qouBg$R7|ILibh@c#p}aCo0KH zcLkM(QA}xBdFD7JY!+$x!=wl^i3m;si$tD$dgu{SgP$ZcwTk2-j#gHY3fwW8)=noW zQfn32gQ&ZT80d!SWHYvzXvz!%sZs%5J%co1yGcr^CI=y9N~d4VB)f%c;6Fb22ymUQ zn+4jyS2lU8Yj2+~mXh|);x^kdY1X5#k?v4h`Y1`M>IhX_xK43lsQ=7`A=o=~aGS&V zbQHqM=9~LCc=uY{j9hk8z^zU2-mZ0PgF!mi!2zdRC3hf{OB-#Z63ROV8jd9Z6T5>|}uxc?Wg}gGJ9$i9M zCPr^AA$7?nxO+Mvva^h>27&r$;E z`NeTk)-tjj?zVBXc{vdG2-^GvDaP}1q)t|1>u|}mg22~DPRe?koP=CFhu&I68nAsd zJ@+h$m)yT0;}O&(sAUpdlP&2Tq!VV$rd>{Q6iVqpJz2++R9g4~VX1(0_ytnJ-k>D> zA{;k#QQFx+rXjsSId=XLRQEDzW*u5yCMg8so^;|Bk}eydXCrArk?vH*g{sYc{v4@g z6U@WJ zpnF?MqvZdH{0XyWsDVub&0D3#N8wPj+2TJ2fiQjZ$HauN6h)8yJDC%`5A+t{!vd6L z6v{nV%0EUPgssS7ClKBoA&0UV>84Let=_{<9DFIW4W+u{WETq%dykWcAt}J0l3Tfh z0rT*s5xzF|t>L-uBR7AtcnlDJ;7g;uG>|%D9(!XA$VD8GvKyq_6R<>m4Ge^|&%0x& zbn;ISm#{TT!Y4^7GmBJynw;cWOY)z|F^msJ(ax{QB}Pu1Ax|ScXwE%~EOXw$(&V$` zsr*cqII|?%4j(kx*M61(TC?E(hikGGqN5dFN?1g+4yIQI@uSfgDJ7cMp*W9@jpKUR z8;6{`HA2Ls<6?No0Fvmc7(O%E4Jnxuhk9+v5O7V%<-~zo)jdW!9K+k?jWxyd$3oc- zU%88KLD6muc7&{Cdm;D!_8xAWKaK86<+GBlkf%Cyp+HpL*xXQL1N}ns>L+R;py!@Tbpjh?lIDWszsuZj`lzv{w zU;cGc(`aAOzu3=r$KT#h;qJhGrraIaPro90!QK3)TFHgQ{2$r%^iwh4#Nt)cME;Px zt=0GOO`+HpCH?pSza7E*)2kKyEq2geodVWk9(;HzA1%k<_DWtaKb(7*KPx{RdW3Hd z!N$b(vuE<~3xS^wexcIrnPItJY91)?ba99pDS4;4soqh~{5;&L`q z3yO-QegU5DWK}~r^otJ@mQ!93l4+d)oj348Je|#kfiRv%2|^^T1F>{7n@^rJM<(`T7hr+MKaS{5QiQELcP^8g zKX2-V5p-V|sLLirIyx#uFwzu3I7!WVXniPL7*E}LA%|KA2&J@G4_c3B1A|i}(wD=9 zN)p8p+93!Dv@BAnrF+?^x(HZEQzR_7Vjzri2=H`>S>kXcOboP)HZgs(20*{42x!Y0 z0CN1{@XteRnXP(Z4Bf}7AUl!$Gg!5viT*eMCcUP1J}tn4gG(Ar!`X(sIzTAjIsjCG z+2d)24*rP(6HEIB3OQe*^2s=)?;` zf{JYleow{Aw0OCKx#Pjn9xX0cuvx`zTKt@X9V$i_HL@2dxK+iYw0NO{qdpDFwrTMU z1y5J8ON&=2*sbCtS{$ihzlyuHc$tC?CxWt#mo%EgH)8p3p^B$!F|Xi#Dt2mdh=Q-H zc)u3MDLCh|pzIDUPE_#YDjxK$Mz!joY!y$`;=w`LDqg0=^A%k1r=V<)7Q_Fe$bSwM zw`uX+3T{;~x~x$RE13H{IQb|o9-?5gifvjPu3(3XU0OUVC|kuxv>3jY$$w!dgR;A| zI9h~37Ef33aTPnYI7z`_r-HKgYw?_*Y!!ECF+^?oZ=;F_UD2p^ zzk*Mzc%l~1RB+ialCP6zo=Un-&)<*so%ARij#{f(>m!*`u_0Kv1@d zZ46&k7QFCkU{rAZSE);j3lzLfDX-EaS{$Y{A6Id=7N5Bin7miT#%mhcdlZ~;Ezs>M zovOtv6+B(VPAx7|@CFs{*WyG4zo+63Ex!DZfXvG(9`v0?wf7X9_+3!7iCVlt!DT95 zrp410yi&y;EzVHz9u>D~aqs1T%rh!RT^iMnD>$qxsM;tk-lpIJ72C9Up@J8x*rmk< z3f`vTBU&7$;NvRp*5WhY22|=*vGIG2=6e*J@qJM9sam{J!P8aj)Z#J)Z&2}mElyPM zdn)eG;>(u;GB2xm&~=S!?i8r6;~IIKIU+9)mFrr-h<+q8J0f)}dTrNspb-lpOsS{$a}<0|gf;xiWlD)p+^ z*rU;WkAgFLf|^g&;*|=Xu41PamnnFIiud;j*{F?nuwHFSSkptvvMZZ%r?$~SH-v;q z-3m^;5fB{=Z^3p>Y0pv0Hl;)G@(lKGqsw5rq#%w`rd=5vMm<{WQ1BiFPoZr$gemAF zYW$~=fR4z;sBC3!zp}26l=}3422}k(soz$?38RyqQ0o0PJVp029Mq86gZ9(Kazbft5mG-|WbwhigUyzset1s+V->B42Q5T3?6C8G? zU$>|)em357K1xIh|H~JK9`$4l6W_crSZ^bE!dch6a)+hA}@YBO@0Q|zGq~3@H;b`c3 zCm$&}`GE&V>*lVgteL(*y1QWDinzg5)sv?zyf-U1tA?AuXz{$c^Ji47oRKw3sXjPq Q(zN9ZrLP|x=z8bB0r%q@DF6Tf delta 11105 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�sns7cIf zB|9;iEFRxQ{6yOUH=WIpD%r-1oiC9IQqpXJmoY4@-pWcylD}>vdqL<(+Uf$^)sLip zR>B}TZn72!MM#$=dZ2?`9rBzZp58-7Nt5h*nfx6iES~EmbFunfxDKi~x_c)YNzJbk zjqVjVqqSVs{%E+n?ZM*QSIHHE#)?IUz<834UI%OAQPahiBLrT34J6R-j)FZ062zuA zNd;mR-Ny)|b_sOxTO?2Gg5cNGr1n7kY<~-Se3KyReosme{GbQANQ>zE19=a#YIp*h z2CG}e13= zs~bq4+$OsHZPK7M!YeWdydtyaQ}t=Gj|GSWr^y3oGR5zZn|YUEL-O#75neL}Ht}5l zi5uTnx#3kad&Ougg~$V94v_cF*PjZ9ovLU5yE#`ogP8q?^ zz{VK5VFaI@?3)M%z!4s6GQ?UFayoGEKy_t^$4BrsX<<$A{HX}G!dLI$JCWW187oUj zb{BGQ?jGQ#7$(tuseDed3sO|OI>O`dLt+B+x2r*v2|Imy+Ly|kuq#v48$dfFylt0W z06^KxUIf5fckr|-1aIB_aCW(jw6=gxqfZ<8ZS3`s0q%w~ESM%t;Z5{z6F&|crUhF( zZ{kN_gOMIE@iU}Xjlow;^jj1EX7Gh1tewdy9!ulD#c+!iy&1ela`oe*`9C6DL&QyE z_^0uYO({9&f1Z*phliKfnY1~FUlZ&PIoR%UFi9R_Cee)x_YayOXcD-s*(8%xj{}oH z{|)0p{o#VJI~)2RmP~r{R(~~Q=OL2@%?lf6Df}UYRVi3Clb$W)dw<@jX*4kPM;7#rX^I8a zOb;$-%JkrZ`sAUPOy}QG4qaHp|A`$?-xu+1EMm14^T(uht-YIXi@-*;_}#tyZiH0y zg$f=H3$^&dY%mw|;p207y%d4FD|xN-a_F%4|N6= zd=0X8yO_McX+bim5ffHCil(TcNhgZY(fgSi<0C<}^=i#>Ix0$|CuUAXPef`avk`gv z3W|xMT{@6{EDG9wr_$)DAp*WqG@5gC{4h-py&0{^pgv|JSF~n4-KK*tbF`+6(L{Pp z73!;t*5tM7G^1EsQ&8MS4Ve4`jV6yC)4(h&Iv8Ss8tMvl(DiB*d^JXEbW$&n78R7% z8LcT|LZ;CeEeMCjh@v4$88jsdB<+fVWnp!#T2M|>U1|Z=;h9aw)AhqN4YW22e)Z{~ z!%NJlk843Ym;_v;qd+GgtTKt=2#wWhriurLYsP{Q|nGIoXW2_@Fa*cZnAO1xUehBKkDjaL+!!%Jl8Z)q6M zQDR=k2gBH*#3~tI3*$pdJW|Hv-wlo3qr{0aUKPf%pDR?W4UHYf#Y#LXG`>w)8ArY!8vBqEFAR+x z#yv_5iI()YEsSHYDpb2i#vg=nu@cXhapDJ|u~#c`ii|B`>{enTV^Q$QNQo0=d^C)El(_dwaLnE?j=iQ(?Wl|suZ2`AR^qKPE(_z;N?ar3 z^5cdK^~!<*&j-cNsMkIgjppPGbaCuID=`5)qRx&E45pD8~Zx`XXP zyllwx(jm{=-8=j7$o hbBmWPUsSoaa!Sp*oLu?w?p*7`#SP*o_YHTx{@-Og21)<` diff --git a/fcore/ndc.sml b/fcore/ndc.sml index 64ad511..947fbb9 100644 --- a/fcore/ndc.sml +++ b/fcore/ndc.sml @@ -12,14 +12,14 @@ struct , right, top ] - fun ltrbToVertexRgb (left, top, right, bottom, r, g, b) = - #[ left, bottom, r, g, b - , right, bottom, r, g, b - , left, top, r, g, b + fun ltrbToVertexRgb (startX, startY, endX, endY, r, g, b) = + #[ startX, endY, r, g, b + , endX, endY, r, g, b + , startX, startY, r, g, b - , left, top, r, g, b - , right, bottom, r, g, b - , right, top, r, g, b + , startX, startY, r, g, b + , endX, endY, r, g, b + , endX, startY, r, g, b ] fun fromPixelX (xpos, windowWidth, windowHeight) = diff --git a/fcore/quad-tree.sml b/fcore/quad-tree.sml index fc5d429..b1dcde0 100644 --- a/fcore/quad-tree.sml +++ b/fcore/quad-tree.sml @@ -553,7 +553,15 @@ struct , ") - halfHeight) / halfHeight)" ] in - x :: y :: ex :: ex :: y :: ey :: r :: g :: b :: acc + (* based on triangle order formed by `Ndc.ltrbToVertexRgb` function *) + x :: ey :: r :: g :: b :: + ex :: ey :: r :: g :: b :: + x :: y :: r :: g :: b :: + + x :: y :: r :: g :: b :: + ex :: ey :: r :: g :: b :: + ex :: y :: r :: g :: b :: + acc end fun toExportString (squares, canvasWidth, canvasHeight) =