@ridp/threejs 1.4.3 → 1.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ImageLoader-6mmE7g5P.cjs +24 -0
- package/dist/ImageLoader-CnBqJLru.js +1444 -0
- package/dist/PredictiveLoader-DTN7SDRI.js +3842 -0
- package/dist/PredictiveLoader-KOCZXzGy.cjs +2 -0
- package/dist/assets/{gltfParser.worker-Bqz8BBJx.js → gltfParser.worker-D2lwod50.js} +2 -2
- package/dist/assets/{gltfParserOptimized.worker-DfipxPjm.js → gltfParserOptimized.worker-yo8WMPFM.js} +2 -2
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.js +9 -12
- package/dist/{packages/threejs/src/utils/modelOptimizer.js → modelOptimizer-D6fRg-DF.js} +1 -1
- package/dist/threejs.cjs +3 -1
- package/dist/threejs.js +428 -58
- package/dist/useBatchGLTFLoader-19GZ1dxv.cjs +5 -0
- package/dist/useBatchGLTFLoader-DPT0_95u.js +493 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +32 -40
- package/package.json +1 -1
- package/dist/packages/threejs/package.json.cjs +0 -1
- package/dist/packages/threejs/package.json.js +0 -4
- package/dist/packages/threejs/src/hooks/useBatchGLTFLoader.cjs +0 -1
- package/dist/packages/threejs/src/hooks/useBatchGLTFLoader.js +0 -83
- package/dist/packages/threejs/src/hooks/useGLTFLoader.cjs +0 -1
- package/dist/packages/threejs/src/hooks/useGLTFLoader.js +0 -292
- package/dist/packages/threejs/src/hooks/useObb.cjs +0 -1
- package/dist/packages/threejs/src/hooks/useObb.js +0 -41
- package/dist/packages/threejs/src/hooks/useRaycaster.cjs +0 -1
- package/dist/packages/threejs/src/hooks/useRaycaster.js +0 -35
- package/dist/packages/threejs/src/hooks/useThreeJs.cjs +0 -5
- package/dist/packages/threejs/src/hooks/useThreeJs.js +0 -153
- package/dist/packages/threejs/src/instance/IDBCache.cjs +0 -1
- package/dist/packages/threejs/src/instance/IDBCache.js +0 -142
- package/dist/packages/threejs/src/instance/threeIns.cjs +0 -3
- package/dist/packages/threejs/src/instance/threeIns.js +0 -393
- package/dist/packages/threejs/src/utils/CacheMonitor.cjs +0 -1
- package/dist/packages/threejs/src/utils/CacheMonitor.js +0 -125
- package/dist/packages/threejs/src/utils/ImageLoader.cjs +0 -1
- package/dist/packages/threejs/src/utils/ImageLoader.js +0 -33
- package/dist/packages/threejs/src/utils/PredictiveLoader.cjs +0 -1
- package/dist/packages/threejs/src/utils/PredictiveLoader.js +0 -155
- package/dist/packages/threejs/src/utils/RetryHelper.cjs +0 -1
- package/dist/packages/threejs/src/utils/RetryHelper.js +0 -108
- package/dist/packages/threejs/src/utils/common.cjs +0 -1
- package/dist/packages/threejs/src/utils/common.js +0 -15
- package/dist/packages/threejs/src/utils/css3dHelper.cjs +0 -15
- package/dist/packages/threejs/src/utils/css3dHelper.js +0 -42
- package/dist/packages/threejs/src/utils/disposeObject.cjs +0 -1
- package/dist/packages/threejs/src/utils/disposeObject.js +0 -13
- package/dist/packages/threejs/src/utils/helper.cjs +0 -1
- package/dist/packages/threejs/src/utils/helper.js +0 -47
- package/dist/packages/threejs/src/utils/modelSerialize.cjs +0 -1
- package/dist/packages/threejs/src/utils/modelSerialize.js +0 -225
- package/dist/packages/threejs/src/utils/sceneRebuilder.cjs +0 -1
- package/dist/packages/threejs/src/utils/sceneRebuilder.js +0 -138
- package/dist/packages/threejs/src/workers/gltfParser.worker.cjs +0 -1
- package/dist/packages/threejs/src/workers/gltfParser.worker.js +0 -11
- package/dist/packages/threejs/src/workers/gltfParserOptimized.worker.cjs +0 -1
- package/dist/packages/threejs/src/workers/gltfParserOptimized.worker.js +0 -11
- /package/dist/{packages/threejs/src/utils/modelOptimizer.cjs → modelOptimizer-A0Cs6f9e.cjs} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";const sn=require("./PredictiveLoader-KOCZXzGy.cjs"),F=require("three");/*!
|
|
2
|
+
fflate - fast JavaScript compression/decompression
|
|
3
|
+
<https://101arrowz.github.io/fflate>
|
|
4
|
+
Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
|
|
5
|
+
version 0.8.2
|
|
6
|
+
*/var ce=Uint8Array,De=Uint16Array,$n=Int32Array,an=new ce([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),un=new ce([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),qn=new ce([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hn=function(h,u){for(var E=new De(31),_=0;_<31;++_)E[_]=u+=1<<h[_-1];for(var I=new $n(E[30]),_=1;_<30;++_)for(var X=E[_];X<E[_+1];++X)I[X]=X-E[_]<<5|_;return{b:E,r:I}},pn=hn(an,2),fn=pn.b,Vn=pn.r;fn[28]=258,Vn[258]=28;var Jn=hn(un,0),Qn=Jn.b,je=new De(32768);for(var z=0;z<32768;++z){var de=(z&43690)>>1|(z&21845)<<1;de=(de&52428)>>2|(de&13107)<<2,de=(de&61680)>>4|(de&3855)<<4,je[z]=((de&65280)>>8|(de&255)<<8)>>1}var He=function(h,u,E){for(var _=h.length,I=0,X=new De(u);I<_;++I)h[I]&&++X[h[I]-1];var U=new De(u);for(I=1;I<u;++I)U[I]=U[I-1]+X[I-1]<<1;var J;if(E){J=new De(1<<u);var ye=15-u;for(I=0;I<_;++I)if(h[I])for(var Ae=I<<4|h[I],se=u-h[I],b=U[h[I]-1]++<<se,B=b|(1<<se)-1;b<=B;++b)J[je[b]>>ye]=Ae}else for(J=new De(_),I=0;I<_;++I)h[I]&&(J[I]=je[U[h[I]-1]++]>>15-h[I]);return J},Ze=new ce(288);for(var z=0;z<144;++z)Ze[z]=8;for(var z=144;z<256;++z)Ze[z]=9;for(var z=256;z<280;++z)Ze[z]=7;for(var z=280;z<288;++z)Ze[z]=8;var En=new ce(32);for(var z=0;z<32;++z)En[z]=5;var jn=He(Ze,9,1),et=He(En,5,1),Ve=function(h){for(var u=h[0],E=1;E<h.length;++E)h[E]>u&&(u=h[E]);return u},ue=function(h,u,E){var _=u/8|0;return(h[_]|h[_+1]<<8)>>(u&7)&E},Je=function(h,u){var E=u/8|0;return(h[E]|h[E+1]<<8|h[E+2]<<16)>>(u&7)},nt=function(h){return(h+7)/8|0},tt=function(h,u,E){return(E==null||E>h.length)&&(E=h.length),new ce(h.subarray(u,E))},rt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],he=function(h,u,E){var _=new Error(u||rt[h]);if(_.code=h,Error.captureStackTrace&&Error.captureStackTrace(_,he),!E)throw _;return _},ot=function(h,u,E,_){var I=h.length,X=0;if(!I||u.f&&!u.l)return E||new ce(0);var U=!E,J=U||u.i!=2,ye=u.i;U&&(E=new ce(I*3));var Ae=function(Le){var Ge=E.length;if(Le>Ge){var ke=new ce(Math.max(Ge*2,Le));ke.set(E),E=ke}},se=u.f||0,b=u.p||0,B=u.b||0,pe=u.l,Ne=u.d,Ie=u.m,ae=u.n,fe=I*8;do{if(!pe){se=ue(h,b,1);var Me=ue(h,b+1,3);if(b+=3,Me)if(Me==1)pe=jn,Ne=et,Ie=9,ae=5;else if(Me==2){var Te=ue(h,b,31)+257,Ee=ue(h,b+10,15)+4,C=Te+ue(h,b+5,31)+1;b+=14;for(var A=new ce(C),x=new ce(19),d=0;d<Ee;++d)x[qn[d]]=ue(h,b+d*3,7);b+=Ee*3;for(var O=Ve(x),H=(1<<O)-1,R=He(x,O,1),d=0;d<C;){var G=R[ue(h,b,H)];b+=G&15;var ee=G>>4;if(ee<16)A[d++]=ee;else{var N=0,ne=0;for(ee==16?(ne=3+ue(h,b,3),b+=2,N=A[d-1]):ee==17?(ne=3+ue(h,b,7),b+=3):ee==18&&(ne=11+ue(h,b,127),b+=7);ne--;)A[d++]=N}}var be=A.subarray(0,Te),Q=A.subarray(Te);Ie=Ve(be),ae=Ve(Q),pe=He(be,Ie,1),Ne=He(Q,ae,1)}else he(1);else{var ee=nt(b)+4,ge=h[ee-4]|h[ee-3]<<8,Ce=ee+ge;if(Ce>I){ye&&he(0);break}J&&Ae(B+ge),E.set(h.subarray(ee,Ce),B),u.b=B+=ge,u.p=b=Ce*8,u.f=se;continue}if(b>fe){ye&&he(0);break}}J&&Ae(B+131072);for(var K=(1<<Ie)-1,Fe=(1<<ae)-1,W=b;;W=b){var N=pe[Je(h,b)&K],$=N>>4;if(b+=N&15,b>fe){ye&&he(0);break}if(N||he(2),$<256)E[B++]=$;else if($==256){W=b,pe=null;break}else{var ve=$-254;if($>264){var d=$-257,Re=an[d];ve=ue(h,b,(1<<Re)-1)+fn[d],b+=Re}var L=Ne[Je(h,b)&Fe],we=L>>4;L||he(3),b+=L&15;var Q=Qn[we];if(we>3){var Re=un[we];Q+=Je(h,b)&(1<<Re)-1,b+=Re}if(b>fe){ye&&he(0);break}J&&Ae(B+131072);var Se=B+ve;if(B<Q){var ze=X-Q,Ke=Math.min(Q,Se);for(ze+B<0&&he(3);B<Ke;++B)E[B]=_[ze+B]}for(;B<Se;++B)E[B]=E[B-Q]}}u.l=pe,u.p=W,u.b=B,u.f=se,pe&&(se=1,u.m=Ie,u.d=Ne,u.n=ae)}while(!se);return B!=E.length&&U?tt(E,0,B):E.subarray(0,B)},lt=new ce(0),it=function(h,u){return((h[0]&15)!=8||h[0]>>4>7||(h[0]<<8|h[1])%31)&&he(6,"invalid zlib data"),(h[1]>>5&1)==1&&he(6,"invalid zlib data: "+(h[1]&32?"need":"unexpected")+" dictionary"),(h[1]>>3&4)+2};function Xe(h,u){return ot(h.subarray(it(h),-4),{i:2},u,u)}var ct=typeof TextDecoder<"u"&&new TextDecoder,st=0;try{ct.decode(lt,{stream:!0}),st=1}catch{}class at extends F.DataTextureLoader{constructor(u){super(u),this.type=F.HalfFloatType}parse(u){const A=Math.pow(2.7182818,2.2);function x(e,n){let t=0;for(let l=0;l<65536;++l)(l==0||e[l>>3]&1<<(l&7))&&(n[t++]=l);const r=t-1;for(;t<65536;)n[t++]=0;return r}function d(e){for(let n=0;n<16384;n++)e[n]={},e[n].len=0,e[n].lit=0,e[n].p=null}const O={l:0,c:0,lc:0};function H(e,n,t,r,l){for(;t<e;)n=n<<8|rn(r,l),t+=8;t-=e,O.l=n>>t&(1<<e)-1,O.c=n,O.lc=t}const R=new Array(59);function G(e){for(let t=0;t<=58;++t)R[t]=0;for(let t=0;t<65537;++t)R[e[t]]+=1;let n=0;for(let t=58;t>0;--t){const r=n+R[t]>>1;R[t]=n,n=r}for(let t=0;t<65537;++t){const r=e[t];r>0&&(e[t]=r|R[r]++<<6)}}function N(e,n,t,r,l,o){const s=n;let p=0,a=0;for(;r<=l;r++){if(s.value-n.value>t)return!1;H(6,p,a,e,s);const c=O.l;if(p=O.c,a=O.lc,o[r]=c,c==63){if(s.value-n.value>t)throw new Error("Something wrong with hufUnpackEncTable");H(8,p,a,e,s);let i=O.l+6;if(p=O.c,a=O.lc,r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)o[r++]=0;r--}else if(c>=59){let i=c-59+2;if(r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)o[r++]=0;r--}}G(o)}function ne(e){return e&63}function be(e){return e>>6}function Q(e,n,t,r){for(;n<=t;n++){const l=be(e[n]),o=ne(e[n]);if(l>>o)throw new Error("Invalid table entry");if(o>14){const s=r[l>>o-14];if(s.len)throw new Error("Invalid table entry");if(s.lit++,s.p){const p=s.p;s.p=new Array(s.lit);for(let a=0;a<s.lit-1;++a)s.p[a]=p[a]}else s.p=new Array(1);s.p[s.lit-1]=n}else if(o){let s=0;for(let p=1<<14-o;p>0;p--){const a=r[(l<<14-o)+s];if(a.len||a.p)throw new Error("Invalid table entry");a.len=o,a.lit=n,s++}}}return!0}const K={c:0,lc:0};function Fe(e,n,t,r){e=e<<8|rn(t,r),n+=8,K.c=e,K.lc=n}const W={c:0,lc:0};function $(e,n,t,r,l,o,s,p,a){if(e==n){r<8&&(Fe(t,r,l,o),t=K.c,r=K.lc),r-=8;let c=t>>r;if(c=new Uint8Array([c])[0],p.value+c>a)return!1;const i=s[p.value-1];for(;c-- >0;)s[p.value++]=i}else if(p.value<a)s[p.value++]=e;else return!1;W.c=t,W.lc=r}function ve(e){return e&65535}function Re(e){const n=ve(e);return n>32767?n-65536:n}const L={a:0,b:0};function we(e,n){const t=Re(e),l=Re(n),o=t+(l&1)+(l>>1),s=o,p=o-l;L.a=s,L.b=p}function Se(e,n){const t=ve(e),r=ve(n),l=t-(r>>1)&65535,o=r+l-32768&65535;L.a=o,L.b=l}function ze(e,n,t,r,l,o,s){const p=s<16384,a=t>l?l:t;let c=1,i,f;for(;c<=a;)c<<=1;for(c>>=1,i=c,c>>=1;c>=1;){f=0;const v=f+o*(l-i),w=o*c,y=o*i,m=r*c,S=r*i;let T,k,Y,re;for(;f<=v;f+=y){let Z=f;const M=f+r*(t-i);for(;Z<=M;Z+=S){const q=Z+m,ie=Z+w,V=ie+m;p?(we(e[Z+n],e[ie+n]),T=L.a,Y=L.b,we(e[q+n],e[V+n]),k=L.a,re=L.b,we(T,k),e[Z+n]=L.a,e[q+n]=L.b,we(Y,re),e[ie+n]=L.a,e[V+n]=L.b):(Se(e[Z+n],e[ie+n]),T=L.a,Y=L.b,Se(e[q+n],e[V+n]),k=L.a,re=L.b,Se(T,k),e[Z+n]=L.a,e[q+n]=L.b,Se(Y,re),e[ie+n]=L.a,e[V+n]=L.b)}if(t&c){const q=Z+w;p?we(e[Z+n],e[q+n]):Se(e[Z+n],e[q+n]),T=L.a,e[q+n]=L.b,e[Z+n]=T}}if(l&c){let Z=f;const M=f+r*(t-i);for(;Z<=M;Z+=S){const q=Z+m;p?we(e[Z+n],e[q+n]):Se(e[Z+n],e[q+n]),T=L.a,e[q+n]=L.b,e[Z+n]=T}}i=c,c>>=1}return f}function Ke(e,n,t,r,l,o,s,p,a){let c=0,i=0;const f=s,v=Math.trunc(r.value+(l+7)/8);for(;r.value<v;)for(Fe(c,i,t,r),c=K.c,i=K.lc;i>=14;){const y=c>>i-14&16383,m=n[y];if(m.len)i-=m.len,$(m.lit,o,c,i,t,r,p,a,f),c=W.c,i=W.lc;else{if(!m.p)throw new Error("hufDecode issues");let S;for(S=0;S<m.lit;S++){const T=ne(e[m.p[S]]);for(;i<T&&r.value<v;)Fe(c,i,t,r),c=K.c,i=K.lc;if(i>=T&&be(e[m.p[S]])==(c>>i-T&(1<<T)-1)){i-=T,$(m.p[S],o,c,i,t,r,p,a,f),c=W.c,i=W.lc;break}}if(S==m.lit)throw new Error("hufDecode issues")}}const w=8-l&7;for(c>>=w,i-=w;i>0;){const y=n[c<<14-i&16383];if(y.len)i-=y.len,$(y.lit,o,c,i,t,r,p,a,f),c=W.c,i=W.lc;else throw new Error("hufDecode issues")}return!0}function Le(e,n,t,r,l,o){const s={value:0},p=t.value,a=le(n,t),c=le(n,t);t.value+=4;const i=le(n,t);if(t.value+=4,a<0||a>=65537||c<0||c>=65537)throw new Error("Something wrong with HUF_ENCSIZE");const f=new Array(65537),v=new Array(16384);d(v);const w=r-(t.value-p);if(N(e,t,w,a,c,f),i>8*(r-(t.value-p)))throw new Error("Something wrong with hufUncompress");Q(f,a,c,v),Ke(f,v,e,t,i,c,o,l,s)}function Ge(e,n,t){for(let r=0;r<t;++r)n[r]=e[n[r]]}function ke(e){for(let n=1;n<e.length;n++){const t=e[n-1]+e[n]-128;e[n]=t}}function en(e,n){let t=0,r=Math.floor((e.length+1)/2),l=0;const o=e.length-1;for(;!(l>o||(n[l++]=e[t++],l>o));)n[l++]=e[r++]}function nn(e){let n=e.byteLength;const t=new Array;let r=0;const l=new DataView(e);for(;n>0;){const o=l.getInt8(r++);if(o<0){const s=-o;n-=s+1;for(let p=0;p<s;p++)t.push(l.getUint8(r++))}else{const s=o;n-=2;const p=l.getUint8(r++);for(let a=0;a<s+1;a++)t.push(p)}}return t}function mn(e,n,t,r,l,o){let s=new DataView(o.buffer);const p=t[e.idx[0]].width,a=t[e.idx[0]].height,c=3,i=Math.floor(p/8),f=Math.ceil(p/8),v=Math.ceil(a/8),w=p-(f-1)*8,y=a-(v-1)*8,m={value:0},S=new Array(c),T=new Array(c),k=new Array(c),Y=new Array(c),re=new Array(c);for(let M=0;M<c;++M)re[M]=n[e.idx[M]],S[M]=M<1?0:S[M-1]+f*v,T[M]=new Float32Array(64),k[M]=new Uint16Array(64),Y[M]=new Uint16Array(f*64);for(let M=0;M<v;++M){let q=8;M==v-1&&(q=y);let ie=8;for(let D=0;D<f;++D){D==f-1&&(ie=w);for(let P=0;P<c;++P)k[P].fill(0),k[P][0]=l[S[P]++],gn(m,r,k[P]),vn(k[P],T[P]),Sn(T[P]);_n(T);for(let P=0;P<c;++P)yn(T[P],Y[P],D*64)}let V=0;for(let D=0;D<c;++D){const P=t[e.idx[D]].type;for(let _e=8*M;_e<8*M+q;++_e){V=re[D][_e];for(let Pe=0;Pe<i;++Pe){const me=Pe*64+(_e&7)*8;s.setUint16(V+0*2*P,Y[D][me+0],!0),s.setUint16(V+1*2*P,Y[D][me+1],!0),s.setUint16(V+2*2*P,Y[D][me+2],!0),s.setUint16(V+3*2*P,Y[D][me+3],!0),s.setUint16(V+4*2*P,Y[D][me+4],!0),s.setUint16(V+5*2*P,Y[D][me+5],!0),s.setUint16(V+6*2*P,Y[D][me+6],!0),s.setUint16(V+7*2*P,Y[D][me+7],!0),V+=8*2*P}}if(i!=f)for(let _e=8*M;_e<8*M+q;++_e){const Pe=re[D][_e]+8*i*2*P,me=i*64+(_e&7)*8;for(let We=0;We<ie;++We)s.setUint16(Pe+We*2*P,Y[D][me+We],!0)}}}const Z=new Uint16Array(p);s=new DataView(o.buffer);for(let M=0;M<c;++M){t[e.idx[M]].decoded=!0;const q=t[e.idx[M]].type;if(t[M].type==2)for(let ie=0;ie<a;++ie){const V=re[M][ie];for(let D=0;D<p;++D)Z[D]=s.getUint16(V+D*2*q,!0);for(let D=0;D<p;++D)s.setFloat32(V+D*2*q,g(Z[D]),!0)}}}function gn(e,n,t){let r,l=1;for(;l<64;)r=n[e.value],r==65280?l=64:r>>8==255?l+=r&255:(t[l]=r,l++),e.value++}function vn(e,n){n[0]=g(e[0]),n[1]=g(e[1]),n[2]=g(e[5]),n[3]=g(e[6]),n[4]=g(e[14]),n[5]=g(e[15]),n[6]=g(e[27]),n[7]=g(e[28]),n[8]=g(e[2]),n[9]=g(e[4]),n[10]=g(e[7]),n[11]=g(e[13]),n[12]=g(e[16]),n[13]=g(e[26]),n[14]=g(e[29]),n[15]=g(e[42]),n[16]=g(e[3]),n[17]=g(e[8]),n[18]=g(e[12]),n[19]=g(e[17]),n[20]=g(e[25]),n[21]=g(e[30]),n[22]=g(e[41]),n[23]=g(e[43]),n[24]=g(e[9]),n[25]=g(e[11]),n[26]=g(e[18]),n[27]=g(e[24]),n[28]=g(e[31]),n[29]=g(e[40]),n[30]=g(e[44]),n[31]=g(e[53]),n[32]=g(e[10]),n[33]=g(e[19]),n[34]=g(e[23]),n[35]=g(e[32]),n[36]=g(e[39]),n[37]=g(e[45]),n[38]=g(e[52]),n[39]=g(e[54]),n[40]=g(e[20]),n[41]=g(e[22]),n[42]=g(e[33]),n[43]=g(e[38]),n[44]=g(e[46]),n[45]=g(e[51]),n[46]=g(e[55]),n[47]=g(e[60]),n[48]=g(e[21]),n[49]=g(e[34]),n[50]=g(e[37]),n[51]=g(e[47]),n[52]=g(e[50]),n[53]=g(e[56]),n[54]=g(e[59]),n[55]=g(e[61]),n[56]=g(e[35]),n[57]=g(e[36]),n[58]=g(e[48]),n[59]=g(e[49]),n[60]=g(e[57]),n[61]=g(e[58]),n[62]=g(e[62]),n[63]=g(e[63])}function Sn(e){const n=.5*Math.cos(.7853975),t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),l=.5*Math.cos(3*3.14159/16),o=.5*Math.cos(5*3.14159/16),s=.5*Math.cos(3*3.14159/8),p=.5*Math.cos(7*3.14159/16),a=new Array(4),c=new Array(4),i=new Array(4),f=new Array(4);for(let v=0;v<8;++v){const w=v*8;a[0]=r*e[w+2],a[1]=s*e[w+2],a[2]=r*e[w+6],a[3]=s*e[w+6],c[0]=t*e[w+1]+l*e[w+3]+o*e[w+5]+p*e[w+7],c[1]=l*e[w+1]-p*e[w+3]-t*e[w+5]-o*e[w+7],c[2]=o*e[w+1]-t*e[w+3]+p*e[w+5]+l*e[w+7],c[3]=p*e[w+1]-o*e[w+3]+l*e[w+5]-t*e[w+7],i[0]=n*(e[w+0]+e[w+4]),i[3]=n*(e[w+0]-e[w+4]),i[1]=a[0]+a[3],i[2]=a[1]-a[2],f[0]=i[0]+i[1],f[1]=i[3]+i[2],f[2]=i[3]-i[2],f[3]=i[0]-i[1],e[w+0]=f[0]+c[0],e[w+1]=f[1]+c[1],e[w+2]=f[2]+c[2],e[w+3]=f[3]+c[3],e[w+4]=f[3]-c[3],e[w+5]=f[2]-c[2],e[w+6]=f[1]-c[1],e[w+7]=f[0]-c[0]}for(let v=0;v<8;++v)a[0]=r*e[16+v],a[1]=s*e[16+v],a[2]=r*e[48+v],a[3]=s*e[48+v],c[0]=t*e[8+v]+l*e[24+v]+o*e[40+v]+p*e[56+v],c[1]=l*e[8+v]-p*e[24+v]-t*e[40+v]-o*e[56+v],c[2]=o*e[8+v]-t*e[24+v]+p*e[40+v]+l*e[56+v],c[3]=p*e[8+v]-o*e[24+v]+l*e[40+v]-t*e[56+v],i[0]=n*(e[v]+e[32+v]),i[3]=n*(e[v]-e[32+v]),i[1]=a[0]+a[3],i[2]=a[1]-a[2],f[0]=i[0]+i[1],f[1]=i[3]+i[2],f[2]=i[3]-i[2],f[3]=i[0]-i[1],e[0+v]=f[0]+c[0],e[8+v]=f[1]+c[1],e[16+v]=f[2]+c[2],e[24+v]=f[3]+c[3],e[32+v]=f[3]-c[3],e[40+v]=f[2]-c[2],e[48+v]=f[1]-c[1],e[56+v]=f[0]-c[0]}function _n(e){for(let n=0;n<64;++n){const t=e[0][n],r=e[1][n],l=e[2][n];e[0][n]=t+1.5747*l,e[1][n]=t-.1873*r-.4682*l,e[2][n]=t+1.8556*r}}function yn(e,n,t){for(let r=0;r<64;++r)n[t+r]=F.DataUtils.toHalfFloat(In(e[r]))}function In(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(A,Math.abs(e)-1)}function $e(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function Cn(e){const n=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),t=new Uint8Array(nn(n)),r=new Uint8Array(t.length);return ke(t),en(t,r),new DataView(r.buffer)}function qe(e){const n=e.array.slice(e.offset.value,e.offset.value+e.size),t=Xe(n),r=new Uint8Array(t.length);return ke(t),en(t,r),new DataView(r.buffer)}function Tn(e){const n=e.viewer,t={value:e.offset.value},r=new Uint16Array(e.columns*e.lines*(e.inputChannels.length*e.type)),l=new Uint8Array(8192);let o=0;const s=new Array(e.inputChannels.length);for(let y=0,m=e.inputChannels.length;y<m;y++)s[y]={},s[y].start=o,s[y].end=s[y].start,s[y].nx=e.columns,s[y].ny=e.lines,s[y].size=e.type,o+=s[y].nx*s[y].ny*s[y].size;const p=Be(n,t),a=Be(n,t);if(a>=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(p<=a)for(let y=0;y<a-p+1;y++)l[y+p]=Ue(n,t);const c=new Uint16Array(65536),i=x(l,c),f=le(n,t);Le(e.array,n,t,f,r,o);for(let y=0;y<e.inputChannels.length;++y){const m=s[y];for(let S=0;S<s[y].size;++S)ze(r,m.start+S,m.nx,m.size,m.ny,m.nx*m.size,i)}Ge(c,r,o);let v=0;const w=new Uint8Array(r.buffer.byteLength);for(let y=0;y<e.lines;y++)for(let m=0;m<e.inputChannels.length;m++){const S=s[m],T=S.nx*S.size,k=new Uint8Array(r.buffer,S.end*2,T*2);w.set(k,v),v+=T*2,S.end+=T}return new DataView(w.buffer)}function bn(e){const n=e.array.slice(e.offset.value,e.offset.value+e.size),t=Xe(n),r=e.inputChannels.length*e.lines*e.columns*e.totalBytes,l=new ArrayBuffer(r),o=new DataView(l);let s=0,p=0;const a=new Array(4);for(let c=0;c<e.lines;c++)for(let i=0;i<e.inputChannels.length;i++){let f=0;switch(e.inputChannels[i].pixelType){case 1:a[0]=s,a[1]=a[0]+e.columns,s=a[1]+e.columns;for(let w=0;w<e.columns;++w){const y=t[a[0]++]<<8|t[a[1]++];f+=y,o.setUint16(p,f,!0),p+=2}break;case 2:a[0]=s,a[1]=a[0]+e.columns,a[2]=a[1]+e.columns,s=a[2]+e.columns;for(let w=0;w<e.columns;++w){const y=t[a[0]++]<<24|t[a[1]++]<<16|t[a[2]++]<<8;f+=y,o.setUint32(p,f,!0),p+=4}break}}return o}function tn(e){const n=e.viewer,t={value:e.offset.value},r=new Uint8Array(e.columns*e.lines*(e.inputChannels.length*e.type*2)),l={version:te(n,t),unknownUncompressedSize:te(n,t),unknownCompressedSize:te(n,t),acCompressedSize:te(n,t),dcCompressedSize:te(n,t),rleCompressedSize:te(n,t),rleUncompressedSize:te(n,t),rleRawSize:te(n,t),totalAcUncompressedCount:te(n,t),totalDcUncompressedCount:te(n,t),acCompression:te(n,t)};if(l.version<2)throw new Error("EXRLoader.parse: "+Oe.compression+" version "+l.version+" is unsupported");const o=new Array;let s=Be(n,t)-2;for(;s>0;){const m=Ye(n.buffer,t),S=Ue(n,t),T=S>>2&3,k=(S>>4)-1,Y=new Int8Array([k])[0],re=Ue(n,t);o.push({name:m,index:Y,type:re,compression:T}),s-=m.length+3}const p=Oe.channels,a=new Array(e.inputChannels.length);for(let m=0;m<e.inputChannels.length;++m){const S=a[m]={},T=p[m];S.name=T.name,S.compression=0,S.decoded=!1,S.type=T.pixelType,S.pLinear=T.pLinear,S.width=e.columns,S.height=e.lines}const c={idx:new Array(3)};for(let m=0;m<e.inputChannels.length;++m){const S=a[m];for(let T=0;T<o.length;++T){const k=o[T];S.name==k.name&&(S.compression=k.compression,k.index>=0&&(c.idx[k.index]=m),S.offset=m)}}let i,f,v;if(l.acCompressedSize>0)switch(l.acCompression){case 0:i=new Uint16Array(l.totalAcUncompressedCount),Le(e.array,n,t,l.acCompressedSize,i,l.totalAcUncompressedCount);break;case 1:const m=e.array.slice(t.value,t.value+l.totalAcUncompressedCount),S=Xe(m);i=new Uint16Array(S.buffer),t.value+=l.totalAcUncompressedCount;break}if(l.dcCompressedSize>0){const m={array:e.array,offset:t,size:l.dcCompressedSize};f=new Uint16Array(qe(m).buffer),t.value+=l.dcCompressedSize}if(l.rleRawSize>0){const m=e.array.slice(t.value,t.value+l.rleCompressedSize),S=Xe(m);v=nn(S.buffer),t.value+=l.rleCompressedSize}let w=0;const y=new Array(a.length);for(let m=0;m<y.length;++m)y[m]=new Array;for(let m=0;m<e.lines;++m)for(let S=0;S<a.length;++S)y[S].push(w),w+=a[S].width*e.type*2;mn(c,y,a,i,f,r);for(let m=0;m<a.length;++m){const S=a[m];if(!S.decoded)switch(S.compression){case 2:let T=0,k=0;for(let Y=0;Y<e.lines;++Y){let re=y[m][T];for(let Z=0;Z<S.width;++Z){for(let M=0;M<2*S.type;++M)r[re++]=v[k+M*S.width*S.height];k++}T++}break;case 1:default:throw new Error("EXRLoader.parse: unsupported channel compression")}}return new DataView(r.buffer)}function Ye(e,n){const t=new Uint8Array(e);let r=0;for(;t[n.value+r]!=0;)r+=1;const l=new TextDecoder().decode(t.slice(n.value,n.value+r));return n.value=n.value+r+1,l}function Rn(e,n,t){const r=new TextDecoder().decode(new Uint8Array(e).slice(n.value,n.value+t));return n.value=n.value+t,r}function Un(e,n){const t=oe(e,n),r=le(e,n);return[t,r]}function dn(e,n){const t=le(e,n),r=le(e,n);return[t,r]}function oe(e,n){const t=e.getInt32(n.value,!0);return n.value=n.value+4,t}function le(e,n){const t=e.getUint32(n.value,!0);return n.value=n.value+4,t}function rn(e,n){const t=e[n.value];return n.value=n.value+1,t}function Ue(e,n){const t=e.getUint8(n.value);return n.value=n.value+1,t}const te=function(e,n){let t;return"getBigInt64"in DataView.prototype?t=Number(e.getBigInt64(n.value,!0)):t=e.getUint32(n.value+4,!0)+Number(e.getUint32(n.value,!0)<<32),n.value+=8,t};function j(e,n){const t=e.getFloat32(n.value,!0);return n.value+=4,t}function An(e,n){return F.DataUtils.toHalfFloat(j(e,n))}function g(e){const n=(e&31744)>>10,t=e&1023;return(e>>15?-1:1)*(n?n===31?t?NaN:1/0:Math.pow(2,n-15)*(1+t/1024):6103515625e-14*(t/1024))}function Be(e,n){const t=e.getUint16(n.value,!0);return n.value+=2,t}function Nn(e,n){return g(Be(e,n))}function Mn(e,n,t,r){const l=t.value,o=[];for(;t.value<l+r-1;){const s=Ye(n,t),p=oe(e,t),a=Ue(e,t);t.value+=3;const c=oe(e,t),i=oe(e,t);o.push({name:s,pixelType:p,pLinear:a,xSampling:c,ySampling:i})}return t.value+=1,o}function Fn(e,n){const t=j(e,n),r=j(e,n),l=j(e,n),o=j(e,n),s=j(e,n),p=j(e,n),a=j(e,n),c=j(e,n);return{redX:t,redY:r,greenX:l,greenY:o,blueX:s,blueY:p,whiteX:a,whiteY:c}}function On(e,n){const t=["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"],r=Ue(e,n);return t[r]}function xn(e,n){const t=oe(e,n),r=oe(e,n),l=oe(e,n),o=oe(e,n);return{xMin:t,yMin:r,xMax:l,yMax:o}}function Dn(e,n){const t=["INCREASING_Y","DECREASING_Y","RANDOM_Y"],r=Ue(e,n);return t[r]}function Ln(e,n){const t=["ENVMAP_LATLONG","ENVMAP_CUBE"],r=Ue(e,n);return t[r]}function kn(e,n){const t=["ONE_LEVEL","MIPMAP_LEVELS","RIPMAP_LEVELS"],r=["ROUND_DOWN","ROUND_UP"],l=le(e,n),o=le(e,n),s=Ue(e,n);return{xSize:l,ySize:o,levelMode:t[s&15],roundingMode:r[s>>4]}}function Bn(e,n){const t=j(e,n),r=j(e,n);return[t,r]}function Pn(e,n){const t=j(e,n),r=j(e,n),l=j(e,n);return[t,r,l]}function Hn(e,n,t,r,l){if(r==="string"||r==="stringvector"||r==="iccProfile")return Rn(n,t,l);if(r==="chlist")return Mn(e,n,t,l);if(r==="chromaticities")return Fn(e,t);if(r==="compression")return On(e,t);if(r==="box2i")return xn(e,t);if(r==="envmap")return Ln(e,t);if(r==="tiledesc")return kn(e,t);if(r==="lineOrder")return Dn(e,t);if(r==="float")return j(e,t);if(r==="v2f")return Bn(e,t);if(r==="v3f")return Pn(e,t);if(r==="int")return oe(e,t);if(r==="rational")return Un(e,t);if(r==="timecode")return dn(e,t);if(r==="preview")return t.value+=l,"skipped";t.value+=l}function Zn(e,n){const t=Math.log2(e);return n=="ROUND_DOWN"?Math.floor(t):Math.ceil(t)}function zn(e,n,t){let r=0;switch(e.levelMode){case"ONE_LEVEL":r=1;break;case"MIPMAP_LEVELS":r=Zn(Math.max(n,t),e.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return r}function on(e,n,t,r){const l=new Array(e);for(let o=0;o<e;o++){const s=1<<o;let p=n/s|0;r=="ROUND_UP"&&p*s<n&&(p+=1);const a=Math.max(p,1);l[o]=(a+t-1)/t|0}return l}function Gn(){const e=this,n=e.offset,t={value:0};for(let r=0;r<e.tileCount;r++){const l=oe(e.viewer,n),o=oe(e.viewer,n);n.value+=8,e.size=le(e.viewer,n);const s=l*e.blockWidth,p=o*e.blockHeight;e.columns=s+e.blockWidth>e.width?e.width-s:e.blockWidth,e.lines=p+e.blockHeight>e.height?e.height-p:e.blockHeight;const a=e.columns*e.totalBytes,i=e.size<e.lines*a?e.uncompress(e):$e(e);n.value+=e.size;for(let f=0;f<e.lines;f++){const v=f*e.columns*e.totalBytes;for(let w=0;w<e.inputChannels.length;w++){const y=Oe.channels[w].name,m=e.channelByteOffsets[y]*e.columns,S=e.decodeChannels[y];if(S===void 0)continue;t.value=v+m;const T=(e.height-(1+p+f))*e.outLineWidth;for(let k=0;k<e.columns;k++){const Y=T+(k+s)*e.outputChannels+S;e.byteArray[Y]=e.getter(i,t)}}}}}function Yn(){const e=this,n=e.offset,t={value:0};for(let r=0;r<e.height/e.blockHeight;r++){const l=oe(e.viewer,n)-Oe.dataWindow.yMin;e.size=le(e.viewer,n),e.lines=l+e.blockHeight>e.height?e.height-l:e.blockHeight;const o=e.columns*e.totalBytes,p=e.size<e.lines*o?e.uncompress(e):$e(e);n.value+=e.size;for(let a=0;a<e.blockHeight;a++){const c=r*e.blockHeight,i=a+e.scanOrder(c);if(i>=e.height)continue;const f=a*o,v=(e.height-1-i)*e.outLineWidth;for(let w=0;w<e.inputChannels.length;w++){const y=Oe.channels[w].name,m=e.channelByteOffsets[y]*e.columns,S=e.decodeChannels[y];if(S!==void 0){t.value=f+m;for(let T=0;T<e.columns;T++){const k=v+T*e.outputChannels+S;e.byteArray[k]=e.getter(p,t)}}}}}}function Wn(e,n,t){const r={};if(e.getUint32(0,!0)!=20000630)throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");r.version=e.getUint8(4);const l=e.getUint8(5);r.spec={singleTile:!!(l&2),longName:!!(l&4),deepFormat:!!(l&8),multiPart:!!(l&16)},t.value=8;let o=!0;for(;o;){const s=Ye(n,t);if(s==="")o=!1;else{const p=Ye(n,t),a=le(e,t),c=Hn(e,n,t,p,a);c===void 0?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${p}'.`):r[s]=c}}if((l&-7)!=0)throw console.error("THREE.EXRHeader:",r),new Error("THREE.EXRLoader: Provided file is currently unsupported.");return r}function Xn(e,n,t,r,l){const o={size:0,viewer:n,array:t,offset:r,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,inputChannels:e.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:F.LinearSRGBColorSpace};switch(e.compression){case"NO_COMPRESSION":o.blockHeight=1,o.uncompress=$e;break;case"RLE_COMPRESSION":o.blockHeight=1,o.uncompress=Cn;break;case"ZIPS_COMPRESSION":o.blockHeight=1,o.uncompress=qe;break;case"ZIP_COMPRESSION":o.blockHeight=16,o.uncompress=qe;break;case"PIZ_COMPRESSION":o.blockHeight=32,o.uncompress=Tn;break;case"PXR24_COMPRESSION":o.blockHeight=16,o.uncompress=bn;break;case"DWAA_COMPRESSION":o.blockHeight=32,o.uncompress=tn;break;case"DWAB_COMPRESSION":o.blockHeight=256,o.uncompress=tn;break;default:throw new Error("EXRLoader.parse: "+e.compression+" is unsupported")}const s={};for(const i of e.channels)switch(i.name){case"Y":case"R":case"G":case"B":case"A":s[i.name]=!0,o.type=i.pixelType}let p=!1;if(s.R&&s.G&&s.B)p=!s.A,o.outputChannels=4,o.decodeChannels={R:0,G:1,B:2,A:3};else if(s.Y)o.outputChannels=1,o.decodeChannels={Y:0};else throw new Error("EXRLoader.parse: file contains unsupported data channels.");if(o.type==1)switch(l){case F.FloatType:o.getter=Nn;break;case F.HalfFloatType:o.getter=Be;break}else if(o.type==2)switch(l){case F.FloatType:o.getter=j;break;case F.HalfFloatType:o.getter=An}else throw new Error("EXRLoader.parse: unsupported pixelType "+o.type+" for "+e.compression+".");o.columns=o.width;const a=o.width*o.height*o.outputChannels;switch(l){case F.FloatType:o.byteArray=new Float32Array(a),p&&o.byteArray.fill(1,0,a);break;case F.HalfFloatType:o.byteArray=new Uint16Array(a),p&&o.byteArray.fill(15360,0,a);break;default:console.error("THREE.EXRLoader: unsupported type: ",l);break}let c=0;for(const i of e.channels)o.decodeChannels[i.name]!==void 0&&(o.channelByteOffsets[i.name]=c),c+=i.pixelType*2;if(o.totalBytes=c,o.outLineWidth=o.width*o.outputChannels,e.lineOrder==="INCREASING_Y"?o.scanOrder=i=>i:o.scanOrder=i=>o.height-1-i,o.outputChannels==4?(o.format=F.RGBAFormat,o.colorSpace=F.LinearSRGBColorSpace):(o.format=F.RedFormat,o.colorSpace=F.NoColorSpace),e.spec.singleTile){o.blockHeight=e.tiles.ySize,o.blockWidth=e.tiles.xSize;const i=zn(e.tiles,o.width,o.height),f=on(i,o.width,e.tiles.xSize,e.tiles.roundingMode),v=on(i,o.height,e.tiles.ySize,e.tiles.roundingMode);o.tileCount=f[0]*v[0];for(let w=0;w<i;w++)for(let y=0;y<v[w];y++)for(let m=0;m<f[w];m++)te(n,r);o.decode=Gn.bind(o)}else{o.blockWidth=o.width;const i=Math.ceil(o.height/o.blockHeight);for(let f=0;f<i;f++)te(n,r);o.decode=Yn.bind(o)}return o}const ln={value:0},cn=new DataView(u),Kn=new Uint8Array(u),Oe=Wn(cn,u,ln),xe=Xn(Oe,cn,Kn,ln,this.type);return xe.decode(),{header:Oe,width:xe.width,height:xe.height,data:xe.byteArray,format:xe.format,colorSpace:xe.colorSpace,type:this.type}}setDataType(u){return this.type=u,this}load(u,E,_,I){function X(U,J){U.colorSpace=J.colorSpace,U.minFilter=F.LinearFilter,U.magFilter=F.LinearFilter,U.generateMipmaps=!1,U.flipY=!1,E&&E(U,J)}return super.load(u,X,_,I)}}class ut extends F.DataTextureLoader{constructor(u){super(u),this.type=F.HalfFloatType}parse(u){const U=function(C,A){switch(C){case 1:throw new Error("THREE.RGBELoader: Read Error: "+(A||""));case 2:throw new Error("THREE.RGBELoader: Write Error: "+(A||""));case 3:throw new Error("THREE.RGBELoader: Bad File Format: "+(A||""));default:case 4:throw new Error("THREE.RGBELoader: Memory Error: "+(A||""))}},se=`
|
|
7
|
+
`,b=function(C,A,x){A=A||1024;let O=C.pos,H=-1,R=0,G="",N=String.fromCharCode.apply(null,new Uint16Array(C.subarray(O,O+128)));for(;0>(H=N.indexOf(se))&&R<A&&O<C.byteLength;)G+=N,R+=N.length,O+=128,N+=String.fromCharCode.apply(null,new Uint16Array(C.subarray(O,O+128)));return-1<H?(C.pos+=R+H+1,G+N.slice(0,H)):!1},B=function(C){const A=/^#\?(\S+)/,x=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,d=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,O=/^\s*FORMAT=(\S+)\s*$/,H=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,R={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let G,N;for((C.pos>=C.byteLength||!(G=b(C)))&&U(1,"no header found"),(N=G.match(A))||U(3,"bad initial token"),R.valid|=1,R.programtype=N[1],R.string+=G+`
|
|
8
|
+
`;G=b(C),G!==!1;){if(R.string+=G+`
|
|
9
|
+
`,G.charAt(0)==="#"){R.comments+=G+`
|
|
10
|
+
`;continue}if((N=G.match(x))&&(R.gamma=parseFloat(N[1])),(N=G.match(d))&&(R.exposure=parseFloat(N[1])),(N=G.match(O))&&(R.valid|=2,R.format=N[1]),(N=G.match(H))&&(R.valid|=4,R.height=parseInt(N[1],10),R.width=parseInt(N[2],10)),R.valid&2&&R.valid&4)break}return R.valid&2||U(3,"missing format specifier"),R.valid&4||U(3,"missing image size specifier"),R},pe=function(C,A,x){const d=A;if(d<8||d>32767||C[0]!==2||C[1]!==2||C[2]&128)return new Uint8Array(C);d!==(C[2]<<8|C[3])&&U(3,"wrong scanline width");const O=new Uint8Array(4*A*x);O.length||U(4,"unable to allocate buffer space");let H=0,R=0;const G=4*d,N=new Uint8Array(4),ne=new Uint8Array(G);let be=x;for(;be>0&&R<C.byteLength;){R+4>C.byteLength&&U(1),N[0]=C[R++],N[1]=C[R++],N[2]=C[R++],N[3]=C[R++],(N[0]!=2||N[1]!=2||(N[2]<<8|N[3])!=d)&&U(3,"bad rgbe scanline format");let Q=0,K;for(;Q<G&&R<C.byteLength;){K=C[R++];const W=K>128;if(W&&(K-=128),(K===0||Q+K>G)&&U(3,"bad scanline data"),W){const $=C[R++];for(let ve=0;ve<K;ve++)ne[Q++]=$}else ne.set(C.subarray(R,R+K),Q),Q+=K,R+=K}const Fe=d;for(let W=0;W<Fe;W++){let $=0;O[H]=ne[W+$],$+=d,O[H+1]=ne[W+$],$+=d,O[H+2]=ne[W+$],$+=d,O[H+3]=ne[W+$],H+=4}be--}return O},Ne=function(C,A,x,d){const O=C[A+3],H=Math.pow(2,O-128)/255;x[d+0]=C[A+0]*H,x[d+1]=C[A+1]*H,x[d+2]=C[A+2]*H,x[d+3]=1},Ie=function(C,A,x,d){const O=C[A+3],H=Math.pow(2,O-128)/255;x[d+0]=F.DataUtils.toHalfFloat(Math.min(C[A+0]*H,65504)),x[d+1]=F.DataUtils.toHalfFloat(Math.min(C[A+1]*H,65504)),x[d+2]=F.DataUtils.toHalfFloat(Math.min(C[A+2]*H,65504)),x[d+3]=F.DataUtils.toHalfFloat(1)},ae=new Uint8Array(u);ae.pos=0;const fe=B(ae),Me=fe.width,ee=fe.height,ge=pe(ae.subarray(ae.pos),Me,ee);let Ce,Te,Ee;switch(this.type){case F.FloatType:Ee=ge.length/4;const C=new Float32Array(Ee*4);for(let x=0;x<Ee;x++)Ne(ge,x*4,C,x*4);Ce=C,Te=F.FloatType;break;case F.HalfFloatType:Ee=ge.length/4;const A=new Uint16Array(Ee*4);for(let x=0;x<Ee;x++)Ie(ge,x*4,A,x*4);Ce=A,Te=F.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:Me,height:ee,data:Ce,header:fe.string,gamma:fe.gamma,exposure:fe.exposure,type:Te}}setDataType(u){return this.type=u,this}load(u,E,_,I){function X(U,J){switch(U.type){case F.FloatType:case F.HalfFloatType:U.colorSpace=F.LinearSRGBColorSpace,U.minFilter=F.LinearFilter,U.magFilter=F.LinearFilter,U.generateMipmaps=!1,U.flipY=!0;break}E&&E(U,J)}return super.load(u,X,_,I)}}function ht(h,u=[.3,.3,.3]){const E=document.querySelector(`#${h}`);if(!E){console.log(" 获取 infoPlane 元素失败 (id) =====> :",h);return}const _=E.cloneNode(!0);_.style.display="block";const I=new sn.CSS3DSprite(_);return I.visible=!1,I.scale.set(...u),I}function pt(h,u){const E=ft(h);E.style.display="block";const _=new sn.CSS3DSprite(E);return _.visible=!1,_.scale.set(u,u,u),_}const ft=h=>{const u=document.createElement("div");u.style.cssText=`
|
|
11
|
+
border-radius: 50px;
|
|
12
|
+
border: 2px solid rgba(255, 255, 255, 0.5);
|
|
13
|
+
background-color: rgba(15, 20, 22, 0.562);
|
|
14
|
+
justify-content: flex-start;
|
|
15
|
+
align-items: center;
|
|
16
|
+
padding: 20px 30px;
|
|
17
|
+
display: flex;
|
|
18
|
+
transform-origin: center 0;`;const E=document.createElement("span");return E.style.cssText=`
|
|
19
|
+
font-size: 40px;
|
|
20
|
+
line-height: 1;
|
|
21
|
+
white-space: nowrap;
|
|
22
|
+
color: #fff;
|
|
23
|
+
font-weight: 700;
|
|
24
|
+
`,E.innerText=h,u.appendChild(E),u},Et=(h,u)=>{const E={};h.forEach(X=>{let U=X.parent;for(;U;)E[U.uuid]?E[U.uuid]++:E[U.uuid]=1,U=U.parent});let _=null,I=0;for(const X in E)E[X]>I&&(I=E[X],_=u.getObjectByProperty("uuid",X));return _},Qe={};async function wt(h,u){if(!u)return;if(Qe[u]){const _=Qe[u];h.environment=_;return}let E=wn(u);return new Promise((_,I)=>{E.load(u,_,void 0,I)}).then(_=>{_.mapping=F.EquirectangularReflectionMapping,h.environment=_,Qe[u]=_}).catch(_=>{console.log(" =====> e:",_)})}async function mt(h){let u=wn(h);return new Promise((E,_)=>{u.load(h,E,void 0,_)})}function wn(h){return h.split(".").pop()==="exr"?new at:new ut}exports.ImageLoader=mt;exports.createInfoPlane=ht;exports.createTagPlane=pt;exports.getCommonParent=Et;exports.initEnvImage=wt;
|