@fnndsc/argus 0.16.4 → 0.16.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/assets/{Settings-RsdfmMXh.js → Settings-m2_gzqFo.js} +1 -1
- package/dist/assets/{Texture-Ggh33DNM.js → Texture-CNw8sdIb.js} +1 -1
- package/dist/assets/{addVolumesToViewports-vXgAymDY.js → addVolumesToViewports-C_AtNstI.js} +1 -1
- package/dist/assets/cornerstoneEngine-56y7wcWv.js +2 -0
- package/dist/assets/{index-Cgb7V21b.js → index-2cJqPO1p.js} +1 -1
- package/dist/assets/{index-D_zKI1-l.js → index-C3cucXqK.js} +1 -1
- package/dist/assets/{index-6f7rprvr.js → index-CEiEnrkY.js} +1 -1
- package/dist/assets/index-CVUcpNtC.css +1 -0
- package/dist/assets/{index-k2VKaE20.js → index-DqRYV6KU.js} +1 -1
- package/dist/assets/{index-C84JjmPo.js → index-NtXPCzOK.js} +1 -1
- package/dist/assets/index-bL2L8RXR.js +4237 -0
- package/dist/assets/{index-BVBGi2sJ.js → index-g0DeZJl2.js} +1 -1
- package/dist/assets/layoutWorker-D4Dj2D15.js +1 -0
- package/dist/assets/{niivueEngine-A63Q8k2b.js → niivueEngine-Blo6UL6H.js} +2 -2
- package/dist/assets/{slabScene-4YWTyxxU.js → slabScene-DPvwI_9Z.js} +1 -1
- package/dist/index.html +3 -2
- package/package.json +2 -1
- package/dist/assets/cornerstoneEngine-qfeli3aA.js +0 -2
- package/dist/assets/index-CwMYsWsk.css +0 -1
- package/dist/assets/index-DqpQZLU4.js +0 -4236
- package/dist/assets/layoutWorker-DqMRqv-I.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{aw as St,ax as Ir,a5 as ri,ad as rr,q as ai,u as cn,aj as si,p as At,a0 as ii,m as C,Y as $n,k as b,y as ye,ak as m,E as oe,j as P,au as bt,ay as oi,J as pt,i as at,$ as fi,x as Re,av as de,t as ce,o as It,F as Ln,s as ar,az as ci,aA as ui,_ as zt,D as ne,aB as tt,aC as mt,aD as mr,aE as gi,aF as dt,aG as nt,aH as Mn,B as Y,aI as Wn,P as Je,aJ as Qe,aK as un,aL as hi,aM as sr,as as On,z as pi,A as Ti,C as vi,G as ir,L as it,aN as yi,N as Ct,W as Hn,X as Pr,K as ot,aO as ea,aP as _t,ao as Ie,a9 as li,R as zn,T as I,ag as ta,V as ee,aa as xi,aQ as Ei,aR as or,aS as fr,aT as na,f as fe,d as Q,aU as Si,h as he,al as rn,aV as ra,aW as Ri,c as Ci,n as _e,aX as Lt,aY as cr,aZ as gn,a_ as wi,a$ as di,I as _i,ai as ur,b0 as Li,b1 as hn}from"./cornerstoneEngine-qfeli3aA.js";import{g as Mi}from"./_commonjsHelpers-CE1G-McA.js";function Oi(){var t=new St(4);return St!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Di(t,e,n,r){var s=new St(4);return s[0]=t,s[1]=e,s[2]=n,s[3]=r,s}function Lp(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}function Fi(t,e){var n=e[0],r=e[1],s=e[2],a=e[3],i=n*n+r*r+s*s+a*a;return i>0&&(i=1/Math.sqrt(i)),t[0]=n*i,t[1]=r*i,t[2]=s*i,t[3]=a*i,t}function Ke(t,e,n){var r=e[0],s=e[1],a=e[2],i=e[3];return t[0]=n[0]*r+n[4]*s+n[8]*a+n[12]*i,t[1]=n[1]*r+n[5]*s+n[9]*a+n[13]*i,t[2]=n[2]*r+n[6]*s+n[10]*a+n[14]*i,t[3]=n[3]*r+n[7]*s+n[11]*a+n[15]*i,t}(function(){var t=Oi();return function(e,n,r,s,a,i){var o,c;for(n||(n=4),r||(r=0),s?c=Math.min(s*n+r,e.length):c=e.length,o=r;o<c;o+=n)t[0]=e[o],t[1]=e[o+1],t[2]=e[o+2],t[3]=e[o+3],a(t,t,i),e[o]=t[0],e[o+1]=t[1],e[o+2]=t[2],e[o+3]=t[3];return e}})();function qe(){var t=new St(4);return St!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function jn(t,e,n){n=n*.5;var r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t}function Bi(t,e){var n=Math.acos(e[3])*2,r=Math.sin(n/2);return r>Ir?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),n}function gr(t,e,n){var r=e[0],s=e[1],a=e[2],i=e[3],o=n[0],c=n[1],g=n[2],T=n[3];return t[0]=r*T+i*o+s*g-a*c,t[1]=s*T+i*c+a*o-r*g,t[2]=a*T+i*g+r*c-s*o,t[3]=i*T-r*o-s*c-a*g,t}function jt(t,e,n,r){var s=e[0],a=e[1],i=e[2],o=e[3],c=n[0],g=n[1],T=n[2],f=n[3],y,w,R,l,x;return w=s*c+a*g+i*T+o*f,w<0&&(w=-w,c=-c,g=-g,T=-T,f=-f),1-w>Ir?(y=Math.acos(w),R=Math.sin(y),l=Math.sin((1-r)*y)/R,x=Math.sin(r*y)/R):(l=1-r,x=r),t[0]=l*s+x*c,t[1]=l*a+x*g,t[2]=l*i+x*T,t[3]=l*o+x*f,t}function Ni(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Gi(t,e){var n=e[0]+e[4]+e[8],r;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var s=0;e[4]>e[0]&&(s=1),e[8]>e[s*3+s]&&(s=2);var a=(s+1)%3,i=(s+2)%3;r=Math.sqrt(e[s*3+s]-e[a*3+a]-e[i*3+i]+1),t[s]=.5*r,r=.5/r,t[3]=(e[a*3+i]-e[i*3+a])*r,t[a]=(e[a*3+s]+e[s*3+a])*r,t[i]=(e[i*3+s]+e[s*3+i])*r}return t}var hr=Di,aa=Fi;(function(){var t=ri(),e=rr(1,0,0),n=rr(0,1,0);return function(r,s,a){var i=ai(s,a);return i<-.999999?(cn(t,e,s),si(t)<1e-6&&cn(t,n,s),At(t,t),jn(r,t,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(cn(t,s,a),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+i,aa(r,r))}})();(function(){var t=qe(),e=qe();return function(n,r,s,a,i,o){return jt(t,r,i,o),jt(e,s,a,o),jt(n,t,e,2*o*(1-o)),n}})();(function(){var t=ii();return function(e,n,r,s){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=s[0],t[4]=s[1],t[7]=s[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],aa(e,Gi(e,t))}})();var Ui={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6},Vi={BlendMode:Ui},{vtkDebugMacro:Mt}=C;function ki(t,e){e.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),s=new Float64Array([0,1,0]),a=b(new Float64Array(16)),i=b(new Float64Array(16)),o=new Float64Array(3),c=new Float64Array(3),g=new Float64Array(3),T=b(new Float64Array(16)),f=b(new Float64Array(16)),y=new Float64Array(3),w=new Float64Array(3);function R(){e.viewPlaneNormal[0]=-e.directionOfProjection[0],e.viewPlaneNormal[1]=-e.directionOfProjection[1],e.viewPlaneNormal[2]=-e.directionOfProjection[2]}t.orthogonalizeViewUp=()=>{t.getViewMatrix(a),e.viewUp[0]=a[4],e.viewUp[1]=a[5],e.viewUp[2]=a[6],t.modified()},t.setPosition=(l,x,u)=>{l===e.position[0]&&x===e.position[1]&&u===e.position[2]||(e.position[0]=l,e.position[1]=x,e.position[2]=u,t.computeDistance(),t.modified())},t.setFocalPoint=(l,x,u)=>{l===e.focalPoint[0]&&x===e.focalPoint[1]&&u===e.focalPoint[2]||(e.focalPoint[0]=l,e.focalPoint[1]=x,e.focalPoint[2]=u,t.computeDistance(),t.modified())},t.setDistance=l=>{if(e.distance===l)return;e.distance=l,e.distance<1e-20&&(e.distance=1e-20,Mt("Distance is set to minimum."));const x=e.directionOfProjection;e.focalPoint[0]=e.position[0]+x[0]*e.distance,e.focalPoint[1]=e.position[1]+x[1]*e.distance,e.focalPoint[2]=e.position[2]+x[2]*e.distance,t.modified()},t.computeDistance=()=>{const l=e.focalPoint[0]-e.position[0],x=e.focalPoint[1]-e.position[1],u=e.focalPoint[2]-e.position[2];if(e.distance=Math.sqrt(l*l+x*x+u*u),e.distance<1e-20){e.distance=1e-20,Mt("Distance is set to minimum.");const p=e.directionOfProjection;e.focalPoint[0]=e.position[0]+p[0]*e.distance,e.focalPoint[1]=e.position[1]+p[1]*e.distance,e.focalPoint[2]=e.position[2]+p[2]*e.distance}e.directionOfProjection[0]=l/e.distance,e.directionOfProjection[1]=x/e.distance,e.directionOfProjection[2]=u/e.distance,R()},t.dolly=l=>{if(l<=0)return;const x=e.distance/l;t.setPosition(e.focalPoint[0]-x*e.directionOfProjection[0],e.focalPoint[1]-x*e.directionOfProjection[1],e.focalPoint[2]-x*e.directionOfProjection[2])},t.roll=l=>{const x=e.position,u=e.focalPoint,p=e.viewUp,h=new Float64Array([p[0],p[1],p[2],0]);b(T);const v=new Float64Array([u[0]-x[0],u[1]-x[1],u[2]-x[2]]);ye(T,T,m(l),v),Ke(h,h,T),e.viewUp[0]=h[0],e.viewUp[1]=h[1],e.viewUp[2]=h[2],t.modified()},t.azimuth=l=>{const x=e.focalPoint;b(f),oe(f,f,x),ye(f,f,m(l),e.viewUp),oe(f,f,[-x[0],-x[1],-x[2]]),P(y,e.position,f),t.setPosition(y[0],y[1],y[2])},t.yaw=l=>{const x=e.position;b(f),oe(f,f,x),ye(f,f,m(l),e.viewUp),oe(f,f,[-x[0],-x[1],-x[2]]),P(w,e.focalPoint,f),t.setFocalPoint(w[0],w[1],w[2])},t.elevation=l=>{const x=e.focalPoint;t.getViewMatrix(a);const u=[-a[0],-a[1],-a[2]];b(f),oe(f,f,x),ye(f,f,m(l),u),oe(f,f,[-x[0],-x[1],-x[2]]),P(y,e.position,f),t.setPosition(y[0],y[1],y[2])},t.pitch=l=>{const x=e.position;t.getViewMatrix(a);const u=[a[0],a[1],a[2]];b(f),oe(f,f,x),ye(f,f,m(l),u),oe(f,f,[-x[0],-x[1],-x[2]]),P(w,e.focalPoint,f),t.setFocalPoint(...w)},t.zoom=l=>{l<=0||(e.parallelProjection?e.parallelScale/=l:e.viewAngle/=l,t.modified())},t.translate=(l,x,u)=>{const p=[l,x,u];bt(e.position,p,e.position),bt(e.focalPoint,p,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=l=>{const x=[...e.viewUp,1],u=[],p=[],h=[];x[0]+=e.position[0],x[1]+=e.position[1],x[2]+=e.position[2],Ke(u,[...e.position,1],l),Ke(p,[...e.focalPoint,1],l),Ke(h,x,l),h[0]-=u[0],h[1]-=u[1],h[2]-=u[2],t.setPosition(...u.slice(0,3)),t.setFocalPoint(...p.slice(0,3)),t.setViewUp(...h.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=l=>{let x=l;x<1e-20&&(x=1e-20,Mt("Thickness is set to minimum.")),t.setClippingRange(e.clippingRange[0],e.clippingRange[0]+x)},t.setThicknessFromFocalPoint=l=>{let x=l;x<1e-20&&(x=1e-20,Mt("Thickness is set to minimum.")),t.setClippingRange(e.distance-x/2,e.distance+x/2)},t.setRoll=l=>{},t.getRoll=()=>{},t.setObliqueAngles=(l,x)=>{},t.getOrientation=()=>{},t.getOrientationWXYZ=()=>{},t.getFrustumPlanes=(l=1,x=new Float64Array(24))=>{const u=[[1,0,0,1],[-1,0,0,1],[0,1,0,1],[0,-1,0,1],[0,0,1,1],[0,0,-1,1]],p=t.getCompositeProjectionMatrix(l,-1,1);for(let h=0;h<6;h++)Ke(u[h],u[h],p),oi(u[h]),x[4*h+0]=u[h][0],x[4*h+1]=u[h][1],x[4*h+2]=u[h][2],x[4*h+3]=u[h][3];return x},t.getCameraLightTransformMatrix=l=>(pt(l,e.cameraLightTransform),l),t.computeCameraLightTransform=()=>{t.getViewMatrix(a),at(a,a),fi(i,[e.distance,e.distance,e.distance]),Re(a,a,i),b(e.cameraLightTransform),oe(e.cameraLightTransform,a,[0,0,-1])},t.deepCopy=l=>{},t.physicalOrientationToWorldDirection=l=>{const x=hr(l[0],l[1],l[2],l[3]),u=qe(),p=hr(0,0,1,0);return Ni(u,x),gr(p,x,p),gr(p,p,u),[p[0],p[1],p[2]]},t.getPhysicalToWorldMatrix=l=>{t.getWorldToPhysicalMatrix(l),at(l,l)},t.getWorldToPhysicalMatrix=l=>{b(l);const x=[3];de(e.physicalViewNorth,e.physicalViewUp,x),l[0]=x[0],l[1]=x[1],l[2]=x[2],l[4]=e.physicalViewUp[0],l[5]=e.physicalViewUp[1],l[6]=e.physicalViewUp[2],l[8]=-e.physicalViewNorth[0],l[9]=-e.physicalViewNorth[1],l[10]=-e.physicalViewNorth[2],ce(l,l),It(o,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),Ln(l,l,o),oe(l,l,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=l=>{at(a,l),P(o,n,a),t.computeDistance();const x=e.distance;t.setPosition(o[0],o[1],o[2]),P(c,r,a),ar(c,c,o),At(c,c),t.setDirectionOfProjection(c[0],c[1],c[2]),P(g,s,a),ar(g,g,o),At(g,g),t.setViewUp(g[0],g[1],g[2]),t.setDistance(x)},t.computeViewParametersFromPhysicalMatrix=l=>{t.getWorldToPhysicalMatrix(a),Re(a,l,a),t.computeViewParametersFromViewMatrix(a)},t.setViewMatrix=l=>{e.viewMatrix=l,e.viewMatrix&&(t.computeViewParametersFromViewMatrix(e.viewMatrix),ce(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=(l=new Float64Array(16))=>e.viewMatrix?(e.modelTransformMatrix?Re(l,e.modelTransformMatrix,e.viewMatrix):pt(l,e.viewMatrix),l):(ci(l,e.position,e.focalPoint,e.viewUp),ce(l,l),e.modelTransformMatrix&&Re(l,e.modelTransformMatrix,l),l),t.setProjectionMatrix=l=>{e.projectionMatrix=l},t.getProjectionMatrix=(l,x,u)=>{const p=new Float64Array(16);if(b(p),e.projectionMatrix){const E=1/e.physicalScale;return It(o,E,E,E),pt(p,e.projectionMatrix),Ln(p,p,o),ce(p,p),p}b(a);const h=e.clippingRange[1]-e.clippingRange[0],v=[e.clippingRange[0]+(x+1)*h/2,e.clippingRange[0]+(u+1)*h/2];if(e.parallelProjection){const E=e.parallelScale*l,S=e.parallelScale,_=(e.windowCenter[0]-1)*E,d=(e.windowCenter[0]+1)*E,L=(e.windowCenter[1]-1)*S,M=(e.windowCenter[1]+1)*S;ui(a,_,d,L,M,v[0],v[1]),ce(a,a)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const E=Math.tan(m(e.viewAngle)/2);let S,_;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*E,_=e.clippingRange[0]*E/l):(S=e.clippingRange[0]*E*l,_=e.clippingRange[0]*E);const d=(e.windowCenter[0]-1)*S,L=(e.windowCenter[0]+1)*S,M=(e.windowCenter[1]-1)*_,D=(e.windowCenter[1]+1)*_,F=v[0],N=v[1];a[0]=2*F/(L-d),a[5]=2*F/(D-M),a[2]=(d+L)/(L-d),a[6]=(M+D)/(D-M),a[10]=-(F+N)/(N-F),a[14]=-1,a[11]=-2*F*N/(N-F),a[15]=0}}return pt(p,a),p},t.getCompositeProjectionMatrix=(l,x,u)=>{const p=t.getViewMatrix(),h=t.getProjectionMatrix(l,x,u);return Re(h,p,h),h},t.setDirectionOfProjection=(l,x,u)=>{if(e.directionOfProjection[0]===l&&e.directionOfProjection[1]===x&&e.directionOfProjection[2]===u)return;e.directionOfProjection[0]=l,e.directionOfProjection[1]=x,e.directionOfProjection[2]=u;const p=e.directionOfProjection;e.focalPoint[0]=e.position[0]+p[0]*e.distance,e.focalPoint[1]=e.position[1]+p[1]*e.distance,e.focalPoint[2]=e.position[2]+p[2]*e.distance,R()},t.setDeviceAngles=(l,x,u,p)=>{const h=[3];de(e.physicalViewNorth,e.physicalViewUp,h);const v=b(new Float64Array(16));ye(v,v,m(l),e.physicalViewUp),ye(v,v,m(x),h),ye(v,v,m(u),e.physicalViewNorth),ye(v,v,m(-p),e.physicalViewUp);const E=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);P(E,E,v),P(S,S,v),t.setDirectionOfProjection(E[0],E[1],E[2]),t.setViewUp(S[0],S[1],S[2]),t.modified()},t.setOrientationWXYZ=(l,x,u,p)=>{const h=b(new Float64Array(16));if(l!==0&&(x!==0||u!==0||p!==0)){const S=m(l),_=qe();jn(_,[x,u,p],S),zt(h,_)}const v=new Float64Array(3);P(v,[0,0,-1],h);const E=new Float64Array(3);P(E,[0,1,0],h),t.setDirectionOfProjection(...v),t.setViewUp(...E),t.modified()},t.computeClippingRange=l=>{let x=null,u=null;x=e.viewPlaneNormal,u=e.position;const p=-x[0],h=-x[1],v=-x[2],E=-(p*u[0]+h*u[1]+v*u[2]),S=[p*l[0]+h*l[2]+v*l[4]+E,1e-18];for(let _=0;_<2;_++)for(let d=0;d<2;d++)for(let L=0;L<2;L++){const M=p*l[L]+h*l[2+d]+v*l[4+_]+E;S[0]=M<S[0]?M:S[0],S[1]=M>S[1]?M:S[1]}return S}}var $i={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,modelTransformMatrix:null,cameraLightTransform:$n(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function sa(t,e,n={}){Object.assign(e,$i,n),C.obj(t,e),C.get(t,e,["distance"]),C.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale","modelTransformMatrix"]),C.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),C.setGetArray(t,e,["clippingRange","windowCenter"],2),C.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),ki(t,e)}var Wi=C.newInstance(sa,"vtkCamera"),Hi={newInstance:Wi,extend:sa},zi={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},Dn={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},ji={LINEAR:0,LOG10:1},Xn={VectorMode:zi,ScalarMappingTarget:Dn,Scale:ji},Xi={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},Ki={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Yi={BY_ID:0,BY_NAME:1},Kn={ColorMode:Xi,GetArray:Yi,ScalarMode:Ki},{ScalarMappingTarget:pr,Scale:Zi,VectorMode:ve}=Xn,{VtkDataTypes:De}=ne,{ColorMode:Ot}=Kn,{vtkErrorMacro:Tr}=C;function Qi(t){return t}function vr(t){return Math.floor(t*255+.5)}function Ji(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(ve.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(ve.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(ve.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){Tr("Values and annotations do not have the same number of tuples so ignoring");return}if(e.annotationArray=[],r&&n){const s=r.length;for(let a=0;a<s;a++)e.annotationArray.push({value:n[a],annotation:String(r[a])})}t.updateAnnotatedValueMap(),t.modified()}},t.setAnnotation=(n,r)=>{let s=t.checkForAnnotatedValue(n),a=!1;return s>=0?e.annotationArray[s].annotation!==r&&(e.annotationArray[s].annotation=r,a=!0):(e.annotationArray.push({value:n,annotation:r}),s=e.annotationArray.length-1,a=!0),a&&(t.updateAnnotatedValueMap(),t.modified()),s},t.getNumberOfAnnotatedValues=()=>e.annotationArray.length,t.getAnnotatedValue=n=>n<0||n>=e.annotationArray.length?null:e.annotationArray[n].value,t.getAnnotation=n=>e.annotationArray[n]===void 0?null:e.annotationArray[n].annotation,t.getAnnotatedValueIndex=n=>e.annotationArray.length?t.checkForAnnotatedValue(n):-1,t.removeAnnotation=n=>{const r=t.checkForAnnotatedValue(n),s=r>=0;return s&&(e.annotationArray.splice(r,1),t.updateAnnotatedValueMap(),t.modified()),s},t.resetAnnotations=()=>{e.annotationArray=[],e.annotatedValueMap=[],t.modified()},t.getAnnotationColor=(n,r)=>{if(e.indexedLookup){const s=t.getAnnotatedValueIndex(n);t.getIndexedColor(s,r)}else t.getColor(parseFloat(n),r),r[3]=1},t.checkForAnnotatedValue=n=>t.getAnnotatedValueIndexInternal(n),t.getAnnotatedValueIndexInternal=n=>{if(e.annotatedValueMap[n]!==void 0){const r=e.annotationArray.length;return e.annotatedValueMap[n]%r}return-1},t.getIndexedColor=(n,r)=>{r[0]=0,r[1]=0,r[2]=0,r[3]=0},t.updateAnnotatedValueMap=()=>{e.annotatedValueMap=[];const n=e.annotationArray.length;for(let r=0;r<n;r++)e.annotatedValueMap[e.annotationArray[r].value]=r},t.mapScalars=(n,r,s)=>{const a=n.getNumberOfComponents();let i=null;if(r===Ot.DEFAULT&&(n.getDataType()===De.UNSIGNED_CHAR||n.getDataType()===De.UNSIGNED_CHAR_CLAMPED)||r===Ot.DIRECT_SCALARS&&n)i=t.convertToRGBA(n,a,n.getNumberOfTuples());else{const o={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:De.UNSIGNED_CHAR},c=C.newTypedArray(o.dataType,4*n.getNumberOfTuples());o.values=c,o.size=c.length,i=ne.newInstance(o);let g=s;g<0&&a>1?t.mapVectorsThroughTable(n,i,pr.RGBA,-1,-1):(g<0&&(g=0),g>=a&&(g=a-1),t.mapScalarsThroughTable(n,i,pr.RGBA,g))}return i},t.mapVectorsToMagnitude=(n,r,s)=>{const a=n.getNumberOfTuples(),i=n.getNumberOfComponents(),o=r.getData(),c=n.getData();for(let g=0;g<a;g++){let T=0;for(let f=0;f<s;f++)T+=c[g*i+f]*c[g*i+f];o[g]=Math.sqrt(T)}},t.mapVectorsThroughTable=(n,r,s,a,i)=>{let o=t.getVectorMode(),c=i,g=a;const T=n.getNumberOfComponents();o===ve.COMPONENT?(g===-1&&(g=t.getVectorComponent()),g<0&&(g=0),g>=T&&(g=T-1)):(c===-1&&(c=t.getVectorSize()),c<=0?(g=0,c=T):(g<0&&(g=0),g>=T&&(g=T-1),g+c>T&&(c=T-g)),o===ve.MAGNITUDE&&(T===1||c===1)&&(o=ve.COMPONENT));let f=0;switch(g>0&&(f=g),o){case ve.COMPONENT:t.mapScalarsThroughTable(n,r,s,f);break;case ve.RGBCOLORS:break;case ve.MAGNITUDE:default:{const y=ne.newInstance({numberOfComponents:1,values:new Float32Array(n.getNumberOfTuples())});t.mapVectorsToMagnitude(n,y,c),t.mapScalarsThroughTable(y,r,s,0);break}}},t.luminanceToRGBA=(n,r,s,a)=>{const i=a(s),o=r.getData(),c=n.getData(),g=o.length,T=0,f=1;let y=0;for(let w=T;w<g;w+=f){const R=a(o[w]);c[y*4]=R,c[y*4+1]=R,c[y*4+2]=R,c[y*4+3]=i,y++}},t.luminanceAlphaToRGBA=(n,r,s,a)=>{const i=r.getData(),o=n.getData(),c=i.length,g=0,T=2;let f=0;for(let y=g;y<c;y+=T){const w=a(i[y]);o[f]=w,o[f+1]=w,o[f+2]=w,o[f+3]=a(i[y+1])*s,f+=4}},t.rGBToRGBA=(n,r,s,a)=>{const i=vr(s),o=r.getData(),c=n.getData(),g=o.length,T=0,f=3;let y=0;for(let w=T;w<g;w+=f)c[y*4]=a(o[w]),c[y*4+1]=a(o[w+1]),c[y*4+2]=a(o[w+2]),c[y*4+3]=i,y++},t.rGBAToRGBA=(n,r,s,a)=>{const i=r.getData(),o=n.getData(),c=i.length,g=0,T=4;let f=0;for(let y=g;y<c;y+=T)o[f*4]=a(i[y]),o[f*4+1]=a(i[y+1]),o[f*4+2]=a(i[y+2]),o[f*4+3]=a(i[y+3])*s,f++},t.convertToRGBA=(n,r,s)=>{let{alpha:a}=e;if(r===4&&a>=1&&n.getDataType()===De.UNSIGNED_CHAR)return n;const i=ne.newInstance({numberOfComponents:4,empty:!0,size:4*s,dataType:De.UNSIGNED_CHAR});if(s<=0)return i;a=a>0?a:0,a=a<1?a:1;let o=Qi;switch((n.getDataType()===De.FLOAT||n.getDataType()===De.DOUBLE)&&(o=vr),r){case 1:t.luminanceToRGBA(i,n,a,o);break;case 2:t.luminanceAlphaToRGBA(i,n,o);break;case 3:t.rGBToRGBA(i,n,a,o);break;case 4:t.rGBAToRGBA(i,n,a,o);break;default:return Tr("Cannot convert colors"),null}return i},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>256*256*256,t.setRange=(n,r)=>t.setMappingRange(n,r),t.getRange=()=>t.getMappingRange(),t.areScalarsOpaque=(n,r,s)=>{if(!n)return t.isOpaque();const a=n.getNumberOfComponents();return r===Ot.DEFAULT&&n.getDataType()===De.UNSIGNED_CHAR||r===Ot.DIRECT_SCALARS?a===3||a===1?e.alpha>=1:n.getRange(a-1)[0]===255:!0}}var qi={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:ve.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1,scale:Zi.LINEAR};function ia(t,e,n={}){Object.assign(e,qi,n),C.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],C.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),C.setArray(t,e,["mappingRange"],2),C.getArray(t,e,["mappingRange"]),Ji(t,e)}var Ai=C.newInstance(ia,"vtkScalarsToColors"),Yn={newInstance:Ai,extend:ia,...Xn},bi={RGB:0,HSV:1,LAB:2,DIVERGING:3},Ii={LINEAR:0,LOG10:1},oa={ColorSpace:bi,Scale:Ii},{ColorSpace:ge,Scale:Zn}=oa,{ScalarMappingTarget:Dt}=Yn,{vtkDebugMacro:mi,vtkErrorMacro:le,vtkWarningMacro:Pi}=C;function yr(t,e){const n=t[0],r=t[1],s=t[2],a=Math.sqrt(n*n+r*r+s*s),i=a>.001?Math.acos(n/a):0,o=i>.001?Math.atan2(s,r):0;e[0]=a,e[1]=i,e[2]=o}function eo(t,e){const n=t[0],r=t[1],s=t[2];e[0]=n*Math.cos(r),e[1]=n*Math.sin(r)*Math.cos(s),e[2]=n*Math.sin(r)*Math.sin(s)}function lr(t,e){if(t[0]>=e-.1)return t[2];const n=t[1]*Math.sqrt(e*e-t[0]*t[0])/(t[0]*Math.sin(t[1]));return t[2]>-.3*Math.PI?t[2]+n:t[2]-n}function to(t,e){let n=t-e;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}function xr(t,e,n,r){const s=[],a=[];nt(e,s),nt(n,a);const i=[],o=[];yr(s,i),yr(a,o);let c=t;if(i[1]>.05&&o[1]>.05&&to(i[2],o[2])>.33*Math.PI){let f=Math.max(i[0],o[0]);f=Math.max(88,f),t<.5?(o[0]=f,o[1]=0,o[2]=0,c*=2):(i[0]=f,i[1]=0,i[2]=0,c=2*c-1)}i[1]<.05&&o[1]>.05?i[2]=lr(o,i[0]):o[1]<.05&&i[1]>.05&&(o[2]=lr(i,o[0]));const g=[];g[0]=(1-c)*i[0]+c*o[0],g[1]=(1-c)*i[1]+c*o[1],g[2]=(1-c)*i[2]+c*o[2];const T=[];eo(g,T),Mn(T,r)}function no(t,e){e.classHierarchy.push("vtkColorTransferFunction"),t.getSize=()=>e.nodes.length,t.addRGBPoint=(n,r,s,a)=>t.addRGBPointLong(n,r,s,a,.5,0),t.addRGBPointLong=(n,r,s,a,i=.5,o=0)=>{if(i<0||i>1)return le("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return le("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(n);const c={x:n,r,g:s,b:a,midpoint:i,sharpness:o};e.nodes.push(c),t.sortAndUpdateRange();let g=0;for(;g<e.nodes.length&&e.nodes[g].x!==n;g++);return g<e.nodes.length?g:-1},t.addHSVPoint=(n,r,s,a)=>t.addHSVPointLong(n,r,s,a,.5,0),t.addHSVPointLong=(n,r,s,a,i=.5,o=0)=>{const c=[];return tt([r,s,a],c),t.addRGBPoint(n,c[0],c[1],c[2],i,o)},t.setNodes=n=>{if(e.nodes!==n){const r=JSON.stringify(e.nodes);e.nodes=n;const s=JSON.stringify(e.nodes);if(t.sortAndUpdateRange()||r!==s)return t.modified(),!0}return!1},t.sortAndUpdateRange=()=>{const n=JSON.stringify(e.nodes);e.nodes.sort((a,i)=>a.x-i.x);const r=JSON.stringify(e.nodes),s=t.updateRange();return!s&&n!==r?(t.modified(),!0):s},t.updateRange=()=>{const n=[2];n[0]=e.mappingRange[0],n[1]=e.mappingRange[1];const r=e.nodes.length;return r?(e.mappingRange[0]=e.nodes[0].x,e.mappingRange[1]=e.nodes[r-1].x):(e.mappingRange[0]=0,e.mappingRange[1]=0),n[0]===e.mappingRange[0]&&n[1]===e.mappingRange[1]?!1:(t.modified(),!0)},t.removePoint=n=>{let r=0;for(;r<e.nodes.length&&e.nodes[r].x!==n;r++);const s=r;if(r>=e.nodes.length)return-1;let a=!1;return e.nodes.splice(r,1),(r===0||r===e.nodes.length)&&(a=t.updateRange()),a||t.modified(),s},t.movePoint=(n,r)=>{if(n!==r){t.removePoint(r);for(let s=0;s<e.nodes.length;s++)if(e.nodes[s].x===n){e.nodes[s].x=r,t.sortAndUpdateRange();break}}},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(n,r,s,a,i,o,c,g)=>{t.sortAndUpdateRange();for(let T=0;T<e.nodes.length;)e.nodes[T].x>=n&&e.nodes[T].x<=i?e.nodes.splice(T,1):T++;t.addRGBPointLong(n,r,s,a,.5,0),t.addRGBPointLong(i,o,c,g,.5,0),t.modified()},t.addHSVSegment=(n,r,s,a,i,o,c,g)=>{const T=[r,s,a],f=[o,c,g],y=[],w=[];tt(T,y),tt(f,w),t.addRGBSegment(n,y[0],y[1],y[2],i,w[0],w[1],w[2])},t.mapValue=n=>{const r=[];return t.getColor(n,r),[Math.floor(255*r[0]+.5),Math.floor(255*r[1]+.5),Math.floor(255*r[2]+.5),255]},t.getColor=(n,r)=>{if(e.indexedLookup){const s=t.getSize(),a=t.getAnnotatedValueIndexInternal(n);if(a<0||s===0){const i=t.getNanColorByReference();r[0]=i[0],r[1]=i[1],r[2]=i[2]}else{const i=[];t.getNodeValue(a%s,i),r[0]=i[1],r[1]=i[2],r[2]=i[3]}return}t.getTable(n,n,1,r)},t.getRedValue=n=>{const r=[];return t.getColor(n,r),r[0]},t.getGreenValue=n=>{const r=[];return t.getColor(n,r),r[1]},t.getBlueValue=n=>{const r=[];return t.getColor(n,r),r[2]},t.logScaleEnabled=()=>e.scale===Zn.LOG10,t.usingLogScale=()=>t.logScaleEnabled()&&e.mappingRange[0]>0,t.getTable=(n,r,s,a)=>{const i=t.usingLogScale(),o=i?Math.log10(Number(n)):Number(n),c=i?Math.log10(Number(r)):Number(r);if(mt(o)||mt(c)){for(let _=0;_<s;_++)a[_*3+0]=e.nanColor[0],a[_*3+1]=e.nanColor[1],a[_*3+2]=e.nanColor[2];return}let g=0;const T=e.nodes.length;let f=0,y=0,w=0;T!==0&&(f=e.nodes[T-1].r,y=e.nodes[T-1].g,w=e.nodes[T-1].b);let R=0,l=0,x=0;const u=[0,0,0],p=[0,0,0];let h=0,v=0;const E=[];let S=e.mappingRange;i&&(S=[Math.log10(e.mappingRange[0]),Math.log10(e.mappingRange[1])]);for(let _=0;_<s;_++){const d=3*_;if(s>1?R=o+_/(s-1)*(c-o):R=.5*(o+c),e.discretize){const L=S;if(R>=L[0]&&R<=L[1]){const M=e.numberOfValues,D=L[1]-L[0];if(M<=1)R=L[0]+D/2;else{const F=mr(M*((R-L[0])/D));R=L[0]+F/(M-1)*D}}}for(;g<T&&R>e.nodes[g].x;)g++,g<T&&(l=e.nodes[g-1].x,x=e.nodes[g].x,u[0]=e.nodes[g-1].r,p[0]=e.nodes[g].r,u[1]=e.nodes[g-1].g,p[1]=e.nodes[g].g,u[2]=e.nodes[g-1].b,p[2]=e.nodes[g].b,h=e.nodes[g-1].midpoint,v=e.nodes[g-1].sharpness,h<1e-5&&(h=1e-5),h>.99999&&(h=.99999));if(R>S[1])a[d]=0,a[d+1]=0,a[d+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(a[d]=e.aboveRangeColor[0],a[d+1]=e.aboveRangeColor[1],a[d+2]=e.aboveRangeColor[2]):(a[d]=f,a[d+1]=y,a[d+2]=w));else if(R<S[0]||gi(R)&&R<0)a[d]=0,a[d+1]=0,a[d+2]=0,e.clamping&&(t.getUseBelowRangeColor()?(a[d]=e.belowRangeColor[0],a[d+1]=e.belowRangeColor[1],a[d+2]=e.belowRangeColor[2]):T>0&&(a[d]=e.nodes[0].r,a[d+1]=e.nodes[0].g,a[d+2]=e.nodes[0].b));else if(g===0&&(Math.abs(R-o)<1e-6||e.discretize))T>0?(a[d]=e.nodes[0].r,a[d+1]=e.nodes[0].g,a[d+2]=e.nodes[0].b):(a[d]=0,a[d+1]=0,a[d+2]=0);else{let L=0;if(L=(R-l)/(x-l),L<h?L=.5*L/h:L=.5+.5*(L-h)/(1-h),v>.99)if(L<.5){a[d]=u[0],a[d+1]=u[1],a[d+2]=u[2];continue}else{a[d]=p[0],a[d+1]=p[1],a[d+2]=p[2];continue}if(v<.01){if(e.colorSpace===ge.RGB)a[d]=(1-L)*u[0]+L*p[0],a[d+1]=(1-L)*u[1]+L*p[1],a[d+2]=(1-L)*u[2]+L*p[2];else if(e.colorSpace===ge.HSV){const G=[],O=[];dt(u,G),dt(p,O),e.hSVWrap&&(G[0]-O[0]>.5||O[0]-G[0]>.5)&&(G[0]>O[0]?G[0]-=1:O[0]-=1);const B=[];B[0]=(1-L)*G[0]+L*O[0],B[0]<0&&(B[0]+=1),B[1]=(1-L)*G[1]+L*O[1],B[2]=(1-L)*G[2]+L*O[2],tt(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else if(e.colorSpace===ge.LAB){const G=[],O=[];nt(u,G),nt(p,O);const B=[];B[0]=(1-L)*G[0]+L*O[0],B[1]=(1-L)*G[1]+L*O[1],B[2]=(1-L)*G[2]+L*O[2],Mn(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else e.colorSpace===ge.DIVERGING?(xr(L,u,p,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]):le("ColorSpace set to invalid value.",e.colorSpace);continue}L<.5?L=.5*(L*2)**(1+10*v):L>.5&&(L=1-.5*((1-L)*2)**(1+10*v));const M=L*L,D=M*L,F=2*D-3*M+1,N=-2*D+3*M,U=D-2*M+L,W=D-M;let V,z;if(e.colorSpace===ge.RGB)for(let G=0;G<3;G++)V=p[G]-u[G],z=(1-v)*V,a[d+G]=F*u[G]+N*p[G]+U*z+W*z;else if(e.colorSpace===ge.HSV){const G=[],O=[];dt(u,G),dt(p,O),e.hSVWrap&&(G[0]-O[0]>.5||O[0]-G[0]>.5)&&(G[0]>O[0]?G[0]-=1:O[0]-=1);const B=[];for(let k=0;k<3;k++)V=O[k]-G[k],z=(1-v)*V,B[k]=F*G[k]+N*O[k]+U*z+W*z,k===0&&B[k]<0&&(B[k]+=1);tt(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else if(e.colorSpace===ge.LAB){const G=[],O=[];nt(u,G),nt(p,O);const B=[];for(let k=0;k<3;k++)V=O[k]-G[k],z=(1-v)*V,B[k]=F*G[k]+N*O[k]+U*z+W*z;Mn(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else e.colorSpace===ge.DIVERGING?(xr(L,u,p,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]):le("ColorSpace set to invalid value.");for(let G=0;G<3;G++)a[d+G]=a[d+G]<0?0:a[d+G],a[d+G]=a[d+G]>1?1:a[d+G]}}},t.getUint8Table=(n,r,s,a=!1)=>{if(t.getMTime()<=e.buildTime&&e.tableSize===s&&e.tableWithAlpha!==a)return e.table;if(e.nodes.length===0)return le("Attempting to lookup a value with no points in the function"),e.table;const i=a?4:3;(e.tableSize!==s||e.tableWithAlpha!==a)&&(e.table=new Uint8Array(s*i),e.tableSize=s,e.tableWithAlpha=a);const o=[];t.getTable(n,r,s,o);for(let c=0;c<s;c++)e.table[c*i+0]=Math.floor(o[c*3+0]*255+.5),e.table[c*i+1]=Math.floor(o[c*3+1]*255+.5),e.table[c*i+2]=Math.floor(o[c*3+2]*255+.5),a&&(e.table[c*i+3]=255);return e.buildTime.modified(),e.table},t.buildFunctionFromArray=n=>{t.removeAllPoints();const r=n.getNumberOfComponents();for(let s=0;s<n.getNumberOfTuples();s++)switch(r){case 3:e.nodes.push({x:s,r:n.getComponent(s,0),g:n.getComponent(s,1),b:n.getComponent(s,2),midpoint:.5,sharpness:0});break;case 4:e.nodes.push({x:n.getComponent(s,0),r:n.getComponent(s,1),g:n.getComponent(s,2),b:n.getComponent(s,3),midpoint:.5,sharpness:0});break;case 5:e.nodes.push({x:s,r:n.getComponent(s,0),g:n.getComponent(s,1),b:n.getComponent(s,2),midpoint:n.getComponent(s,4),sharpness:n.getComponent(s,5)});break;case 6:e.nodes.push({x:n.getComponent(s,0),r:n.getComponent(s,1),g:n.getComponent(s,2),b:n.getComponent(s,3),midpoint:n.getComponent(s,4),sharpness:n.getComponent(s,5)});break}t.sortAndUpdateRange()},t.buildFunctionFromTable=(n,r,s,a)=>{let i=0;t.removeAllPoints(),s>1&&(i=(r-n)/(s-1));for(let o=0;o<s;o++){const c={x:n+i*o,r:a[o*3],g:a[o*3+1],b:a[o*3+2],sharpness:0,midpoint:.5};e.nodes.push(c)}t.sortAndUpdateRange()},t.getNodeValue=(n,r)=>n<0||n>=e.nodes.length?(le("Index out of range!"),-1):(r[0]=e.nodes[n].x,r[1]=e.nodes[n].r,r[2]=e.nodes[n].g,r[3]=e.nodes[n].b,r[4]=e.nodes[n].midpoint,r[5]=e.nodes[n].sharpness,1),t.setNodeValue=(n,r)=>{if(n<0||n>=e.nodes.length)return le("Index out of range!"),-1;const s=e.nodes[n].x;return e.nodes[n].x=r[0],e.nodes[n].r=r[1],e.nodes[n].g=r[2],e.nodes[n].b=r[3],e.nodes[n].midpoint=r[4],e.nodes[n].sharpness=r[5],s!==r[0]?t.sortAndUpdateRange():t.modified(),1},t.getNumberOfAvailableColors=()=>{if(e.indexedLookup&&t.getSize())return t.getSize();if(e.tableSize)return e.tableSize;const n=e.nodes?.length??0;return Math.max(4094,n)},t.getIndexedColor=(n,r)=>{const s=t.getSize();if(s>0&&n>=0){const i=[];t.getNodeValue(n%s,i);for(let o=0;o<3;++o)r[o]=i[o+1];r[3]=1;return}const a=t.getNanColorByReference();r[0]=a[0],r[1]=a[1],r[2]=a[2],r[3]=1},t.fillFromDataPointer=(n,r)=>{if(!(n<=0||!r)){t.removeAllPoints();for(let s=0;s<n;s++)t.addRGBPoint(r[s*4],r[s*4+1],r[s*4+2],r[s*4+3])}},t.setMappingRange=(n,r)=>{const s=[n,r],a=[n,r],i=t.getRange(),o=t.logScaleEnabled();if(i[1]===s[1]&&i[0]===s[0])return;if(s[1]===s[0]){le("attempt to set zero width color range");return}o&&(s[0]<=0?console.warn("attempt to set log scale color range with non-positive minimum"):(a[0]=Math.log10(s[0]),a[1]=Math.log10(s[1])));const c=(a[1]-a[0])/(i[1]-i[0]),g=a[0]-i[0]*c;for(let T=0;T<e.nodes.length;++T)e.nodes[T].x=e.nodes[T].x*c+g;e.mappingRange[0]=s[0],e.mappingRange[1]=s[1],t.modified()},t.adjustRange=n=>{const r=t.getRange(),s=[];r[0]<n[0]?(t.getColor(n[0],s),t.addRGBPoint(n[0],s[0],s[1],s[2])):(t.getColor(r[0],s),t.addRGBPoint(n[0],s[0],s[1],s[2])),r[1]>n[1]?(t.getColor(n[1],s),t.addRGBPoint(n[1],s[0],s[1],s[2])):(t.getColor(r[1],s),t.addRGBPoint(n[1],s[0],s[1],s[2])),t.sortAndUpdateRange();for(let a=0;a<e.nodes.length;)e.nodes[a].x>=n[0]&&e.nodes[a].x<=n[1]?e.nodes.splice(a,1):++a;return 1},t.estimateMinNumberOfSamples=(n,r)=>{const s=t.findMinimumXDistance();return Math.ceil((r-n)/s)},t.findMinimumXDistance=()=>{if(e.nodes.length<2)return-1;let n=Number.MAX_VALUE;for(let r=0;r<e.nodes.length-1;r++){const s=e.nodes[r+1].x-e.nodes[r].x;s<n&&(n=s)}return n},t.mapScalarsThroughTable=(n,r,s,a)=>{if(t.getSize()===0){mi("Transfer Function Has No Points!");return}e.indexedLookup?t.mapDataIndexed(n,r,s,a):t.mapData(n,r,s,a)},t.mapData=(n,r,s,a)=>{if(t.getSize()===0){Pi("Transfer Function Has No Points!");return}const i=Math.floor(t.getAlpha()*255+.5),o=n.getNumberOfTuples(),c=n.getNumberOfComponents(),g=r.getData(),T=n.getData(),f=[];if(s===Dt.RGBA)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*4]=Math.floor(f[0]*255+.5),g[y*4+1]=Math.floor(f[1]*255+.5),g[y*4+2]=Math.floor(f[2]*255+.5),g[y*4+3]=i}if(s===Dt.RGB)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*3]=Math.floor(f[0]*255+.5),g[y*3+1]=Math.floor(f[1]*255+.5),g[y*3+2]=Math.floor(f[2]*255+.5)}if(s===Dt.LUMINANCE)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y]=Math.floor(f[0]*76.5+f[1]*150.45+f[2]*28.05+.5)}if(s===Dt.LUMINANCE_ALPHA)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*2]=Math.floor(f[0]*76.5+f[1]*150.45+f[2]*28.05+.5),g[y*2+1]=i}},t.applyColorMap=n=>{const r=JSON.stringify(e.colorSpace);n.ColorSpace&&(e.colorSpace=ge[n.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(le(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),e.colorSpace=ge.RGB));let s=r!==JSON.stringify(e.colorSpace);const a=s||JSON.stringify(e.nanColor);if(n.NanColor)for(e.nanColor=[].concat(n.NanColor);e.nanColor.length<4;)e.nanColor.push(1);s=s||a!==JSON.stringify(e.nanColor);const i=s||JSON.stringify(e.nodes);if(n.RGBPoints){const g=n.RGBPoints.length;e.nodes=[];const T=.5,f=0;for(let y=0;y<g;y+=4)e.nodes.push({x:n.RGBPoints[y],r:n.RGBPoints[y+1],g:n.RGBPoints[y+2],b:n.RGBPoints[y+3],midpoint:T,sharpness:f})}const o=t.sortAndUpdateRange(),c=!o&&(s||i!==JSON.stringify(e.nodes));return c&&t.modified(),o||c}}var ro={clamping:!0,colorSpace:ge.RGB,hSVWrap:!0,scale:Zn.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function fa(t,e,n={}){Object.assign(e,ro,n),Yn.extend(t,e,n),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},C.obj(e.buildTime),C.get(t,e,["buildTime","mappingRange"]),C.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","discretize","numberOfValues",{type:"enum",name:"colorSpace",enum:ge},{type:"enum",name:"scale",enum:Zn}]),C.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),C.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),no(t,e)}var ao=C.newInstance(fa,"vtkColorTransferFunction"),so={newInstance:ao,extend:fa,...oa},be={Off:0,PolygonOffset:1},Fn=be.PolygonOffset,Pt=be.Off,io=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function oo(){return Fn}function fo(t){const e=Fn===t;return Fn=t,e}function co(){return Pt}function an(t=0){const e=Pt===t;return Pt=t,e}function uo(){return an(be.Off)}function go(){return an(be.Off)}function ho(){return an(be.PolygonOffset)}function po(){return io[Pt]}var Bn={Resolve:be,getResolveCoincidentTopologyAsString:po,getResolveCoincidentTopologyPolygonOffsetFaces:oo,getResolveCoincidentTopology:co,setResolveCoincidentTopology:an,setResolveCoincidentTopologyPolygonOffsetFaces:fo,setResolveCoincidentTopologyToDefault:uo,setResolveCoincidentTopologyToOff:go,setResolveCoincidentTopologyToPolygonOffset:ho};function ca(t,e,n){n.forEach(r=>{t[`get${r.method}`]=()=>e[r.key],t[`set${r.method}`]=C.objectSetterMap.object(t,e,{name:r.key,params:["factor","offset"]})})}var Qn=["Polygon","Line","Point"],To={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},vo=()=>{},Ye={modified:vo};ca(Ye,To,Qn.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function yo(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),C.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Bn).forEach(n=>{t[n]=Bn[n]}),Object.keys(Ye).filter(n=>n!=="modified").forEach(n=>{t[n]=Ye[n]}),ca(t,e.topologyOffset,Qn.map(n=>({key:n,method:`RelativeCoincidentTopology${n}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const n=Ye.getResolveCoincidentTopologyPolygonOffsetParameters(),r=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const n=Ye.getResolveCoincidentTopologyLineOffsetParameters(),r=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const n=Ye.getResolveCoincidentTopologyPointOffsetParameters(),r=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}}}var sn={implementCoincidentTopologyMethods:yo,staticOffsetAPI:Ye,otherStaticMethods:Bn,CATEGORIES:Qn,Resolve:be},lo={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},ua={SlicingMode:lo},{vtkErrorMacro:Er}=C,Ft=new Float64Array(16),Bt=new Float64Array(4);function Sr(t,e){const n=t.getNormalByReference(),r=t.getOriginByReference();return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2]),e}function xo(t,e){e.classHierarchy.push("vtkAbstractMapper"),t.update=()=>{t.getInputData()},t.addClippingPlane=n=>n.isA("vtkPlane")?e.clippingPlanes.includes(n)?!1:(e.clippingPlanes.push(n),t.modified(),!0):!1,t.getNumberOfClippingPlanes=()=>e.clippingPlanes.length,t.removeAllClippingPlanes=()=>e.clippingPlanes.length===0?!1:(e.clippingPlanes.length=0,t.modified(),!0),t.removeClippingPlane=n=>{const r=e.clippingPlanes.indexOf(n);return r===-1?!1:(e.clippingPlanes.splice(r,1),t.modified(),!0)},t.getClippingPlanes=()=>e.clippingPlanes,t.getClippingPlanesMTime=()=>{let n=0;for(let r=0;r<e.clippingPlanes.length;r++)n=Math.max(n,e.clippingPlanes[r].getMTime());return n},t.setClippingPlanes=n=>{if(n)if(!Array.isArray(n))t.addClippingPlane(n);else{const r=n.length;for(let s=0;s<r&&s<6;s++)t.addClippingPlane(n[s])}},t.getClippingPlaneInCoords=(n,r,s)=>{if(r<0||r>=e.clippingPlanes?.length){Er(`Clipping plane index ${r} is out of range.`);return}const a=s||new Float64Array(4);return Sr(e.clippingPlanes[r],Bt),at(Ft,n),ce(Ft,Ft),Ke(a,Bt,Ft),a},t.getClippingPlaneInDataCoords=(n,r,s)=>{const a=e.clippingPlanes;if(a){const i=a.length;if(r>=0&&r<i){Sr(a[r],Bt),Ke(s,Bt,n);return}}Er(`Clipping plane index ${r} is out of range.`)}}var Eo={clippingPlanes:[]};function So(t,e,n={}){Object.assign(e,Eo,n),C.obj(t,e),C.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),xo(t,e)}var Ro={extend:So};function Co(t,e){t.computeBounds=()=>{C.vtkErrorMacro("vtkAbstractMapper3D.computeBounds - NOT IMPLEMENTED")};const n=t.getBounds;t.getBounds=()=>(t.computeBounds(),n());const r=t.getBoundsByReference;t.getBoundsByReference=()=>(t.computeBounds(),r()),t.getCenter=()=>{const s=t.getBoundsByReference();return e.center=Y.isValid(s)?Y.getCenter(s):null,e.center?.slice()},t.getLength=()=>{const s=t.getBoundsByReference();return Y.getDiagonalLength(s)}}var wo=t=>({bounds:[...Y.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function _o(t,e,n={}){Object.assign(e,wo(n)),Ro.extend(t,e,n),C.setGet(t,e,["viewSpecificProperties"]),C.getArray(t,e,["bounds"],6),Co(t,e)}var Jn={extend:_o};function Lo(t,e){e.classHierarchy.push("vtkAbstractImageMapper"),t.getIsOpaque=()=>!0,t.getCurrentImage=()=>null,t.getBoundsForSlice=()=>(C.vtkErrorMacro("vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED"),Wn())}var Mo={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1],colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024};function Oo(t,e,n={}){Object.assign(e,Mo,n),Jn.extend(t,e,n),C.setGet(t,e,["slice","useCustomExtents","colorTextureWidth","opacityTextureWidth","labelOutlineTextureWidth"]),C.setGetArray(t,e,["customDisplayExtent"],6),C.setGetArray(t,e,["backgroundColor"],4),Lo(t,e)}var Do={extend:Oo};function ga(t,e,n){const r=n.getCurrentImage(),s=r.getExtent(),a=[s[0],s[2],s[4]],{ijkMode:i}=n.getClosestIJKAxis();let o=n.isA("vtkImageArrayMapper")?n.getSubSlice():n.getSlice();i!==n.getSlicingMode()&&(o=n.getSliceAtPosition(o)),a[i]+=o;const c=[0,0,0];r.indexToWorld(a,c),a[i]+=1;const g=[0,0,0];r.indexToWorld(a,g),g[0]-=c[0],g[1]-=c[1],g[2]-=c[2],At(g,g);const T=Je.intersectWithLine(t,e,c,g);if(T.intersection){const f=T.x,y=[0,0,0];return r.worldToIndex(f,y),{t:T.t,absoluteIJK:y}}return null}function Fo(t,e,n){const r=ga(t,e,n);if(r){const s=n.getCurrentImage().getExtent(),a=[Math.round(r.absoluteIJK[0]),Math.round(r.absoluteIJK[1]),Math.round(r.absoluteIJK[2])];return a[0]<s[0]||a[0]>s[1]||a[1]<s[2]||a[1]>s[3]||a[2]<s[4]||a[2]>s[5]?null:{t:r.t,ijk:a}}return null}function Bo(t,e,n){const r=ga(t,e,n);if(r){const s=n.getCurrentImage().getExtent(),a=r.absoluteIJK,i=[Math.floor(a[0]),Math.floor(a[1]),Math.floor(a[2])];if(i[0]<s[0]||i[0]>s[1]-1||i[1]<s[2]||i[1]>s[3]-1||i[2]<s[4]||i[2]>(s[5]?s[5]-1:s[5]))return null;const o=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return{t:r.t,ijk:i,pCoords:o}}return null}var{staticOffsetAPI:No,otherStaticMethods:Go}=sn,{SlicingMode:K}=ua;function Uo(t,e){e.classHierarchy.push("vtkImageMapper"),t.getSliceAtPosition=r=>{const s=t.getCurrentImage();let a;if(r.length===3)a=r;else if(Number.isFinite(r)){const T=s.getBounds();switch(e.slicingMode){case K.X:a=[r,(T[3]+T[2])/2,(T[5]+T[4])/2];break;case K.Y:a=[(T[1]+T[0])/2,r,(T[5]+T[4])/2];break;case K.Z:a=[(T[1]+T[0])/2,(T[3]+T[2])/2,r];break}}const i=[0,0,0];s.worldToIndex(a,i);const o=s.getExtent(),{ijkMode:c}=t.getClosestIJKAxis();let g=0;switch(c){case K.I:g=Qe(i[0],o[0],o[1]);break;case K.J:g=Qe(i[1],o[2],o[3]);break;case K.K:g=Qe(i[2],o[4],o[5]);break;default:return 0}return g},t.setSliceFromCamera=r=>{const s=r.getFocalPoint();switch(e.slicingMode){case K.I:case K.J:case K.K:{const a=t.getSliceAtPosition(s);t.setSlice(a)}break;case K.X:t.setSlice(s[0]);break;case K.Y:t.setSlice(s[1]);break;case K.Z:t.setSlice(s[2]);break}},t.setXSlice=r=>{t.setSlicingMode(K.X),t.setSlice(r)},t.setYSlice=r=>{t.setSlicingMode(K.Y),t.setSlice(r)},t.setZSlice=r=>{t.setSlicingMode(K.Z),t.setSlice(r)},t.setISlice=r=>{t.setSlicingMode(K.I),t.setSlice(r)},t.setJSlice=r=>{t.setSlicingMode(K.J),t.setSlice(r)},t.setKSlice=r=>{t.setSlicingMode(K.K),t.setSlice(r)},t.getSlicingModeNormal=()=>{const r=[0,0,0],s=t.getCurrentImage().getDirection();switch(e.slicingMode){case K.X:r[0]=1;break;case K.Y:r[1]=1;break;case K.Z:r[2]=1;break;case K.I:un(s,[1,0,0],r);break;case K.J:un(s,[0,1,0],r);break;case K.K:un(s,[0,0,1],r);break}return r};function n(){let r;switch(e.slicingMode){case K.X:r=0;break;case K.Y:r=1;break;case K.Z:r=2;break;default:e.closestIJKAxis={ijkMode:e.slicingMode,flip:!1};return}const s=hi(t.getCurrentImage().getDirection());let a=0;for(;a<3&&s[r+3*a]===0;++a);const i=s[r+3*a]<0;e.closestIJKAxis={ijkMode:a,flip:i}}t.setSlicingMode=r=>{e.slicingMode!==r&&(e.slicingMode=r,t.getCurrentImage()&&n(),t.modified())},t.getClosestIJKAxis=()=>((e.closestIJKAxis===void 0||e.closestIJKAxis.ijkMode===K.NONE)&&t.getCurrentImage()&&n(),e.closestIJKAxis),t.computeBounds=()=>{const r=t.getCurrentImage();if(!r){Y.reset(e.bounds);return}if(!e.useCustomExtents){Y.setBounds(e.bounds,r.getBounds());return}const s=e.customDisplayExtent.slice(),{ijkMode:a}=t.getClosestIJKAxis();let i=e.slice;switch(a!==e.slicingMode&&(i=t.getSliceAtPosition(e.slice)),a){case K.I:s[0]=i,s[1]=i;break;case K.J:s[2]=i,s[3]=i;break;case K.K:s[4]=i,s[5]=i;break}Y.setBounds(e.bounds,r.extentToBounds(s))},t.getBoundsForSlice=(r=e.slice,s=0)=>{const a=t.getCurrentImage();if(!a)return Wn();const i=a.getSpatialExtent(),{ijkMode:o}=t.getClosestIJKAxis();let c=r;switch(o!==e.slicingMode&&(c=t.getSliceAtPosition(r)),o){case K.I:i[0]=c-s,i[1]=c+s;break;case K.J:i[2]=c-s,i[3]=c+s;break;case K.K:i[4]=c-s,i[5]=c+s;break}return a.extentToBounds(i)},t.intersectWithLineForPointPicking=(r,s)=>Fo(r,s,t),t.intersectWithLineForCellPicking=(r,s)=>Bo(r,s,t),t.getCurrentImage=()=>t.getInputData()}var Vo={slicingMode:K.NONE,closestIJKAxis:{ijkMode:K.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function ha(t,e,n={}){Object.assign(e,Vo,n),Do.extend(t,e,n),C.get(t,e,["slicingMode"]),C.setGet(t,e,["closestIJKAxis","renderToRectangle","sliceAtFocalPoint","preferSizeOverAccuracy"]),sn.implementCoincidentTopologyMethods(t,e),Uo(t,e)}var ko=C.newInstance(ha,"vtkImageMapper"),Mp={newInstance:ko,extend:ha,...No,...Go,...ua},$o={DISPLAY:0,WORLD:1},pa={CoordinateSystem:$o},{CoordinateSystem:Nn}=pa;function Rr(t){return()=>C.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function Wo(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let n=e.mtime;for(let r=0;r<e.textures.length;++r){const s=e.textures[r].getMTime();s>n&&(n=s)}return n},t.processSelectorPixelBuffers=(n,r)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=Rr("pick"),t.hasKey=Rr("hasKey"),t.getNestedVisibility=()=>e.visibility&&(!e._parentProp||e._parentProp.getNestedVisibility()),t.getNestedPickable=()=>e.pickable&&(!e._parentProp||e._parentProp.getNestedPickable()),t.getNestedDragable=()=>e.dragable&&(!e._parentProp||e._parentProp.getNestedDragable()),t.getRedrawMTime=()=>e.mtime,t.setEstimatedRenderTime=n=>{e.estimatedRenderTime=n,e.savedEstimatedRenderTime=n},t.restoreEstimatedRenderTime=()=>{e.estimatedRenderTime=e.savedEstimatedRenderTime},t.addEstimatedRenderTime=n=>{e.estimatedRenderTime+=n},t.setAllocatedRenderTime=n=>{e.allocatedRenderTime=n,e.savedEstimatedRenderTime=e.estimatedRenderTime,e.estimatedRenderTime=0},t.getSupportsSelection=()=>!1,t.getTextures=()=>e.textures,t.hasTexture=n=>e.textures.indexOf(n)!==-1,t.addTexture=n=>{n&&!t.hasTexture(n)&&(e.textures=e.textures.concat(n),t.modified())},t.removeTexture=n=>{const r=e.textures.filter(s=>s!==n);e.textures.length!==r.length&&(e.textures=r,t.modified())},t.removeAllTextures=()=>{e.textures=[],t.modified()},t.setCoordinateSystemToWorld=()=>t.setCoordinateSystem(Nn.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(Nn.DISPLAY)}var Ho={allocatedRenderTime:10,coordinateSystem:Nn.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Ta(t,e,n={}){Object.assign(e,Ho,n),C.obj(t,e),C.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),C.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),C.moveToProtected(t,e,["parentProp"]),Wo(t,e)}var zo=C.newInstance(Ta,"vtkProp"),jo={newInstance:zo,extend:Ta,...pa},Xo=1e-6;function Ko(t,e){e.classHierarchy.push("vtkProp3D"),t.addPosition=a=>{e.position=e.position.map((i,o)=>i+a[o]),t.modified()},t.getOrientationWXYZ=()=>{const a=qe();sr(a,e.rotation);const i=new Float64Array(3);return[On(Bi(i,a)),i[0],i[1],i[2]]},t.getOrientationQuaternion=(a=[])=>sr(a,e.rotation),t.rotateX=a=>{a!==0&&(pi(e.rotation,e.rotation,m(a)),t.modified())},t.rotateY=a=>{a!==0&&(Ti(e.rotation,e.rotation,m(a)),t.modified())},t.rotateZ=a=>{a!==0&&(vi(e.rotation,e.rotation,m(a)),t.modified())},t.rotateWXYZ=(a,i,o,c)=>{if(a===0||i===0&&o===0&&c===0)return;const g=m(a),T=qe();jn(T,[i,o,c],g);const f=new Float64Array(16);zt(f,T),Re(e.rotation,e.rotation,f),t.modified()},t.rotateQuaternion=a=>{if(Math.abs(a[3])>=1-Xo)return;const i=zt(new Float64Array(16),a);Re(e.rotation,e.rotation,i),t.modified()},t.setOrientation=(a,i,o)=>a===e.orientation[0]&&i===e.orientation[1]&&o===e.orientation[2]?!1:(e.orientation=[a,i,o],b(e.rotation),t.rotateZ(o),t.rotateX(a),t.rotateY(i),t.modified(),!0),t.setOrientationFromQuaternion=a=>{const i=$n();return zt(i,a),ir(i,e.rotation)?!1:(e.rotation=i,t.modified(),!0)},t.setUserMatrix=a=>ir(e.userMatrix,a)?!1:(pt(e.userMatrix,a),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){b(e.matrix),e.userMatrix&&Re(e.matrix,e.matrix,e.userMatrix),oe(e.matrix,e.matrix,e.origin),oe(e.matrix,e.matrix,e.position),Re(e.matrix,e.matrix,e.rotation),Ln(e.matrix,e.matrix,e.scale),oe(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),ce(e.matrix,e.matrix),e.isIdentity=!0;for(let a=0;a<4;++a)for(let i=0;i<4;++i)(a===i?1:0)!==e.matrix[a+i*4]&&(e.isIdentity=!1);e.matrixMTime.modified()}},t.computeBounds=()=>{if(e.mapper===null){Y.reset(e.bounds);return}const a=e.mapper.getBounds();if(!a||a.length!==6||!Y.isValid(a)){e.mapperBounds=a,Y.reset(e.bounds),e.boundsMTime.modified();return}if(!e.mapperBounds||!a.every((i,o)=>a[o]===e.mapperBounds[o])||t.getMTime()>e.boundsMTime.getMTime()){C.vtkDebugMacro("Recomputing bounds..."),e.mapperBounds=a,t.computeMatrix();const i=new Float64Array(16);ce(i,e.matrix),Y.transformBounds(a,i,e.bounds),e.boundsMTime.modified()}};const n=t.getBounds;t.getBounds=()=>(t.computeBounds(),n());const r=t.getBoundsByReference;t.getBoundsByReference=()=>(t.computeBounds(),r()),t.getCenter=()=>Y.getCenter(t.getBoundsByReference()),t.getLength=()=>Y.getLength(t.getBoundsByReference()),t.getXRange=()=>Y.getXRange(t.getBoundsByReference()),t.getYRange=()=>Y.getYRange(t.getBoundsByReference()),t.getZRange=()=>Y.getZRange(t.getBoundsByReference()),t.getUserMatrix=()=>e.userMatrix;function s(){t.computeMatrix()}t.onModified(s),t.getProperty=(a=0)=>(e.properties[a]==null&&(e.properties[a]=t.makeProperty?.()),e.properties[a]),t.getProperties=()=>(e.properties.length===0&&(e.properties[0]=t.makeProperty?.()),e.properties),t.setProperty=(a,i)=>{const[o,c]=Number.isInteger(a)?[a,i]:[0,a];return e.properties[o]===c?!1:(e.properties[o]=c,!0)},t.getMTime=()=>{let a=e.mtime;return e.properties.forEach(i=>{if(i!==null){const o=i.getMTime();a=o>a?o:a}}),a}}var Yo={bounds:[...Y.INIT_BOUNDS],origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],properties:[],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function va(t,e,n={}){Object.assign(e,Yo,n),jo.extend(t,e,n),e.matrixMTime={},C.obj(e.matrixMTime),C.get(t,e,["isIdentity"]),C.getArray(t,e,["orientation"]),C.setGetArray(t,e,["origin","position","scale"],3),C.setGet(t,e,["properties"]),C.getArray(t,e,["bounds"],6),e.matrix=b(new Float64Array(16)),e.rotation=b(new Float64Array(16)),e.userMatrix=b(new Float64Array(16)),e.transform=null,Ko(t,e)}var Zo=C.newInstance(va,"vtkProp3D"),qn={newInstance:Zo,extend:va},Qo={NEAREST:0,LINEAR:1},Jo={InterpolationType:Qo},{InterpolationType:Xt}=Jo,{vtkErrorMacro:Cr}=C,Kt=4;function qo(t,e){e.classHierarchy.push("vtkImageProperty"),t.getMTime=()=>{let n=e.mtime,r;for(let s=0;s<Kt;s++)e.componentData[s].rGBTransferFunction&&(r=e.componentData[s].rGBTransferFunction.getMTime(),n=n>r?n:r),e.componentData[s].piecewiseFunction&&(r=e.componentData[s].piecewiseFunction.getMTime(),n=n>r?n:r);return n},t.setRGBTransferFunction=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),e.componentData[s].rGBTransferFunction!==a?(e.componentData[s].rGBTransferFunction=a,t.modified(),!0):!1},t.getRGBTransferFunction=(n=0)=>e.componentData[n].rGBTransferFunction,t.setPiecewiseFunction=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),e.componentData[s].piecewiseFunction!==a?(e.componentData[s].piecewiseFunction=a,t.modified(),!0):!1},t.getPiecewiseFunction=(n=0)=>e.componentData[n].piecewiseFunction,t.setScalarOpacity=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),t.setPiecewiseFunction(s,a)},t.getScalarOpacity=(n=0)=>t.getPiecewiseFunction(n),t.setComponentWeight=(n=0,r=1)=>{if(n<0||n>=Kt)return Cr("Invalid index"),!1;const s=Math.min(1,Math.max(0,r));return e.componentData[n].componentWeight!==s?(e.componentData[n].componentWeight=s,t.modified(),!0):!1},t.getComponentWeight=(n=0)=>n<0||n>=Kt?(Cr("Invalid index"),0):e.componentData[n].componentWeight,t.setInterpolationTypeToNearest=()=>t.setInterpolationType(Xt.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(Xt.LINEAR),t.getInterpolationTypeAsString=()=>C.enumToString(Xt,e.interpolationType)}var Ao=t=>({independentComponents:!1,interpolationType:Xt.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,updatedExtents:[],...t});function bo(t,e,n={}){if(Object.assign(e,Ao(n)),C.obj(t,e),!e.componentData){e.componentData=[];for(let r=0;r<Kt;r++)e.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}C.setGet(t,e,["independentComponents","interpolationType","colorWindow","colorLevel","ambient","diffuse","opacity","useLookupTableScalarRange","useLabelOutline","labelOutlineOpacity","updatedExtents"]),C.setGetArray(t,e,["labelOutlineThickness"]),qo(t,e)}var Io=C.newInstance(bo,"vtkImageProperty"),mo={newInstance:Io};function Po(t,e){e.classHierarchy.push("vtkImageSlice"),t.getActors=()=>t,t.getImages=()=>t,t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.properties[0]||t.getProperty();let n=e.properties[0].getOpacity()>=1;return n=n&&(!e.mapper||e.mapper.getIsOpaque()),n},t.hasTranslucentPolygonalGeometry=()=>!1,t.makeProperty=mo.newInstance,t.getBoundsForSlice=(n,r)=>{const s=e.mapper.getBoundsForSlice(n,r);if(!Y.isValid(s))return s;t.computeMatrix();const a=new Float64Array(16);return ce(a,e.matrix),Y.transformBounds(s,a)},t.getMinXBound=()=>t.getBoundsByReference()[0],t.getMaxXBound=()=>t.getBoundsByReference()[1],t.getMinYBound=()=>t.getBoundsByReference()[2],t.getMaxYBound=()=>t.getBoundsByReference()[3],t.getMinZBound=()=>t.getBoundsByReference()[4],t.getMaxZBound=()=>t.getBoundsByReference()[5],t.getRedrawMTime=()=>{let n=e.mtime;if(e.mapper!==null){let r=e.mapper.getMTime();n=r>n?r:n,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),r=e.mapper.getInput().getMTime(),n=r>n?r:n)}return e.properties.forEach(r=>{n=Math.max(n,r.getMTime());const s=r.getRGBTransferFunction();s!==null&&(n=Math.max(n,s.getMTime()))}),n},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1}var ef={mapper:null,forceOpaque:!1,forceTranslucent:!1};function ya(t,e,n={}){Object.assign(e,ef,n),qn.extend(t,e,n),e.boundsMTime={},C.obj(e.boundsMTime),C.setGet(t,e,["mapper","forceOpaque","forceTranslucent"]),Po(t,e)}var tf=C.newInstance(ya,"vtkImageSlice"),Op={newInstance:tf,extend:ya},{vtkErrorMacro:Nt}=C;function nf(t,e){e.classHierarchy.push("vtkPiecewiseFunction"),t.getSize=()=>e.nodes.length,t.getType=()=>{let n,r=0,s=0;e.nodes.length>0&&(r=e.nodes[0].y);for(let a=1;a<e.nodes.length;a++){if(n=e.nodes[a].y,n!==r)if(n>r)switch(s){case 0:case 1:s=1;break;default:s=3;break}else switch(s){case 0:case 2:s=2;break;default:s=3;break}if(r=n,s===3)break}switch(s){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:return"Varied"}},t.getDataPointer=()=>{const n=e.nodes.length;if(e.function=null,n>0){e.function=[];for(let r=0;r<n;r++)e.function[2*r]=e.nodes[r].x,e.function[2*r+1]=e.nodes[r].y}return e.function},t.getFirstNonZeroValue=()=>{if(e.nodes.length===0)return 0;let n=1,r=0,s=0;for(;s<e.nodes.length;s++)if(e.nodes[s].y!==0){n=0;break}return n?r=Number.MAX_VALUE:s>0?r=e.nodes[s-1].x:e.clamping?r=-Number.MAX_VALUE:r=e.nodes[0].x,r},t.getNodeValue=(n,r)=>{const s=e.nodes.length;return n<0||n>=s?(Nt("Index out of range!"),-1):(r[0]=e.nodes[n].x,r[1]=e.nodes[n].y,r[2]=e.nodes[n].midpoint,r[3]=e.nodes[n].sharpness,1)},t.setNodeValue=(n,r)=>{const s=e.nodes.length;if(n<0||n>=s)return Nt("Index out of range!"),-1;const a=e.nodes[n].x;return e.nodes[n].x=r[0],e.nodes[n].y=r[1],e.nodes[n].midpoint=r[2],e.nodes[n].sharpness=r[3],a!==r[0]?t.sortAndUpdateRange():t.modified(),1},t.addPoint=(n,r)=>t.addPointLong(n,r,.5,0),t.addPointLong=(n,r,s,a)=>{if(s<0||s>1)return Nt("Midpoint outside range [0.0, 1.0]"),-1;if(a<0||a>1)return Nt("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(n);const i={x:n,y:r,midpoint:s,sharpness:a};e.nodes.push(i),t.sortAndUpdateRange();let o;for(o=0;o<e.nodes.length&&e.nodes[o].x!==n;o++);return o<e.nodes.length?o:-1},t.setNodes=n=>{e.nodes!==n&&(e.nodes=n,t.sortAndUpdateRange())},t.sortAndUpdateRange=()=>{e.nodes.sort((n,r)=>n.x-r.x),t.updateRange()||t.modified()},t.updateRange=()=>{const n=e.range.slice(),r=e.nodes.length;return r?(e.range[0]=e.nodes[0].x,e.range[1]=e.nodes[r-1].x):(e.range[0]=0,e.range[1]=0),n[0]===e.range[0]&&n[1]===e.range[1]?!1:(t.modified(),!0)},t.removePoint=n=>{let r;for(r=0;r<e.nodes.length&&e.nodes[r].x!==n;r++);if(r>=e.nodes.length)return-1;const s=r;let a=!1;return e.nodes.splice(r,1),(r===0||r===e.nodes.length)&&(a=t.updateRange()),a||t.modified(),s},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addSegment=(n,r,s,a)=>{t.sortAndUpdateRange();for(let i=0;i<e.nodes.length;)e.nodes[i].x>=n&&e.nodes[i].x<=s?e.nodes.splice(i,1):i++;t.addPoint(n,r,.5,0),t.addPoint(s,a,.5,0)},t.getValue=n=>{const r=[];return t.getTable(n,n,1,r),r[0]},t.adjustRange=n=>{if(n.length<2)return 0;const r=t.getRange();r[0]<n[0]?t.addPoint(n[0],t.getValue(n[0])):t.addPoint(n[0],t.getValue(r[0])),r[1]>n[1]?t.addPoint(n[1],t.getValue(n[1])):t.addPoint(n[1],t.getValue(r[1])),t.sortAndUpdateRange();for(let s=0;s<e.nodes.length;)e.nodes[s].x>=n[0]&&e.nodes[s].x<=n[1]?e.nodes.splice(s,1):++s;return t.sortAndUpdateRange(),1},t.estimateMinNumberOfSamples=(n,r)=>{const s=t.findMinimumXDistance();return Math.ceil((r-n)/s)},t.findMinimumXDistance=()=>{const n=e.nodes.length;if(n<2)return-1;let r=e.nodes[1].x-e.nodes[0].x;for(let s=0;s<n-1;s++){const a=e.nodes[s+1].x-e.nodes[s].x;a<r&&(r=a)}return r},t.getTable=(n,r,s,a,i=1)=>{let o,c=0;const g=e.nodes.length;let T=0;g!==0&&(T=e.nodes[g-1].y);let f=0,y=0,w=0,R=0,l=0,x=0,u=0;for(o=0;o<s;o++){const p=i*o;for(s>1?f=n+o/(s-1)*(r-n):f=.5*(n+r);c<g&&f>e.nodes[c].x;)c++,c<g&&(y=e.nodes[c-1].x,w=e.nodes[c].x,R=e.nodes[c-1].y,l=e.nodes[c].y,x=e.nodes[c-1].midpoint,u=e.nodes[c-1].sharpness,x<1e-5&&(x=1e-5),x>.99999&&(x=.99999));if(c>=g)a[p]=e.clamping?T:0;else if(c===0)a[p]=e.clamping?e.nodes[0].y:0;else{let h=(f-y)/(w-y);if(h<x?h=.5*h/x:h=.5+.5*(h-x)/(1-x),u>.99)if(h<.5){a[p]=R;continue}else{a[p]=l;continue}if(u<.01){a[p]=(1-h)*R+h*l;continue}h<.5?h=.5*(h*2)**(1+10*u):h>.5&&(h=1-.5*((1-h)*2)**(1+10*u));const v=h*h,E=v*h,S=2*E-3*v+1,_=-2*E+3*v,d=E-2*v+h,L=E-v,M=l-R,D=(1-u)*M;a[p]=S*R+_*l+d*D+L*D;const F=R<l?R:l,N=R>l?R:l;a[p]=a[p]<F?F:a[p],a[p]=a[p]>N?N:a[p]}}}}var rf={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function la(t,e,n={}){Object.assign(e,rf,n),C.obj(t,e),e.nodes=[],C.setGet(t,e,["allowDuplicateScalars","clamping"]),C.setArray(t,e,["range"],2),C.getArray(t,e,["range"]),nf(t,e)}var af=C.newInstance(la,"vtkPiecewiseFunction"),Gn={newInstance:af,extend:la},xa={FLAT:0,GOURAUD:1,PHONG:2},st={POINTS:0,WIREFRAME:1,SURFACE:2},sf=xa,Ea={Shading:xa,Representation:st,Interpolation:sf},of={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Un={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Sa={Wrap:of,Filter:Un},Ra=new Float32Array(1),ff=new Int32Array(Ra.buffer);function cf(t){Ra[0]=t;const e=ff[0];let n=e>>16&32768,r=e>>12&2047;const s=e>>23&255;return s<103?n:s>142?(n|=31744,n|=(s===255?0:1)&&e&8388607,n):s<113?(r|=2048,n|=(r>>114-s)+(r>>113-s&1),n):(n|=s-112<<10|r>>1,n+=r&1,n)}function uf(t){const e=(t&32768)>>15,n=(t&31744)>>10,r=t&1023;return n===0?(e?-1:1)*2**-14*(r/2**10):n===31?r?NaN:(e?-1:1)*(1/0):(e?-1:1)*2**(n-15)*(1+r/2**10)}var Ze={fromHalf:uf,toHalf:cf},{vtkErrorMacro:gf}=C,hf=["Build","Render"];function pf(t,e){e.classHierarchy.push("vtkViewNode");function n(s,a){for(let i=0;i<e.children.length;++i){const o=(a+1+i)%e.children.length;if(e.children[o]===s)return e.children[o]=e.children[a],e.children[a]=s,!0}return!1}t.build=s=>{},t.render=s=>{},t.traverse=s=>{const a=t[s.getTraverseOperation()];if(a){a(s);return}t.apply(s,!0);for(let i=0;i<e.children.length;i++)e.children[i].traverse(s);t.apply(s,!1)},t.apply=(s,a)=>{const i=t[s.getOperation()];i&&i(a,s)},t.getViewNodeFor=(s,a=null)=>{if(a&&a.renderable===s)return a;if(e.renderable===s)return t;for(let i=0;i<e.children.length;++i){const o=e.children[i].getViewNodeFor(s);if(o)return o}},t.getFirstAncestorOfType=s=>e._parent?e._parent.isA(s)?e._parent:e._parent.getFirstAncestorOfType(s):null,t.getLastAncestorOfType=s=>{if(!e._parent)return null;const a=e._parent.getLastAncestorOfType(s);return a||(e._parent.isA(s)?e._parent:null)},t.addMissingNode=s=>{if(!s)return;const a=e._renderableChildMap.get(s);if(a!==void 0)return a.setVisited(!0),a;const i=t.createViewNode(s);if(i)return i.setParent(t),i.setVisited(!0),e._renderableChildMap.set(s,i),e.children.push(i),i},t.addMissingNodes=(s,a=!1)=>{if(!s||!s.length)return;let i;for(let o=0;o<s.length;++o){const c=s[o],g=t.addMissingNode(c);a&&g!==void 0&&(i===void 0?i=e.children.lastIndexOf(g):e.children[i]!==g&&n(e.children,g),i++)}},t.addMissingChildren=s=>{if(!(!s||!s.length))for(let a=0;a<s.length;++a){const i=s[a];if(e.children.indexOf(i)===-1){i.setParent(t),e.children.push(i);const o=i.getRenderable();o&&e._renderableChildMap.set(o,i)}i.setVisited(!0)}},t.removeNode=s=>{const a=e.children.findIndex(o=>o===s);if(a<0)return!1;const i=s.getRenderable();return i&&e._renderableChildMap.delete(i),s.delete(),e.children.splice(a,1),!0},t.prepareNodes=()=>{for(let s=0;s<e.children.length;++s)e.children[s].setVisited(!1)},t.setVisited=s=>{e.visited=s},t.removeUnusedNodes=()=>{let s=0;for(let a=0;a<e.children.length;++a){const i=e.children[a];if(i.getVisited())e.children[s++]=i,i.setVisited(!1);else{const o=i.getRenderable();o&&e._renderableChildMap.delete(o),i.delete()}}e.children.length=s},t.createViewNode=s=>{if(!e.myFactory)return gf("Cannot create view nodes without my own factory"),null;const a=e.myFactory.createNode(s);return a&&a.setRenderable(s),a};const r=t.delete;t.delete=()=>{for(let s=0;s<e.children.length;s++)e.children[s].delete();r()}}var Tf={renderable:null,myFactory:null,children:[],visited:!1};function wr(t,e,n={}){Object.assign(e,Tf,n),C.obj(t,e),C.event(t,e,"event"),e._renderableChildMap=new Map,C.get(t,e,["visited"]),C.setGet(t,e,["_parent","renderable","myFactory"]),C.getArray(t,e,["children"]),C.moveToProtected(t,e,["parent"]),pf(t,e)}var An={newInstance:C.newInstance(wr,"vtkViewNode"),extend:wr,PASS_TYPES:hf},{vtkWarningMacro:vf}=C;function yf(t){const e=[];let n=0,r=t.getClassName(n++);for(;r;)e.push(r),r=t.getClassName(n++);return e}function lf(t,e){const n=e.join(" → ");return[`No ${t} implementation found for ${e[0]}.`,`Class hierarchy: ${n}.`,`A rendering Profile is likely missing for ${e[0]}.`,"Try importing '@kitware/vtk.js/Rendering/Profiles/All' or 'vtk.js/Sources/Rendering/Profiles/All',","or import the specific rendering profile needed by this renderable if known.","See https://kitware.github.io/vtk-js/docs/concepts_profile.html for details."].join(`
|
|
1
|
+
import{aw as St,ax as Ir,a5 as ri,ad as rr,q as ai,u as cn,aj as si,p as At,a0 as ii,m as C,Y as $n,k as b,y as ye,ak as m,E as oe,j as P,au as bt,ay as oi,J as pt,i as at,$ as fi,x as Re,av as de,t as ce,o as It,F as Ln,s as ar,az as ci,aA as ui,_ as zt,D as ne,aB as tt,aC as mt,aD as mr,aE as gi,aF as dt,aG as nt,aH as Mn,B as Y,aI as Wn,P as Je,aJ as Qe,aK as un,aL as hi,aM as sr,as as On,z as pi,A as Ti,C as vi,G as ir,L as it,aN as yi,N as Ct,W as Hn,X as Pr,K as ot,aO as ea,aP as _t,ao as Ie,a9 as li,R as zn,T as I,ag as ta,V as ee,aa as xi,aQ as Ei,aR as or,aS as fr,aT as na,f as fe,d as Q,aU as Si,h as he,al as rn,aV as ra,aW as Ri,c as Ci,n as _e,aX as Lt,aY as cr,aZ as gn,a_ as wi,a$ as di,I as _i,ai as ur,b0 as Li,b1 as hn}from"./cornerstoneEngine-56y7wcWv.js";import{g as Mi}from"./_commonjsHelpers-CE1G-McA.js";function Oi(){var t=new St(4);return St!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Di(t,e,n,r){var s=new St(4);return s[0]=t,s[1]=e,s[2]=n,s[3]=r,s}function Lp(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}function Fi(t,e){var n=e[0],r=e[1],s=e[2],a=e[3],i=n*n+r*r+s*s+a*a;return i>0&&(i=1/Math.sqrt(i)),t[0]=n*i,t[1]=r*i,t[2]=s*i,t[3]=a*i,t}function Ke(t,e,n){var r=e[0],s=e[1],a=e[2],i=e[3];return t[0]=n[0]*r+n[4]*s+n[8]*a+n[12]*i,t[1]=n[1]*r+n[5]*s+n[9]*a+n[13]*i,t[2]=n[2]*r+n[6]*s+n[10]*a+n[14]*i,t[3]=n[3]*r+n[7]*s+n[11]*a+n[15]*i,t}(function(){var t=Oi();return function(e,n,r,s,a,i){var o,c;for(n||(n=4),r||(r=0),s?c=Math.min(s*n+r,e.length):c=e.length,o=r;o<c;o+=n)t[0]=e[o],t[1]=e[o+1],t[2]=e[o+2],t[3]=e[o+3],a(t,t,i),e[o]=t[0],e[o+1]=t[1],e[o+2]=t[2],e[o+3]=t[3];return e}})();function qe(){var t=new St(4);return St!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function jn(t,e,n){n=n*.5;var r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t}function Bi(t,e){var n=Math.acos(e[3])*2,r=Math.sin(n/2);return r>Ir?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),n}function gr(t,e,n){var r=e[0],s=e[1],a=e[2],i=e[3],o=n[0],c=n[1],g=n[2],T=n[3];return t[0]=r*T+i*o+s*g-a*c,t[1]=s*T+i*c+a*o-r*g,t[2]=a*T+i*g+r*c-s*o,t[3]=i*T-r*o-s*c-a*g,t}function jt(t,e,n,r){var s=e[0],a=e[1],i=e[2],o=e[3],c=n[0],g=n[1],T=n[2],f=n[3],y,w,R,l,x;return w=s*c+a*g+i*T+o*f,w<0&&(w=-w,c=-c,g=-g,T=-T,f=-f),1-w>Ir?(y=Math.acos(w),R=Math.sin(y),l=Math.sin((1-r)*y)/R,x=Math.sin(r*y)/R):(l=1-r,x=r),t[0]=l*s+x*c,t[1]=l*a+x*g,t[2]=l*i+x*T,t[3]=l*o+x*f,t}function Ni(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Gi(t,e){var n=e[0]+e[4]+e[8],r;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var s=0;e[4]>e[0]&&(s=1),e[8]>e[s*3+s]&&(s=2);var a=(s+1)%3,i=(s+2)%3;r=Math.sqrt(e[s*3+s]-e[a*3+a]-e[i*3+i]+1),t[s]=.5*r,r=.5/r,t[3]=(e[a*3+i]-e[i*3+a])*r,t[a]=(e[a*3+s]+e[s*3+a])*r,t[i]=(e[i*3+s]+e[s*3+i])*r}return t}var hr=Di,aa=Fi;(function(){var t=ri(),e=rr(1,0,0),n=rr(0,1,0);return function(r,s,a){var i=ai(s,a);return i<-.999999?(cn(t,e,s),si(t)<1e-6&&cn(t,n,s),At(t,t),jn(r,t,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(cn(t,s,a),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+i,aa(r,r))}})();(function(){var t=qe(),e=qe();return function(n,r,s,a,i,o){return jt(t,r,i,o),jt(e,s,a,o),jt(n,t,e,2*o*(1-o)),n}})();(function(){var t=ii();return function(e,n,r,s){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=s[0],t[4]=s[1],t[7]=s[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],aa(e,Gi(e,t))}})();var Ui={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6},Vi={BlendMode:Ui},{vtkDebugMacro:Mt}=C;function ki(t,e){e.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),s=new Float64Array([0,1,0]),a=b(new Float64Array(16)),i=b(new Float64Array(16)),o=new Float64Array(3),c=new Float64Array(3),g=new Float64Array(3),T=b(new Float64Array(16)),f=b(new Float64Array(16)),y=new Float64Array(3),w=new Float64Array(3);function R(){e.viewPlaneNormal[0]=-e.directionOfProjection[0],e.viewPlaneNormal[1]=-e.directionOfProjection[1],e.viewPlaneNormal[2]=-e.directionOfProjection[2]}t.orthogonalizeViewUp=()=>{t.getViewMatrix(a),e.viewUp[0]=a[4],e.viewUp[1]=a[5],e.viewUp[2]=a[6],t.modified()},t.setPosition=(l,x,u)=>{l===e.position[0]&&x===e.position[1]&&u===e.position[2]||(e.position[0]=l,e.position[1]=x,e.position[2]=u,t.computeDistance(),t.modified())},t.setFocalPoint=(l,x,u)=>{l===e.focalPoint[0]&&x===e.focalPoint[1]&&u===e.focalPoint[2]||(e.focalPoint[0]=l,e.focalPoint[1]=x,e.focalPoint[2]=u,t.computeDistance(),t.modified())},t.setDistance=l=>{if(e.distance===l)return;e.distance=l,e.distance<1e-20&&(e.distance=1e-20,Mt("Distance is set to minimum."));const x=e.directionOfProjection;e.focalPoint[0]=e.position[0]+x[0]*e.distance,e.focalPoint[1]=e.position[1]+x[1]*e.distance,e.focalPoint[2]=e.position[2]+x[2]*e.distance,t.modified()},t.computeDistance=()=>{const l=e.focalPoint[0]-e.position[0],x=e.focalPoint[1]-e.position[1],u=e.focalPoint[2]-e.position[2];if(e.distance=Math.sqrt(l*l+x*x+u*u),e.distance<1e-20){e.distance=1e-20,Mt("Distance is set to minimum.");const p=e.directionOfProjection;e.focalPoint[0]=e.position[0]+p[0]*e.distance,e.focalPoint[1]=e.position[1]+p[1]*e.distance,e.focalPoint[2]=e.position[2]+p[2]*e.distance}e.directionOfProjection[0]=l/e.distance,e.directionOfProjection[1]=x/e.distance,e.directionOfProjection[2]=u/e.distance,R()},t.dolly=l=>{if(l<=0)return;const x=e.distance/l;t.setPosition(e.focalPoint[0]-x*e.directionOfProjection[0],e.focalPoint[1]-x*e.directionOfProjection[1],e.focalPoint[2]-x*e.directionOfProjection[2])},t.roll=l=>{const x=e.position,u=e.focalPoint,p=e.viewUp,h=new Float64Array([p[0],p[1],p[2],0]);b(T);const v=new Float64Array([u[0]-x[0],u[1]-x[1],u[2]-x[2]]);ye(T,T,m(l),v),Ke(h,h,T),e.viewUp[0]=h[0],e.viewUp[1]=h[1],e.viewUp[2]=h[2],t.modified()},t.azimuth=l=>{const x=e.focalPoint;b(f),oe(f,f,x),ye(f,f,m(l),e.viewUp),oe(f,f,[-x[0],-x[1],-x[2]]),P(y,e.position,f),t.setPosition(y[0],y[1],y[2])},t.yaw=l=>{const x=e.position;b(f),oe(f,f,x),ye(f,f,m(l),e.viewUp),oe(f,f,[-x[0],-x[1],-x[2]]),P(w,e.focalPoint,f),t.setFocalPoint(w[0],w[1],w[2])},t.elevation=l=>{const x=e.focalPoint;t.getViewMatrix(a);const u=[-a[0],-a[1],-a[2]];b(f),oe(f,f,x),ye(f,f,m(l),u),oe(f,f,[-x[0],-x[1],-x[2]]),P(y,e.position,f),t.setPosition(y[0],y[1],y[2])},t.pitch=l=>{const x=e.position;t.getViewMatrix(a);const u=[a[0],a[1],a[2]];b(f),oe(f,f,x),ye(f,f,m(l),u),oe(f,f,[-x[0],-x[1],-x[2]]),P(w,e.focalPoint,f),t.setFocalPoint(...w)},t.zoom=l=>{l<=0||(e.parallelProjection?e.parallelScale/=l:e.viewAngle/=l,t.modified())},t.translate=(l,x,u)=>{const p=[l,x,u];bt(e.position,p,e.position),bt(e.focalPoint,p,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=l=>{const x=[...e.viewUp,1],u=[],p=[],h=[];x[0]+=e.position[0],x[1]+=e.position[1],x[2]+=e.position[2],Ke(u,[...e.position,1],l),Ke(p,[...e.focalPoint,1],l),Ke(h,x,l),h[0]-=u[0],h[1]-=u[1],h[2]-=u[2],t.setPosition(...u.slice(0,3)),t.setFocalPoint(...p.slice(0,3)),t.setViewUp(...h.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=l=>{let x=l;x<1e-20&&(x=1e-20,Mt("Thickness is set to minimum.")),t.setClippingRange(e.clippingRange[0],e.clippingRange[0]+x)},t.setThicknessFromFocalPoint=l=>{let x=l;x<1e-20&&(x=1e-20,Mt("Thickness is set to minimum.")),t.setClippingRange(e.distance-x/2,e.distance+x/2)},t.setRoll=l=>{},t.getRoll=()=>{},t.setObliqueAngles=(l,x)=>{},t.getOrientation=()=>{},t.getOrientationWXYZ=()=>{},t.getFrustumPlanes=(l=1,x=new Float64Array(24))=>{const u=[[1,0,0,1],[-1,0,0,1],[0,1,0,1],[0,-1,0,1],[0,0,1,1],[0,0,-1,1]],p=t.getCompositeProjectionMatrix(l,-1,1);for(let h=0;h<6;h++)Ke(u[h],u[h],p),oi(u[h]),x[4*h+0]=u[h][0],x[4*h+1]=u[h][1],x[4*h+2]=u[h][2],x[4*h+3]=u[h][3];return x},t.getCameraLightTransformMatrix=l=>(pt(l,e.cameraLightTransform),l),t.computeCameraLightTransform=()=>{t.getViewMatrix(a),at(a,a),fi(i,[e.distance,e.distance,e.distance]),Re(a,a,i),b(e.cameraLightTransform),oe(e.cameraLightTransform,a,[0,0,-1])},t.deepCopy=l=>{},t.physicalOrientationToWorldDirection=l=>{const x=hr(l[0],l[1],l[2],l[3]),u=qe(),p=hr(0,0,1,0);return Ni(u,x),gr(p,x,p),gr(p,p,u),[p[0],p[1],p[2]]},t.getPhysicalToWorldMatrix=l=>{t.getWorldToPhysicalMatrix(l),at(l,l)},t.getWorldToPhysicalMatrix=l=>{b(l);const x=[3];de(e.physicalViewNorth,e.physicalViewUp,x),l[0]=x[0],l[1]=x[1],l[2]=x[2],l[4]=e.physicalViewUp[0],l[5]=e.physicalViewUp[1],l[6]=e.physicalViewUp[2],l[8]=-e.physicalViewNorth[0],l[9]=-e.physicalViewNorth[1],l[10]=-e.physicalViewNorth[2],ce(l,l),It(o,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),Ln(l,l,o),oe(l,l,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=l=>{at(a,l),P(o,n,a),t.computeDistance();const x=e.distance;t.setPosition(o[0],o[1],o[2]),P(c,r,a),ar(c,c,o),At(c,c),t.setDirectionOfProjection(c[0],c[1],c[2]),P(g,s,a),ar(g,g,o),At(g,g),t.setViewUp(g[0],g[1],g[2]),t.setDistance(x)},t.computeViewParametersFromPhysicalMatrix=l=>{t.getWorldToPhysicalMatrix(a),Re(a,l,a),t.computeViewParametersFromViewMatrix(a)},t.setViewMatrix=l=>{e.viewMatrix=l,e.viewMatrix&&(t.computeViewParametersFromViewMatrix(e.viewMatrix),ce(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=(l=new Float64Array(16))=>e.viewMatrix?(e.modelTransformMatrix?Re(l,e.modelTransformMatrix,e.viewMatrix):pt(l,e.viewMatrix),l):(ci(l,e.position,e.focalPoint,e.viewUp),ce(l,l),e.modelTransformMatrix&&Re(l,e.modelTransformMatrix,l),l),t.setProjectionMatrix=l=>{e.projectionMatrix=l},t.getProjectionMatrix=(l,x,u)=>{const p=new Float64Array(16);if(b(p),e.projectionMatrix){const E=1/e.physicalScale;return It(o,E,E,E),pt(p,e.projectionMatrix),Ln(p,p,o),ce(p,p),p}b(a);const h=e.clippingRange[1]-e.clippingRange[0],v=[e.clippingRange[0]+(x+1)*h/2,e.clippingRange[0]+(u+1)*h/2];if(e.parallelProjection){const E=e.parallelScale*l,S=e.parallelScale,_=(e.windowCenter[0]-1)*E,d=(e.windowCenter[0]+1)*E,L=(e.windowCenter[1]-1)*S,M=(e.windowCenter[1]+1)*S;ui(a,_,d,L,M,v[0],v[1]),ce(a,a)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const E=Math.tan(m(e.viewAngle)/2);let S,_;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*E,_=e.clippingRange[0]*E/l):(S=e.clippingRange[0]*E*l,_=e.clippingRange[0]*E);const d=(e.windowCenter[0]-1)*S,L=(e.windowCenter[0]+1)*S,M=(e.windowCenter[1]-1)*_,D=(e.windowCenter[1]+1)*_,F=v[0],N=v[1];a[0]=2*F/(L-d),a[5]=2*F/(D-M),a[2]=(d+L)/(L-d),a[6]=(M+D)/(D-M),a[10]=-(F+N)/(N-F),a[14]=-1,a[11]=-2*F*N/(N-F),a[15]=0}}return pt(p,a),p},t.getCompositeProjectionMatrix=(l,x,u)=>{const p=t.getViewMatrix(),h=t.getProjectionMatrix(l,x,u);return Re(h,p,h),h},t.setDirectionOfProjection=(l,x,u)=>{if(e.directionOfProjection[0]===l&&e.directionOfProjection[1]===x&&e.directionOfProjection[2]===u)return;e.directionOfProjection[0]=l,e.directionOfProjection[1]=x,e.directionOfProjection[2]=u;const p=e.directionOfProjection;e.focalPoint[0]=e.position[0]+p[0]*e.distance,e.focalPoint[1]=e.position[1]+p[1]*e.distance,e.focalPoint[2]=e.position[2]+p[2]*e.distance,R()},t.setDeviceAngles=(l,x,u,p)=>{const h=[3];de(e.physicalViewNorth,e.physicalViewUp,h);const v=b(new Float64Array(16));ye(v,v,m(l),e.physicalViewUp),ye(v,v,m(x),h),ye(v,v,m(u),e.physicalViewNorth),ye(v,v,m(-p),e.physicalViewUp);const E=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);P(E,E,v),P(S,S,v),t.setDirectionOfProjection(E[0],E[1],E[2]),t.setViewUp(S[0],S[1],S[2]),t.modified()},t.setOrientationWXYZ=(l,x,u,p)=>{const h=b(new Float64Array(16));if(l!==0&&(x!==0||u!==0||p!==0)){const S=m(l),_=qe();jn(_,[x,u,p],S),zt(h,_)}const v=new Float64Array(3);P(v,[0,0,-1],h);const E=new Float64Array(3);P(E,[0,1,0],h),t.setDirectionOfProjection(...v),t.setViewUp(...E),t.modified()},t.computeClippingRange=l=>{let x=null,u=null;x=e.viewPlaneNormal,u=e.position;const p=-x[0],h=-x[1],v=-x[2],E=-(p*u[0]+h*u[1]+v*u[2]),S=[p*l[0]+h*l[2]+v*l[4]+E,1e-18];for(let _=0;_<2;_++)for(let d=0;d<2;d++)for(let L=0;L<2;L++){const M=p*l[L]+h*l[2+d]+v*l[4+_]+E;S[0]=M<S[0]?M:S[0],S[1]=M>S[1]?M:S[1]}return S}}var $i={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,modelTransformMatrix:null,cameraLightTransform:$n(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function sa(t,e,n={}){Object.assign(e,$i,n),C.obj(t,e),C.get(t,e,["distance"]),C.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale","modelTransformMatrix"]),C.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),C.setGetArray(t,e,["clippingRange","windowCenter"],2),C.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),ki(t,e)}var Wi=C.newInstance(sa,"vtkCamera"),Hi={newInstance:Wi,extend:sa},zi={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},Dn={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},ji={LINEAR:0,LOG10:1},Xn={VectorMode:zi,ScalarMappingTarget:Dn,Scale:ji},Xi={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},Ki={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Yi={BY_ID:0,BY_NAME:1},Kn={ColorMode:Xi,GetArray:Yi,ScalarMode:Ki},{ScalarMappingTarget:pr,Scale:Zi,VectorMode:ve}=Xn,{VtkDataTypes:De}=ne,{ColorMode:Ot}=Kn,{vtkErrorMacro:Tr}=C;function Qi(t){return t}function vr(t){return Math.floor(t*255+.5)}function Ji(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(ve.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(ve.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(ve.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){Tr("Values and annotations do not have the same number of tuples so ignoring");return}if(e.annotationArray=[],r&&n){const s=r.length;for(let a=0;a<s;a++)e.annotationArray.push({value:n[a],annotation:String(r[a])})}t.updateAnnotatedValueMap(),t.modified()}},t.setAnnotation=(n,r)=>{let s=t.checkForAnnotatedValue(n),a=!1;return s>=0?e.annotationArray[s].annotation!==r&&(e.annotationArray[s].annotation=r,a=!0):(e.annotationArray.push({value:n,annotation:r}),s=e.annotationArray.length-1,a=!0),a&&(t.updateAnnotatedValueMap(),t.modified()),s},t.getNumberOfAnnotatedValues=()=>e.annotationArray.length,t.getAnnotatedValue=n=>n<0||n>=e.annotationArray.length?null:e.annotationArray[n].value,t.getAnnotation=n=>e.annotationArray[n]===void 0?null:e.annotationArray[n].annotation,t.getAnnotatedValueIndex=n=>e.annotationArray.length?t.checkForAnnotatedValue(n):-1,t.removeAnnotation=n=>{const r=t.checkForAnnotatedValue(n),s=r>=0;return s&&(e.annotationArray.splice(r,1),t.updateAnnotatedValueMap(),t.modified()),s},t.resetAnnotations=()=>{e.annotationArray=[],e.annotatedValueMap=[],t.modified()},t.getAnnotationColor=(n,r)=>{if(e.indexedLookup){const s=t.getAnnotatedValueIndex(n);t.getIndexedColor(s,r)}else t.getColor(parseFloat(n),r),r[3]=1},t.checkForAnnotatedValue=n=>t.getAnnotatedValueIndexInternal(n),t.getAnnotatedValueIndexInternal=n=>{if(e.annotatedValueMap[n]!==void 0){const r=e.annotationArray.length;return e.annotatedValueMap[n]%r}return-1},t.getIndexedColor=(n,r)=>{r[0]=0,r[1]=0,r[2]=0,r[3]=0},t.updateAnnotatedValueMap=()=>{e.annotatedValueMap=[];const n=e.annotationArray.length;for(let r=0;r<n;r++)e.annotatedValueMap[e.annotationArray[r].value]=r},t.mapScalars=(n,r,s)=>{const a=n.getNumberOfComponents();let i=null;if(r===Ot.DEFAULT&&(n.getDataType()===De.UNSIGNED_CHAR||n.getDataType()===De.UNSIGNED_CHAR_CLAMPED)||r===Ot.DIRECT_SCALARS&&n)i=t.convertToRGBA(n,a,n.getNumberOfTuples());else{const o={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:De.UNSIGNED_CHAR},c=C.newTypedArray(o.dataType,4*n.getNumberOfTuples());o.values=c,o.size=c.length,i=ne.newInstance(o);let g=s;g<0&&a>1?t.mapVectorsThroughTable(n,i,pr.RGBA,-1,-1):(g<0&&(g=0),g>=a&&(g=a-1),t.mapScalarsThroughTable(n,i,pr.RGBA,g))}return i},t.mapVectorsToMagnitude=(n,r,s)=>{const a=n.getNumberOfTuples(),i=n.getNumberOfComponents(),o=r.getData(),c=n.getData();for(let g=0;g<a;g++){let T=0;for(let f=0;f<s;f++)T+=c[g*i+f]*c[g*i+f];o[g]=Math.sqrt(T)}},t.mapVectorsThroughTable=(n,r,s,a,i)=>{let o=t.getVectorMode(),c=i,g=a;const T=n.getNumberOfComponents();o===ve.COMPONENT?(g===-1&&(g=t.getVectorComponent()),g<0&&(g=0),g>=T&&(g=T-1)):(c===-1&&(c=t.getVectorSize()),c<=0?(g=0,c=T):(g<0&&(g=0),g>=T&&(g=T-1),g+c>T&&(c=T-g)),o===ve.MAGNITUDE&&(T===1||c===1)&&(o=ve.COMPONENT));let f=0;switch(g>0&&(f=g),o){case ve.COMPONENT:t.mapScalarsThroughTable(n,r,s,f);break;case ve.RGBCOLORS:break;case ve.MAGNITUDE:default:{const y=ne.newInstance({numberOfComponents:1,values:new Float32Array(n.getNumberOfTuples())});t.mapVectorsToMagnitude(n,y,c),t.mapScalarsThroughTable(y,r,s,0);break}}},t.luminanceToRGBA=(n,r,s,a)=>{const i=a(s),o=r.getData(),c=n.getData(),g=o.length,T=0,f=1;let y=0;for(let w=T;w<g;w+=f){const R=a(o[w]);c[y*4]=R,c[y*4+1]=R,c[y*4+2]=R,c[y*4+3]=i,y++}},t.luminanceAlphaToRGBA=(n,r,s,a)=>{const i=r.getData(),o=n.getData(),c=i.length,g=0,T=2;let f=0;for(let y=g;y<c;y+=T){const w=a(i[y]);o[f]=w,o[f+1]=w,o[f+2]=w,o[f+3]=a(i[y+1])*s,f+=4}},t.rGBToRGBA=(n,r,s,a)=>{const i=vr(s),o=r.getData(),c=n.getData(),g=o.length,T=0,f=3;let y=0;for(let w=T;w<g;w+=f)c[y*4]=a(o[w]),c[y*4+1]=a(o[w+1]),c[y*4+2]=a(o[w+2]),c[y*4+3]=i,y++},t.rGBAToRGBA=(n,r,s,a)=>{const i=r.getData(),o=n.getData(),c=i.length,g=0,T=4;let f=0;for(let y=g;y<c;y+=T)o[f*4]=a(i[y]),o[f*4+1]=a(i[y+1]),o[f*4+2]=a(i[y+2]),o[f*4+3]=a(i[y+3])*s,f++},t.convertToRGBA=(n,r,s)=>{let{alpha:a}=e;if(r===4&&a>=1&&n.getDataType()===De.UNSIGNED_CHAR)return n;const i=ne.newInstance({numberOfComponents:4,empty:!0,size:4*s,dataType:De.UNSIGNED_CHAR});if(s<=0)return i;a=a>0?a:0,a=a<1?a:1;let o=Qi;switch((n.getDataType()===De.FLOAT||n.getDataType()===De.DOUBLE)&&(o=vr),r){case 1:t.luminanceToRGBA(i,n,a,o);break;case 2:t.luminanceAlphaToRGBA(i,n,o);break;case 3:t.rGBToRGBA(i,n,a,o);break;case 4:t.rGBAToRGBA(i,n,a,o);break;default:return Tr("Cannot convert colors"),null}return i},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>256*256*256,t.setRange=(n,r)=>t.setMappingRange(n,r),t.getRange=()=>t.getMappingRange(),t.areScalarsOpaque=(n,r,s)=>{if(!n)return t.isOpaque();const a=n.getNumberOfComponents();return r===Ot.DEFAULT&&n.getDataType()===De.UNSIGNED_CHAR||r===Ot.DIRECT_SCALARS?a===3||a===1?e.alpha>=1:n.getRange(a-1)[0]===255:!0}}var qi={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:ve.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1,scale:Zi.LINEAR};function ia(t,e,n={}){Object.assign(e,qi,n),C.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],C.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),C.setArray(t,e,["mappingRange"],2),C.getArray(t,e,["mappingRange"]),Ji(t,e)}var Ai=C.newInstance(ia,"vtkScalarsToColors"),Yn={newInstance:Ai,extend:ia,...Xn},bi={RGB:0,HSV:1,LAB:2,DIVERGING:3},Ii={LINEAR:0,LOG10:1},oa={ColorSpace:bi,Scale:Ii},{ColorSpace:ge,Scale:Zn}=oa,{ScalarMappingTarget:Dt}=Yn,{vtkDebugMacro:mi,vtkErrorMacro:le,vtkWarningMacro:Pi}=C;function yr(t,e){const n=t[0],r=t[1],s=t[2],a=Math.sqrt(n*n+r*r+s*s),i=a>.001?Math.acos(n/a):0,o=i>.001?Math.atan2(s,r):0;e[0]=a,e[1]=i,e[2]=o}function eo(t,e){const n=t[0],r=t[1],s=t[2];e[0]=n*Math.cos(r),e[1]=n*Math.sin(r)*Math.cos(s),e[2]=n*Math.sin(r)*Math.sin(s)}function lr(t,e){if(t[0]>=e-.1)return t[2];const n=t[1]*Math.sqrt(e*e-t[0]*t[0])/(t[0]*Math.sin(t[1]));return t[2]>-.3*Math.PI?t[2]+n:t[2]-n}function to(t,e){let n=t-e;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}function xr(t,e,n,r){const s=[],a=[];nt(e,s),nt(n,a);const i=[],o=[];yr(s,i),yr(a,o);let c=t;if(i[1]>.05&&o[1]>.05&&to(i[2],o[2])>.33*Math.PI){let f=Math.max(i[0],o[0]);f=Math.max(88,f),t<.5?(o[0]=f,o[1]=0,o[2]=0,c*=2):(i[0]=f,i[1]=0,i[2]=0,c=2*c-1)}i[1]<.05&&o[1]>.05?i[2]=lr(o,i[0]):o[1]<.05&&i[1]>.05&&(o[2]=lr(i,o[0]));const g=[];g[0]=(1-c)*i[0]+c*o[0],g[1]=(1-c)*i[1]+c*o[1],g[2]=(1-c)*i[2]+c*o[2];const T=[];eo(g,T),Mn(T,r)}function no(t,e){e.classHierarchy.push("vtkColorTransferFunction"),t.getSize=()=>e.nodes.length,t.addRGBPoint=(n,r,s,a)=>t.addRGBPointLong(n,r,s,a,.5,0),t.addRGBPointLong=(n,r,s,a,i=.5,o=0)=>{if(i<0||i>1)return le("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return le("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(n);const c={x:n,r,g:s,b:a,midpoint:i,sharpness:o};e.nodes.push(c),t.sortAndUpdateRange();let g=0;for(;g<e.nodes.length&&e.nodes[g].x!==n;g++);return g<e.nodes.length?g:-1},t.addHSVPoint=(n,r,s,a)=>t.addHSVPointLong(n,r,s,a,.5,0),t.addHSVPointLong=(n,r,s,a,i=.5,o=0)=>{const c=[];return tt([r,s,a],c),t.addRGBPoint(n,c[0],c[1],c[2],i,o)},t.setNodes=n=>{if(e.nodes!==n){const r=JSON.stringify(e.nodes);e.nodes=n;const s=JSON.stringify(e.nodes);if(t.sortAndUpdateRange()||r!==s)return t.modified(),!0}return!1},t.sortAndUpdateRange=()=>{const n=JSON.stringify(e.nodes);e.nodes.sort((a,i)=>a.x-i.x);const r=JSON.stringify(e.nodes),s=t.updateRange();return!s&&n!==r?(t.modified(),!0):s},t.updateRange=()=>{const n=[2];n[0]=e.mappingRange[0],n[1]=e.mappingRange[1];const r=e.nodes.length;return r?(e.mappingRange[0]=e.nodes[0].x,e.mappingRange[1]=e.nodes[r-1].x):(e.mappingRange[0]=0,e.mappingRange[1]=0),n[0]===e.mappingRange[0]&&n[1]===e.mappingRange[1]?!1:(t.modified(),!0)},t.removePoint=n=>{let r=0;for(;r<e.nodes.length&&e.nodes[r].x!==n;r++);const s=r;if(r>=e.nodes.length)return-1;let a=!1;return e.nodes.splice(r,1),(r===0||r===e.nodes.length)&&(a=t.updateRange()),a||t.modified(),s},t.movePoint=(n,r)=>{if(n!==r){t.removePoint(r);for(let s=0;s<e.nodes.length;s++)if(e.nodes[s].x===n){e.nodes[s].x=r,t.sortAndUpdateRange();break}}},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(n,r,s,a,i,o,c,g)=>{t.sortAndUpdateRange();for(let T=0;T<e.nodes.length;)e.nodes[T].x>=n&&e.nodes[T].x<=i?e.nodes.splice(T,1):T++;t.addRGBPointLong(n,r,s,a,.5,0),t.addRGBPointLong(i,o,c,g,.5,0),t.modified()},t.addHSVSegment=(n,r,s,a,i,o,c,g)=>{const T=[r,s,a],f=[o,c,g],y=[],w=[];tt(T,y),tt(f,w),t.addRGBSegment(n,y[0],y[1],y[2],i,w[0],w[1],w[2])},t.mapValue=n=>{const r=[];return t.getColor(n,r),[Math.floor(255*r[0]+.5),Math.floor(255*r[1]+.5),Math.floor(255*r[2]+.5),255]},t.getColor=(n,r)=>{if(e.indexedLookup){const s=t.getSize(),a=t.getAnnotatedValueIndexInternal(n);if(a<0||s===0){const i=t.getNanColorByReference();r[0]=i[0],r[1]=i[1],r[2]=i[2]}else{const i=[];t.getNodeValue(a%s,i),r[0]=i[1],r[1]=i[2],r[2]=i[3]}return}t.getTable(n,n,1,r)},t.getRedValue=n=>{const r=[];return t.getColor(n,r),r[0]},t.getGreenValue=n=>{const r=[];return t.getColor(n,r),r[1]},t.getBlueValue=n=>{const r=[];return t.getColor(n,r),r[2]},t.logScaleEnabled=()=>e.scale===Zn.LOG10,t.usingLogScale=()=>t.logScaleEnabled()&&e.mappingRange[0]>0,t.getTable=(n,r,s,a)=>{const i=t.usingLogScale(),o=i?Math.log10(Number(n)):Number(n),c=i?Math.log10(Number(r)):Number(r);if(mt(o)||mt(c)){for(let _=0;_<s;_++)a[_*3+0]=e.nanColor[0],a[_*3+1]=e.nanColor[1],a[_*3+2]=e.nanColor[2];return}let g=0;const T=e.nodes.length;let f=0,y=0,w=0;T!==0&&(f=e.nodes[T-1].r,y=e.nodes[T-1].g,w=e.nodes[T-1].b);let R=0,l=0,x=0;const u=[0,0,0],p=[0,0,0];let h=0,v=0;const E=[];let S=e.mappingRange;i&&(S=[Math.log10(e.mappingRange[0]),Math.log10(e.mappingRange[1])]);for(let _=0;_<s;_++){const d=3*_;if(s>1?R=o+_/(s-1)*(c-o):R=.5*(o+c),e.discretize){const L=S;if(R>=L[0]&&R<=L[1]){const M=e.numberOfValues,D=L[1]-L[0];if(M<=1)R=L[0]+D/2;else{const F=mr(M*((R-L[0])/D));R=L[0]+F/(M-1)*D}}}for(;g<T&&R>e.nodes[g].x;)g++,g<T&&(l=e.nodes[g-1].x,x=e.nodes[g].x,u[0]=e.nodes[g-1].r,p[0]=e.nodes[g].r,u[1]=e.nodes[g-1].g,p[1]=e.nodes[g].g,u[2]=e.nodes[g-1].b,p[2]=e.nodes[g].b,h=e.nodes[g-1].midpoint,v=e.nodes[g-1].sharpness,h<1e-5&&(h=1e-5),h>.99999&&(h=.99999));if(R>S[1])a[d]=0,a[d+1]=0,a[d+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(a[d]=e.aboveRangeColor[0],a[d+1]=e.aboveRangeColor[1],a[d+2]=e.aboveRangeColor[2]):(a[d]=f,a[d+1]=y,a[d+2]=w));else if(R<S[0]||gi(R)&&R<0)a[d]=0,a[d+1]=0,a[d+2]=0,e.clamping&&(t.getUseBelowRangeColor()?(a[d]=e.belowRangeColor[0],a[d+1]=e.belowRangeColor[1],a[d+2]=e.belowRangeColor[2]):T>0&&(a[d]=e.nodes[0].r,a[d+1]=e.nodes[0].g,a[d+2]=e.nodes[0].b));else if(g===0&&(Math.abs(R-o)<1e-6||e.discretize))T>0?(a[d]=e.nodes[0].r,a[d+1]=e.nodes[0].g,a[d+2]=e.nodes[0].b):(a[d]=0,a[d+1]=0,a[d+2]=0);else{let L=0;if(L=(R-l)/(x-l),L<h?L=.5*L/h:L=.5+.5*(L-h)/(1-h),v>.99)if(L<.5){a[d]=u[0],a[d+1]=u[1],a[d+2]=u[2];continue}else{a[d]=p[0],a[d+1]=p[1],a[d+2]=p[2];continue}if(v<.01){if(e.colorSpace===ge.RGB)a[d]=(1-L)*u[0]+L*p[0],a[d+1]=(1-L)*u[1]+L*p[1],a[d+2]=(1-L)*u[2]+L*p[2];else if(e.colorSpace===ge.HSV){const G=[],O=[];dt(u,G),dt(p,O),e.hSVWrap&&(G[0]-O[0]>.5||O[0]-G[0]>.5)&&(G[0]>O[0]?G[0]-=1:O[0]-=1);const B=[];B[0]=(1-L)*G[0]+L*O[0],B[0]<0&&(B[0]+=1),B[1]=(1-L)*G[1]+L*O[1],B[2]=(1-L)*G[2]+L*O[2],tt(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else if(e.colorSpace===ge.LAB){const G=[],O=[];nt(u,G),nt(p,O);const B=[];B[0]=(1-L)*G[0]+L*O[0],B[1]=(1-L)*G[1]+L*O[1],B[2]=(1-L)*G[2]+L*O[2],Mn(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else e.colorSpace===ge.DIVERGING?(xr(L,u,p,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]):le("ColorSpace set to invalid value.",e.colorSpace);continue}L<.5?L=.5*(L*2)**(1+10*v):L>.5&&(L=1-.5*((1-L)*2)**(1+10*v));const M=L*L,D=M*L,F=2*D-3*M+1,N=-2*D+3*M,U=D-2*M+L,W=D-M;let V,z;if(e.colorSpace===ge.RGB)for(let G=0;G<3;G++)V=p[G]-u[G],z=(1-v)*V,a[d+G]=F*u[G]+N*p[G]+U*z+W*z;else if(e.colorSpace===ge.HSV){const G=[],O=[];dt(u,G),dt(p,O),e.hSVWrap&&(G[0]-O[0]>.5||O[0]-G[0]>.5)&&(G[0]>O[0]?G[0]-=1:O[0]-=1);const B=[];for(let k=0;k<3;k++)V=O[k]-G[k],z=(1-v)*V,B[k]=F*G[k]+N*O[k]+U*z+W*z,k===0&&B[k]<0&&(B[k]+=1);tt(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else if(e.colorSpace===ge.LAB){const G=[],O=[];nt(u,G),nt(p,O);const B=[];for(let k=0;k<3;k++)V=O[k]-G[k],z=(1-v)*V,B[k]=F*G[k]+N*O[k]+U*z+W*z;Mn(B,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]}else e.colorSpace===ge.DIVERGING?(xr(L,u,p,E),a[d]=E[0],a[d+1]=E[1],a[d+2]=E[2]):le("ColorSpace set to invalid value.");for(let G=0;G<3;G++)a[d+G]=a[d+G]<0?0:a[d+G],a[d+G]=a[d+G]>1?1:a[d+G]}}},t.getUint8Table=(n,r,s,a=!1)=>{if(t.getMTime()<=e.buildTime&&e.tableSize===s&&e.tableWithAlpha!==a)return e.table;if(e.nodes.length===0)return le("Attempting to lookup a value with no points in the function"),e.table;const i=a?4:3;(e.tableSize!==s||e.tableWithAlpha!==a)&&(e.table=new Uint8Array(s*i),e.tableSize=s,e.tableWithAlpha=a);const o=[];t.getTable(n,r,s,o);for(let c=0;c<s;c++)e.table[c*i+0]=Math.floor(o[c*3+0]*255+.5),e.table[c*i+1]=Math.floor(o[c*3+1]*255+.5),e.table[c*i+2]=Math.floor(o[c*3+2]*255+.5),a&&(e.table[c*i+3]=255);return e.buildTime.modified(),e.table},t.buildFunctionFromArray=n=>{t.removeAllPoints();const r=n.getNumberOfComponents();for(let s=0;s<n.getNumberOfTuples();s++)switch(r){case 3:e.nodes.push({x:s,r:n.getComponent(s,0),g:n.getComponent(s,1),b:n.getComponent(s,2),midpoint:.5,sharpness:0});break;case 4:e.nodes.push({x:n.getComponent(s,0),r:n.getComponent(s,1),g:n.getComponent(s,2),b:n.getComponent(s,3),midpoint:.5,sharpness:0});break;case 5:e.nodes.push({x:s,r:n.getComponent(s,0),g:n.getComponent(s,1),b:n.getComponent(s,2),midpoint:n.getComponent(s,4),sharpness:n.getComponent(s,5)});break;case 6:e.nodes.push({x:n.getComponent(s,0),r:n.getComponent(s,1),g:n.getComponent(s,2),b:n.getComponent(s,3),midpoint:n.getComponent(s,4),sharpness:n.getComponent(s,5)});break}t.sortAndUpdateRange()},t.buildFunctionFromTable=(n,r,s,a)=>{let i=0;t.removeAllPoints(),s>1&&(i=(r-n)/(s-1));for(let o=0;o<s;o++){const c={x:n+i*o,r:a[o*3],g:a[o*3+1],b:a[o*3+2],sharpness:0,midpoint:.5};e.nodes.push(c)}t.sortAndUpdateRange()},t.getNodeValue=(n,r)=>n<0||n>=e.nodes.length?(le("Index out of range!"),-1):(r[0]=e.nodes[n].x,r[1]=e.nodes[n].r,r[2]=e.nodes[n].g,r[3]=e.nodes[n].b,r[4]=e.nodes[n].midpoint,r[5]=e.nodes[n].sharpness,1),t.setNodeValue=(n,r)=>{if(n<0||n>=e.nodes.length)return le("Index out of range!"),-1;const s=e.nodes[n].x;return e.nodes[n].x=r[0],e.nodes[n].r=r[1],e.nodes[n].g=r[2],e.nodes[n].b=r[3],e.nodes[n].midpoint=r[4],e.nodes[n].sharpness=r[5],s!==r[0]?t.sortAndUpdateRange():t.modified(),1},t.getNumberOfAvailableColors=()=>{if(e.indexedLookup&&t.getSize())return t.getSize();if(e.tableSize)return e.tableSize;const n=e.nodes?.length??0;return Math.max(4094,n)},t.getIndexedColor=(n,r)=>{const s=t.getSize();if(s>0&&n>=0){const i=[];t.getNodeValue(n%s,i);for(let o=0;o<3;++o)r[o]=i[o+1];r[3]=1;return}const a=t.getNanColorByReference();r[0]=a[0],r[1]=a[1],r[2]=a[2],r[3]=1},t.fillFromDataPointer=(n,r)=>{if(!(n<=0||!r)){t.removeAllPoints();for(let s=0;s<n;s++)t.addRGBPoint(r[s*4],r[s*4+1],r[s*4+2],r[s*4+3])}},t.setMappingRange=(n,r)=>{const s=[n,r],a=[n,r],i=t.getRange(),o=t.logScaleEnabled();if(i[1]===s[1]&&i[0]===s[0])return;if(s[1]===s[0]){le("attempt to set zero width color range");return}o&&(s[0]<=0?console.warn("attempt to set log scale color range with non-positive minimum"):(a[0]=Math.log10(s[0]),a[1]=Math.log10(s[1])));const c=(a[1]-a[0])/(i[1]-i[0]),g=a[0]-i[0]*c;for(let T=0;T<e.nodes.length;++T)e.nodes[T].x=e.nodes[T].x*c+g;e.mappingRange[0]=s[0],e.mappingRange[1]=s[1],t.modified()},t.adjustRange=n=>{const r=t.getRange(),s=[];r[0]<n[0]?(t.getColor(n[0],s),t.addRGBPoint(n[0],s[0],s[1],s[2])):(t.getColor(r[0],s),t.addRGBPoint(n[0],s[0],s[1],s[2])),r[1]>n[1]?(t.getColor(n[1],s),t.addRGBPoint(n[1],s[0],s[1],s[2])):(t.getColor(r[1],s),t.addRGBPoint(n[1],s[0],s[1],s[2])),t.sortAndUpdateRange();for(let a=0;a<e.nodes.length;)e.nodes[a].x>=n[0]&&e.nodes[a].x<=n[1]?e.nodes.splice(a,1):++a;return 1},t.estimateMinNumberOfSamples=(n,r)=>{const s=t.findMinimumXDistance();return Math.ceil((r-n)/s)},t.findMinimumXDistance=()=>{if(e.nodes.length<2)return-1;let n=Number.MAX_VALUE;for(let r=0;r<e.nodes.length-1;r++){const s=e.nodes[r+1].x-e.nodes[r].x;s<n&&(n=s)}return n},t.mapScalarsThroughTable=(n,r,s,a)=>{if(t.getSize()===0){mi("Transfer Function Has No Points!");return}e.indexedLookup?t.mapDataIndexed(n,r,s,a):t.mapData(n,r,s,a)},t.mapData=(n,r,s,a)=>{if(t.getSize()===0){Pi("Transfer Function Has No Points!");return}const i=Math.floor(t.getAlpha()*255+.5),o=n.getNumberOfTuples(),c=n.getNumberOfComponents(),g=r.getData(),T=n.getData(),f=[];if(s===Dt.RGBA)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*4]=Math.floor(f[0]*255+.5),g[y*4+1]=Math.floor(f[1]*255+.5),g[y*4+2]=Math.floor(f[2]*255+.5),g[y*4+3]=i}if(s===Dt.RGB)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*3]=Math.floor(f[0]*255+.5),g[y*3+1]=Math.floor(f[1]*255+.5),g[y*3+2]=Math.floor(f[2]*255+.5)}if(s===Dt.LUMINANCE)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y]=Math.floor(f[0]*76.5+f[1]*150.45+f[2]*28.05+.5)}if(s===Dt.LUMINANCE_ALPHA)for(let y=0;y<o;y++){const w=T[y*c+a];t.getColor(w,f),g[y*2]=Math.floor(f[0]*76.5+f[1]*150.45+f[2]*28.05+.5),g[y*2+1]=i}},t.applyColorMap=n=>{const r=JSON.stringify(e.colorSpace);n.ColorSpace&&(e.colorSpace=ge[n.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(le(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),e.colorSpace=ge.RGB));let s=r!==JSON.stringify(e.colorSpace);const a=s||JSON.stringify(e.nanColor);if(n.NanColor)for(e.nanColor=[].concat(n.NanColor);e.nanColor.length<4;)e.nanColor.push(1);s=s||a!==JSON.stringify(e.nanColor);const i=s||JSON.stringify(e.nodes);if(n.RGBPoints){const g=n.RGBPoints.length;e.nodes=[];const T=.5,f=0;for(let y=0;y<g;y+=4)e.nodes.push({x:n.RGBPoints[y],r:n.RGBPoints[y+1],g:n.RGBPoints[y+2],b:n.RGBPoints[y+3],midpoint:T,sharpness:f})}const o=t.sortAndUpdateRange(),c=!o&&(s||i!==JSON.stringify(e.nodes));return c&&t.modified(),o||c}}var ro={clamping:!0,colorSpace:ge.RGB,hSVWrap:!0,scale:Zn.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function fa(t,e,n={}){Object.assign(e,ro,n),Yn.extend(t,e,n),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},C.obj(e.buildTime),C.get(t,e,["buildTime","mappingRange"]),C.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","discretize","numberOfValues",{type:"enum",name:"colorSpace",enum:ge},{type:"enum",name:"scale",enum:Zn}]),C.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),C.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),no(t,e)}var ao=C.newInstance(fa,"vtkColorTransferFunction"),so={newInstance:ao,extend:fa,...oa},be={Off:0,PolygonOffset:1},Fn=be.PolygonOffset,Pt=be.Off,io=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function oo(){return Fn}function fo(t){const e=Fn===t;return Fn=t,e}function co(){return Pt}function an(t=0){const e=Pt===t;return Pt=t,e}function uo(){return an(be.Off)}function go(){return an(be.Off)}function ho(){return an(be.PolygonOffset)}function po(){return io[Pt]}var Bn={Resolve:be,getResolveCoincidentTopologyAsString:po,getResolveCoincidentTopologyPolygonOffsetFaces:oo,getResolveCoincidentTopology:co,setResolveCoincidentTopology:an,setResolveCoincidentTopologyPolygonOffsetFaces:fo,setResolveCoincidentTopologyToDefault:uo,setResolveCoincidentTopologyToOff:go,setResolveCoincidentTopologyToPolygonOffset:ho};function ca(t,e,n){n.forEach(r=>{t[`get${r.method}`]=()=>e[r.key],t[`set${r.method}`]=C.objectSetterMap.object(t,e,{name:r.key,params:["factor","offset"]})})}var Qn=["Polygon","Line","Point"],To={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},vo=()=>{},Ye={modified:vo};ca(Ye,To,Qn.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function yo(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),C.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Bn).forEach(n=>{t[n]=Bn[n]}),Object.keys(Ye).filter(n=>n!=="modified").forEach(n=>{t[n]=Ye[n]}),ca(t,e.topologyOffset,Qn.map(n=>({key:n,method:`RelativeCoincidentTopology${n}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const n=Ye.getResolveCoincidentTopologyPolygonOffsetParameters(),r=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const n=Ye.getResolveCoincidentTopologyLineOffsetParameters(),r=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const n=Ye.getResolveCoincidentTopologyPointOffsetParameters(),r=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}}}var sn={implementCoincidentTopologyMethods:yo,staticOffsetAPI:Ye,otherStaticMethods:Bn,CATEGORIES:Qn,Resolve:be},lo={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},ua={SlicingMode:lo},{vtkErrorMacro:Er}=C,Ft=new Float64Array(16),Bt=new Float64Array(4);function Sr(t,e){const n=t.getNormalByReference(),r=t.getOriginByReference();return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2]),e}function xo(t,e){e.classHierarchy.push("vtkAbstractMapper"),t.update=()=>{t.getInputData()},t.addClippingPlane=n=>n.isA("vtkPlane")?e.clippingPlanes.includes(n)?!1:(e.clippingPlanes.push(n),t.modified(),!0):!1,t.getNumberOfClippingPlanes=()=>e.clippingPlanes.length,t.removeAllClippingPlanes=()=>e.clippingPlanes.length===0?!1:(e.clippingPlanes.length=0,t.modified(),!0),t.removeClippingPlane=n=>{const r=e.clippingPlanes.indexOf(n);return r===-1?!1:(e.clippingPlanes.splice(r,1),t.modified(),!0)},t.getClippingPlanes=()=>e.clippingPlanes,t.getClippingPlanesMTime=()=>{let n=0;for(let r=0;r<e.clippingPlanes.length;r++)n=Math.max(n,e.clippingPlanes[r].getMTime());return n},t.setClippingPlanes=n=>{if(n)if(!Array.isArray(n))t.addClippingPlane(n);else{const r=n.length;for(let s=0;s<r&&s<6;s++)t.addClippingPlane(n[s])}},t.getClippingPlaneInCoords=(n,r,s)=>{if(r<0||r>=e.clippingPlanes?.length){Er(`Clipping plane index ${r} is out of range.`);return}const a=s||new Float64Array(4);return Sr(e.clippingPlanes[r],Bt),at(Ft,n),ce(Ft,Ft),Ke(a,Bt,Ft),a},t.getClippingPlaneInDataCoords=(n,r,s)=>{const a=e.clippingPlanes;if(a){const i=a.length;if(r>=0&&r<i){Sr(a[r],Bt),Ke(s,Bt,n);return}}Er(`Clipping plane index ${r} is out of range.`)}}var Eo={clippingPlanes:[]};function So(t,e,n={}){Object.assign(e,Eo,n),C.obj(t,e),C.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),xo(t,e)}var Ro={extend:So};function Co(t,e){t.computeBounds=()=>{C.vtkErrorMacro("vtkAbstractMapper3D.computeBounds - NOT IMPLEMENTED")};const n=t.getBounds;t.getBounds=()=>(t.computeBounds(),n());const r=t.getBoundsByReference;t.getBoundsByReference=()=>(t.computeBounds(),r()),t.getCenter=()=>{const s=t.getBoundsByReference();return e.center=Y.isValid(s)?Y.getCenter(s):null,e.center?.slice()},t.getLength=()=>{const s=t.getBoundsByReference();return Y.getDiagonalLength(s)}}var wo=t=>({bounds:[...Y.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function _o(t,e,n={}){Object.assign(e,wo(n)),Ro.extend(t,e,n),C.setGet(t,e,["viewSpecificProperties"]),C.getArray(t,e,["bounds"],6),Co(t,e)}var Jn={extend:_o};function Lo(t,e){e.classHierarchy.push("vtkAbstractImageMapper"),t.getIsOpaque=()=>!0,t.getCurrentImage=()=>null,t.getBoundsForSlice=()=>(C.vtkErrorMacro("vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED"),Wn())}var Mo={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1],colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024};function Oo(t,e,n={}){Object.assign(e,Mo,n),Jn.extend(t,e,n),C.setGet(t,e,["slice","useCustomExtents","colorTextureWidth","opacityTextureWidth","labelOutlineTextureWidth"]),C.setGetArray(t,e,["customDisplayExtent"],6),C.setGetArray(t,e,["backgroundColor"],4),Lo(t,e)}var Do={extend:Oo};function ga(t,e,n){const r=n.getCurrentImage(),s=r.getExtent(),a=[s[0],s[2],s[4]],{ijkMode:i}=n.getClosestIJKAxis();let o=n.isA("vtkImageArrayMapper")?n.getSubSlice():n.getSlice();i!==n.getSlicingMode()&&(o=n.getSliceAtPosition(o)),a[i]+=o;const c=[0,0,0];r.indexToWorld(a,c),a[i]+=1;const g=[0,0,0];r.indexToWorld(a,g),g[0]-=c[0],g[1]-=c[1],g[2]-=c[2],At(g,g);const T=Je.intersectWithLine(t,e,c,g);if(T.intersection){const f=T.x,y=[0,0,0];return r.worldToIndex(f,y),{t:T.t,absoluteIJK:y}}return null}function Fo(t,e,n){const r=ga(t,e,n);if(r){const s=n.getCurrentImage().getExtent(),a=[Math.round(r.absoluteIJK[0]),Math.round(r.absoluteIJK[1]),Math.round(r.absoluteIJK[2])];return a[0]<s[0]||a[0]>s[1]||a[1]<s[2]||a[1]>s[3]||a[2]<s[4]||a[2]>s[5]?null:{t:r.t,ijk:a}}return null}function Bo(t,e,n){const r=ga(t,e,n);if(r){const s=n.getCurrentImage().getExtent(),a=r.absoluteIJK,i=[Math.floor(a[0]),Math.floor(a[1]),Math.floor(a[2])];if(i[0]<s[0]||i[0]>s[1]-1||i[1]<s[2]||i[1]>s[3]-1||i[2]<s[4]||i[2]>(s[5]?s[5]-1:s[5]))return null;const o=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return{t:r.t,ijk:i,pCoords:o}}return null}var{staticOffsetAPI:No,otherStaticMethods:Go}=sn,{SlicingMode:K}=ua;function Uo(t,e){e.classHierarchy.push("vtkImageMapper"),t.getSliceAtPosition=r=>{const s=t.getCurrentImage();let a;if(r.length===3)a=r;else if(Number.isFinite(r)){const T=s.getBounds();switch(e.slicingMode){case K.X:a=[r,(T[3]+T[2])/2,(T[5]+T[4])/2];break;case K.Y:a=[(T[1]+T[0])/2,r,(T[5]+T[4])/2];break;case K.Z:a=[(T[1]+T[0])/2,(T[3]+T[2])/2,r];break}}const i=[0,0,0];s.worldToIndex(a,i);const o=s.getExtent(),{ijkMode:c}=t.getClosestIJKAxis();let g=0;switch(c){case K.I:g=Qe(i[0],o[0],o[1]);break;case K.J:g=Qe(i[1],o[2],o[3]);break;case K.K:g=Qe(i[2],o[4],o[5]);break;default:return 0}return g},t.setSliceFromCamera=r=>{const s=r.getFocalPoint();switch(e.slicingMode){case K.I:case K.J:case K.K:{const a=t.getSliceAtPosition(s);t.setSlice(a)}break;case K.X:t.setSlice(s[0]);break;case K.Y:t.setSlice(s[1]);break;case K.Z:t.setSlice(s[2]);break}},t.setXSlice=r=>{t.setSlicingMode(K.X),t.setSlice(r)},t.setYSlice=r=>{t.setSlicingMode(K.Y),t.setSlice(r)},t.setZSlice=r=>{t.setSlicingMode(K.Z),t.setSlice(r)},t.setISlice=r=>{t.setSlicingMode(K.I),t.setSlice(r)},t.setJSlice=r=>{t.setSlicingMode(K.J),t.setSlice(r)},t.setKSlice=r=>{t.setSlicingMode(K.K),t.setSlice(r)},t.getSlicingModeNormal=()=>{const r=[0,0,0],s=t.getCurrentImage().getDirection();switch(e.slicingMode){case K.X:r[0]=1;break;case K.Y:r[1]=1;break;case K.Z:r[2]=1;break;case K.I:un(s,[1,0,0],r);break;case K.J:un(s,[0,1,0],r);break;case K.K:un(s,[0,0,1],r);break}return r};function n(){let r;switch(e.slicingMode){case K.X:r=0;break;case K.Y:r=1;break;case K.Z:r=2;break;default:e.closestIJKAxis={ijkMode:e.slicingMode,flip:!1};return}const s=hi(t.getCurrentImage().getDirection());let a=0;for(;a<3&&s[r+3*a]===0;++a);const i=s[r+3*a]<0;e.closestIJKAxis={ijkMode:a,flip:i}}t.setSlicingMode=r=>{e.slicingMode!==r&&(e.slicingMode=r,t.getCurrentImage()&&n(),t.modified())},t.getClosestIJKAxis=()=>((e.closestIJKAxis===void 0||e.closestIJKAxis.ijkMode===K.NONE)&&t.getCurrentImage()&&n(),e.closestIJKAxis),t.computeBounds=()=>{const r=t.getCurrentImage();if(!r){Y.reset(e.bounds);return}if(!e.useCustomExtents){Y.setBounds(e.bounds,r.getBounds());return}const s=e.customDisplayExtent.slice(),{ijkMode:a}=t.getClosestIJKAxis();let i=e.slice;switch(a!==e.slicingMode&&(i=t.getSliceAtPosition(e.slice)),a){case K.I:s[0]=i,s[1]=i;break;case K.J:s[2]=i,s[3]=i;break;case K.K:s[4]=i,s[5]=i;break}Y.setBounds(e.bounds,r.extentToBounds(s))},t.getBoundsForSlice=(r=e.slice,s=0)=>{const a=t.getCurrentImage();if(!a)return Wn();const i=a.getSpatialExtent(),{ijkMode:o}=t.getClosestIJKAxis();let c=r;switch(o!==e.slicingMode&&(c=t.getSliceAtPosition(r)),o){case K.I:i[0]=c-s,i[1]=c+s;break;case K.J:i[2]=c-s,i[3]=c+s;break;case K.K:i[4]=c-s,i[5]=c+s;break}return a.extentToBounds(i)},t.intersectWithLineForPointPicking=(r,s)=>Fo(r,s,t),t.intersectWithLineForCellPicking=(r,s)=>Bo(r,s,t),t.getCurrentImage=()=>t.getInputData()}var Vo={slicingMode:K.NONE,closestIJKAxis:{ijkMode:K.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function ha(t,e,n={}){Object.assign(e,Vo,n),Do.extend(t,e,n),C.get(t,e,["slicingMode"]),C.setGet(t,e,["closestIJKAxis","renderToRectangle","sliceAtFocalPoint","preferSizeOverAccuracy"]),sn.implementCoincidentTopologyMethods(t,e),Uo(t,e)}var ko=C.newInstance(ha,"vtkImageMapper"),Mp={newInstance:ko,extend:ha,...No,...Go,...ua},$o={DISPLAY:0,WORLD:1},pa={CoordinateSystem:$o},{CoordinateSystem:Nn}=pa;function Rr(t){return()=>C.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function Wo(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let n=e.mtime;for(let r=0;r<e.textures.length;++r){const s=e.textures[r].getMTime();s>n&&(n=s)}return n},t.processSelectorPixelBuffers=(n,r)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=Rr("pick"),t.hasKey=Rr("hasKey"),t.getNestedVisibility=()=>e.visibility&&(!e._parentProp||e._parentProp.getNestedVisibility()),t.getNestedPickable=()=>e.pickable&&(!e._parentProp||e._parentProp.getNestedPickable()),t.getNestedDragable=()=>e.dragable&&(!e._parentProp||e._parentProp.getNestedDragable()),t.getRedrawMTime=()=>e.mtime,t.setEstimatedRenderTime=n=>{e.estimatedRenderTime=n,e.savedEstimatedRenderTime=n},t.restoreEstimatedRenderTime=()=>{e.estimatedRenderTime=e.savedEstimatedRenderTime},t.addEstimatedRenderTime=n=>{e.estimatedRenderTime+=n},t.setAllocatedRenderTime=n=>{e.allocatedRenderTime=n,e.savedEstimatedRenderTime=e.estimatedRenderTime,e.estimatedRenderTime=0},t.getSupportsSelection=()=>!1,t.getTextures=()=>e.textures,t.hasTexture=n=>e.textures.indexOf(n)!==-1,t.addTexture=n=>{n&&!t.hasTexture(n)&&(e.textures=e.textures.concat(n),t.modified())},t.removeTexture=n=>{const r=e.textures.filter(s=>s!==n);e.textures.length!==r.length&&(e.textures=r,t.modified())},t.removeAllTextures=()=>{e.textures=[],t.modified()},t.setCoordinateSystemToWorld=()=>t.setCoordinateSystem(Nn.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(Nn.DISPLAY)}var Ho={allocatedRenderTime:10,coordinateSystem:Nn.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Ta(t,e,n={}){Object.assign(e,Ho,n),C.obj(t,e),C.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),C.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),C.moveToProtected(t,e,["parentProp"]),Wo(t,e)}var zo=C.newInstance(Ta,"vtkProp"),jo={newInstance:zo,extend:Ta,...pa},Xo=1e-6;function Ko(t,e){e.classHierarchy.push("vtkProp3D"),t.addPosition=a=>{e.position=e.position.map((i,o)=>i+a[o]),t.modified()},t.getOrientationWXYZ=()=>{const a=qe();sr(a,e.rotation);const i=new Float64Array(3);return[On(Bi(i,a)),i[0],i[1],i[2]]},t.getOrientationQuaternion=(a=[])=>sr(a,e.rotation),t.rotateX=a=>{a!==0&&(pi(e.rotation,e.rotation,m(a)),t.modified())},t.rotateY=a=>{a!==0&&(Ti(e.rotation,e.rotation,m(a)),t.modified())},t.rotateZ=a=>{a!==0&&(vi(e.rotation,e.rotation,m(a)),t.modified())},t.rotateWXYZ=(a,i,o,c)=>{if(a===0||i===0&&o===0&&c===0)return;const g=m(a),T=qe();jn(T,[i,o,c],g);const f=new Float64Array(16);zt(f,T),Re(e.rotation,e.rotation,f),t.modified()},t.rotateQuaternion=a=>{if(Math.abs(a[3])>=1-Xo)return;const i=zt(new Float64Array(16),a);Re(e.rotation,e.rotation,i),t.modified()},t.setOrientation=(a,i,o)=>a===e.orientation[0]&&i===e.orientation[1]&&o===e.orientation[2]?!1:(e.orientation=[a,i,o],b(e.rotation),t.rotateZ(o),t.rotateX(a),t.rotateY(i),t.modified(),!0),t.setOrientationFromQuaternion=a=>{const i=$n();return zt(i,a),ir(i,e.rotation)?!1:(e.rotation=i,t.modified(),!0)},t.setUserMatrix=a=>ir(e.userMatrix,a)?!1:(pt(e.userMatrix,a),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){b(e.matrix),e.userMatrix&&Re(e.matrix,e.matrix,e.userMatrix),oe(e.matrix,e.matrix,e.origin),oe(e.matrix,e.matrix,e.position),Re(e.matrix,e.matrix,e.rotation),Ln(e.matrix,e.matrix,e.scale),oe(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),ce(e.matrix,e.matrix),e.isIdentity=!0;for(let a=0;a<4;++a)for(let i=0;i<4;++i)(a===i?1:0)!==e.matrix[a+i*4]&&(e.isIdentity=!1);e.matrixMTime.modified()}},t.computeBounds=()=>{if(e.mapper===null){Y.reset(e.bounds);return}const a=e.mapper.getBounds();if(!a||a.length!==6||!Y.isValid(a)){e.mapperBounds=a,Y.reset(e.bounds),e.boundsMTime.modified();return}if(!e.mapperBounds||!a.every((i,o)=>a[o]===e.mapperBounds[o])||t.getMTime()>e.boundsMTime.getMTime()){C.vtkDebugMacro("Recomputing bounds..."),e.mapperBounds=a,t.computeMatrix();const i=new Float64Array(16);ce(i,e.matrix),Y.transformBounds(a,i,e.bounds),e.boundsMTime.modified()}};const n=t.getBounds;t.getBounds=()=>(t.computeBounds(),n());const r=t.getBoundsByReference;t.getBoundsByReference=()=>(t.computeBounds(),r()),t.getCenter=()=>Y.getCenter(t.getBoundsByReference()),t.getLength=()=>Y.getLength(t.getBoundsByReference()),t.getXRange=()=>Y.getXRange(t.getBoundsByReference()),t.getYRange=()=>Y.getYRange(t.getBoundsByReference()),t.getZRange=()=>Y.getZRange(t.getBoundsByReference()),t.getUserMatrix=()=>e.userMatrix;function s(){t.computeMatrix()}t.onModified(s),t.getProperty=(a=0)=>(e.properties[a]==null&&(e.properties[a]=t.makeProperty?.()),e.properties[a]),t.getProperties=()=>(e.properties.length===0&&(e.properties[0]=t.makeProperty?.()),e.properties),t.setProperty=(a,i)=>{const[o,c]=Number.isInteger(a)?[a,i]:[0,a];return e.properties[o]===c?!1:(e.properties[o]=c,!0)},t.getMTime=()=>{let a=e.mtime;return e.properties.forEach(i=>{if(i!==null){const o=i.getMTime();a=o>a?o:a}}),a}}var Yo={bounds:[...Y.INIT_BOUNDS],origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],properties:[],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function va(t,e,n={}){Object.assign(e,Yo,n),jo.extend(t,e,n),e.matrixMTime={},C.obj(e.matrixMTime),C.get(t,e,["isIdentity"]),C.getArray(t,e,["orientation"]),C.setGetArray(t,e,["origin","position","scale"],3),C.setGet(t,e,["properties"]),C.getArray(t,e,["bounds"],6),e.matrix=b(new Float64Array(16)),e.rotation=b(new Float64Array(16)),e.userMatrix=b(new Float64Array(16)),e.transform=null,Ko(t,e)}var Zo=C.newInstance(va,"vtkProp3D"),qn={newInstance:Zo,extend:va},Qo={NEAREST:0,LINEAR:1},Jo={InterpolationType:Qo},{InterpolationType:Xt}=Jo,{vtkErrorMacro:Cr}=C,Kt=4;function qo(t,e){e.classHierarchy.push("vtkImageProperty"),t.getMTime=()=>{let n=e.mtime,r;for(let s=0;s<Kt;s++)e.componentData[s].rGBTransferFunction&&(r=e.componentData[s].rGBTransferFunction.getMTime(),n=n>r?n:r),e.componentData[s].piecewiseFunction&&(r=e.componentData[s].piecewiseFunction.getMTime(),n=n>r?n:r);return n},t.setRGBTransferFunction=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),e.componentData[s].rGBTransferFunction!==a?(e.componentData[s].rGBTransferFunction=a,t.modified(),!0):!1},t.getRGBTransferFunction=(n=0)=>e.componentData[n].rGBTransferFunction,t.setPiecewiseFunction=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),e.componentData[s].piecewiseFunction!==a?(e.componentData[s].piecewiseFunction=a,t.modified(),!0):!1},t.getPiecewiseFunction=(n=0)=>e.componentData[n].piecewiseFunction,t.setScalarOpacity=(n=0,r=null)=>{let s=n,a=r;return Number.isInteger(n)||(a=n,s=0),t.setPiecewiseFunction(s,a)},t.getScalarOpacity=(n=0)=>t.getPiecewiseFunction(n),t.setComponentWeight=(n=0,r=1)=>{if(n<0||n>=Kt)return Cr("Invalid index"),!1;const s=Math.min(1,Math.max(0,r));return e.componentData[n].componentWeight!==s?(e.componentData[n].componentWeight=s,t.modified(),!0):!1},t.getComponentWeight=(n=0)=>n<0||n>=Kt?(Cr("Invalid index"),0):e.componentData[n].componentWeight,t.setInterpolationTypeToNearest=()=>t.setInterpolationType(Xt.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(Xt.LINEAR),t.getInterpolationTypeAsString=()=>C.enumToString(Xt,e.interpolationType)}var Ao=t=>({independentComponents:!1,interpolationType:Xt.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,updatedExtents:[],...t});function bo(t,e,n={}){if(Object.assign(e,Ao(n)),C.obj(t,e),!e.componentData){e.componentData=[];for(let r=0;r<Kt;r++)e.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}C.setGet(t,e,["independentComponents","interpolationType","colorWindow","colorLevel","ambient","diffuse","opacity","useLookupTableScalarRange","useLabelOutline","labelOutlineOpacity","updatedExtents"]),C.setGetArray(t,e,["labelOutlineThickness"]),qo(t,e)}var Io=C.newInstance(bo,"vtkImageProperty"),mo={newInstance:Io};function Po(t,e){e.classHierarchy.push("vtkImageSlice"),t.getActors=()=>t,t.getImages=()=>t,t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.properties[0]||t.getProperty();let n=e.properties[0].getOpacity()>=1;return n=n&&(!e.mapper||e.mapper.getIsOpaque()),n},t.hasTranslucentPolygonalGeometry=()=>!1,t.makeProperty=mo.newInstance,t.getBoundsForSlice=(n,r)=>{const s=e.mapper.getBoundsForSlice(n,r);if(!Y.isValid(s))return s;t.computeMatrix();const a=new Float64Array(16);return ce(a,e.matrix),Y.transformBounds(s,a)},t.getMinXBound=()=>t.getBoundsByReference()[0],t.getMaxXBound=()=>t.getBoundsByReference()[1],t.getMinYBound=()=>t.getBoundsByReference()[2],t.getMaxYBound=()=>t.getBoundsByReference()[3],t.getMinZBound=()=>t.getBoundsByReference()[4],t.getMaxZBound=()=>t.getBoundsByReference()[5],t.getRedrawMTime=()=>{let n=e.mtime;if(e.mapper!==null){let r=e.mapper.getMTime();n=r>n?r:n,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),r=e.mapper.getInput().getMTime(),n=r>n?r:n)}return e.properties.forEach(r=>{n=Math.max(n,r.getMTime());const s=r.getRGBTransferFunction();s!==null&&(n=Math.max(n,s.getMTime()))}),n},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1}var ef={mapper:null,forceOpaque:!1,forceTranslucent:!1};function ya(t,e,n={}){Object.assign(e,ef,n),qn.extend(t,e,n),e.boundsMTime={},C.obj(e.boundsMTime),C.setGet(t,e,["mapper","forceOpaque","forceTranslucent"]),Po(t,e)}var tf=C.newInstance(ya,"vtkImageSlice"),Op={newInstance:tf,extend:ya},{vtkErrorMacro:Nt}=C;function nf(t,e){e.classHierarchy.push("vtkPiecewiseFunction"),t.getSize=()=>e.nodes.length,t.getType=()=>{let n,r=0,s=0;e.nodes.length>0&&(r=e.nodes[0].y);for(let a=1;a<e.nodes.length;a++){if(n=e.nodes[a].y,n!==r)if(n>r)switch(s){case 0:case 1:s=1;break;default:s=3;break}else switch(s){case 0:case 2:s=2;break;default:s=3;break}if(r=n,s===3)break}switch(s){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:return"Varied"}},t.getDataPointer=()=>{const n=e.nodes.length;if(e.function=null,n>0){e.function=[];for(let r=0;r<n;r++)e.function[2*r]=e.nodes[r].x,e.function[2*r+1]=e.nodes[r].y}return e.function},t.getFirstNonZeroValue=()=>{if(e.nodes.length===0)return 0;let n=1,r=0,s=0;for(;s<e.nodes.length;s++)if(e.nodes[s].y!==0){n=0;break}return n?r=Number.MAX_VALUE:s>0?r=e.nodes[s-1].x:e.clamping?r=-Number.MAX_VALUE:r=e.nodes[0].x,r},t.getNodeValue=(n,r)=>{const s=e.nodes.length;return n<0||n>=s?(Nt("Index out of range!"),-1):(r[0]=e.nodes[n].x,r[1]=e.nodes[n].y,r[2]=e.nodes[n].midpoint,r[3]=e.nodes[n].sharpness,1)},t.setNodeValue=(n,r)=>{const s=e.nodes.length;if(n<0||n>=s)return Nt("Index out of range!"),-1;const a=e.nodes[n].x;return e.nodes[n].x=r[0],e.nodes[n].y=r[1],e.nodes[n].midpoint=r[2],e.nodes[n].sharpness=r[3],a!==r[0]?t.sortAndUpdateRange():t.modified(),1},t.addPoint=(n,r)=>t.addPointLong(n,r,.5,0),t.addPointLong=(n,r,s,a)=>{if(s<0||s>1)return Nt("Midpoint outside range [0.0, 1.0]"),-1;if(a<0||a>1)return Nt("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(n);const i={x:n,y:r,midpoint:s,sharpness:a};e.nodes.push(i),t.sortAndUpdateRange();let o;for(o=0;o<e.nodes.length&&e.nodes[o].x!==n;o++);return o<e.nodes.length?o:-1},t.setNodes=n=>{e.nodes!==n&&(e.nodes=n,t.sortAndUpdateRange())},t.sortAndUpdateRange=()=>{e.nodes.sort((n,r)=>n.x-r.x),t.updateRange()||t.modified()},t.updateRange=()=>{const n=e.range.slice(),r=e.nodes.length;return r?(e.range[0]=e.nodes[0].x,e.range[1]=e.nodes[r-1].x):(e.range[0]=0,e.range[1]=0),n[0]===e.range[0]&&n[1]===e.range[1]?!1:(t.modified(),!0)},t.removePoint=n=>{let r;for(r=0;r<e.nodes.length&&e.nodes[r].x!==n;r++);if(r>=e.nodes.length)return-1;const s=r;let a=!1;return e.nodes.splice(r,1),(r===0||r===e.nodes.length)&&(a=t.updateRange()),a||t.modified(),s},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addSegment=(n,r,s,a)=>{t.sortAndUpdateRange();for(let i=0;i<e.nodes.length;)e.nodes[i].x>=n&&e.nodes[i].x<=s?e.nodes.splice(i,1):i++;t.addPoint(n,r,.5,0),t.addPoint(s,a,.5,0)},t.getValue=n=>{const r=[];return t.getTable(n,n,1,r),r[0]},t.adjustRange=n=>{if(n.length<2)return 0;const r=t.getRange();r[0]<n[0]?t.addPoint(n[0],t.getValue(n[0])):t.addPoint(n[0],t.getValue(r[0])),r[1]>n[1]?t.addPoint(n[1],t.getValue(n[1])):t.addPoint(n[1],t.getValue(r[1])),t.sortAndUpdateRange();for(let s=0;s<e.nodes.length;)e.nodes[s].x>=n[0]&&e.nodes[s].x<=n[1]?e.nodes.splice(s,1):++s;return t.sortAndUpdateRange(),1},t.estimateMinNumberOfSamples=(n,r)=>{const s=t.findMinimumXDistance();return Math.ceil((r-n)/s)},t.findMinimumXDistance=()=>{const n=e.nodes.length;if(n<2)return-1;let r=e.nodes[1].x-e.nodes[0].x;for(let s=0;s<n-1;s++){const a=e.nodes[s+1].x-e.nodes[s].x;a<r&&(r=a)}return r},t.getTable=(n,r,s,a,i=1)=>{let o,c=0;const g=e.nodes.length;let T=0;g!==0&&(T=e.nodes[g-1].y);let f=0,y=0,w=0,R=0,l=0,x=0,u=0;for(o=0;o<s;o++){const p=i*o;for(s>1?f=n+o/(s-1)*(r-n):f=.5*(n+r);c<g&&f>e.nodes[c].x;)c++,c<g&&(y=e.nodes[c-1].x,w=e.nodes[c].x,R=e.nodes[c-1].y,l=e.nodes[c].y,x=e.nodes[c-1].midpoint,u=e.nodes[c-1].sharpness,x<1e-5&&(x=1e-5),x>.99999&&(x=.99999));if(c>=g)a[p]=e.clamping?T:0;else if(c===0)a[p]=e.clamping?e.nodes[0].y:0;else{let h=(f-y)/(w-y);if(h<x?h=.5*h/x:h=.5+.5*(h-x)/(1-x),u>.99)if(h<.5){a[p]=R;continue}else{a[p]=l;continue}if(u<.01){a[p]=(1-h)*R+h*l;continue}h<.5?h=.5*(h*2)**(1+10*u):h>.5&&(h=1-.5*((1-h)*2)**(1+10*u));const v=h*h,E=v*h,S=2*E-3*v+1,_=-2*E+3*v,d=E-2*v+h,L=E-v,M=l-R,D=(1-u)*M;a[p]=S*R+_*l+d*D+L*D;const F=R<l?R:l,N=R>l?R:l;a[p]=a[p]<F?F:a[p],a[p]=a[p]>N?N:a[p]}}}}var rf={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function la(t,e,n={}){Object.assign(e,rf,n),C.obj(t,e),e.nodes=[],C.setGet(t,e,["allowDuplicateScalars","clamping"]),C.setArray(t,e,["range"],2),C.getArray(t,e,["range"]),nf(t,e)}var af=C.newInstance(la,"vtkPiecewiseFunction"),Gn={newInstance:af,extend:la},xa={FLAT:0,GOURAUD:1,PHONG:2},st={POINTS:0,WIREFRAME:1,SURFACE:2},sf=xa,Ea={Shading:xa,Representation:st,Interpolation:sf},of={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Un={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Sa={Wrap:of,Filter:Un},Ra=new Float32Array(1),ff=new Int32Array(Ra.buffer);function cf(t){Ra[0]=t;const e=ff[0];let n=e>>16&32768,r=e>>12&2047;const s=e>>23&255;return s<103?n:s>142?(n|=31744,n|=(s===255?0:1)&&e&8388607,n):s<113?(r|=2048,n|=(r>>114-s)+(r>>113-s&1),n):(n|=s-112<<10|r>>1,n+=r&1,n)}function uf(t){const e=(t&32768)>>15,n=(t&31744)>>10,r=t&1023;return n===0?(e?-1:1)*2**-14*(r/2**10):n===31?r?NaN:(e?-1:1)*(1/0):(e?-1:1)*2**(n-15)*(1+r/2**10)}var Ze={fromHalf:uf,toHalf:cf},{vtkErrorMacro:gf}=C,hf=["Build","Render"];function pf(t,e){e.classHierarchy.push("vtkViewNode");function n(s,a){for(let i=0;i<e.children.length;++i){const o=(a+1+i)%e.children.length;if(e.children[o]===s)return e.children[o]=e.children[a],e.children[a]=s,!0}return!1}t.build=s=>{},t.render=s=>{},t.traverse=s=>{const a=t[s.getTraverseOperation()];if(a){a(s);return}t.apply(s,!0);for(let i=0;i<e.children.length;i++)e.children[i].traverse(s);t.apply(s,!1)},t.apply=(s,a)=>{const i=t[s.getOperation()];i&&i(a,s)},t.getViewNodeFor=(s,a=null)=>{if(a&&a.renderable===s)return a;if(e.renderable===s)return t;for(let i=0;i<e.children.length;++i){const o=e.children[i].getViewNodeFor(s);if(o)return o}},t.getFirstAncestorOfType=s=>e._parent?e._parent.isA(s)?e._parent:e._parent.getFirstAncestorOfType(s):null,t.getLastAncestorOfType=s=>{if(!e._parent)return null;const a=e._parent.getLastAncestorOfType(s);return a||(e._parent.isA(s)?e._parent:null)},t.addMissingNode=s=>{if(!s)return;const a=e._renderableChildMap.get(s);if(a!==void 0)return a.setVisited(!0),a;const i=t.createViewNode(s);if(i)return i.setParent(t),i.setVisited(!0),e._renderableChildMap.set(s,i),e.children.push(i),i},t.addMissingNodes=(s,a=!1)=>{if(!s||!s.length)return;let i;for(let o=0;o<s.length;++o){const c=s[o],g=t.addMissingNode(c);a&&g!==void 0&&(i===void 0?i=e.children.lastIndexOf(g):e.children[i]!==g&&n(e.children,g),i++)}},t.addMissingChildren=s=>{if(!(!s||!s.length))for(let a=0;a<s.length;++a){const i=s[a];if(e.children.indexOf(i)===-1){i.setParent(t),e.children.push(i);const o=i.getRenderable();o&&e._renderableChildMap.set(o,i)}i.setVisited(!0)}},t.removeNode=s=>{const a=e.children.findIndex(o=>o===s);if(a<0)return!1;const i=s.getRenderable();return i&&e._renderableChildMap.delete(i),s.delete(),e.children.splice(a,1),!0},t.prepareNodes=()=>{for(let s=0;s<e.children.length;++s)e.children[s].setVisited(!1)},t.setVisited=s=>{e.visited=s},t.removeUnusedNodes=()=>{let s=0;for(let a=0;a<e.children.length;++a){const i=e.children[a];if(i.getVisited())e.children[s++]=i,i.setVisited(!1);else{const o=i.getRenderable();o&&e._renderableChildMap.delete(o),i.delete()}}e.children.length=s},t.createViewNode=s=>{if(!e.myFactory)return gf("Cannot create view nodes without my own factory"),null;const a=e.myFactory.createNode(s);return a&&a.setRenderable(s),a};const r=t.delete;t.delete=()=>{for(let s=0;s<e.children.length;s++)e.children[s].delete();r()}}var Tf={renderable:null,myFactory:null,children:[],visited:!1};function wr(t,e,n={}){Object.assign(e,Tf,n),C.obj(t,e),C.event(t,e,"event"),e._renderableChildMap=new Map,C.get(t,e,["visited"]),C.setGet(t,e,["_parent","renderable","myFactory"]),C.getArray(t,e,["children"]),C.moveToProtected(t,e,["parent"]),pf(t,e)}var An={newInstance:C.newInstance(wr,"vtkViewNode"),extend:wr,PASS_TYPES:hf},{vtkWarningMacro:vf}=C;function yf(t){const e=[];let n=0,r=t.getClassName(n++);for(;r;)e.push(r),r=t.getClassName(n++);return e}function lf(t,e){const n=e.join(" → ");return[`No ${t} implementation found for ${e[0]}.`,`Class hierarchy: ${n}.`,`A rendering Profile is likely missing for ${e[0]}.`,"Try importing '@kitware/vtk.js/Rendering/Profiles/All' or 'vtk.js/Sources/Rendering/Profiles/All',","or import the specific rendering profile needed by this renderable if known.","See https://kitware.github.io/vtk-js/docs/concepts_profile.html for details."].join(`
|
|
2
2
|
`)}function xf(t){return t.includes("vtkAbstractWidget")||t.includes("vtkWidgetRepresentation")}function Ef(t,e){e.overrides||(e.overrides={}),e.classHierarchy.push("vtkViewNodeFactory"),t.createNode=n=>{if(n.isDeleted())return null;const r=yf(n);let s=0,a=r[s++],i=!1;const o=Object.keys(e.overrides);for(;a&&!i;)o.indexOf(a)!==-1?i=!0:a=n.getClassName(s++);if(!i)return xf(r)||vf(lf(t.getClassName(),r)),null;const c=e.overrides[a]();return c.setMyFactory(t),c}}var Sf={};function Ca(t,e,n={}){Object.assign(e,Sf,n),C.obj(t,e),Ef(t,e)}var Rf=C.newInstance(Ca,"vtkViewNodeFactory"),wa={newInstance:Rf,extend:Ca},da=Object.create(null);function _a(t,e){da[t]=e}function Cf(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}var wf={};function La(t,e,n={}){Object.assign(e,wf,n),e.overrides=da,wa.extend(t,e,n),Cf(t,e)}var df=C.newInstance(La,"vtkOpenGLViewNodeFactory"),_f={newInstance:df,extend:La};function Lf(){try{const r=new Int16Array([0,32767]),s=[1,1],a=document.createElement("canvas");a.width=4,a.height=4;const i=a.getContext("webgl2");if(!i)return!1;const o=i.getExtension("EXT_texture_norm16");if(!o)return!1;const c=`#version 300 es
|
|
3
3
|
void main() {
|
|
4
4
|
gl_PointSize = ${4 .toFixed(1)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as p}from"./index-
|
|
1
|
+
import{G as p}from"./index-g0DeZJl2.js";async function d(i,r,s,a=!1,n=!1){const e=[];for(const o of s){const t=i.getViewport(o);if(!t)throw new Error(`Viewport with Id ${o} does not exist`);if(!p(t)){console.warn(`Viewport with Id ${o} does not implement addVolumes. Cannot add volume to this viewport.`);return}e.push(t)}await Promise.all(e.map(o=>o.addVolumes(r,a,n)))}export{d as a};
|