brainsmatics 1.1.49 → 1.1.50
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/assets/nifti.worker-a5dbf2c9.js +54 -0
- package/dist/component/3d/index.d.ts +1 -0
- package/dist/component/3d/uploadComponent/nifti.worker.d.ts +1 -0
- package/dist/{deflate-735dcb85.js → deflate-07e81a67.js} +1 -1
- package/dist/{deflate-5e05c436.mjs → deflate-184694c0.mjs} +1 -1
- package/dist/{index-e8dfb48a.mjs → index-566edf40.mjs} +50123 -49985
- package/dist/{index-41da7ef5.js → index-ed950490.js} +429 -426
- package/dist/index.js +1 -1
- package/dist/index.mjs +24 -23
- package/dist/{lerc-1bcbc027.js → lerc-28feec5f.js} +1 -1
- package/dist/{lerc-26860f48.mjs → lerc-f2db34f8.mjs} +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var Ht=Object.defineProperty;var Qt=(p,q,Y)=>q in p?Ht(p,q,{enumerable:!0,configurable:!0,writable:!0,value:Y}):p[q]=Y;var e=(p,q,Y)=>(Qt(p,typeof q!="symbol"?q+"":q,Y),Y);(function(){"use strict";var p=Uint8Array,q=Uint16Array,Y=Int32Array,ot=new p([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]),lt=new p([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]),pt=new p([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ft=function(r,t){for(var i=new q(31),n=0;n<31;++n)i[n]=t+=1<<r[n-1];for(var a=new Y(i[30]),n=1;n<30;++n)for(var l=i[n];l<i[n+1];++l)a[l]=l-i[n]<<5|n;return{b:i,r:a}},ht=ft(ot,2),ct=ht.b,Ct=ht.r;ct[28]=258,Ct[258]=28;for(var vt=ft(lt,0),It=vt.b,tt=new q(32768),S=0;S<32768;++S){var k=(S&43690)>>1|(S&21845)<<1;k=(k&52428)>>2|(k&13107)<<2,k=(k&61680)>>4|(k&3855)<<4,tt[S]=((k&65280)>>8|(k&255)<<8)>>1}for(var W=function(r,t,i){for(var n=r.length,a=0,l=new q(t);a<n;++a)r[a]&&++l[r[a]-1];var s=new q(t);for(a=1;a<t;++a)s[a]=s[a-1]+l[a-1]<<1;var _;if(i){_=new q(1<<t);var f=15-t;for(a=0;a<n;++a)if(r[a])for(var d=a<<4|r[a],g=t-r[a],o=s[r[a]-1]++<<g,E=o|(1<<g)-1;o<=E;++o)_[tt[o]>>f]=d}else for(_=new q(n),a=0;a<n;++a)r[a]&&(_[a]=tt[s[r[a]-1]++]>>15-r[a]);return _},J=new p(288),S=0;S<144;++S)J[S]=8;for(var S=144;S<256;++S)J[S]=9;for(var S=256;S<280;++S)J[S]=7;for(var S=280;S<288;++S)J[S]=8;for(var _t=new p(32),S=0;S<32;++S)_t[S]=5;var Mt=W(J,9,1),yt=W(_t,5,1),it=function(r){for(var t=r[0],i=1;i<r.length;++i)r[i]>t&&(t=r[i]);return t},O=function(r,t,i){var n=t/8|0;return(r[n]|r[n+1]<<8)>>(t&7)&i},et=function(r,t){var i=t/8|0;return(r[i]|r[i+1]<<8|r[i+2]<<16)>>(t&7)},bt=function(r){return(r+7)/8|0},Tt=function(r,t,i){return(t==null||t<0)&&(t=0),(i==null||i>r.length)&&(i=r.length),new p(r.subarray(t,i))},Ut=["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"],w=function(r,t,i){var n=new Error(t||Ut[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,w),!i)throw n;return n},nt=function(r,t,i,n){var a=r.length,l=n?n.length:0;if(!a||t.f&&!t.l)return i||new p(0);var s=!i,_=s||t.i!=2,f=t.i;s&&(i=new p(a*3));var d=function(At){var xt=i.length;if(At>xt){var St=new p(Math.max(xt*2,At));St.set(i),i=St}},g=t.f||0,o=t.p||0,E=t.b||0,x=t.l,A=t.d,m=t.m,C=t.n,N=a*8;do{if(!x){g=O(r,o,1);var y=O(r,o+1,3);if(o+=3,y)if(y==1)x=Mt,A=yt,m=9,C=5;else if(y==2){var K=O(r,o,31)+257,H=O(r,o+10,15)+4,Q=K+O(r,o+5,31)+1;o+=14;for(var G=new p(Q),L=new p(19),T=0;T<H;++T)L[pt[T]]=O(r,o+T*3,7);o+=H*3;for(var U=it(L),v=(1<<U)-1,R=W(L,U,1),T=0;T<Q;){var B=R[O(r,o,v)];o+=B&15;var b=B>>4;if(b<16)G[T++]=b;else{var D=0,F=0;for(b==16?(F=3+O(r,o,3),o+=2,D=G[T-1]):b==17?(F=3+O(r,o,7),o+=3):b==18&&(F=11+O(r,o,127),o+=7);F--;)G[T++]=D}}var P=G.subarray(0,K),I=G.subarray(K);m=it(P),C=it(I),x=W(P,m,1),A=W(I,C,1)}else w(1);else{var b=bt(o)+4,Z=r[b-4]|r[b-3]<<8,X=b+Z;if(X>a){f&&w(0);break}_&&d(E+Z),i.set(r.subarray(b,X),E),t.b=E+=Z,t.p=o=X*8,t.f=g;continue}if(o>N){f&&w(0);break}}_&&d(E+131072);for(var Xt=(1<<m)-1,Kt=(1<<C)-1,st=o;;st=o){var D=x[et(r,o)&Xt],j=D>>4;if(o+=D&15,o>N){f&&w(0);break}if(D||w(2),j<256)i[E++]=j;else if(j==256){st=o,x=null;break}else{var gt=j-254;if(j>264){var T=j-257,$=ot[T];gt=O(r,o,(1<<$)-1)+ct[T],o+=$}var at=A[et(r,o)&Kt],rt=at>>4;at||w(3),o+=at&15;var I=It[rt];if(rt>3){var $=lt[rt];I+=et(r,o)&(1<<$)-1,o+=$}if(o>N){f&&w(0);break}_&&d(E+131072);var ut=E+gt;if(E<I){var mt=l-I,Vt=Math.min(I,ut);for(mt+E<0&&w(3);E<Vt;++E)i[E]=n[mt+E]}for(;E<ut;++E)i[E]=i[E-I]}}t.l=x,t.p=st,t.b=E,t.f=g,x&&(g=1,t.m=m,t.d=A,t.n=C)}while(!g);return E!=i.length&&s?Tt(i,0,E):i.subarray(0,E)},Dt=new p(0),qt=function(r){(r[0]!=31||r[1]!=139||r[2]!=8)&&w(6,"invalid gzip data");var t=r[3],i=10;t&4&&(i+=(r[10]|r[11]<<8)+2);for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!r[i++]);return i+(t&2)},Nt=function(r){var t=r.length;return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0},wt=function(r,t){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&w(6,"invalid zlib data"),(r[1]>>5&1)==+!t&&w(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function Ft(r,t){return nt(r,{i:2},t&&t.out,t&&t.dictionary)}function Ot(r,t){var i=qt(r);return i+8>r.length&&w(6,"invalid gzip data"),nt(r.subarray(i,-8),{i:2},t&&t.out||new p(Nt(r)),t&&t.dictionary)}function Bt(r,t){return nt(r.subarray(wt(r,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function Pt(r,t){return r[0]==31&&r[1]==139&&r[2]==8?Ot(r,t):(r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31?Ft(r,t):Bt(r,t)}var zt=typeof TextDecoder<"u"&&new TextDecoder,Rt=0;try{zt.decode(Dt,{stream:!0}),Rt=1}catch{}class Gt{constructor(t,i,n,a){e(this,"esize");e(this,"ecode");e(this,"edata");e(this,"littleEndian");if(t%16!=0)throw new Error("This does not appear to be a NIFTI extension");this.esize=t,this.ecode=i,this.edata=n,this.littleEndian=a}toArrayBuffer(){let t=new Uint8Array(this.esize),i=new Uint8Array(this.edata);t.set(i,8);let n=new DataView(t.buffer);return n.setInt32(0,this.esize,this.littleEndian),n.setInt32(4,this.ecode,this.littleEndian),t.buffer}}const z=class{static getStringAt(t,i,n){var a="",l,s;for(l=i;l<n;l+=1)s=t.getUint8(l),s!==0&&(a+=String.fromCharCode(s));return a}static getIntAt(t,i,n){return t.getInt32(i,n)}static getFloatAt(t,i,n){return t.getFloat32(i,n)}static getDoubleAt(t,i,n){return t.getFloat64(i,n)}static getInt64At(t,i,n){const a=t.getUint32(i,n),l=t.getInt32(i+4,n);let s;return n?s=l*2**32+a:s=a*2**32+l,l<0&&(s+=-1*2**32*2**32),s}static getUint64At(t,i,n){const a=t.getUint32(i+(n?0:4),n),l=t.getUint32(i+(n?4:0),n);return n?l*2**32+a:a*2**32+l}static getExtensionsAt(t,i,n,a){let l=[],s=i;for(;s<a;){let _=n,f=z.getIntAt(t,s,n);if(!f)break;if(f+s>a&&(_=!_,f=z.getIntAt(t,s,_),f+s>a))throw new Error("This does not appear to be a valid NIFTI extension");if(f%16!=0)throw new Error("This does not appear to be a NIFTI extension");let d=z.getIntAt(t,s+4,_),g=t.buffer.slice(s+8,s+f),o=new Gt(f,d,g,_);l.push(o),s+=f}return l}static toArrayBuffer(t){var i,n,a;for(i=new ArrayBuffer(t.length),n=new Uint8Array(i),a=0;a<t.length;a+=1)n[a]=t[a];return i}static isString(t){return typeof t=="string"||t instanceof String}static formatNumber(t,i=void 0){let n;return z.isString(t)?n=Number(t):n=t,i?n=n.toPrecision(5):n=n.toPrecision(7),parseFloat(n)}static makeCRCTable(){let t,i=[];for(var n=0;n<256;n++){t=n;for(var a=0;a<8;a++)t=t&1?3988292384^t>>>1:t>>>1;i[n]=t}return i}static crc32(t){z.crcTable||(z.crcTable=z.makeCRCTable());const i=z.crcTable;let n=-1;for(var a=0;a<t.byteLength;a++)n=n>>>8^i[(n^t.getUint8(a))&255];return(n^-1)>>>0}};let h=z;e(h,"crcTable",null),e(h,"GUNZIP_MAGIC_COOKIE1",31),e(h,"GUNZIP_MAGIC_COOKIE2",139),e(h,"getByteAt",function(t,i){return t.getUint8(i)}),e(h,"getShortAt",function(t,i,n){return t.getInt16(i,n)});const u=class{constructor(){e(this,"littleEndian",!1);e(this,"dim_info",0);e(this,"dims",[]);e(this,"intent_p1",0);e(this,"intent_p2",0);e(this,"intent_p3",0);e(this,"intent_code",0);e(this,"datatypeCode",0);e(this,"numBitsPerVoxel",0);e(this,"slice_start",0);e(this,"slice_end",0);e(this,"slice_code",0);e(this,"pixDims",[]);e(this,"vox_offset",0);e(this,"scl_slope",1);e(this,"scl_inter",0);e(this,"xyzt_units",0);e(this,"cal_max",0);e(this,"cal_min",0);e(this,"slice_duration",0);e(this,"toffset",0);e(this,"description","");e(this,"aux_file","");e(this,"intent_name","");e(this,"qform_code",0);e(this,"sform_code",0);e(this,"quatern_a",0);e(this,"quatern_b",0);e(this,"quatern_c",0);e(this,"quatern_d",0);e(this,"qoffset_x",0);e(this,"qoffset_y",0);e(this,"qoffset_z",0);e(this,"affine",[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]);e(this,"qfac",1);e(this,"quatern_R");e(this,"magic","0");e(this,"isHDR",!1);e(this,"extensionFlag",[0,0,0,0]);e(this,"extensionSize",0);e(this,"extensionCode",0);e(this,"extensions",[]);e(this,"getDatatypeCodeString",function(t){return t===u.TYPE_UINT8?"1-Byte Unsigned Integer":t===u.TYPE_INT16?"2-Byte Signed Integer":t===u.TYPE_INT32?"4-Byte Signed Integer":t===u.TYPE_FLOAT32?"4-Byte Float":t===u.TYPE_FLOAT64?"8-Byte Float":t===u.TYPE_RGB24?"RGB":t===u.TYPE_INT8?"1-Byte Signed Integer":t===u.TYPE_UINT16?"2-Byte Unsigned Integer":t===u.TYPE_UINT32?"4-Byte Unsigned Integer":t===u.TYPE_INT64?"8-Byte Signed Integer":t===u.TYPE_UINT64?"8-Byte Unsigned Integer":"Unknown"});e(this,"getTransformCodeString",function(t){return t===u.XFORM_SCANNER_ANAT?"Scanner":t===u.XFORM_ALIGNED_ANAT?"Aligned":t===u.XFORM_TALAIRACH?"Talairach":t===u.XFORM_MNI_152?"MNI":"Unknown"});e(this,"getUnitsCodeString",function(t){return t===u.UNITS_METER?"Meters":t===u.UNITS_MM?"Millimeters":t===u.UNITS_MICRON?"Microns":t===u.UNITS_SEC?"Seconds":t===u.UNITS_MSEC?"Milliseconds":t===u.UNITS_USEC?"Microseconds":t===u.UNITS_HZ?"Hz":t===u.UNITS_PPM?"PPM":t===u.UNITS_RADS?"Rads":"Unknown"});e(this,"nifti_mat33_mul",function(t,i){var n=[[0,0,0],[0,0,0],[0,0,0]],a,l;for(a=0;a<3;a+=1)for(l=0;l<3;l+=1)n[a][l]=t[a][0]*i[0][l]+t[a][1]*i[1][l]+t[a][2]*i[2][l];return n});e(this,"nifti_mat33_determ",function(t){var i,n,a,l,s,_,f,d,g;return i=t[0][0],n=t[0][1],a=t[0][2],l=t[1][0],s=t[1][1],_=t[1][2],f=t[2][0],d=t[2][1],g=t[2][2],i*s*g-i*d*_-l*n*g+l*d*a+f*n*_-f*s*a})}readHeader(t){var i=new DataView(t),n=h.getIntAt(i,0,this.littleEndian),a,l,s,_;if(n!==u.MAGIC_COOKIE&&(this.littleEndian=!0,n=h.getIntAt(i,0,this.littleEndian)),n!==u.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.dim_info=h.getByteAt(i,39),a=0;a<8;a+=1)_=40+a*2,this.dims[a]=h.getShortAt(i,_,this.littleEndian);for(this.intent_p1=h.getFloatAt(i,56,this.littleEndian),this.intent_p2=h.getFloatAt(i,60,this.littleEndian),this.intent_p3=h.getFloatAt(i,64,this.littleEndian),this.intent_code=h.getShortAt(i,68,this.littleEndian),this.datatypeCode=h.getShortAt(i,70,this.littleEndian),this.numBitsPerVoxel=h.getShortAt(i,72,this.littleEndian),this.slice_start=h.getShortAt(i,74,this.littleEndian),a=0;a<8;a+=1)_=76+a*4,this.pixDims[a]=h.getFloatAt(i,_,this.littleEndian);if(this.vox_offset=h.getFloatAt(i,108,this.littleEndian),this.scl_slope=h.getFloatAt(i,112,this.littleEndian),this.scl_inter=h.getFloatAt(i,116,this.littleEndian),this.slice_end=h.getShortAt(i,120,this.littleEndian),this.slice_code=h.getByteAt(i,122),this.xyzt_units=h.getByteAt(i,123),this.cal_max=h.getFloatAt(i,124,this.littleEndian),this.cal_min=h.getFloatAt(i,128,this.littleEndian),this.slice_duration=h.getFloatAt(i,132,this.littleEndian),this.toffset=h.getFloatAt(i,136,this.littleEndian),this.description=h.getStringAt(i,148,228),this.aux_file=h.getStringAt(i,228,252),this.qform_code=h.getShortAt(i,252,this.littleEndian),this.sform_code=h.getShortAt(i,254,this.littleEndian),this.quatern_b=h.getFloatAt(i,256,this.littleEndian),this.quatern_c=h.getFloatAt(i,260,this.littleEndian),this.quatern_d=h.getFloatAt(i,264,this.littleEndian),this.quatern_a=Math.sqrt(1-(Math.pow(this.quatern_b,2)+Math.pow(this.quatern_c,2)+Math.pow(this.quatern_d,2))),this.qoffset_x=h.getFloatAt(i,268,this.littleEndian),this.qoffset_y=h.getFloatAt(i,272,this.littleEndian),this.qoffset_z=h.getFloatAt(i,276,this.littleEndian),this.qform_code<1&&this.sform_code<1&&(this.affine[0][0]=this.pixDims[1],this.affine[1][1]=this.pixDims[2],this.affine[2][2]=this.pixDims[3]),this.qform_code>0&&this.sform_code<this.qform_code){const f=this.quatern_a,d=this.quatern_b,g=this.quatern_c,o=this.quatern_d;for(this.qfac=this.pixDims[0]===0?1:this.pixDims[0],this.quatern_R=[[f*f+d*d-g*g-o*o,2*d*g-2*f*o,2*d*o+2*f*g],[2*d*g+2*f*o,f*f+g*g-d*d-o*o,2*g*o-2*f*d],[2*d*o-2*f*g,2*g*o+2*f*d,f*f+o*o-g*g-d*d]],l=0;l<3;l+=1)for(s=0;s<3;s+=1)this.affine[l][s]=this.quatern_R[l][s]*this.pixDims[s+1],s===2&&(this.affine[l][s]*=this.qfac);this.affine[0][3]=this.qoffset_x,this.affine[1][3]=this.qoffset_y,this.affine[2][3]=this.qoffset_z}else if(this.sform_code>0)for(l=0;l<3;l+=1)for(s=0;s<4;s+=1)_=280+(l*4+s)*4,this.affine[l][s]=h.getFloatAt(i,_,this.littleEndian);if(this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.intent_name=h.getStringAt(i,328,344),this.magic=h.getStringAt(i,344,348),this.isHDR=this.magic===String.fromCharCode.apply(null,u.MAGIC_NUMBER2),i.byteLength>u.MAGIC_COOKIE){this.extensionFlag[0]=h.getByteAt(i,348),this.extensionFlag[1]=h.getByteAt(i,348+1),this.extensionFlag[2]=h.getByteAt(i,348+2),this.extensionFlag[3]=h.getByteAt(i,348+3);let f=!0;!this.isHDR&&this.vox_offset<=352&&(f=!1),i.byteLength<=352+16&&(f=!1),f&&this.extensionFlag[0]&&(this.extensions=h.getExtensionsAt(i,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode)}}toFormattedString(){var t=h.formatNumber,i="";return i+="Dim Info = "+this.dim_info+`
|
|
2
|
+
`,i+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+`
|
|
3
|
+
`,i+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+`
|
|
4
|
+
`,i+="Intent Code = "+this.intent_code+`
|
|
5
|
+
`,i+="Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`)
|
|
6
|
+
`,i+="Bits Per Voxel = "+this.numBitsPerVoxel+`
|
|
7
|
+
`,i+="Slice Start = "+this.slice_start+`
|
|
8
|
+
`,i+="Voxel Dimensions (1-8): "+t(this.pixDims[0])+", "+t(this.pixDims[1])+", "+t(this.pixDims[2])+", "+t(this.pixDims[3])+", "+t(this.pixDims[4])+", "+t(this.pixDims[5])+", "+t(this.pixDims[6])+", "+t(this.pixDims[7])+`
|
|
9
|
+
`,i+="Image Offset = "+this.vox_offset+`
|
|
10
|
+
`,i+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+`
|
|
11
|
+
`,i+="Slice End = "+this.slice_end+`
|
|
12
|
+
`,i+="Slice Code = "+this.slice_code+`
|
|
13
|
+
`,i+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(u.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(u.TEMPORAL_UNITS_MASK&this.xyzt_units)+`)
|
|
14
|
+
`,i+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+`
|
|
15
|
+
`,i+="Slice Duration = "+this.slice_duration+`
|
|
16
|
+
`,i+="Time Axis Shift = "+this.toffset+`
|
|
17
|
+
`,i+='Description: "'+this.description+`"
|
|
18
|
+
`,i+='Auxiliary File: "'+this.aux_file+`"
|
|
19
|
+
`,i+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`)
|
|
20
|
+
`,i+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`)
|
|
21
|
+
`,i+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+`
|
|
22
|
+
`,i+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+`
|
|
23
|
+
`,i+="S-Form Parameters X: "+t(this.affine[0][0])+", "+t(this.affine[0][1])+", "+t(this.affine[0][2])+", "+t(this.affine[0][3])+`
|
|
24
|
+
`,i+="S-Form Parameters Y: "+t(this.affine[1][0])+", "+t(this.affine[1][1])+", "+t(this.affine[1][2])+", "+t(this.affine[1][3])+`
|
|
25
|
+
`,i+="S-Form Parameters Z: "+t(this.affine[2][0])+", "+t(this.affine[2][1])+", "+t(this.affine[2][2])+", "+t(this.affine[2][3])+`
|
|
26
|
+
`,i+='Intent Name: "'+this.intent_name+`"
|
|
27
|
+
`,this.extensionFlag[0]&&(i+="Extension: Size = "+this.extensionSize+" Code = "+this.extensionCode+`
|
|
28
|
+
`),i}getQformMat(){return this.convertNiftiQFormToNiftiSForm(this.quatern_b,this.quatern_c,this.quatern_d,this.qoffset_x,this.qoffset_y,this.qoffset_z,this.pixDims[1],this.pixDims[2],this.pixDims[3],this.pixDims[0])}convertNiftiQFormToNiftiSForm(t,i,n,a,l,s,_,f,d,g){var o=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],E,x=t,A=i,m=n,C,N,y;return o[3][0]=o[3][1]=o[3][2]=0,o[3][3]=1,E=1-(x*x+A*A+m*m),E<1e-7?(E=1/Math.sqrt(x*x+A*A+m*m),x*=E,A*=E,m*=E,E=0):E=Math.sqrt(E),C=_>0?_:1,N=f>0?f:1,y=d>0?d:1,g<0&&(y=-y),o[0][0]=(E*E+x*x-A*A-m*m)*C,o[0][1]=2*(x*A-E*m)*N,o[0][2]=2*(x*m+E*A)*y,o[1][0]=2*(x*A+E*m)*C,o[1][1]=(E*E+A*A-x*x-m*m)*N,o[1][2]=2*(A*m-E*x)*y,o[2][0]=2*(x*m-E*A)*C,o[2][1]=2*(A*m+E*x)*N,o[2][2]=(E*E+m*m-A*A-x*x)*y,o[0][3]=a,o[1][3]=l,o[2][3]=s,o}convertNiftiSFormToNEMA(t){var i,n,a,l,s,_,f,d,g,o,E,x,A,m,C,N,y,b,Z,X,K,H,Q,G,L,T,U,v,R,B,D,F,P,I;if(C=0,U=[[0,0,0],[0,0,0],[0,0,0]],v=[[0,0,0],[0,0,0],[0,0,0]],i=t[0][0],n=t[0][1],a=t[0][2],l=t[1][0],s=t[1][1],_=t[1][2],f=t[2][0],d=t[2][1],g=t[2][2],o=Math.sqrt(i*i+l*l+f*f),o===0||(i/=o,l/=o,f/=o,o=Math.sqrt(n*n+s*s+d*d),o===0))return null;if(n/=o,s/=o,d/=o,o=i*n+l*s+f*d,Math.abs(o)>1e-4){if(n-=o*i,s-=o*l,d-=o*f,o=Math.sqrt(n*n+s*s+d*d),o===0)return null;n/=o,s/=o,d/=o}if(o=Math.sqrt(a*a+_*_+g*g),o===0?(a=l*d-f*s,_=f*n-d*i,g=i*s-l*n):(a/=o,_/=o,g/=o),o=i*a+l*_+f*g,Math.abs(o)>1e-4){if(a-=o*i,_-=o*l,g-=o*f,o=Math.sqrt(a*a+_*_+g*g),o===0)return null;a/=o,_/=o,g/=o}if(o=n*a+s*_+d*g,Math.abs(o)>1e-4){if(a-=o*n,_-=o*s,g-=o*d,o=Math.sqrt(a*a+_*_+g*g),o===0)return null;a/=o,_/=o,g/=o}if(U[0][0]=i,U[0][1]=n,U[0][2]=a,U[1][0]=l,U[1][1]=s,U[1][2]=_,U[2][0]=f,U[2][1]=d,U[2][2]=g,E=this.nifti_mat33_determ(U),E===0)return null;for(T=-666,Z=H=Q=G=1,X=2,K=3,A=1;A<=3;A+=1)for(m=1;m<=3;m+=1)if(A!==m){for(C=1;C<=3;C+=1)if(!(A===C||m===C))for(v[0][0]=v[0][1]=v[0][2]=v[1][0]=v[1][1]=v[1][2]=v[2][0]=v[2][1]=v[2][2]=0,N=-1;N<=1;N+=2)for(y=-1;y<=1;y+=2)for(b=-1;b<=1;b+=2)v[0][A-1]=N,v[1][m-1]=y,v[2][C-1]=b,x=this.nifti_mat33_determ(v),x*E>0&&(L=this.nifti_mat33_mul(v,U),o=L[0][0]+L[1][1]+L[2][2],o>T&&(T=o,Z=A,X=m,K=C,H=N,Q=y,G=b))}switch(R=B=D=F=P=I="",Z*H){case 1:R="X",F="+";break;case-1:R="X",F="-";break;case 2:R="Y",F="+";break;case-2:R="Y",F="-";break;case 3:R="Z",F="+";break;case-3:R="Z",F="-";break}switch(X*Q){case 1:B="X",P="+";break;case-1:B="X",P="-";break;case 2:B="Y",P="+";break;case-2:B="Y",P="-";break;case 3:B="Z",P="+";break;case-3:B="Z",P="-";break}switch(K*G){case 1:D="X",I="+";break;case-1:D="X",I="-";break;case 2:D="Y",I="+";break;case-2:D="Y",I="-";break;case 3:D="Z",I="+";break;case-3:D="Z",I="-";break}return R+B+D+F+P+I}getExtensionLocation(){return u.MAGIC_COOKIE+4}getExtensionSize(t){return h.getIntAt(t,this.getExtensionLocation(),this.littleEndian)}getExtensionCode(t){return h.getIntAt(t,this.getExtensionLocation()+4,this.littleEndian)}addExtension(t,i=-1){i==-1?this.extensions.push(t):this.extensions.splice(i,0,t),this.vox_offset+=t.esize}removeExtension(t){let i=this.extensions[t];i&&(this.vox_offset-=i.esize),this.extensions.splice(t,1)}toArrayBuffer(t=!1){let a=352;if(t)for(let f of this.extensions)a+=f.esize;let l=new Uint8Array(a),s=new DataView(l.buffer);s.setInt32(0,348,this.littleEndian),s.setUint8(39,this.dim_info);for(let f=0;f<8;f++)s.setUint16(40+2*f,this.dims[f],this.littleEndian);s.setFloat32(56,this.intent_p1,this.littleEndian),s.setFloat32(60,this.intent_p2,this.littleEndian),s.setFloat32(64,this.intent_p3,this.littleEndian),s.setInt16(68,this.intent_code,this.littleEndian),s.setInt16(70,this.datatypeCode,this.littleEndian),s.setInt16(72,this.numBitsPerVoxel,this.littleEndian),s.setInt16(74,this.slice_start,this.littleEndian);for(let f=0;f<8;f++)s.setFloat32(76+4*f,this.pixDims[f],this.littleEndian);s.setFloat32(108,this.vox_offset,this.littleEndian),s.setFloat32(112,this.scl_slope,this.littleEndian),s.setFloat32(116,this.scl_inter,this.littleEndian),s.setInt16(120,this.slice_end,this.littleEndian),s.setUint8(122,this.slice_code),s.setUint8(123,this.xyzt_units),s.setFloat32(124,this.cal_max,this.littleEndian),s.setFloat32(128,this.cal_min,this.littleEndian),s.setFloat32(132,this.slice_duration,this.littleEndian),s.setFloat32(136,this.toffset,this.littleEndian),l.set(new TextEncoder().encode(this.description),148),l.set(new TextEncoder().encode(this.aux_file),228),s.setInt16(252,this.qform_code,this.littleEndian),s.setInt16(254,this.sform_code,this.littleEndian),s.setFloat32(256,this.quatern_b,this.littleEndian),s.setFloat32(260,this.quatern_c,this.littleEndian),s.setFloat32(264,this.quatern_d,this.littleEndian),s.setFloat32(268,this.qoffset_x,this.littleEndian),s.setFloat32(272,this.qoffset_y,this.littleEndian),s.setFloat32(276,this.qoffset_z,this.littleEndian);const _=this.affine.flat();for(let f=0;f<12;f++)s.setFloat32(280+4*f,_[f],this.littleEndian);if(l.set(new TextEncoder().encode(this.intent_name),328),l.set(new TextEncoder().encode(this.magic),344),t){l.set(Uint8Array.from([1,0,0,0]),348);let f=this.getExtensionLocation();for(const d of this.extensions)s.setInt32(f,d.esize,d.littleEndian),s.setInt32(f+4,d.ecode,d.littleEndian),l.set(new Uint8Array(d.edata),f+8),f+=d.esize}else l.set(new Uint8Array(4).fill(0),348);return l.buffer}};let c=u;e(c,"TYPE_NONE",0),e(c,"TYPE_BINARY",1),e(c,"TYPE_UINT8",2),e(c,"TYPE_INT16",4),e(c,"TYPE_INT32",8),e(c,"TYPE_FLOAT32",16),e(c,"TYPE_COMPLEX64",32),e(c,"TYPE_FLOAT64",64),e(c,"TYPE_RGB24",128),e(c,"TYPE_INT8",256),e(c,"TYPE_UINT16",512),e(c,"TYPE_UINT32",768),e(c,"TYPE_INT64",1024),e(c,"TYPE_UINT64",1280),e(c,"TYPE_FLOAT128",1536),e(c,"TYPE_COMPLEX128",1792),e(c,"TYPE_COMPLEX256",2048),e(c,"XFORM_UNKNOWN",0),e(c,"XFORM_SCANNER_ANAT",1),e(c,"XFORM_ALIGNED_ANAT",2),e(c,"XFORM_TALAIRACH",3),e(c,"XFORM_MNI_152",4),e(c,"SPATIAL_UNITS_MASK",7),e(c,"TEMPORAL_UNITS_MASK",56),e(c,"UNITS_UNKNOWN",0),e(c,"UNITS_METER",1),e(c,"UNITS_MM",2),e(c,"UNITS_MICRON",3),e(c,"UNITS_SEC",8),e(c,"UNITS_MSEC",16),e(c,"UNITS_USEC",24),e(c,"UNITS_HZ",32),e(c,"UNITS_PPM",40),e(c,"UNITS_RADS",48),e(c,"MAGIC_COOKIE",348),e(c,"STANDARD_HEADER_SIZE",348),e(c,"MAGIC_NUMBER_LOCATION",344),e(c,"MAGIC_NUMBER",[110,43,49]),e(c,"MAGIC_NUMBER2",[110,105,49]),e(c,"EXTENSION_HEADER_SIZE",8);const V=class{constructor(){e(this,"littleEndian",!1);e(this,"dim_info",0);e(this,"dims",[]);e(this,"intent_p1",0);e(this,"intent_p2",0);e(this,"intent_p3",0);e(this,"intent_code",0);e(this,"datatypeCode",0);e(this,"numBitsPerVoxel",0);e(this,"slice_start",0);e(this,"slice_end",0);e(this,"slice_code",0);e(this,"pixDims",[]);e(this,"vox_offset",0);e(this,"scl_slope",1);e(this,"scl_inter",0);e(this,"xyzt_units",0);e(this,"cal_max",0);e(this,"cal_min",0);e(this,"slice_duration",0);e(this,"toffset",0);e(this,"description","");e(this,"aux_file","");e(this,"intent_name","");e(this,"qform_code",0);e(this,"sform_code",0);e(this,"quatern_b",0);e(this,"quatern_c",0);e(this,"quatern_d",0);e(this,"qoffset_x",0);e(this,"qoffset_y",0);e(this,"qoffset_z",0);e(this,"affine",[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]);e(this,"magic","0");e(this,"extensionFlag",[0,0,0,0]);e(this,"extensions",[]);e(this,"extensionSize",0);e(this,"extensionCode",0);e(this,"getExtensionLocation",function(){return V.MAGIC_COOKIE+4});e(this,"getExtensionSize",c.prototype.getExtensionSize);e(this,"getExtensionCode",c.prototype.getExtensionCode);e(this,"addExtension",c.prototype.addExtension);e(this,"removeExtension",c.prototype.removeExtension);e(this,"getDatatypeCodeString",c.prototype.getDatatypeCodeString);e(this,"getTransformCodeString",c.prototype.getTransformCodeString);e(this,"getUnitsCodeString",c.prototype.getUnitsCodeString);e(this,"getQformMat",c.prototype.getQformMat);e(this,"convertNiftiQFormToNiftiSForm",c.prototype.convertNiftiQFormToNiftiSForm);e(this,"convertNiftiSFormToNEMA",c.prototype.convertNiftiSFormToNEMA);e(this,"nifti_mat33_mul",c.prototype.nifti_mat33_mul);e(this,"nifti_mat33_determ",c.prototype.nifti_mat33_determ)}readHeader(t){var i=new DataView(t),n=h.getIntAt(i,0,this.littleEndian),a,l,s,_;if(n!==V.MAGIC_COOKIE&&(this.littleEndian=!0,n=h.getIntAt(i,0,this.littleEndian)),n!==V.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.magic=h.getStringAt(i,4,12),this.datatypeCode=h.getShortAt(i,12,this.littleEndian),this.numBitsPerVoxel=h.getShortAt(i,14,this.littleEndian),a=0;a<8;a+=1)_=16+a*8,this.dims[a]=h.getInt64At(i,_,this.littleEndian);for(this.intent_p1=h.getDoubleAt(i,80,this.littleEndian),this.intent_p2=h.getDoubleAt(i,88,this.littleEndian),this.intent_p3=h.getDoubleAt(i,96,this.littleEndian),a=0;a<8;a+=1)_=104+a*8,this.pixDims[a]=h.getDoubleAt(i,_,this.littleEndian);for(this.vox_offset=h.getInt64At(i,168,this.littleEndian),this.scl_slope=h.getDoubleAt(i,176,this.littleEndian),this.scl_inter=h.getDoubleAt(i,184,this.littleEndian),this.cal_max=h.getDoubleAt(i,192,this.littleEndian),this.cal_min=h.getDoubleAt(i,200,this.littleEndian),this.slice_duration=h.getDoubleAt(i,208,this.littleEndian),this.toffset=h.getDoubleAt(i,216,this.littleEndian),this.slice_start=h.getInt64At(i,224,this.littleEndian),this.slice_end=h.getInt64At(i,232,this.littleEndian),this.description=h.getStringAt(i,240,240+80),this.aux_file=h.getStringAt(i,320,320+24),this.qform_code=h.getIntAt(i,344,this.littleEndian),this.sform_code=h.getIntAt(i,348,this.littleEndian),this.quatern_b=h.getDoubleAt(i,352,this.littleEndian),this.quatern_c=h.getDoubleAt(i,360,this.littleEndian),this.quatern_d=h.getDoubleAt(i,368,this.littleEndian),this.qoffset_x=h.getDoubleAt(i,376,this.littleEndian),this.qoffset_y=h.getDoubleAt(i,384,this.littleEndian),this.qoffset_z=h.getDoubleAt(i,392,this.littleEndian),l=0;l<3;l+=1)for(s=0;s<4;s+=1)_=400+(l*4+s)*8,this.affine[l][s]=h.getDoubleAt(i,_,this.littleEndian);this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.slice_code=h.getIntAt(i,496,this.littleEndian),this.xyzt_units=h.getIntAt(i,500,this.littleEndian),this.intent_code=h.getIntAt(i,504,this.littleEndian),this.intent_name=h.getStringAt(i,508,508+16),this.dim_info=h.getByteAt(i,524),i.byteLength>V.MAGIC_COOKIE&&(this.extensionFlag[0]=h.getByteAt(i,540),this.extensionFlag[1]=h.getByteAt(i,540+1),this.extensionFlag[2]=h.getByteAt(i,540+2),this.extensionFlag[3]=h.getByteAt(i,540+3),this.extensionFlag[0]&&(this.extensions=h.getExtensionsAt(i,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode))}toFormattedString(){var t=h.formatNumber,i="";return i+="Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`)
|
|
29
|
+
`,i+="Bits Per Voxel = = "+this.numBitsPerVoxel+`
|
|
30
|
+
`,i+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+`
|
|
31
|
+
`,i+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+`
|
|
32
|
+
`,i+="Voxel Dimensions (1-8): "+t(this.pixDims[0])+", "+t(this.pixDims[1])+", "+t(this.pixDims[2])+", "+t(this.pixDims[3])+", "+t(this.pixDims[4])+", "+t(this.pixDims[5])+", "+t(this.pixDims[6])+", "+t(this.pixDims[7])+`
|
|
33
|
+
`,i+="Image Offset = "+this.vox_offset+`
|
|
34
|
+
`,i+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+`
|
|
35
|
+
`,i+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+`
|
|
36
|
+
`,i+="Slice Duration = "+this.slice_duration+`
|
|
37
|
+
`,i+="Time Axis Shift = "+this.toffset+`
|
|
38
|
+
`,i+="Slice Start = "+this.slice_start+`
|
|
39
|
+
`,i+="Slice End = "+this.slice_end+`
|
|
40
|
+
`,i+='Description: "'+this.description+`"
|
|
41
|
+
`,i+='Auxiliary File: "'+this.aux_file+`"
|
|
42
|
+
`,i+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`)
|
|
43
|
+
`,i+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`)
|
|
44
|
+
`,i+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+`
|
|
45
|
+
`,i+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+`
|
|
46
|
+
`,i+="S-Form Parameters X: "+t(this.affine[0][0])+", "+t(this.affine[0][1])+", "+t(this.affine[0][2])+", "+t(this.affine[0][3])+`
|
|
47
|
+
`,i+="S-Form Parameters Y: "+t(this.affine[1][0])+", "+t(this.affine[1][1])+", "+t(this.affine[1][2])+", "+t(this.affine[1][3])+`
|
|
48
|
+
`,i+="S-Form Parameters Z: "+t(this.affine[2][0])+", "+t(this.affine[2][1])+", "+t(this.affine[2][2])+", "+t(this.affine[2][3])+`
|
|
49
|
+
`,i+="Slice Code = "+this.slice_code+`
|
|
50
|
+
`,i+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(c.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(c.TEMPORAL_UNITS_MASK&this.xyzt_units)+`)
|
|
51
|
+
`,i+="Intent Code = "+this.intent_code+`
|
|
52
|
+
`,i+='Intent Name: "'+this.intent_name+`"
|
|
53
|
+
`,i+="Dim Info = "+this.dim_info+`
|
|
54
|
+
`,i}toArrayBuffer(t=!1){let a=544;if(t)for(let f of this.extensions)a+=f.esize;let l=new Uint8Array(a),s=new DataView(l.buffer);s.setInt32(0,540,this.littleEndian),l.set(new TextEncoder().encode(this.magic),4),s.setInt16(12,this.datatypeCode,this.littleEndian),s.setInt16(14,this.numBitsPerVoxel,this.littleEndian);for(let f=0;f<8;f++)s.setBigInt64(16+8*f,BigInt(this.dims[f]),this.littleEndian);s.setFloat64(80,this.intent_p1,this.littleEndian),s.setFloat64(88,this.intent_p2,this.littleEndian),s.setFloat64(96,this.intent_p3,this.littleEndian);for(let f=0;f<8;f++)s.setFloat64(104+8*f,this.pixDims[f],this.littleEndian);s.setBigInt64(168,BigInt(this.vox_offset),this.littleEndian),s.setFloat64(176,this.scl_slope,this.littleEndian),s.setFloat64(184,this.scl_inter,this.littleEndian),s.setFloat64(192,this.cal_max,this.littleEndian),s.setFloat64(200,this.cal_min,this.littleEndian),s.setFloat64(208,this.slice_duration,this.littleEndian),s.setFloat64(216,this.toffset,this.littleEndian),s.setBigInt64(224,BigInt(this.slice_start),this.littleEndian),s.setBigInt64(232,BigInt(this.slice_end),this.littleEndian),l.set(new TextEncoder().encode(this.description),240),l.set(new TextEncoder().encode(this.aux_file),320),s.setInt32(344,this.qform_code,this.littleEndian),s.setInt32(348,this.sform_code,this.littleEndian),s.setFloat64(352,this.quatern_b,this.littleEndian),s.setFloat64(360,this.quatern_c,this.littleEndian),s.setFloat64(368,this.quatern_d,this.littleEndian),s.setFloat64(376,this.qoffset_x,this.littleEndian),s.setFloat64(384,this.qoffset_y,this.littleEndian),s.setFloat64(392,this.qoffset_z,this.littleEndian);const _=this.affine.flat();for(let f=0;f<12;f++)s.setFloat64(400+8*f,_[f],this.littleEndian);if(s.setInt32(496,this.slice_code,this.littleEndian),s.setInt32(500,this.xyzt_units,this.littleEndian),s.setInt32(504,this.intent_code,this.littleEndian),l.set(new TextEncoder().encode(this.intent_name),508),s.setUint8(524,this.dim_info),t){l.set(Uint8Array.from([1,0,0,0]),540);let f=this.getExtensionLocation();for(const d of this.extensions)s.setInt32(f,d.esize,d.littleEndian),s.setInt32(f+4,d.ecode,d.littleEndian),l.set(new Uint8Array(d.edata),f+8),f+=d.esize}else l.set(new Uint8Array(4).fill(0),540);return l.buffer}};let M=V;e(M,"MAGIC_COOKIE",540),e(M,"MAGIC_NUMBER_LOCATION",4),e(M,"MAGIC_NUMBER",[110,43,50,0,13,10,26,10]),e(M,"MAGIC_NUMBER2",[110,105,50,0,13,10,26,10]);function kt(r,t=!1){var i,n,a,l;return r.byteLength<c.STANDARD_HEADER_SIZE?!1:(i=new DataView(r),i&&(n=i.getUint8(c.MAGIC_NUMBER_LOCATION)),a=i.getUint8(c.MAGIC_NUMBER_LOCATION+1),l=i.getUint8(c.MAGIC_NUMBER_LOCATION+2),t&&n===c.MAGIC_NUMBER2[0]&&a===c.MAGIC_NUMBER2[1]&&l===c.MAGIC_NUMBER2[2]?!0:n===c.MAGIC_NUMBER[0]&&a===c.MAGIC_NUMBER[1]&&l===c.MAGIC_NUMBER[2])}function Lt(r,t=!1){var i,n,a,l;return r.byteLength<c.STANDARD_HEADER_SIZE?!1:(i=new DataView(r),n=i.getUint8(M.MAGIC_NUMBER_LOCATION),a=i.getUint8(M.MAGIC_NUMBER_LOCATION+1),l=i.getUint8(M.MAGIC_NUMBER_LOCATION+2),t&&n===M.MAGIC_NUMBER2[0]&&a===M.MAGIC_NUMBER2[1]&&l===M.MAGIC_NUMBER2[2]?!0:n===M.MAGIC_NUMBER[0]&&a===M.MAGIC_NUMBER[1]&&l===M.MAGIC_NUMBER[2])}function dt(r){var t,i,n;return!!(r&&(t=new DataView(r),i=t.getUint8(0),n=t.getUint8(1),i===h.GUNZIP_MAGIC_COOKIE1||n===h.GUNZIP_MAGIC_COOKIE2))}function Et(r){return Pt(new Uint8Array(r)).buffer}function Yt(r,t=!1){let i=null;if(dt(r)&&(r=Et(r)),kt(r,t)?i=new c:Lt(r,t)&&(i=new M),i)i.readHeader(r);else throw new Error("That file does not appear to be NIFTI!");return i}function Zt(r,t){var i=r.vox_offset,n=1,a=1;r.dims[4]&&(n=r.dims[4]),r.dims[5]&&(a=r.dims[5]);var l=r.dims[1]*r.dims[2]*r.dims[3]*n*a*(r.numBitsPerVoxel/8);return t.slice(i,i+l)}self.onmessage=r=>{try{const t=r.data,i=dt(t)?Et(t):t,n=Yt(i);if(!n)throw new Error("Invalid NIfTI header");const a=Zt(n,i);self.postMessage({header:{dims:n.dims,datatypeCode:n.datatypeCode,littleEndian:n.littleEndian},image:a})}catch(t){self.postMessage({error:{message:t==null?void 0:t.message,stack:t==null?void 0:t.stack,name:t==null?void 0:t.name}})}}})();
|
|
@@ -16,3 +16,4 @@ export { default as FunctionLoop } from "./functionLoop";
|
|
|
16
16
|
export { default as FunctionLoopSwc } from "./functionLoopSwc";
|
|
17
17
|
export { default as UserUpload } from "./userUpload";
|
|
18
18
|
export { default as UploadComponent } from "./uploadComponent";
|
|
19
|
+
export { default as NiftiWorker } from "./uploadComponent/nifti.worker";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default self;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-ed950490.js"),t=require("./basedecoder-0503cc54.js");require("react");require("react-dom");class d extends t.BaseDecoder{decodeBlock(e){return r.inflate_1(new Uint8Array(e)).buffer}}exports.default=d;
|