From 3729889905a5e838cb262aee791c859c96026527 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Wed, 2 Mar 2022 18:11:10 +0100 Subject: [PATCH] Update external libraries. --- libs/loaders/rhino3dm.wasm | Bin 2803968 -> 2806797 bytes libs/three.min.js | 2 +- libs/three_loaders/SVGLoader.js | 19 +++++++++++++------ package.json | 6 +++--- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/libs/loaders/rhino3dm.wasm b/libs/loaders/rhino3dm.wasm index fbbf481911e526f2e2689146493eecc86db319fb..7260ff486675e6754d1a9107cd7bd086be89bfc1 100644 GIT binary patch delta 848831 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
  • &)&5Q+bpOTGPr|! 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ⴣ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 I8+dyB9|i2&RR910 delta 846832 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 {gh&_6*jos@VD<&iVi(M~ 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

    {aUU4LC_yr2;pKqJg{Oa|Gs%<^Xt+ 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%0Aa%h;D`f+XW?7HgUtsKgKW$S1(n3& z+$>Y{!2hVb(I$KUqgtkqiNWHG%pM9^oFPS|r+q3x`senkgcXl&-d`mpK=$7~{cBD+|;1g!_;F*u#f@ zv*zo{eeFD;@kAaSBmRi4hMxN)y6EfI)h&)@+_KZ|SQ|3}{9b?^%284|1hdB0NgjI` zl?foXe*5#(lmBIsJ_E4zwN{r5Q0?(Z7^pf06W5?~BXPcSBWOt+MY0##x>McA*h1NGN zZh}1yErG=f#0I|woO2LzE*PX5_AVfYTp=`6X+m=sVCFB(f?W$%(~t!~Cgf$BmfPOO zHc{k}8Y>4I2IC27L5TLk9N~n9RulvRqcCVG(Y$u&0C&7l?>Yx}7mm>q1vDgZ=R_gXcaBgR%ert$ogvYue>N-5ihLHX(Mkl?c zYIcL-#MuU2?y%Np;kZ2UNg#qJV5R`}dcwXV(HoSzHKwJr4H9q|og9D_-jwXLut`{L z*lR2_08yj27C zTp_F<#;Y(biXOx6zuxiuNuu{K2>P@1f??`u zO#AV})m@c`k^>3qFXBX`7M-R0562GMA-#XNx+5LY(7hpQDAcxClwb*VInB@lB|`Z! zf`^hRQpXV}&`dpQglbyrDDE20^U$%UbSE)UaSr$;`ktkK9D(hHDLQT>gs|_kb(4`0 z!ti`yB-A{3&Kju}M)J6!ZnXZ&(r3m(Ildx`E`))5IHnYZod`aSg_V&H2)jT_N2%MZ zz1x;AcSlQO2?DusLfe^`V8dpD9^&&=4dX`>$1RWX>TGJSrQFpgW`;Z;0)sqkcfH)1O-OLW5R2B8ZlrZEO-rHBEFdZ82hj#W*lGv|+m)y`_YeJliQyC*Aw2ZE`P zCXW6DT;U~+Q%kd;nk2~+%kFO|UqVLf-aNAX3?UVy(})WUpht~Yv8>K?lIgacOs9@l zRSak;*Vw?;yQ@Nc14e+wwFfpJi^;w`h>v>EArm_xW z(*lFMjnS)s`1vFQotFx8UxdsHyPoT(sM*OSACs9rOh{KX0I_1`#9;ikh5fQuU!J1! zQU-rQF_8JL0W^K8x*=sd13@6U2GHfHs!K}V7Q$3=O`sR20n=6nf?RM7OnasQ)3~jK z2|E&32P$emUES1=eZ63>eZ%aI;B}Elxsm8&Mv%2maRib0&sA%(k7LVk)suYjQb5%b)`pr|r zS{|(51h=m?2O+!nosD6GOL{M}-^n)Ur2UT7g}c;#hr$OIZ>{IUZtkqUXTD0Q`L7Ze zO`4DCEtE6WM;}Q@0AoJA01B0VmD&^!S-YLhgRriKZ*r7^DnMsWvHK2_WJLa#^&n(= z)Izl%2laa|QpX$oANJk@x{7Lx8^0xe&Lk6(KzeRMO9%;7dK;<*yVyHVpQ1j?Q=jko zGyy@1l%VKAqy!X=iWn3jDkUfiNDER7(t@G}MGcA)1>yhO`^?Opo1mg^`Cs3+)`!d7 z*{Aoj&u{Ouk5!i6sCqC9zQB)z(8z^aQ>^XN7i#C|yl8sS?da+~vTh-i5T{G?Rqbs5 z^Z}ZTPmE8J&%VmR-+EQ+n)wxUDlsl{Y0qNrfgkf=7vos6j4RjLM?zc?PU4Ee<=B{Z z%Dc+79f=d$7zYYzykNFk%hCjS#oV7^HRRwG*zgncl z2yEOqK=M2rDZQ_0`K^z#EjGOR7CdJhZ4K=b>mO|z#D&X?U(;@EiNy+**07*ZcVK-6 zkAZqakq=H@<%PG#TJiB%XQWZCCCQxEwH{ecbg+P@iumB`S}W2QrZXJpN`^1- zWlIT5TR^@|2h>m7=lJB*CMiwH9_aqp!Ef)8Z5L|~q@!8EkZ=*LJS>tLwQ{j`iGG-b z0vv*1o9s8V*1nQ;^6WQoP$=0bOW)AmZ2$?Z-p-J~=p7N}m>nUI!1V2INT9i&Xkzv+ z2{QZ17_2-z@oO$SNa}NGth@}3MUYx5+zH~s4{J-o=D`l7+NdSL4f|p>bg0NxUReSC zq+PP8LQD14=F4X)wC1qpnxlk+yoUIVvEX#j^>iPGn$Vaa_f=?lO>F%PC|M9=3qD@< zyD2=1t*})sLF-cJ+d%HtwI_n6TwlN(1JnX6|-X$ z%e&r&2FKAvS@yOzICceteG!P`H-1c%$KTen1kS1^l>gDfm|U%wY4@N*W-Qa5^^Glj zqUN2Zvw{~@CV{qGFV&BQ_E7r7oj$hTK$m!NLOO292sW&4#{cbaLpt<(wv$b$OX&Hy*- z6dHntq9ON^tXQdyB&#jq2nQUO!S*4Q+Q2Z3G@rb1OS8nsKN3_LOmU~Fa1X(0D(v1) zQ~9Z>KCZ+mX@WFXY0W7fGI!zyhXB3o5RAt|;M!H%6%jQ_IT4r$%U5A394S9vrFG6a z+8X!%03_nte?LF+cTk?COg!} zXUmu0(c%Dlz5R~XJ#kVCv;ds|2|PpEggeNnceTz~v3kF&wT*R2+#z9?>-HGwxVJa$ zT~?{x_^#Ho>#OSIT@2jLh7DMzZp-6Kz<>95Ve7@9A)uFiS8G>MKX}m(7!ceKWvjJe z1!%&EQ#K(iaRl42QcZH%<~?91h!S(kD8P(@QOc|+HScM?U?(9582BkVYPvg0iHc$` zG8ooiHe(>O{(zMUXbkxVCKn96FH+*9hX0Fj%hE2d~iMwsS zEEg}mt=1pYa?4t@ z6DsrlS{zL=o|>;?P0}mZY5g70=-G9+?KM{JU#I4byP^<7Idd)CDJqa&s%5(mw3d;m zB_^StCql!DMz~@JS8g0*DfY7;Xu~ovsKMh=_RH1rs*1Fi zkm6=whd640^`9ksZvZHdl}&EY@(XNR=jb87xdHyX37TG*sKSzug!v?eGXv1hdGgy0 z+RzryP(x8td?r-^rXv6X!w~=&a4cE6Itto=8?_XGQ&To-=M>B#84M>!w)7Ake-X=g ztpGAXp03K9p&l8zNo%Wmq*m?H)FYVCPUAom+UZYRrn0_CK>$56YLnKEfQ8pLK@Al( zP1&raH)&i`Ib^fep2GcmGtSa`@GLWZqV-M>C$3bRQOdK5!WS+uqk0C;zim z%a0ldjs=y7kR!Kh&AQSWN;P<^6`MNcHI*bxZW>Z&MYAu~GR*N~TebU8>btjTNy@H% zz<(32yQ77|31PMOPuLFuQlp%xvgNMuH@m}IJ1_2fpsk%G z`-W2r1SmP~vg3BGe*s5;<2Ve$aDvzIw+xUvaS+tDWV9og$K35&8l*AH5i^qpH!sEE zCQt}tapAz#J`es~&}W|UZK2HAp|x{|DLF-$5j)V43*@XFT59})R(NsCN)M|#I&$p} z?H{m4(e)!pOn1oxA8Fsmsb>bFZGAuac{Pt3ZKu{%J@t|8GridYS7l37!^+EcLe8No z>AMN-;_Dau58U;Ka>`CEF9{P}4@XV$JRjkkCh>f$Uup6Upvn<}NrG#%rMt)ps(Rxwa1QVtkzR?gP zj=*0;MD6Q$Yk4j09e^^}x)Og0=U4f15OR#5l5gLG`L=lh3 z7PJ@pC|c`b5~EOlR09o2Y*;?|zovBSeyvl|))cTDE@TqoW@CX|v|sB%%hP@wXU53r zPqe~*YUS}W3*rt>tIz`4>X8aQfj4u41cwp`Ifr%(a+m-51TFEb{N@uaH3b|ge)GB3O!hpW_4Sr7eeeJ-$w78o{~2@?w#u~6wKPE$qWAzeX374a zW95c+{O3TK_Q)}xLu|K4Zu%TegICbWZ=y{3LJP$2r>X+2!(S{c#Q2{5g*J^CmYOf1 zS%BY|TJ2siDMhsnkB7ni{&K{&2fzjRM(x(u;u_urj&)Xpt?;+vsm<(6VlnLk1*lF| z*`^%idQ>0OT6fx=qOJAe78|V<{(cw%NAnybl)T>=ds4uPdW=^sNC2=;R(zvnXYHlPVaS{gOuJKXAcq+eD7$bQLrJ9n zSK8l=+Uf}NpkdD68DT!ZlT=6E{7Nfe*E;38l3joN3WFA~4x1~6F%BP!izDzbj=~Hb0U!}Am^!1>Lg&l<{yGMeUjXMNNb;t4G|?L@f-A!l8s3%uqxAn z05z>bnf{we@YJiM!PUuJ>?93pW~2v3b&01rvz?G zt8sR_8)t9h#;N}Xmz(#>^lz~Y?U6mc)ly0SxmaHQtu~yLNcPo5wh6;SbbF+JI5JH} z)M>FejI}=$nVhg~r-iMox6H6_+bR3iX?Mi1HWBWS{t^abaOtEgH21c!bm>2=-GR7w zAIAL?D`>P6R31O9wTQBz9+~@{_HTrp_nkJ%JLSpDsASpud+jz9^u_PB{7g2Y!)7;v z=B(IM8dTR{apt@4wN3%D;RUpc)FB}6A@v^I&gP**%mhLWI)a*Sm$x1Pj66lA)}*Jw zdP>$0SfgK%{eA$pxKLj9gEkd@BYXQ3AiT?Z{E>#1LR}uqO-t8A~RW^*W3)ru z%Z-Mla`P2JVvwzJqtQ{UfLFWI8-@G5Tpzi&3v7H=o)ON4i;{o)S?g{n6{AM5?OrTt90WWdk0k@0_ttUk->^Hun-Ya% zfDr5sY&@O$i`FZ7p<$VEK>8GjmPKev?UOTq!Kz*%-~0uF+I{k8qRM2m6WT)&pX8%v z%jJv{+J%5s4xP}ph&3!gLqQB&brL_Hb#y z3Rnpu(!_-v{DlX}pCg$u(gXUu92g5AHDE%n<%NEccr|;2V}cr!UK;SuqgY||pfaai z$H`D}P#A1t9GdtvRA63C6S$TkuxMOFgh3Hk`NcKOIU!;PVMSX7r0k#@$A5|4+at{| zk#-XYBo>bI!r$q3j>NTj1I9cQGHza}b)1gsHxEFG(*UZHk#y2h#iV81K6+EwxOq6Z zE|ROlL}DAR2VqirAfBpB%FLXSyY=9YqMZyANjI~fY6caeo0Um`3KomTpj7JYRNT!L zutKs9L=y@IHRr|+#&VPYgp2t_G$Z!;d7iwvmu3V&>mD?b+tWmL7N8y;q1GWS)n2cZbqU+)3tEH4O57r%bf^wq7 z+4;X;2nc~7A4da886_?waY9{`Xq&V+#Uybbn$Y?}kj1h?v^Xn)9zyma3Q4U3Uf6oY z33XDmNbW|@$I()QSk|zt>r0TFF&;qeT;g&NI1M-q8GchyaTG=DJ&4`;S7L`#?C`l@ zL!8(^VASz@l+23}mvoxJ8ZcNjQm6&2>qsQMTWft&P3-RghmqwmqDTH8iIAj;Gn(MJ zXWF^2G!kcy6?u%jS`*2T`Z+HRUJht-VumWbh%jirN-y0LM(u zMZCzlB>%JHK{JDRvq(I5huW%v;l(0*QWLErP;NgITk?g-jiKJ~Q$J0T*9h^?sO2d% zfI(FYkrPS2^tPf`7i(ZGah)y(rQ+m_{4vI{ZkfCHtBr*KhcH?CZgS!Pa2%)^s>)Ik z$Ou))$3JmGny|8mLSabY(RUP%1c|&?n0r(pSrjYU=01v!MlB$UG#-UCiWFAEy5p(< z#tn(Zz2>A(`Eeb&HCEi;iaUds5Fc0CueC%|Ba{Vl;0x_2?~D^Srtm9~P#H(5kvo`Y z(|<1=NOs9D_K_Wj2Ed$Y-zmsJASg7h~D_QrU@J$kqkbOc6IAi`6Nj zFH8r8rHWhO_>WXk2FGS;;%fZdn}#NQMD9xy=~Od)F186fm6&vqruvU#Q$gh01uihK*EA_ND^knv$Ey$sDW zG8zM)N=Bob<_w1CBXU)yNTzc8=F&)1vkN9(L{Cfu<{-%ps}L{Kw1RkH-K%#Nx_G?2 zJWGs1uDi0t0Q_VHR7xRzJ2)UVHBnF$O=vJEOvtJmGMX0B4EOT8@jjlQJOEJ&3|Gw8 z={z&BGV+pwsf`!K&o6SN6{*r902CvCni{^i0b$n>Oc8FU!8O`gT1R5+Srkitv2a!)X+Q`tXY3qCN>Q+sK(ozDmw9!pDx_3MDq!&7q~Y8= zn$F&V7^^Xa^{cC2;IPqH-eQ`Ic11KRNQ8tn1o8q}z-Tv$pqb6w0svU-kyym2ukk~B zZG_D&L{OIyw-7<&1|NV;otOY}5fgF~iisbJ2_1OFXM|fZ>81)rl`ETzZ0`)Yzqv@q z&j}Q*P@#^fp(P)s=k;=Z)4lOcaQ85rn?VJkdXJG;wGa1q=b06LbIqxUAy+C(Q_=h`EL)Kw%()F<=TZ0a~6U zNE-*Pl1>45h8(JpURtm5 z%n;z5K}En)u5zMlCfIy{8PLTO&JRw!1yS#DqNHL6jsaDkB*(WBUDMuZLvR6Wm?lokIAjYg_yoItxqw1BXdP3_+j}?OaOyHvnFJE zznmxX zAL#@`y@uFt>#hUXatcL&F&+E5fi!+fmiOn2f22c{$|(>cX{As86nxK9ZADJsBg!%@ zly1GG!dBwF0b>yQ$T)Ttw}C1SfL!&-w+6>~v8wpU76s}=cf;ikZAB)ftQ>t->8G?6 zNvPKRwjxh?qKwdGM@p#L-nOD?lV9*i35CY!fa+2jX-P#Ch)ba*bxncj?fWH9&MXjl z^t%SX9icTfAs^KPS7L%60o$%zKto}QZ$r_ABFqV6Y#Xpv(C)}76uos-J+Sx4daS&? zP-HYmlaQ7xv3o8JD7aP75seVuJ#s;z7@QFdsC1n|gT%EH9ea+#7G+H4<=J?=P{VRd z2OOY*sGB|OefIic{Hpd-o?PAzd-5K+vz<8OV!Ck8B}9LqSKNwLRJvnmIpxhgK!H`y z*&%5uR-sghjl;?EhW2=U37S(dbju3^G^gHZFZ!fbeHy_`VTu1PT82I50nc5S{IEg26#m5>#Cg7|Pi0jH(bR|VwH?Hd-qB0X=#y!J`X<>V~i=qfH^*GlEOhh3X>6YW}WKyQ-aOP_%+-(V^nrFtNW zqmTcbkC(+0VDKd-+E@ z_x*QQ?|D!c!;)yg>B$|fYPG`nK8};Tw}%*-2%nqzU-y2`+JWV^9%3NMo6=Kc;HPU( ztP`8%bv?yVO8fbk!7cCe&FJd{Pqp}n7X5;0Kh#UKJ{N&K^snEPppSAY9$jcUftAxu z8#l5OfHf-aq_5v7J^Fq*7nhyn;a*@0H_O4jMOXYh+*@=nLb#z_$D7x;e3~<`qH>;| zi?}`^PRYS4S|zKS8CtUH{A)&-{aq!yzWLN+y*Kq6;BqP+khvo4maE_-yYvyQe5D8F zwS7c7HBH(3=b$)M+%#6sU!F1cjsEj~?nAAm>M<9AQGpeGLb|%D zxb{o=b6=6^tN(IoYCjw{no_V81_v8kOXC_Wgm$%D)fEO1i$6{Ym#s|Ej*IY_3bmL* z$#+aKoL%3E=eVD<>lyvUwMC4!e3YN<#iXeFDhRM_j%C;ZSL}zz7+Ektr1UsIYZ=Ak*v3ed#;2VOXG?A95v4m>Q5~zS%@P2GJ;PiahH4iN5J|pi z8>Ac{x?$<88i2#b6xnp3=!l(X*EDas|D&F%@~3IumUw(1>q+lFn4a>aH#eSESdTdx zug!YtFKkG38zeG2E9X+q1%D01N3iFZ#$SsrV;X-UW=An53=*AMsF1s(DM9?TLe?;i zzbfSZL87?G=>=*g+Nv0>*@82kWvw#T1E=2$MF^5c0V$Qw@(FFWn%{V`jn<4PKE-TB zx~f}@X>CX$RS=kM#hV}x4HhZ6w*AWxlbC$EQE6<8C5>DlY6U|?YUh{uF#$W#r-?;? zA6tZ`IM(Yy4V2*@93oojRaRMW+8WnJ8aHNULkL|pL=-exz-iJNxjh!x1DSG9oF!8Fe;0ypF8(fF+e!t;&SarA za0*UHr8|$pgAw_lC(TVT)~{YH3VomVl>06g=gWVeE!uS;`3Z*Dgg6XPtIAL=a;i*o zl9^ZRma5M3AD4;D#9+Pf95(WRB=?9cy-Wn`;AfSEa69V%f+H=|Dz#|TXQsCI~uw? z!0Ggthk1YDh^==P{^MZEadSc`AeU)#E=XVGHDYs1W+RWs8ju==NX?bXo6g45|Y zmML3YCQ|;o7MuCA%(+}Vq&ru>fg8-03oaL(^A~o)Y@sax5EOwjKHjTpdlF)TwHtT- z=-flQ)dy0$LS$qdp!;mhnkmD(rStH5H<_7&zQ}et=nBy`Zc0L)2ZyAto@?MdZHg?u zLJWyngJ8WtkDem8Tp<#RrX=KgJY77Kyl|VyF}ixj5K(G9uu@7ynMITlQEm~?EXSeR zBG{^UrA1Vd&uA;Phwwe!@_=SJwx#bAy7<=8moZ`(YK3hISMmrzjWWlrN`#hK?XyWZ zt(kTFV?5K1m`LWzz==N9jT(e-2;6n#-yPV$xg{ob11RT1TJp^+MHh&}>#h`+ciDlx z0k{cYR03aX9i%)S1I8MtxyTDBN&_$X@Ks>le<+l*uM(;B`_@%Ra=Scyl}Jj)X6WbJ zK%{Dm2DMp~%&o34H@L!F;rhPA z73MyC+vz`qZ))eEe#{Nv3MiY^>VT}E9~|rg7@x2Rbgtj&LUgX*w7U?U3stV~W!G!O zfMlz8(D0CbK~#etq3dfqMa2T6?wiUeW_0JpV;yES}h`r}=&Z?mfp7_hgOJgG#j{IEbt#8KFf| z0RGW>d5S`pVpLl%YLZ{M%dfz*$VCNwKu?WV;|e@G{4N{k%MgE?tw@sZuZjr1{)iZd zRg8})2AxKAV$xw>9x%A3ZIN-;i%h)4RCv8;UNl41!>YhKPSR(c2$2#d5OAUuGm5Vv<2!Y)vdtj`D+=+pb z8SZV76eOKY7g2G1%C0`$<|6C)*?tpZK=ac$6ZU(6zD<-dH;AmFFVhIcq^Fa=O5|rbkA?&bk{{|*>X>IjS|B*Qs0CiP?D#(+bB5!XKTQrB4&3A=IdwRO z^DJ3DTy#x%snD8yq{YChp|j-A!$tQ~c|5gUG|OT&+?eo_va26E5NRvJ z%$yjOG6$t1x|a853XK)iXV%P?U;a(xr>rEiQ9e?mM-Ao^8eXP8W#LT#cIV5pZ-T6L znVfKw=!Ks(HwiK@)8uB+97t)Go5j`oN~m6Wv1(EiJSpegEH28JoR$dc`HON zOXO9zx*M#~#i!Y~iY{&IV~o#P9?1<(Fc)E6csgnTSuG>%+;|r^s002P&{kj7B03># zRH5;*Y&Jp^;!6DB5h8QAb+rb=1J^1nqL_#Zi+BLvHP-iC_^!6TZ^3t!^?g0Q>#gt0 z@m*(qUx4r0d2;1187-TY^#oDFX#R`z3F#2V&P(#xFB$1F>o!pY)$}>Hi7xps#zAAE z9AHmM%S$FDmYZ z>rEWhnPUdr;>j%{s69k(lxG>%^%%#R5p2!TrU!|(ZPSQcY@0^YBOozHGEgjgr5mk* zQGEA-UGPozO7|p_>IcM8%Fo_o`@y2Y&$o-KpoV_w9im&ar!5o75L@dccLVHE6ANYP z`FDr`G1y%=38Q%FcXx>Ay~(5ab`2OySm9I?3|iA3W0WkvQ)GEZ$*McW6~7+Hyi4S$ zKpAr6U5HR4=iVjS;b+TTSfFZT*xlj zog-hpM|2xr6B~%i_m{%9F>Fx6*ieD0G5tjxt`CHLuC_2H^a4qJ%#LO;kV#;iDntah zvIt{TFUbCbzVhsUVh^!~6&OJDghgQFMmb${7rt$CR1e_0)(V6X9qhYXpdCOJAst5q z!6cdAD}e2drll$ZsdkR(g+Uc8z#uGkn(~GDImpDn{ijG804ZwYkl6PrH6E)Zjf9b3 z8Y^~N@B)cGCZQhMMh>}GWS;vXH3+mXF{*+ILKd%DhK@~5tWm}ZW}~D9o~6X1M$zqH zd*)IF*3Of!-7DH+g73RmBz1q;PB|R8*_Coq#`r4mEa4RsU2V0NfmCYd$%6Yt+YXi! zz;ifaRgWSL>$lRB6YhgT%POhgFPbI46lVfhrzI6@TRr+4_u0_73*@=GM0&@1?2%}k z7-L= zGY|fR9*3Y z<3tG%1ne7K{P&@CV5o_|FaoSEDE`nFt?tn2*i99IzOR8R6jVjhgB=T#kxG|UeU)PM z7%NZy3nTt{W-lTOJiEiu*OVRNI!UuKu#MGN&!KArw64&f*8kT?rJBOVg}Z88OYMq59)9aIo=Vv4MPNK`_3?#+kA zP58+w5;G9^ts-#`ehP}kC3FGlkz#ST7ShYbVrbFPLahGi%&5=}2rUB_-C5nJ!JQ3= z22TmRp{HQYQSu%KmuP2gBo}81jKVbZ4nn86_c%^`Fmu6;Qm=_1Eg4iWjC3_3*-SLu z2t&T?Lp!+T1qWO(Ge$v;;#t{h6ja%E$q}Oj86B9Ten4fj-WI2Wo&Sp@>3>9=5&uk2 zm9$EhY-XMHh!{QSN6rXEFwi(UJc}Xt!Y56mQuRq1UzO?;TvV`7Ii$!x9bGa{HW>{G zr?SAN0tmarSZ%-V=qUS+5m)+tER-7`6&bQ(47lfca`zaKd%E%Oe$ce=4U%I)LC1r)XQcqq1xl>ZoywQG_rA1}JmP3nCMBrzdWYmcbzB(5&iH)(wHff%O{F6==aD((T{$+ zOj7h6lf*B`_O{6=#H6LKO$N`B2~*g(AV$|S$S61|rPip85E~Qr(C?;*mX|<}FB0e8 z%5@1?oy)L&li8s_B(3cDLWP!yDIQNWa9z&C)nByJSt>Ml4b3`L(h4cdgMwj5k;nkv%u5}YDfR)~o?S{|K> zmLDbiJT3+lfdgfc@5vtEj=bhE@7;LV6*>Zo4?`zKGk?I(>hDSTPdtjB?0OaLnj>EdR%6Ufcu_wVwR5S)))>c>m%z+gy0H$_@3xKJ!2nJxPR#*Vc z^p!3EX7oxI05j1d7=Wp_k|hA9$o$Eof&ff40uumJf;$Ojl|_srVy#6K6H#dq^+?97 zum}ci$}NIHn=*@F(5BQP073ZaiDDsZZWK{}`x6+B)!dN8yP-wej)FiVHFps0F(h`r zX>yQ+z9^$Tso}s^aFH2^Pg}WO3atUUqkIp_MzD|axV>Ja2FevL3@E3Rpqw&A0{DRt z!e^Gwk#|lPJ^p3^6qh?8y816*Z-tLo#)MQ_WI^9fsH-1x2&AHdwa2#|Cf5}vz+t5R zv?v@<4$hQR8_8TOA)U;rS!fa&%&|VziJvhhb>inw*7=(+AAVXi&sdZO#sm|UwUrmp z^*oGkWoZ@<{j7Kz2h(Np@YABLV9<$pI>MatW{4}i>*d}VqG@b>Ob+25tmp%z=!F@O zZJgT6_l#&~;Y@Ur!Fa;jgULgK4(gJ_eY5z65+ zHj#d1FmXOv(9r}*e;tx^Lkvl_pZVvLo;cH8>W1i;+&ohx+k!ee$pMTyG7}m|b7YTM zA|q`!V|T$q;~*cP(|j%pea|d+%HW5rK|%~D@WwZ0iB@@P+4ot?J@8~+{_!?F|GKsV z88#bpW4Y`;8&^`6%iCs)_V}4OTNK8_Kr47DK0{Psn+LPJYqm%U>~{dt-or64>_Z{O zJuzoE5+=?;J!Z=*=OC#X`PdwB4So*J!RUBR4k#7Fi0$56Dw@jjQqk5T&dYzD4_1_( zy61_Ek!5$RsTg0jBUx}p?91kgE{P{{(5=u6$EgHTA&eNZ`a5^7xD4h0X)f-xESJOQ zA@AjK)jV+}e$t;6#VETdC2d(O_!H&xy_h9&3SsboL21_>+RL z!@%ydE}A!Z-_*XwOc<}=!qC-CvH(-k!bfEzlCRBAc}}FK;Kn8FRly0?pS(8Od-j`QjF8#j5$Zk~Uc$oDVhhG8< z^xq8lz{{eSEGfefI-Sr+_F8$_iy|HkaO;aaglD`cF6IWng`q#%0Amgq&E?>iL>#Jr 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�U~Z2>~$$HB6@N9@v3|AN3u11Stcx7g_qgQxu7Z zr(W!KjK2L;Rh?#T-4VZr?tFJW_B3_DNI*KYs8wArcubD~!aJjqRN9KXt?VrXygvIG zr$ibwt3)a5ZN2F<)u)2n2fLib!I2#0!G7jTA*I;t*cv5diD8F)%RBSGvUK0mRY`!T zL7#p)xPXiGb*HOd-6l}#(!&SRtil7U9oc{S(bK`ZvRlsVM7#rcpe>kc_McbXs|TH- zdS>YeuFXI@(02kYNXGa~{hKq?@wj3yIzyFSB=QI9&DX$`7~O;ES6?{K#MEJjzD0sf zl&{c#5O5|AVh%`^wGuSvB$)H$ROM!Ow~3$;7m0ToZAb}RAYOt5p^FmQx&6n zsMcUc@RLT#l1I(bPoAm91)%rvn)d!o4fZb5Lw}~mooeg=X@Y>fT+`YJB`ywp0Fx|- zKq)XDHp9W-6JB0ZI+D|NZ~-$o{q)aN?>-x#;3IEtg2rR50kr``l|FR~;@Zk&aD#N0 zvsB&@rhO`HONLVQD)WlEj%mM`GZDbVakWiXELE0_vZL>N;p_=h>CzQtI0uaO36ZTB zTqt`~c$1F`@lY~*2+9&?8)B1Wwh4hQupwf7lg8t~gl4!QKS�ezvLrsd?VnD)RG# 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 bV`bWho3JvD;eG65-FItD{LSRR)8oGZcMKd5 diff --git a/libs/three.min.js b/libs/three.min.js index f6cbd61..fa4c9f5 100644 --- a/libs/three.min.js +++ b/libs/three.min.js @@ -3,4 +3,4 @@ * Copyright 2010-2022 Three.js Authors * SPDX-License-Identifier: MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="138",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,M=1014,b=1015,w=1016,S=1020,T=1023,E=1026,A=1027,R=33776,C=33777,L=33778,P=33779,D=35840,I=35841,N=35842,B=35843,z=37492,O=37496,U=37808,F=37809,H=37810,G=37811,V=37812,k=37813,W=37814,j=37815,q=37816,X=37817,J=37818,Y=37819,Z=37820,K=37821,Q=36492,$=2300,tt=2301,et=2302,nt=2400,it=2401,rt=2402,st=2500,at=2501,ot=3e3,lt=3001,ct=7680,ht=35044,ut=35048,dt="300 es",pt=1035;class mt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+ft[t>>16&255]+ft[t>>24&255]+"-"+ft[255&e]+ft[e>>8&255]+"-"+ft[e>>16&15|64]+ft[e>>24&255]+"-"+ft[63&n|128]+ft[n>>8&255]+"-"+ft[n>>16&255]+ft[n>>24&255]+ft[255&i]+ft[i>>8&255]+ft[i>>16&255]+ft[i>>24&255]).toUpperCase()}function _t(t,e,n){return Math.max(e,Math.min(n,t))}function Mt(t,e){return(t%e+e)%e}function bt(t,e,n){return(1-n)*t+n*e}function wt(t){return 0==(t&t-1)&&0!==t}function St(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Tt(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var Et=Object.freeze({__proto__:null,DEG2RAD:vt,RAD2DEG:yt,generateUUID:xt,clamp:_t,euclideanModulo:Mt,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:bt,damp:function(t,e,n,i){return bt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Mt(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(gt=t%2147483647),gt=16807*gt%2147483647,(gt-1)/2147483646},degToRad:function(t){return t*vt},radToDeg:function(t){return t*yt},isPowerOfTwo:wt,ceilPowerOfTwo:St,floorPowerOfTwo:Tt,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}});class At{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}At.prototype.isVector2=!0;class Rt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],M=i[5],b=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*M,r[6]=s*g+a*x+o*b,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*M,r[7]=l*g+c*x+h*b,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*M,r[8]=u*g+d*x+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}function Ct(t){for(let e=t.length-1;e>=0;--e)if(t[e]>65535)return!0;return!1}Rt.prototype.isMatrix3=!0;const Lt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Pt(t,e){return new Lt[t](e)}function Dt(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const It={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Nt={h:0,s:0,l:0},Bt={h:0,s:0,l:0};function zt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ot(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ut(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Ft{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=Mt(t,1),e=_t(e,0,1),n=_t(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=zt(r,i,t+1/3),this.g=zt(r,i,t),this.b=zt(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=It[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ot(t.r),this.g=Ot(t.g),this.b=Ot(t.b),this}copyLinearToSRGB(t){return this.r=Ut(t.r),this.g=Ut(t.g),this.b=Ut(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Dt("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}jt.DEFAULT_IMAGE=null,jt.DEFAULT_MAPPING=i,jt.prototype.isTexture=!0;class qt{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(_t(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}$t.prototype.isQuaternion=!0;class te{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(ne.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ne.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ee.copy(this).projectOnVector(t),this.sub(ee)}reflect(t){return this.sub(ee.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(_t(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}te.prototype.isVector3=!0;const ee=new te,ne=new $t;class ie{constructor(t=new te(1/0,1/0,1/0),e=new te(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,se),se.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(pe),me.subVectors(this.max,pe),oe.subVectors(t.a,pe),le.subVectors(t.b,pe),ce.subVectors(t.c,pe),he.subVectors(le,oe),ue.subVectors(ce,le),de.subVectors(oe,ce);let e=[0,-he.z,he.y,0,-ue.z,ue.y,0,-de.z,de.y,he.z,0,-he.x,ue.z,0,-ue.x,de.z,0,-de.x,-he.y,he.x,0,-ue.y,ue.x,0,-de.y,de.x,0];return!!ve(e,oe,le,ce,me)&&(e=[1,0,0,0,1,0,0,0,1],!!ve(e,oe,le,ce,me)&&(fe.crossVectors(he,ue),e=[fe.x,fe.y,fe.z],ve(e,oe,le,ce,me)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return se.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(se).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(re[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),re[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),re[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),re[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),re[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),re[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),re[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),re[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(re)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}ie.prototype.isBox3=!0;const re=[new te,new te,new te,new te,new te,new te,new te,new te],se=new te,ae=new ie,oe=new te,le=new te,ce=new te,he=new te,ue=new te,de=new te,pe=new te,me=new te,fe=new te,ge=new te;function ve(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){ge.fromArray(t,s);const a=r.x*Math.abs(ge.x)+r.y*Math.abs(ge.y)+r.z*Math.abs(ge.z),o=e.dot(ge),l=n.dot(ge),c=i.dot(ge);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const ye=new ie,xe=new te,_e=new te,Me=new te;class be{constructor(t=new te,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):ye.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Me.subVectors(t,this.center);const e=Me.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Me.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return!0===this.center.equals(t.center)?_e.set(0,0,1).multiplyScalar(t.radius):_e.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(xe.copy(t.center).add(_e)),this.expandByPoint(xe.copy(t.center).sub(_e)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const we=new te,Se=new te,Te=new te,Ee=new te,Ae=new te,Re=new te,Ce=new te;class Le{constructor(t=new te,e=new te(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,we)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=we.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(we.copy(this.direction).multiplyScalar(e).add(this.origin),we.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Se.copy(t).add(e).multiplyScalar(.5),Te.copy(e).sub(t).normalize(),Ee.copy(this.origin).sub(Se);const r=.5*t.distanceTo(e),s=-this.direction.dot(Te),a=Ee.dot(this.direction),o=-Ee.dot(Te),l=Ee.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Te).multiplyScalar(u).add(Se),d}intersectSphere(t,e){we.subVectors(t.center,this.origin);const n=we.dot(this.direction),i=we.dot(we)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,we)}intersectTriangle(t,e,n,i,r){Ae.subVectors(e,t),Re.subVectors(n,t),Ce.crossVectors(Ae,Re);let s,a=this.direction.dot(Ce);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Ee.subVectors(this.origin,t);const o=s*this.direction.dot(Re.crossVectors(Ee,Re));if(o<0)return null;const l=s*this.direction.dot(Ae.cross(Ee));if(l<0)return null;if(o+l>a)return null;const c=-s*Ee.dot(Ce);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Pe{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Pe).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/De.setFromMatrixColumn(t,0).length(),r=1/De.setFromMatrixColumn(t,1).length(),s=1/De.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Ne,t,Be)}lookAt(t,e,n){const i=this.elements;return Ue.subVectors(t,e),0===Ue.lengthSq()&&(Ue.z=1),Ue.normalize(),ze.crossVectors(n,Ue),0===ze.lengthSq()&&(1===Math.abs(n.z)?Ue.x+=1e-4:Ue.z+=1e-4,Ue.normalize(),ze.crossVectors(n,Ue)),ze.normalize(),Oe.crossVectors(Ue,ze),i[0]=ze.x,i[4]=Oe.x,i[8]=Ue.x,i[1]=ze.y,i[5]=Oe.y,i[9]=Ue.y,i[2]=ze.z,i[6]=Oe.z,i[10]=Ue.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],M=i[0],b=i[4],w=i[8],S=i[12],T=i[1],E=i[5],A=i[9],R=i[13],C=i[2],L=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*M+a*T+o*C+l*I,r[4]=s*b+a*E+o*L+l*N,r[8]=s*w+a*A+o*P+l*B,r[12]=s*S+a*R+o*D+l*z,r[1]=c*M+h*T+u*C+d*I,r[5]=c*b+h*E+u*L+d*N,r[9]=c*w+h*A+u*P+d*B,r[13]=c*S+h*R+u*D+d*z,r[2]=p*M+m*T+f*C+g*I,r[6]=p*b+m*E+f*L+g*N,r[10]=p*w+m*A+f*P+g*B,r[14]=p*S+m*R+f*D+g*z,r[3]=v*M+y*T+x*C+_*I,r[7]=v*b+y*E+x*L+_*N,r[11]=v*w+y*A+x*P+_*B,r[15]=v*S+y*R+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*y+i*x+r*_;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/M;return t[0]=v*b,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*b,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=x*b,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*b,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=_*b,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*b,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,M=n.y,b=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+y)*b,i[9]=(f-v)*b,i[10]=(1-(u+m))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=De.set(i[0],i[1],i[2]).length();const s=De.set(i[4],i[5],i[6]).length(),a=De.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Ie.copy(this);const o=1/r,l=1/s,c=1/a;return Ie.elements[0]*=o,Ie.elements[1]*=o,Ie.elements[2]*=o,Ie.elements[4]*=l,Ie.elements[5]*=l,Ie.elements[6]*=l,Ie.elements[8]*=c,Ie.elements[9]*=c,Ie.elements[10]*=c,e.setFromRotationMatrix(Ie),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}Pe.prototype.isMatrix4=!0;const De=new te,Ie=new Pe,Ne=new te(0,0,0),Be=new te(1,1,1),ze=new te,Oe=new te,Ue=new te,Fe=new Pe,He=new $t;class Ge{constructor(t=0,e=0,n=0,i=Ge.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(_t(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-_t(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(_t(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-_t(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(_t(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-_t(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Fe.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Fe,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return He.setFromEuler(this),this.setFromQuaternion(He,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Ge.prototype.isEuler=!0,Ge.DefaultOrder="XYZ",Ge.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Ve{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){rn.subVectors(i,e),sn.subVectors(n,e),an.subVectors(t,e);const s=rn.dot(rn),a=rn.dot(sn),o=rn.dot(an),l=sn.dot(sn),c=sn.dot(an),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,on),on.x>=0&&on.y>=0&&on.x+on.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,on),o.set(0,0),o.addScaledVector(r,on.x),o.addScaledVector(s,on.y),o.addScaledVector(a,on.z),o}static isFrontFacing(t,e,n,i){return rn.subVectors(n,e),sn.subVectors(t,e),rn.cross(sn).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return rn.subVectors(this.c,this.b),sn.subVectors(this.a,this.b),.5*rn.cross(sn).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return mn.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return mn.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return mn.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return mn.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return mn.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ln.subVectors(i,n),cn.subVectors(r,n),un.subVectors(t,n);const o=ln.dot(un),l=cn.dot(un);if(o<=0&&l<=0)return e.copy(n);dn.subVectors(t,i);const c=ln.dot(dn),h=cn.dot(dn);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ln,s);pn.subVectors(t,r);const d=ln.dot(pn),p=cn.dot(pn);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(cn,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return hn.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(hn,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ln,s).addScaledVector(cn,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let fn=0;class gn extends mt{constructor(){super(),Object.defineProperty(this,"id",{value:fn++}),this.uuid=xt(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=ct,this.stencilZFail=ct,this.stencilZPass=ct,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}gn.prototype.isMaterial=!0,gn.fromType=function(){return null};class vn extends gn{constructor(t){super(),this.type="MeshBasicMaterial",this.color=new Ft(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}vn.prototype.isMeshBasicMaterial=!0;const yn=new te,xn=new At;class _n{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=ht,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Gn.copy(n.boundingSphere),Gn.applyMatrix4(r),!1===t.ray.intersectsSphere(Gn))return;if(Fn.copy(r).invert(),Hn.copy(t.ray).applyMatrix4(Fn),null!==n.boundingBox&&!1===Hn.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;nn.far?null:{distance:c,point:ei.clone(),object:t}}(t,e,n,i,Vn,kn,Wn,ti);if(p){o&&(Kn.fromBufferAttribute(o,c),Qn.fromBufferAttribute(o,h),$n.fromBufferAttribute(o,u),p.uv=mn.getUV(ti,Vn,kn,Wn,Kn,Qn,$n,new At)),l&&(Kn.fromBufferAttribute(l,c),Qn.fromBufferAttribute(l,h),$n.fromBufferAttribute(l,u),p.uv2=mn.getUV(ti,Vn,kn,Wn,Kn,Qn,$n,new At));const t={a:c,b:h,c:u,normal:new te,materialIndex:0};mn.getNormal(Vn,kn,Wn,t.normal),p.face=t}return p}ni.prototype.isMesh=!0;class ri extends Un{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,M=p/2,b=m/2,w=f+1,S=g+1;let T=0,E=0;const A=new te;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}li.prototype.isShaderMaterial=!0;class ci extends nn{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new Pe,this.projectionMatrix=new Pe,this.projectionMatrixInverse=new Pe}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}ci.prototype.isCamera=!0;class hi extends ci{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*yt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*vt*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*yt*Math.atan(Math.tan(.5*vt*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*vt*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}hi.prototype.isPerspectiveCamera=!0;const ui=90;class di extends nn{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new hi(ui,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new te(1,0,0)),this.add(i);const r=new hi(ui,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new te(-1,0,0)),this.add(r);const s=new hi(ui,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new te(0,1,0)),this.add(s);const a=new hi(ui,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new te(0,-1,0)),this.add(a);const o=new hi(ui,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new te(0,0,1)),this.add(o);const l=new hi(ui,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new te(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c,n.texture.needsPMREMUpdate=!0}}class pi extends jt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o,l,c,h),this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}pi.prototype.isCubeTexture=!0;class mi extends Xt{constructor(t,e={}){super(t,t,e);const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new pi(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=T,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new ri(5,5,5),r=new li({name:"CubemapFromEquirect",uniforms:si(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new ni(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new di(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}mi.prototype.isWebGLCubeRenderTarget=!0;const fi=new te,gi=new te,vi=new Rt;class yi{constructor(t=new te(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=fi.subVectors(n,e).cross(gi.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(fi),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||vi.getNormalMatrix(t),i=this.coplanarPoint(fi).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}yi.prototype.isPlane=!0;const xi=new be,_i=new te;class Mi{constructor(t=new yi,e=new yi,n=new yi,i=new yi,r=new yi,s=new yi){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),xi.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(xi)}intersectsSprite(t){return xi.center.set(0,0,0),xi.radius=.7071067811865476,xi.applyMatrix4(t.matrixWorld),this.intersectsSphere(xi)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,_i.y=i.normal.y>0?t.max.y:t.min.y,_i.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(_i)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function bi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function wi(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec;\n\t\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\t\treflectVec = reflect( - viewDir, normal );\n\t\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\t#else\n\t\t\t\treflectVec = refract( - viewDir, normal, refractionRatio );\n\t\t\t#endif\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tlightMapIrradiance *= PI;\n\t#endif\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform vec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tfloat texelIndex = float( vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset );\n\t\t\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\n\t\t\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\n\t\t\treturn texture( morphTargetsTexture, morphUV );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionAlpha = 1.0;\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationColor, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\n\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( attenuationDistance == 0.0 ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Ei={common:{diffuse:{value:new Ft(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Rt},uv2Transform:{value:new Rt},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ft(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ft(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Ft(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Rt}}},Ai={basic:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.fog]),vertexShader:Ti.meshbasic_vert,fragmentShader:Ti.meshbasic_frag},lambert:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)}}]),vertexShader:Ti.meshlambert_vert,fragmentShader:Ti.meshlambert_frag},phong:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)},specular:{value:new Ft(1118481)},shininess:{value:30}}]),vertexShader:Ti.meshphong_vert,fragmentShader:Ti.meshphong_frag},standard:{uniforms:ai([Ei.common,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.roughnessmap,Ei.metalnessmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ti.meshphysical_vert,fragmentShader:Ti.meshphysical_frag},toon:{uniforms:ai([Ei.common,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.gradientmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)}}]),vertexShader:Ti.meshtoon_vert,fragmentShader:Ti.meshtoon_frag},matcap:{uniforms:ai([Ei.common,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.fog,{matcap:{value:null}}]),vertexShader:Ti.meshmatcap_vert,fragmentShader:Ti.meshmatcap_frag},points:{uniforms:ai([Ei.points,Ei.fog]),vertexShader:Ti.points_vert,fragmentShader:Ti.points_frag},dashed:{uniforms:ai([Ei.common,Ei.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ti.linedashed_vert,fragmentShader:Ti.linedashed_frag},depth:{uniforms:ai([Ei.common,Ei.displacementmap]),vertexShader:Ti.depth_vert,fragmentShader:Ti.depth_frag},normal:{uniforms:ai([Ei.common,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,{opacity:{value:1}}]),vertexShader:Ti.meshnormal_vert,fragmentShader:Ti.meshnormal_frag},sprite:{uniforms:ai([Ei.sprite,Ei.fog]),vertexShader:Ti.sprite_vert,fragmentShader:Ti.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null}},vertexShader:Ti.background_vert,fragmentShader:Ti.background_frag},cube:{uniforms:ai([Ei.envmap,{opacity:{value:1}}]),vertexShader:Ti.cube_vert,fragmentShader:Ti.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ti.equirect_vert,fragmentShader:Ti.equirect_frag},distanceRGBA:{uniforms:ai([Ei.common,Ei.displacementmap,{referencePosition:{value:new te},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ti.distanceRGBA_vert,fragmentShader:Ti.distanceRGBA_frag},shadow:{uniforms:ai([Ei.lights,Ei.fog,{color:{value:new Ft(0)},opacity:{value:1}}]),vertexShader:Ti.shadow_vert,fragmentShader:Ti.shadow_frag}};function Ri(t,e,n,i,r,s){const a=new Ft(0);let o,c,h=!0===r?0:1,u=null,d=0,p=null;function m(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,s)}return{getClearColor:function(){return a},setClearColor:function(t,e=1){a.set(t),h=e,m(a,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,m(a,h)},render:function(n,r){let s=!1,f=!0===r.isScene?r.background:null;f&&f.isTexture&&(f=e.get(f));const g=t.xr,v=g.getSession&&g.getSession();v&&"additive"===v.environmentBlendMode&&(f=null),null===f?m(a,h):f&&f.isColor&&(m(f,1),s=!0),(t.autoClear||s)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.mapping===l)?(void 0===c&&(c=new ni(new ri(1,1,1),new li({name:"BackgroundCubeMaterial",uniforms:si(Ai.cube.uniforms),vertexShader:Ai.cube.vertexShader,fragmentShader:Ai.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(c)),c.material.uniforms.envMap.value=f,c.material.uniforms.flipEnvMap.value=f.isCubeTexture&&!1===f.isRenderTargetTexture?-1:1,u===f&&d===f.version&&p===t.toneMapping||(c.material.needsUpdate=!0,u=f,d=f.version,p=t.toneMapping),n.unshift(c,c.geometry,c.material,0,0,null)):f&&f.isTexture&&(void 0===o&&(o=new ni(new Si(2,2),new li({name:"BackgroundMaterial",uniforms:si(Ai.background.uniforms),vertexShader:Ai.background.vertexShader,fragmentShader:Ai.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(o)),o.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),o.material.uniforms.uvTransform.value.copy(f.matrix),u===f&&d===f.version&&p===t.toneMapping||(o.material.needsUpdate=!0,u=f,d=f.version,p=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}}}function Ci(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function Di(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new yi,o=new Rt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0){const a=new mi(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}Ai.physical={uniforms:ai([Ai.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new At(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new Ft(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ft(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ft(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Ti.meshphysical_vert,fragmentShader:Ti.meshphysical_frag};class Ni extends ci{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}Ni.prototype.isOrthographicCamera=!0;const Bi=[.125,.215,.35,.446,.526,.582],zi=20,Oi=new Ni,Ui=new Ft;let Fi=null;const Hi=(1+Math.sqrt(5))/2,Gi=1/Hi,Vi=[new te(1,1,1),new te(-1,1,1),new te(1,1,-1),new te(-1,1,-1),new te(0,Hi,Gi),new te(0,Hi,-Gi),new te(Gi,0,Hi),new te(-Gi,0,Hi),new te(Hi,Gi,0),new te(-Hi,Gi,0)];class ki{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Fi=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Xi(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=qi(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-4?o=Bi[a-t+4-1]:0===a&&(o=0),i.push(o);const l=1/(s-1),c=-l/2,h=1+l/2,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),y=new Float32Array(f*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),y.set(u,f*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const _=new Un;_.setAttribute("position",new _n(v,m)),_.setAttribute("uv",new _n(y,f)),_.setAttribute("faceIndex",new _n(x,g)),e.push(_),r>4&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(zi),r=new te(0,1,0);return new li({name:"SphericalGaussianBlur",defines:{n:zi,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(i,t,e)}return i}_compileMaterial(t){const e=new ni(this._lodPlanes[0],t);this._renderer.compile(e,Oi)}_sceneToCubeUV(t,e,n,i){const r=new hi(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(Ui),o.toneMapping=0,o.autoClear=!1;const h=new vn({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),u=new ni(new ri,h);let d=!1;const p=t.background;p?p.isColor&&(h.color.copy(p),t.background=null,d=!0):(h.color.copy(Ui),d=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ji(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===r||t.mapping===s;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Xi()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=qi());const a=i?this._cubemapMaterial:this._equirectMaterial,o=new ni(this._lodPlanes[0],a);a.uniforms.envMap.value=t;const l=this._cubeSize;ji(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(o,Oi)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;ezi&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;tv-4?i-v+4:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(e),o.render(c,Oi)}}function Wi(t,e,n){const i=new Xt(t,e,n);return i.texture.mapping=l,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ji(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function qi(){return new li({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Xi(){return new li({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ji(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Yi(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(l){if(l&&l.isTexture){const c=l.mapping,h=c===a||c===o,u=c===r||c===s;if(h||u){if(l.isRenderTargetTexture&&!0===l.needsPMREMUpdate){l.needsPMREMUpdate=!1;let i=e.get(l);return null===n&&(n=new ki(t)),i=h?n.fromEquirectangular(l,i):n.fromCubemap(l,i),e.set(l,i),i.texture}if(e.has(l))return e.get(l).texture;{const r=l.image;if(h&&r&&r.height>0||u&&r&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const f=new Float32Array(p*m*4*r),g=new Jt(f,p,m,r);g.format=T,g.type=b,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=cr[r];if(void 0===s&&(s=new Float32Array(r),cr[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function fr(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n/gm;function ys(t){return t.replace(vs,xs)}function xs(t,e){const n=Ti[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return ys(n)}const _s=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Ms=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function bs(t){return t.replace(Ms,Ss).replace(_s,ws)}function ws(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Ss(t,e,n,i)}function Ss(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(_+="\n"),M=[v,y].filter(ms).join("\n"),M.length>0&&(M+="\n")):(_=[Ts(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ms).join("\n"),M=[v,Ts(n),"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",g?"#define CUBEUV_TEXEL_WIDTH "+g.texelWidth:"",g?"#define CUBEUV_TEXEL_HEIGHT "+g.texelHeight:"",g?"#define CUBEUV_MAX_MIP "+g.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?Ti.tonemapping_pars_fragment:"",0!==n.toneMapping?ps("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Ti.encodings_pars_fragment,ds("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ms).join("\n")),h=ys(h),h=fs(h,n),h=gs(h,n),u=ys(u),u=fs(u,n),u=gs(u,n),h=bs(h),u=bs(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(b="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,M=["#define varying in",n.glslVersion===dt?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===dt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+M);const w=b+M+u,S=cs(a,35633,b+_+h),T=cs(a,35632,w);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,"position"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=us(a,S,"vertex"),n=us(a,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(x,35715)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==e&&""!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:M}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new ls(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,O=s.clearcoat>0;return{isWebGL2:d,shaderID:E,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:D,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:v,instancing:!0===_.isInstancedMesh,instancingColor:!0===_.isInstancedMesh&&null!==_.instanceColor,supportsVertexTextures:g,outputEncoding:null===B?t.outputEncoding:!0===B.isXRRenderTarget?B.texture.encoding:ot,map:!!s.map,matcap:!!s.matcap,envMap:!!S,envMapMode:S&&S.mapping,envMapCubeUVHeight:T,lightMap:!!s.lightMap,aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:1===s.normalMapType,tangentSpaceNormalMap:0===s.normalMapType,decodeVideoTexture:!!s.map&&!0===s.map.isVideoTexture&&s.map.encoding===lt,clearcoat:O,clearcoatMap:O&&!!s.clearcoatMap,clearcoatRoughnessMap:O&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:O&&!!s.clearcoatNormalMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularColorMap:!!s.specularColorMap,opaque:!1===s.transparent&&1===s.blending,alphaMap:!!s.alphaMap,alphaTest:z,gradientMap:!!s.gradientMap,sheen:s.sheen>0,sheenColorMap:!!s.sheenColorMap,sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!b.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUvs:!!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatMap||s.clearcoatRoughnessMap||s.clearcoatNormalMap||s.displacementMap||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheenColorMap||s.sheenRoughnessMap),uvsVertexOnly:!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatNormalMap||s.transmission>0||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheen>0||s.sheenColorMap||s.sheenRoughnessMap||!s.displacementMap),fog:!!M,useFog:s.fog,fogExp2:M&&M.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:p,skinning:!0===_.isSkinnedMesh&&A>0,maxBones:A,useVertexTexture:m,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:C,morphTextureStride:N,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:1===s.side,depthPacking:void 0!==s.depthPacking&&s.depthPacking,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.combine),t.push(e.vertexUvs),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.maxBones),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.map&&o.enable(4);e.matcap&&o.enable(5);e.envMap&&o.enable(6);e.lightMap&&o.enable(7);e.aoMap&&o.enable(8);e.emissiveMap&&o.enable(9);e.bumpMap&&o.enable(10);e.normalMap&&o.enable(11);e.objectSpaceNormalMap&&o.enable(12);e.tangentSpaceNormalMap&&o.enable(13);e.clearcoat&&o.enable(14);e.clearcoatMap&&o.enable(15);e.clearcoatRoughnessMap&&o.enable(16);e.clearcoatNormalMap&&o.enable(17);e.displacementMap&&o.enable(18);e.specularMap&&o.enable(19);e.roughnessMap&&o.enable(20);e.metalnessMap&&o.enable(21);e.gradientMap&&o.enable(22);e.alphaMap&&o.enable(23);e.alphaTest&&o.enable(24);e.vertexColors&&o.enable(25);e.vertexAlphas&&o.enable(26);e.vertexUvs&&o.enable(27);e.vertexTangents&&o.enable(28);e.uvsVertexOnly&&o.enable(29);e.fog&&o.enable(30);t.push(o.mask),o.disableAll(),e.useFog&&o.enable(0);e.flatShading&&o.enable(1);e.logarithmicDepthBuffer&&o.enable(2);e.skinning&&o.enable(3);e.useVertexTexture&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.physicallyCorrectLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.depthPacking&&o.enable(13);e.dithering&&o.enable(14);e.specularIntensityMap&&o.enable(15);e.specularColorMap&&o.enable(16);e.transmission&&o.enable(17);e.transmissionMap&&o.enable(18);e.thicknessMap&&o.enable(19);e.sheen&&o.enable(20);e.sheenColorMap&&o.enable(21);e.sheenRoughnessMap&&o.enable(22);e.decodeVideoTexture&&o.enable(23);e.opaque&&o.enable(24);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=y[t.type];let n;if(e){const t=Ai[e];n=oi.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=u.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Ds),i.length>1&&i.sort(e||Is),r.length>1&&r.sort(e||Is)}}}function Bs(){let t=new WeakMap;return{get:function(e,n){let i;return!1===t.has(e)?(i=new Ns,t.set(e,[i])):n>=t.get(e).length?(i=new Ns,t.get(e).push(i)):i=t.get(e)[n],i},dispose:function(){t=new WeakMap}}}function zs(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new te,color:new Ft};break;case"SpotLight":n={position:new te,direction:new te,color:new Ft,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new te,color:new Ft,distance:0,decay:0};break;case"HemisphereLight":n={direction:new te,skyColor:new Ft,groundColor:new Ft};break;case"RectAreaLight":n={color:new Ft,position:new te,halfWidth:new te,halfHeight:new te}}return t[e.id]=n,n}}}let Os=0;function Us(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Fs(t,e){const n=new zs,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new te);const s=new te,a=new Pe,o=new Pe;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0;s.sort(Us);const y=!0!==a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ei.LTC_FLOAT_1,r.rectAreaLTC2=Ei.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Ei.LTC_HALF_1,r.rectAreaLTC2=Ei.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const x=r.hash;x.directionalLength===h&&x.pointLength===u&&x.spotLength===d&&x.rectAreaLength===p&&x.hemiLength===m&&x.numDirectionalShadows===f&&x.numPointShadows===g&&x.numSpotShadows===v||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotShadowMatrix.length=v,x.directionalLength=h,x.pointLength=u,x.spotLength=d,x.rectAreaLength=p,x.hemiLength=m,x.numDirectionalShadows=f,x.numPointShadows=g,x.numSpotShadows=v,r.version=Os++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=n.get(i).length?(s=new Hs(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class Vs extends gn{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Vs.prototype.isMeshDepthMaterial=!0;class ks extends gn{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new te,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}ks.prototype.isMeshDistanceMaterial=!0;function Ws(t,e,n){let i=new Mi;const r=new At,s=new At,a=new qt,o=new Vs({depthPacking:3201}),l=new ks,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new li({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new Un;f.setAttribute("position",new _n(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new ni(f,d),y=this;function x(n,i){const r=e.update(v);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,m.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,m.needsUpdate=!0),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(e,n,i,r,s,a){let h=null;const d=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(h=void 0!==d?d:!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0){const t=h.uuid,e=n.uuid;let i=c[t];void 0===i&&(i={},c[t]=i);let r=i[e];void 0===r&&(r=h.clone(),i[e]=r),h=r}return h.visible=n.visible,h.wireframe=n.wireframe,h.side=3===a?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],h.alphaMap=n.alphaMap,h.alphaTest=n.alphaTest,h.clipShadows=n.clipShadows,h.clippingPlanes=n.clippingPlanes,h.clipIntersection=n.clipIntersection,h.displacementMap=n.displacementMap,h.displacementScale=n.displacementScale,h.displacementBias=n.displacementBias,h.wireframeLinewidth=n.wireframeLinewidth,h.linewidth=n.linewidth,!0===i.isPointLight&&!0===h.isMeshDistanceMaterial&&(h.referencePosition.setFromMatrixPosition(i.matrixWorld),h.nearDistance=r,h.farDistance=s),h}function M(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:T};u.map=new Xt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.mapPass=new Xt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:T};u.map=new Xt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t=1):-1!==L.indexOf("OpenGL ES")&&(C=parseFloat(/^OpenGL ES (\d)/.exec(L)[1]),R=C>=2);let P=null,D={};const I=t.getParameter(3088),N=t.getParameter(2978),B=(new qt).fromArray(I),z=(new qt).fromArray(N);function O(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Tt:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===D&&(D=B(s,a));const o=n?B(s,a):D;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function O(t){return wt(t.width)&&wt(t.height)}function U(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e){t.generateMipmap(e)}function H(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===lt&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function G(t,e,n){return!0===U(t,n)||t.isFramebufferTexture&&t.minFilter!==p&&t.minFilter!==g?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function V(t){return t===p||t===m||t===f?9728:9729}function k(t){const e=t.target;e.removeEventListener("dispose",k),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=I.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&j(t),0===Object.keys(r).length&&I.delete(n)}i.remove(t)}(e),e.isVideoTexture&&P.delete(e)}function W(e){const n=e.target;n.removeEventListener("dispose",W),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,r=n.length;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void Q(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}const J={[h]:10497,[u]:33071,[d]:33648},Y={[p]:9728,[m]:9984,[f]:9986,[g]:9729,[v]:9985,[y]:9987};function Z(n,s,a){if(a?(t.texParameteri(n,10242,J[s.wrapS]),t.texParameteri(n,10243,J[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,J[s.wrapR]),t.texParameteri(n,10240,Y[s.magFilter]),t.texParameteri(n,10241,Y[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===u&&s.wrapT===u||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,V(s.magFilter)),t.texParameteri(n,10241,V(s.minFilter)),s.minFilter!==p&&s.minFilter!==g&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.type===b&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===w&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function K(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",k));const r=n.source;let s=I.get(r);void 0===s&&(s={},I.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&j(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function Q(e,i,r){let a=3553;i.isDataArrayTexture&&(a=35866),i.isData3DTexture&&(a=32879);const l=K(e,i),c=i.source;if(n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),c.version!==c.__currentVersion||!0===l){t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const r=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===O(i.image);let l=z(i.image,r,!1,R);l=rt(i,l);const h=O(l)||o,d=s.convert(i.format,i.encoding);let m,f=s.convert(i.type),v=H(i.internalFormat,d,f,i.encoding,i.isVideoTexture);Z(a,i,h);const y=i.mipmaps,x=o&&!0!==i.isVideoTexture,w=void 0===e.__version,C=G(i,l,h);if(i.isDepthTexture)v=6402,o?v=i.type===b?36012:i.type===M?33190:i.type===S?35056:33189:i.type===b&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===E&&6402===v&&i.type!==_&&i.type!==M&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=_,f=s.convert(i.type)),i.format===A&&6402===v&&(v=34041,i.type!==S&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=S,f=s.convert(i.type))),x&&w?n.texStorage2D(3553,1,v,l.width,l.height):n.texImage2D(3553,0,v,l.width,l.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){x&&w&&n.texStorage2D(3553,C,v,y[0].width,y[0].height);for(let t=0,e=y.length;t0&&h){x&&w&&n.texStorage2D(3553,C,v,y[0].width,y[0].height);for(let t=0,e=y.length;t0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function rt(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===pt||i!==ot&&(i===lt?!1===o?!0===e.has("EXT_sRGB")&&r===T?(t.format=pt,t.minFilter=g,t.generateMipmaps=!1):n=Gt.sRGBToLinear(n):r===T&&s===x||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=q;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),q+=1,t},this.resetTextureUnits=function(){q=0},this.setTexture2D=X,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Q(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Q(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;const a=K(e,i),l=i.source;if(n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),l.version!==l.__currentVersion||!0===a){t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const r=i.isCompressedTexture||i.image[0].isCompressedTexture,a=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=r||a?a?i.image[t].image:i.image[t]:z(i.image[t],!1,!0,c),h[t]=rt(i,h[t]);const u=h[0],d=O(u)||o,p=s.convert(i.format,i.encoding),m=s.convert(i.type),f=H(i.internalFormat,p,m,i.encoding),g=o&&!0!==i.isVideoTexture,v=void 0===e.__version;let y,x=G(i,u,d);if(Z(34067,i,d),r){g&&v&&n.texStorage2D(34067,x,f,u.width,u.height);for(let t=0;t<6;t++){y=h[t].mipmaps;for(let e=0;e0&&x++,n.texStorage2D(34067,x,f,h[0].width,h[0].height));for(let t=0;t<6;t++)if(a){g?n.texSubImage2D(34069+t,0,0,0,h[t].width,h[t].height,p,m,h[t].data):n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e0&&!1===it(e)){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format,l.encoding),r=s.convert(l.type),a=H(l.internalFormat,i,r,l.encoding),o=nt(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),tt(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}if(u){n.bindTexture(34067,h.__webglTexture),Z(34067,l,p);for(let t=0;t<6;t++)$(c.__webglFramebuffer[t],e,l,36064,34069+t);U(l,p)&&F(34067),n.unbindTexture()}else if(d){const t=e.texture;for(let r=0,s=t.length;r0&&!1===it(e)){const r=e.width,s=e.height;let a=16384;const o=[36064],l=e.stencilBuffer?33306:36096;e.depthBuffer&&o.push(l);const c=i.get(e),h=void 0===c.__ignoreDepthValues||c.__ignoreDepthValues;!1===h&&(e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024)),n.bindFramebuffer(36008,c.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,c.__webglFramebuffer),!0===h&&(t.invalidateFramebuffer(36008,[l]),t.invalidateFramebuffer(36009,[l])),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),t.invalidateFramebuffer(36008,o),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,c.__webglMultisampledFramebuffer)}},this.setupDepthRenderbuffer=et,this.setupFrameBufferTexture=$,this.useMultisampledRTT=it}function Xs(t,e,n){const i=n.isWebGL2;return{convert:function(t,n=null){let r;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===M)return 5125;if(t===b)return 5126;if(t===w)return i?5131:(r=e.get("OES_texture_half_float"),null!==r?r.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===E)return 6402;if(t===A)return 34041;if(1028===t)return 6403;if(1022===t)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(t===pt)return r=e.get("EXT_sRGB"),null!==r?r.SRGB_ALPHA_EXT:null;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1033===t)return 36249;if(t===R||t===C||t===L||t===P)if(n===lt){if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===r)return null;if(t===R)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(t===C)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(t===L)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(t===P)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(r=e.get("WEBGL_compressed_texture_s3tc"),null===r)return null;if(t===R)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===L)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===P)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===D||t===I||t===N||t===B){if(r=e.get("WEBGL_compressed_texture_pvrtc"),null===r)return null;if(t===D)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===I)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===N)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===B)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return r=e.get("WEBGL_compressed_texture_etc1"),null!==r?r.COMPRESSED_RGB_ETC1_WEBGL:null;if(t===z||t===O){if(r=e.get("WEBGL_compressed_texture_etc"),null===r)return null;if(t===z)return n===lt?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(t===O)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(t===U||t===F||t===H||t===G||t===V||t===k||t===W||t===j||t===q||t===X||t===J||t===Y||t===Z||t===K){if(r=e.get("WEBGL_compressed_texture_astc"),null===r)return null;if(t===U)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(t===F)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(t===H)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(t===G)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(t===V)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(t===k)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(t===W)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(t===j)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(t===q)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(t===X)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(t===J)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(t===Y)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(t===Z)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(t===K)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(t===Q){if(r=e.get("EXT_texture_compression_bptc"),null===r)return null;if(t===Q)return n===lt?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT}return t===S?i?34042:(r=e.get("WEBGL_depth_texture"),null!==r?r.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class Js extends hi{constructor(t=[]){super(),this.cameras=t}}Js.prototype.isArrayCamera=!0;class Ys extends nn{constructor(){super(),this.type="Group"}}Ys.prototype.isGroup=!0;const Zs={type:"move"};class Ks{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Ys,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Ys,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new te,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new te),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Ys,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new te,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new te),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Zs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new Ys;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class Qs extends jt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:E)!==E&&c!==A)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===E&&(n=_),void 0===n&&c===A&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Qs.prototype.isDepthTexture=!0;class $s extends mt{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=null,l=null,c=null,h=null,u=null;const d=e.getContextAttributes();let p=null,m=null;const f=[],g=new Map,v=new hi;v.layers.enable(1),v.viewport=new qt;const y=new hi;y.layers.enable(2),y.viewport=new qt;const M=[v,y],b=new Js;b.layers.enable(1),b.layers.enable(2);let w=null,R=null;function C(t){const e=g.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function L(){g.forEach((function(t,e){t.disconnect(e)})),g.clear(),w=null,R=null,t.setRenderTarget(p),h=null,c=null,l=null,i=null,m=null,z.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function P(t){const e=i.inputSources;for(let t=0;t0&&(e.alphaTest.value=n.alphaTest);const i=t.get(n).envMap;let r,s;i&&(e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,e.reflectivity.value=n.reflectivity,e.ior.value=n.ior,e.refractionRatio.value=n.refractionRatio),n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap?r=n.clearcoatRoughnessMap:n.specularIntensityMap?r=n.specularIntensityMap:n.specularColorMap?r=n.specularColorMap:n.transmissionMap?r=n.transmissionMap:n.thicknessMap?r=n.thicknessMap:n.sheenColorMap?r=n.sheenColorMap:n.sheenRoughnessMap&&(r=n.sheenRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,s,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap);e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap)}(t,i,a):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,s):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function ea(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=Dt("canvas");return t.style.display="block",t}(),n=void 0!==t.context?t.context:null,i=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,s=void 0!==t.antialias&&t.antialias,a=void 0===t.premultipliedAlpha||t.premultipliedAlpha,o=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,l=void 0!==t.powerPreference?t.powerPreference:"default",c=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let h;h=void 0!==t.context?n.getContextAttributes().alpha:void 0!==t.alpha&&t.alpha;let u=null,d=null;const p=[],m=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=ot,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const f=this;let g=!1,v=0,_=0,M=null,S=-1,E=null;const A=new qt,R=new qt;let C=null,L=e.width,P=e.height,D=1,I=null,N=null;const B=new qt(0,0,L,P),z=new qt(0,0,L,P);let O=!1;const U=new Mi;let F=!1,H=!1,G=null;const V=new Pe,k=new At,W=new te,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return null===M?D:1}let X,J,Y,Z,K,Q,$,tt,et,nt,it,rt,st,at,lt,ct,ht,ut,dt,pt,mt,ft,gt,vt=n;function yt(t,n){for(let i=0;i0&&function(t,e,n){const i=J.isWebGL2;null===G&&(G=new Xt(1,1,{generateMipmaps:!0,type:null!==ft.convert(w)?w:x,minFilter:y,samples:i&&!0===s?4:0}));f.getDrawingBufferSize(k),i?G.setSize(k.x,k.y):G.setSize(Tt(k.x),Tt(k.y));const r=f.getRenderTarget();f.setRenderTarget(G),f.clear();const a=f.toneMapping;f.toneMapping=0,It(t,e,n),f.toneMapping=a,Q.updateMultisampleRenderTarget(G),Q.updateRenderTargetMipmap(G),f.setRenderTarget(r)}(r,e,n),i&&Y.viewport(A.copy(i)),r.length>0&&It(r,e,n),a.length>0&&It(a,e,n),o.length>0&&It(o,e,n),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function It(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?m[m.length-1]:null,p.pop(),u=p.length>0?p[p.length-1]:null},this.getActiveCubeFace=function(){return v},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return M},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),t.useRenderToTexture=!1,t.useRenderbuffer=!0))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){M=t,v=e,_=n;let i=!0;if(t){const e=K.get(t);void 0!==e.__useDefaultFramebuffer?(Y.bindFramebuffer(36160,null),i=!1):void 0===e.__webglFramebuffer?Q.setupRenderTarget(t):e.__hasExternalTextures&&Q.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture)}let r=null,s=!1,a=!1;if(t){const n=t.texture;(n.isData3DTexture||n.isDataArrayTexture)&&(a=!0);const i=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=i[e],s=!0):r=J.isWebGL2&&t.samples>0&&!1===Q.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:i,A.copy(t.viewport),R.copy(t.scissor),C=t.scissorTest}else A.copy(B).multiplyScalar(D).floor(),R.copy(z).multiplyScalar(D).floor(),C=O;if(Y.bindFramebuffer(36160,r)&&J.drawBuffers&&i&&Y.drawBuffers(t,r),Y.viewport(A),Y.scissor(R),Y.setScissorTest(C),s){const i=K.get(t.texture);vt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;vt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}S=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Y.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==T&&ft.convert(o)!==vt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===w&&(X.has("EXT_color_buffer_half_float")||J.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===x||ft.convert(l)===vt.getParameter(35738)||l===b&&(J.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===vt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&vt.readPixels(e,n,i,r,ft.convert(o),ft.convert(l),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const t=null!==M?K.get(M).__webglFramebuffer:null;Y.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){if(!0!==e.isFramebufferTexture)return void console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);Q.setTexture2D(e,0),vt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Y.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=ft.convert(n.format),o=ft.convert(n.type);Q.setTexture2D(n,0),vt.pixelStorei(37440,n.flipY),vt.pixelStorei(37441,n.premultiplyAlpha),vt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?vt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?vt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):vt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&vt.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(f.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=ft.convert(i.format),c=ft.convert(i.type);let h;if(i.isData3DTexture)Q.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Q.setTexture2DArray(i,0),h=35866}vt.pixelStorei(37440,i.flipY),vt.pixelStorei(37441,i.premultiplyAlpha),vt.pixelStorei(3317,i.unpackAlignment);const u=vt.getParameter(3314),d=vt.getParameter(32878),p=vt.getParameter(3316),m=vt.getParameter(3315),g=vt.getParameter(32877),v=n.isCompressedTexture?n.mipmaps[0]:n.image;vt.pixelStorei(3314,v.width),vt.pixelStorei(32878,v.height),vt.pixelStorei(3316,t.min.x),vt.pixelStorei(3315,t.min.y),vt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?vt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,v.data):n.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),vt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,v.data)):vt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,v),vt.pixelStorei(3314,u),vt.pixelStorei(32878,d),vt.pixelStorei(3316,p),vt.pixelStorei(3315,m),vt.pixelStorei(32877,g),0===r&&i.generateMipmaps&&vt.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(t){Q.setTexture2D(t,0),Y.unbindTexture()},this.resetState=function(){v=0,_=0,M=null,Y.reset(),gt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}ea.prototype.isWebGLRenderer=!0;class na extends ea{}na.prototype.isWebGL1Renderer=!0;class ia{constructor(t,e=25e-5){this.name="",this.color=new Ft(t),this.density=e}clone(){return new ia(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}ia.prototype.isFogExp2=!0;class ra{constructor(t,e=1,n=1e3){this.name="",this.color=new Ft(t),this.near=e,this.far=n}clone(){return new ra(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}ra.prototype.isFog=!0;class sa extends nn{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}sa.prototype.isScene=!0;class aa{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=ht,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=xt()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:ua.clone(),uv:mn.getUV(ua,va,ya,xa,_a,Ma,ba,new At),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Sa(t,e,n,i,r,s){ma.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(fa.x=s*ma.x-r*ma.y,fa.y=r*ma.x+s*ma.y):fa.copy(ma),t.copy(e),t.x+=fa.x,t.y+=fa.y,t.applyMatrix4(ga)}wa.prototype.isSprite=!0;const Ta=new te,Ea=new te;class Aa extends nn{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Ta.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Ta);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Ta.setFromMatrixPosition(t.matrixWorld),Ea.setFromMatrixPosition(this.matrixWorld);const n=Ta.distanceTo(Ea)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);dt.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Ka.prototype.isLine=!0;const Qa=new te,$a=new te;class to extends Ka{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function lo(t,e,n,i,r,s,a){const o=ro.distanceSqToPoint(t);if(or.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}oo.prototype.isPoints=!0;class co extends jt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}co.prototype.isVideoTexture=!0;class ho extends jt{constructor(t,e,n){super({width:t,height:e}),this.format=n,this.magFilter=p,this.minFilter=p,this.generateMipmaps=!1,this.needsUpdate=!0}}ho.prototype.isFramebufferTexture=!0;class uo extends jt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}uo.prototype.isCompressedTexture=!0;class po extends jt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}po.prototype.isCanvasTexture=!0;class mo extends Un{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new te,c=new At;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new Cn(s,3)),this.setAttribute("normal",new Cn(a,3)),this.setAttribute("uv",new Cn(o,2))}static fromJSON(t){return new mo(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class fo extends Un{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new At,m=new te;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Cn(h,3)),this.setAttribute("normal",new Cn(u,3)),this.setAttribute("uv",new Cn(d,2))}static fromJSON(t){return new fo(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class go extends fo{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new go(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class vo extends Un{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Cn(r,3)),this.setAttribute("normal",new Cn(r.slice(),3)),this.setAttribute("uv",new Cn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new vo(t.vertices,t.indices,t.radius,t.details)}}class yo extends vo{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new yo(t.radius,t.detail)}}const xo=new te,_o=new te,Mo=new te,bo=new mn;class wo extends Un{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(vt*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new At:new te);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new te,i=[],r=[],s=[],a=new te,o=new Pe;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new te)}r[0]=new te,s[0]=new te;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(_t(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(_t(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class To extends So{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new At,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Ro.subVectors(i[0],i[1]).add(i[0]),a=Ro);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Io(a,o.x,l.x,c.x,h.x),Io(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qo extends jo{constructor(t){super(t),this.uuid=xt(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return Zo(s,a,n,o,l,p),a};function Jo(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=fl(s,t[s],t[s+1],a);return a&&cl(a,a.next)&&(gl(a),a=a.next),a}function Yo(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!cl(i,i.next)&&0!==ll(i.prev,i,i.next))i=i.next;else{if(gl(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Zo(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=rl(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Qo(t,i,r,s):Ko(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),gl(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Zo(t=$o(Yo(t),e,n),e,n,i,r,s,2):2===a&&tl(t,e,n,i,r,s):Zo(Yo(t),e,n,i,r,s,1);break}}function Ko(t){const e=t.prev,n=t,i=t.next;if(ll(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(al(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&ll(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function Qo(t,e,n,i){const r=t.prev,s=t,a=t.next;if(ll(r,s,a)>=0)return!1;const o=r.xs.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=rl(o,l,e,n,i),d=rl(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&ll(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&ll(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&ll(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&ll(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function $o(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!cl(r,s)&&hl(r,i,i.next,s)&&pl(r,s)&&pl(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),gl(i),gl(i.next),i=t=s),i=i.next}while(i!==t);return Yo(i)}function tl(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&ol(a,t)){let o=ml(a,t);return a=Yo(a,a.next),o=Yo(o,o.next),Zo(a,e,n,i,r,s),void Zo(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function el(t,e){return t.x-e.x}function nl(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x=n.x&&n.x>=l&&i!==n.x&&al(rs.x||n.x===s.x&&il(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e),e){const n=ml(e,t);Yo(e,e.next),Yo(n,n.next)}}function il(t,e){return ll(t.prev,t,e.prev)<0&&ll(e.next,t,t.next)<0}function rl(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function sl(t){let e=t,n=t;do{(e.x=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function ol(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&hl(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(pl(t,e)&&pl(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(ll(t.prev,t,e.prev)||ll(t,e.prev,e))||cl(t,e)&&ll(t.prev,t,t.next)>0&&ll(e.prev,e,e.next)>0)}function ll(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function cl(t,e){return t.x===e.x&&t.y===e.y}function hl(t,e,n,i){const r=dl(ll(t,e,n)),s=dl(ll(t,e,i)),a=dl(ll(n,i,t)),o=dl(ll(n,i,e));return r!==s&&a!==o||(!(0!==r||!ul(t,n,e))||(!(0!==s||!ul(t,i,e))||(!(0!==a||!ul(n,t,i))||!(0!==o||!ul(n,e,i)))))}function ul(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function dl(t){return t>0?1:t<0?-1:0}function pl(t,e){return ll(t.prev,t,t.next)<0?ll(t,e,t.next)>=0&&ll(t,t.prev,e)>=0:ll(t,e,t.prev)<0||ll(t,t.next,e)<0}function ml(t,e){const n=new vl(t.i,t.x,t.y),i=new vl(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function fl(t,e,n,i){const r=new vl(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function gl(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function vl(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class yl{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function _l(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new At(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new At(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}Fl.prototype.isMeshPhysicalMaterial=!0;class Hl extends gn{constructor(t){super(),this.type="MeshPhongMaterial",this.color=new Ft(16777215),this.specular=new Ft(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}Hl.prototype.isMeshPhongMaterial=!0;class Gl extends gn{constructor(t){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ft(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}Gl.prototype.isMeshToonMaterial=!0;class Vl extends gn{constructor(t){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}Vl.prototype.isMeshNormalMaterial=!0;class kl extends gn{constructor(t){super(),this.type="MeshLambertMaterial",this.color=new Ft(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}kl.prototype.isMeshLambertMaterial=!0;class Wl extends gn{constructor(t){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ft(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this}}Wl.prototype.isMeshMatcapMaterial=!0;class jl extends ja{constructor(t){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}jl.prototype.isLineDashedMaterial=!0;const ql={ShadowMaterial:zl,SpriteMaterial:ca,RawShaderMaterial:Ol,ShaderMaterial:li,PointsMaterial:no,MeshPhysicalMaterial:Fl,MeshStandardMaterial:Ul,MeshPhongMaterial:Hl,MeshToonMaterial:Gl,MeshNormalMaterial:Vl,MeshLambertMaterial:kl,MeshDepthMaterial:Vs,MeshDistanceMaterial:ks,MeshBasicMaterial:vn,MeshMatcapMaterial:Wl,LineDashedMaterial:jl,LineBasicMaterial:ja,Material:gn};gn.fromType=function(t){return new ql[t]};const Xl={arraySlice:function(t,e,n){return Xl.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Xl.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Xl.arraySlice(t.resultBuffer,e,n)}if("quaternion"===r){(new $t).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Xl.arraySlice(n,r,s),this.values=Xl.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Xl.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Xl.arraySlice(this.times),e=Xl.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===et,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Xl.arraySlice(t,0,s),this.values=Xl.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Xl.arraySlice(this.times,0),e=Xl.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Ql.prototype.TimeBufferType=Float32Array,Ql.prototype.ValueBufferType=Float32Array,Ql.prototype.DefaultInterpolation=tt;class $l extends Ql{}$l.prototype.ValueTypeName="bool",$l.prototype.ValueBufferType=Array,$l.prototype.DefaultInterpolation=$,$l.prototype.InterpolantFactoryMethodLinear=void 0,$l.prototype.InterpolantFactoryMethodSmooth=void 0;class tc extends Ql{}tc.prototype.ValueTypeName="color";class ec extends Ql{}ec.prototype.ValueTypeName="number";class nc extends Jl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)$t.slerpFlat(r,0,s,l-a,s,l,o);return r}}class ic extends Ql{InterpolantFactoryMethodLinear(t){return new nc(this.times,this.values,this.getValueSize(),t)}}ic.prototype.ValueTypeName="quaternion",ic.prototype.DefaultInterpolation=tt,ic.prototype.InterpolantFactoryMethodSmooth=void 0;class rc extends Ql{}rc.prototype.ValueTypeName="string",rc.prototype.ValueBufferType=Array,rc.prototype.DefaultInterpolation=$,rc.prototype.InterpolantFactoryMethodLinear=void 0,rc.prototype.InterpolantFactoryMethodSmooth=void 0;class sc extends Ql{}sc.prototype.ValueTypeName="vector";class ac{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=xt(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(oc(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Ql.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Xl.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==dc[t])return void dc[t].push({onLoad:e,onProgress:n,onError:i});dc[t]=[],dc[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=dc[t],i=e.body.getReader(),r=e.headers.get("Content-Length"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{lc.add(t,e);const n=dc[t];delete dc[t];for(let t=0,i=n.length;t{const n=dc[t];if(void 0===n)throw this.manager.itemError(t),e;delete dc[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class mc extends uc{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=lc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=Dt("img");function o(){c(),lc.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class fc extends uc{constructor(t){super(t)}load(t,e,n,i){const r=new pi,s=new mc(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Ft).setHex(r.value);break;case"v2":i.uniforms[e].value=(new At).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new te).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new qt).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new Rt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new Pe).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new At).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new At).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}}class Uc{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){$t.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;$t.multiplyQuaternionsFlat(t,s,t,e,t,n),$t.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const dh="\\[\\]\\.:\\/",ph=new RegExp("[\\[\\]\\.:\\/]","g"),mh="[^\\[\\]\\.:\\/]",fh="[^"+dh.replace("\\.","")+"]",gh=/((?:WC+[\/:])*)/.source.replace("WC",mh),vh=/(WCOD+)?/.source.replace("WCOD",fh),yh=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",mh),xh=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",mh),_h=new RegExp("^"+gh+vh+yh+xh+"$"),Mh=["material","materials","bones"];class bh{constructor(t,e,n){this.path=e,this.parsedPath=n||bh.parseTrackName(e),this.node=bh.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new bh.Composite(t,e,n):new bh(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(ph,"")}static parseTrackName(t){const e=_h.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==Mh.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new bh(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}wh.prototype.isAnimationObjectGroup=!0;class Sh{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:nt,endingEnd:nt};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===at)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=it,i.endingEnd=it):(i.endingStart=t?this.zeroSlopeAtStart?it:nt:rt,i.endingEnd=e?this.zeroSlopeAtEnd?it:nt:rt)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Th extends mt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new uh(bh.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Ph.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Dh.prototype.isBox2=!0;const Ih=new te,Nh=new te;class Bh{constructor(t=new te,e=new te){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Ih.subVectors(t,this.start),Nh.subVectors(this.end,this.start);const n=Nh.dot(Nh);let i=Nh.dot(Ih)/n;return e&&(i=_t(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const zh=new te;const Oh=new te,Uh=new Pe,Fh=new Pe;class Hh extends to{constructor(t){const e=Gh(t),n=new Un,i=[],r=[],s=new Ft(0,0,1),a=new Ft(0,1,0);for(let t=0;t.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{tu.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(tu,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=sh,t.AudioAnalyser=hh,t.AudioContext=qc,t.AudioListener=class extends nn{constructor(){super(),this.type="AudioListener",this.context=qc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new $c}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(eh,nh,ih),rh.set(0,0,-1).applyQuaternion(nh),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(eh.x,t),e.positionY.linearRampToValueAtTime(eh.y,t),e.positionZ.linearRampToValueAtTime(eh.z,t),e.forwardX.linearRampToValueAtTime(rh.x,t),e.forwardY.linearRampToValueAtTime(rh.y,t),e.forwardZ.linearRampToValueAtTime(rh.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(eh.x,eh.y,eh.z),e.setOrientation(rh.x,rh.y,rh.z,n.x,n.y,n.z)}},t.AudioLoader=Xc,t.AxesHelper=iu,t.AxisHelper=function(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new iu(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new gc(t)},t.Bone=Na,t.BooleanKeyframeTrack=$l,t.BoundingBoxHelper=function(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new $h(t,e)},t.Box2=Dh,t.Box3=ie,t.Box3Helper=class extends to{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Un;i.setIndex(new _n(n,1)),i.setAttribute("position",new Cn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ja({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=ri,t.BoxGeometry=ri,t.BoxHelper=$h,t.BufferAttribute=_n,t.BufferGeometry=Un,t.BufferGeometryLoader=Hc,t.ByteType=1010,t.Cache=lc,t.Camera=ci,t.CameraHelper=class extends to{constructor(t){const e=new Un,n=new ja({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new Ft(16755200),o=new Ft(16711680),l=new Ft(43775),c=new Ft(16777215),h=new Ft(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",o),u("p","n2",o),u("p","n3",o),u("p","n4",o),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l),u("c","t",c),u("p","c",h),u("cn1","cn2",h),u("cn3","cn4",h),u("cf1","cf2",h),u("cf3","cf4",h),e.setAttribute("position",new Cn(i,3)),e.setAttribute("color",new Cn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;Zh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),Kh("c",e,t,Zh,0,0,-1),Kh("t",e,t,Zh,0,0,1),Kh("n1",e,t,Zh,-1,-1,-1),Kh("n2",e,t,Zh,1,-1,-1),Kh("n3",e,t,Zh,-1,1,-1),Kh("n4",e,t,Zh,1,1,-1),Kh("f1",e,t,Zh,-1,-1,1),Kh("f2",e,t,Zh,1,-1,1),Kh("f3",e,t,Zh,-1,1,1),Kh("f4",e,t,Zh,1,1,1),Kh("u1",e,t,Zh,.7,1.1,-1),Kh("u2",e,t,Zh,-.7,1.1,-1),Kh("u3",e,t,Zh,0,2,-1),Kh("cf1",e,t,Zh,-1,0,1),Kh("cf2",e,t,Zh,1,0,1),Kh("cf3",e,t,Zh,0,-1,1),Kh("cf4",e,t,Zh,0,1,1),Kh("cn1",e,t,Zh,-1,0,-1),Kh("cn2",e,t,Zh,1,0,-1),Kh("cn3",e,t,Zh,0,-1,-1),Kh("cn4",e,t,Zh,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")},t.CanvasTexture=po,t.CatmullRomCurve3=Do,t.CineonToneMapping=3,t.CircleBufferGeometry=mo,t.CircleGeometry=mo,t.ClampToEdgeWrapping=u,t.Clock=$c,t.Color=Ft,t.ColorKeyframeTrack=tc,t.CompressedTexture=uo,t.CompressedTextureLoader=class extends uc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new uo,o=new pc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e65504&&(console.warn("THREE.DataUtils.toHalfFloat(): value exceeds 65504."),t=65504),ru[0]=t;const e=su[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=hc,t.DepthFormat=E,t.DepthStencilFormat=A,t.DepthTexture=Qs,t.DirectionalLight=Dc,t.DirectionalLightHelper=class extends nn{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new Un;i.setAttribute("position",new Cn([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ja({fog:!1,toneMapped:!1});this.lightPlane=new Ka(i,r),this.add(this.lightPlane),i=new Un,i.setAttribute("position",new Cn([0,0,0,0,0,1],3)),this.targetLine=new Ka(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){qh.setFromMatrixPosition(this.light.matrixWorld),Xh.setFromMatrixPosition(this.light.target.matrixWorld),Jh.subVectors(Xh,qh),this.lightPlane.lookAt(Xh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Xh),this.targetLine.scale.z=Jh.length()}},t.DiscreteInterpolant=Kl,t.DodecahedronBufferGeometry=yo,t.DodecahedronGeometry=yo,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new _n(t,e).setUsage(ut)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=ut,t.DynamicReadUsage=35049,t.EdgesGeometry=wo,t.EdgesHelper=function(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new to(new wo(t.geometry),new ja({color:void 0!==e?e:16777215}))},t.EllipseCurve=To,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=Ge,t.EventDispatcher=mt,t.ExtrudeBufferGeometry=Ml,t.ExtrudeGeometry=Ml,t.FaceColors=1,t.FileLoader=pc,t.FlatShading=1,t.Float16BufferAttribute=Rn,t.Float32Attribute=function(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new Cn(t,e)},t.Float32BufferAttribute=Cn,t.Float64Attribute=function(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new Ln(t,e)},t.Float64BufferAttribute=Ln,t.FloatType=b,t.Fog=ra,t.FogExp2=ia,t.Font=function(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")},t.FontLoader=function(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")},t.FramebufferTexture=ho,t.FrontSide=0,t.Frustum=Mi,t.GLBufferAttribute=Rh,t.GLSL1="100",t.GLSL3=dt,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=jh,t.Group=Ys,t.HalfFloatType=w,t.HemisphereLight=xc,t.HemisphereLightHelper=class extends nn{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new Tl(e);i.rotateY(.5*Math.PI),this.material=new vn({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new _n(s,3)),this.add(new ni(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");kh.copy(this.light.color),Wh.copy(this.light.groundColor);for(let t=0,n=e.count;t0){const n=new cc(e);r=new mc(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new mc(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;eNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=yl.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new qo,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e1){let t=!1,e=0;for(let t=0,e=d.length;t0&&!1===t&&(f=u)}for(let t=0,e=d.length;t>8&255]+ft[t>>16&255]+ft[t>>24&255]+"-"+ft[255&e]+ft[e>>8&255]+"-"+ft[e>>16&15|64]+ft[e>>24&255]+"-"+ft[63&n|128]+ft[n>>8&255]+"-"+ft[n>>16&255]+ft[n>>24&255]+ft[255&i]+ft[i>>8&255]+ft[i>>16&255]+ft[i>>24&255]).toUpperCase()}function _t(t,e,n){return Math.max(e,Math.min(n,t))}function Mt(t,e){return(t%e+e)%e}function bt(t,e,n){return(1-n)*t+n*e}function wt(t){return 0==(t&t-1)&&0!==t}function St(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Tt(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var Et=Object.freeze({__proto__:null,DEG2RAD:vt,RAD2DEG:yt,generateUUID:xt,clamp:_t,euclideanModulo:Mt,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:bt,damp:function(t,e,n,i){return bt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Mt(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(gt=t%2147483647),gt=16807*gt%2147483647,(gt-1)/2147483646},degToRad:function(t){return t*vt},radToDeg:function(t){return t*yt},isPowerOfTwo:wt,ceilPowerOfTwo:St,floorPowerOfTwo:Tt,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}});class At{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}At.prototype.isVector2=!0;class Rt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],M=i[5],b=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*M,r[6]=s*g+a*x+o*b,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*M,r[7]=l*g+c*x+h*b,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*M,r[8]=u*g+d*x+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}function Ct(t){for(let e=t.length-1;e>=0;--e)if(t[e]>65535)return!0;return!1}Rt.prototype.isMatrix3=!0;const Lt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Pt(t,e){return new Lt[t](e)}function Dt(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const It={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Nt={h:0,s:0,l:0},Bt={h:0,s:0,l:0};function zt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ot(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ut(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Ft{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=Mt(t,1),e=_t(e,0,1),n=_t(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=zt(r,i,t+1/3),this.g=zt(r,i,t),this.b=zt(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=It[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ot(t.r),this.g=Ot(t.g),this.b=Ot(t.b),this}copyLinearToSRGB(t){return this.r=Ut(t.r),this.g=Ut(t.g),this.b=Ut(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Dt("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}jt.DEFAULT_IMAGE=null,jt.DEFAULT_MAPPING=i,jt.prototype.isTexture=!0;class qt{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(_t(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}$t.prototype.isQuaternion=!0;class te{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(ne.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ne.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ee.copy(this).projectOnVector(t),this.sub(ee)}reflect(t){return this.sub(ee.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(_t(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}te.prototype.isVector3=!0;const ee=new te,ne=new $t;class ie{constructor(t=new te(1/0,1/0,1/0),e=new te(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,se),se.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(pe),me.subVectors(this.max,pe),oe.subVectors(t.a,pe),le.subVectors(t.b,pe),ce.subVectors(t.c,pe),he.subVectors(le,oe),ue.subVectors(ce,le),de.subVectors(oe,ce);let e=[0,-he.z,he.y,0,-ue.z,ue.y,0,-de.z,de.y,he.z,0,-he.x,ue.z,0,-ue.x,de.z,0,-de.x,-he.y,he.x,0,-ue.y,ue.x,0,-de.y,de.x,0];return!!ve(e,oe,le,ce,me)&&(e=[1,0,0,0,1,0,0,0,1],!!ve(e,oe,le,ce,me)&&(fe.crossVectors(he,ue),e=[fe.x,fe.y,fe.z],ve(e,oe,le,ce,me)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return se.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(se).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(re[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),re[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),re[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),re[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),re[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),re[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),re[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),re[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(re)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}ie.prototype.isBox3=!0;const re=[new te,new te,new te,new te,new te,new te,new te,new te],se=new te,ae=new ie,oe=new te,le=new te,ce=new te,he=new te,ue=new te,de=new te,pe=new te,me=new te,fe=new te,ge=new te;function ve(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){ge.fromArray(t,s);const a=r.x*Math.abs(ge.x)+r.y*Math.abs(ge.y)+r.z*Math.abs(ge.z),o=e.dot(ge),l=n.dot(ge),c=i.dot(ge);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const ye=new ie,xe=new te,_e=new te,Me=new te;class be{constructor(t=new te,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):ye.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Me.subVectors(t,this.center);const e=Me.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Me.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return!0===this.center.equals(t.center)?_e.set(0,0,1).multiplyScalar(t.radius):_e.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(xe.copy(t.center).add(_e)),this.expandByPoint(xe.copy(t.center).sub(_e)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const we=new te,Se=new te,Te=new te,Ee=new te,Ae=new te,Re=new te,Ce=new te;class Le{constructor(t=new te,e=new te(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,we)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=we.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(we.copy(this.direction).multiplyScalar(e).add(this.origin),we.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Se.copy(t).add(e).multiplyScalar(.5),Te.copy(e).sub(t).normalize(),Ee.copy(this.origin).sub(Se);const r=.5*t.distanceTo(e),s=-this.direction.dot(Te),a=Ee.dot(this.direction),o=-Ee.dot(Te),l=Ee.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Te).multiplyScalar(u).add(Se),d}intersectSphere(t,e){we.subVectors(t.center,this.origin);const n=we.dot(this.direction),i=we.dot(we)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,we)}intersectTriangle(t,e,n,i,r){Ae.subVectors(e,t),Re.subVectors(n,t),Ce.crossVectors(Ae,Re);let s,a=this.direction.dot(Ce);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Ee.subVectors(this.origin,t);const o=s*this.direction.dot(Re.crossVectors(Ee,Re));if(o<0)return null;const l=s*this.direction.dot(Ae.cross(Ee));if(l<0)return null;if(o+l>a)return null;const c=-s*Ee.dot(Ce);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Pe{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Pe).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/De.setFromMatrixColumn(t,0).length(),r=1/De.setFromMatrixColumn(t,1).length(),s=1/De.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Ne,t,Be)}lookAt(t,e,n){const i=this.elements;return Ue.subVectors(t,e),0===Ue.lengthSq()&&(Ue.z=1),Ue.normalize(),ze.crossVectors(n,Ue),0===ze.lengthSq()&&(1===Math.abs(n.z)?Ue.x+=1e-4:Ue.z+=1e-4,Ue.normalize(),ze.crossVectors(n,Ue)),ze.normalize(),Oe.crossVectors(Ue,ze),i[0]=ze.x,i[4]=Oe.x,i[8]=Ue.x,i[1]=ze.y,i[5]=Oe.y,i[9]=Ue.y,i[2]=ze.z,i[6]=Oe.z,i[10]=Ue.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],M=i[0],b=i[4],w=i[8],S=i[12],T=i[1],E=i[5],A=i[9],R=i[13],C=i[2],L=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*M+a*T+o*C+l*I,r[4]=s*b+a*E+o*L+l*N,r[8]=s*w+a*A+o*P+l*B,r[12]=s*S+a*R+o*D+l*z,r[1]=c*M+h*T+u*C+d*I,r[5]=c*b+h*E+u*L+d*N,r[9]=c*w+h*A+u*P+d*B,r[13]=c*S+h*R+u*D+d*z,r[2]=p*M+m*T+f*C+g*I,r[6]=p*b+m*E+f*L+g*N,r[10]=p*w+m*A+f*P+g*B,r[14]=p*S+m*R+f*D+g*z,r[3]=v*M+y*T+x*C+_*I,r[7]=v*b+y*E+x*L+_*N,r[11]=v*w+y*A+x*P+_*B,r[15]=v*S+y*R+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*y+i*x+r*_;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/M;return t[0]=v*b,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*b,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=x*b,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*b,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=_*b,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*b,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,M=n.y,b=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+y)*b,i[9]=(f-v)*b,i[10]=(1-(u+m))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=De.set(i[0],i[1],i[2]).length();const s=De.set(i[4],i[5],i[6]).length(),a=De.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Ie.copy(this);const o=1/r,l=1/s,c=1/a;return Ie.elements[0]*=o,Ie.elements[1]*=o,Ie.elements[2]*=o,Ie.elements[4]*=l,Ie.elements[5]*=l,Ie.elements[6]*=l,Ie.elements[8]*=c,Ie.elements[9]*=c,Ie.elements[10]*=c,e.setFromRotationMatrix(Ie),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}Pe.prototype.isMatrix4=!0;const De=new te,Ie=new Pe,Ne=new te(0,0,0),Be=new te(1,1,1),ze=new te,Oe=new te,Ue=new te,Fe=new Pe,He=new $t;class Ge{constructor(t=0,e=0,n=0,i=Ge.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(_t(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-_t(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(_t(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-_t(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(_t(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-_t(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Fe.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Fe,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return He.setFromEuler(this),this.setFromQuaternion(He,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Ge.prototype.isEuler=!0,Ge.DefaultOrder="XYZ",Ge.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Ve{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){rn.subVectors(i,e),sn.subVectors(n,e),an.subVectors(t,e);const s=rn.dot(rn),a=rn.dot(sn),o=rn.dot(an),l=sn.dot(sn),c=sn.dot(an),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,on),on.x>=0&&on.y>=0&&on.x+on.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,on),o.set(0,0),o.addScaledVector(r,on.x),o.addScaledVector(s,on.y),o.addScaledVector(a,on.z),o}static isFrontFacing(t,e,n,i){return rn.subVectors(n,e),sn.subVectors(t,e),rn.cross(sn).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return rn.subVectors(this.c,this.b),sn.subVectors(this.a,this.b),.5*rn.cross(sn).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return mn.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return mn.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return mn.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return mn.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return mn.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ln.subVectors(i,n),cn.subVectors(r,n),un.subVectors(t,n);const o=ln.dot(un),l=cn.dot(un);if(o<=0&&l<=0)return e.copy(n);dn.subVectors(t,i);const c=ln.dot(dn),h=cn.dot(dn);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ln,s);pn.subVectors(t,r);const d=ln.dot(pn),p=cn.dot(pn);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(cn,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return hn.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(hn,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ln,s).addScaledVector(cn,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let fn=0;class gn extends mt{constructor(){super(),Object.defineProperty(this,"id",{value:fn++}),this.uuid=xt(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=ct,this.stencilZFail=ct,this.stencilZPass=ct,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}gn.prototype.isMaterial=!0,gn.fromType=function(){return null};class vn extends gn{constructor(t){super(),this.type="MeshBasicMaterial",this.color=new Ft(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}vn.prototype.isMeshBasicMaterial=!0;const yn=new te,xn=new At;class _n{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=ht,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Gn.copy(n.boundingSphere),Gn.applyMatrix4(r),!1===t.ray.intersectsSphere(Gn))return;if(Fn.copy(r).invert(),Hn.copy(t.ray).applyMatrix4(Fn),null!==n.boundingBox&&!1===Hn.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;nn.far?null:{distance:c,point:ei.clone(),object:t}}(t,e,n,i,Vn,kn,Wn,ti);if(p){o&&(Kn.fromBufferAttribute(o,c),Qn.fromBufferAttribute(o,h),$n.fromBufferAttribute(o,u),p.uv=mn.getUV(ti,Vn,kn,Wn,Kn,Qn,$n,new At)),l&&(Kn.fromBufferAttribute(l,c),Qn.fromBufferAttribute(l,h),$n.fromBufferAttribute(l,u),p.uv2=mn.getUV(ti,Vn,kn,Wn,Kn,Qn,$n,new At));const t={a:c,b:h,c:u,normal:new te,materialIndex:0};mn.getNormal(Vn,kn,Wn,t.normal),p.face=t}return p}ni.prototype.isMesh=!0;class ri extends Un{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,M=p/2,b=m/2,w=f+1,S=g+1;let T=0,E=0;const A=new te;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}li.prototype.isShaderMaterial=!0;class ci extends nn{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new Pe,this.projectionMatrix=new Pe,this.projectionMatrixInverse=new Pe}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}ci.prototype.isCamera=!0;class hi extends ci{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*yt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*vt*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*yt*Math.atan(Math.tan(.5*vt*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*vt*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}hi.prototype.isPerspectiveCamera=!0;const ui=90;class di extends nn{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new hi(ui,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new te(1,0,0)),this.add(i);const r=new hi(ui,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new te(-1,0,0)),this.add(r);const s=new hi(ui,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new te(0,1,0)),this.add(s);const a=new hi(ui,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new te(0,-1,0)),this.add(a);const o=new hi(ui,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new te(0,0,1)),this.add(o);const l=new hi(ui,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new te(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c,n.texture.needsPMREMUpdate=!0}}class pi extends jt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o,l,c,h),this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}pi.prototype.isCubeTexture=!0;class mi extends Xt{constructor(t,e={}){super(t,t,e);const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new pi(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=T,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new ri(5,5,5),r=new li({name:"CubemapFromEquirect",uniforms:si(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new ni(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new di(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}mi.prototype.isWebGLCubeRenderTarget=!0;const fi=new te,gi=new te,vi=new Rt;class yi{constructor(t=new te(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=fi.subVectors(n,e).cross(gi.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(fi),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||vi.getNormalMatrix(t),i=this.coplanarPoint(fi).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}yi.prototype.isPlane=!0;const xi=new be,_i=new te;class Mi{constructor(t=new yi,e=new yi,n=new yi,i=new yi,r=new yi,s=new yi){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),xi.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(xi)}intersectsSprite(t){return xi.center.set(0,0,0),xi.radius=.7071067811865476,xi.applyMatrix4(t.matrixWorld),this.intersectsSphere(xi)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,_i.y=i.normal.y>0?t.max.y:t.min.y,_i.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(_i)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function bi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function wi(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec;\n\t\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\t\treflectVec = reflect( - viewDir, normal );\n\t\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\t#else\n\t\t\t\treflectVec = refract( - viewDir, normal, refractionRatio );\n\t\t\t#endif\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tlightMapIrradiance *= PI;\n\t#endif\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform vec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tfloat texelIndex = float( vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset );\n\t\t\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\n\t\t\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\n\t\t\treturn texture( morphTargetsTexture, morphUV );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionAlpha = 1.0;\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationColor, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\n\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( attenuationDistance == 0.0 ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Ei={common:{diffuse:{value:new Ft(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Rt},uv2Transform:{value:new Rt},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ft(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ft(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Ft(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Rt}}},Ai={basic:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.fog]),vertexShader:Ti.meshbasic_vert,fragmentShader:Ti.meshbasic_frag},lambert:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)}}]),vertexShader:Ti.meshlambert_vert,fragmentShader:Ti.meshlambert_frag},phong:{uniforms:ai([Ei.common,Ei.specularmap,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)},specular:{value:new Ft(1118481)},shininess:{value:30}}]),vertexShader:Ti.meshphong_vert,fragmentShader:Ti.meshphong_frag},standard:{uniforms:ai([Ei.common,Ei.envmap,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.roughnessmap,Ei.metalnessmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ti.meshphysical_vert,fragmentShader:Ti.meshphysical_frag},toon:{uniforms:ai([Ei.common,Ei.aomap,Ei.lightmap,Ei.emissivemap,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.gradientmap,Ei.fog,Ei.lights,{emissive:{value:new Ft(0)}}]),vertexShader:Ti.meshtoon_vert,fragmentShader:Ti.meshtoon_frag},matcap:{uniforms:ai([Ei.common,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,Ei.fog,{matcap:{value:null}}]),vertexShader:Ti.meshmatcap_vert,fragmentShader:Ti.meshmatcap_frag},points:{uniforms:ai([Ei.points,Ei.fog]),vertexShader:Ti.points_vert,fragmentShader:Ti.points_frag},dashed:{uniforms:ai([Ei.common,Ei.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ti.linedashed_vert,fragmentShader:Ti.linedashed_frag},depth:{uniforms:ai([Ei.common,Ei.displacementmap]),vertexShader:Ti.depth_vert,fragmentShader:Ti.depth_frag},normal:{uniforms:ai([Ei.common,Ei.bumpmap,Ei.normalmap,Ei.displacementmap,{opacity:{value:1}}]),vertexShader:Ti.meshnormal_vert,fragmentShader:Ti.meshnormal_frag},sprite:{uniforms:ai([Ei.sprite,Ei.fog]),vertexShader:Ti.sprite_vert,fragmentShader:Ti.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null}},vertexShader:Ti.background_vert,fragmentShader:Ti.background_frag},cube:{uniforms:ai([Ei.envmap,{opacity:{value:1}}]),vertexShader:Ti.cube_vert,fragmentShader:Ti.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ti.equirect_vert,fragmentShader:Ti.equirect_frag},distanceRGBA:{uniforms:ai([Ei.common,Ei.displacementmap,{referencePosition:{value:new te},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ti.distanceRGBA_vert,fragmentShader:Ti.distanceRGBA_frag},shadow:{uniforms:ai([Ei.lights,Ei.fog,{color:{value:new Ft(0)},opacity:{value:1}}]),vertexShader:Ti.shadow_vert,fragmentShader:Ti.shadow_frag}};function Ri(t,e,n,i,r,s){const a=new Ft(0);let o,c,h=!0===r?0:1,u=null,d=0,p=null;function m(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,s)}return{getClearColor:function(){return a},setClearColor:function(t,e=1){a.set(t),h=e,m(a,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,m(a,h)},render:function(n,r){let s=!1,f=!0===r.isScene?r.background:null;f&&f.isTexture&&(f=e.get(f));const g=t.xr,v=g.getSession&&g.getSession();v&&"additive"===v.environmentBlendMode&&(f=null),null===f?m(a,h):f&&f.isColor&&(m(f,1),s=!0),(t.autoClear||s)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.mapping===l)?(void 0===c&&(c=new ni(new ri(1,1,1),new li({name:"BackgroundCubeMaterial",uniforms:si(Ai.cube.uniforms),vertexShader:Ai.cube.vertexShader,fragmentShader:Ai.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(c)),c.material.uniforms.envMap.value=f,c.material.uniforms.flipEnvMap.value=f.isCubeTexture&&!1===f.isRenderTargetTexture?-1:1,u===f&&d===f.version&&p===t.toneMapping||(c.material.needsUpdate=!0,u=f,d=f.version,p=t.toneMapping),n.unshift(c,c.geometry,c.material,0,0,null)):f&&f.isTexture&&(void 0===o&&(o=new ni(new Si(2,2),new li({name:"BackgroundMaterial",uniforms:si(Ai.background.uniforms),vertexShader:Ai.background.vertexShader,fragmentShader:Ai.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(o)),o.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),o.material.uniforms.uvTransform.value.copy(f.matrix),u===f&&d===f.version&&p===t.toneMapping||(o.material.needsUpdate=!0,u=f,d=f.version,p=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}}}function Ci(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function Di(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new yi,o=new Rt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0){const a=new mi(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}Ai.physical={uniforms:ai([Ai.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new At(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new Ft(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ft(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ft(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Ti.meshphysical_vert,fragmentShader:Ti.meshphysical_frag};class Ni extends ci{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}Ni.prototype.isOrthographicCamera=!0;const Bi=[.125,.215,.35,.446,.526,.582],zi=20,Oi=new Ni,Ui=new Ft;let Fi=null;const Hi=(1+Math.sqrt(5))/2,Gi=1/Hi,Vi=[new te(1,1,1),new te(-1,1,1),new te(1,1,-1),new te(-1,1,-1),new te(0,Hi,Gi),new te(0,Hi,-Gi),new te(Gi,0,Hi),new te(-Gi,0,Hi),new te(Hi,Gi,0),new te(-Hi,Gi,0)];class ki{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Fi=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Xi(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=qi(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-4?o=Bi[a-t+4-1]:0===a&&(o=0),i.push(o);const l=1/(s-1),c=-l/2,h=1+l/2,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),y=new Float32Array(f*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),y.set(u,f*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const _=new Un;_.setAttribute("position",new _n(v,m)),_.setAttribute("uv",new _n(y,f)),_.setAttribute("faceIndex",new _n(x,g)),e.push(_),r>4&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(zi),r=new te(0,1,0);return new li({name:"SphericalGaussianBlur",defines:{n:zi,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(i,t,e)}return i}_compileMaterial(t){const e=new ni(this._lodPlanes[0],t);this._renderer.compile(e,Oi)}_sceneToCubeUV(t,e,n,i){const r=new hi(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(Ui),o.toneMapping=0,o.autoClear=!1;const h=new vn({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),u=new ni(new ri,h);let d=!1;const p=t.background;p?p.isColor&&(h.color.copy(p),t.background=null,d=!0):(h.color.copy(Ui),d=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ji(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===r||t.mapping===s;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Xi()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=qi());const a=i?this._cubemapMaterial:this._equirectMaterial,o=new ni(this._lodPlanes[0],a);a.uniforms.envMap.value=t;const l=this._cubeSize;ji(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(o,Oi)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;ezi&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;tv-4?i-v+4:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(e),o.render(c,Oi)}}function Wi(t,e,n){const i=new Xt(t,e,n);return i.texture.mapping=l,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ji(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function qi(){return new li({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Xi(){return new li({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Ji(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ji(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Yi(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(l){if(l&&l.isTexture){const c=l.mapping,h=c===a||c===o,u=c===r||c===s;if(h||u){if(l.isRenderTargetTexture&&!0===l.needsPMREMUpdate){l.needsPMREMUpdate=!1;let i=e.get(l);return null===n&&(n=new ki(t)),i=h?n.fromEquirectangular(l,i):n.fromCubemap(l,i),e.set(l,i),i.texture}if(e.has(l))return e.get(l).texture;{const r=l.image;if(h&&r&&r.height>0||u&&r&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const f=new Float32Array(p*m*4*r),g=new Jt(f,p,m,r);g.format=T,g.type=b,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=cr[r];if(void 0===s&&(s=new Float32Array(r),cr[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function fr(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n/gm;function ys(t){return t.replace(vs,xs)}function xs(t,e){const n=Ti[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return ys(n)}const _s=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Ms=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function bs(t){return t.replace(Ms,Ss).replace(_s,ws)}function ws(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Ss(t,e,n,i)}function Ss(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(_+="\n"),M=[v,y].filter(ms).join("\n"),M.length>0&&(M+="\n")):(_=[Ts(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ms).join("\n"),M=[v,Ts(n),"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",g?"#define CUBEUV_TEXEL_WIDTH "+g.texelWidth:"",g?"#define CUBEUV_TEXEL_HEIGHT "+g.texelHeight:"",g?"#define CUBEUV_MAX_MIP "+g.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?Ti.tonemapping_pars_fragment:"",0!==n.toneMapping?ps("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Ti.encodings_pars_fragment,ds("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ms).join("\n")),h=ys(h),h=fs(h,n),h=gs(h,n),u=ys(u),u=fs(u,n),u=gs(u,n),h=bs(h),u=bs(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(b="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,M=["#define varying in",n.glslVersion===dt?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===dt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+M);const w=b+M+u,S=cs(a,35633,b+_+h),T=cs(a,35632,w);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,"position"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=us(a,S,"vertex"),n=us(a,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(x,35715)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==e&&""!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:M}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new ls(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,O=s.clearcoat>0;return{isWebGL2:d,shaderID:E,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:D,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:v,instancing:!0===_.isInstancedMesh,instancingColor:!0===_.isInstancedMesh&&null!==_.instanceColor,supportsVertexTextures:g,outputEncoding:null===B?t.outputEncoding:!0===B.isXRRenderTarget?B.texture.encoding:ot,map:!!s.map,matcap:!!s.matcap,envMap:!!S,envMapMode:S&&S.mapping,envMapCubeUVHeight:T,lightMap:!!s.lightMap,aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:1===s.normalMapType,tangentSpaceNormalMap:0===s.normalMapType,decodeVideoTexture:!!s.map&&!0===s.map.isVideoTexture&&s.map.encoding===lt,clearcoat:O,clearcoatMap:O&&!!s.clearcoatMap,clearcoatRoughnessMap:O&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:O&&!!s.clearcoatNormalMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularColorMap:!!s.specularColorMap,opaque:!1===s.transparent&&1===s.blending,alphaMap:!!s.alphaMap,alphaTest:z,gradientMap:!!s.gradientMap,sheen:s.sheen>0,sheenColorMap:!!s.sheenColorMap,sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!b.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUvs:!!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatMap||s.clearcoatRoughnessMap||s.clearcoatNormalMap||s.displacementMap||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheenColorMap||s.sheenRoughnessMap),uvsVertexOnly:!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatNormalMap||s.transmission>0||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheen>0||s.sheenColorMap||s.sheenRoughnessMap||!s.displacementMap),fog:!!M,useFog:s.fog,fogExp2:M&&M.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:p,skinning:!0===_.isSkinnedMesh&&A>0,maxBones:A,useVertexTexture:m,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:C,morphTextureStride:N,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:1===s.side,depthPacking:void 0!==s.depthPacking&&s.depthPacking,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.combine),t.push(e.vertexUvs),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.maxBones),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.map&&o.enable(4);e.matcap&&o.enable(5);e.envMap&&o.enable(6);e.lightMap&&o.enable(7);e.aoMap&&o.enable(8);e.emissiveMap&&o.enable(9);e.bumpMap&&o.enable(10);e.normalMap&&o.enable(11);e.objectSpaceNormalMap&&o.enable(12);e.tangentSpaceNormalMap&&o.enable(13);e.clearcoat&&o.enable(14);e.clearcoatMap&&o.enable(15);e.clearcoatRoughnessMap&&o.enable(16);e.clearcoatNormalMap&&o.enable(17);e.displacementMap&&o.enable(18);e.specularMap&&o.enable(19);e.roughnessMap&&o.enable(20);e.metalnessMap&&o.enable(21);e.gradientMap&&o.enable(22);e.alphaMap&&o.enable(23);e.alphaTest&&o.enable(24);e.vertexColors&&o.enable(25);e.vertexAlphas&&o.enable(26);e.vertexUvs&&o.enable(27);e.vertexTangents&&o.enable(28);e.uvsVertexOnly&&o.enable(29);e.fog&&o.enable(30);t.push(o.mask),o.disableAll(),e.useFog&&o.enable(0);e.flatShading&&o.enable(1);e.logarithmicDepthBuffer&&o.enable(2);e.skinning&&o.enable(3);e.useVertexTexture&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.physicallyCorrectLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.depthPacking&&o.enable(13);e.dithering&&o.enable(14);e.specularIntensityMap&&o.enable(15);e.specularColorMap&&o.enable(16);e.transmission&&o.enable(17);e.transmissionMap&&o.enable(18);e.thicknessMap&&o.enable(19);e.sheen&&o.enable(20);e.sheenColorMap&&o.enable(21);e.sheenRoughnessMap&&o.enable(22);e.decodeVideoTexture&&o.enable(23);e.opaque&&o.enable(24);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=y[t.type];let n;if(e){const t=Ai[e];n=oi.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=u.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Ds),i.length>1&&i.sort(e||Is),r.length>1&&r.sort(e||Is)}}}function Bs(){let t=new WeakMap;return{get:function(e,n){let i;return!1===t.has(e)?(i=new Ns,t.set(e,[i])):n>=t.get(e).length?(i=new Ns,t.get(e).push(i)):i=t.get(e)[n],i},dispose:function(){t=new WeakMap}}}function zs(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new te,color:new Ft};break;case"SpotLight":n={position:new te,direction:new te,color:new Ft,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new te,color:new Ft,distance:0,decay:0};break;case"HemisphereLight":n={direction:new te,skyColor:new Ft,groundColor:new Ft};break;case"RectAreaLight":n={color:new Ft,position:new te,halfWidth:new te,halfHeight:new te}}return t[e.id]=n,n}}}let Os=0;function Us(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Fs(t,e){const n=new zs,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new te);const s=new te,a=new Pe,o=new Pe;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0;s.sort(Us);const y=!0!==a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ei.LTC_FLOAT_1,r.rectAreaLTC2=Ei.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Ei.LTC_HALF_1,r.rectAreaLTC2=Ei.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const x=r.hash;x.directionalLength===h&&x.pointLength===u&&x.spotLength===d&&x.rectAreaLength===p&&x.hemiLength===m&&x.numDirectionalShadows===f&&x.numPointShadows===g&&x.numSpotShadows===v||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotShadowMatrix.length=v,x.directionalLength=h,x.pointLength=u,x.spotLength=d,x.rectAreaLength=p,x.hemiLength=m,x.numDirectionalShadows=f,x.numPointShadows=g,x.numSpotShadows=v,r.version=Os++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=n.get(i).length?(s=new Hs(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class Vs extends gn{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Vs.prototype.isMeshDepthMaterial=!0;class ks extends gn{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new te,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}ks.prototype.isMeshDistanceMaterial=!0;function Ws(t,e,n){let i=new Mi;const r=new At,s=new At,a=new qt,o=new Vs({depthPacking:3201}),l=new ks,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new li({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new Un;f.setAttribute("position",new _n(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new ni(f,d),y=this;function x(n,i){const r=e.update(v);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,m.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,m.needsUpdate=!0),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(e,n,i,r,s,a){let h=null;const d=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(h=void 0!==d?d:!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0){const t=h.uuid,e=n.uuid;let i=c[t];void 0===i&&(i={},c[t]=i);let r=i[e];void 0===r&&(r=h.clone(),i[e]=r),h=r}return h.visible=n.visible,h.wireframe=n.wireframe,h.side=3===a?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],h.alphaMap=n.alphaMap,h.alphaTest=n.alphaTest,h.clipShadows=n.clipShadows,h.clippingPlanes=n.clippingPlanes,h.clipIntersection=n.clipIntersection,h.displacementMap=n.displacementMap,h.displacementScale=n.displacementScale,h.displacementBias=n.displacementBias,h.wireframeLinewidth=n.wireframeLinewidth,h.linewidth=n.linewidth,!0===i.isPointLight&&!0===h.isMeshDistanceMaterial&&(h.referencePosition.setFromMatrixPosition(i.matrixWorld),h.nearDistance=r,h.farDistance=s),h}function M(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:T};u.map=new Xt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.mapPass=new Xt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:T};u.map=new Xt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t=1):-1!==L.indexOf("OpenGL ES")&&(C=parseFloat(/^OpenGL ES (\d)/.exec(L)[1]),R=C>=2);let P=null,D={};const I=t.getParameter(3088),N=t.getParameter(2978),B=(new qt).fromArray(I),z=(new qt).fromArray(N);function O(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Tt:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===D&&(D=B(s,a));const o=n?B(s,a):D;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function O(t){return wt(t.width)&&wt(t.height)}function U(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e){t.generateMipmap(e)}function H(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===lt&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function G(t,e,n){return!0===U(t,n)||t.isFramebufferTexture&&t.minFilter!==p&&t.minFilter!==g?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function V(t){return t===p||t===m||t===f?9728:9729}function k(t){const e=t.target;e.removeEventListener("dispose",k),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=I.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&j(t),0===Object.keys(r).length&&I.delete(n)}i.remove(t)}(e),e.isVideoTexture&&P.delete(e)}function W(e){const n=e.target;n.removeEventListener("dispose",W),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,r=n.length;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void Q(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}const J={[h]:10497,[u]:33071,[d]:33648},Y={[p]:9728,[m]:9984,[f]:9986,[g]:9729,[v]:9985,[y]:9987};function Z(n,s,a){if(a?(t.texParameteri(n,10242,J[s.wrapS]),t.texParameteri(n,10243,J[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,J[s.wrapR]),t.texParameteri(n,10240,Y[s.magFilter]),t.texParameteri(n,10241,Y[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===u&&s.wrapT===u||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,V(s.magFilter)),t.texParameteri(n,10241,V(s.minFilter)),s.minFilter!==p&&s.minFilter!==g&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.type===b&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===w&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function K(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",k));const r=n.source;let s=I.get(r);void 0===s&&(s={},I.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&j(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function Q(e,i,r){let a=3553;i.isDataArrayTexture&&(a=35866),i.isData3DTexture&&(a=32879);const l=K(e,i),c=i.source;if(n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),c.version!==c.__currentVersion||!0===l){t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const r=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===O(i.image);let l=z(i.image,r,!1,R);l=rt(i,l);const h=O(l)||o,d=s.convert(i.format,i.encoding);let m,f=s.convert(i.type),v=H(i.internalFormat,d,f,i.encoding,i.isVideoTexture);Z(a,i,h);const y=i.mipmaps,x=o&&!0!==i.isVideoTexture,w=void 0===e.__version,C=G(i,l,h);if(i.isDepthTexture)v=6402,o?v=i.type===b?36012:i.type===M?33190:i.type===S?35056:33189:i.type===b&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===E&&6402===v&&i.type!==_&&i.type!==M&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=_,f=s.convert(i.type)),i.format===A&&6402===v&&(v=34041,i.type!==S&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=S,f=s.convert(i.type))),x&&w?n.texStorage2D(3553,1,v,l.width,l.height):n.texImage2D(3553,0,v,l.width,l.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){x&&w&&n.texStorage2D(3553,C,v,y[0].width,y[0].height);for(let t=0,e=y.length;t0&&h){x&&w&&n.texStorage2D(3553,C,v,y[0].width,y[0].height);for(let t=0,e=y.length;t0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function rt(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===pt||i!==ot&&(i===lt?!1===o?!0===e.has("EXT_sRGB")&&r===T?(t.format=pt,t.minFilter=g,t.generateMipmaps=!1):n=Gt.sRGBToLinear(n):r===T&&s===x||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=q;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),q+=1,t},this.resetTextureUnits=function(){q=0},this.setTexture2D=X,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Q(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Q(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;const a=K(e,i),l=i.source;if(n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),l.version!==l.__currentVersion||!0===a){t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const r=i.isCompressedTexture||i.image[0].isCompressedTexture,a=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=r||a?a?i.image[t].image:i.image[t]:z(i.image[t],!1,!0,c),h[t]=rt(i,h[t]);const u=h[0],d=O(u)||o,p=s.convert(i.format,i.encoding),m=s.convert(i.type),f=H(i.internalFormat,p,m,i.encoding),g=o&&!0!==i.isVideoTexture,v=void 0===e.__version;let y,x=G(i,u,d);if(Z(34067,i,d),r){g&&v&&n.texStorage2D(34067,x,f,u.width,u.height);for(let t=0;t<6;t++){y=h[t].mipmaps;for(let e=0;e0&&x++,n.texStorage2D(34067,x,f,h[0].width,h[0].height));for(let t=0;t<6;t++)if(a){g?n.texSubImage2D(34069+t,0,0,0,h[t].width,h[t].height,p,m,h[t].data):n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e0&&!1===it(e)){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format,l.encoding),r=s.convert(l.type),a=H(l.internalFormat,i,r,l.encoding),o=nt(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),tt(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}if(u){n.bindTexture(34067,h.__webglTexture),Z(34067,l,p);for(let t=0;t<6;t++)$(c.__webglFramebuffer[t],e,l,36064,34069+t);U(l,p)&&F(34067),n.unbindTexture()}else if(d){const t=e.texture;for(let r=0,s=t.length;r0&&!1===it(e)){const r=e.width,s=e.height;let a=16384;const o=[36064],l=e.stencilBuffer?33306:36096;e.depthBuffer&&o.push(l);const c=i.get(e),h=void 0!==c.__ignoreDepthValues&&c.__ignoreDepthValues;!1===h&&(e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024)),n.bindFramebuffer(36008,c.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,c.__webglFramebuffer),!0===h&&(t.invalidateFramebuffer(36008,[l]),t.invalidateFramebuffer(36009,[l])),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),t.invalidateFramebuffer(36008,o),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,c.__webglMultisampledFramebuffer)}},this.setupDepthRenderbuffer=et,this.setupFrameBufferTexture=$,this.useMultisampledRTT=it}function Xs(t,e,n){const i=n.isWebGL2;return{convert:function(t,n=null){let r;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===M)return 5125;if(t===b)return 5126;if(t===w)return i?5131:(r=e.get("OES_texture_half_float"),null!==r?r.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===E)return 6402;if(t===A)return 34041;if(1028===t)return 6403;if(1022===t)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(t===pt)return r=e.get("EXT_sRGB"),null!==r?r.SRGB_ALPHA_EXT:null;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1033===t)return 36249;if(t===R||t===C||t===L||t===P)if(n===lt){if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===r)return null;if(t===R)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(t===C)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(t===L)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(t===P)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(r=e.get("WEBGL_compressed_texture_s3tc"),null===r)return null;if(t===R)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===L)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===P)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===D||t===I||t===N||t===B){if(r=e.get("WEBGL_compressed_texture_pvrtc"),null===r)return null;if(t===D)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===I)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===N)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===B)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return r=e.get("WEBGL_compressed_texture_etc1"),null!==r?r.COMPRESSED_RGB_ETC1_WEBGL:null;if(t===z||t===O){if(r=e.get("WEBGL_compressed_texture_etc"),null===r)return null;if(t===z)return n===lt?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(t===O)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(t===U||t===F||t===H||t===G||t===V||t===k||t===W||t===j||t===q||t===X||t===J||t===Y||t===Z||t===K){if(r=e.get("WEBGL_compressed_texture_astc"),null===r)return null;if(t===U)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(t===F)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(t===H)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(t===G)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(t===V)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(t===k)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(t===W)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(t===j)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(t===q)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(t===X)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(t===J)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(t===Y)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(t===Z)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(t===K)return n===lt?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(t===Q){if(r=e.get("EXT_texture_compression_bptc"),null===r)return null;if(t===Q)return n===lt?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT}return t===S?i?34042:(r=e.get("WEBGL_depth_texture"),null!==r?r.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class Js extends hi{constructor(t=[]){super(),this.cameras=t}}Js.prototype.isArrayCamera=!0;class Ys extends nn{constructor(){super(),this.type="Group"}}Ys.prototype.isGroup=!0;const Zs={type:"move"};class Ks{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Ys,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Ys,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new te,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new te),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Ys,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new te,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new te),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Zs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new Ys;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class Qs extends jt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:E)!==E&&c!==A)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===E&&(n=_),void 0===n&&c===A&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Qs.prototype.isDepthTexture=!0;class $s extends mt{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=null,l=null,c=null,h=null,u=null;const d=e.getContextAttributes();let p=null,m=null;const f=[],g=new Map,v=new hi;v.layers.enable(1),v.viewport=new qt;const y=new hi;y.layers.enable(2),y.viewport=new qt;const M=[v,y],b=new Js;b.layers.enable(1),b.layers.enable(2);let w=null,R=null;function C(t){const e=g.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function L(){g.forEach((function(t,e){t.disconnect(e)})),g.clear(),w=null,R=null,t.setRenderTarget(p),h=null,c=null,l=null,i=null,m=null,z.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function P(t){const e=i.inputSources;for(let t=0;t0&&(e.alphaTest.value=n.alphaTest);const i=t.get(n).envMap;let r,s;i&&(e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,e.reflectivity.value=n.reflectivity,e.ior.value=n.ior,e.refractionRatio.value=n.refractionRatio),n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap?r=n.clearcoatRoughnessMap:n.specularIntensityMap?r=n.specularIntensityMap:n.specularColorMap?r=n.specularColorMap:n.transmissionMap?r=n.transmissionMap:n.thicknessMap?r=n.thicknessMap:n.sheenColorMap?r=n.sheenColorMap:n.sheenRoughnessMap&&(r=n.sheenRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,s,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap);e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap)}(t,i,a):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,s):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function ea(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=Dt("canvas");return t.style.display="block",t}(),n=void 0!==t.context?t.context:null,i=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,s=void 0!==t.antialias&&t.antialias,a=void 0===t.premultipliedAlpha||t.premultipliedAlpha,o=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,l=void 0!==t.powerPreference?t.powerPreference:"default",c=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let h;h=void 0!==t.context?n.getContextAttributes().alpha:void 0!==t.alpha&&t.alpha;let u=null,d=null;const p=[],m=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=ot,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const f=this;let g=!1,v=0,_=0,M=null,S=-1,E=null;const A=new qt,R=new qt;let C=null,L=e.width,P=e.height,D=1,I=null,N=null;const B=new qt(0,0,L,P),z=new qt(0,0,L,P);let O=!1;const U=new Mi;let F=!1,H=!1,G=null;const V=new Pe,k=new At,W=new te,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return null===M?D:1}let X,J,Y,Z,K,Q,$,tt,et,nt,it,rt,st,at,lt,ct,ht,ut,dt,pt,mt,ft,gt,vt=n;function yt(t,n){for(let i=0;i0&&function(t,e,n){const i=J.isWebGL2;null===G&&(G=new Xt(1,1,{generateMipmaps:!0,type:null!==ft.convert(w)?w:x,minFilter:y,samples:i&&!0===s?4:0}));f.getDrawingBufferSize(k),i?G.setSize(k.x,k.y):G.setSize(Tt(k.x),Tt(k.y));const r=f.getRenderTarget();f.setRenderTarget(G),f.clear();const a=f.toneMapping;f.toneMapping=0,It(t,e,n),f.toneMapping=a,Q.updateMultisampleRenderTarget(G),Q.updateRenderTargetMipmap(G),f.setRenderTarget(r)}(r,e,n),i&&Y.viewport(A.copy(i)),r.length>0&&It(r,e,n),a.length>0&&It(a,e,n),o.length>0&&It(o,e,n),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function It(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?m[m.length-1]:null,p.pop(),u=p.length>0?p[p.length-1]:null},this.getActiveCubeFace=function(){return v},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return M},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),t.useRenderToTexture=!1,t.useRenderbuffer=!0))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){M=t,v=e,_=n;let i=!0;if(t){const e=K.get(t);void 0!==e.__useDefaultFramebuffer?(Y.bindFramebuffer(36160,null),i=!1):void 0===e.__webglFramebuffer?Q.setupRenderTarget(t):e.__hasExternalTextures&&Q.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture)}let r=null,s=!1,a=!1;if(t){const n=t.texture;(n.isData3DTexture||n.isDataArrayTexture)&&(a=!0);const i=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=i[e],s=!0):r=J.isWebGL2&&t.samples>0&&!1===Q.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:i,A.copy(t.viewport),R.copy(t.scissor),C=t.scissorTest}else A.copy(B).multiplyScalar(D).floor(),R.copy(z).multiplyScalar(D).floor(),C=O;if(Y.bindFramebuffer(36160,r)&&J.drawBuffers&&i&&Y.drawBuffers(t,r),Y.viewport(A),Y.scissor(R),Y.setScissorTest(C),s){const i=K.get(t.texture);vt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;vt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}S=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Y.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==T&&ft.convert(o)!==vt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===w&&(X.has("EXT_color_buffer_half_float")||J.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===x||ft.convert(l)===vt.getParameter(35738)||l===b&&(J.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===vt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&vt.readPixels(e,n,i,r,ft.convert(o),ft.convert(l),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const t=null!==M?K.get(M).__webglFramebuffer:null;Y.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){if(!0!==e.isFramebufferTexture)return void console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);Q.setTexture2D(e,0),vt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Y.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=ft.convert(n.format),o=ft.convert(n.type);Q.setTexture2D(n,0),vt.pixelStorei(37440,n.flipY),vt.pixelStorei(37441,n.premultiplyAlpha),vt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?vt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?vt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):vt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&vt.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(f.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=ft.convert(i.format),c=ft.convert(i.type);let h;if(i.isData3DTexture)Q.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Q.setTexture2DArray(i,0),h=35866}vt.pixelStorei(37440,i.flipY),vt.pixelStorei(37441,i.premultiplyAlpha),vt.pixelStorei(3317,i.unpackAlignment);const u=vt.getParameter(3314),d=vt.getParameter(32878),p=vt.getParameter(3316),m=vt.getParameter(3315),g=vt.getParameter(32877),v=n.isCompressedTexture?n.mipmaps[0]:n.image;vt.pixelStorei(3314,v.width),vt.pixelStorei(32878,v.height),vt.pixelStorei(3316,t.min.x),vt.pixelStorei(3315,t.min.y),vt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?vt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,v.data):n.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),vt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,v.data)):vt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,v),vt.pixelStorei(3314,u),vt.pixelStorei(32878,d),vt.pixelStorei(3316,p),vt.pixelStorei(3315,m),vt.pixelStorei(32877,g),0===r&&i.generateMipmaps&&vt.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(t){Q.setTexture2D(t,0),Y.unbindTexture()},this.resetState=function(){v=0,_=0,M=null,Y.reset(),gt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}ea.prototype.isWebGLRenderer=!0;class na extends ea{}na.prototype.isWebGL1Renderer=!0;class ia{constructor(t,e=25e-5){this.name="",this.color=new Ft(t),this.density=e}clone(){return new ia(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}ia.prototype.isFogExp2=!0;class ra{constructor(t,e=1,n=1e3){this.name="",this.color=new Ft(t),this.near=e,this.far=n}clone(){return new ra(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}ra.prototype.isFog=!0;class sa extends nn{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}sa.prototype.isScene=!0;class aa{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=ht,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=xt()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:ua.clone(),uv:mn.getUV(ua,va,ya,xa,_a,Ma,ba,new At),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Sa(t,e,n,i,r,s){ma.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(fa.x=s*ma.x-r*ma.y,fa.y=r*ma.x+s*ma.y):fa.copy(ma),t.copy(e),t.x+=fa.x,t.y+=fa.y,t.applyMatrix4(ga)}wa.prototype.isSprite=!0;const Ta=new te,Ea=new te;class Aa extends nn{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Ta.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Ta);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Ta.setFromMatrixPosition(t.matrixWorld),Ea.setFromMatrixPosition(this.matrixWorld);const n=Ta.distanceTo(Ea)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);dt.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Ka.prototype.isLine=!0;const Qa=new te,$a=new te;class to extends Ka{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function lo(t,e,n,i,r,s,a){const o=ro.distanceSqToPoint(t);if(or.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}oo.prototype.isPoints=!0;class co extends jt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}co.prototype.isVideoTexture=!0;class ho extends jt{constructor(t,e,n){super({width:t,height:e}),this.format=n,this.magFilter=p,this.minFilter=p,this.generateMipmaps=!1,this.needsUpdate=!0}}ho.prototype.isFramebufferTexture=!0;class uo extends jt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}uo.prototype.isCompressedTexture=!0;class po extends jt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}po.prototype.isCanvasTexture=!0;class mo extends Un{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new te,c=new At;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new Cn(s,3)),this.setAttribute("normal",new Cn(a,3)),this.setAttribute("uv",new Cn(o,2))}static fromJSON(t){return new mo(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class fo extends Un{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new At,m=new te;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Cn(h,3)),this.setAttribute("normal",new Cn(u,3)),this.setAttribute("uv",new Cn(d,2))}static fromJSON(t){return new fo(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class go extends fo{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new go(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class vo extends Un{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Cn(r,3)),this.setAttribute("normal",new Cn(r.slice(),3)),this.setAttribute("uv",new Cn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new vo(t.vertices,t.indices,t.radius,t.details)}}class yo extends vo{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new yo(t.radius,t.detail)}}const xo=new te,_o=new te,Mo=new te,bo=new mn;class wo extends Un{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(vt*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new At:new te);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new te,i=[],r=[],s=[],a=new te,o=new Pe;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new te)}r[0]=new te,s[0]=new te;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(_t(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(_t(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class To extends So{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new At,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Ro.subVectors(i[0],i[1]).add(i[0]),a=Ro);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Io(a,o.x,l.x,c.x,h.x),Io(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qo extends jo{constructor(t){super(t),this.uuid=xt(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return Zo(s,a,n,o,l,p),a};function Jo(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=fl(s,t[s],t[s+1],a);return a&&cl(a,a.next)&&(gl(a),a=a.next),a}function Yo(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!cl(i,i.next)&&0!==ll(i.prev,i,i.next))i=i.next;else{if(gl(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Zo(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=rl(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Qo(t,i,r,s):Ko(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),gl(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Zo(t=$o(Yo(t),e,n),e,n,i,r,s,2):2===a&&tl(t,e,n,i,r,s):Zo(Yo(t),e,n,i,r,s,1);break}}function Ko(t){const e=t.prev,n=t,i=t.next;if(ll(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(al(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&ll(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function Qo(t,e,n,i){const r=t.prev,s=t,a=t.next;if(ll(r,s,a)>=0)return!1;const o=r.xs.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=rl(o,l,e,n,i),d=rl(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&ll(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&ll(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&ll(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&al(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&ll(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function $o(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!cl(r,s)&&hl(r,i,i.next,s)&&pl(r,s)&&pl(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),gl(i),gl(i.next),i=t=s),i=i.next}while(i!==t);return Yo(i)}function tl(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&ol(a,t)){let o=ml(a,t);return a=Yo(a,a.next),o=Yo(o,o.next),Zo(a,e,n,i,r,s),void Zo(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function el(t,e){return t.x-e.x}function nl(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x=n.x&&n.x>=l&&i!==n.x&&al(rs.x||n.x===s.x&&il(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e),e){const n=ml(e,t);Yo(e,e.next),Yo(n,n.next)}}function il(t,e){return ll(t.prev,t,e.prev)<0&&ll(e.next,t,t.next)<0}function rl(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function sl(t){let e=t,n=t;do{(e.x=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function ol(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&hl(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(pl(t,e)&&pl(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(ll(t.prev,t,e.prev)||ll(t,e.prev,e))||cl(t,e)&&ll(t.prev,t,t.next)>0&&ll(e.prev,e,e.next)>0)}function ll(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function cl(t,e){return t.x===e.x&&t.y===e.y}function hl(t,e,n,i){const r=dl(ll(t,e,n)),s=dl(ll(t,e,i)),a=dl(ll(n,i,t)),o=dl(ll(n,i,e));return r!==s&&a!==o||(!(0!==r||!ul(t,n,e))||(!(0!==s||!ul(t,i,e))||(!(0!==a||!ul(n,t,i))||!(0!==o||!ul(n,e,i)))))}function ul(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function dl(t){return t>0?1:t<0?-1:0}function pl(t,e){return ll(t.prev,t,t.next)<0?ll(t,e,t.next)>=0&&ll(t,t.prev,e)>=0:ll(t,e,t.prev)<0||ll(t,t.next,e)<0}function ml(t,e){const n=new vl(t.i,t.x,t.y),i=new vl(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function fl(t,e,n,i){const r=new vl(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function gl(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function vl(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class yl{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function _l(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new At(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new At(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}Fl.prototype.isMeshPhysicalMaterial=!0;class Hl extends gn{constructor(t){super(),this.type="MeshPhongMaterial",this.color=new Ft(16777215),this.specular=new Ft(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}Hl.prototype.isMeshPhongMaterial=!0;class Gl extends gn{constructor(t){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ft(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}Gl.prototype.isMeshToonMaterial=!0;class Vl extends gn{constructor(t){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}Vl.prototype.isMeshNormalMaterial=!0;class kl extends gn{constructor(t){super(),this.type="MeshLambertMaterial",this.color=new Ft(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ft(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}kl.prototype.isMeshLambertMaterial=!0;class Wl extends gn{constructor(t){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ft(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new At(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this}}Wl.prototype.isMeshMatcapMaterial=!0;class jl extends ja{constructor(t){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}jl.prototype.isLineDashedMaterial=!0;const ql={ShadowMaterial:zl,SpriteMaterial:ca,RawShaderMaterial:Ol,ShaderMaterial:li,PointsMaterial:no,MeshPhysicalMaterial:Fl,MeshStandardMaterial:Ul,MeshPhongMaterial:Hl,MeshToonMaterial:Gl,MeshNormalMaterial:Vl,MeshLambertMaterial:kl,MeshDepthMaterial:Vs,MeshDistanceMaterial:ks,MeshBasicMaterial:vn,MeshMatcapMaterial:Wl,LineDashedMaterial:jl,LineBasicMaterial:ja,Material:gn};gn.fromType=function(t){return new ql[t]};const Xl={arraySlice:function(t,e,n){return Xl.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Xl.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Xl.arraySlice(t.resultBuffer,e,n)}if("quaternion"===r){(new $t).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Xl.arraySlice(n,r,s),this.values=Xl.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Xl.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Xl.arraySlice(this.times),e=Xl.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===et,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Xl.arraySlice(t,0,s),this.values=Xl.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Xl.arraySlice(this.times,0),e=Xl.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Ql.prototype.TimeBufferType=Float32Array,Ql.prototype.ValueBufferType=Float32Array,Ql.prototype.DefaultInterpolation=tt;class $l extends Ql{}$l.prototype.ValueTypeName="bool",$l.prototype.ValueBufferType=Array,$l.prototype.DefaultInterpolation=$,$l.prototype.InterpolantFactoryMethodLinear=void 0,$l.prototype.InterpolantFactoryMethodSmooth=void 0;class tc extends Ql{}tc.prototype.ValueTypeName="color";class ec extends Ql{}ec.prototype.ValueTypeName="number";class nc extends Jl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)$t.slerpFlat(r,0,s,l-a,s,l,o);return r}}class ic extends Ql{InterpolantFactoryMethodLinear(t){return new nc(this.times,this.values,this.getValueSize(),t)}}ic.prototype.ValueTypeName="quaternion",ic.prototype.DefaultInterpolation=tt,ic.prototype.InterpolantFactoryMethodSmooth=void 0;class rc extends Ql{}rc.prototype.ValueTypeName="string",rc.prototype.ValueBufferType=Array,rc.prototype.DefaultInterpolation=$,rc.prototype.InterpolantFactoryMethodLinear=void 0,rc.prototype.InterpolantFactoryMethodSmooth=void 0;class sc extends Ql{}sc.prototype.ValueTypeName="vector";class ac{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=xt(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(oc(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Ql.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Xl.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==dc[t])return void dc[t].push({onLoad:e,onProgress:n,onError:i});dc[t]=[],dc[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=dc[t],i=e.body.getReader(),r=e.headers.get("Content-Length"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{lc.add(t,e);const n=dc[t];delete dc[t];for(let t=0,i=n.length;t{const n=dc[t];if(void 0===n)throw this.manager.itemError(t),e;delete dc[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class mc extends uc{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=lc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=Dt("img");function o(){c(),lc.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class fc extends uc{constructor(t){super(t)}load(t,e,n,i){const r=new pi,s=new mc(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Ft).setHex(r.value);break;case"v2":i.uniforms[e].value=(new At).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new te).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new qt).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new Rt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new Pe).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new At).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new At).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}}class Uc{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){$t.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;$t.multiplyQuaternionsFlat(t,s,t,e,t,n),$t.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const dh="\\[\\]\\.:\\/",ph=new RegExp("[\\[\\]\\.:\\/]","g"),mh="[^\\[\\]\\.:\\/]",fh="[^"+dh.replace("\\.","")+"]",gh=/((?:WC+[\/:])*)/.source.replace("WC",mh),vh=/(WCOD+)?/.source.replace("WCOD",fh),yh=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",mh),xh=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",mh),_h=new RegExp("^"+gh+vh+yh+xh+"$"),Mh=["material","materials","bones"];class bh{constructor(t,e,n){this.path=e,this.parsedPath=n||bh.parseTrackName(e),this.node=bh.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new bh.Composite(t,e,n):new bh(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(ph,"")}static parseTrackName(t){const e=_h.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==Mh.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new bh(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}wh.prototype.isAnimationObjectGroup=!0;class Sh{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:nt,endingEnd:nt};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===at)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=it,i.endingEnd=it):(i.endingStart=t?this.zeroSlopeAtStart?it:nt:rt,i.endingEnd=e?this.zeroSlopeAtEnd?it:nt:rt)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Th extends mt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new uh(bh.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Ph.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Dh.prototype.isBox2=!0;const Ih=new te,Nh=new te;class Bh{constructor(t=new te,e=new te){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Ih.subVectors(t,this.start),Nh.subVectors(this.end,this.start);const n=Nh.dot(Nh);let i=Nh.dot(Ih)/n;return e&&(i=_t(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const zh=new te;const Oh=new te,Uh=new Pe,Fh=new Pe;class Hh extends to{constructor(t){const e=Gh(t),n=new Un,i=[],r=[],s=new Ft(0,0,1),a=new Ft(0,1,0);for(let t=0;t.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{tu.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(tu,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=sh,t.AudioAnalyser=hh,t.AudioContext=qc,t.AudioListener=class extends nn{constructor(){super(),this.type="AudioListener",this.context=qc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new $c}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(eh,nh,ih),rh.set(0,0,-1).applyQuaternion(nh),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(eh.x,t),e.positionY.linearRampToValueAtTime(eh.y,t),e.positionZ.linearRampToValueAtTime(eh.z,t),e.forwardX.linearRampToValueAtTime(rh.x,t),e.forwardY.linearRampToValueAtTime(rh.y,t),e.forwardZ.linearRampToValueAtTime(rh.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(eh.x,eh.y,eh.z),e.setOrientation(rh.x,rh.y,rh.z,n.x,n.y,n.z)}},t.AudioLoader=Xc,t.AxesHelper=iu,t.AxisHelper=function(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new iu(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new gc(t)},t.Bone=Na,t.BooleanKeyframeTrack=$l,t.BoundingBoxHelper=function(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new $h(t,e)},t.Box2=Dh,t.Box3=ie,t.Box3Helper=class extends to{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Un;i.setIndex(new _n(n,1)),i.setAttribute("position",new Cn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ja({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=ri,t.BoxGeometry=ri,t.BoxHelper=$h,t.BufferAttribute=_n,t.BufferGeometry=Un,t.BufferGeometryLoader=Hc,t.ByteType=1010,t.Cache=lc,t.Camera=ci,t.CameraHelper=class extends to{constructor(t){const e=new Un,n=new ja({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new Ft(16755200),o=new Ft(16711680),l=new Ft(43775),c=new Ft(16777215),h=new Ft(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",o),u("p","n2",o),u("p","n3",o),u("p","n4",o),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l),u("c","t",c),u("p","c",h),u("cn1","cn2",h),u("cn3","cn4",h),u("cf1","cf2",h),u("cf3","cf4",h),e.setAttribute("position",new Cn(i,3)),e.setAttribute("color",new Cn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;Zh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),Kh("c",e,t,Zh,0,0,-1),Kh("t",e,t,Zh,0,0,1),Kh("n1",e,t,Zh,-1,-1,-1),Kh("n2",e,t,Zh,1,-1,-1),Kh("n3",e,t,Zh,-1,1,-1),Kh("n4",e,t,Zh,1,1,-1),Kh("f1",e,t,Zh,-1,-1,1),Kh("f2",e,t,Zh,1,-1,1),Kh("f3",e,t,Zh,-1,1,1),Kh("f4",e,t,Zh,1,1,1),Kh("u1",e,t,Zh,.7,1.1,-1),Kh("u2",e,t,Zh,-.7,1.1,-1),Kh("u3",e,t,Zh,0,2,-1),Kh("cf1",e,t,Zh,-1,0,1),Kh("cf2",e,t,Zh,1,0,1),Kh("cf3",e,t,Zh,0,-1,1),Kh("cf4",e,t,Zh,0,1,1),Kh("cn1",e,t,Zh,-1,0,-1),Kh("cn2",e,t,Zh,1,0,-1),Kh("cn3",e,t,Zh,0,-1,-1),Kh("cn4",e,t,Zh,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")},t.CanvasTexture=po,t.CatmullRomCurve3=Do,t.CineonToneMapping=3,t.CircleBufferGeometry=mo,t.CircleGeometry=mo,t.ClampToEdgeWrapping=u,t.Clock=$c,t.Color=Ft,t.ColorKeyframeTrack=tc,t.CompressedTexture=uo,t.CompressedTextureLoader=class extends uc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new uo,o=new pc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e65504&&(console.warn("THREE.DataUtils.toHalfFloat(): value exceeds 65504."),t=65504),ru[0]=t;const e=su[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=hc,t.DepthFormat=E,t.DepthStencilFormat=A,t.DepthTexture=Qs,t.DirectionalLight=Dc,t.DirectionalLightHelper=class extends nn{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new Un;i.setAttribute("position",new Cn([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ja({fog:!1,toneMapped:!1});this.lightPlane=new Ka(i,r),this.add(this.lightPlane),i=new Un,i.setAttribute("position",new Cn([0,0,0,0,0,1],3)),this.targetLine=new Ka(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){qh.setFromMatrixPosition(this.light.matrixWorld),Xh.setFromMatrixPosition(this.light.target.matrixWorld),Jh.subVectors(Xh,qh),this.lightPlane.lookAt(Xh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Xh),this.targetLine.scale.z=Jh.length()}},t.DiscreteInterpolant=Kl,t.DodecahedronBufferGeometry=yo,t.DodecahedronGeometry=yo,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new _n(t,e).setUsage(ut)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=ut,t.DynamicReadUsage=35049,t.EdgesGeometry=wo,t.EdgesHelper=function(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new to(new wo(t.geometry),new ja({color:void 0!==e?e:16777215}))},t.EllipseCurve=To,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=Ge,t.EventDispatcher=mt,t.ExtrudeBufferGeometry=Ml,t.ExtrudeGeometry=Ml,t.FaceColors=1,t.FileLoader=pc,t.FlatShading=1,t.Float16BufferAttribute=Rn,t.Float32Attribute=function(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new Cn(t,e)},t.Float32BufferAttribute=Cn,t.Float64Attribute=function(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new Ln(t,e)},t.Float64BufferAttribute=Ln,t.FloatType=b,t.Fog=ra,t.FogExp2=ia,t.Font=function(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")},t.FontLoader=function(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")},t.FramebufferTexture=ho,t.FrontSide=0,t.Frustum=Mi,t.GLBufferAttribute=Rh,t.GLSL1="100",t.GLSL3=dt,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=jh,t.Group=Ys,t.HalfFloatType=w,t.HemisphereLight=xc,t.HemisphereLightHelper=class extends nn{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new Tl(e);i.rotateY(.5*Math.PI),this.material=new vn({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new _n(s,3)),this.add(new ni(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");kh.copy(this.light.color),Wh.copy(this.light.groundColor);for(let t=0,n=e.count;t0){const n=new cc(e);r=new mc(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new mc(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;eNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=yl.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new qo,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e1){let t=!1,e=0;for(let t=0,e=d.length;t0&&!1===t&&(f=u)}for(let t=0,e=d.length;t there. + continue; } + parseNode( node, style ); + } if ( transform ) { diff --git a/package.json b/package.json index 4c27b88..503a9af 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "clean-css-cli": "^5.5.2", "docdash": "^1.2.0", "esbuild": "^0.14.23", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "eslint-plugin-unused-imports": "^2.0.0", "fantasticon": "^1.2.2", "http-server": "^14.0.0", @@ -40,8 +40,8 @@ "@simonwep/pickr": "1.8.2", "draco3d": "1.5.2", "fflate": "0.7.3", - "rhino3dm": "7.11.1", - "three": "0.138.0", + "rhino3dm": "7.14.0", + "three": "0.138.2", "web-ifc": "0.0.33", "occt-import-js" : "0.0.4" },