From 150ca407d0545043246791cd9da4f9e0b9faa4c2 Mon Sep 17 00:00:00 2001 From: LMW Date: Sat, 16 Aug 2025 13:06:09 +0800 Subject: [PATCH] Added kite sdf --- addons/material_maker/nodes/sdkite.mmg | 89 ++++++++++++++++++ .../doc/images/node_sdkite_sample.png | Bin 0 -> 22594 bytes .../images/node_simple_sdf_shapes_sdkite.png | Bin 0 -> 18007 bytes material_maker/doc/node_simple_sdf.rst | 1 + .../doc/node_simple_sdf_shapes_sdkite.rst | 32 +++++++ material_maker/library/base.json | 14 ++- 6 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 addons/material_maker/nodes/sdkite.mmg create mode 100644 material_maker/doc/images/node_sdkite_sample.png create mode 100644 material_maker/doc/images/node_simple_sdf_shapes_sdkite.png create mode 100644 material_maker/doc/node_simple_sdf_shapes_sdkite.rst diff --git a/addons/material_maker/nodes/sdkite.mmg b/addons/material_maker/nodes/sdkite.mmg new file mode 100644 index 000000000..fee6652fd --- /dev/null +++ b/addons/material_maker/nodes/sdkite.mmg @@ -0,0 +1,89 @@ +{ + "name": "sdkite", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "apex": -0.3, + "base": 0.4, + "width": 0.225 + }, + "seed_int": 0, + "shader_model": { + "code": "", + "global": [ + "float sdKite(vec2 p, float w, float hb, float ht) {", + "\tvec2 v[] = { vec2(-w, 0.0), vec2(0.0, ht), vec2(w, 0.0), vec2(0.0, hb) };", + "\tint l = 4;", + "\tfloat d = dot(p-v[0],p-v[0]);", + "\tfloat s = 1.0;", + "\tint j = l-1;", + "\tfor(int i=0; i=v[i].y,p.ye.y*w.x);", + "\t\tif( all(c) || all(not(c)) ) s*=-1.0;", + "\t\tj=i;", + "\t}", + "\treturn s*sqrt(d);", + "}", + "" + ], + "inputs": [], + "instance": "", + "longdesc": "A kite as a signed distance function", + "name": "sdKite", + "outputs": [ + { + "longdesc": "The kite as a signed distance function", + "sdf2d": "sdKite($uv-0.5, $width, min($apex,0.0), max($base,0.0))", + "shortdesc": "Output", + "type": "sdf2d" + } + ], + "parameters": [ + { + "control": "P1.y", + "default": -0.3, + "label": "Apex", + "longdesc": "Position of the top vertex along the Y axis", + "max": 1.0, + "min": 0.0, + "name": "apex", + "shortdesc": "Apex", + "step": 0.01, + "type": "float" + }, + { + "control": "P2.y", + "default": 0.4, + "label": "Base", + "longdesc": "Position of the bottom vertex along the Y axis", + "max": 1.0, + "min": 0.0, + "name": "base", + "shortdesc": "Base", + "step": 0.01, + "type": "float" + }, + { + "control": "P3.x", + "default": 0.225, + "label": "Width", + "longdesc": "Width of the kite", + "max": 1.0, + "min": 0.0, + "name": "width", + "shortdesc": "Width", + "step": 0.01, + "type": "float" + } + ], + "shortdesc": "sdKite" + }, + "type": "shader" +} diff --git a/material_maker/doc/images/node_sdkite_sample.png b/material_maker/doc/images/node_sdkite_sample.png new file mode 100644 index 0000000000000000000000000000000000000000..b075854bc5b9790f2fc133d8a8841c43b9712138 GIT binary patch literal 22594 zcmX`S2Q-`S8$KR;*A{!%me{JqsK%;M)Tl=6-C8wD>`hQLN>P+rrNmBAd#hEn_Esy@ zXk(T9^7;P%zhBNtgmd2KeV+Ti?(4el`#lmL8*0-~vQq*802*DLhb9030sboifSeHj zW13D)`oG^^nrJ@&)QofP0RR^NbRTLwdA0Cuf8?)B-J2MXV6Ch z6kK9>IY6LXJyjx!7NV-IALZLoNi$9J9hSa+j?zKbLSOr1?`c!~u%wvUD>JbEiZpO3YD?P#Q+*>^S@ zS&I#MRzps-;Opn>VbN@5d*)OEa=Sa(^{1vs==IzjV0bIgzUIq%YG%HoUf5oFH~9;p zU70az8oTYKvmw*%@Dl?b|2S7^!+4M>b<7oW!O4j7UA37CS)B%}U8&*l{coCzDe?(D zJUQs$uR=KHSpa2yalww;?3frwp$m%d4rqts)o^-}h=VZ{!*+(K3jsiZ$wT?AW^ z-soGB42|9=nj|`$BnEnuUkB`0$+*5L+PYQQvLz2T!@-uD?l4=%-MuCk-Cj}?I}Z$5 zyy<*bxBrj!NsH;t;UZ-612?NbB#oc{>(1!oNdGz08zI+tIBOK=)+~`R^DI%7^T$xx z+1UN_u83e>T9T;r9gFXen+rjSI`3T&4PQ(VJ9jxXXqpd0!M!pet#7Uei)_U?<5X>I zmYeMRk;g#0p!3z(u-zEt{S}DvWx82G^eSdE3YP-%8-LjxlP>9E#NA5tzIm&ygN%Gc z3~0w@zBMI)_WSwH?t+9;Dxie>!m)oe;B@iv+22_Qf$=0h>)gXpx9b2Mea)4d1?9YT zO2aiO%$%;p)@|=AVop<;H_CNaoSMwdw#<6IIC|-ATZRF?+R^NNhvk0KOgoBS5`p7q zoipw4|K&@5q~pXyuoRs zxAh=W)qWxJE*X*X9a5_&Y6rGO%5WTGCaT@@$EUn8lc-1nSvy0Gij16q>AuX%xa;Yp zaT_R(Qd+)b_xIAO5UOVM#wpV4U5?fEEg`vNbw{fQ$0Kt}wc+#I%+L1hD_w(yx33(G z*kYK5Yl&E5GR>N|r{o&Hpx}>b8yQTWs>23?)w!Fl_6f*{#`>OIQj!vL?0NlBk4yNj zNU|zHO%WoSG)^f@xJo<~-Ur1A0ml^SE`$LAE-JlZBRHXR>{aLVipVbx{}EYR97J?6P$^xz>y@4D6;X@4%|1EGMP;*^-Q0=% z{igNNPnKVdkG&LC{sbr@)mkdfh`Hyd$gn;2vB<-}@7^O~B7RtBr zC{tIACGK;OqCej)jgIsJ)V=r~6&dpHA4h~GYCYnfIP1_27tQ4BuAh-^RBK&`~`%nCn(HCI5N+3HF?KARQ~+zF!=+63ks5Y&-KcE{~268dPPJA&1x>+TbJ zDsqihk}Y^u5tz`(f{9G?blrY!3wPYLcYlyqd{l)c*O$*Qxo7+%IqLdjTRZiacgycO zKNCX@Qj7I^lOLq6{vIUeP!Rdp`(ySw_`PSvq+|R-5fR59k=)mp9#Mqf_48LJVfZ93 zbiK<1(R?uomZ8kFmnD%jSS9W=FQgCr;=x~*UP$M0-+5Y*=qPT_a^IZ2s3u;4A8y6b8^rEHf42Ca^ z{VOz>v4zWXF?h$?}q&+k_xnn2+`dzpih{e6G+YGlrAVAo-}!+E-# z`s<$8L^i-1j;_GMoGXs*pA#SbUeI5d+%414a9N4;qFNIg5g)&qMPKvmIgd9|seHXX zLM>R9c(B-U-$tx15AsNP#s9PQUtRqj4F@Kb`CsoEx08LUAv0eh2FC7r?2jLOPAS#h z9NeV7V;hz7f?A|YX`&%JuNQ|>+Tq0Ij4AE3pRdmT$`|O-5n?A0%E7#R-n{hNEffs; zTXd9LcQaN(6>Iz`s^(qr&W*p>&Ish;rOv;L*P>Gkj^_qc8?Rt~+7$LIL=p*a$Z0;3 zbeWyDhwR%>VwC73AoSKNCn@oe;WK-;?w;VR7_XiS8Jud=x4+T@Pe=;8t++p3(`tXZ zLG}jYjEC$3ueHyQZI&M4*7=%Qcr@PGbYcE5Tnb#WQ`{4#*f3+M&aci;W>M=1Opw+l zLhn8lMOOfcwoJ_gS4fUAu*3ywXsrC6*5Fvm0_t)klrPiNdA8PC6_yrb~-Uss*2*<0A!(@Dssg=c)HzcQ|&eQQOPR%0&? zvK}pGFuC`zI|&xcY3~T5d{>hlhqR9}A4BiP^+3tSlOhvWh-{e@XkHQ1AT~a=vtjeU z#X>BqQNk29aS*ov)svxKpLPex=L~VMb-*%#*VK**?x^f^wT%(7zhVc$CiF2TN%uf?>GFK0vS2X3@5#uXph>id2(@KO z$vS|%r$BSrcA}X8%XyC$yX3euMvX{ypUY6G)l#8W#=O2!xvt%t|NZf>(+=CF+s;^d zb~`xO)%oRvA2n=~^>`<8-I9|*dTpm-0IEHP7Af(~+gUFrB84?B(*U_f2B8g77^N~h zBXS#8Z6ZvfgDi}M22nGGu~FzPAfm*^cxsTgbA}Ix$H8LTyfc3)cSo{apJ`RC!vrOI-{@S$z;9 z>Tas%oRA3VH@?@;?xYLV2q#98+Mq+k(Yple#nFPK5=V3PYo~Rxj6_G4WwsM1-)$#! z?<;t$w>=ZVB+l6M7TmM4#TE)t*t}(FPh#i^jx?W?ML910aC?7ENGyIkxbRhvp|3oF zAb(aKlypMX4-F)WnlnnT_ntaY^q#_~%wX9N^B$+S6{ zT-$f8w9877J_s$3wzqTLB;yp}5yU6aOt4H6pRRBb4qz;A^Lp_MxZ1ndNar9_Ik3a; z0wzI$educ+4S9OuKKF7KfVg9_k9$mE^YKctrrG~Nt_3e?CU2OIz3pTKvPK5< ziKLDO2rV{a0JZ7}OM?@7(XIh3*mj;chy@KwSSCXXGpugtw-WL$#)}QL!#uFZYpsKB zC`q0N2aYVV&=FzQ(u*F-jEO8}$#@$x^kr`jx=@QIAo+jFtQA+;!TzXj7N2&TN`%N` zh6^lwdd^LzsyM|}f1Aw;z&fo}PzP zau9D<=a$5uhVVYE9oQ^R34t*sCNTr={xbUFz$N{-X|33MP!2S5WT}PPdGCpGS)@ih zutqi7{x4vu1+kF$iD*dSpha4B#*X}ho|}XidG!`j8&;8^#k0XZ7K$GN44DF3sk56^ z9ja=yKrU4zGL_wX%4`6t^i;dda{#)Cho&+YOzwaH3zO<9V1Dq1thKw~k-}WVTPj2i ztL;P{djEIqZ|kdDjL7w<-s!WI{bnuTi@EODq8MdT4QiLQG6JCWa6i;T0p?f90lKfQ z6VM-l1mz=<&X=h2oAC*y{|Jyz zw4aRfPg@dCi1hU~4qu9NZK0&%H8fNcsoDQAPYe7H|Q~TOk;v#?Izyp zUexbw4_frJ(1SzxtUKmr|6NiBUdx<&%jnW6X7Xb134d`=&{!JjhU!x5ms8kpi4nju z9lkLTX~5((_iOEp^ln~LqjoG=u`s!=0+s9dUX-v2E(4#U@d6;lfhM+{w|Wyytv_s{ zWwEhN6?U23`PkD}o4ZxGe1n9CSiH?4UeI!$t7>qwSeTB;4(6BR(1qW4oX?ar5h(bf zz505wA+;l20DkwF3pjbT?^1nFL3>jAWA|^j7bn`gpE_;IwR+g6p#2Tan;e$kh7K*l zwo4{Lex0F)xq=dQHaWbXn@)*;GiIm`J7iWO5;#GN*hjo^hOfHzL0bq9guy6H7%9G5 z8$3}vdi1CrA`*nJZ`6z$4YnE|9~b92Qwke)n-4SMb*cA?4_v|n_TMZDEyrD-3jT6! zCu%KDa~@D?;#Jrvp6EflO40*kS&JS%S}&$e>VjIxfpXpE8h9r>8s+9*)(g&M#DEcS zYJ~6pY69>`cJfGOd2nDLE-sFAStxMpgUa6QmVSHDa}=vBEOS|!q3`Z`aYpHSaY-!N zfgLzTh;o?*Ag=u3{k;W$VRMYFrA`muKfMt9kHP20CT`VkH-9$Z#@{O|dM=^26ut=1 zZtDgm+Vgrk1nRFBOC+QW`B7c^fk0MZZs1>!L29&XgE%OcL=17nVQWN_al}H5FrRzV ze?j~|$i}-^D5bjoxAr_GTGiYhhyOf*7-q}N3RZKC+BlrC22;@=VXHYIZ=1aQO{FzXCVGXLh zXG#LK^U-R%!frx~5L0Q6UUjznY&$V#sm-~GI|Um-LN2`h{Qh7M7k}1#<;Kmuz$0fQ z<1`(^+onO?r(Bdr33TcXe)hSp4gu+FfXo>(d{ zy#3YD{~t%)fV5>tm%?fraV8+wWAyIq#R=OxbF>I?3jy%1bPLeIK z6%Tp6yJW(IQ5r%CBj9l};rGcA>6;!pHwSbbIycwX*Z8F`hJ_0;zkjQ}%v*XBfBLaq zP&tjahNBOl)TaUSTi_*~<8pxcp+sPrsngmdo5g|&viDUKHzDs&0`aoyfW_zR+btbt ze&C`KCA{T)NQ?6(%ntQjX%D(Q-L|NOb8&J$fAQk;7lWfA%^(waI+wSx&dLVu_rDKe znG1Hr-o}0EGI-SgT$Kmi=l;#Dpe+0@Ip()#i2Jj>|BuD+5PSLFr-k@G{F5NQV_wHY zemh`szq|}P_(EQ%rUnEAEF5Cf7q?PXGKE*^`cAcYh|WuVjFSjrkzyM8QAioFmI5U5 z2ObCyXwj~B;Sz@d#6H-Lo&rTe62m#;<|o+pQqyo6MEdcI!TTFJVPWe)RpyTLRpj?9 z7;bCJF)%RD!NI}FX?r*@G<)fPx7ofsuMv>(o-bkhP$y=CYf^#AJ{IXN?LBH`J@cAJ zq|A5orVrXMGt>D)7BjD3jnVC~FuSuX(^If@k$QF!+4^P7b^XYiWcb(b^0i8o_E}_?_#Ezoe06LP36JR zVK>*{6b*W`njU?{mYjBp=iicBEgA{ zjZ!)-0-uL(FB3?7#^R98J!lcC4a@Fe&S<3hX8(6%mcj*dy*P-+(!hH=BgqgN)Q%%7 z*0I1|m;zgUvrrrQ9Q3nTp>?kKk0(RCzYml6YRDV>+5z?wa56t-faknT!;VB zesje`w#D5Sf%y+{yb0^6!x1vogHVq|JklbiK=Q zgOu;q>)yd!&f$%GJICB~tuJ1JGuW|A(6){a&^~tfJPfS0I+BI3To(Bsli0u;G|?4eB68e3fSG~!ob#M> zFIDlEY;_mReD47u>_cb}&BzEy)g{X1EIy39gy-RiZeK+EjS8&MiWs!;1MeO1?!=@m z1^`9?Zp%GNWo{pxt9qC z=>O)iR2@*O@ai!+~~v`)uta7=Tc~7w0E;rKw0r z;aABy#)fbZ9PJQtuY(>{ZinoJZX@Z(-}M(i7fcu(fJ)=LoTc%S+$5v|5!$s7R8~v` z=zNhL>xKs;@;ur7gTfJk(I<(yY4pg6(XC^#I7XDxjJ!D~jxEla6^T6cvBqyFc;Iiw z_IfeFx#Uc82g~oHu~;8tmZglGcuqhxLy+HmeC+Q;mW~stUpXutl-MoLfOuV$izEQy zxoBsUj8pEE-HQeH7Qiop=gvOn1Mcy`nEq>vPycQ`3YNAVgtp*!CP@K=Y^@;Jfo4&! zB)GL_qb_1dq^+6KDbx}GXq|>|31U2ZE{m{WpY$l=#}U+B1su+EFG*45IknbyM#G~7 z2!#zWRo}?hxIyT)X4^*b>0JouzQX`ikr2J>h;Jr|ed^G=q*NOK(0wgwZ|SrAGjtS$ zIn_A|qMH-9h~}`J7B@qB= z6ibA=U-UxdleDAe6p`gx^I_PGo&Fa~Z~o0ez%&TerdM#4>(Lm9_Co~Ar#fxeFgmPuSU06iSrwW*&Ip$Gm=L1!udaAQ#`xSUs` zHcD#Uo?4#=Akw8IS+Ja&gu;Ay6yxU1a%t19h_Fnddk`=Q!s>^sl{pWow=vq`G!_D) zls@JSxZz8TqyvrgKN(2she~(Q14}cg&j+Hf6_Q!kwB|!+MDp6U#irL za)u6)-U3z}F#L_Jk#NWhRJm12r8&=nk8w~U9yb&hF+D!UcM~>!j31oLT+sF5EiVEz zWoD5;frx#E(Yqy% zuuP#Y{E-1aa2f*FpRY`YC8@E+ZrW%x({`S$zK<`n%ljt`b`6}ir~GItdJi?m2J@uJFyom;vK%}f3iI~P7Z;tWYE|N#wD;l-9V}{z%#do~#L*`6NZ|mMIN^!2* zTxM0$VJ`7v{QI2WOIC5K%ZVWTc@a)(tKiGi*!UxVf8!qL_F!=Qt9uIBkL`JRfL|R3 zp+O-@(l!`Ddrd&24}&`7%Qu^U^Cy=R?pvk3lw)D{>hp8Ga_uJe&TJ=`IWS5zbEY*J zevx=q2t8=A|5N&EUbWXluE~Z=WbiDlPd!`(MCqd5p|FIX1C6}?i{5Rd0a`230^j4q znJ1yJrfy38gde_Y2F9HM1h}8^dZmi=(mEc^% z-(EH9rLnm*hkG+=0!!8Qb4%5P75V>SzI)@%Q_>)QmRnoT%Bz8K;H|Nu9|z>6^}OQ% z5=^F6`pQSlPe_Swdgfn+k9QXoQrdJC=+=kEnRgre@Xw|ROjd7*b*I5=%7*a%{mQjD?uHX;dyn&va?6j+FykYg2 z%Xnr*ZlhF4i7*V*w41N}C7;`Vm3CuBqiI;aQG9j>SQ@}#?K8EP?qi$~`KWF)V*zdv z%RR~AMcp7R!PR+I3ibmtujy-?d|Nc>17q^c8lt#dQcRj@QlU(zY3xMjOu#noovJH5g{ zW&g4vDVq|QRXB_m!N*0z5##GU#m4~(_GWQgF+Q;3B^}_;6I`Q4WqeV)XvneWBa*u& zV-?!&An1Diyyi_De$F~>C59+2#q+byO$us9zld+Jj;#C3pP#Cux=93p?!icBW?5%^ ze-Png+_;D`1HO0CsP-|==p>WNxCYRT?+JZ)9Z7x{wHLR5C7|OAm%i4vc3h2;EVVTu zR*&-d_{?f|i>)V6-uGXg5~^IEysJQx1M}1rwL@}RmEBwaetS#ivI@uqvT9f_mc*MQ zqw#*ImsVJhn5xDo+p?!X_o^m9B%d*Q)z{RANt%u?HWYyAWBvDY3EYk8JVZE!tIHWL z)|M{mx-%9MA!-)H5&VCDqRK6yZ$}CQ7bm=iA_cy#cst+gd`dE^tBIG^VRqnO`!2Y( zpFA1Rz@4RY(?X#+aqA6@b-mX$E1JX9GH|q9ou0~6>NPnQ$ z!C+YRt2tAPo3X4zo`b8p?X}`lherd@Cf)(?nmM5Ec7@>VTUZkyQ(cYaqP25U=UdD2 zus!AN61E{c;tsC7F~^zco^`u$e~(3P!Km|G1L&WCN-e%U_;CjjJRg?Zs%2WM>d1T1 z%mqB`Q}>h&jz|8$Ki8=rfIg)gZ1Yl|S8z2R6@5=kN=GEk3=J$Hv>giVDnd4^0)s5| ziSqA^QvBerjA2i`5e&Iz!X*CM#D^Q-{nns%GQ4iglRKWr`lfUC&*%i=-{M@L0TvSlVNF;RfjwO3on zQR^cEqxXi&w#rH@rRD|{az=KRiO`-Fgp*MuB&CGR)(B3(#kZ(ycuG0X3G*A^Cnfyv z7B`G?{Y83zwfV-LZ}3y4?*;CcZTKsmzUWhb2>64+b_HpjPVX2F0j)g)H;8PhLJ;5h z|4@AKaWWxa1z>{M!3GoYkk9?m4^ZVkB#l;l90Sm??Xch;sKecJHvq67ytbd8L!@X= zE%8yEJc3b?0^CY5zr*;UyMQd@T|YVC%kpVFZuBVsUpf)5j0Vs7*w7I@XwO$ssu9S2_z~F5d(8WRokh)yEkRms8gm~+jlgr>ukvM+8)_jZSW`rXP z(*J7)wZlk;7$?Ny`H8%@z^Zw0bXW@H?q$x`J8u8a6J7Cd?}`7E_?yDX{jOKA-AKK^ zw20ipu*}H2rsD?f4wMn%p1#;kmB-HkyeRLB&bWVr?^A5hbSmDs?Dwp^mo;rEkF8gz z2o{ulvNrqr9+G2W7oTc3if@0!aSDdu{oE=ONH5A#u}Vt5mmF`*2KC`;Y-^?9$FU3a zYCNDp*4~NbK4ssMucuEZQDThxuX$Kt;Le&O7dsg|{x1*u;vzwdkJEf?5jQ8jv=`1akU8~**~ zEg$1TL}?M1a2s=W$M+LX|C#W>a(@ubpTC*N+fTSBdwx?yzf6KC)U@QZ83U)EJaBFO zf@LJ|c6w>L4eKLqm5V6d+j9WKQt%L=bFWHdm7Cr<0h(gg6blq2rR(vG;rebxma`;4Z z6{LS71uz{VB-$;h<6;AR;yLQfX6+iPP9wA)bN?Qvx$i2hS+4x(f~j|WxBwS}xop7( z%K6uq-|qTN1+>s=-ou5^weCvUN#`qNN#>%vex&5ia!`(!y(;Mg1k)2sMW@o(+Wi0s zO{**9-r9kfU0T_I-SYH4C_%16)a2s-?iJGn!lNX8YGKa&%``0{)Ib^o143LvQI-ww>{e7 za!A>*M|rL$O<)Uv&H)x?BMH748M)Q=0=R=HAJVak2mien$#}P!iPU=^na`wh6P5;{ zse(=*pQU~tDloFX_DF-^zCY*Fo_1mmuhang(}XVMg52%(_lkwKVnA0NQLxaPB{x=p z)ia^QYlnWTK{SpdM~1}8s60ZRtmB`b zhS3JODa|}bQZoDSRuKnQ?sU+n^VRXmTOa5O|JWqG!?q>LeuG-7k-4<^0`a4#cQ z5~Y%NdJYiQBFsNlE|VWBc>kwe!36=2mjwDgHm^SmJ8)u-Z&PZQo5rq$O3-kz7l{sl^RSYjnhDYDXWDmPjl%P*2Bsf=|C;jackEx&cny56|`|gl-X}GmX zMZoj(|FV}iZ#HCf8Z_S}yiHg7xV`Okt!GkS?$tn5zZ2WBcY2c)%LxpcsG8z3NczMC z;#gMw*5&|Y9u-^p*&+@X^fPAsC650Ah$2s|A)b5?$E*d(;F{ zWl;6ouG$aVRbLOlywm4-X$axI4jg?Nst-Mg<-By9UT@hP1j~ zJ26w+vZlc4Ye$!2j2KKlaP(Lt+mi#;g3||@r2xvr)n#?0WD&GOX9``2%0IpFgVTe? zxi@J_!nHr1M%)5gB%jpaILhRhdlS(m^Ui$Q_STiD%~s~!hrLNYD%e}a8D%1!iLf?` z>4Q-r__a^1GNJD~g0Z`DN}{bW^jWq0bZ((yje9+w-}F_$-9U-UWjQpA#8zT^8)qj%q0E^5(L zQnii6S3CUP&*5{k;wzK87hPm=p}U&O@J}yq-?lt&H|ZuNiDml*jtwuI5C|KP6q0OC zJN$UyX^#0wWj2JAQyUv=b-B#<>@4j1sG5iawi&heupB}e>$7tVFzpxW`-FC+POq4g zc)~nAESM67=h7eNXHxUNTwK2$Jzg?Uo@;4$k*;and(>rPHSztC|A2L!puCj=I1GnS zjF6Nk_f7$88Dop!!IAy4rIC%#b7QyZp9uvpsC}hzslS!wZ8CVz-O$Hh!}KyufvQGyATtR;22Uid4cID}s)mK1RNb)*zBRhmSiZ^IZU4%8*BM;@uEJo=6<29*&f&dw z%}wBqtGNQbCY_&wv8rzw%RkzWT?yzIV}BK@oHX)F|47EQ?wf*1bXW7Gps*Bs;?J;| zL`;z#8{rWhF;@Mpz%J>0oY=Y&A2~*5^;_!s%+gIEIe1i|QDd4l^5?lXPC1y37gd`$ zRaZ;#qYrt#YQC&yIvYi5^Q%RV>E-_7un0*DAw*j`LVV#T+nJ&M(#@lIItInu(Rqs3 z6Yj{V(g&{p&!PBp9bSm9B?=oKHFD4;aooQR@#DqJ?9{fQrI`{lr`n> z8vqpKu+R9`!r{()-TXe?PT7D;a3c71icxEkDAzXG7q>`)`3DVK$)kgH@Qod>Y~p?upYpfcf& z+k3(`*x>>*c8v)AsavHFOAR%M5Yig#5VB;frFd!-#!|);0C@70w8}=-;$=nZ?67kt zaXu?a@$MvG{LoQxGHUp%1l&ogHZXxEpPo1;W1ZX-`%|+e@^yH~VC`AZ^vV>=08f`HDW17`kWrT#2gSa zcAC3yK(FI{VLsL4Oq@$NwuNw49$3416K9KFy>e?!-FvpKcU;eHA8x?ErEV@fw(W}K zdd^#;)8=5%aFC+lI>*+o#2&^Me4rC!BG*27hlc0Mh2#-;b8iQgC^ltFJ6TNVE$8+9 zmUb@evd$FcdXhAG%}ot0Az&_t%fu3|MXsG5&s|8pH)lDb)LFZFstF`S4VEC!yF50y ziNC`$MjTk%XhLq!lvRIr)yQ1>t7`WKYOD>aVKcu@(s&4KvG>(j5&i%OqN+&=mT$lr zH?-d6b%jcC?wDOYt79w1HxwgvwKn4N(pUO4j1pk(s^p|b)A;N2+jtLL!FNM=u6#sn zAHe=$ubV*xT!ia8D$++G%{Xu5(ebK3$560=QCGK@-YxrJU|{ydS}s{6FS)!{Z~Rlb zV-Cxr^|-I=FR9ns?N))91H~Dc^YA&s>#{~3#uAF@hwK~7n<$D6`|p_65q zE)MR4A8!17OkY2ISGfBDkbT1?E(`VFgO1CVE!N7z*{Hcl@Y#1xKEq>*jSVL~Jupe`6G*a1nL<8VR;H6{K&CVeG;c%CHlIhct{NC-=PzLgK*q<7~{qv_>G%bAO z)-&q8wFkAawIWe7>~rVET!({w%!>{N$wK<+O#+abCxQE}0I?&S&-cgAQkBNmZ>Pe# z0dGBe08-)(l~2d%J+4?!D}oLX2m>O{s;yewdKoh@pNAc(#_k;&+@8_x_n%h8kva>f zE2#HJJmD|P35 z)#a@0-RpgyZMV442E+G9w@*b*9oN<(p0i8;kJk|yjE;*?5X?h4;u@b69-4-o<@XLO;HwY=qW}B z?>z}!7?w6U#C?0eAX|RDj=z%JX z)O~J4hDRp8V3jqSZHpG?v$dVCgzW{K5*{8rfO}t7_P)QLki=(Z-2Xt*n5pc&gb~i; zQ@+)kTZD!Ls+1Zb#xv4;Uy*DkUzRtlP0KcPtJlevt{$zwiX7#P@nOTLJ;K?>o0A7A z9rJ^40H^%TJmAw)@;$L?b9{Of)n0nsnn3#A!ZEH)F^L(jc>Y8>NckewRUR0zZTr@L9u%cdy@S!_nV`8^JS4QypF+ zP4*bSbHRUA??!5CxD7Aq*wh0U+ihXgugDBbBTIi4RFYrJ`O|+-J4clLl(X#++wiA{ zIjeLwzAxXDQ91Qh?bJ_3@_|F(L3}OYe)~nCAIxFdg@a;L`&mifA1j*~;gT;ufxStJ z-@XhX0TSh_=nzuOTtJWDj2(wkNuxs_&gahM<3{CFKn`!Rg`(Qm-1yV7H8_L1yKS=e zW~>FhapX8}#%`k%<}YQtqH8JQ6wT8vQtfE4%wT z_fzPZ0C=qUP?+(Qzfx|YlH=ql)J4OZh|xH*JiO2(IW&+ z8Mb>pfXl4+sW)52Is=*-^rHSr+|BdK>P}wFTqJ8! z&i;4KMqa%RHwANLN3t9CIbnMxsoQJ2oLsj^ zj7-sK9ffi2>etQ>;K3gZxxO=3ni?Bwns;Z8oL$O$ix~;9!TTOJ!pHK^99sn=UQ7$0 zwBwhg4GXk7@!?rE*(SjV0Z71@r*yfvu_x;P=FukF!Hj-jGxWQ&efbv24BYDA7>wX!; zX$++k+LIkur<%@LJFJF$F8e`(9PJr9At#jHNgm!-Hke0$@3d>wit>P_*?ib=_ zZA%eMes{hnZ_0S2dTIjC8rijU8#f=Y13|Kz&snmUp*GYc~K7>6)wE z-`bAk>7JNC=yS@_Q~v4@ehLf!Srs?Mq1E`q{gtFRDB6Jwt>2a~D)A?78Lf|srRT=l z$HhOS+*93xo`=$$e!rgvRJx~lT3_}WYOb;RvnurWepr+*W2o8i^1_@FLU1A2Ugf6n z%DR{u6b(0}hs8D93_fFpM2`Z3_Mnt|?ebq(PotuPw)%Ij{>`9>^$QJ6MmFk-&BUmk zWp#_R8VyZ*X$=m2#Th}-UW?)}qsLf}_F5lUoCf?@?&QZ-)X*bZ0(r*MdMB|@w9}2? zdcDuRo!kZ%Zp!6ZpFhe191OS0YiEyTmpR5`MpeX;MlrWLYE4wxZ1iaA$o6E*Et2&= zYB1%QHV9? z$=(C@J5dUNZ)Vlu7o=-cO6K!njTNjJR;6*x-ApXh+&aLcE1-RM6-N`CXX zDtff>Q8S*QdG2KZRxB2Kq+W&l%f1hxO?l++nG-03 z2m}o^XauVFrG>#4f)U~f^6b4@29PW%D0&4o;B*CtIWyo-*xDKYCOZ)rv^hhnaUHu7a9T&@866Hv8D1K=MkEjzQaM%fXJ|neF9g!uOFgnz0MVig#*yq%G zk5c~ILhVVp_p29F0*`gnViJ>Egfy=MY?Q@MWkjOeht6sE!50}t|9G^nRTZ2~Dn(Pa zNg}cg6j4QSZ-|2(%XJk|577G7q}gu1>oVUt6wuVT4pQ%T9%;bUX~(qeBM%oSJXdDu z5tkO+PcvnI`Y+w>hfse_nt=QGLq0M1lVuH*^mg#+O0jIYP4#|fEe6-5A@g~+btqF7 zYe%^^{0!bRMAZn+vj|wFKaEQKsiKppoCW&qX3Qr%(L4W4m+(|)@2)z9J1biM8ACS3 z-`q*h5}$WAxZrx?>`H6&H<6gpm^ayPsDdi9`SCSA7TaC~W!|63(u7;_f+-fx3x0IG zRJImhFa1u1eC%Z7P8ZyYrwR==m^1r;)2^o4)B7s?Do2r8@GJT)Co9q*B|I~1?=dXW z-e(RLH7zA=XwswU9S>3*q6Gdj|4~^&MWHVXGmD)X|~3OCL5$FJh1^ zF-YJ)v!p|~7uVs($X474g+II&`=6#jMPKrRCp+*0qxGXpU099Q)rR?YjOsW`G;v|! z?#%I5=5D9ww*9WnelV?cb=RNnEHELWQ-&39v2``BplP&ifDqtM2GB^oLs|Hgy^*jt#)}{o&%P`+>GvC!^f%d$ z%kLE1GpA)Q@Pc=%hYpg?_h(P#D?c0eW)sM_cM#%J@WW%_WL@Ue{pLJ;LT^*1^iB3r z3-9YnV9oPY? zurgT&8{{Z8Cz^W2Ld5{I`OZYyU&V2aYq)F!vDvn=u7-Bm6&Kmr&wztYmLE z?Pe?Ngh4Og(q_+tQ%3!y|60McW{yJ(*|F}c*TtbkLyykQMg_pvmucCu(e3w|!0B09 z@M9@5c+nb}?plg8xdzQ6hF2zp+3Uh`cUJj8vd8N(@GYm~)Hm6DY8fcv)6<7NYK^sZ zH|-i1w9aXzk0PuRO$lJ6if?m$N!Pf@H)RkYnDeV>>#7tEe6GfkqgzmTQ7B_t_AgQn z{J(^6Ie}x^*Y<>Oc;rE91Y6s)?Y|Mg`SAYskVt9gcm=5B`i8MLL@jE(G>DF)vl(tF)){H_3%u z(&)EZ7JpJ0>D0pOQOv3kDEbiZ5L7_D0(hv-o%${gjdpMZX_)J3!Rc;WN`^*#&$U0s zG4?tY?DRVo#eKay)nJeQcFPQstwSgOiTk?f^zRvb@?3t1ihKIO(CE9CKNN>~j6oEO zVbAw6!U^or)Q(juX0)=KGOQo>R+n?AvfU0jC@67wqmi=MN@mq9;!b6^t z2pHkZkJj$GyY5k1_8(x8vM1+&Q$ed$#HRw!`3M4?v_c^XjXDQLR+v!RW zq{#=qQNn}WcNzSt$?H7pln-n~eHwLK$P*Na>ovOyVb_8W_!J)vu(hSEac9V=w&U`rS^UiMzs#o~*P4@M>v}~cI_Tzy*!2=;%*k5e4pc;_F;z!!zlxgVc^zm2TRb@-CVYJW^}ikLyrc40JJ{G06xqf zV9?q9c3)ddc)c^lo zA~KXqGvqSl5*tHq6S)>XLMWNZWymF?$mEi{+!vpnmU5}wD#^7~BbTr`t{=CM7?Xrz z3AyBZ`aORC?Vp`<-p|+j^}M`x-rGqf14sY=yY6B@?a%AIPQzGQ7Q#7hiPm#S4(+FT zQ-;;4Zr_-HH4}-}upD;rZ5ZuP$myWj<=+COrEt8wrN?Da^%NdputOm#DQ|k?QMa+L z8GaN(Qt+?+G_W_t-_vA=KkGJja4SPfUG(pg^Ccn_Ih9eOt{pr?gl0YpSKf*Bn8A32 z$k6OAyK@?6%Q9?l=;y)hUPpMu$s|RoC(@G}YlKOsw_Y+bYxf*tU*kubU073>%yea{ zGBr{4opTskojcCYND!c=5)lTYDPR^bhtbzLyVFGmv>^LGqshknV~%gqU~@UPDWKiG zSo2&pPZf_kJzaJYd7ug##%xNZyWzKb``nXr+M1;|Nsp>6I2U7A&T)^+~ z{&JPu-#ngvMEMXAT%Uj+K`PwlHmoX&a#y5xNNY>o@jp0 zct4T|W`T2<-;gJ%WqLe4!$s%3Ss8{>oo`nb9XX^zDf;Bzgy;zZFV7LT6MK(u^V2g({H-ff01Ly%vkoW;KCZFX=F-+4<$r{+$qdYzBC@ zN6mQ3o?;e~GEsKj-2+~lYsp{mj_~;~4OWqwTbioP#8ekpD9~WH={?F*P1HPiz_gFq zPB;TByu--+^v5I;7x&mUJ0nnOFj{86sOrwwAxvNt08#yyE<%njN}=1YjbPy`N`s}* zO&^ylpbu9`k_`H?=?%LSUQ15CHZ57_4flh&?y8XR>ia~kSzYb?>Dcg$h(%V=3x zmuvxmYDq+dzp>-6Zt75gVqW-H1v#{cJt&8c{AAA2Gv7pimj_SAt3_o55%!r@J_WS3=n)@Wpbcfi;;LwAvsO_Ux=+v@D_6Q&uhM@DEwlwSaecHMcn z{&z9054tF)#>}PcS1QdhPiNTNE14PJ+?3P~N7|nkA%sB{sGB56(|Y(WY|v@2men_H zgwIFVW_fNp5F2Q*A({g-8~0u?GBsjt#PTFf%bqWbRLe@}()%QnKg?hrK|&NrI|_{3 zcM~iG4-%=+)M-Lbm|Yh_hC7Quqn$?>hCtAco8H7`g0FabMj-yB0T3XlyNuy`uXh!J z>#9l3W^`evlw%qwikHI>m0qK__8bGoo}A?S)xpRdCvG1JwTHqFBQrDnU-jrtJTlC`lH+$TbRUQi($C=qn|q^k&Ez&C>_gxDoY8<(nkSpcQY&&0erh7z@g zG{x;2`=30Z6!Kp%IrPD&Y4lc`y_V6I%lvB0fzveGhScDHItYHe!0Cp_IgEm6wJs{D zmw*=ivRE`udd*L>GkWkrrE`f$)r3S*X{c&0G}0!Ak7ZV2~Y!ZR#M3gEB;4F)Z=pKW_K$*ow={n z9?wD2dL%?*@pL~dJ??o?#CBxQzjlq0FX_|~BeG@pt5Y4t9s8<#?r)8Ih^naid;wtb zkGtya7W(#?#rhpIG(0h~B?DesEW$el^i79vM@fzkYWlZUW&dko<8POKb-ubG+9>(Q z0Kpx&oB$#SXBAl;d9}FWLh<+M>-&Rp=s9R{ z!5^li-SND&8t8f*7D4;+4r$&J@2~~?_zn>+3SWI7xOLMVNFY%cMK!CJ~9w8%_ul4l!ic zRmSFi0g9_|MJI+)O3p#;#@3-*8h1=NfN@4Pi0w-QrO};)?+{sFY8Ga`9+8l;xBm1R;kOM_U36jBwG`e*A z&--u^=Z`lS23TZ?e^<`Al36j`!eN~mxMlWGceYpx(6V2|(XvkR9b4!kl*{9Iv2jp* z5oU8?jMM3MP?qnW*vJB0;!CgRswYdoxwiyR$DhEE@sPohhIvBEDuo*d1kGiqITKCF1gstsMa zS8064|5X@uyqbwA*Q0-T=pbJ6{oC8cp0O4?l+$>Np9VP|da={)=6F9hGQ_!KKl4ra z|2pc*$yFNct;d%=D1*#(5{_%({95NQ9iF=nAJ`qQ-oCzHyMqq$@m#!nFvN2NC-(rc6n2g_2zYynvJ**$ zifqh({3L3VJo*Wx&k}!h+$;Fyrxkh96H^sMR7XL8GOj$Zldv9KofIsE(iUz^2tx!! zsfT;8G8pj#&u5rEbTMfXX^Cnh8!=*NG&PY21Ri9iRQ2aEGSzn043*ddpv%tJK0@nn!s?3CE6)Q!W!oyqiq^QQRJmtrKhHEaB#kUY5kzGnPl#N8@ zFxgEsI|D50QPOfzhLBT|0(!oQVXL6UzO$sn76JCQgl@US)Y;9ZsgSESAqmoX&q1pB2fC04%XahLu^o42& z$mu3X!~dA#pG?W2*Q=JfXB4Ky;lN-fjc@{`eM}4>+tac(E@E!?U5X$gzTUs(QLfB` z^B%Uu-+4g1H+afLnPr)XL=U;L%ANuF9;}qBBi2hC#89s5MI8!uh%fS3Ou|S1s{sfklyIVDl); zvSufcm2x_z=uf`zEt7i!$){en5^R`6YSzuyb|v+$`7@ZBsYb8ZnUmWFLQ=-5${jYm zfx=9Yjy29PjXYrNeI6jEeE)R?-M3vHU3L^g=u2I(Ng@R0<$G5%!2+{649Vp`>7zjH zF|8)GbS-I|pXtoQcyPo!HhJKPT1oLiP50uX25AP9gFg};ODEqMa){#iAh7O~ z>>{l8)5jXWaXLhbMd-b^eVq)Xm@;geblG)c(Hz7Oni1~!k9g6q>7a856T?@xLhG?5 zUsz9>J>S*ThUoQCJC;-*$ECf=L$;-TxV50x&vz<{)5hMEDN(QxRvNO#@3|g>FZFR{ z@th9SXO&GLNNYuZetO8Gahw16aP0D~OwC}#`$Ke=nmY-Y_eAPhvgEUsY#Hu>`vlFB z?p8}Oh%`x;?mDM4F#0`hwMllBoH?<*xa}V%AF>xZK$SG493Z`4KT4{)c{S?Nq7aG7 zo?S$qqt(_%(Cl8FBO)041IL-+I#B~3W!FGvwr%JWf_cl-GkDDp@4dqvi4E$p_^0xB|YD@%wLi@#!cttwcXeTr+(pT0J00#@EI zvurk6{1G=(uy*KJR8C(Ee->SHLsuT1GMop^@5h?!PZ=b-sw>ecK@_r;eUUpwA=M!s-7W&O}??l{9Q)Y$aaSd?zT3*8FVTmJC%v z1|3z6(K5*fo8OfcKa~2r8CC7~<1hJ4#~3m|nau)tHa)73t2146LnujMm2@s zCaVI}nV7{;Y-Cho4&=?NhVlqD?k=7X6dmys1o;Mber8E>4Q z<-zf9$Mb&5atoU_U=vO_CH1f3tuYzDhl3`4G}rkX!mz_jPpKnTNu= z)g~3?@y8xNSG2-gtz#buvFqOOKxvuPsa$DlaisRy+pn*B^ScO?=p4{F|2}H&C|^}T z6b{Stw$-@dpfqp(diurXY)kW9eYf4dn_+{cG$s>IFX)_nLF-8L+Q#PV>>Z@f-j4!l z8Lp8cTYV}+1#@Em%Bvl z;HVJWj3S3+J8fFwX+;BEB)4Hkrq?zck#+a&ba#a`#1|BsE0s?wh_8D>HHe7zY~m2L z;FHGZI?lJd6uzdYyd9)40{Pa7V*uMSV}17r0IkWIu2aK7z5u%>YsU0Yd7B~-lKyhp zZ&v)X$>|Re!G*S+BPD!Ma__A_MhfE@GB&6)Cbu?TmNy@~)>LHk^E#r4S!9Sxau828 z3fdO-=F(4YbR4mSk=%`?ep9tuaR zQO8mP8D3;vJgbVvpBmxVzU_Tz%lRVRSGVx3LV*k_NwwY>)lqm$OY->GL#Ky4hWrO# zNC#02U*4qIKh17_l(y=dXVPiIHKC1-Nd#oN;)J^YiwJz0=^->{n=Pv3^DSR7TX$oA zeOd-uMFANuykI@@A3z zWBsxuRi4xMbq^jxfr*L?@8>C98Cs_N$zYz;hG@A3vkuzZPu>xF=I{4fhU*`8Qd+iF zq?+z4s_&Qt>=WM1>a--^m{rK%iZVkuf&%)6b+5km;_Pf7M&u%$c4!-};3tj4IY^FX zOWh?8C(`HdySenH{yK8T0axzbPLM>QhGIey8`IcX7c8&NWT%JBp=2rHOliyFBu3~K zGM^ZJwS8c}Y$AS*Wls0v4HZJV#H4f_P!;%OX?D%G_SakX^mi{B>91m@@{_6#Sm0GI zuK8*l8|s}z#=^2PQf;3J@TG!8m@k(&pO$3P3?_p2kvhe-jl+3yJ7sP_7QbrkVLo{# zWT#}V*F~JPvfa(o4{KRE&Pu5by<1ldt2U8fbB&kZFQ%Wu9-j?9)(w~&NlszK;#yVMTwZ7zNQ0%i z2I2gM<2@;Gb=L4^LWIhg&y40ErJm+$a>y`}BGKy=vbSZp6#d=*?4rQF$5|_P1+?bS za2|YU{Vn|7;;w1+C5Ig`)pq0OtlObnJn=ZcC(s4c;&req&rj;(Y(E#TAjf96%&NOv zwd@r4kY9UhM@N4|pQ;&#!+#z(gGdGg8f{Ds>asEOnRHX-ig;JiPU+ZWdGKD`==UeP z%?N3xehBN-RuiI`iL-6#NT zlv#w)EPCayWc86Q^)~N!u(^dV0s7qmAG1I?N$3wL7`upY8ZlX7)9Ijh|rg)YgcT zyp{`xYSBxoUo<&m5vSKD~gxh`fcUO?# zp64bH2Kg!vOX%koR{~B>z^Tl>$`MrTW!M_&wQ>K&>kVpgn6JTLkxT85ZodWp&Zfz8 r(7x--p|}2a4Ah$~;qo)tjK9Iib~{M_NQeFunB%Oay~T60%ZdL3z~b8* literal 0 HcmV?d00001 diff --git a/material_maker/doc/images/node_simple_sdf_shapes_sdkite.png b/material_maker/doc/images/node_simple_sdf_shapes_sdkite.png new file mode 100644 index 0000000000000000000000000000000000000000..96bf6e33a428558b2f04fad0674b47671a40b5ad GIT binary patch literal 18007 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 eX8ZxZcH?&(w4lqhQHlis0000