3 lines
1.1 MiB
3 lines
1.1 MiB
/*! For license information please see 743.bundle.58a76ef98d0f4120f602.js.LICENSE.txt */
|
||
(self.webpackChunk=self.webpackChunk||[]).push([[743],{3743:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseVolumeViewport:()=>Pf,CONSTANTS:()=>a,EVENTS:()=>g,Enums:()=>n,ImageVolume:()=>Fc,RenderingEngine:()=>ip,Settings:()=>pp,StackViewport:()=>tp,Viewport:()=>Sf,VolumeViewport:()=>wf,VolumeViewport3D:()=>rp,addVolumesToViewports:()=>Tf,cache:()=>qd,createVolumeActor:()=>yf,createVolumeMapper:()=>gf,eventTarget:()=>J,geometryLoader:()=>p,getConfiguration:()=>Qe,getEnabledElement:()=>_d,getEnabledElementByIds:()=>Nd,getEnabledElements:()=>Bd,getOrCreateCanvas:()=>Cu,getRenderingEngine:()=>Le,getRenderingEngines:()=>_e,getShouldUseCPURendering:()=>Ze,getShouldUseSharedArrayBuffer:()=>Ye,imageLoadPoolManager:()=>iu,imageLoader:()=>s,imageRetrievalPoolManager:()=>lp,init:()=>ze,isCornerstoneInitialized:()=>$e,metaData:()=>o,registerImageLoader:()=>hu,requestPoolManager:()=>iu,resetUseCPURendering:()=>Ke,resetUseSharedArrayBuffer:()=>qe,setConfiguration:()=>Je,setPreferSizeOverAccuracy:()=>He,setUseCPURendering:()=>je,setUseSharedArrayBuffer:()=>Xe,setVolumesForViewports:()=>bf,triggerEvent:()=>se,utilities:()=>d,volumeLoader:()=>i});var n={};r.r(n),r.d(n,{BlendModes:()=>w,CalibrationTypes:()=>U,ContourType:()=>V,DynamicOperatorType:()=>B,Events:()=>g,GeometryType:()=>M,InterpolationType:()=>T,OrientationAxis:()=>I,RequestType:()=>h,SharedArrayBufferModes:()=>R,VOILUTFunctionType:()=>_,ViewportStatus:()=>G,ViewportType:()=>y});var a={};r.r(a),r.d(a,{CPU_COLORMAPS:()=>W,EPSILON:()=>H,MPR_CAMERA_VALUES:()=>Z,RENDERING_DEFAULTS:()=>j,VIEWPORT_PRESETS:()=>X});var o={};r.r(o),r.d(o,{addProvider:()=>st,get:()=>ut,removeAllProviders:()=>ct,removeProvider:()=>lt});var i={};r.r(i),r.d(i,{createAndCacheDerivedVolume:()=>Hc,createAndCacheVolume:()=>jc,createLocalVolume:()=>Kc,getVolumeLoaderSchemes:()=>Xc,loadVolume:()=>zc,registerUnknownVolumeLoader:()=>qc,registerVolumeLoader:()=>Zc});var s={};r.r(s),r.d(s,{cancelLoadAll:()=>mu,cancelLoadImage:()=>pu,cancelLoadImages:()=>gu,loadAndCacheImage:()=>du,loadAndCacheImages:()=>fu,loadImage:()=>uu,registerImageLoader:()=>hu,registerUnknownImageLoader:()=>vu,unregisterAllImageLoaders:()=>yu});var l={};r.r(l),r.d(l,{linePlaneIntersection:()=>Ud,planeDistanceToPoint:()=>Wd,planeEquation:()=>kd,threePlaneIntersection:()=>Gd});var c={};r.r(c),r.d(c,{toLowHighRange:()=>jd,toWindowLevel:()=>zd});var u={};r.r(u),r.d(u,{getColormap:()=>Zd,getColormapNames:()=>Xd,registerColormap:()=>Kd});var d={};r.r(d),r.d(d,{actorIsA:()=>vd,applyPreset:()=>Id,calculateViewportsSpatialRegistration:()=>Sd,calibratedPixelSpacingMetadataProvider:()=>ve,colormap:()=>u,createFloat32SharedArray:()=>rt,createInt16SharedArray:()=>at,createLinearRGBTransferFunction:()=>oe,createSigmoidRGBTransferFunction:()=>ne,createUint16SharedArray:()=>nt,createUint8SharedArray:()=>tt,deepMerge:()=>Dd,getClosestImageId:()=>ft,getClosestStackImageIndexForPoint:()=>bd,getImageLegacy:()=>Fd,getImageSliceDataForVolumeViewport:()=>md,getMinMax:()=>ce,getRuntimeId:()=>ge,getScalarDataType:()=>Ld,getScalingParameters:()=>Vd,getSliceRange:()=>dd,getSpacingInNormalDirection:()=>dt,getTargetVolumeAndSpacingInNormalDir:()=>Qc,getViewportImageCornersInWorld:()=>Pd,getViewportsWithImageURI:()=>yd,getViewportsWithVolumeId:()=>ru,getVoiFromSigmoidRGBTransferFunction:()=>ae,getVolumeActorCorners:()=>Jc,getVolumeSliceRangeInfo:()=>fd,getVolumeViewportScrollInfo:()=>pd,getVolumeViewportsContainingSameVolumes:()=>tu,hasNaNValues:()=>Od,imageIdToURI:()=>me,imageToWorldCoords:()=>od,indexWithinDimensions:()=>eu,invertRgbTransferFunction:()=>ee,isEqual:()=>Ce,isImageActor:()=>hd,isOpposite:()=>xe,isPTPrescaledWithSUV:()=>xu,loadImageToCanvas:()=>nd,planar:()=>l,renderToCanvasCPU:()=>rd,renderToCanvasGPU:()=>Su,scaleRgbTransferFunction:()=>ie,snapFocalPointToSlice:()=>gd,spatialRegistrationMetadataProvider:()=>xd,transformWorldToIndex:()=>nu,triggerEvent:()=>se,uuidv4:()=>le,windowLevel:()=>c,worldToImageCoords:()=>ad});var f,p={};r.r(p),r.d(p,{createAndCacheGeometry:()=>$v}),function(e){e.CACHE_SIZE_EXCEEDED="CACHE_SIZE_EXCEEDED",e.IMAGE_LOAD_ERROR="IMAGE_LOAD_ERROR",e.CAMERA_MODIFIED="CORNERSTONE_CAMERA_MODIFIED",e.CAMERA_RESET="CORNERSTONE_CAMERA_RESET",e.VOI_MODIFIED="CORNERSTONE_VOI_MODIFIED",e.DISPLAY_AREA_MODIFIED="CORNERSTONE_DISPLAY_AREA_MODIFIED",e.ELEMENT_DISABLED="CORNERSTONE_ELEMENT_DISABLED",e.ELEMENT_ENABLED="CORNERSTONE_ELEMENT_ENABLED",e.IMAGE_RENDERED="CORNERSTONE_IMAGE_RENDERED",e.IMAGE_VOLUME_MODIFIED="CORNERSTONE_IMAGE_VOLUME_MODIFIED",e.IMAGE_VOLUME_LOADING_COMPLETED="CORNERSTONE_IMAGE_VOLUME_LOADING_COMPLETED",e.IMAGE_LOADED="CORNERSTONE_IMAGE_LOADED",e.IMAGE_LOAD_FAILED="CORNERSTONE_IMAGE_LOAD_FAILED",e.VOLUME_VIEWPORT_NEW_VOLUME="CORNERSTONE_VOLUME_VIEWPORT_NEW_VOLUME",e.VOLUME_LOADED="CORNERSTONE_VOLUME_LOADED",e.VOLUME_LOADED_FAILED="CORNERSTONE_VOLUME_LOADED_FAILED",e.IMAGE_CACHE_IMAGE_ADDED="CORNERSTONE_IMAGE_CACHE_IMAGE_ADDED",e.IMAGE_CACHE_IMAGE_REMOVED="CORNERSTONE_IMAGE_CACHE_IMAGE_REMOVED",e.VOLUME_CACHE_VOLUME_ADDED="CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED",e.VOLUME_CACHE_VOLUME_REMOVED="CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED",e.STACK_NEW_IMAGE="CORNERSTONE_STACK_NEW_IMAGE",e.VOLUME_NEW_IMAGE="CORNERSTONE_VOLUME_NEW_IMAGE",e.PRE_STACK_NEW_IMAGE="CORNERSTONE_PRE_STACK_NEW_IMAGE",e.IMAGE_SPACING_CALIBRATED="CORNERSTONE_IMAGE_SPACING_CALIBRATED",e.IMAGE_LOAD_PROGRESS="CORNERSTONE_IMAGE_LOAD_PROGRESS",e.STACK_VIEWPORT_NEW_STACK="CORNERSTONE_STACK_VIEWPORT_NEW_STACK",e.STACK_VIEWPORT_SCROLL="CORNERSTONE_STACK_VIEWPORT_SCROLL",e.GEOMETRY_CACHE_GEOMETRY_ADDED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED",e.VOLUME_SCROLL_OUT_OF_BOUNDS="CORNERSTONE_VOLUME_SCROLL_OUT_OF_BOUNDS"}(f||(f={}));const g=f;var m;!function(e){e.Interaction="interaction",e.Thumbnail="thumbnail",e.Prefetch="prefetch"}(m||(m={}));const h=m;var v;!function(e){e.STACK="stack",e.ORTHOGRAPHIC="orthographic",e.PERSPECTIVE="perspective",e.VOLUME_3D="volume3d"}(v||(v={}));const y=v;var b;!function(e){e[e.NEAREST=0]="NEAREST",e[e.LINEAR=1]="LINEAR",e[e.FAST_LINEAR=2]="FAST_LINEAR"}(b||(b={}));const T=b;var C={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5},x={BlendMode:C,FilterMode:{OFF:0,NORMALIZED:1,RAW:2}};const{BlendMode:S}=x;var P;!function(e){e[e.COMPOSITE=0]="COMPOSITE",e[e.MAXIMUM_INTENSITY_BLEND=1]="MAXIMUM_INTENSITY_BLEND",e[e.MINIMUM_INTENSITY_BLEND=2]="MINIMUM_INTENSITY_BLEND",e[e.AVERAGE_INTENSITY_BLEND=3]="AVERAGE_INTENSITY_BLEND"}(P||(P={}));const w=P;var O;!function(e){e.AXIAL="axial",e.CORONAL="coronal",e.SAGITTAL="sagittal",e.ACQUISITION="acquisition"}(O||(O={}));const I=O;var A;!function(e){e.TRUE="true",e.FALSE="false",e.AUTO="auto"}(A||(A={}));const R=A;var E;!function(e){e.CONTOUR="contour"}(E||(E={}));const M=E;var D;!function(e){e.CLOSED_PLANAR="CLOSED_PLANAR",e.OPEN_PLANAR="OPEN_PLANAR"}(D||(D={}));const V=D;var L;!function(e){e.LINEAR="LINEAR",e.SAMPLED_SIGMOID="SIGMOID"}(L||(L={}));const _=L;var N;!function(e){e.SUM="SUM",e.AVERAGE="AVERAGE",e.SUBTRACT="SUBTRACT"}(N||(N={}));const B=N;var F;!function(e){e.NOT_APPLICABLE="",e.ERMF="ERMF",e.USER="User",e.PROJECTION="Proj",e.REGION="Region",e.ERROR="Error",e.UNCALIBRATED="Uncalibrated"}(F||(F={}));const U=F;var k;!function(e){e.NO_DATA="noData",e.LOADING="loading",e.PRE_RENDER="preRender",e.RESIZE="resize",e.RENDERED="rendered"}(k||(k={}));const G=k,W={hotIron:{name:"Hot Iron",numOfColors:256,colors:[[0,0,0,255],[2,0,0,255],[4,0,0,255],[6,0,0,255],[8,0,0,255],[10,0,0,255],[12,0,0,255],[14,0,0,255],[16,0,0,255],[18,0,0,255],[20,0,0,255],[22,0,0,255],[24,0,0,255],[26,0,0,255],[28,0,0,255],[30,0,0,255],[32,0,0,255],[34,0,0,255],[36,0,0,255],[38,0,0,255],[40,0,0,255],[42,0,0,255],[44,0,0,255],[46,0,0,255],[48,0,0,255],[50,0,0,255],[52,0,0,255],[54,0,0,255],[56,0,0,255],[58,0,0,255],[60,0,0,255],[62,0,0,255],[64,0,0,255],[66,0,0,255],[68,0,0,255],[70,0,0,255],[72,0,0,255],[74,0,0,255],[76,0,0,255],[78,0,0,255],[80,0,0,255],[82,0,0,255],[84,0,0,255],[86,0,0,255],[88,0,0,255],[90,0,0,255],[92,0,0,255],[94,0,0,255],[96,0,0,255],[98,0,0,255],[100,0,0,255],[102,0,0,255],[104,0,0,255],[106,0,0,255],[108,0,0,255],[110,0,0,255],[112,0,0,255],[114,0,0,255],[116,0,0,255],[118,0,0,255],[120,0,0,255],[122,0,0,255],[124,0,0,255],[126,0,0,255],[128,0,0,255],[130,0,0,255],[132,0,0,255],[134,0,0,255],[136,0,0,255],[138,0,0,255],[140,0,0,255],[142,0,0,255],[144,0,0,255],[146,0,0,255],[148,0,0,255],[150,0,0,255],[152,0,0,255],[154,0,0,255],[156,0,0,255],[158,0,0,255],[160,0,0,255],[162,0,0,255],[164,0,0,255],[166,0,0,255],[168,0,0,255],[170,0,0,255],[172,0,0,255],[174,0,0,255],[176,0,0,255],[178,0,0,255],[180,0,0,255],[182,0,0,255],[184,0,0,255],[186,0,0,255],[188,0,0,255],[190,0,0,255],[192,0,0,255],[194,0,0,255],[196,0,0,255],[198,0,0,255],[200,0,0,255],[202,0,0,255],[204,0,0,255],[206,0,0,255],[208,0,0,255],[210,0,0,255],[212,0,0,255],[214,0,0,255],[216,0,0,255],[218,0,0,255],[220,0,0,255],[222,0,0,255],[224,0,0,255],[226,0,0,255],[228,0,0,255],[230,0,0,255],[232,0,0,255],[234,0,0,255],[236,0,0,255],[238,0,0,255],[240,0,0,255],[242,0,0,255],[244,0,0,255],[246,0,0,255],[248,0,0,255],[250,0,0,255],[252,0,0,255],[254,0,0,255],[255,0,0,255],[255,2,0,255],[255,4,0,255],[255,6,0,255],[255,8,0,255],[255,10,0,255],[255,12,0,255],[255,14,0,255],[255,16,0,255],[255,18,0,255],[255,20,0,255],[255,22,0,255],[255,24,0,255],[255,26,0,255],[255,28,0,255],[255,30,0,255],[255,32,0,255],[255,34,0,255],[255,36,0,255],[255,38,0,255],[255,40,0,255],[255,42,0,255],[255,44,0,255],[255,46,0,255],[255,48,0,255],[255,50,0,255],[255,52,0,255],[255,54,0,255],[255,56,0,255],[255,58,0,255],[255,60,0,255],[255,62,0,255],[255,64,0,255],[255,66,0,255],[255,68,0,255],[255,70,0,255],[255,72,0,255],[255,74,0,255],[255,76,0,255],[255,78,0,255],[255,80,0,255],[255,82,0,255],[255,84,0,255],[255,86,0,255],[255,88,0,255],[255,90,0,255],[255,92,0,255],[255,94,0,255],[255,96,0,255],[255,98,0,255],[255,100,0,255],[255,102,0,255],[255,104,0,255],[255,106,0,255],[255,108,0,255],[255,110,0,255],[255,112,0,255],[255,114,0,255],[255,116,0,255],[255,118,0,255],[255,120,0,255],[255,122,0,255],[255,124,0,255],[255,126,0,255],[255,128,4,255],[255,130,8,255],[255,132,12,255],[255,134,16,255],[255,136,20,255],[255,138,24,255],[255,140,28,255],[255,142,32,255],[255,144,36,255],[255,146,40,255],[255,148,44,255],[255,150,48,255],[255,152,52,255],[255,154,56,255],[255,156,60,255],[255,158,64,255],[255,160,68,255],[255,162,72,255],[255,164,76,255],[255,166,80,255],[255,168,84,255],[255,170,88,255],[255,172,92,255],[255,174,96,255],[255,176,100,255],[255,178,104,255],[255,180,108,255],[255,182,112,255],[255,184,116,255],[255,186,120,255],[255,188,124,255],[255,190,128,255],[255,192,132,255],[255,194,136,255],[255,196,140,255],[255,198,144,255],[255,200,148,255],[255,202,152,255],[255,204,156,255],[255,206,160,255],[255,208,164,255],[255,210,168,255],[255,212,172,255],[255,214,176,255],[255,216,180,255],[255,218,184,255],[255,220,188,255],[255,222,192,255],[255,224,196,255],[255,226,200,255],[255,228,204,255],[255,230,208,255],[255,232,212,255],[255,234,216,255],[255,236,220,255],[255,238,224,255],[255,240,228,255],[255,242,232,255],[255,244,236,255],[255,246,240,255],[255,248,244,255],[255,250,248,255],[255,252,252,255],[255,255,255,255]]},pet:{name:"PET",numColors:256,colors:[[0,0,0,255],[0,2,1,255],[0,4,3,255],[0,6,5,255],[0,8,7,255],[0,10,9,255],[0,12,11,255],[0,14,13,255],[0,16,15,255],[0,18,17,255],[0,20,19,255],[0,22,21,255],[0,24,23,255],[0,26,25,255],[0,28,27,255],[0,30,29,255],[0,32,31,255],[0,34,33,255],[0,36,35,255],[0,38,37,255],[0,40,39,255],[0,42,41,255],[0,44,43,255],[0,46,45,255],[0,48,47,255],[0,50,49,255],[0,52,51,255],[0,54,53,255],[0,56,55,255],[0,58,57,255],[0,60,59,255],[0,62,61,255],[0,65,63,255],[0,67,65,255],[0,69,67,255],[0,71,69,255],[0,73,71,255],[0,75,73,255],[0,77,75,255],[0,79,77,255],[0,81,79,255],[0,83,81,255],[0,85,83,255],[0,87,85,255],[0,89,87,255],[0,91,89,255],[0,93,91,255],[0,95,93,255],[0,97,95,255],[0,99,97,255],[0,101,99,255],[0,103,101,255],[0,105,103,255],[0,107,105,255],[0,109,107,255],[0,111,109,255],[0,113,111,255],[0,115,113,255],[0,117,115,255],[0,119,117,255],[0,121,119,255],[0,123,121,255],[0,125,123,255],[0,128,125,255],[1,126,127,255],[3,124,129,255],[5,122,131,255],[7,120,133,255],[9,118,135,255],[11,116,137,255],[13,114,139,255],[15,112,141,255],[17,110,143,255],[19,108,145,255],[21,106,147,255],[23,104,149,255],[25,102,151,255],[27,100,153,255],[29,98,155,255],[31,96,157,255],[33,94,159,255],[35,92,161,255],[37,90,163,255],[39,88,165,255],[41,86,167,255],[43,84,169,255],[45,82,171,255],[47,80,173,255],[49,78,175,255],[51,76,177,255],[53,74,179,255],[55,72,181,255],[57,70,183,255],[59,68,185,255],[61,66,187,255],[63,64,189,255],[65,63,191,255],[67,61,193,255],[69,59,195,255],[71,57,197,255],[73,55,199,255],[75,53,201,255],[77,51,203,255],[79,49,205,255],[81,47,207,255],[83,45,209,255],[85,43,211,255],[86,41,213,255],[88,39,215,255],[90,37,217,255],[92,35,219,255],[94,33,221,255],[96,31,223,255],[98,29,225,255],[100,27,227,255],[102,25,229,255],[104,23,231,255],[106,21,233,255],[108,19,235,255],[110,17,237,255],[112,15,239,255],[114,13,241,255],[116,11,243,255],[118,9,245,255],[120,7,247,255],[122,5,249,255],[124,3,251,255],[126,1,253,255],[128,0,255,255],[130,2,252,255],[132,4,248,255],[134,6,244,255],[136,8,240,255],[138,10,236,255],[140,12,232,255],[142,14,228,255],[144,16,224,255],[146,18,220,255],[148,20,216,255],[150,22,212,255],[152,24,208,255],[154,26,204,255],[156,28,200,255],[158,30,196,255],[160,32,192,255],[162,34,188,255],[164,36,184,255],[166,38,180,255],[168,40,176,255],[170,42,172,255],[171,44,168,255],[173,46,164,255],[175,48,160,255],[177,50,156,255],[179,52,152,255],[181,54,148,255],[183,56,144,255],[185,58,140,255],[187,60,136,255],[189,62,132,255],[191,64,128,255],[193,66,124,255],[195,68,120,255],[197,70,116,255],[199,72,112,255],[201,74,108,255],[203,76,104,255],[205,78,100,255],[207,80,96,255],[209,82,92,255],[211,84,88,255],[213,86,84,255],[215,88,80,255],[217,90,76,255],[219,92,72,255],[221,94,68,255],[223,96,64,255],[225,98,60,255],[227,100,56,255],[229,102,52,255],[231,104,48,255],[233,106,44,255],[235,108,40,255],[237,110,36,255],[239,112,32,255],[241,114,28,255],[243,116,24,255],[245,118,20,255],[247,120,16,255],[249,122,12,255],[251,124,8,255],[253,126,4,255],[255,128,0,255],[255,130,4,255],[255,132,8,255],[255,134,12,255],[255,136,16,255],[255,138,20,255],[255,140,24,255],[255,142,28,255],[255,144,32,255],[255,146,36,255],[255,148,40,255],[255,150,44,255],[255,152,48,255],[255,154,52,255],[255,156,56,255],[255,158,60,255],[255,160,64,255],[255,162,68,255],[255,164,72,255],[255,166,76,255],[255,168,80,255],[255,170,85,255],[255,172,89,255],[255,174,93,255],[255,176,97,255],[255,178,101,255],[255,180,105,255],[255,182,109,255],[255,184,113,255],[255,186,117,255],[255,188,121,255],[255,190,125,255],[255,192,129,255],[255,194,133,255],[255,196,137,255],[255,198,141,255],[255,200,145,255],[255,202,149,255],[255,204,153,255],[255,206,157,255],[255,208,161,255],[255,210,165,255],[255,212,170,255],[255,214,174,255],[255,216,178,255],[255,218,182,255],[255,220,186,255],[255,222,190,255],[255,224,194,255],[255,226,198,255],[255,228,202,255],[255,230,206,255],[255,232,210,255],[255,234,214,255],[255,236,218,255],[255,238,222,255],[255,240,226,255],[255,242,230,255],[255,244,234,255],[255,246,238,255],[255,248,242,255],[255,250,246,255],[255,252,250,255],[255,255,255,255]]},hotMetalBlue:{name:"Hot Metal Blue",numColors:256,colors:[[0,0,0,255],[0,0,2,255],[0,0,4,255],[0,0,6,255],[0,0,8,255],[0,0,10,255],[0,0,12,255],[0,0,14,255],[0,0,16,255],[0,0,17,255],[0,0,19,255],[0,0,21,255],[0,0,23,255],[0,0,25,255],[0,0,27,255],[0,0,29,255],[0,0,31,255],[0,0,33,255],[0,0,35,255],[0,0,37,255],[0,0,39,255],[0,0,41,255],[0,0,43,255],[0,0,45,255],[0,0,47,255],[0,0,49,255],[0,0,51,255],[0,0,53,255],[0,0,55,255],[0,0,57,255],[0,0,59,255],[0,0,61,255],[0,0,63,255],[0,0,65,255],[0,0,67,255],[0,0,69,255],[0,0,71,255],[0,0,73,255],[0,0,75,255],[0,0,77,255],[0,0,79,255],[0,0,81,255],[0,0,83,255],[0,0,84,255],[0,0,86,255],[0,0,88,255],[0,0,90,255],[0,0,92,255],[0,0,94,255],[0,0,96,255],[0,0,98,255],[0,0,100,255],[0,0,102,255],[0,0,104,255],[0,0,106,255],[0,0,108,255],[0,0,110,255],[0,0,112,255],[0,0,114,255],[0,0,116,255],[0,0,117,255],[0,0,119,255],[0,0,121,255],[0,0,123,255],[0,0,125,255],[0,0,127,255],[0,0,129,255],[0,0,131,255],[0,0,133,255],[0,0,135,255],[0,0,137,255],[0,0,139,255],[0,0,141,255],[0,0,143,255],[0,0,145,255],[0,0,147,255],[0,0,149,255],[0,0,151,255],[0,0,153,255],[0,0,155,255],[0,0,157,255],[0,0,159,255],[0,0,161,255],[0,0,163,255],[0,0,165,255],[0,0,167,255],[3,0,169,255],[6,0,171,255],[9,0,173,255],[12,0,175,255],[15,0,177,255],[18,0,179,255],[21,0,181,255],[24,0,183,255],[26,0,184,255],[29,0,186,255],[32,0,188,255],[35,0,190,255],[38,0,192,255],[41,0,194,255],[44,0,196,255],[47,0,198,255],[50,0,200,255],[52,0,197,255],[55,0,194,255],[57,0,191,255],[59,0,188,255],[62,0,185,255],[64,0,182,255],[66,0,179,255],[69,0,176,255],[71,0,174,255],[74,0,171,255],[76,0,168,255],[78,0,165,255],[81,0,162,255],[83,0,159,255],[85,0,156,255],[88,0,153,255],[90,0,150,255],[93,2,144,255],[96,4,138,255],[99,6,132,255],[102,8,126,255],[105,9,121,255],[108,11,115,255],[111,13,109,255],[114,15,103,255],[116,17,97,255],[119,19,91,255],[122,21,85,255],[125,23,79,255],[128,24,74,255],[131,26,68,255],[134,28,62,255],[137,30,56,255],[140,32,50,255],[143,34,47,255],[146,36,44,255],[149,38,41,255],[152,40,38,255],[155,41,35,255],[158,43,32,255],[161,45,29,255],[164,47,26,255],[166,49,24,255],[169,51,21,255],[172,53,18,255],[175,55,15,255],[178,56,12,255],[181,58,9,255],[184,60,6,255],[187,62,3,255],[190,64,0,255],[194,66,0,255],[198,68,0,255],[201,70,0,255],[205,72,0,255],[209,73,0,255],[213,75,0,255],[217,77,0,255],[221,79,0,255],[224,81,0,255],[228,83,0,255],[232,85,0,255],[236,87,0,255],[240,88,0,255],[244,90,0,255],[247,92,0,255],[251,94,0,255],[255,96,0,255],[255,98,3,255],[255,100,6,255],[255,102,9,255],[255,104,12,255],[255,105,15,255],[255,107,18,255],[255,109,21,255],[255,111,24,255],[255,113,26,255],[255,115,29,255],[255,117,32,255],[255,119,35,255],[255,120,38,255],[255,122,41,255],[255,124,44,255],[255,126,47,255],[255,128,50,255],[255,130,53,255],[255,132,56,255],[255,134,59,255],[255,136,62,255],[255,137,65,255],[255,139,68,255],[255,141,71,255],[255,143,74,255],[255,145,76,255],[255,147,79,255],[255,149,82,255],[255,151,85,255],[255,152,88,255],[255,154,91,255],[255,156,94,255],[255,158,97,255],[255,160,100,255],[255,162,103,255],[255,164,106,255],[255,166,109,255],[255,168,112,255],[255,169,115,255],[255,171,118,255],[255,173,121,255],[255,175,124,255],[255,177,126,255],[255,179,129,255],[255,181,132,255],[255,183,135,255],[255,184,138,255],[255,186,141,255],[255,188,144,255],[255,190,147,255],[255,192,150,255],[255,194,153,255],[255,196,156,255],[255,198,159,255],[255,200,162,255],[255,201,165,255],[255,203,168,255],[255,205,171,255],[255,207,174,255],[255,209,176,255],[255,211,179,255],[255,213,182,255],[255,215,185,255],[255,216,188,255],[255,218,191,255],[255,220,194,255],[255,222,197,255],[255,224,200,255],[255,226,203,255],[255,228,206,255],[255,229,210,255],[255,231,213,255],[255,233,216,255],[255,235,219,255],[255,237,223,255],[255,239,226,255],[255,240,229,255],[255,242,232,255],[255,244,236,255],[255,246,239,255],[255,248,242,255],[255,250,245,255],[255,251,249,255],[255,253,252,255],[255,255,255,255]]},pet20Step:{name:"PET 20 Step",numColors:256,colors:[[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255]]},gray:{name:"Gray",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,1,1]]}},jet:{name:"Jet",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.35,0,0],[.66,1,1],[.89,1,1],[1,.5,.5]],green:[[0,0,0],[.125,0,0],[.375,1,1],[.64,1,1],[.91,0,0],[1,0,0]],blue:[[0,.5,.5],[.11,1,1],[.34,1,1],[.65,0,0],[1,0,0]]}},hsv:{name:"HSV",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[.15873,1,1],[.174603,.96875,.96875],[.333333,.03125,.03125],[.349206,0,0],[.666667,0,0],[.68254,.03125,.03125],[.84127,.96875,.96875],[.857143,1,1],[1,1,1]],green:[[0,0,0],[.15873,.9375,.9375],[.174603,1,1],[.507937,1,1],[.666667,.0625,.0625],[.68254,0,0],[1,0,0]],blue:[[0,0,0],[.333333,0,0],[.349206,.0625,.0625],[.507937,1,1],[.84127,1,1],[.857143,.9375,.9375],[1,.09375,.09375]]}},hot:{name:"Hot",numColors:256,gamma:1,segmentedData:{red:[[0,.0416,.0416],[.365079,1,1],[1,1,1]],green:[[0,0,0],[.365079,0,0],[.746032,1,1],[1,1,1]],blue:[[0,0,0],[.746032,0,0],[1,1,1]]}},cool:{name:"Cool",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,1,1],[1,0,0]],blue:[[0,1,1],[1,1,1]]}},spring:{name:"Spring",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,0,0]]}},summer:{name:"Summer",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,.5,.5],[1,1,1]],blue:[[0,.4,.4],[1,.4,.4]]}},autumn:{name:"Autumn",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,0,0]]}},winter:{name:"Winter",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,0,0]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,.5,.5]]}},bone:{name:"Bone",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.746032,.652778,.652778],[1,1,1]],green:[[0,0,0],[.365079,.319444,.319444],[.746032,.777778,.777778],[1,1,1]],blue:[[0,0,0],[.365079,.444444,.444444],[1,1,1]]}},copper:{name:"Copper",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.809524,1,1],[1,1,1]],green:[[0,0,0],[1,.7812,.7812]],blue:[[0,0,0],[1,.4975,.4975]]}},spectral:{name:"Spectral",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.05,.4667,.4667],[.1,.5333,.5333],[.15,0,0],[.2,0,0],[.25,0,0],[.3,0,0],[.35,0,0],[.4,0,0],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,.7333,.7333],[.7,.9333,.9333],[.75,1,1],[.8,1,1],[.85,1,1],[.9,.8667,.8667],[.95,.8,.8],[1,.8,.8]],green:[[0,0,0],[.05,0,0],[.1,0,0],[.15,0,0],[.2,0,0],[.25,.4667,.4667],[.3,.6,.6],[.35,.6667,.6667],[.4,.6667,.6667],[.45,.6,.6],[.5,.7333,.7333],[.55,.8667,.8667],[.6,1,1],[.65,1,1],[.7,.9333,.9333],[.75,.8,.8],[.8,.6,.6],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]],blue:[[0,0,0],[.05,.5333,.5333],[.1,.6,.6],[.15,.6667,.6667],[.2,.8667,.8667],[.25,.8667,.8667],[.3,.8667,.8667],[.35,.6667,.6667],[.4,.5333,.5333],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,0,0],[.7,0,0],[.75,0,0],[.8,0,0],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]]}},coolwarm:{name:"CoolWarm",numColors:256,gamma:1,segmentedData:{red:[[0,.2298057,.2298057],[.03125,.26623388,.26623388],[.0625,.30386891,.30386891],[.09375,.342804478,.342804478],[.125,.38301334,.38301334],[.15625,.424369608,.424369608],[.1875,.46666708,.46666708],[.21875,.509635204,.509635204],[.25,.552953156,.552953156],[.28125,.596262162,.596262162],[.3125,.639176211,.639176211],[.34375,.681291281,.681291281],[.375,.722193294,.722193294],[.40625,.761464949,.761464949],[.4375,.798691636,.798691636],[.46875,.833466556,.833466556],[.5,.865395197,.865395197],[.53125,.897787179,.897787179],[.5625,.924127593,.924127593],[.59375,.944468518,.944468518],[.625,.958852946,.958852946],[.65625,.96732803,.96732803],[.6875,.969954137,.969954137],[.71875,.966811177,.966811177],[.75,.958003065,.958003065],[.78125,.943660866,.943660866],[.8125,.923944917,.923944917],[.84375,.89904617,.89904617],[.875,.869186849,.869186849],[.90625,.834620542,.834620542],[.9375,.795631745,.795631745],[.96875,.752534934,.752534934],[1,.705673158,.705673158]],green:[[0,.298717966,.298717966],[.03125,.353094838,.353094838],[.0625,.406535296,.406535296],[.09375,.458757618,.458757618],[.125,.50941904,.50941904],[.15625,.558148092,.558148092],[.1875,.604562568,.604562568],[.21875,.648280772,.648280772],[.25,.688929332,.688929332],[.28125,.726149107,.726149107],[.3125,.759599947,.759599947],[.34375,.788964712,.788964712],[.375,.813952739,.813952739],[.40625,.834302879,.834302879],[.4375,.849786142,.849786142],[.46875,.860207984,.860207984],[.5,.86541021,.86541021],[.53125,.848937047,.848937047],[.5625,.827384882,.827384882],[.59375,.800927443,.800927443],[.625,.769767752,.769767752],[.65625,.734132809,.734132809],[.6875,.694266682,.694266682],[.71875,.650421156,.650421156],[.75,.602842431,.602842431],[.78125,.551750968,.551750968],[.8125,.49730856,.49730856],[.84375,.439559467,.439559467],[.875,.378313092,.378313092],[.90625,.312874446,.312874446],[.9375,.24128379,.24128379],[.96875,.157246067,.157246067],[1,.01555616,.01555616]],blue:[[0,.753683153,.753683153],[.03125,.801466763,.801466763],[.0625,.84495867,.84495867],[.09375,.883725899,.883725899],[.125,.917387822,.917387822],[.15625,.945619588,.945619588],[.1875,.968154911,.968154911],[.21875,.98478814,.98478814],[.25,.995375608,.995375608],[.28125,.999836203,.999836203],[.3125,.998151185,.998151185],[.34375,.990363227,.990363227],[.375,.976574709,.976574709],[.40625,.956945269,.956945269],[.4375,.931688648,.931688648],[.46875,.901068838,.901068838],[.5,.865395561,.865395561],[.53125,.820880546,.820880546],[.5625,.774508472,.774508472],[.59375,.726736146,.726736146],[.625,.678007945,.678007945],[.65625,.628751763,.628751763],[.6875,.579375448,.579375448],[.71875,.530263762,.530263762],[.75,.481775914,.481775914],[.78125,.434243684,.434243684],[.8125,.387970225,.387970225],[.84375,.343229596,.343229596],[.875,.300267182,.300267182],[.90625,.259301199,.259301199],[.9375,.220525627,.220525627],[.96875,.184115123,.184115123],[1,.150232812,.150232812]]}},blues:{name:"Blues",numColors:256,gamma:1,segmentedData:{red:[[0,.9686274528503418,.9686274528503418],[.125,.8705882430076599,.8705882430076599],[.25,.7764706015586853,.7764706015586853],[.375,.6196078658103943,.6196078658103943],[.5,.41960784792900085,.41960784792900085],[.625,.25882354378700256,.25882354378700256],[.75,.12941177189350128,.12941177189350128],[.875,.0313725508749485,.0313725508749485],[1,.0313725508749485,.0313725508749485]],green:[[0,.9843137264251709,.9843137264251709],[.125,.9215686321258545,.9215686321258545],[.25,.8588235378265381,.8588235378265381],[.375,.7921568751335144,.7921568751335144],[.5,.6823529601097107,.6823529601097107],[.625,.572549045085907,.572549045085907],[.75,.4431372582912445,.4431372582912445],[.875,.3176470696926117,.3176470696926117],[1,.1882352977991104,.1882352977991104]],blue:[[0,1,1],[.125,.9686274528503418,.9686274528503418],[.25,.9372549057006836,.9372549057006836],[.375,.8823529481887817,.8823529481887817],[.5,.8392156958580017,.8392156958580017],[.625,.7764706015586853,.7764706015586853],[.75,.7098039388656616,.7098039388656616],[.875,.6117647290229797,.6117647290229797],[1,.41960784792900085,.41960784792900085]]}}},z={MINIMUM_SLAB_THICKNESS:.05,MAXIMUM_RAY_DISTANCE:1e6};Object.freeze(z);const j=z,H=.001;const K=function e(t){const r=Object.getOwnPropertyNames(t);for(const n of r){const r=t[n];r&&"object"==typeof r&&e(r)}return Object.freeze(t)},Z=K({axial:{viewPlaneNormal:[0,0,-1],viewUp:[0,-1,0]},sagittal:{viewPlaneNormal:[1,0,0],viewUp:[0,0,1]},coronal:{viewPlaneNormal:[0,-1,0],viewUp:[0,0,1]}}),X=[{name:"CT-AAA",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 143.556 0 166.222 0.686275 214.389 0.696078 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 143.556 0.615686 0.356863 0.184314 166.222 0.882353 0.603922 0.290196 214.389 1 1 1 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-AAA2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"16 -3024 0 129.542 0 145.244 0.166667 157.02 0.5 169.918 0.627451 395.575 0.8125 1578.73 0.8125 3071 0.8125",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"32 -3024 0 0 0 129.542 0.54902 0.25098 0.14902 145.244 0.6 0.627451 0.843137 157.02 0.890196 0.47451 0.6 169.918 0.992157 0.870588 0.392157 395.575 1 0.886275 0.658824 1578.73 1 0.829256 0.957922 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -16.4458 0 641.385 0.715686 3071 0.705882",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -16.4458 0.729412 0.254902 0.301961 641.385 0.905882 0.815686 0.552941 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bones",gradientOpacity:"4 0 1 985.12 1",specularPower:"1",scalarOpacity:"8 -1000 0 152.19 0 278.93 0.190476 952 0.2",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -1000 0.3 0.3 1 -488 0.3 1 0.3 463.28 1 0 0 659.15 1 0.912535 0.0374849 953 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-Cardiac",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 -77.6875 0 94.9518 0.285714 179.052 0.553571 260.439 0.848214 3071 0.875",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 -77.6875 0.54902 0.25098 0.14902 94.9518 0.882353 0.603922 0.290196 179.052 1 0.937033 0.954531 260.439 0.615686 0 0 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 42.8964 0 163.488 0.428571 277.642 0.776786 1587 0.754902 3071 0.754902",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 42.8964 0.54902 0.25098 0.14902 163.488 0.917647 0.639216 0.0588235 277.642 1 0.878431 0.623529 1587 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -3024 0 -86.9767 0 45.3791 0.169643 139.919 0.589286 347.907 0.607143 1224.16 0.607143 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -3024 0 0 0 -86.9767 0 0.25098 1 45.3791 1 0 0 139.919 1 0.894893 0.894893 347.907 1 1 0.25098 1224.16 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Contrast-Enhanced",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 67.0106 0 251.105 0.446429 439.291 0.625 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 67.0106 0.54902 0.25098 0.14902 251.105 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Vessels",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -3024 0 -1278.35 0 22.8277 0.428571 439.291 0.625 3071 0.616071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -3024 0 0 0 -1278.35 0.54902 0.25098 0.14902 22.8277 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 136.47 0 159.215 0.258929 318.43 0.571429 478.693 0.776786 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 136.47 0 0 0 159.215 0.159804 0.159804 0.159804 318.43 0.764706 0.764706 0.764706 478.693 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-2",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 142.677 0 145.016 0.116071 192.174 0.5625 217.24 0.776786 384.347 0.830357 3661 0.830357",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 142.677 0 0 0 145.016 0.615686 0 0.0156863 192.174 0.909804 0.454902 0 217.24 0.972549 0.807843 0.611765 384.347 0.909804 0.909804 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -2048 0 128.643 0 129.982 0.0982143 173.636 0.669643 255.884 0.857143 584.878 0.866071 3661 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -2048 0 0 0 128.643 0 0 0 129.982 0.615686 0 0.0156863 173.636 0.909804 0.454902 0 255.884 0.886275 0.886275 0.886275 584.878 0.968627 0.968627 0.968627 3661 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cropped-Volume-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -451 0 -450 1 1050 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -451 0 0 0 -450 0.0556356 0.0556356 0.0556356 1050 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Fat",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"14 -1000 0 -100 0 -99 0.15 -60 0.15 -59 0 101.2 0 952 0",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"36 -1000 0.3 0.3 1 -497.5 0.3 1 0.3 -99 0 0 1 -76.946 0 1 0 -65.481 0.835431 0.888889 0.0165387 83.89 1 0 0 463.28 1 0 0 659.15 1 0.912535 0.0374849 2952 1 0.300267 0.299886",diffuse:"1",interpolation:"1"},{name:"CT-Liver-Vasculature",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 149.113 0 157.884 0.482143 339.96 0.660714 388.526 0.830357 1197.95 0.839286 3661 0.848214",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 149.113 0 0 0 157.884 0.501961 0.25098 0 339.96 0.695386 0.59603 0.36886 388.526 0.854902 0.85098 0.827451 1197.95 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Lung",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"12 -1000 0 -600 0 -599 0.15 -400 0.15 -399 0 2952 0",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -1000 0.3 0.3 1 -600 0 0 1 -530 0.134704 0.781726 0.0724558 -460 0.929244 1 0.109473 -400 0.888889 0.254949 0.0240258 2952 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -637.62 0 700 1 3071 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -637.62 1 1 1 700 1 1 1 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Muscle",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 -155.407 0 217.641 0.676471 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 -155.407 0.54902 0.25098 0.14902 217.641 0.882353 0.603922 0.290196 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Pulmonary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 -568.625 0 -364.081 0.0714286 -244.813 0.401786 18.2775 0.607143 447.798 0.830357 3592.73 0.839286",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 -568.625 0 0 0 -364.081 0.396078 0.301961 0.180392 -244.813 0.611765 0.352941 0.0705882 18.2775 0.843137 0.0156863 0.156863 447.798 0.752941 0.752941 0.752941 3592.73 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Soft-Tissue",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -167.01 0 -160 1 240 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -167.01 0 0 0 -160 0.0556356 0.0556356 0.0556356 240 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Air",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0.705882 -900.0 0.715686 -500.0 0 3071 0",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 1 1 1 -900.0 0.2 1.0 1.0 -500.0 0.3 0.3 1.0 3071 0 0 0 ",diffuse:"0.9",interpolation:"1"},{name:"MR-Angio",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 151.354 0 158.279 0.4375 190.112 0.580357 200.873 0.732143 3661 0.741071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 151.354 0 0 0 158.279 0.74902 0.376471 0 190.112 1 0.866667 0.733333 200.873 0.937255 0.937255 0.937255 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-Default",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 0 0 20 0 40 0.15 120 0.3 220 0.375 1024 0.5",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 0 0 0 0 20 0.168627 0 0 40 0.403922 0.145098 0.0784314 120 0.780392 0.607843 0.380392 220 0.847059 0.835294 0.788235 1024 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"8 0 0 98.3725 0 416.637 1 2800 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"16 0 1 1 1 98.3725 1 1 1 416.637 1 1 1 2800 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-T2-Brain",gradientOpacity:"4 0 1 160.25 1",specularPower:"40",scalarOpacity:"10 0 0 36.05 0 218.302 0.171429 412.406 1 641 1",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"16 0 0 0 0 98.7223 0.956863 0.839216 0.192157 412.406 0 0.592157 0.807843 641 1 1 1",diffuse:"0.6",interpolation:"1"},{name:"DTI-FA-Brain",gradientOpacity:"4 0 1 0.9950 1",specularPower:"40",scalarOpacity:"16 0 0 0 0 0.3501 0.0158 0.49379 0.7619 0.6419 1 0.9920 1 0.9950 0 0.9950 0",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"28 0 1 0 0 0 1 0 0 0.24974 0.4941 1 0 0.49949 0 0.9882 1 0.7492 0.51764 0 1 0.9950 1 0 0 0.9950 1 0 0",diffuse:"0.9",interpolation:"1"}],q={},Y={get:e=>q[e],set:e=>{const t=e.id;q[t]=e},delete:e=>delete q[e],getAll:()=>{const e=Object.keys(q).map((e=>q[e]));return e.sort(((e,t)=>"_"===e.id[0]&&"_"!==t.id[0]?1:"_"!==e.id[0]&&"_"===t.id[0]?-1:0)),e}},$=Y;const Q=new class{constructor(){this.listeners={}}reset(){this.listeners={}}addEventListener(e,t){this.listeners[e]||(this.listeners[e]=[]),-1===this.listeners[e].indexOf(t)&&this.listeners[e].push(t)}removeEventListener(e,t){if(!this.listeners[e])return;const r=this.listeners[e],n=r.length;for(let e=0;e<n;e++)if(r[e]===t)return void r.splice(e,1)}dispatchEvent(e){if(!this.listeners[e.type])return;const t=this.listeners[e.type].slice(),r=t.length;for(let n=0;n<r;n++)t[n].call(this,e);return!e.defaultPrevented}},J=Q;function ee(e){if(!e)return;const t=e.getSize();for(let r=0;r<t;r++){const t=[];e.getNodeValue(r,t),t[1]=1-t[1],t[2]=1-t[2],t[3]=1-t[3],e.setNodeValue(r,t)}}var te=r(95548),re=r(54131);function ne(e,t=1024){const{windowWidth:r,windowCenter:n}=zd(e.lower,e.upper),a=[...Array(t+2).keys()].map((e=>e/(t+2))).slice(1,-1).reduce(((e,t)=>{const a=((e,t,r)=>t-r/4*Math.log((1-e)/e))(t,n,r);return e.concat(a,t,t,t,.5,0)}),[]),o=te.ZP.newInstance();return o.buildFunctionFromArray(re.ZP.newInstance({values:a,numberOfComponents:6})),o}function ae(e){let t=[];const[r,n]=e.getRange();e.getTable(r,n,1024,t),t=t.filter(((e,t)=>t%3==0));const a=[...Array(1024).keys()].map(((e,t)=>r+(n-r)/1023*t)),o=t[256],i=Math.log((1-o)/o),s=a[256],l=t[768],c=Math.log((1-l)/l),u=a[768],d=Math.round(4*(u-s)/(i-c)),f=Math.round(s+d*i/4);return[Math.round(f-d/2),Math.round(f+d/2)]}function oe(e){const t=te.ZP.newInstance();let r=0,n=1024;return e&&void 0!==e.lower&&void 0!==e.upper&&(r=e.lower,n=e.upper),t.addRGBPoint(r,0,0,0),t.addRGBPoint(n,1,1,1),t}function ie(e,t){const r=e.getSize();for(let n=0;n<r;n++){const r=[];e.getNodeValue(n,r),r[1]=r[1]*t,r[2]=r[2]*t,r[3]=r[3]*t,e.setNodeValue(n,r)}}function se(e=J,t,r=null){if(!t)throw new Error("Event type was not defined");const n=new CustomEvent(t,{detail:r,cancelable:!0});return e.dispatchEvent(n)}function le(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))}function ce(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}}const ue=Symbol("LastRuntimeId"),de={},fe=4294967295,pe="-";function ge(e,t,r){return function(e,t,r){let n=e[t];n instanceof Array||(n=[0],Object.defineProperty(e,t,{value:n}));for(let e=!0,t=0;e&&t<n.length;++t){let a=0|n[t];a<r?(e=!1,a+=1):(a=0,t+1===n.length&&n.push(0)),n[t]=a}return n}(null!==e&&"object"==typeof e?e:de,ue,("number"==typeof r&&r>0?r:fe)>>>0).join("string"==typeof t?t:pe)}function me(e){const t=e.indexOf(":");return e.substring(t+1)}const he={},ve={add:(e,t)=>{const r=me(e);he[r]=t},get:(e,t)=>{if("calibratedPixelSpacing"===e){const e=me(t);return he[e]}}};function ye(e,t,r){return Math.abs(e-t)<=r}function be(e){return"number"==typeof e}function Te(e){return"length"in e&&"number"==typeof e[0]}function Ce(e,t,r=1e-5){return typeof e==typeof t&&null!==e&&null!==t&&(be(e)&&be(t)?ye(e,t,r):!(!Te(e)||!Te(t))&&function(e,t,r=1e-5){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!ye(e[n],t[n],r))return!1;return!0}(e,t,r))}function xe(e,t,r=1e-5){return Math.abs(e[0]+t[0])<r&&Math.abs(e[1]+t[1])<r&&Math.abs(e[2]+t[2])<r}function Se(e,t,r,n){return new(r||(r=Promise))((function(a,o){function i(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,s)}l((n=n.apply(e,t||[])).next())}))}const Pe=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function we(e){return e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const Oe="undefined"==typeof window,Ie=(()=>{if(Oe)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,n=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||n||a,isSafari12:/Version\/12.+Safari/.test(e)}})();const Ae=[],Re=[];function Ee(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,a=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-a);)n--,a--;let o,i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,a-=i,0===n)return a;let s,l,c=0,u=0,d=0;for(;u<n;)Re[u]=e.charCodeAt(i+u),Ae[u]=++u;for(;d<a;)for(o=t.charCodeAt(i+d),s=d++,c=d,u=0;u<n;u++)l=o===Re[u]?s:s+1,s=Ae[u],c=Ae[u]=s>c?l>c?c+1:l:l>s?s+1:l;return c}function Me(e){return null!=e}class De extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const Ve=({mobileTiers:e=[0,15,30,60],desktopTiers:t=[0,15,30,60],override:r={},glContext:n,failIfMajorPerformanceCaveat:a=!1,benchmarksURL:o="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>Se(void 0,void 0,void 0,(function*(){const i={};if(Oe)return{tier:0,type:"SSR"};const{isIpad:s=!!(null==Ie?void 0:Ie.isIpad),isMobile:l=!!(null==Ie?void 0:Ie.isMobile),screenSize:c=window.screen,loadBenchmarks:u=(e=>Se(void 0,void 0,void 0,(function*(){const t=yield fetch(`${o}/${e}`).then((e=>e.json()));if(parseInt(t.shift().split(".")[0],10)<4)throw new De("Detect GPU benchmark data is out of date. Please update to version 4x");return t})))}=r;let{renderer:d}=r;const f=(e,t,r,n,a)=>({device:a,fps:n,gpu:r,isMobile:l,tier:e,type:t});let p,g="";if(d)d=we(d),p=[d];else{const e=n||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),a=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=a?a:void 0}(null==Ie?void 0:Ie.isSafari12,a);if(!e)return f(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(d=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!d)return f(1,"FALLBACK");g=d,d=we(d),p=function(e,t,r){return"apple gpu"===t?function(e,t,r){if(!r)return[t];const n=function(e){const t=e.createShader(35633),r=e.createShader(35632),n=e.createProgram();if(!(r&&t&&n))return;e.shaderSource(t,"\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n "),e.shaderSource(r,"\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n "),e.compileShader(t),e.compileShader(r),e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.detachShader(n,t),e.detachShader(n,r),e.deleteShader(t),e.deleteShader(r),e.useProgram(n);const a=e.createBuffer();e.bindBuffer(34962,a),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const o=e.getAttribLocation(n,"aPosition");e.vertexAttribPointer(o,3,5126,!1,0,0),e.enableVertexAttribArray(o),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const i=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,i),e.deleteProgram(n),e.deleteBuffer(a),i.join("")}(e),a="801621810",o="8016218135",i="80162181161",s=(null==Ie?void 0:Ie.isIpad)?[["a7",i,12],["a8",o,15],["a8x",o,15],["a9",o,15],["a9x",o,15],["a10",o,15],["a10x",o,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",i,12],["a8",o,12],["a9",o,15],["a10",o,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15]];let l;return"80162181255"===n?l=s.filter((([,,e])=>e>=14)):(l=s.filter((([,e])=>e===n)),l.length||(l=s)),l.map((([e])=>`apple ${e} gpu`))}(e,t,r):[t]}(e,d,l)}const m=(yield Promise.all(p.map((function(e){var t;return Se(this,void 0,void 0,(function*(){const r=(e=>{const t=l?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(e);if(!r)return;const n=`${l?"m":"d"}-${r}${s?"-ipad":""}.json`,a=i[n]=null!==(t=i[n])&&void 0!==t?t:u(n);let o;try{o=yield a}catch(r){if(r instanceof De)throw r;return}const d=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(e);let f=o.filter((([,e])=>e===d));f.length||(f=o.filter((([t])=>t.includes(e))));const p=f.length;if(0===p)return;let g,[m,,,h]=p>1?f.map((t=>[t,Ee(e,t[0])])).sort((([,e],[,t])=>e-t))[0][0]:f[0],v=Number.MAX_VALUE;const{devicePixelRatio:y}=window,b=c.width*y*c.height*y;for(const e of h){const[t,r]=e,n=t*r,a=Math.abs(b-n);a<v&&(v=a,g=e)}if(!g)return;const[,,T,C]=g;return[v,T,m,C]}))})))).filter(Me).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!m.length){const e=Pe.find((e=>d.includes(e)));return e?f(0,"BLOCKLISTED",e):f(1,"FALLBACK",`${d} (${g})`)}const[,h,v,y]=m[0];if(-1===h)return f(0,"BLOCKLISTED",v,h,y);const b=l?e:t;let T=0;for(let e=0;e<b.length;e++)h>=b[e]&&(T=e);return f(T,"BENCHMARK",v,h,y)}));function Le(e){return $.get(e)}function _e(){return $.getAll()}const Ne=Le;let Be=!1,Fe=!0,Ue=R.TRUE;const ke={gpuTier:void 0,detectGPUConfig:{},rendering:{useCPURendering:!1,preferSizeOverAccuracy:!1,useNorm16Texture:!1,strictZSpacingForVolumeViewport:!0}};let Ge={gpuTier:void 0,detectGPUConfig:{},rendering:{useCPURendering:!1,preferSizeOverAccuracy:!1,useNorm16Texture:!1,strictZSpacingForVolumeViewport:!0}};function We(){const e=function(){const e=document.createElement("canvas");return e.getContext("webgl2")||e.getContext("webgl")||e.getContext("experimental-webgl")}();return e instanceof WebGLRenderingContext||e instanceof WebGL2RenderingContext}async function ze(e=Ge){if(Be)return Be;Ge=Dd(ke,e);return We()?(Ge.gpuTier=Ge.gpuTier||await Ve(Ge.detectGPUConfig),console.log("CornerstoneRender: Using detect-gpu to get the GPU benchmark:",Ge.gpuTier),Ge.gpuTier.tier<1?(console.log("CornerstoneRender: GPU is not powerful enough, using CPU rendering"),Ge.rendering.useCPURendering=!0):console.log("CornerstoneRender: using GPU rendering")):(console.log("CornerstoneRender: GPU not detected, using CPU rendering"),Ge.rendering.useCPURendering=!0),Xe(Ue),Be=!0,Be}function je(e){Ge.rendering.useCPURendering=e,Be=!0,et()}function He(e){Ge.rendering.preferSizeOverAccuracy=e,Be=!0,et()}function Ke(){Ge.rendering.useCPURendering=!We(),et()}function Ze(){return Ge.rendering.useCPURendering}function Xe(e){if(e!=R.AUTO)return e==R.TRUE||1==e?(Ue=R.TRUE,void(Fe=!0)):e==R.FALSE||0==e?(Ue=R.FALSE,void(Fe=!1)):void 0;Ue=R.AUTO;(function(){try{return!!new SharedArrayBuffer(0)}catch{return!1}})()?(Fe=!0,console.log("CornerstoneRender: using SharedArrayBuffer")):(Fe=!1,console.warn("CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.\n Try ensuring page is cross-origin isolated to enable SharedArrayBuffer."))}function qe(){Xe(Ue)}function Ye(){return Fe}function $e(){return Be}function Qe(){return Ge}function Je(e){Ge=e,et()}function et(){_e().forEach((e=>e.getViewports().forEach((e=>e.updateRenderingPipeline?.()))))}const tt=function(e){if(!Ye())throw new Error("Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated");if(void 0===window.SharedArrayBuffer)throw new Error("SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/");const t=new SharedArrayBuffer(e);return new Uint8Array(t)};const rt=function(e){if(!Ye())throw new Error("Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated");if(void 0===window.SharedArrayBuffer)throw new Error("SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/");const t=new SharedArrayBuffer(4*e);return new Float32Array(t)};const nt=function(e){if(!window.crossOriginIsolated)throw new Error("Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated");if(void 0===window.SharedArrayBuffer)throw new Error("SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/");const t=new SharedArrayBuffer(2*e);return new Uint16Array(t)};const at=function(e){if(!window.crossOriginIsolated)throw new Error("Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated");if(void 0===window.SharedArrayBuffer)throw new Error("SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/");const t=new SharedArrayBuffer(2*e);return new Int16Array(t)};var ot=r(45451);const it=[];function st(e,t=0){let r;for(r=0;r<it.length&&!(it[r].priority<=t);r++);it.splice(r,0,{priority:t,provider:e})}function lt(e){for(let t=0;t<it.length;t++)if(it[t].provider===e){it.splice(t,1);break}}function ct(){for(;it.length>0;)it.pop()}function ut(e,t){for(let r=0;r<it.length;r++){const n=it[r].provider(e,t);if(void 0!==n)return n}}function dt(e,t){const{direction:r,spacing:n}=e,a=r.slice(0,3),o=r.slice(3,6),i=r.slice(6,9),s=[ot.R3.dot(a,t),ot.R3.dot(o,t),ot.R3.dot(i,t)],l=ot.R3.create();ot.R3.set(l,s[0]*n[0],s[1]*n[1],s[2]*n[2]);return ot.R3.length(l)}function ft(e,t,r){if(!e)return;const{direction:n,imageIds:a}=e;if(!a||!a.length)return;const o=n.slice(6,9),i=ot.R3.dot(o,r);if(Math.abs(i)<1-H)return;const s=dt(e,r)/2;let l;for(let e=0;e<a.length;e++){const n=a[e],{imagePositionPatient:o}=ut("imagePlaneModule",n),i=ot.R3.create();ot.R3.sub(i,t,o);const c=ot.R3.dot(i,r);Math.abs(c)<s&&(l=n)}return l}const pt=1073741824;const gt=new class{constructor(){this._imageCache=new Map,this._volumeCache=new Map,this._imageCacheSize=0,this._volumeCacheSize=0,this._maxCacheSize=3*pt,this._maxInstanceSize=2147483640,this.setMaxCacheSize=e=>{if(!e||"number"!=typeof e){const e=`New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;throw new Error(e)}this._maxCacheSize=e},this.isCacheable=e=>{if(e>this._maxInstanceSize)return!1;return this.getBytesAvailable()+this._imageCacheSize>e},this.getMaxCacheSize=()=>this._maxCacheSize,this.getMaxInstanceSize=()=>this._maxInstanceSize,this.getCacheSize=()=>this._imageCacheSize+this._volumeCacheSize,this._decacheImage=e=>{const{imageLoadObject:t}=this._imageCache.get(e);t.cancelFn&&t.cancelFn(),t.decache&&t.decache(),this._imageCache.delete(e)},this._decacheVolume=e=>{const t=this._volumeCache.get(e),{volumeLoadObject:r,volume:n}=t;n.cancelLoading&&n.cancelLoading(),n.imageData&&n.imageData.delete(),r.cancelFn&&r.cancelFn(),r.decache&&r.decache(),this._volumeCache.delete(e)},this.purgeCache=()=>{const e=this._imageCache.keys();for(;;){const{value:t,done:r}=e.next();if(r)break;this.removeImageLoadObject(t),se(J,g.IMAGE_CACHE_IMAGE_REMOVED,{imageId:t})}this.purgeVolumeCache()},this.purgeVolumeCache=()=>{const e=this._volumeCache.keys();for(;;){const{value:t,done:r}=e.next();if(r)break;this.removeVolumeLoadObject(t),se(J,g.VOLUME_CACHE_VOLUME_REMOVED,{volumeId:t})}},this.getVolumeLoadObject=e=>{if(void 0===e)throw new Error("getVolumeLoadObject: volumeId must not be undefined");const t=this._volumeCache.get(e);if(void 0!==t)return t.timeStamp=Date.now(),t.volumeLoadObject},this.getGeometry=e=>{if(null==e)throw new Error("getGeometry: geometryId must not be undefined");const t=this._geometryCache.get(e);if(void 0!==t)return t.timeStamp=Date.now(),t.geometry},this.getVolume=e=>{if(void 0===e)throw new Error("getVolume: volumeId must not be undefined");const t=this._volumeCache.get(e);if(void 0!==t)return t.timeStamp=Date.now(),t.volume},this.removeImageLoadObject=e=>{if(void 0===e)throw new Error("removeImageLoadObject: imageId must not be undefined");const t=this._imageCache.get(e);if(void 0===t)throw new Error("removeImageLoadObject: imageId was not present in imageCache");this._incrementImageCacheSize(-t.sizeInBytes);const r={imageId:e};se(J,g.IMAGE_CACHE_IMAGE_REMOVED,r),this._decacheImage(e)},this.removeVolumeLoadObject=e=>{if(void 0===e)throw new Error("removeVolumeLoadObject: volumeId must not be undefined");const t=this._volumeCache.get(e);if(void 0===t)throw new Error("removeVolumeLoadObject: volumeId was not present in volumeCache");this._incrementVolumeCacheSize(-t.sizeInBytes);const r={volume:t,volumeId:e};se(J,g.VOLUME_CACHE_VOLUME_REMOVED,r),this._decacheVolume(e)},this.putGeometryLoadObject=(e,t)=>{if(null==e)throw new Error("putGeometryLoadObject: geometryId must not be undefined");if(this._geometryCache.has(e))throw new Error("putGeometryLoadObject: geometryId already present in geometryCache");const r={geometryId:e,geometryLoadObject:t,loaded:!1,timeStamp:Date.now(),sizeInBytes:0};return this._geometryCache.set(e,r),t.promise.then((t=>{if(!this._geometryCache.has(e))return void console.warn("putGeometryLoadObject: geometryId was removed from geometryCache");if(Number.isNaN(t.sizeInBytes))throw new Error("putGeometryLoadObject: geometry.sizeInBytes is not a number");r.loaded=!0,r.geometry=t,r.sizeInBytes=t.sizeInBytes;const n={geometry:t,geometryId:e};se(J,g.GEOMETRY_CACHE_GEOMETRY_ADDED,n)})).catch((t=>{throw this._geometryCache.delete(e),t}))},this._incrementImageCacheSize=e=>{this._imageCacheSize+=e},this._incrementVolumeCacheSize=e=>{this._volumeCacheSize+=e},this._geometryCache=new Map}getBytesAvailable(){return this.getMaxCacheSize()-this.getCacheSize()}decacheIfNecessaryUntilBytesAvailable(e,t){let r=this.getBytesAvailable();if(r>=e)return r;let n=Array.from(this._imageCache.values());n.sort((function(e,t){return e.timeStamp>t.timeStamp?1:e.timeStamp<t.timeStamp?-1:0}));let a=n.map((e=>e.imageId)),o=a;t&&(o=a.filter((e=>!t.includes(e))));for(const t of o)if(this.removeImageLoadObject(t),se(J,g.IMAGE_CACHE_IMAGE_REMOVED,{imageId:t}),r=this.getBytesAvailable(),r>=e)return r;n=Array.from(this._imageCache.values()),a=n.map((e=>e.imageId));for(const t of a)if(this.removeImageLoadObject(t),se(J,g.IMAGE_CACHE_IMAGE_REMOVED,{imageId:t}),r=this.getBytesAvailable(),r>=e)return r}putImageLoadObject(e,t){if(void 0===e)throw new Error("putImageLoadObject: imageId must not be undefined");if(void 0===t.promise)throw new Error("putImageLoadObject: imageLoadObject.promise must not be undefined");if(this._imageCache.has(e))throw new Error("putImageLoadObject: imageId already in cache");if(t.cancelFn&&"function"!=typeof t.cancelFn)throw new Error("putImageLoadObject: imageLoadObject.cancel must be a function");const r={loaded:!1,imageId:e,sharedCacheKey:void 0,imageLoadObject:t,timeStamp:Date.now(),sizeInBytes:0};return this._imageCache.set(e,r),t.promise.then((t=>{if(!this._imageCache.get(e))return void console.warn("The image was purged from the cache before it completed loading.");if(Number.isNaN(t.sizeInBytes))throw new Error("putImageLoadObject: image.sizeInBytes must not be undefined");if(void 0===t.sizeInBytes.toFixed)throw new Error("putImageLoadObject: image.sizeInBytes is not a number");if(!this.isCacheable(t.sizeInBytes))throw new Error(g.CACHE_SIZE_EXCEEDED);this.decacheIfNecessaryUntilBytesAvailable(t.sizeInBytes),r.loaded=!0,r.image=t,r.sizeInBytes=t.sizeInBytes,this._incrementImageCacheSize(r.sizeInBytes);const n={image:r};se(J,g.IMAGE_CACHE_IMAGE_ADDED,n),r.sharedCacheKey=t.sharedCacheKey})).catch((t=>{throw this._imageCache.delete(e),t}))}getImageLoadObject(e){if(void 0===e)throw new Error("getImageLoadObject: imageId must not be undefined");const t=this._imageCache.get(e);if(void 0!==t)return t.timeStamp=Date.now(),t.imageLoadObject}isLoaded(e){const t=this._imageCache.get(e);return!!t&&t.loaded}getVolumeContainingImageId(e){const t=Array.from(this._volumeCache.keys()),r=me(e);for(const e of t){const t=this._volumeCache.get(e),{volume:n}=t;if(!n?.imageIds?.length)return;const a=n.getImageURIIndex(r);if(a>-1)return{volume:n,imageIdIndex:a}}}getCachedImageBasedOnImageURI(e){const t=me(e),r=Array.from(this._imageCache.keys()).find((e=>me(e)===t));if(r)return this._imageCache.get(r)}putVolumeLoadObject(e,t){if(void 0===e)throw new Error("putVolumeLoadObject: volumeId must not be undefined");if(void 0===t.promise)throw new Error("putVolumeLoadObject: volumeLoadObject.promise must not be undefined");if(this._volumeCache.has(e))throw new Error(`putVolumeLoadObject: volumeId:${e} already in cache`);if(t.cancelFn&&"function"!=typeof t.cancelFn)throw new Error("putVolumeLoadObject: volumeLoadObject.cancel must be a function");const r={loaded:!1,volumeId:e,volumeLoadObject:t,timeStamp:Date.now(),sizeInBytes:0};return this._volumeCache.set(e,r),t.promise.then((t=>{if(!this._volumeCache.get(e))return void console.warn("The image was purged from the cache before it completed loading.");if(Number.isNaN(t.sizeInBytes))throw new Error("putVolumeLoadObject: volume.sizeInBytes must not be undefined");if(void 0===t.sizeInBytes.toFixed)throw new Error("putVolumeLoadObject: volume.sizeInBytes is not a number");this.decacheIfNecessaryUntilBytesAvailable(t.sizeInBytes,t.imageIds),r.volume=t,r.sizeInBytes=t.sizeInBytes,this._incrementVolumeCacheSize(r.sizeInBytes);const n={volume:r};se(J,g.VOLUME_CACHE_VOLUME_ADDED,n)})).catch((t=>{throw this._volumeCache.delete(e),t}))}},mt=gt;var ht=r(41168),vt=ht.default.vtkErrorMacro;var yt={renderable:null,myFactory:null,children:[],visited:!1};function bt(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yt,r),ht.default.obj(e,t),ht.default.event(e,t,"event"),t._renderableChildMap=new Map,ht.default.get(e,t,["visited"]),ht.default.setGet(e,t,["_parent","renderable","myFactory"]),ht.default.getArray(e,t,["children"]),ht.default.moveToProtected(e,t,["parent"]),function(e,t){t.classHierarchy.push("vtkViewNode"),e.build=function(e){},e.render=function(e){},e.traverse=function(r){var n=r.getTraverseOperation(),a=e[n];if(a)a(r);else{e.apply(r,!0);for(var o=0;o<t.children.length;o++)t.children[o].traverse(r);e.apply(r,!1)}},e.apply=function(t,r){var n=e[t.getOperation()];n&&n(r,t)},e.getViewNodeFor=function(r){if(t.renderable===r)return e;for(var n=0;n<t.children.length;++n){var a=t.children[n].getViewNodeFor(r);if(a)return a}},e.getFirstAncestorOfType=function(e){return t._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null},e.addMissingNode=function(r){if(r){var n=t._renderableChildMap.get(r);if(void 0!==n)n.setVisited(!0);else{var a=e.createViewNode(r);a&&(a.setParent(e),a.setVisited(!0),t._renderableChildMap.set(r,a),t.children.push(a))}}},e.addMissingNodes=function(r){if(r&&r.length)for(var n=0;n<r.length;++n){var a=r[n],o=t._renderableChildMap.get(a);if(void 0!==o)o.setVisited(!0);else{var i=e.createViewNode(a);i&&(i.setParent(e),i.setVisited(!0),t._renderableChildMap.set(a,i),t.children.push(i))}}},e.addMissingChildren=function(r){if(r&&r.length)for(var n=0;n<r.length;++n){var a=r[n];-1===t.children.indexOf(a)&&(a.setParent(e),t.children.push(a)),a.setVisited(!0)}},e.prepareNodes=function(){for(var e=0;e<t.children.length;++e)t.children[e].setVisited(!1)},e.setVisited=function(e){t.visited=e},e.removeUnusedNodes=function(){for(var e=null,r=0;r<t.children.length;++r){var n=t.children[r];if(n.getVisited())n.setVisited(!1);else{var a=n.getRenderable();a&&t._renderableChildMap.delete(a),e||(e=[]),e.push(n),n.delete()}}e&&(t.children=t.children.filter((function(t){return!e.includes(t)})))},e.createViewNode=function(e){if(!t.myFactory)return vt("Cannot create view nodes without my own factory"),null;var r=t.myFactory.createNode(e);return r&&r.setRenderable(e),r};var r=e.delete;e.delete=function(){for(var e=0;e<t.children.length;e++)t.children[e].delete();r()}}(e,t)}var Tt={newInstance:ht.default.newInstance(bt,"vtkViewNode"),extend:bt,PASS_TYPES:["Build","Render"]};var Ct={};function xt(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ct,r),ht.default.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=function(r){if(r.isDeleted())return null;for(var n=0,a=r.getClassName(n++),o=!1,i=Object.keys(t.overrides);a&&!o;)-1!==i.indexOf(a)?o=!0:a=r.getClassName(n++);if(!o)return null;var s=t.overrides[a]();return s.setMyFactory(e),s},e.registerOverride=function(e,r){t.overrides[e]=r}}(e,t)}var St={newInstance:ht.default.newInstance(xt,"vtkViewNodeFactory"),extend:xt},Pt=Object.create(null);function wt(e,t){Pt[e]=t}var Ot={};function It(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ot,r),t.overrides=Pt,St.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}(0,t)}var At={newInstance:ht.default.newInstance(It,"vtkOpenGLViewNodeFactory"),extend:It};var Rt={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function Et(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rt,r),Tt.extend(e,t,r),t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},(0,ht.g2)(e,t,["context","keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=function(r){r&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=function(e){if(e){var r=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize),t.context.scissor(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=function(r){if(r!==t.lastRenderer||t._openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||r.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){ot._E.copy(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),ot.wO.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),ot.wO.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),ot._E.transpose(t.keyMatrices.wcvc,t.keyMatrices.wcvc);var n=t._openGLRenderer.getAspectRatio();ot._E.copy(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(n,-1,1)),ot._E.transpose(t.keyMatrices.vcpc,t.keyMatrices.vcpc),ot._E.multiply(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=r}return t.keyMatrices}}(e,t)}var Mt=(0,ht.WL)(Et),Dt={newInstance:Mt,extend:Et};wt("vtkCamera",Mt);var Vt=ht.eR;var Lt={context:null,selector:null};function _t(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Lt,r),Tt.extend(e,t,r),(0,ht.U2)(e,t,["shaderCache"]),(0,ht.g2)(e,t,["selector"]),(0,ht.B6)(e,t,["openGLRenderWindow"]),function(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=function(r){if(r){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=function(){for(var e=0,r=t.renderable.getLightsByReference(),n=0;n<r.length;++n)r[n].getSwitch()>0&&e++;return e||(Vt("No lights are on, creating one."),t.renderable.createLight()),e},e.zBufferPass=function(r){if(r){var n=0,a=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=a.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),n|=a.DEPTH_BUFFER_BIT,t.context.depthMask(!0));var o=e.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.colorMask(!0,!0,!0,!0),n&&a.clear(n),a.enable(a.DEPTH_TEST)}},e.opaqueZBufferPass=function(t){return e.zBufferPass(t)},e.cameraPass=function(t){t&&e.clear()},e.getAspectRatio=function(){var e=t._parent.getSizeByReference(),r=t.renderable.getViewportByReference();return e[0]*(r[2]-r[0])/((r[3]-r[1])*e[1])},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),r=[0,0,1,1],n=e[0]-r[0],a=e[1]-r[1],o=t._parent.normalizedDisplayToDisplay(n,a),i=Math.round(o[0]),s=Math.round(o[1]),l=e[2]-r[0],c=e[3]-r[1],u=t._parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.clear=function(){var r=0,n=t.context;if(!t.renderable.getTransparent()){var a=t.renderable.getBackgroundByReference();t.context.clearColor(a[0],a[1],a[2],a[3]),r|=n.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(n.clearDepth(1),r|=n.DEPTH_BUFFER_BIT,t.context.depthMask(!0)),n.colorMask(!0,!0,!0,!0);var o=e.getTiledSizeAndOrigin();n.enable(n.SCISSOR_TEST),n.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r&&n.clear(r),n.enable(n.DEPTH_TEST)},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()},e.setOpenGLRenderWindow=function(r){t._openGLRenderWindow!==r&&(e.releaseGraphicsResources(),t._openGLRenderWindow=r,t.context=null,r&&(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}var Nt=(0,ht.WL)(_t,"vtkOpenGLRenderer"),Bt={newInstance:Nt,extend:_t};wt("vtkRenderer",Nt);var Ft=r(16976),Ut=r(72688),kt=r(75755),Gt=r(17197),Wt=r(1299),zt=ht.default.vtkErrorMacro,jt=function(){function e(){(0,Ut.Z)(this,e),this.segmentMapping={},this.segments=[null],this.faces=[]}return(0,kt.Z)(e,[{key:"addSegment",value:function(e){var t=e[0],r=e[e.length-1];if(!(t===r||e.length<2)){var n=this.segmentMapping[t],a=this.segmentMapping[r];if(void 0!==n&&void 0!==a)if(Math.abs(n)===Math.abs(a)){var o=n<a?a:n,i=this.segments[o];if(n>0)for(var s=1;s<e.length-1;s++)i.push(e[s]);else for(var l=1;l<e.length-1;l++)i.unshift(e[e.length-1-l]);this.faces.push(i),this.segments[o]=null,this.segmentMapping[t]=void 0,this.segmentMapping[r]=void 0}else{var c=Math.abs(n),u=Math.abs(a),d=this.segments[c],f=this.segments[u];this.segments[c]=null,this.segments[u]=null,this.segmentMapping[d[0]]=void 0,this.segmentMapping[f[0]]=void 0,this.segmentMapping[d[d.length-1]]=void 0,this.segmentMapping[f[f.length-1]]=void 0,this.addSegment(e),this.addSegment(d),this.addSegment(f)}else if(void 0!==n){if(n>0){for(var p=this.segments[n],g=1;g<e.length;g++)p.push(e[g]);this.segmentMapping[r]=n}else{var m=this.segments[-n];this.segmentMapping[r]=n;for(var h=1;h<e.length;h++)m.unshift(e[h])}this.segmentMapping[t]=void 0}else if(void 0!==a){if(a>0){for(var v=this.segments[a],y=1;y<e.length;y++)v.push(e[e.length-1-y]);this.segmentMapping[t]=a}else{var b=this.segments[-a];this.segmentMapping[t]=a;for(var T=1;T<e.length;T++)b.unshift(e[e.length-T-1])}this.segmentMapping[r]=void 0}else{var C=this.segments.length;this.segments.push(e),this.segmentMapping[t]=-C,this.segmentMapping[r]=C}}}}]),e}();var Ht={};function Kt(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ht,r),ht.default.obj(e,t),ht.default.algo(e,t,1,1),function(e,t){t.classHierarchy.push("vtkClosedPolyLineToSurfaceFilter"),e.requestData=function(e,t){var r=e[0];if(r){var n=Wt.ZP.newInstance();n.shallowCopy(r);for(var a=new jt,o=r.getLines().getData(),i=0;i<o.length;){for(var s=o[i++],l=[],c=0;c<s;c++)l.push(o[i+c]);a.addSegment(l),i+=s}for(var u=a.faces,d=u.length,f=0;f<u.length;f++)d+=u[f].length;var p=new Uint16Array(d);i=0;for(var g=0;g<u.length;g++){var m=u[g];p[i++]=m.length;for(var h=0;h<m.length;h++)p[i++]=m[h]}n.setPolys(Gt.ZP.newInstance({values:p,name:"faces"})),t[0]=n}else zt("Invalid or missing input")}}(e,t)}var Zt={newInstance:ht.default.newInstance(Kt,"vtkClosedPolyLineToSurfaceFilter"),extend:Kt},Xt=r(97442),qt=r(87765);function Yt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var $t=ht.E0;function Qt(e,t){t.classHierarchy.push("vtkCutter");var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Yt(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);function n(e,r){var n=e.getPoints(),a=n.getData(),o=n.getNumberOfPoints(),i=[],s=[],l=[];(!t.cutScalars||t.cutScalars.length<o)&&(t.cutScalars=new Float32Array(o));for(var c=0,u=0;c<a.length;)t.cutScalars[u++]=t.cutFunction.evaluateFunction(a[c++],a[c++],a[c++]);for(var d=[],f=new Array(3),p=new Array(3),g=function(e){var t=e.getPolys().getData(),r=e.getStrips().getData(),n={done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next:function(){var e=null;if(n.polyIdx<t.length){var a=t[n.polyIdx],o=n.polyIdx+1,i=o+a;n.polyIdx=i,e=t.subarray(o,i)}else if(n.stripIdx<r.length){0===n.remainingStripLength&&(n.remainingStripLength=r[n.stripIdx]-2,n.stripIdx+=3);var s=n.stripIdx-2,l=n.stripIdx+1;n.stripIdx++,n.remainingStripLength--,e=r.subarray(s,l)}else if(n.done)throw new Error("Iterator is done");return n.done=n.polyIdx>=t.length&&n.stripIdx>=r.length,e}};return n}(e);!g.done;){var m=g.next();if(!(m.length<=2)){for(var h=[],v=void 0,y=0;y<m.length;y++)v=m[y],h.push(t.cutScalars[v]);for(var b=h[0]>0,T=!0,C=1;C<h.length;C++){if(h[C]>0!==b){T=!1;break}}if(!T){for(var x=[],S=0;S<m.length;S++){var P=S+1===m.length?0:S+1,w=h[S]>0;if(h[P]>0!==w){var O=S,I=P,A=h[I]-h[O];A<=0&&(O=P,I=S,A*=-1);var R=0;0!==A&&(R=(t.cutValue-h[O])/A);var E=m[O],M=m[I];f[0]=a[3*E],f[1]=a[3*E+1],f[2]=a[3*E+2],p[0]=a[3*M],p[1]=a[3*M+1],p[2]=a[3*M+2];var D=[f[0]+R*(p[0]-f[0]),f[1]+R*(p[1]-f[1]),f[2]+R*(p[2]-f[2])];x.push({pointEdge1:E,pointEdge2:M,intersectedPoint:D,newPointID:-1})}}for(var V=0;V<x.length;V++){for(var L=x[V],_=!1,N=0;N<d.length;N++){var B=d[N],F=L.pointEdge1===B.pointEdge1&&L.pointEdge2===B.pointEdge2,U=L.intersectedPoint[0]===B.intersectedPoint[0]&&L.intersectedPoint[1]===B.intersectedPoint[1]&&L.intersectedPoint[2]===B.intersectedPoint[2];if(F||U){_=!0,x[V].newPointID=d[N].newPointID;break}}_||(i.push(L.intersectedPoint[0]),i.push(L.intersectedPoint[1]),i.push(L.intersectedPoint[2]),x[V].newPointID=i.length/3-1,d.push(x[V]))}var k=x.length;2===k?s.push(k,x[0].newPointID,x[1].newPointID):k>2&&(l.push(k),x.forEach((function(e){l.push(e.newPointID)})))}}}r.getPoints().setData((0,ht.MR)(n.getDataType(),i),3),0!==s.length&&r.getLines().setData(Uint16Array.from(s)),0!==l.length&&r.getPolys().setData(Uint16Array.from(l))}e.getMTime=function(){var e=r.getMTime();return t.cutFunction?e=Math.max(e,t.cutFunction.getMTime()):e},e.requestData=function(e,r){var a=e[0];if(a)if(t.cutFunction){var o=Wt.ZP.newInstance();n(a,o),r[0]=o}else $t("Missing cut function");else $t("Invalid or missing input")}}var Jt={cutFunction:null,cutScalars:null,cutValue:0};function er(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jt,r),(0,ht.j6)(e,t),(0,ht.Uw)(e,t,1,1),(0,ht.g2)(e,t,["cutFunction","cutValue"]),Qt(e,t)}var tr={newInstance:(0,ht.WL)(er,"vtkCutter"),extend:er},rr={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2},nr={ObjectType:rr};function ar(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function or(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ar(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ar(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ir=nr.ObjectType;var sr={objectType:ir.ARRAY_BUFFER,context:null};function lr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,sr,r),ht.default.obj(e,t),ht.default.get(e,t,["_openGLRenderWindow"]),ht.default.moveToProtected(e,t,["openGLRenderWindow"]),function(e,t){function r(e){switch(e){case ir.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case ir.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;case ir.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");var n=null,a=null,o=!0,i="";e.getType=function(){return n},e.setType=function(e){n=e},e.getHandle=function(){return a},e.isReady=function(){return!1===o},e.generateBuffer=function(e){var o=r(e);return null===a&&(a=t.context.createBuffer(),n=e),r(n)===o},e.upload=function(s,l){return e.generateBuffer(l)?(t.context.bindBuffer(r(n),a),t.context.bufferData(r(n),s,t.context.STATIC_DRAW),o=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1)},e.bind=function(){return!!a&&(t.context.bindBuffer(r(n),a),!0)},e.release=function(){return!!a&&(t.context.bindBuffer(r(n),null),!0)},e.releaseGraphicsResources=function(){null!==a&&(t.context.bindBuffer(r(n),null),t.context.deleteBuffer(a),a=null)},e.setOpenGLRenderWindow=function(r){t._openGLRenderWindow!==r&&(e.releaseGraphicsResources(),t._openGLRenderWindow=r,t.context=null,r&&(t.context=t._openGLRenderWindow.getContext()))},e.getError=function(){return i}}(e,t)}var cr=or(or({newInstance:ht.default.newInstance(lr),extend:lr},{}),nr),ur=r(42695),dr=ht.default.vtkErrorMacro;function fr(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(rr.ARRAY_BUFFER),e.createVBO=function(r,n,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;if(!r.getData()||!r.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];var s=o.points.getData(),l=null,c=null,u=null,d=o.colors?o.colors.getNumberOfComponents():0,f=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach((function(e){e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),o.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=f,t.blockSize+=f,c=o.tcoords.getData()),o.colors?(t.colorComponents=o.colors.getNumberOfComponents(),t.colorOffset=0,u=o.colors.getData(),t.colorBO||(t.colorBO=cr.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;var p,g=0,m=0,h=0,v=0,y=0,b=0,T={anythingToPoints:function(e,t,r){for(var n=0;n<e;++n)p(t[r+n])},linesToWireframe:function(e,t,r){for(var n=0;n<e-1;++n)p(t[r+n]),p(t[r+n+1])},polysToWireframe:function(e,t,r){if(e>2)for(var n=0;n<e;++n)p(t[r+n]),p(t[r+(n+1)%e])},stripsToWireframe:function(e,t,r){if(e>2){for(var n=0;n<e-1;++n)p(t[r+n]),p(t[r+n+1]);for(var a=0;a<e-2;a++)p(t[r+a]),p(t[r+a+2])}},polysToSurface:function(e,t,r){for(var n=0;n<e-2;n++)p(t[r+0]),p(t[r+n+1]),p(t[r+n+2])},stripsToSurface:function(e,t,r){for(var n=0;n<e-2;n++)p(t[r+n]),p(t[r+n+1+n%2]),p(t[r+n+1+(n+1)%2])}},C={anythingToPoints:function(e,t){return e},linesToWireframe:function(e,t){return e>1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,r){return e>2?3*(e-2):0}},x=null,S=null;a===ur.hX.POINTS||"verts"===n?(x=T.anythingToPoints,S=C.anythingToPoints):a===ur.hX.WIREFRAME||"lines"===n?(x=T["".concat(n,"ToWireframe")],S=C["".concat(n,"ToWireframe")]):(x=T["".concat(n,"ToSurface")],S=C["".concat(n,"ToSurface")]);for(var P=r.getData(),w=P.length,O=0,I=0;I<w;)O+=S(P[I],P),I+=P[I]+1;var A=null,R=new Float32Array(O*t.blockSize);u&&(A=new Uint8Array(4*O));for(var E=0,M=0,D=0,V=0,L=0;L<3;++L){var _=o.points.getRange(L),N=_[1]-_[0];D+=N*N;var B=.5*(_[1]+_[0]);V+=B*B}if(D>0&&(Math.abs(V)/D>1e6||Math.abs(Math.log10(D))>3||0===D&&V>1e6)){for(var F=new Float64Array(3),U=new Float64Array(3),k=0;k<3;++k){var G=o.points.getRange(k),W=G[1]-G[0];F[k]=.5*(G[1]+G[0]),U[k]=W>0?1/W:1}e.setCoordShiftAndScale(F,U)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);if(i)if(i.points||i.cells){var z=new Int32Array(O+i.points.length);z.set(i.points),i.points=z;var j=new Int32Array(O+i.cells.length);j.set(i.cells),i.cells=j}else i.points=new Int32Array(O),i.cells=new Int32Array(O);var H=o.vertexOffset;p=function(e){if(i&&(i.points[H]=e,i.cells[H]=b+o.cellOffset),++H,g=3*e,t.coordShiftAndScaleEnabled?(R[E++]=(s[g++]-t.coordShift[0])*t.coordScale[0],R[E++]=(s[g++]-t.coordShift[1])*t.coordScale[1],R[E++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(R[E++]=s[g++],R[E++]=s[g++],R[E++]=s[g++]),null!==l&&(m=o.haveCellNormals?3*(b+o.cellOffset):3*e,R[E++]=l[m++],R[E++]=l[m++],R[E++]=l[m++]),t.customData.forEach((function(t){y=e*t.components;for(var r=0;r<t.components;++r)R[E++]=t.data[y++]})),null!==c){h=e*f;for(var r=0;r<f;++r)R[E++]=c[h++]}null!==u&&(v=o.haveCellScalars?(b+o.cellOffset)*d:e*d,A[M++]=u[v++],A[M++]=u[v++],A[M++]=u[v++],A[M++]=4===d?u[v++]:255)};for(var K=0;K<w;)x(P[K],P,K+1),K+=P[K]+1,b++;return t.elementCount=O,e.upload(R,rr.ARRAY_BUFFER),t.colorBO&&(t.colorBOStride=4,t.colorBO.upload(A,rr.ARRAY_BUFFER)),b},e.setCoordShiftAndScale=function(e,r){null===e||e.constructor===Float64Array&&3===e.length?null===r||r.constructor===Float64Array&&3===r.length?(null!==t.coordShift&&null!==e&&ot.R3.equals(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&&null!==r&&ot.R3.equals(r,t.coordScale)||(t.coordScale=r),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&&null!==t&&!(ot.R3.exactEquals(e,[0,0,0])&&ot.R3.exactEquals(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=function(e,t){var r=new Float64Array(3);ot.R3.inverse(r,t);var n=new Float64Array(16);return ot._E.fromRotationTranslationScale(n,ot.gf.create(),e,r),n}(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):dr("Wrong type for coordScale, expected vec3 or null"):dr("Wrong type for coordShift, expected vec3 or null")}}var pr={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function gr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pr,r),cr.extend(e,t,r),ht.default.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),ht.default.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),fr(e,t)}var mr={newInstance:ht.default.newInstance(gr),extend:gr},hr=ht.default.vtkErrorMacro;var vr={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function yr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vr,r),ht.default.obj(e,t),ht.default.setGet(e,t,["shaderType","source","error","handle","context"]),function(e,t){t.classHierarchy.push("vtkShader"),e.compile=function(){var e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;if(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),e="Fragment"===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){var r=t.context.getShaderInfoLog(t.handle);return hr("Error compiling shader '".concat(t.source,"': ").concat(r)),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var br={newInstance:ht.default.newInstance(yr,"vtkShader"),extend:yr},Tr=ht.default.vtkErrorMacro;var Cr={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function xr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cr,r),t.attributesLocs={},t.uniformLocs={},t.vertexShader=br.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=br.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=br.newInstance(),t.geometryShader.setShaderType("Geometry"),ht.default.obj(e,t),ht.default.get(e,t,["lastCameraMTime"]),ht.default.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),function(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=function(){return t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(Tr("Links failed: ".concat(t.error)),0):(Tr(t.error),0):(Tr(t.fragmentShader.getSource().split("\n").map((function(e,t){return"".concat(t,": ").concat(e)})).join("\n")),Tr(t.fragmentShader.getError()),0):(Tr(t.vertexShader.getSource().split("\n").map((function(e,t){return"".concat(t,": ").concat(e)})).join("\n")),Tr(t.vertexShader.getError()),0)},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0)},e.bind=function(){return!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0))},e.isBound=function(){return!!t.bound},e.release=function(){t.context.useProgram(null),e.setBound(!1)},e.setContext=function(e){t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=function(){if(t.linked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){var r=t.context.getProgramInfoLog(t.handle);return Tr("Error linking shader ".concat(r)),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=function(r,n){var a=e.findUniform(r);if(-1===a)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;var o=new Float32Array(n);return t.context.uniformMatrix4fv(a,!1,o),!0},e.setUniformMatrix3x3=function(r,n){var a=e.findUniform(r);if(-1===a)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;var o=new Float32Array(n);return t.context.uniformMatrix3fv(a,!1,o),!0},e.setUniformf=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform1f(a,n),!0)},e.setUniformfv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform1fv(a,n),!0)},e.setUniformi=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform1i(a,n),!0)},e.setUniformiv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform1iv(a,n),!0)},e.setUniform2f=function(r,n,a){var o=e.findUniform(r);if(-1===o)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(o,n,a),!0},e.setUniform2fv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform2fv(a,n),!0)},e.setUniform2i=function(r,n,a){var o=e.findUniform(r);if(-1===o)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(o,n,a),!0},e.setUniform2iv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform2iv(a,n),!0)},e.setUniform3f=function(r,n,a,o){var i=e.findUniform(r);if(-1===i)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,n,a,o),!0},e.setUniform3fArray=function(r,n){var a=e.findUniform(r);if(-1===a)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;if(!Array.isArray(n)||3!==n.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(a,n[0],n[1],n[2]),!0},e.setUniform3fv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform3fv(a,n),!0)},e.setUniform3i=function(r){var n=e.findUniform(r);if(-1===n)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i<a;i++)o[i-1]=arguments[i];var s=o;if(1===s.length&&Array.isArray(s[0])&&(s=s[0]),3!==s.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3i(n,s[0],s[1],s[2]),!0},e.setUniform3iv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform3iv(a,n),!0)},e.setUniform4f=function(r){var n=e.findUniform(r);if(-1===n)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i<a;i++)o[i-1]=arguments[i];var s=o;if(1===s.length&&Array.isArray(s[0])&&(s=s[0]),4!==s.length)throw new RangeError("Invalid number of values for array");return t.context.uniform4f(n,s[0],s[1],s[2],s[3]),!0},e.setUniform4fv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform4fv(a,n),!0)},e.setUniform4i=function(r){var n=e.findUniform(r);if(-1===n)return t.error="Could not set uniform ".concat(r," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i<a;i++)o[i-1]=arguments[i];var s=o;if(1===s.length&&Array.isArray(s[0])&&(s=s[0]),4!==s.length)throw new RangeError("Invalid number of values for array");return t.context.uniform4i(n,s[0],s[1],s[2],s[3]),!0},e.setUniform4iv=function(r,n){var a=e.findUniform(r);return-1===a?(t.error="Could not set uniform ".concat(r," . No such uniform."),!1):(t.context.uniform4iv(a,n),!0)},e.findUniform=function(e){if(!e||!t.linked)return-1;var r=t.uniformLocs[e];return void 0!==r?r:null===(r=t.context.getUniformLocation(t.handle,e))?(t.error="Uniform ".concat(e," not found in current shader program."),t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=r,r)},e.isUniformUsed=function(e){if(!e)return!1;var r=t.uniformLocs[e];return void 0!==r?null!==r:t.linked?(r=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=r,null!==r):(Tr("attempt to find uniform when the shader program is not linked"),!1)},e.isAttributeUsed=function(e){if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return Tr("attempt to find uniform when the shader program is not linked"),!1;var r=t.context.getAttribLocation(t.handle,e);return-1!==r&&(t.attributeLocs[e]=r,!0)},e.attachShader=function(r){if(0===r.getHandle())return t.error="Shader object was not initialized, cannot attach it.",!1;if("Unknown"===r.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;if(0===t.handle){var n=t.context.createProgram();if(0===n)return t.error="Could not create shader program.",!1;t.handle=n,t.linked=!1}return"Vertex"===r.getShaderType()&&(0!==t.vertexShaderHandle&&t.comntext.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=r.getHandle()),"Fragment"===r.getShaderType()&&(0!==t.fragmentShaderHandle&&t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=r.getHandle()),t.context.attachShader(t.handle,r.getHandle()),e.setLinked(!1),!0},e.detachShader=function(e){if(0===e.getHandle())return t.error="shader object was not initialized, cannot attach it.",!1;if("Unknown"===e.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;switch(0===t.handle&&(t.error="This shader program has not been initialized yet."),e.getShaderType()){case"Vertex":return t.vertexShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case"Fragment":return t.fragmentShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=function(e){t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=function(e){t.lastCameraMTime=e}}(e,t)}var Sr={newInstance:ht.default.newInstance(xr,"vtkShaderProgram"),extend:xr,substitute:function(e,t,r,n){var a="string"==typeof r?r:r.join("\n"),o=!1===n?t:new RegExp(t,"g"),i=e.replace(o,a);return{replace:i!==a,result:i}}};var Pr={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function wr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pr,r),t.buffers=[],ht.default.obj(e,t),ht.default.get(e,t,["supported"]),ht.default.setGet(e,t,["forceEmulation"]),function(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=function(){},e.initialize=function(){t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t._openGLRenderWindow&&t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=function(){return 0!==t.handleVAO||!1===t.supported},e.bind=function(){if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady())for(var r=t.context,n=0;n<t.buffers.length;++n){var a=t.buffers[n];t.context.bindBuffer(r.ARRAY_BUFFER,a.buffer);for(var o=0;o<a.attributes.length;++o)for(var i=a.attributes[o],s=i.isMatrix?i.size:1,l=0;l<s;++l)r.enableVertexAttribArray(i.index+l),r.vertexAttribPointer(i.index+l,i.size,i.type,i.normalize,i.stride,i.offset+i.stride*l/i.size),i.divisor>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,1):r.vertexAttribDivisor(i.index+l,1))}},e.release=function(){if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady())for(var r=t.context,n=0;n<t.buffers.length;++n){var a=t.buffers[n];t.context.bindBuffer(r.ARRAY_BUFFER,a.buffer);for(var o=0;o<a.attributes.length;++o)for(var i=a.attributes[o],s=i.isMatrix?i.size:1,l=0;l<s;++l)r.enableVertexAttribArray(i.index+l),r.vertexAttribPointer(i.index+l,i.size,i.type,i.normalize,i.stride,i.offset+i.stride*l/i.size),i.divisor>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,0):r.vertexAttribDivisor(i.index+l,0)),r.disableVertexAttribArray(i.index+l)}},e.shaderProgramChanged=function(){e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=function(){e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=function(t,r,n,a,o,i,s,l){return e.addAttributeArrayWithDivisor(t,r,n,a,o,i,s,l,0,!1)},e.addAttributeArrayWithDivisor=function(r,n,a,o,i,s,l,c,u,d){if(!r)return!1;if(!r.isBound()||0===n.getHandle()||n.getType()!==rr.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=r.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==r.getHandle())return!1;var f=t.context,p={};if(p.name=a,p.index=f.getAttribLocation(t.handleProgram,a),p.offset=o,p.stride=i,p.type=s,p.size=l,p.normalize=c,p.isMatrix=d,p.divisor=u,-1===p.Index)return!1;if(n.bind(),f.enableVertexAttribArray(p.index),f.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p.index,1):f.vertexAttribDivisor(p.index,1)),p.buffer=n.getHandle(),!t.supported){for(var g=!1,m=0;m<t.buffers.length;++m){var h=t.buffers[m];if(h.buffer===p.buffer){g=!0;for(var v=!1,y=0;y<h.attributes.length;++y)h.attributes[y].name===a&&(v=!0,h.attributes[y]=p);v||h.attributes.push(p)}}g||t.buffers.push({buffer:p.buffer,attributes:[p]})}return!0},e.addAttributeMatrixWithDivisor=function(r,n,a,o,i,s,l,c,u){var d=e.addAttributeArrayWithDivisor(r,n,a,o,i,s,l,c,u,!0);if(!d)return d;for(var f=t.context,p=f.getAttribLocation(t.handleProgram,a),g=1;g<l;g++)f.enableVertexAttribArray(p+g),f.vertexAttribPointer(p+g,l,s,c,i,o+i*g/l),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p+g,1):f.vertexAttribDivisor(p+g,1));return!0},e.removeAttributeArray=function(r){if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(var n=0;n<t.buffers.length;++n)for(var a=t.buffers[n],o=0;o<a.attributes.length;++o)if(a.attributes[o].name===r)return a.attributes.splice(o,1),a.attributes.length||t.buffers.splice(n,1),!0;return!0},e.setOpenGLRenderWindow=function(r){t._openGLRenderWindow!==r&&(e.releaseGraphicsResources(),t._openGLRenderWindow=r,t.context=null,r&&(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}var Or={newInstance:ht.default.newInstance(wr,"vtkOpenGLVertexArrayObject"),extend:wr},Ir={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};var Ar={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function Rr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ar,r),ht.default.obj(e,t),t.shaderSourceTime={},ht.default.obj(t.shaderSourceTime),t.attributeUpdateTime={},ht.default.obj(t.attributeUpdateTime),ht.default.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),t.program=Sr.newInstance(),t.VAO=Or.newInstance(),t.CABO=mr.newInstance(),function(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=function(e){t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=function(e){t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=function(r,n,a,o){if(t.CABO.getElementCount()){var i=e.getOpenGLMode(a),s=e.haveWideLines(r,n),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&&l.depthMask(!1),i===l.LINES&&s?(e.updateShaders(r,n,o),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(n.getProperty().getLineWidth()))):(l.lineWidth(n.getProperty().getLineWidth()),e.updateShaders(r,n,o),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));var u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&&l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=function(e){if(t.pointPicking)return t.context.POINTS;var r=t.primitiveType;return e===ur.hX.POINTS||r===Ir.Points?t.context.POINTS:e===ur.hX.WIREFRAME||r===Ir.Lines||r===Ir.TrisEdges||r===Ir.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=function(e,r){return r.getProperty().getLineWidth()>1&&!(t.CABO.getOpenGLRenderWindow()&&t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=r.getProperty().getLineWidth())},e.getNeedToRebuildShaders=function(t,r,n){return!!(n.getNeedToRebuildShaders(e,t,r)||0===e.getProgram()||e.getShaderSourceTime().getMTime()<n.getMTime()||e.getShaderSourceTime().getMTime()<r.getMTime())},e.updateShaders=function(r,n,a){if(e.getNeedToRebuildShaders(r,n,a)){var o={Vertex:null,Fragment:null,Geometry:null};a.buildShaders(o,r,n);var i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);i!==e.getProgram()&&(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),a.setMapperShaderParameters(e,r,n),a.setPropertyShaderParameters(e,r,n),a.setCameraShaderParameters(e,r,n),a.setLightingShaderParameters(e,r,n),a.invokeShaderCallbacks(e,r,n)},e.setMapperShaderParameters=function(r,n,a){if(e.haveWideLines(r,n)){e.getProgram().setUniform2f("viewportSize",a.usize,a.vsize);var o=parseFloat(n.getProperty().getLineWidth()),i=o/2;e.getProgram().setUniformf("lineWidthStepSize",o/Math.ceil(o)),e.getProgram().setUniformf("halfLineWidth",i)}t.primitiveType===Ir.Points||n.getProperty().getRepresentation()===ur.hX.POINTS?e.getProgram().setUniformf("pointSize",n.getProperty().getPointSize()):t.pointPicking&&e.getProgram().setUniformf("pointSize",e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=function(r,n,a){var o=r.Vertex;o=Sr.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,e.getOpenGLMode(a.getProperty().getRepresentation())===t.context.LINES&&e.haveWideLines(n,a)&&(o=Sr.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),r.Vertex=o},e.getPointPickingPrimitiveSize=function(){return t.primitiveType===Ir.Points?2:t.primitiveType===Ir.Lines?4:6}}(e,t)}var Er={newInstance:ht.default.newInstance(Rr),extend:Rr,primTypes:Ir},Mr=r(59474),Dr={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Vr={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Lr={Wrap:Dr,Filter:Vr},_r=new Float32Array(1),Nr=new Int32Array(_r.buffer);var Br={fromHalf:function(e){var t=(32768&e)>>15,r=(31744&e)>>10,n=1023&e;return 0===r?(t?-1:1)*Math.pow(2,-14)*(n/Math.pow(2,10)):31===r?n?NaN:1/0*(t?-1:1):(t?-1:1)*Math.pow(2,r-15)*(1+n/Math.pow(2,10))},toHalf:function(e){_r[0]=e;var t=Nr[0],r=t>>16&32768,n=t>>12&2047,a=t>>23&255;return a<103?r:a>142?(r|=31744,r|=(255===a?0:1)&&8388607&t):a<113?r|=((n|=2048)>>114-a)+(n>>113-a&1):(r|=a-112<<10|n>>1,r+=1&n)}};function Fr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Ur=Lr.Wrap,kr=Lr.Filter,Gr=re.ZP.VtkDataTypes,Wr=ht.eR,zr=ht.E0,jr=ht.t7,Hr=Br.toHalf;function Kr(e,t){function r(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=[],o=t.width*t.height*t.components;if(n&&(o*=t.depth),e!==Gr.FLOAT&&t.openGLDataType===t.context.FLOAT)for(var i=0;i<r.length;i++)if(r[i]){var s=r[i].length>o?r[i].subarray(0,o):r[i];a.push(new Float32Array(s))}else a.push(null);if(e!==Gr.UNSIGNED_CHAR&&t.openGLDataType===t.context.UNSIGNED_BYTE)for(var l=0;l<r.length;l++)if(r[l]){var c=r[l].length>o?r[l].subarray(0,o):r[l];a.push(new Uint8Array(c))}else a.push(null);var u=!1;if(t._openGLRenderWindow.getWebgl2())u=t.openGLDataType===t.context.HALF_FLOAT;else{var d=t.context.getExtension("OES_texture_half_float");u=d&&t.openGLDataType===d.HALF_FLOAT_OES}if(u)for(var f=0;f<r.length;f++)if(r[f]){for(var p=new Uint16Array(o),g=r[f],m=0;m<o;m++)p[m]=Hr(g[m]);a.push(p)}else a.push(null);if(0===a.length)for(var h=0;h<r.length;h++)a.push(r[h]);return a}function n(e){if(t._openGLRenderWindow.getWebgl2())return e;var r=[],n=t.width,a=t.height,o=t.components;if(e&&(!(0,Mr.Q)(n)||!(0,Mr.Q)(a)))for(var i=t.context.getExtension("OES_texture_half_float"),s=(0,Mr.M)(n),l=(0,Mr.M)(a),c=s*l*t.components,u=0;u<e.length;u++)if(null!==e[u]){var d=null,f=a/l,p=n/s,g=!1;t.openGLDataType===t.context.FLOAT?d=new Float32Array(c):i&&t.openGLDataType===i.HALF_FLOAT_OES?(d=new Uint16Array(c),g=!0):d=new Uint8Array(c);for(var m=0;m<l;m++){var h=m*s*o,v=m*f,y=Math.floor(v),b=Math.ceil(v);b>=a&&(b=a-1);var T=v-y,C=1-T;y=y*n*o,b=b*n*o;for(var x=0;x<s;x++){var S=x*o,P=x*p,w=Math.floor(P),O=Math.ceil(P);O>=n&&(O=n-1);var I=P-w;w*=o,O*=o;for(var A=0;A<o;A++)d[h+S+A]=g?Br.toHalf(Br.fromHalf(e[u][y+w+A])*C*(1-I)+Br.fromHalf(e[u][y+O+A])*C*I+Br.fromHalf(e[u][b+w+A])*T*(1-I)+Br.fromHalf(e[u][b+O+A])*T*I):e[u][y+w+A]*C*(1-I)+e[u][y+O+A]*C*I+e[u][b+w+A]*T*(1-I)+e[u][b+O+A]*T*I}}r.push(d),t.width=s,t.height=l}else r.push(null);if(0===r.length)for(var R=0;R<e.length;R++)r.push(e[R]);return r}function a(e){var r;return!!t._openGLRenderWindow&&(!(t.resizable||null!==(r=t.renderable)&&void 0!==r&&r.getResizable())&&(!!t._openGLRenderWindow.getWebgl2()&&(!(t._openGLRenderWindow.getGLInformations().RENDERER.value.match(/WebKit/gi)&&navigator.platform.match(/Mac/gi)&&t.oglNorm16Ext)||e!==Gr.UNSIGNED_SHORT&&e!==Gr.SHORT)))}function o(r,n){for(var a=r.getNumberOfComponents(),o=r.getDataType(),i=r.getData(),s=new Array(a),l=new Array(a),c=0;c<a;++c){var u=r.getRange(c),d=(0,Ft.Z)(u,2),f=d[0],p=d[1];s[c]=f,l[c]=p}var g=function(e,t,r){for(var n=new Array(r),a=new Array(r),o=0;o<r;++o)n[o]=e[o],a[o]=t[o]-e[o]||1;return{scale:a,offset:n}}(s,l,a);return function(r,n,a,o){e.getOpenGLDataType(r);var i=!1;if(t._openGLRenderWindow.getWebgl2())i=t.openGLDataType===t.context.HALF_FLOAT;else{var s=t.context.getExtension("OES_texture_half_float");i=s&&t.openGLDataType===s.HALF_FLOAT_OES}var l=i&&(function(e,t){for(var r=0;r<e.length;r++){var n=e[r],a=t[r]+n;if(n<-2048||n>2048||a<-2048||a>2048)return!1}return!0}(n,a)||o);t.useHalfFloat=l}(o,g.offset,g.scale,n),t.useHalfFloat||e.getOpenGLDataType(o,!0),{numComps:a,dataType:o,data:i,scaleOffsets:g}}t.classHierarchy.push("vtkOpenGLTexture"),e.render=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(r?t._openGLRenderWindow=r:(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent()),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(kr.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(kr.LINEAR),e.setMagnificationFilter(kr.LINEAR)):(e.setMinificationFilter(kr.NEAREST),e.setMagnificationFilter(kr.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR(Ur.REPEAT),e.setWrapS(Ur.REPEAT),e.setWrapT(Ur.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){if(null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(kr.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(kr.LINEAR_MIPMAP_LINEAR));var n=t.renderable.getCanvas();e.create2DFromRaw(n.width,n.height,4,Gr.UNSIGNED_CHAR,n,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){var a=t.renderable.getJsImageData();t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(kr.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw(a.width,a.height,4,Gr.UNSIGNED_CHAR,a.data,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}var o=t.renderable.getInputData(0);if(o&&o.getPointData().getScalars()){for(var i=o.getExtent(),s=o.getPointData().getScalars(),l=[],c=0;c<t.renderable.getNumberOfInputPorts();++c){var u=t.renderable.getInputData(c),d=u?u.getPointData().getScalars().getData():null;d&&l.push(d)}t.renderable.getInterpolate()&&4===s.getNumberOfComponents()&&(t.generateMipmap=!0,e.setMinificationFilter(kr.LINEAR_MIPMAP_LINEAR)),l.length%6==0?e.createCubeFromRaw(i[1]-i[0]+1,i[3]-i[2]+1,s.getNumberOfComponents(),s.getDataType(),l):e.create2DFromRaw(i[1]-i[0]+1,i[3]-i[2]+1,s.getNumberOfComponents(),s.getDataType(),s.getData()),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}}t.handle&&e.activate()},e.destroyTexture=function(){e.deactivate(),t.context&&t.handle&&t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=function(){t.handle||(t.handle=t.context.createTexture(),t.target&&(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=function(){return t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1},e.activate=function(){t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=function(){t._openGLRenderWindow&&t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=function(r){r&&t.handle&&(r.activateTexture(e),r.deactivateTexture(e),t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0),t.shaderProgram&&(t.shaderProgram.releaseGraphicsResources(r),t.shaderProgram=null)},e.bind=function(){t.context.bindTexture(t.target,t.handle),t.autoParameters&&e.getMTime()>t.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=function(){var e=!1;if(t.context&&t.handle){var r=0;if(t.target===t.context.TEXTURE_2D)r=t.context.TEXTURE_BINDING_2D;else jr("impossible case");e=t.context.getIntegerv(r)===t.handle}return e},e.sendParameters=function(){t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=function(r,n){return t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(r,n)),t.internalFormat||Wr("Unable to find suitable internal format for T=".concat(r," NC= ").concat(n)),t.internalFormat},e.getDefaultInternalFormat=function(e,r){var n;return(n=t._openGLRenderWindow.getDefaultTextureInternalFormat(e,r,t.oglNorm16Ext,t.useHalfFloat))||n||(Wr("Unsupported internal texture type!"),Wr("Unable to find suitable internal format for T=".concat(e," NC= ").concat(r))),n},e.setInternalFormat=function(r){t._forceInternalFormat=!0,r!==t.internalFormat&&(t.internalFormat=r,e.modified())},e.getFormat=function(r,n){return t.format=e.getDefaultFormat(r,n),t.format},e.getDefaultFormat=function(e,r){if(t._openGLRenderWindow.getWebgl2())switch(r){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(r){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=function(){t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=function(e){if(t._openGLRenderWindow.getWebgl2())switch(e){case Gr.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case t.oglNorm16Ext&&!t.useHalfFloat&&Gr.SHORT:return t.context.SHORT;case t.oglNorm16Ext&&!t.useHalfFloat&&Gr.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case t.useHalfFloat&&Gr.SHORT:case t.useHalfFloat&&Gr.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Gr.FLOAT:case Gr.VOID:default:return t.context.FLOAT}switch(e){case Gr.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Gr.FLOAT:case Gr.VOID:default:if(t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear"))return t.context.FLOAT;var r=t.context.getExtension("OES_texture_half_float");return r&&t.context.getExtension("OES_texture_half_float_linear")?r.HALF_FLOAT_OES:t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(r){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.openGLDataType&&!n||(t.openGLDataType=e.getDefaultDataType(r)),t.openGLDataType},e.getShiftAndScale=function(){var e=0,r=1;switch(t.openGLDataType){case t.context.BYTE:e=(r=127.5)-128;break;case t.context.UNSIGNED_BYTE:r=255,e=0;break;case t.context.SHORT:e=(r=32767.5)-32768;break;case t.context.UNSIGNED_SHORT:r=65536,e=0;break;case t.context.INT:e=(r=2147483647.5)-2147483648;break;case t.context.UNSIGNED_INT:r=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:r}},e.getOpenGLFilterMode=function(e){switch(e){case kr.NEAREST:return t.context.NEAREST;case kr.LINEAR:return t.context.LINEAR;case kr.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case kr.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case kr.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case kr.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=function(e){switch(e){case Ur.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case Ur.REPEAT:return t.context.REPEAT;case Ur.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.create2DFromRaw=function(o,i,s,l,c){var u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e.getOpenGLDataType(l,!0),e.getInternalFormat(l,s),e.getFormat(l,s),!t.internalFormat||!t.format||!t.openGLDataType)return zr("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=s,t.width=o,t.height=i,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var d=n(r(l,[c]));return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,u),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),a(l)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=d[0]&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,d[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,d[0]),t.generateMipmap&&t.context.generateMipmap(t.target),u&&t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),e.deactivate(),!0},e.createCubeFromRaw=function(o,i,s,l,c){if(e.getOpenGLDataType(l),e.getInternalFormat(l,s),e.getFormat(l,s),!t.internalFormat||!t.format||!t.openGLDataType)return zr("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=s,t.width=o,t.height=i,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=c.length/6-1,e.createTexture(),e.bind();for(var u=n(r(l,c)),d=[],f=t.width,p=t.height,g=0;g<u.length;g++){g%6==0&&0!==g&&(f/=2,p/=2),d[g]=(0,ht.B5)(l,p*f*t.components);for(var m=0;m<p;++m){var h=m*f*t.components,v=(p-m-1)*f*t.components;d[g].set(u[g].slice(v,v+f*t.components),h)}}t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),a(l)&&t.context.texStorage2D(t.target,6,t.internalFormat,t.width,t.height);for(var y=0;y<6;y++)for(var b=0,T=t.width,C=t.height;T>=1&&C>=1;){var x=null;b<=t.maxLevel&&(x=d[6*b+y]),a(l)?null!=x&&t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,0,0,T,C,t.format,t.openGLDataType,x):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,t.internalFormat,T,C,0,t.format,t.openGLDataType,x),b++,T/=2,C/=2}return e.deactivate(),!0},e.createDepthFromRaw=function(r,n,o,i){return e.getOpenGLDataType(o),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?o===Gr.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=r,t.height=n,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),a(o)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(zr("Failed to determine texture parameters."),!1)},e.create2DFromImage=function(r){if(e.getOpenGLDataType(Gr.UNSIGNED_CHAR),e.getInternalFormat(Gr.UNSIGNED_CHAR,4),e.getFormat(Gr.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return zr("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);var n=!(t._openGLRenderWindow.getWebgl2()||(0,Mr.Q)(r.width)&&(0,Mr.Q)(r.height)),o=document.createElement("canvas");o.width=n?(0,Mr.M)(r.width):r.width,o.height=n?(0,Mr.M)(r.height):r.height,t.width=o.width,t.height=o.height;var i=o.getContext("2d");i.translate(0,o.height),i.scale(1,-1),i.drawImage(r,0,0,r.width,r.height,0,0,o.width,o.height);var s=o;return a(Gr.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=s&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,s)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create2DFilterableFromRaw=function(t,r,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return e.create2DFilterableFromDataArray(t,r,re.ZP.newInstance({numberOfComponents:n,dataType:a,values:o}),i)},e.create2DFilterableFromDataArray=function(t,r,n){var a=o(n,arguments.length>3&&void 0!==arguments[3]&&arguments[3]),i=a.numComps,s=a.dataType,l=a.data;e.create2DFromRaw(t,r,i,s,l)},e.create3DFromRaw=function(o,i,s,l,c,u){if(e.getOpenGLDataType(c),e.getInternalFormat(c,l),e.getFormat(c,l),!t.internalFormat||!t.format||!t.openGLDataType)return zr("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_3D,t.components=l,t.width=o,t.height=i,t.depth=s,t.numberOfDimensions=3,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var d=n(r(c,[u],!0));return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),a(c)?(t.context.texStorage3D(t.target,1,t.internalFormat,t.width,t.height,t.depth),null!=d[0]&&t.context.texSubImage3D(t.target,0,0,0,0,t.width,t.height,t.depth,t.format,t.openGLDataType,d[0])):t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,d[0]),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create3DFilterableFromRaw=function(t,r,n,a,o,i){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6];return e.create3DFilterableFromDataArray(t,r,n,re.ZP.newInstance({numberOfComponents:a,dataType:o,values:i}),s)},e.create3DFilterableFromDataArray=function(r,n,i,s){for(var l=o(s,arguments.length>4&&void 0!==arguments[4]&&arguments[4]),c=l.numComps,u=l.dataType,d=l.data,f=l.scaleOffsets,p=r*n*i,g=[],m=[],h=0;h<c;++h)g[h]=0,m[h]=1;t.volumeInfo={scale:m,offset:g,dataComputedScale:f.scale,dataComputedOffset:f.offset,width:r,height:n,depth:i};var v=structuredClone(f);if(t._openGLRenderWindow.getWebgl2()){if(t.oglNorm16Ext&&!t.useHalfFloat&&u===Gr.SHORT){for(var y=0;y<c;++y)t.volumeInfo.scale[y]=32767;return e.create3DFromRaw(r,n,i,c,u,d)}if(t.oglNorm16Ext&&!t.useHalfFloat&&u===Gr.UNSIGNED_SHORT){for(var b=0;b<c;++b)t.volumeInfo.scale[b]=65535;return e.create3DFromRaw(r,n,i,c,u,d)}if(u===Gr.FLOAT||t.useHalfFloat&&(u===Gr.SHORT||u===Gr.UNSIGNED_SHORT))return e.create3DFromRaw(r,n,i,c,u,d);if(u===Gr.UNSIGNED_CHAR){for(var T=0;T<c;++T)t.volumeInfo.scale[T]=255;return e.create3DFromRaw(r,n,i,c,u,d)}var C=new Float32Array(p*c);t.volumeInfo.offset=v.offset,t.volumeInfo.scale=v.scale;for(var x=0,S=v.scale.map((function(e){return 1/e})),P=0;P<p;P++)for(var w=0;w<c;w++)C[x]=(d[x]-v.offset[w])*S[w],x++;return e.create3DFromRaw(r,n,i,c,Gr.FLOAT,C)}var O=function(e,t,r,n,a){e[t]=r},I=Gr.UNSIGNED_CHAR;if(u===Gr.UNSIGNED_CHAR)for(var A=0;A<c;++A)v.offset[A]=0,v.scale[A]=255;else t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear")?(I=Gr.FLOAT,O=function(e,t,r,n,a){e[t]=(r-n)/a}):(I=Gr.UNSIGNED_CHAR,O=function(e,t,r,n,a){e[t]=255*(r-n)/a});if(e.getOpenGLDataType(I),e.getInternalFormat(I,c),e.getFormat(I,c),!t.internalFormat||!t.format||!t.openGLDataType)return zr("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=c,t.depth=1,t.numberOfDimensions=2;var R=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);R>4096&&(I===Gr.FLOAT||c>=3)&&(R=4096);var E=1,M=1;p>R*R&&(M=E=Math.ceil(Math.sqrt(p/(R*R))));var D=Math.sqrt(p)/E;D=(0,Mr.M)(D);var V,L=Math.floor(D*E/r),_=Math.ceil(i/L),N=(0,Mr.M)(n*_/M);t.width=D,t.height=N,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=L,t.volumeInfo.yreps=_,t.volumeInfo.xstride=E,t.volumeInfo.ystride=M,t.volumeInfo.offset=v.offset,t.volumeInfo.scale=v.scale;var B=D*N*c;V=I===Gr.FLOAT?new Float32Array(B):new Uint8Array(B);for(var F=0,U=Math.floor(r/E),k=Math.floor(n/M),G=0;G<_;G++)for(var W=Math.min(L,i-G*L),z=c*(t.width-W*Math.floor(r/E)),j=0;j<k;j++){for(var H=0;H<W;H++)for(var K=c*((G*L+H)*r*n+M*j*r),Z=0;Z<U;Z++)for(var X=0;X<c;X++)O(V,F,d[K+E*Z*c+X],v.offset[X],v.scale[X]),F++;F+=z}return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),a(I)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=V&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,V)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,V),e.deactivate(),!0},e.setOpenGLRenderWindow=function(r){t._openGLRenderWindow!==r&&(e.releaseGraphicsResources(),t._openGLRenderWindow=r,t.context=null,r&&(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=function(e){return e&&e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1}}var Zr={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Ur.CLAMP_TO_EDGE,wrapT:Ur.CLAMP_TO_EDGE,wrapR:Ur.CLAMP_TO_EDGE,minificationFilter:kr.NEAREST,magnificationFilter:kr.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,useHalfFloat:!0,oglNorm16Ext:null};function Xr(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zr,r),Tt.extend(e,t,r),t.sendParametersTime={},(0,ht.j6)(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},(0,ht.j6)(t.textureBuildTime,{mtime:0}),(0,ht.t8)(e,t,["format","openGLDataType"]),(0,ht.g2)(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),(0,ht.U2)(e,t,["width","height","volumeInfo","components","handle","target"]),(0,ht.B6)(e,t,["openGLRenderWindow"]),Kr(e,t)}var qr=(0,ht.WL)(Xr,"vtkOpenGLTexture"),Yr=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Fr(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:qr,extend:Xr},Lr);wt("vtkTexture",qr);var $r=r(3969);var Qr={implementReplaceShaderCoincidentOffset:function(e,t){e.replaceShaderCoincidentOffset=function(r,n,a){var o=e.getCoincidentParameters(n,a);if(o&&(0!==o.factor||0!==o.offset)){var i=r.Fragment;i=Sr.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==o.factor?(i=Sr.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=Sr.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=Sr.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t._openGLRenderWindow.getWebgl2()&&(0!==o.factor?(i=Sr.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=Sr.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=Sr.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),r.Fragment=i}}},implementBuildShadersWithReplacements:function(e,t){e.applyShaderReplacements=function(e,t,r){var n=null;if(t&&(n=t.ShaderReplacements),n)for(var a=0;a<n.length;a++){var o=n[a];if(r&&o.replaceFirst||!r&&!o.replaceFirst){var i=o.shaderType,s=e[i],l=Sr.substitute(s,o.originalValue,o.replacementValue,o.replaceAll);e[i]=l.result}}},e.buildShaders=function(r,n,a){e.getReplacedShaderTemplate(r,n,a),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&&t.lastRenderPassShaderReplacement(r);var o=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(r,o,!0),e.replaceShaderValues(r,n,a),e.applyShaderReplacements(r,o)},e.getReplacedShaderTemplate=function(r,n,a){var o=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(r,n,a);var i=r.Vertex;if(o){var s=o.VertexShaderCode;void 0!==s&&""!==s&&(i=s)}r.Vertex=i;var l=r.Fragment;if(o){var c=o.FragmentShaderCode;void 0!==c&&""!==c&&(l=c)}r.Fragment=l;var u=r.Geometry;if(o){var d=o.GeometryShaderCode;void 0!==d&&(u=d)}r.Geometry=u}}},Jr="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkImageResliceMapperVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\n// all variables that represent positions or directions have a suffix\n// indicating the coordinate system they are in. The possible values are\n// MC - Model coordinates\n// WC - World coordinates\n// VC - View coordinates\n// DC - Display coordinates\n// TC - Texture coordinates\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\nvoid main()\n{\n //VTK::PositionVC::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Picking::Impl\n}\n",en="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkImageResliceMapperFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// Template for the gpu image mapper fragment shader\n\n// VC position of this fragment\n//VTK::PositionVC::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// handle coincident offsets\n//VTK::Coincident::Dec\n\n//VTK::ZBuffer::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\nvoid main()\n{\n // VC position of this fragment. This should not branch/return/discard.\n //VTK::PositionVC::Impl\n\n // Place any calls that require uniform flow (e.g. dFdx) here.\n //VTK::UniformFlow::Impl\n\n // Set gl_FragDepth here (gl_FragCoord.z by default)\n //VTK::Depth::Impl\n\n // Early depth peeling abort:\n //VTK::DepthPeeling::PreColor\n\n //VTK::TCoord::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n\n //VTK::DepthPeeling::Impl\n\n //VTK::Picking::Impl\n\n // handle coincident offsets\n //VTK::Coincident::Impl\n\n //VTK::ZBuffer::Impl\n\n //VTK::RenderPassFragmentShader::Impl\n}\n",tn={NEAREST:0,LINEAR:1},rn={InterpolationType:tn},nn=r(89262),an=ht.E0;function on(e,t,r){if(t.apply(e)){var n=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(n,"-").concat(r)}return"0"}function sn(e,t,r){return t.identity(r),e.reduce((function(e,r,n){return 0===n?r?t.copy(e,r):t.identity(e):r?t.multiply(e,e,r):e}),r)}function ln(e,t){t.classHierarchy.push("vtkOpenGLImageResliceMapper"),e.buildPass=function(r){if(r){t.currentRenderPass=null,t._openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer");var n=t._openGLRenderer.getRenderable();t._openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera()),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture||(t.openGLTexture=Yr.newInstance()),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.translucentPass=function(r,n){r&&(t.currentRenderPass=n,e.render())},e.zBufferPass=function(r){r&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=function(t){return e.zBufferPass(t)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,r){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var r=t._openGLImageSlice.getRenderable(),n=t._openGLRenderer.getRenderable();e.renderPiece(n,r)},e.renderPiece=function(r,n){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),t.currentInput?(e.updateResliceGeometry(),e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n),e.invokeEvent({type:"EndEvent"})):an("No input!")},e.renderPieceStart=function(r,n){e.updateBufferObjects(r,n),n.getProperty().getInterpolationType()===rn.NEAREST?(t.openGLTexture.setMinificationFilter(Vr.NEAREST),t.openGLTexture.setMagnificationFilter(Vr.NEAREST),t.colorTexture.setMinificationFilter(Vr.NEAREST),t.colorTexture.setMagnificationFilter(Vr.NEAREST),t.pwfTexture.setMinificationFilter(Vr.NEAREST),t.pwfTexture.setMagnificationFilter(Vr.NEAREST)):(t.openGLTexture.setMinificationFilter(Vr.LINEAR),t.openGLTexture.setMagnificationFilter(Vr.LINEAR),t.colorTexture.setMinificationFilter(Vr.LINEAR),t.colorTexture.setMagnificationFilter(Vr.LINEAR),t.pwfTexture.setMinificationFilter(Vr.LINEAR),t.pwfTexture.setMagnificationFilter(Vr.LINEAR)),t.lastBoundBO=null},e.renderPieceDraw=function(r,n){var a=t.context;t.openGLTexture.activate(),t.colorTexture.activate(),t.pwfTexture.activate(),e.updateShaders(t.tris,r,n),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate(),t.colorTexture.deactivate(),t.pwfTexture.deactivate()},e.renderPieceFinish=function(e,t){},e.updateBufferObjects=function(t,r){e.getNeedToRebuildBufferObjects(t,r)&&e.buildBufferObjects(t,r)},e.getNeedToRebuildBufferObjects=function(r,n){return t.VBOBuildTime.getMTime()<e.getMTime()||t.VBOBuildTime.getMTime()<n.getMTime()||t.VBOBuildTime.getMTime()<t.renderable.getMTime()||t.VBOBuildTime.getMTime()<n.getProperty().getMTime()||t.VBOBuildTime.getMTime()<t.currentInput.getMTime()||t.VBOBuildTime.getMTime()<t.resliceGeom.getMTime()},e.buildBufferObjects=function(e,r){var n,a=t.currentInput;if(a){var o=null===(n=a.getPointData())||void 0===n?void 0:n.getScalars();if(o){var i=o.getNumberOfComponents();if(!t._externalOpenGLTexture){var s="".concat(a.getMTime(),"A").concat(o.getMTime());if(t.openGLTextureString!==s){var l=a.getDimensions();t.openGLTexture.getOglNorm16Ext(t.context.getExtension("EXT_texture_norm16")),t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.resetFormatAndType(),t.openGLTexture.create3DFilterableFromDataArray(l[0],l[1],l[2],o),t.openGLTextureString=s}}var c=r.getProperty(),u=c.getIndependentComponents(),d=u?i:1,f=u?2*d:1,p=on(c,c.getRGBTransferFunction,d);if(t.colorTextureString!==p){var g=1024,m=new Uint8Array(g*f*3),h=c.getRGBTransferFunction();if(h){for(var v=new Float32Array(3072),y=0;y<d;y++){var b=(h=c.getRGBTransferFunction(y)).getRange();if(h.getTable(b[0],b[1],g,v,1),u)for(var T=0;T<3072;T++)m[y*g*6+T]=255*v[T],m[y*g*6+T+3072]=255*v[T];else for(var C=0;C<3072;C++)m[y*g*6+C]=255*v[C]}t.colorTexture.releaseGraphicsResources(t._openGLRenderWindow),t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw(g,f,3,nn.Tu.UNSIGNED_CHAR,m)}else{for(var x=0;x<3072;++x)m[x]=255*x/3069,m[x+1]=255*x/3069,m[x+2]=255*x/3069;t.colorTexture.create2DFromRaw(g,1,3,nn.Tu.UNSIGNED_CHAR,m)}t.colorTextureString=p}var S=on(c,c.getPiecewiseFunction,d);if(t.pwfTextureString!==S){var P=1024,w=P*f,O=new Uint8Array(w),I=c.getPiecewiseFunction();if(t.pwfTexture.releaseGraphicsResources(t._openGLRenderWindow),t.pwfTexture.resetFormatAndType(),I){for(var A=new Float32Array(w),R=new Float32Array(P),E=0;E<d;++E)if(null===(I=c.getPiecewiseFunction(E)))A.fill(1);else{var M=I.getRange();if(I.getTable(M[0],M[1],P,R,1),u)for(var D=0;D<P;D++)A[E*P*2+D]=R[D],A[E*P*2+D+P]=R[D];else for(var V=0;V<P;V++)A[E*P*2+V]=R[V]}t.pwfTexture.create2DFromRaw(P,f,1,nn.Tu.FLOAT,A)}else O.fill(255),t.pwfTexture.create2DFromRaw(P,1,1,nn.Tu.UNSIGNED_CHAR,O);t.pwfTextureString=S}var L="".concat(t.resliceGeom.getMTime(),"A").concat(t.renderable.getSlabThickness());if(!t.tris.getCABO().getElementCount()||t.VBOBuildString!==L){var _=re.ZP.newInstance({numberOfComponents:3,values:t.resliceGeom.getPoints().getData()});_.setName("points");var N=re.ZP.newInstance({numberOfComponents:1,values:t.resliceGeom.getPolys().getData()}),B={points:_,cellOffset:0};if(t.renderable.getSlabThickness()>0){var F=t.resliceGeom.getPointData().getNormals();F?B.normals=F:an("Slab mode requested without normals")}t.tris.getCABO().createVBO(N,"polys",ur.hX.SURFACE,B)}t.VBOBuildString=L,t.VBOBuildTime.modified()}}},e.updateShaders=function(r,n,a){if(t.lastBoundBO=r,e.getNeedToRebuildShaders(r,n,a)){var o={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(o,n,a);var i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);i!==r.getProgram()&&(r.setProgram(i),r.getVAO().releaseGraphicsResources()),r.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(r.getProgram());r.getVAO().bind(),e.setMapperShaderParameters(r,n,a),e.setCameraShaderParameters(r,n,a),e.setPropertyShaderParameters(r,n,a)},e.setMapperShaderParameters=function(r,n,a){var o=r.getProgram();if(r.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>r.getAttributeUpdateTime().getMTime()||r.getShaderSourceTime().getMTime()>r.getAttributeUpdateTime().getMTime())){o.isUniformUsed("texture1")&&o.setUniformi("texture1",t.openGLTexture.getTextureUnit()),o.isAttributeUsed("vertexWC")&&(r.getVAO().addAttributeArray(o,r.getCABO(),"vertexWC",r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||an("Error setting vertexWC in shader VAO.")),o.isAttributeUsed("normalWC")&&(r.getVAO().addAttributeArray(o,r.getCABO(),"normalWC",r.getCABO().getNormalOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||an("Error setting normalWC in shader VAO.")),o.isUniformUsed("slabThickness")&&o.setUniformf("slabThickness",t.renderable.getSlabThickness()),o.isUniformUsed("spacing")&&o.setUniform3fv("spacing",t.currentInput.getSpacing()),o.isUniformUsed("slabType")&&o.setUniformi("slabType",t.renderable.getSlabType()),o.isUniformUsed("slabType")&&o.setUniformi("slabType",t.renderable.getSlabType()),o.isUniformUsed("slabTrapezoid")&&o.setUniformi("slabTrapezoid",t.renderable.getSlabTrapezoidIntegration());var i=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null;if(o.isUniformUsed("WCTCMatrix")){var s=t.currentInput;ot._E.identity(t.tmpMat4);var l=s.getBounds(),c=[l[1]-l[0],l[3]-l[2],l[5]-l[4]],u=[l[0],l[2],l[4]];ot._E.fromRotationTranslationScale(t.tmpMat4,[0,0,0,1],u,c),ot._E.invert(t.tmpMat4,t.tmpMat4),i&&ot._E.multiply(t.tmpMat4,t.tmpMat4,i),o.setUniformMatrix("WCTCMatrix",t.tmpMat4)}r.getAttributeUpdateTime().modified()}if(t.haveSeenDepthRequest&&r.getProgram().setUniformi("depthRequest",t.renderDepth?1:0),r.getProgram().isUniformUsed("coffset")){var d=e.getCoincidentParameters(n,a);r.getProgram().setUniformf("coffset",d.offset),r.getProgram().isUniformUsed("cfactor")&&r.getProgram().setUniformf("cfactor",d.factor)}},e.setCameraShaderParameters=function(e,r,n){var a=t._openGLCamera.getKeyMatrices(r),o=t._openGLImageSlice.getKeyMatrices(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=e.getProgram();s.isUniformUsed("MCPCMatrix")&&(ot._E.identity(t.tmpMat4),s.setUniformMatrix("MCPCMatrix",sn([a.wcpc,o.mcwc,i],ot._E,t.tmpMat4))),s.isUniformUsed("MCVCMatrix")&&(ot._E.identity(t.tmpMat4),s.setUniformMatrix("MCVCMatrix",sn([a.wcvc,o.mcwc,i],ot._E,t.tmpMat4)))},e.setPropertyShaderParameters=function(e,r,n){var a=e.getProgram(),o=n.getProperty(),i=o.getOpacity();a.setUniformf("opacity",i);var s=t.openGLTexture.getComponents(),l=o.getIndependentComponents();if(l)for(var c=0;c<s;++c)a.setUniformf("mix".concat(c),o.getComponentWeight(c));for(var u=t.openGLTexture.getVolumeInfo(),d=0;d<s;d++){var f=o.getColorWindow(),p=o.getColorLevel(),g=l?d:0,m=o.getRGBTransferFunction(g);if(m&&o.getUseLookupTableScalarRange()){var h=m.getRange();f=h[1]-h[0],p=.5*(h[1]+h[0])}var v=u.scale[d]/f,y=(u.offset[d]-p)/f+.5;a.setUniformf("cshift".concat(d),y),a.setUniformf("cscale".concat(d),v)}var b=t.colorTexture.getTextureUnit();a.setUniformi("colorTexture1",b);for(var T=0;T<s;T++){var C=1,x=0,S=l?T:0,P=o.getPiecewiseFunction(S);if(P){var w=P.getRange(),O=w[1]-w[0],I=.5*(w[0]+w[1]);C=u.scale[T]/O,x=(u.offset[T]-I)/O+.5}a.setUniformf("pwfshift".concat(T),x),a.setUniformf("pwfscale".concat(T),C)}var A=t.pwfTexture.getTextureUnit();a.setUniformi("pwfTexture1",A),a.setUniform4fv("backgroundColor",t.renderable.getBackgroundColor())},e.getNeedToRebuildShaders=function(e,r,n){var a=t.openGLTexture.getComponents(),o=n.getProperty().getIndependentComponents(),i=t.renderable.getSlabThickness(),s=t.renderable.getSlabType(),l=t.renderable.getSlabTrapezoidIntegration(),c=!1;return(!t.currentRenderPass&&t.lastRenderPassShaderReplacement||t.currentRenderPass&&t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&&(c=!0),!(!c&&t.lastHaveSeenDepthRequest===t.haveSeenDepthRequest&&0!==e.getProgram()&&t.lastTextureComponents===a&&t.lastIndependentComponents===o&&t.lastSlabThickness===i&&t.lastSlabType===s&&t.lastSlabTrapezoidIntegration===l)&&(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=a,t.lastIndependentComponents=o,t.lastSlabThickness=i,t.lastSlabType=s,t.lastSlabTrapezoidIntegration=l,!0)},e.getShaderTemplate=function(e,t,r){e.Vertex=Jr,e.Fragment=en,e.Geometry=""},e.replaceShaderValues=function(r,n,a){if(e.replaceShaderTCoord(r,n,a),e.replaceShaderPositionVC(r,n,a),t.haveSeenDepthRequest){var o=r.Fragment;o=Sr.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=Sr.substitute(o,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,r.Fragment=o}e.replaceShaderCoincidentOffset(r,n,a)},e.replaceShaderTCoord=function(e,r,n){var a=e.Vertex,o=e.Geometry,i=e.Fragment,s=t.renderable.getSlabThickness();a=Sr.substitute(a,"//VTK::TCoord::Dec",["uniform mat4 WCTCMatrix;","out vec3 fragTexCoord;"]).result;a=Sr.substitute(a,"//VTK::TCoord::Impl",["fragTexCoord = (WCTCMatrix * vertexWC).xyz;"]).result;var l=t.openGLTexture.getComponents(),c=n.getProperty().getIndependentComponents(),u=["in vec3 fragTexCoord;","uniform highp sampler3D texture1;","uniform mat4 WCTCMatrix;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;","uniform vec4 backgroundColor;"];if(c){for(var d=1;d<l;d++)u=u.concat(["uniform float cshift".concat(d,";"),"uniform float cscale".concat(d,";"),"uniform float pwfshift".concat(d,";"),"uniform float pwfscale".concat(d,";")]);switch(l){case 1:u=u.concat(["uniform float mix0;","#define height0 0.5"]);break;case 2:u=u.concat(["uniform float mix0;","uniform float mix1;","#define height0 0.25","#define height1 0.75"]);break;case 3:u=u.concat(["uniform float mix0;","uniform float mix1;","uniform float mix2;","#define height0 0.17","#define height1 0.5","#define height2 0.83"]);break;case 4:u=u.concat(["uniform float mix0;","uniform float mix1;","uniform float mix2;","uniform float mix3;","#define height0 0.125","#define height1 0.375","#define height2 0.625","#define height3 0.875"]);break;default:an("Unsupported number of independent coordinates.")}}s>0&&(u=(u=u.concat(["uniform vec3 spacing;","uniform float slabThickness;","uniform int slabType;","uniform int slabTrapezoid;"])).concat(["vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)","{"," vec4 retVal = vec4(1.0);"," if (slabType == 0) // min"," {"," retVal = min(currVal, valToComp);"," }"," else if (slabType == 1) // max"," {"," retVal = max(currVal, valToComp);"," }"," else if (slabType == 3) // sum"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," else // mean"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," return retVal;","}"])),i=Sr.substitute(i,"//VTK::TCoord::Dec",u).result;var f=["if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))","{"," // set the background color and exit"," gl_FragData[0] = backgroundColor;"," return;","}","vec4 tvalue = texture(texture1, fragTexCoord);"];if(s>0&&(f=f.concat(["// Get the first and last samples","int numSlices = 1;","vec3 normalxspacing = normalWCVSOutput * spacing * 0.5;","float distTraveled = length(normalxspacing);","int trapezoid = 0;","while (distTraveled < slabThickness * 0.5)","{"," distTraveled += length(normalxspacing);"," float fnumSlices = float(numSlices);"," if (distTraveled > slabThickness * 0.5)"," {"," // Before stepping outside the slab, sample at the boundaries"," normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;"," trapezoid = slabTrapezoid;"," }"," vec3 fragTCoordNeg = (WCTCMatrix * vec4(vertexWCVSOutput.xyz - fnumSlices * normalxspacing, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordNeg);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }"," vec3 fragTCoordPos = (WCTCMatrix * vec4(vertexWCVSOutput.xyz + fnumSlices * normalxspacing, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordPos);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }","}","// Finally, if slab type is *mean*, divide the sum by the numSlices","if (slabType == 2)","{"," tvalue = tvalue / float(numSlices);","}"])),c){for(var p=["r","g","b","a"],g=0;g<l;++g)f=f.concat(["vec3 tcolor".concat(g," = mix").concat(g," * texture2D(colorTexture1, vec2(tvalue.").concat(p[g]," * cscale").concat(g," + cshift").concat(g,", height").concat(g,")).rgb;"),"float compWeight".concat(g," = mix").concat(g," * texture2D(pwfTexture1, vec2(tvalue.").concat(p[g]," * pwfscale").concat(g," + pwfshift").concat(g,", height").concat(g,")).r;")]);switch(l){case 1:f=f.concat(["gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);"]);break;case 2:f=f.concat(["float weightSum = compWeight0 + compWeight1;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);"]);break;case 3:f=f.concat(["float weightSum = compWeight0 + compWeight1 + compWeight2;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);"]);break;case 4:f=f.concat(["float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);"]);break;default:an("Unsupported number of independent coordinates.")}}else switch(l){case 1:f=f.concat(["// Dependent components","float intensity = tvalue.r;","vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;","float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;","gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);"]);break;case 2:f=f.concat(["float intensity = tvalue.r*cscale0 + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);"]);break;case 3:f=f.concat(["vec4 tcolor = cscale0*tvalue + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);"]);break;default:f=f.concat(["vec4 tcolor = cscale0*tvalue + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);"])}i=Sr.substitute(i,"//VTK::TCoord::Impl",f).result,e.Vertex=a,e.Fragment=i,e.Geometry=o},e.replaceShaderPositionVC=function(r,n,a){var o=r.Vertex,i=r.Geometry,s=r.Fragment,l=t.renderable.getSlabThickness(),c=["attribute vec4 vertexWC;"];c=c.concat(["//".concat(e.getMTime()).concat(t.resliceGeomUpdateString)]),l>0&&(c=c.concat(["attribute vec3 normalWC;","varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),o=Sr.substitute(o,"//VTK::PositionVC::Dec",c).result;var u=["gl_Position = MCPCMatrix * vertexWC;"];l>0&&(u=u.concat(["normalWCVSOutput = normalWC;","vertexWCVSOutput = vertexWC;"])),o=Sr.substitute(o,"//VTK::PositionVC::Impl",u).result,o=Sr.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result;var d=[];l>0&&(d=d.concat(["varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),s=Sr.substitute(s,"//VTK::PositionVC::Dec",d).result,r.Vertex=o,r.Geometry=i,r.Fragment=s},e.updateResliceGeometry=function(){var e="",r=t.currentInput,n=null==r?void 0:r.getBounds(),a=!0,o=2;if(t.renderable.getSlicePolyData())e=e.concat("PolyData".concat(t.renderable.getSlicePolyData().getMTime()));else if(t.renderable.getSlicePlane()){e=e.concat("Plane".concat(t.renderable.getSlicePlane().getMTime())),r&&(e=e.concat("Image".concat(r.getMTime())));var i=function(e){Mr.f.normalize(e);for(var t=[0,0,0],r=0;r<3;++r){ot.R3.zero(t),t[r]=1;var n=Mr.f.dot(e,t);if(n<-.999||n>.999)return[!0,r]}return[!1,2]}(t.renderable.getSlicePlane().getNormal()),s=(0,Ft.Z)(i,2);a=s[0],o=s[1]}else{var l,c=$r.ZP.newInstance();c.setNormal(0,0,1);var u=[0,1,0,1,0,1];r&&(u=n),c.setOrigin(u[0],u[2],.5*(u[5]+u[4])),t.renderable.setSlicePlane(c),e=e.concat("Plane".concat(null===(l=t.renderable.getSlicePlane())||void 0===l?void 0:l.getMTime())),r&&(e=e.concat("Image".concat(r.getMTime())))}if(!t.resliceGeom||t.resliceGeomUpdateString!==e){if(t.renderable.getSlicePolyData())t.resliceGeom=t.renderable.getSlicePolyData();else if(t.renderable.getSlicePlane()){var d=r?n:[0,1,0,1,0,1];if(a){for(var f=new Float32Array(12),p=t.renderable.getSlicePlane().getOrigin(),g=[(o+1)%3,(o+2)%3].sort(),m=0,h=0;h<2;++h)for(var v=0;v<2;++v)f[m+o]=p[o],f[m+g[0]]=d[2*g[0]+v],f[m+g[1]]=d[2*g[1]+h],m+=3;var y=new Uint16Array(8);y[0]=3,y[1]=0,y[2]=1,y[3]=3,y[4]=3,y[5]=0,y[6]=3,y[7]=2;var b=t.renderable.getSlicePlane().getNormal();Mr.f.normalize(b);for(var T=new Float32Array(12),C=0;C<4;++C)T[3*C]=b[0],T[3*C+1]=b[1],T[3*C+2]=b[2];t.resliceGeom||(t.resliceGeom=Wt.ZP.newInstance()),t.resliceGeom.getPoints().setData(f,3),t.resliceGeom.getPolys().setData(y,1);var x=re.ZP.newInstance({numberOfComponents:3,values:T,name:"Normals"});t.resliceGeom.getPointData().setNormals(x),t.resliceGeom.modified()}else{var S=Xt.ZP.newInstance();S.setCenter(.5*(d[0]+d[1]),.5*(d[2]+d[3]),.5*(d[4]+d[5])),S.setXLength(d[1]-d[0]),S.setYLength(d[3]-d[2]),S.setZLength(d[5]-d[4]);var P=tr.newInstance();P.setInputConnection(S.getOutputPort()),P.setCutFunction(t.renderable.getSlicePlane());var w=Zt.newInstance();w.setInputConnection(P.getOutputPort()),w.update(),t.resliceGeom=w.getOutputData();var O=t.renderable.getSlicePlane().getNormal(),I=t.resliceGeom.getNumberOfPoints();Mr.f.normalize(O);for(var A=new Float32Array(3*I),R=0;R<I;++R)A[3*R]=O[0],A[3*R+1]=O[1],A[3*R+2]=O[2];var E=re.ZP.newInstance({numberOfComponents:3,values:A,name:"Normals"});t.resliceGeom.getPointData().setNormals(E)}}else an("Something went wrong.","A default slice plane should have been created in the beginning of","updateResliceGeometry.");t.resliceGeomUpdateString=e}},e.setOpenGLTexture=function(e){e&&(t.openGLTexture=e,t._externalOpenGLTexture=!0)}}var cn={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastTextureComponents:0,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,openGLTexture:null,openGLTextureString:null,colorTextureString:null,pwfTextureString:null,resliceGeom:null,resliceGeomUpdateString:null,tris:null,colorTexture:null,pwfTexture:null,_externalOpenGLTexture:!1};function un(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cn,r),Tt.extend(e,t,r),Qr.implementReplaceShaderCoincidentOffset(e,t,r),Qr.implementBuildShadersWithReplacements(e,t,r),t.tris=Er.newInstance(),t.openGLTexture=Yr.newInstance(),t.colorTexture=Yr.newInstance(),t.pwfTexture=Yr.newInstance(),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime),t.tmpMat4=ot._E.identity(new Float64Array(16)),(0,ht.U2)(e,t,["openGLTexture"]),ln(e,t)}var dn=(0,ht.WL)(un,"vtkOpenGLImageResliceMapper");wt("vtkImageResliceMapper",dn);var fn={SlicingMode:{NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5}},pn="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nattribute vec4 vertexMC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// optional normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// picking support\n//VTK::Picking::Dec\n\nvoid main()\n{\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Clip::Impl\n\n //VTK::PrimID::Impl\n\n //VTK::PositionVC::Impl\n\n //VTK::Light::Impl\n\n //VTK::Picking::Impl\n}\n",gn="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// Template for the polydata mappers fragment shader\n\nuniform int PrimitiveIDOffset;\n\n// VC position of this fragment\n//VTK::PositionVC::Dec\n\n// optional color passed in from the vertex shader, vertexColor\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// Depth Peeling Support\n//VTK::DepthPeeling::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// handle coincident offsets\n//VTK::Coincident::Dec\n\n//VTK::ZBuffer::Dec\n\nvoid main()\n{\n // VC position of this fragment. This should not branch/return/discard.\n //VTK::PositionVC::Impl\n\n // Place any calls that require uniform flow (e.g. dFdx) here.\n //VTK::UniformFlow::Impl\n\n // Set gl_FragDepth here (gl_FragCoord.z by default)\n //VTK::Depth::Impl\n\n // Early depth peeling abort:\n //VTK::DepthPeeling::PreColor\n\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Clip::Impl\n\n //VTK::Color::Impl\n\n // Generate the normal if we are not passed in one\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Light::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n\n //VTK::DepthPeeling::Impl\n\n //VTK::Picking::Impl\n\n // handle coincident offsets\n //VTK::Coincident::Impl\n\n //VTK::ZBuffer::Impl\n\n //VTK::RenderPassFragmentShader::Impl\n}\n",mn=ht.E0,hn=fn.SlicingMode;function vn(e,t,r){if(t.apply(e)){var n=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(n,"-").concat(r)}return"0"}var yn={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function bn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yn,r),Tt.extend(e,t,r),Qr.implementReplaceShaderCoincidentOffset(e,t,r),Qr.implementBuildShadersWithReplacements(e,t,r),t.tris=Er.newInstance(),t.openGLTexture=Yr.newInstance({resizable:!0}),t.colorTexture=Yr.newInstance({resizable:!0}),t.pwfTexture=Yr.newInstance({resizable:!0}),t.imagemat=ot._E.identity(new Float64Array(16)),t.imagematinv=ot._E.identity(new Float64Array(16)),(0,ht.g2)(e,t,[]),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkOpenGLImageMapper"),e.buildPass=function(r){if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow);var n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera()),t.renderable.isA("vtkImageMapper")&&t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(n.getActiveCamera())}},e.translucentPass=function(r,n){r&&(t.currentRenderPass=n,e.render())},e.zBufferPass=function(r){r&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=function(t){return e.zBufferPass(t)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,r){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var r=t.openGLImageSlice.getRenderable(),n=t._openGLRenderer.getRenderable();e.renderPiece(n,r)},e.getShaderTemplate=function(e,t,r){e.Vertex=pn,e.Fragment=gn,e.Geometry=""},e.replaceShaderValues=function(r,n,a){var o=r.Vertex,i=r.Fragment;o=Sr.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,o=Sr.substitute(o,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;var s=t.openGLTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;"];if(l){for(var u=1;u<s;u++)c=c.concat(["uniform float cshift".concat(u,";"),"uniform float cscale".concat(u,";"),"uniform float pwfshift".concat(u,";"),"uniform float pwfscale".concat(u,";")]);switch(s){case 1:c=c.concat(["uniform float mix0;","#define height0 0.5"]);break;case 2:c=c.concat(["uniform float mix0;","uniform float mix1;","#define height0 0.25","#define height1 0.75"]);break;case 3:c=c.concat(["uniform float mix0;","uniform float mix1;","uniform float mix2;","#define height0 0.17","#define height1 0.5","#define height2 0.83"]);break;case 4:c=c.concat(["uniform float mix0;","uniform float mix1;","uniform float mix2;","uniform float mix3;","#define height0 0.125","#define height1 0.375","#define height2 0.625","#define height3 0.875"]);break;default:mn("Unsupported number of independent coordinates.")}}if(i=Sr.substitute(i,"//VTK::TCoord::Dec",c).result,l){for(var d=["r","g","b","a"],f=["vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);"],p=0;p<s;p++)f=f.concat(["vec3 tcolor".concat(p," = mix").concat(p," * texture2D(colorTexture1, vec2(tvalue.").concat(d[p]," * cscale").concat(p," + cshift").concat(p,", height").concat(p,")).rgb;"),"float compWeight".concat(p," = mix").concat(p," * texture2D(pwfTexture1, vec2(tvalue.").concat(d[p]," * pwfscale").concat(p," + pwfshift").concat(p,", height").concat(p,")).r;")]);switch(s){case 1:f=f.concat(["gl_FragData[0] = vec4(tcolor0.rgb, opacity);"]);break;case 2:f=f.concat(["float weightSum = compWeight0 + compWeight1;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);"]);break;case 3:f=f.concat(["float weightSum = compWeight0 + compWeight1 + compWeight2;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);"]);break;case 4:f=f.concat(["float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;","gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);"]);break;default:mn("Unsupported number of independent coordinates.")}i=Sr.substitute(i,"//VTK::TCoord::Impl",f).result}else switch(s){case 1:i=Sr.substitute(i,"//VTK::TCoord::Impl",["float intensity = texture2D(texture1, tcoordVCVSOutput).r;","vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;","float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;","gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);"]).result;break;case 2:i=Sr.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","float intensity = tcolor.r*cscale0 + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);"]).result;break;case 3:i=Sr.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);"]).result;break;default:i=Sr.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);"]).result}t.haveSeenDepthRequest&&(i=Sr.substitute(i,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,i=Sr.substitute(i,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),r.Vertex=o,r.Fragment=i,e.replaceShaderClip(r,n,a),e.replaceShaderCoincidentOffset(r,n,a)},e.replaceShaderClip=function(e,r,n){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&((0,ht.E0)("OpenGL has a limit of 6 clipping planes"),i=6),a=Sr.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=Sr.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=Sr.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,o=Sr.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getNeedToRebuildShaders=function(e,r,n){var a=t.openGLTexture.getComponents(),o=n.getProperty().getIndependentComponents(),i=!1;return(!t.currentRenderPass&&t.lastRenderPassShaderReplacement||t.currentRenderPass&&t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&&(i=!0),!(!i&&t.lastHaveSeenDepthRequest===t.haveSeenDepthRequest&&0!==e.getProgram()&&t.lastTextureComponents===a&&t.lastIndependentComponents===o||(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=a,t.lastIndependentComponents=o,0))},e.updateShaders=function(r,n,a){if(t.lastBoundBO=r,e.getNeedToRebuildShaders(r,n,a)){var o={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(o,n,a);var i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);i!==r.getProgram()&&(r.setProgram(i),r.getVAO().releaseGraphicsResources()),r.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(r.getProgram());r.getVAO().bind(),e.setMapperShaderParameters(r,n,a),e.setCameraShaderParameters(r,n,a),e.setPropertyShaderParameters(r,n,a)},e.setMapperShaderParameters=function(r,n,a){r.getCABO().getElementCount()&&(t.VBOBuildTime>r.getAttributeUpdateTime().getMTime()||r.getShaderSourceTime().getMTime()>r.getAttributeUpdateTime().getMTime())&&(r.getProgram().isAttributeUsed("vertexMC")&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"vertexMC",r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||mn("Error setting vertexMC in shader VAO.")),r.getProgram().isAttributeUsed("tcoordMC")&&r.getCABO().getTCoordOffset()&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"tcoordMC",r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,r.getCABO().getTCoordComponents(),t.context.FALSE)||mn("Error setting tcoordMC in shader VAO.")),r.getAttributeUpdateTime().modified());var o=t.openGLTexture.getTextureUnit();r.getProgram().setUniformi("texture1",o);var i=t.openGLTexture.getComponents(),s=a.getProperty().getIndependentComponents();if(s)for(var l=0;l<i;l++)r.getProgram().setUniformf("mix".concat(l),a.getProperty().getComponentWeight(l));for(var c=t.openGLTexture.getShiftAndScale(),u=0;u<i;u++){var d=a.getProperty().getColorWindow(),f=a.getProperty().getColorLevel(),p=s?u:0,g=a.getProperty().getRGBTransferFunction(p);if(g&&a.getProperty().getUseLookupTableScalarRange()){var m=g.getRange();d=m[1]-m[0],f=.5*(m[1]+m[0])}var h=c.scale/d,v=(c.shift-f)/d+.5;r.getProgram().setUniformf("cshift".concat(u),v),r.getProgram().setUniformf("cscale".concat(u),h)}for(var y=0;y<i;y++){var b=1,T=0,C=s?y:0,x=a.getProperty().getPiecewiseFunction(C);if(x){var S=x.getRange(),P=S[1]-S[0],w=.5*(S[0]+S[1]);b=c.scale/P,T=(c.shift-w)/P+.5}r.getProgram().setUniformf("pwfshift".concat(y),T),r.getProgram().setUniformf("pwfscale".concat(y),b)}if(t.haveSeenDepthRequest&&r.getProgram().setUniformi("depthRequest",t.renderDepth?1:0),r.getProgram().isUniformUsed("coffset")){var O=e.getCoincidentParameters(n,a);r.getProgram().setUniformf("coffset",O.offset),r.getProgram().isUniformUsed("cfactor")&&r.getProgram().setUniformf("cfactor",O.factor)}var I=t.colorTexture.getTextureUnit();r.getProgram().setUniformi("colorTexture1",I);var A=t.pwfTexture.getTextureUnit();if(r.getProgram().setUniformi("pwfTexture1",A),t.renderable.getNumberOfClippingPlanes()){var R=t.renderable.getNumberOfClippingPlanes();R>6&&((0,ht.E0)("OpenGL has a limit of 6 clipping planes"),R=6);var E=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null,M=E?ot._E.copy(t.imagematinv,a.getMatrix()):a.getMatrix();E&&(ot._E.transpose(M,M),ot._E.multiply(M,M,E),ot._E.transpose(M,M)),ot._E.transpose(t.imagemat,t.currentInput.getIndexToWorld()),ot._E.multiply(t.imagematinv,M,t.imagemat);for(var D=[],V=0;V<R;V++){var L=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,V,L);for(var _=0;_<4;_++)D.push(L[_])}r.getProgram().setUniformi("numClipPlanes",R),r.getProgram().setUniform4fv("clipPlanes",D)}},e.setCameraShaderParameters=function(e,r,n){var a=e.getProgram(),o=t.openGLImageSlice.getKeyMatrices(),i=t.currentInput.getIndexToWorld();ot._E.multiply(t.imagemat,o.mcwc,i);var s=t.openGLCamera.getKeyMatrices(r);if(ot._E.multiply(t.imagemat,s.wcpc,t.imagemat),e.getCABO().getCoordShiftAndScaleEnabled()){var l=e.getCABO().getInverseShiftAndScaleMatrix();ot._E.multiply(t.imagemat,t.imagemat,l)}a.setUniformMatrix("MCPCMatrix",t.imagemat)},e.setPropertyShaderParameters=function(e,t,r){var n=e.getProgram(),a=r.getProperty().getOpacity();n.setUniformf("opacity",a)},e.renderPieceStart=function(r,n){e.updateBufferObjects(r,n),t.lastBoundBO=null},e.renderPieceDraw=function(r,n){var a=t.context;t.openGLTexture.activate(),t.colorTexture.activate(),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&&(e.updateShaders(t.tris,r,n),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.openGLTexture.deactivate(),t.colorTexture.deactivate(),t.pwfTexture.deactivate()},e.renderPieceFinish=function(e,t){},e.renderPiece=function(r,n){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getCurrentImage(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n)):mn("No input!")},e.computeBounds=function(r,n){e.getInput()?t.bounds=e.getInput().getBounds():(0,Mr.u)(t.bounds)},e.updateBufferObjects=function(t,r){e.getNeedToRebuildBufferObjects(t,r)&&e.buildBufferObjects(t,r)},e.getNeedToRebuildBufferObjects=function(r,n){return t.VBOBuildTime.getMTime()<e.getMTime()||t.VBOBuildTime.getMTime()<n.getMTime()||t.VBOBuildTime.getMTime()<t.renderable.getMTime()||t.VBOBuildTime.getMTime()<n.getProperty().getMTime()||t.VBOBuildTime.getMTime()<t.currentInput.getMTime()},e.buildBufferObjects=function(r,n){var a=t.currentInput;if(a){var o=a.getPointData()&&a.getPointData().getScalars();if(o){var i=o.getDataType(),s=o.getNumberOfComponents(),l=n.getProperty(),c=l.getInterpolationType();c===tn.NEAREST?(t.colorTexture.setMinificationFilter(Vr.NEAREST),t.colorTexture.setMagnificationFilter(Vr.NEAREST),t.pwfTexture.setMinificationFilter(Vr.NEAREST),t.pwfTexture.setMagnificationFilter(Vr.NEAREST)):(t.colorTexture.setMinificationFilter(Vr.LINEAR),t.colorTexture.setMagnificationFilter(Vr.LINEAR),t.pwfTexture.setMinificationFilter(Vr.LINEAR),t.pwfTexture.setMagnificationFilter(Vr.LINEAR));var u=l.getIndependentComponents(),d=u?s:1,f=u?2*d:1,p=vn(l,l.getRGBTransferFunction,d);if(t.colorTextureString!==p){var g=1024,m=new Uint8Array(g*f*3),h=l.getRGBTransferFunction();if(h){for(var v=new Float32Array(3072),y=0;y<d;y++){var b=(h=l.getRGBTransferFunction(y)).getRange();if(h.getTable(b[0],b[1],g,v,1),u)for(var T=0;T<3072;T++)m[y*g*6+T]=255*v[T],m[y*g*6+T+3072]=255*v[T];else for(var C=0;C<3072;C++)m[y*g*6+C]=255*v[C]}t.colorTexture.create2DFromRaw(g,f,3,nn.Tu.UNSIGNED_CHAR,m)}else{for(var x=0;x<3072;++x)m[x]=255*x/3069,m[x+1]=255*x/3069,m[x+2]=255*x/3069;t.colorTexture.create2DFromRaw(g,1,3,nn.Tu.UNSIGNED_CHAR,m)}t.colorTextureString=p}var S=vn(l,l.getPiecewiseFunction,d);if(t.pwfTextureString!==S){var P=1024,w=P*f,O=new Uint8Array(w),I=l.getPiecewiseFunction();if(t.pwfTexture.resetFormatAndType(),I){for(var A=new Float32Array(w),R=new Float32Array(P),E=0;E<d;++E)if(null===(I=l.getPiecewiseFunction(E)))A.fill(1);else{var M=I.getRange();if(I.getTable(M[0],M[1],P,R,1),u)for(var D=0;D<P;D++)A[E*P*2+D]=R[D],A[E*P*2+D+P]=R[D];else for(var V=0;V<P;V++)A[E*P*2+V]=R[V]}t.pwfTexture.create2DFromRaw(P,f,1,nn.Tu.FLOAT,A)}else O.fill(255),t.pwfTexture.create2DFromRaw(P,1,1,nn.Tu.UNSIGNED_CHAR,O);t.pwfTextureString=S}var L=t.renderable.getClosestIJKAxis().ijkMode,_=t.renderable.getSlice();L!==t.renderable.getSlicingMode()&&(_=t.renderable.getSliceAtPosition(_));var N,B=t.renderable.isA("vtkImageArrayMapper")?t.renderable.getSubSlice():Math.round(_),F=a.getExtent();L===hn.I&&(N=B-F[0]),L===hn.J&&(N=B-F[2]),L!==hn.K&&L!==hn.NONE||(N=B-F[4]);var U="".concat(_,"A").concat(a.getMTime(),"A").concat(o.getMTime(),"B").concat(e.getMTime(),"C").concat(t.renderable.getSlicingMode(),"D").concat(n.getProperty().getInterpolationType());if(t.VBOBuildString!==U){var k,G,W=a.getDimensions();c===tn.NEAREST?(new Set([1,3,4]).has(s)&&i===nn.Tu.UNSIGNED_CHAR&&!u?(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(Vr.NEAREST)):t.openGLTexture.setMinificationFilter(Vr.NEAREST),t.openGLTexture.setMagnificationFilter(Vr.NEAREST)):(4!==s||i!==nn.Tu.UNSIGNED_CHAR||u?t.openGLTexture.setMinificationFilter(Vr.LINEAR):(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(Vr.LINEAR_MIPMAP_LINEAR)),t.openGLTexture.setMagnificationFilter(Vr.LINEAR)),t.openGLTexture.setWrapS(Dr.CLAMP_TO_EDGE),t.openGLTexture.setWrapT(Dr.CLAMP_TO_EDGE);for(var z=W[0]*W[1]*s,j=new Float32Array(12),H=new Float32Array(8),K=0;K<4;K++)H[2*K]=K%2?1:0,H[2*K+1]=K>1?1:0;var Z=[hn.X,hn.Y,hn.Z].includes(t.renderable.getSlicingMode())?_:B,X=a.getSpatialExtent(),q=o.getData(),Y=null;if(L===hn.I){Y=new q.constructor(W[2]*W[1]*s);for(var $=0,Q=0;Q<W[2];Q++)for(var J=0;J<W[1];J++){var ee=(N+J*W[0]+Q*W[0]*W[1])*s;$=(Q*W[1]+J)*s,Y.set(q.subarray(ee,ee+s),$)}W[0]=W[1],W[1]=W[2],j[0]=Z,j[1]=X[2],j[2]=X[4],j[3]=Z,j[4]=X[3],j[5]=X[4],j[6]=Z,j[7]=X[2],j[8]=X[5],j[9]=Z,j[10]=X[3],j[11]=X[5]}else if(L===hn.J){Y=new q.constructor(W[2]*W[0]*s);for(var te=0,ne=0;ne<W[2];ne++)for(var ae=0;ae<W[0];ae++){var oe=(ae+N*W[0]+ne*W[0]*W[1])*s;te=(ne*W[0]+ae)*s,Y.set(q.subarray(oe,oe+s),te)}W[1]=W[2],j[0]=X[0],j[1]=Z,j[2]=X[4],j[3]=X[1],j[4]=Z,j[5]=X[4],j[6]=X[0],j[7]=Z,j[8]=X[5],j[9]=X[1],j[10]=Z,j[11]=X[5]}else L===hn.K||L===hn.NONE?(Y=q.subarray(N*z,(N+1)*z),j[0]=X[0],j[1]=X[2],j[2]=Z,j[3]=X[1],j[4]=X[2],j[5]=Z,j[6]=X[0],j[7]=X[3],j[8]=Z,j[9]=X[1],j[10]=X[3],j[11]=Z):mn("Reformat slicing not yet supported.");t.openGLTexture.create2DFilterableFromRaw(W[0],W[1],s,o.getDataType(),Y,null===(k=(G=t.renderable).getPreferSizeOverAccuracy)||void 0===k?void 0:k.call(G)),t.openGLTexture.activate(),t.openGLTexture.sendParameters(),t.openGLTexture.deactivate();var ie=re.ZP.newInstance({numberOfComponents:3,values:j});ie.setName("points");var se=re.ZP.newInstance({numberOfComponents:2,values:H});se.setName("tcoords");var le=new Uint16Array(8);le[0]=3,le[1]=0,le[2]=1,le[3]=3,le[4]=3,le[5]=0,le[6]=3,le[7]=2;var ce=re.ZP.newInstance({numberOfComponents:1,values:le});t.tris.getCABO().createVBO(ce,"polys",ur.hX.SURFACE,{points:ie,tcoords:se,cellOffset:0}),t.VBOBuildTime.modified(),t.VBOBuildString=U}}}}}(e,t)}var Tn=(0,ht.WL)(bn,"vtkOpenGLImageMapper"),Cn={newInstance:Tn,extend:bn};wt("vtkAbstractImageMapper",Tn);var xn={context:null,keyMatrixTime:null,keyMatrices:null};function Sn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xn,r),Tt.extend(e,t,r),t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:ot._E.identity(new Float64Array(16))},(0,ht.g2)(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLImageSlice"),e.buildPass=function(r){if(t.renderable&&t.renderable.getVisibility()&&r){if(!t.renderable)return;t._openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseZBufferPass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children.forEach((function(e){e.traverse(r)})),e.apply(r,!1))},e.traverseOpaqueZBufferPass=function(t){return e.traverseOpaquePass(t)},e.traverseOpaquePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children.forEach((function(e){e.traverse(r)})),e.apply(r,!1))},e.traverseTranslucentPass=function(r){!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(r,!0),t.children.forEach((function(e){e.traverse(r)})),e.apply(r,!1))},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},e.zBufferPass=function(t,r){return e.opaquePass(t,r)},e.opaqueZBufferPass=function(t,r){return e.opaquePass(t,r)},e.opaquePass=function(e,r){e&&t.context.depthMask(!0)},e.translucentPass=function(e,r){t.context.depthMask(!e)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(ot._E.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),ot._E.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Pn=(0,ht.WL)(Sn,"vtkOpenGLImageSlice"),wn={newInstance:Pn,extend:Sn};wt("vtkImageSlice",Pn);var On={};function In(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,On,r),Tt.extend(e,t,r),t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),(0,ht.g2)(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLVolume"),e.buildPass=function(r){t.renderable&&t.renderable.getVisibility()&&r&&(t._openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;r.incrementVolumeCount()}},e.traverseVolumePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children[0].traverse(r),e.apply(r,!1))},e.volumePass=function(e){t.renderable&&t.renderable.getVisibility()&&t.context.depthMask(!e)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),ot._E.copy(t.MCWCMatrix,t.renderable.getMatrix()),ot._E.transpose(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?ot.wO.identity(t.normalMatrix):(ot.wO.fromMat4(t.normalMatrix,t.MCWCMatrix),ot.wO.invert(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix}}}(e,t)}var An=(0,ht.WL)(In,"vtkOpenGLVolume"),Rn={newInstance:An,extend:In};wt("vtkVolume",An);var En={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Mn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,En,r),(0,ht.j6)(e,t),t.colorBuffers&&(0,ht.E0)("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),t.colorBuffers=[],(0,ht.c$)(e,t,["colorBuffers"]),function(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=function(){return t.context.FRAMEBUFFER},e.saveCurrentBindingsAndBuffers=function(t){var r=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(r),e.saveCurrentBuffers(r)},e.saveCurrentBindings=function(e){if(t.context){var r=t.context;t.previousDrawBinding=r.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()}else(0,ht.E0)("you must set the OpenGLRenderWindow before calling saveCurrentBindings")},e.saveCurrentBuffers=function(e){},e.restorePreviousBindingsAndBuffers=function(t){var r=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(r),e.restorePreviousBuffers(r)},e.restorePreviousBindings=function(e){if(t.context){var r=t.context;r.bindFramebuffer(r.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)}else(0,ht.E0)("you must set the OpenGLRenderWindow before calling restorePreviousBindings")},e.restorePreviousBuffers=function(e){},e.bind=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null===r&&(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(var n=0;n<t.colorBuffers.length;n++)t.colorBuffers[n].bind();t._openGLRenderWindow.setActiveFramebuffer(e)},e.create=function(e,r){t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=r):(0,ht.E0)("you must set the OpenGLRenderWindow before calling create")},e.setColorBuffer=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t.context;if(n){var a=n.COLOR_ATTACHMENT0;if(r>0){if(!t._openGLRenderWindow.getWebgl2())return void(0,ht.E0)("Using multiple framebuffer attachments requires WebGL 2");a+=r}t.colorBuffers[r]=e,n.framebufferTexture2D(n.FRAMEBUFFER,a,n.TEXTURE_2D,e.getHandle(),0)}else(0,ht.E0)("you must set the OpenGLRenderWindow before calling setColorBuffer")},e.removeColorBuffer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=t.context;if(r){var n=r.COLOR_ATTACHMENT0;if(e>0){if(!t._openGLRenderWindow.getWebgl2())return void(0,ht.E0)("Using multiple framebuffer attachments requires WebGL 2");n+=e}r.framebufferTexture2D(r.FRAMEBUFFER,n,r.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)}else(0,ht.E0)("you must set the OpenGLRenderWindow before calling removeColorBuffer")},e.setDepthBuffer=function(e){if(t.context)if(t._openGLRenderWindow.getWebgl2()){var r=t.context;r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,e.getHandle(),0)}else(0,ht.E0)("Attaching depth buffer textures to fbo requires WebGL 2");else(0,ht.E0)("you must set the OpenGLRenderWindow before calling setDepthBuffer")},e.removeDepthBuffer=function(){if(t.context)if(t._openGLRenderWindow.getWebgl2()){var e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else(0,ht.E0)("Attaching depth buffer textures to framebuffers requires WebGL 2");else(0,ht.E0)("you must set the OpenGLRenderWindow before calling removeDepthBuffer")},e.getGLFramebuffer=function(){return t.glFramebuffer},e.setOpenGLRenderWindow=function(r){t._openGLRenderWindow!==r&&(e.releaseGraphicsResources(),t._openGLRenderWindow=r,t.context=null,r&&(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=function(){t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=function(){var e=[0,0];return null!==t.glFramebuffer&&(e[0]=t.glFramebuffer.width,e[1]=t.glFramebuffer.height),e},e.populateFramebuffer=function(){if(t.context){e.bind();var r=t.context,n=Yr.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow),n.setMinificationFilter(Vr.LINEAR),n.setMagnificationFilter(Vr.LINEAR),n.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,nn.Tu.UNSIGNED_CHAR,null),e.setColorBuffer(n),t.depthTexture=r.createRenderbuffer(),r.bindRenderbuffer(r.RENDERBUFFER,t.depthTexture),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,t.depthTexture)}else(0,ht.E0)("you must set the OpenGLRenderWindow before calling populateFrameBuffer")},e.getColorTexture=function(){return t.colorBuffers[0]}}(e,t)}var Dn={newInstance:(0,ht.WL)(Mn,"vtkFramebuffer"),extend:Mn},Vn={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ln={FRACTIONAL:0,PROPORTIONAL:1},_n={InterpolationType:Vn,OpacityMode:Ln},Nn="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nattribute vec4 vertexDC;\n\nvarying vec3 vertexVCVSOutput;\nuniform mat4 PCVCMatrix;\n\nuniform float dcxmin;\nuniform float dcxmax;\nuniform float dcymin;\nuniform float dcymax;\n\nvoid main()\n{\n // dcsmall is the device coords reduced to the\n // x y area covered by the volume\n vec4 dcsmall = vec4(\n dcxmin + 0.5 * (vertexDC.x + 1.0) * (dcxmax - dcxmin),\n dcymin + 0.5 * (vertexDC.y + 1.0) * (dcymax - dcymin),\n vertexDC.z,\n vertexDC.w);\n vec4 vcpos = PCVCMatrix * dcsmall;\n vertexVCVSOutput = vcpos.xyz/vcpos.w;\n gl_Position = dcsmall;\n}\n",Bn="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkVolumeFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// Template for the volume mappers fragment shader\n\n// the output of this shader\n//VTK::Output::Dec\n\nvarying vec3 vertexVCVSOutput;\n\n// first declare the settings from the mapper\n// that impact the code paths in here\n\n// always set vtkNumComponents 1,2,3,4\n//VTK::NumComponents\n\n// possibly define vtkTrilinearOn\n//VTK::TrilinearOn\n\n// possibly define vtkIndependentComponents\n//VTK::IndependentComponentsOn\n\n// possibly define any \"proportional\" components\n//VTK::vtkProportionalComponents\n\n// Define the blend mode to use\n#define vtkBlendMode //VTK::BlendMode\n\n// Possibly define vtkImageLabelOutlineOn\n//VTK::ImageLabelOutlineOn\n\n#ifdef vtkImageLabelOutlineOn\nuniform int outlineThickness;\nuniform float outlineOpacity;\nuniform float vpWidth;\nuniform float vpHeight;\nuniform float vpOffsetX;\nuniform float vpOffsetY;\nuniform mat4 PCWCMatrix;\nuniform mat4 vWCtoIDX;\n#endif\n\n// define vtkLightComplexity\n//VTK::LightComplexity\n#if vtkLightComplexity > 0\nuniform float vSpecularPower;\nuniform float vAmbient;\nuniform float vDiffuse;\nuniform float vSpecular;\n//VTK::Light::Dec\n#endif\n\n//VTK::VolumeShadowOn\n//VTK::SurfaceShadowOn\n//VTK::localAmbientOcclusionOn\n//VTK::LAO::Dec\n//VTK::VolumeShadow::Dec\n\n// define vtkComputeNormalFromOpacity\n//VTK::vtkComputeNormalFromOpacity\n\n// possibly define vtkGradientOpacityOn\n//VTK::GradientOpacityOn\n#ifdef vtkGradientOpacityOn\nuniform float goscale0;\nuniform float goshift0;\nuniform float gomin0;\nuniform float gomax0;\n#if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\nuniform float goscale1;\nuniform float goshift1;\nuniform float gomin1;\nuniform float gomax1;\n#if vtkNumComponents >= 3\nuniform float goscale2;\nuniform float goshift2;\nuniform float gomin2;\nuniform float gomax2;\n#endif\n#if vtkNumComponents >= 4\nuniform float goscale3;\nuniform float goshift3;\nuniform float gomin3;\nuniform float gomax3;\n#endif\n#endif\n#endif\n\n// if you want to see the raw tiled\n// data in webgl1 uncomment the following line\n// #define debugtile\n\n// camera values\nuniform float camThick;\nuniform float camNear;\nuniform float camFar;\nuniform int cameraParallel;\n\n// values describing the volume geometry\nuniform vec3 vOriginVC;\nuniform vec3 vSpacing;\nuniform ivec3 volumeDimensions; // 3d texture dimensions\nuniform vec3 vPlaneNormal0;\nuniform float vPlaneDistance0;\nuniform vec3 vPlaneNormal1;\nuniform float vPlaneDistance1;\nuniform vec3 vPlaneNormal2;\nuniform float vPlaneDistance2;\nuniform vec3 vPlaneNormal3;\nuniform float vPlaneDistance3;\nuniform vec3 vPlaneNormal4;\nuniform float vPlaneDistance4;\nuniform vec3 vPlaneNormal5;\nuniform float vPlaneDistance5;\n\n//VTK::ClipPlane::Dec\n\n// opacity and color textures\nuniform sampler2D otexture;\nuniform float oshift0;\nuniform float oscale0;\nuniform sampler2D ctexture;\nuniform float cshift0;\nuniform float cscale0;\n\n// jitter texture\nuniform sampler2D jtexture;\n\n// some 3D texture values\nuniform float sampleDistance;\nuniform vec3 vVCToIJK;\n\n// the heights defined below are the locations\n// for the up to four components of the tfuns\n// the tfuns have a height of 2XnumComps pixels so the\n// values are computed to hit the middle of the two rows\n// for that component\n#ifdef vtkIndependentComponentsOn\n#if vtkNumComponents == 2\nuniform float mix0;\nuniform float mix1;\n#define height0 0.25\n#define height1 0.75\n#endif\n#if vtkNumComponents == 3\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\n#define height0 0.17\n#define height1 0.5\n#define height2 0.83\n#endif\n#if vtkNumComponents == 4\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\nuniform float mix3;\n#define height0 0.125\n#define height1 0.375\n#define height2 0.625\n#define height3 0.875\n#endif\n#endif\n\n#if vtkNumComponents >= 2\nuniform float oshift1;\nuniform float oscale1;\nuniform float cshift1;\nuniform float cscale1;\n#endif\n#if vtkNumComponents >= 3\nuniform float oshift2;\nuniform float oscale2;\nuniform float cshift2;\nuniform float cscale2;\n#endif\n#if vtkNumComponents >= 4\nuniform float oshift3;\nuniform float oscale3;\nuniform float cshift3;\nuniform float cscale3;\n#endif\n\nuniform vec4 ipScalarRangeMin;\nuniform vec4 ipScalarRangeMax;\n\n// declaration for intermixed geometry\n//VTK::ZBuffer::Dec\n\n//=======================================================================\n// global and custom variables (a temporary section before photorealistics rendering module is complete)\nvec3 rayDirVC;\nfloat sampleDistanceISVS;\nfloat sampleDistanceIS;\n\n#define SQRT3 1.7321\n#define INV4PI 0.0796\n#define EPSILON 0.001\n#define PI 3.1415\n#define PI2 9.8696\n\n//=======================================================================\n// Webgl2 specific version of functions\n#if __VERSION__ == 300\n\nuniform highp sampler3D texture1;\n\nvec4 getTextureValue(vec3 pos)\n{\n vec4 tmp = texture(texture1, pos);\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.a = tmp.g;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n return tmp;\n}\n\n//=======================================================================\n// WebGL1 specific version of functions\n#else\n\nuniform sampler2D texture1;\n\nuniform float texWidth;\nuniform float texHeight;\nuniform int xreps;\nuniform int xstride;\nuniform int ystride;\n\n// if computing trilinear values from multiple z slices\n#ifdef vtkTrilinearOn\nvec4 getTextureValue(vec3 ijk)\n{\n float zoff = 1.0/float(volumeDimensions.z);\n vec4 val1 = getOneTextureValue(ijk);\n vec4 val2 = getOneTextureValue(vec3(ijk.xy, ijk.z + zoff));\n\n float indexZ = float(volumeDimensions)*ijk.z;\n float zmix = indexZ - floor(indexZ);\n\n return mix(val1, val2, zmix);\n}\n\nvec4 getOneTextureValue(vec3 ijk)\n#else // nearest or fast linear\nvec4 getTextureValue(vec3 ijk)\n#endif\n{\n vec3 tdims = vec3(volumeDimensions);\n\n#ifdef debugtile\n vec2 tpos = vec2(ijk.x, ijk.y);\n vec4 tmp = texture2D(texture1, tpos);\n tmp.a = 1.0;\n\n#else\n int z = int(ijk.z * tdims.z);\n int yz = z / xreps;\n int xz = z - yz*xreps;\n\n int tileWidth = volumeDimensions.x/xstride;\n int tileHeight = volumeDimensions.y/ystride;\n\n xz *= tileWidth;\n yz *= tileHeight;\n\n float ni = float(xz) + (ijk.x*float(tileWidth));\n float nj = float(yz) + (ijk.y*float(tileHeight));\n\n vec2 tpos = vec2(ni/texWidth, nj/texHeight);\n\n vec4 tmp = texture2D(texture1, tpos);\n\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.g = tmp.a;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n#endif\n\n return tmp;\n}\n\n// End of Webgl1 specific code\n//=======================================================================\n#endif\n\n//=======================================================================\n// transformation between VC and IS space\n\n// convert vector position from idx to vc\n#if vtkLightComplexity > 0\nvec3 IStoVC(vec3 posIS){\n vec3 posVC = posIS / vVCToIJK;\n return posVC.x * vPlaneNormal0 +\n posVC.y * vPlaneNormal2 +\n posVC.z * vPlaneNormal4 +\n vOriginVC;\n}\n\n// convert vector position from vc to idx\nvec3 VCtoIS(vec3 posVC){\n posVC = posVC - vOriginVC;\n posVC = vec3(\n dot(posVC, vPlaneNormal0),\n dot(posVC, vPlaneNormal2),\n dot(posVC, vPlaneNormal4));\n return posVC * vVCToIJK;\n}\n#endif\n\n//Rotate vector to view coordinate\n#if (vtkLightComplexity > 0) || (defined vtkGradientOpacityOn)\nvoid rotateToViewCoord(inout vec3 dirIS){\n dirIS.xyz =\n dirIS.x * vPlaneNormal0 +\n dirIS.y * vPlaneNormal2 +\n dirIS.z * vPlaneNormal4;\n}\n\n//Rotate vector to idx coordinate\nvec3 rotateToIDX(vec3 dirVC){\n vec3 dirIS;\n dirIS.xyz = vec3(\n dot(dirVC, vPlaneNormal0),\n dot(dirVC, vPlaneNormal2),\n dot(dirVC, vPlaneNormal4));\n return dirIS;\n}\n#endif\n\n//=======================================================================\n// Given a normal compute the gradient opacity factors\nfloat computeGradientOpacityFactor(\n float normalMag, float goscale, float goshift, float gomin, float gomax)\n{\n#if defined(vtkGradientOpacityOn)\n return clamp(normalMag * goscale + goshift, gomin, gomax);\n#else\n return 1.0;\n#endif\n}\n\n//=======================================================================\n// compute the normal and gradient magnitude for a position, uses forward difference\n#if (vtkLightComplexity > 0) || (defined vtkGradientOpacityOn)\n #ifdef vtkComputeNormalFromOpacity\n #ifdef vtkGradientOpacityOn\n vec4 computeNormalForDensity(vec3 pos, float scalar, vec3 tstep, out mat3 scalarInterp, out vec3 secondaryGradientMag)\n {\n vec4 result;\n scalarInterp[0][0] = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a;\n scalarInterp[0][1] = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a;\n scalarInterp[0][2] = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a;\n // look up scalar values for computing secondary gradient\n scalarInterp[1][0] = getTextureValue(pos + vec3(2.0*tstep.x, 0.0, 0.0)).a;\n scalarInterp[1][1] = getTextureValue(pos + vec3(0.0, 2.0*tstep.y, 0.0)).a;\n scalarInterp[1][2] = getTextureValue(pos + vec3(0.0, 0.0, 2.0*tstep.z)).a;\n scalarInterp[2][0] = getTextureValue(pos + vec3(tstep.x, tstep.y, 0.0)).a;\n scalarInterp[2][1] = getTextureValue(pos + vec3(tstep.x, 0.0, tstep.z)).a;\n scalarInterp[2][2] = getTextureValue(pos + vec3(0.0, tstep.y, tstep.z)).a;\n result.x = scalarInterp[0][0] - scalar;\n result.y = scalarInterp[0][1] - scalar;\n result.z = scalarInterp[0][2] - scalar;\n // divide by spacing\n result.xyz /= vSpacing;\n result.w = length(result.xyz);\n rotateToViewCoord(result.xyz);\n secondaryGradientMag.x = length(vec3(scalarInterp[1][0] - scalarInterp[0][0],\n scalarInterp[2][0] - scalarInterp[0][0],\n scalarInterp[2][1] - scalarInterp[0][0]) / vSpacing);\n secondaryGradientMag.y = length(vec3(scalarInterp[2][0] - scalarInterp[0][1],\n scalarInterp[1][1] - scalarInterp[0][1],\n scalarInterp[2][2] - scalarInterp[0][1]) / vSpacing);\n secondaryGradientMag.z = length(vec3(scalarInterp[2][1] - scalarInterp[0][2],\n scalarInterp[2][2] - scalarInterp[0][2],\n scalarInterp[1][2] - scalarInterp[0][2]) / vSpacing);\n if (length(result.xyz) > 0.0) {\n return vec4(normalize(result.xyz),result.w);\n } else {\n return vec4(0.0);\n }\n }\n\n vec4 computeDensityNormal(float scalar, float gradientMag, mat3 scalarInterp, vec3 secondaryGradientMag)\n {\n vec4 opacityG;\n vec3 opacityInterp = vec3(0.0);\n float opacity = texture2D(otexture, vec2(scalar * oscale0 + oshift0, 0.5)).r;\n if (gradientMag >= 0.0){\n opacity *= computeGradientOpacityFactor(gradientMag, goscale0, goshift0, gomin0, gomax0);\n }\n opacityInterp.x = texture2D(otexture, vec2(scalarInterp[0][0] * oscale0 + oshift0, 0.5)).r;\n if (secondaryGradientMag.x >= 0.0){\n opacityInterp.x *= computeGradientOpacityFactor(secondaryGradientMag.x, goscale0, goshift0, gomin0, gomax0);\n }\n\n opacityInterp.y = texture2D(otexture, vec2(scalarInterp[0][1] * oscale0 + oshift0, 0.5)).r;\n if (secondaryGradientMag.y >= 0.0){\n opacityInterp.y *= computeGradientOpacityFactor(secondaryGradientMag.y, goscale0, goshift0, gomin0, gomax0);\n }\n\n opacityInterp.z = texture2D(otexture, vec2(scalarInterp[0][2] * oscale0 + oshift0, 0.5)).r;\n if (secondaryGradientMag.z >= 0.0){\n opacityInterp.z *= computeGradientOpacityFactor(secondaryGradientMag.z, goscale0, goshift0, gomin0, gomax0);\n }\n\n opacityG.xyz = opacityInterp - vec3(opacity,opacity,opacity);\n // divide by spacing\n opacityG.xyz /= vSpacing;\n opacityG.w = length(opacityG.xyz);\n rotateToViewCoord(opacityG.xyz);\n if (length(opacityG.xyz) > 0.0) {\n return vec4(normalize(opacityG.xyz),opacityG.w);\n } else {\n return vec4(0.0);\n }\n }\n\n #else\n //if gradient opacity not on but using density gradient\n vec4 computeDensityNormal(float scalar, vec3 scalarInterp)\n {\n vec4 opacityG;\n float opacity = texture2D(otexture, vec2(scalar * oscale0 + oshift0, 0.5)).r;\n opacityG.x = texture2D(otexture, vec2(scalarInterp.x * oscale0 + oshift0, 0.5)).r - opacity;\n opacityG.y = texture2D(otexture, vec2(scalarInterp.y * oscale0 + oshift0, 0.5)).r - opacity;\n opacityG.z = texture2D(otexture, vec2(scalarInterp.z * oscale0 + oshift0, 0.5)).r - opacity;\n // divide by spacing\n opacityG.xyz /= vSpacing;\n opacityG.w = length(opacityG.xyz);\n // rotate to View Coords\n rotateToViewCoord(opacityG.xyz);\n if (length(opacityG.xyz) > 0.0) {\n return vec4(normalize(opacityG.xyz),opacityG.w);\n } else {\n return vec4(0.0);\n }\n }\n vec4 computeNormalForDensity(vec3 pos, float scalar, vec3 tstep, out vec3 scalarInterp)\n {\n vec4 result;\n scalarInterp.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a;\n scalarInterp.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a;\n scalarInterp.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a;\n result.x = scalarInterp.x - scalar;\n result.y = scalarInterp.y - scalar;\n result.z = scalarInterp.z - scalar;\n // divide by spacing\n result.xyz /= vSpacing;\n result.w = length(result.xyz);\n // rotate to View Coords\n rotateToViewCoord(result.xyz);\n if (length(result.xyz) > 0.0) {\n return vec4(normalize(result.xyz),result.w);\n } else {\n return vec4(0.0);\n }\n }\n #endif\n #endif\n // compute scalar density\n vec4 computeNormal(vec3 pos, float scalar, vec3 tstep)\n {\n vec4 result;\n result.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a - scalar;\n result.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a - scalar;\n result.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a - scalar;\n // divide by spacing\n result.xyz /= vSpacing;\n result.w = length(result.xyz);\n if (result.w > 0.0){\n // rotate to View Coords\n rotateToViewCoord(result.xyz);\n return vec4(normalize(result.xyz),result.w);\n } else {\n return vec4(0.0);\n }\n }\n#endif\n\n#ifdef vtkImageLabelOutlineOn\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\n vec4 pcPos = vec4(\n (fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,\n (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,\n (fragCoord.z - 0.5) * 2.0,\n 1.0);\n\n vec4 worldCoord = PCWCMatrix * pcPos;\n vec4 vertex = (worldCoord/worldCoord.w);\n\n vec3 index = (vWCtoIDX * vertex).xyz;\n\n // half voxel fix for labelmapOutline\n return (index + vec3(0.5)) / vec3(volumeDimensions);\n}\n#endif\n\n//=======================================================================\n// compute the normals and gradient magnitudes for a position\n// for independent components\nmat4 computeMat4Normal(vec3 pos, vec4 tValue, vec3 tstep)\n{\n mat4 result;\n vec4 distX = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)) - tValue;\n vec4 distY = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)) - tValue;\n vec4 distZ = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)) - tValue;\n\n // divide by spacing\n distX /= vSpacing.x;\n distY /= vSpacing.y;\n distZ /= vSpacing.z;\n\n mat3 rot;\n rot[0] = vPlaneNormal0;\n rot[1] = vPlaneNormal2;\n rot[2] = vPlaneNormal4;\n\n#if !defined(vtkComponent0Proportional)\n result[0].xyz = vec3(distX.r, distY.r, distZ.r);\n result[0].a = length(result[0].xyz);\n result[0].xyz *= rot;\n if (result[0].w > 0.0)\n {\n result[0].xyz /= result[0].w;\n }\n#endif\n\n// optionally compute the 2nd component\n#if vtkNumComponents >= 2 && !defined(vtkComponent1Proportional)\n result[1].xyz = vec3(distX.g, distY.g, distZ.g);\n result[1].a = length(result[1].xyz);\n result[1].xyz *= rot;\n if (result[1].w > 0.0)\n {\n result[1].xyz /= result[1].w;\n }\n#endif\n\n// optionally compute the 3rd component\n#if vtkNumComponents >= 3 && !defined(vtkComponent2Proportional)\n result[2].xyz = vec3(distX.b, distY.b, distZ.b);\n result[2].a = length(result[2].xyz);\n result[2].xyz *= rot;\n if (result[2].w > 0.0)\n {\n result[2].xyz /= result[2].w;\n }\n#endif\n\n// optionally compute the 4th component\n#if vtkNumComponents >= 4 && !defined(vtkComponent3Proportional)\n result[3].xyz = vec3(distX.a, distY.a, distZ.a);\n result[3].a = length(result[3].xyz);\n result[3].xyz *= rot;\n if (result[3].w > 0.0)\n {\n result[3].xyz /= result[3].w;\n }\n#endif\n\n return result;\n}\n\n//=======================================================================\n// global shadow - secondary ray\n#if defined(VolumeShadowOn) || defined(localAmbientOcclusionOn)\nfloat random()\n{\n float rand = fract(sin(dot(gl_FragCoord.xy,vec2(12.9898,78.233)))*43758.5453123);\n float jitter=texture2D(jtexture,gl_FragCoord.xy/32.).r;\n uint pcg_state = floatBitsToUint(jitter);\n uint state = pcg_state;\n pcg_state = pcg_state * uint(747796405) + uint(2891336453);\n uint word = ((state >> ((state >> uint(28)) + uint(4))) ^ state) * uint(277803737);\n return (float((((word >> uint(22)) ^ word) >> 1 ))/float(2147483647) + rand)/2.0;\n}\n#endif\n\n#ifdef VolumeShadowOn\n// henyey greenstein phase function\nfloat phase_function(float cos_angle)\n{\n // divide by 2.0 instead of 4pi to increase intensity\n return ((1.0-anisotropy2)/pow(1.0+anisotropy2-2.0*anisotropy*cos_angle, 1.5))/2.0;\n}\n\n// Computes the intersection between a ray and a box\nstruct Hit\n{\n float tmin;\n float tmax;\n};\n\nstruct Ray\n{\n vec3 origin;\n vec3 dir;\n vec3 invDir;\n};\n\nbool BBoxIntersect(vec3 boundMin, vec3 boundMax, const Ray r, out Hit hit)\n{\n vec3 tbot = r.invDir * (boundMin - r.origin);\n vec3 ttop = r.invDir * (boundMax - r.origin);\n vec3 tmin = min(ttop, tbot);\n vec3 tmax = max(ttop, tbot);\n vec2 t = max(tmin.xx, tmin.yz);\n float t0 = max(t.x, t.y);\n t = min(tmax.xx, tmax.yz);\n float t1 = min(t.x, t.y);\n hit.tmin = t0;\n hit.tmax = t1;\n return t1 > max(t0,0.0);\n}\n\n// As BBoxIntersect requires the inverse of the ray coords,\n// this function is used to avoid numerical issues\nvoid safe_0_vector(inout Ray ray)\n{\n if(abs(ray.dir.x) < EPSILON) ray.dir.x = sign(ray.dir.x) * EPSILON;\n if(abs(ray.dir.y) < EPSILON) ray.dir.y = sign(ray.dir.y) * EPSILON;\n if(abs(ray.dir.z) < EPSILON) ray.dir.z = sign(ray.dir.z) * EPSILON;\n}\n\nfloat volume_shadow(vec3 posIS, vec3 lightDirNormIS)\n{\n float shadow = 1.0;\n float opacity = 0.0;\n\n // modify sample distance with a random number between 1.5 and 3.0\n float sampleDistanceISVS_jitter = sampleDistanceISVS * mix(1.5, 3.0, random());\n float opacityPrev = texture2D(otexture, vec2(getTextureValue(posIS).r * oscale0 + oshift0, 0.5)).r;\n\n // in case the first sample near surface has a very tiled light ray, we need to offset start position\n posIS += sampleDistanceISVS_jitter * lightDirNormIS;\n\n // compute the start and end points for the ray\n Ray ray;\n Hit hit;\n ray.origin = posIS;\n ray.dir = lightDirNormIS;\n safe_0_vector(ray);\n ray.invDir = 1.0/ray.dir;\n\n if(!BBoxIntersect(vec3(0.0),vec3(1.0), ray, hit))\n {\n return 1.0;\n }\n float maxdist = hit.tmax;\n\n // interpolate shadow ray length between: 1 unit of sample distance in IS to SQRT3, based on globalIlluminationReach\n float maxgi = mix(sampleDistanceISVS_jitter,SQRT3,giReach);\n maxdist = min(maxdist,maxgi);\n if(maxdist < EPSILON) {\n return 1.0;\n }\n\n // support gradient opacity\n #ifdef vtkGradientOpacityOn\n vec4 normal;\n #endif\n\n float current_dist = 0.0;\n float current_step = length(sampleDistanceISVS_jitter * lightDirNormIS);\n float clamped_step = 0.0;\n\n vec4 scalar = vec4(0.0);\n while(current_dist < maxdist)\n {\n scalar = getTextureValue(posIS);\n opacity = texture2D(otexture, vec2(scalar.r * oscale0 + oshift0, 0.5)).r;\n #ifdef vtkGradientOpacityOn\n normal = computeNormal(posIS, scalar.a, vec3(1.0/vec3(volumeDimensions)));\n opacity *= computeGradientOpacityFactor(normal.w, goscale0, goshift0, gomin0, gomax0);\n #endif\n shadow *= 1.0 - opacity;\n\n // optimization: early termination\n if (shadow < EPSILON){\n return 0.0;\n }\n\n clamped_step = min(maxdist - current_dist, current_step);\n posIS += clamped_step * lightDirNormIS;\n current_dist += current_step;\n }\n\n return shadow;\n}\n\nvec3 applyShadowRay(vec3 tColor, vec3 posIS, vec3 viewDirectionVC)\n{\n vec3 vertLight = vec3(0.0);\n vec3 secondary_contrib = vec3(0.0);\n // here we assume only positional light, no effect of cones\n for (int i = 0; i < lightNum; i++)\n {\n #if(vtkLightComplexity==3)\n if (lightPositional[i] == 1){\n vertLight = lightPositionVC[i] - IStoVC(posIS);\n }else{\n vertLight = - lightDirectionVC[i];\n }\n #else\n vertLight = - lightDirectionVC[i];\n #endif\n // here we assume achromatic light, only intensity\n float dDotL = dot(viewDirectionVC, normalize(vertLight));\n // isotropic scatter returns 0.5 instead of 1/4pi to increase intensity\n float phase_attenuation = 0.5;\n if (abs(anisotropy) > EPSILON){\n phase_attenuation = phase_function(dDotL);\n }\n float vol_shadow = volume_shadow(posIS, normalize(rotateToIDX(vertLight)));\n secondary_contrib += tColor * vDiffuse * lightColor[i] * vol_shadow * phase_attenuation;\n secondary_contrib += tColor * vAmbient;\n }\n return secondary_contrib;\n}\n#endif\n\n//=======================================================================\n// local ambient occlusion\n#ifdef localAmbientOcclusionOn\nvec3 sample_direction_uniform(int i)\n{\n float rand = random() * 0.5;\n float theta = PI2 * (kernelSample[i][0] + rand);\n float phi = acos(2.0 * (kernelSample[i][1] + rand) -1.0) / 2.5;\n return normalize(vec3(cos(theta)*sin(phi), sin(theta)*sin(phi), cos(phi)));\n}\n\n// return a matrix that transform startDir into z axis; startDir should be normalized\nmat3 zBaseRotationalMatrix(vec3 startDir){\n vec3 axis = cross(startDir, vec3(0.0,0.0,1.0));\n float cosA = startDir.z;\n float k = 1.0 / (1.0 + cosA);\n mat3 matrix = mat3((axis.x * axis.x * k) + cosA, (axis.y * axis.x * k) - axis.z, (axis.z * axis.x * k) + axis.y,\n (axis.x * axis.y * k) + axis.z, (axis.y * axis.y * k) + cosA, (axis.z * axis.y * k) - axis.x,\n (axis.x * axis.z * k) - axis.y, (axis.y * axis.z * k) + axis.x, (axis.z * axis.z * k) + cosA);\n return matrix;\n}\n\nfloat computeLAO(vec3 posIS, float op, vec3 lightDir, vec4 normal){\n // apply LAO only at selected locations, otherwise return full brightness\n if (normal.w > 0.0 && op > 0.05){\n float total_transmittance = 0.0;\n mat3 inverseRotateBasis = inverse(zBaseRotationalMatrix(normalize(-normal.xyz)));\n vec3 currPos, randomDirStep;\n float weight, transmittance, opacity;\n for (int i = 0; i < kernelSize; i++)\n {\n randomDirStep = inverseRotateBasis * sample_direction_uniform(i) * sampleDistanceIS;\n weight = 1.0 - dot(normalize(lightDir), normalize(randomDirStep));\n currPos = posIS;\n transmittance = 1.0;\n for (int j = 0; j < kernelRadius ; j++){\n currPos += randomDirStep;\n // check if it's at clipping plane, if so return full brightness\n if (all(greaterThan(currPos, vec3(EPSILON))) && all(lessThan(currPos,vec3(1.0-EPSILON)))){\n opacity = texture2D(otexture, vec2(getTextureValue(currPos).r * oscale0 + oshift0, 0.5)).r;\n #ifdef vtkGradientOpacityOn\n opacity *= computeGradientOpacityFactor(normal.w, goscale0, goshift0, gomin0, gomax0);\n #endif\n transmittance *= 1.0 - opacity;\n }\n else{\n break;\n }\n }\n total_transmittance += transmittance / float(kernelRadius) * weight;\n\n // early termination if fully translucent\n if (total_transmittance > 1.0 - EPSILON){\n return 1.0;\n }\n }\n // average transmittance and reduce variance\n return clamp(total_transmittance / float(kernelSize), 0.3, 1.0);\n } else {\n return 1.0;\n }\n}\n#endif\n\n//=======================================================================\n// surface light contribution\n#if vtkLightComplexity > 0\n void applyLighting(inout vec3 tColor, vec4 normal)\n {\n vec3 diffuse = vec3(0.0, 0.0, 0.0);\n vec3 specular = vec3(0.0, 0.0, 0.0);\n float df, sf = 0.0;\n for (int i = 0; i < lightNum; i++){\n df = abs(dot(normal.rgb, -lightDirectionVC[i]));\n diffuse += df * lightColor[i];\n sf = pow( abs(dot(lightHalfAngleVC[i],normal.rgb)), vSpecularPower);\n specular += sf * lightColor[i];\n }\n tColor.rgb = tColor.rgb*(diffuse*vDiffuse + vAmbient) + specular*vSpecular;\n }\n #ifdef SurfaceShadowOn\n #if vtkLightComplexity < 3\n vec3 applyLightingDirectional(vec3 posIS, vec4 tColor, vec4 normal)\n {\n // everything in VC\n vec3 diffuse = vec3(0.0);\n vec3 specular = vec3(0.0);\n #ifdef localAmbientOcclusionOn\n vec3 ambient = vec3(0.0);\n #endif\n vec3 vertLightDirection;\n for (int i = 0; i < lightNum; i++){\n float ndotL,vdotR;\n vertLightDirection = lightDirectionVC[i];\n ndotL = dot(normal.xyz, vertLightDirection);\n if (ndotL < 0.0 && twoSidedLighting)\n {\n ndotL = -ndotL;\n }\n if (ndotL > 0.0)\n {\n diffuse += ndotL * lightColor[i];\n //specular\n vdotR = dot(-rayDirVC, normalize(2.0 * ndotL * -normal.xyz + vertLightDirection));\n if (vdotR > 0.0)\n {\n specular += pow(vdotR, vSpecularPower) * lightColor[i];\n }\n }\n #ifdef localAmbientOcclusionOn\n ambient += computeLAO(posIS, tColor.a, vertLightDirection, normal);\n #endif\n }\n #ifdef localAmbientOcclusionOn\n return tColor.rgb * (diffuse * vDiffuse + vAmbient * ambient) + specular*vSpecular;\n #else\n return tColor.rgb * (diffuse * vDiffuse + vAmbient) + specular*vSpecular;\n #endif\n }\n #else\n vec3 applyLightingPositional(vec3 posIS, vec4 tColor, vec4 normal, vec3 posVC)\n {\n // everything in VC\n vec3 diffuse = vec3(0.0);\n vec3 specular = vec3(0.0);\n #ifdef localAmbientOcclusionOn\n vec3 ambient = vec3(0.0);\n #endif\n vec3 vertLightDirection;\n for (int i = 0; i < lightNum; i++){\n float distance,attenuation,ndotL,vdotR;\n vec3 lightDir;\n if (lightPositional[i] == 1){\n lightDir = lightDirectionVC[i];\n vertLightDirection = posVC - lightPositionVC[i];\n distance = length(vertLightDirection);\n vertLightDirection = normalize(vertLightDirection);\n attenuation = 1.0 / (lightAttenuation[i].x\n + lightAttenuation[i].y * distance\n + lightAttenuation[i].z * distance * distance);\n // per OpenGL standard cone angle is 90 or less for a spot light\n if (lightConeAngle[i] <= 90.0){\n float coneDot = dot(vertLightDirection, lightDir);\n if (coneDot >= cos(radians(lightConeAngle[i]))){ // if inside cone\n attenuation = attenuation * pow(coneDot, lightExponent[i]);\n }\n else {\n attenuation = 0.0;\n }\n }\n ndotL = dot(normal.xyz, vertLightDirection);\n if (ndotL < 0.0 && twoSidedLighting)\n {\n ndotL = -ndotL;\n }\n if (ndotL > 0.0)\n {\n diffuse += ndotL * attenuation * lightColor[i];\n //specular\n vdotR = dot(-rayDirVC, normalize(2.0 * ndotL * -normal.xyz + vertLightDirection));\n if (vdotR > 0.0)\n {\n specular += pow(vdotR, vSpecularPower) * attenuation * lightColor[i];\n }\n }\n #ifdef localAmbientOcclusionOn\n ambient += computeLAO(posIS, tColor.a, vertLightDirection, normal);\n #endif\n } else {\n vertLightDirection = lightDirectionVC[i];\n ndotL = dot(normal.xyz, vertLightDirection);\n if (ndotL < 0.0 && twoSidedLighting)\n {\n ndotL = -ndotL;\n }\n if (ndotL > 0.0)\n {\n diffuse += ndotL * lightColor[i];\n //specular\n vdotR = dot(-rayDirVC, normalize(2.0 * ndotL * -normal.xyz + vertLightDirection));\n if (vdotR > 0.0)\n {\n specular += pow(vdotR, vSpecularPower) * lightColor[i];\n }\n }\n #ifdef localAmbientOcclusionOn\n ambient += computeLAO(posIS, tColor.a, vertLightDirection, normal);\n #endif\n }\n }\n #ifdef localAmbientOcclusionOn\n return tColor.rgb * (diffuse * vDiffuse + vAmbient * ambient) + specular*vSpecular;\n #else\n return tColor.rgb * (diffuse * vDiffuse + vAmbient) + specular*vSpecular;\n #endif\n }\n #endif\n #endif\n#endif\n\n//=======================================================================\n// Given a texture value compute the color and opacity\n//\nvec4 getColorForValue(vec4 tValue, vec3 posIS, vec3 tstep)\n{\n#ifdef vtkImageLabelOutlineOn\n vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\n vec4 centerValue = getTextureValue(centerPosIS);\n bool pixelOnBorder = false;\n vec4 tColor = texture2D(ctexture, vec2(centerValue.r * cscale0 + cshift0, 0.5));\n\n // Get alpha of segment from opacity function.\n tColor.a = texture2D(otexture, vec2(centerValue.r * oscale0 + oshift0, 0.5)).r;\n\n // Only perform outline check on fragments rendering voxels that aren't invisible.\n // Saves a bunch of needless checks on the background.\n // TODO define epsilon when building shader?\n if (float(tColor.a) > 0.01) {\n for (int i = -outlineThickness; i <= outlineThickness; i++) {\n for (int j = -outlineThickness; j <= outlineThickness; j++) {\n if (i == 0 || j == 0) {\n continue;\n }\n\n vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\n gl_FragCoord.y + float(j),\n gl_FragCoord.z, gl_FragCoord.w);\n\n vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\n vec4 value = getTextureValue(neighborPosIS);\n\n // If any of my neighbours are not the same value as I\n // am, this means I am on the border of the segment.\n // We can break the loops\n if (any(notEqual(value, centerValue))) {\n pixelOnBorder = true;\n break;\n }\n }\n\n if (pixelOnBorder == true) {\n break;\n }\n }\n\n // If I am on the border, I am displayed at full opacity\n if (pixelOnBorder == true) {\n tColor.a = outlineOpacity;\n }\n }\n\n#else\n // compute the normal and gradient magnitude if needed\n // We compute it as a vec4 if possible otherwise a mat4\n //\n vec4 goFactor = vec4(1.0,1.0,1.0,1.0);\n\n // compute the normal vectors as needed\n #if (vtkLightComplexity > 0) || defined(vtkGradientOpacityOn)\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n mat4 normalMat = computeMat4Normal(posIS, tValue, tstep);\n #if !defined(vtkComponent0Proportional)\n vec4 normal0 = normalMat[0];\n #endif\n #if !defined(vtkComponent1Proportional)\n vec4 normal1 = normalMat[1];\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n vec4 normal2 = normalMat[2];\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n vec4 normal3 = normalMat[3];\n #endif\n #endif\n #endif\n #else\n vec4 normalLight;\n #ifdef vtkComputeNormalFromOpacity\n #ifdef vtkGradientOpacityOn\n mat3 scalarInterp;\n vec3 secondaryGradientMag;\n vec4 normal0 = computeNormalForDensity(posIS, tValue.a, tstep, scalarInterp, secondaryGradientMag);\n normalLight = computeDensityNormal(tValue.a, normal0.w, scalarInterp,secondaryGradientMag);\n if (length(normalLight) == 0.0){\n normalLight = normal0;\n }\n #else\n vec3 scalarInterp;\n vec4 normal0 = computeNormalForDensity(posIS, tValue.a, tstep, scalarInterp);\n if (length(normal0)>0.0){\n normalLight = computeDensityNormal(tValue.a,scalarInterp);\n if (length(normalLight)==0.0){\n normalLight = normal0;\n }\n }\n #endif\n #else\n vec4 normal0 = computeNormal(posIS, tValue.a, tstep);\n normalLight = normal0;\n #endif\n #endif\n #endif\n\n // compute gradient opacity factors as needed\n #if defined(vtkGradientOpacityOn)\n #if !defined(vtkComponent0Proportional)\n goFactor.x =\n computeGradientOpacityFactor(normal0.a, goscale0, goshift0, gomin0, gomax0);\n #endif\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n #if !defined(vtkComponent1Proportional)\n goFactor.y =\n computeGradientOpacityFactor(normal1.a, goscale1, goshift1, gomin1, gomax1);\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n goFactor.z =\n computeGradientOpacityFactor(normal2.a, goscale2, goshift2, gomin2, gomax2);\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n goFactor.w =\n computeGradientOpacityFactor(normal3.a, goscale3, goshift3, gomin3, gomax3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n // single component is always independent\n #if vtkNumComponents == 1\n vec4 tColor = texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, 0.5));\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n if (tColor.a < EPSILON){\n return vec4(0.0);\n }\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n vec4 tColor = mix0*texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, height0));\n #if !defined(vtkComponent0Proportional)\n tColor.a = goFactor.x*mix0*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n tColor *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix0));\n #endif\n\n vec3 tColor1 = mix1*texture2D(ctexture, vec2(tValue.g * cscale1 + cshift1, height1)).rgb;\n #if !defined(vtkComponent1Proportional)\n tColor.a += goFactor.y*mix1*texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n tColor1 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix1));\n #endif\n\n #if vtkNumComponents >= 3\n vec3 tColor2 = mix2*texture2D(ctexture, vec2(tValue.b * cscale2 + cshift2, height2)).rgb;\n #if !defined(vtkComponent2Proportional)\n tColor.a += goFactor.z*mix2*texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n tColor2 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix2));\n #endif\n\n #if vtkNumComponents >= 4\n vec3 tColor3 = mix3*texture2D(ctexture, vec2(tValue.a * cscale3 + cshift3, height3)).rgb;\n #if !defined(vtkComponent3Proportional)\n tColor.a += goFactor.w*mix3*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n tColor3 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix3));\n #endif\n #endif\n #endif\n #else // then not independent\n\n #if vtkNumComponents == 2\n float lum = tValue.r * cscale0 + cshift0;\n float alpha = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale1 + oshift1, 0.5)).r;\n vec4 tColor = vec4(lum, lum, lum, alpha);\n #endif\n #if vtkNumComponents == 3\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale0 + oshift0, 0.5)).r;\n #endif\n #if vtkNumComponents == 4\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, 0.5)).r;\n #endif\n #endif // dependent\n\n // apply lighting if requested as appropriate\n #if vtkLightComplexity > 0\n #if !defined(vtkComponent0Proportional)\n #if vtkNumComponents == 1\n #ifdef SurfaceShadowOn\n #if vtkLightComplexity < 3\n vec3 tColorS = applyLightingDirectional(posIS, tColor, normalLight);\n #else\n vec3 tColorS = applyLightingPositional(posIS, tColor, normalLight, IStoVC(posIS));\n #endif\n #endif\n\n #ifdef VolumeShadowOn\n vec3 tColorVS = applyShadowRay(tColor.rgb, posIS, rayDirVC);\n #ifdef SurfaceShadowOn\n float vol_coef = volumetricScatteringBlending * (1.0 - tColor.a / 2.0) * (1.0 - atan(normalLight.w) * INV4PI);\n tColor.rgb = (1.0-vol_coef) * tColorS + vol_coef * tColorVS;\n #else\n tColor.rgb = tColorVS;\n #endif\n #else\n tColor.rgb = tColorS;\n #endif\n\n #else\n applyLighting(tColor.rgb, normal0);\n #endif\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n #if !defined(vtkComponent1Proportional)\n applyLighting(tColor1, normal1);\n #endif\n #if vtkNumComponents >= 3\n #if !defined(vtkComponent2Proportional)\n applyLighting(tColor2, normal2);\n #endif\n #if vtkNumComponents >= 4\n #if !defined(vtkComponent3Proportional)\n applyLighting(tColor3, normal3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n// perform final independent blend as needed\n#if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n tColor.rgb += tColor1;\n#if vtkNumComponents >= 3\n tColor.rgb += tColor2;\n#if vtkNumComponents >= 4\n tColor.rgb += tColor3;\n#endif\n#endif\n#endif\n\n#endif\nreturn tColor;\n}\n\nbool valueWithinScalarRange(vec4 val, vec4 min, vec4 max) {\n bool withinRange = false;\n #if vtkNumComponents == 1\n if (val.r >= min.r && val.r <= max.r) {\n withinRange = true;\n }\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents == 2\n if (val.r >= min.r && val.r <= max.r &&\n val.g >= min.g && val.g <= max.g) {\n withinRange = true;\n }\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 3\n if (all(greaterThanEqual(val, ipScalarRangeMin)) &&\n all(lessThanEqual(val, ipScalarRangeMax))) {\n withinRange = true;\n }\n #endif\n return withinRange;\n}\n\n//=======================================================================\n// Apply the specified blend mode operation along the ray's path.\n//\nvoid applyBlend(vec3 posIS, vec3 endIS, vec3 tdims)\n{\n vec3 tstep = 1.0/tdims;\n\n // start slightly inside and apply some jitter\n vec3 delta = endIS - posIS;\n vec3 stepIS = normalize(delta)*sampleDistanceIS;\n float raySteps = length(delta)/sampleDistanceIS;\n\n // avoid 0.0 jitter\n float jitter = 0.01 + 0.99*texture2D(jtexture, gl_FragCoord.xy/32.0).r;\n float stepsTraveled = jitter;\n\n // local vars for the loop\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n vec4 tValue;\n vec4 tColor;\n\n // if we have less than one step then pick the middle point\n // as our value\n // if (raySteps <= 1.0)\n // {\n // posIS = (posIS + endIS)*0.5;\n // }\n\n // Perform initial step at the volume boundary\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n #if vtkBlendMode == 0 // COMPOSITE_BLEND\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps);\n gl_FragData[0] = tColor;\n return;\n }\n\n tColor.a = 1.0 - pow(1.0 - tColor.a, jitter);\n color = vec4(tColor.rgb*tColor.a, tColor.a);\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n float mix = (1.0 - color.a);\n\n // this line should not be needed but nvidia seems to not handle\n // the break correctly on windows/chrome 58 angle\n //mix = mix * sign(max(raySteps - stepsTraveled - 1.0, 0.0));\n\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n stepsTraveled++;\n posIS += stepIS;\n if (color.a > 0.99) { color.a = 1.0; break; }\n }\n\n if (color.a < 0.99 && (raySteps - stepsTraveled) > 0.0)\n {\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\n\n float mix = (1.0 - color.a);\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n }\n\n gl_FragData[0] = vec4(color.rgb/color.a, color.a);\n #endif\n #if vtkBlendMode == 1 || vtkBlendMode == 2\n // MAXIMUM_INTENSITY_BLEND || MINIMUM_INTENSITY_BLEND\n // Find maximum/minimum intensity along the ray.\n\n // Define the operation we will use (min or max)\n #if vtkBlendMode == 1\n #define OP max\n #else\n #define OP min\n #endif\n\n // If the clipping range is shorter than the sample distance\n // we can skip the sampling loop along the ray.\n if (raySteps <= 1.0)\n {\n gl_FragData[0] = getColorForValue(tValue, posIS, tstep);\n return;\n }\n\n vec4 value = tValue;\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // Update the maximum value if necessary\n value = OP(tValue, value);\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n tValue = getTextureValue(posIS);\n value = OP(tValue, value);\n\n // Now map through opacity and color\n gl_FragData[0] = getColorForValue(value, posIS, tstep);\n #endif\n #if vtkBlendMode == 3 || vtkBlendMode == 4 //AVERAGE_INTENSITY_BLEND || ADDITIVE_BLEND\n vec4 sum = vec4(0.);\n\n if (valueWithinScalarRange(tValue, ipScalarRangeMin, ipScalarRangeMax)) {\n sum += tValue;\n }\n\n if (raySteps <= 1.0) {\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n return;\n }\n\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation.\n // Notes:\n // - We are comparing all values in the texture to see if any of them\n // are outside of the scalar range. In the future we might want to allow\n // scalar ranges for each component.\n if (valueWithinScalarRange(tValue, ipScalarRangeMin, ipScalarRangeMax)) {\n // Sum the values across each step in the path\n sum += tValue;\n }\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the IPScalarRange to disregard scalar values, not in the range of interest, from the average computation\n if (valueWithinScalarRange(tValue, ipScalarRangeMin, ipScalarRangeMax)) {\n sum += tValue;\n\n stepsTraveled++;\n }\n\n #if vtkBlendMode == 3 // Average\n sum /= vec4(stepsTraveled, stepsTraveled, stepsTraveled, 1.0);\n #endif\n\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n #endif\n #if vtkBlendMode == 5 // RADON\n float normalizedRayIntensity = 1.0;\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tValue = getTextureValue(posIS);\n normalizedRayIntensity = normalizedRayIntensity - sampleDistance*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n gl_FragData[0] = texture2D(ctexture, vec2(normalizedRayIntensity, 0.5));\n return;\n }\n\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar value\n tValue = getTextureValue(posIS);\n\n // Convert scalar value to normalizedRayIntensity coefficient and accumulate normalizedRayIntensity\n normalizedRayIntensity = normalizedRayIntensity - sampleDistance*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n\n posIS += stepIS;\n stepsTraveled++;\n }\n\n // map normalizedRayIntensity to color\n gl_FragData[0] = texture2D(ctexture, vec2(normalizedRayIntensity , 0.5));\n\n #endif\n}\n\n//=======================================================================\n// Compute a new start and end point for a given ray based\n// on the provided bounded clipping plane (aka a rectangle)\nvoid getRayPointIntersectionBounds(\n vec3 rayPos, vec3 rayDir,\n vec3 planeDir, float planeDist,\n inout vec2 tbounds, vec3 vPlaneX, vec3 vPlaneY,\n float vSize1, float vSize2)\n{\n float result = dot(rayDir, planeDir);\n if (abs(result) < 1e-6)\n {\n return;\n }\n result = -1.0 * (dot(rayPos, planeDir) + planeDist) / result;\n vec3 xposVC = rayPos + rayDir*result;\n vec3 vxpos = xposVC - vOriginVC;\n vec2 vpos = vec2(\n dot(vxpos, vPlaneX),\n dot(vxpos, vPlaneY));\n\n // on some apple nvidia systems this does not work\n // if (vpos.x < 0.0 || vpos.x > vSize1 ||\n // vpos.y < 0.0 || vpos.y > vSize2)\n // even just\n // if (vpos.x < 0.0 || vpos.y < 0.0)\n // fails\n // so instead we compute a value that represents in and out\n //and then compute the return using this value\n float xcheck = max(0.0, vpos.x * (vpos.x - vSize1)); // 0 means in bounds\n float check = sign(max(xcheck, vpos.y * (vpos.y - vSize2))); // 0 means in bounds, 1 = out\n\n tbounds = mix(\n vec2(min(tbounds.x, result), max(tbounds.y, result)), // in value\n tbounds, // out value\n check); // 0 in 1 out\n}\n\n//=======================================================================\n// given a\n// - ray direction (rayDir)\n// - starting point (vertexVCVSOutput)\n// - bounding planes of the volume\n// - optionally depth buffer values\n// - far clipping plane\n// compute the start/end distances of the ray we need to cast\nvec2 computeRayDistances(vec3 rayDir, vec3 tdims)\n{\n vec2 dists = vec2(100.0*camFar, -1.0);\n\n vec3 vSize = vSpacing*tdims;\n\n // all this is in View Coordinates\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal0, vPlaneDistance0, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal1, vPlaneDistance1, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal2, vPlaneDistance2, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal3, vPlaneDistance3, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal4, vPlaneDistance4, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal5, vPlaneDistance5, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n\n //VTK::ClipPlane::Impl\n\n // do not go behind front clipping plane\n dists.x = max(0.0,dists.x);\n\n // do not go PAST far clipping plane\n float farDist = -camThick/rayDir.z;\n dists.y = min(farDist,dists.y);\n\n // Do not go past the zbuffer value if set\n // This is used for intermixing opaque geometry\n //VTK::ZBuffer::Impl\n\n return dists;\n}\n\n//=======================================================================\n// Compute the index space starting position (pos) and end\n// position\n//\nvoid computeIndexSpaceValues(out vec3 pos, out vec3 endPos, vec3 rayDir, vec2 dists)\n{\n // compute starting and ending values in volume space\n pos = vertexVCVSOutput + dists.x*rayDir;\n pos = pos - vOriginVC;\n // convert to volume basis and origin\n pos = vec3(\n dot(pos, vPlaneNormal0),\n dot(pos, vPlaneNormal2),\n dot(pos, vPlaneNormal4));\n\n endPos = vertexVCVSOutput + dists.y*rayDir;\n endPos = endPos - vOriginVC;\n endPos = vec3(\n dot(endPos, vPlaneNormal0),\n dot(endPos, vPlaneNormal2),\n dot(endPos, vPlaneNormal4));\n\n float delta = length(endPos - pos);\n\n pos *= vVCToIJK;\n endPos *= vVCToIJK;\n\n float delta2 = length(endPos - pos);\n sampleDistanceIS = sampleDistance*delta2/delta;\n #ifdef VolumeShadowOn\n sampleDistanceISVS = sampleDistanceIS * volumeShadowSamplingDistFactor;\n #endif\n}\n\nvoid main()\n{\n\n if (cameraParallel == 1)\n {\n // Camera is parallel, so the rayDir is just the direction of the camera.\n rayDirVC = vec3(0.0, 0.0, -1.0);\n } else {\n // camera is at 0,0,0 so rayDir for perspective is just the vc coord\n rayDirVC = normalize(vertexVCVSOutput);\n }\n\n vec3 tdims = vec3(volumeDimensions);\n\n // compute the start and end points for the ray\n vec2 rayStartEndDistancesVC = computeRayDistances(rayDirVC, tdims);\n\n // do we need to composite? aka does the ray have any length\n // If not, bail out early\n if (rayStartEndDistancesVC.y <= rayStartEndDistancesVC.x)\n {\n discard;\n }\n\n // IS = Index Space\n vec3 posIS;\n vec3 endIS;\n computeIndexSpaceValues(posIS, endIS, rayDirVC, rayStartEndDistancesVC);\n\n // Perform the blending operation along the ray\n applyBlend(posIS, endIS, tdims);\n}\n";function Fn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Un=ht.t7,kn=ht.E0;function Gn(e,t){t.classHierarchy.push("vtkOpenGLVolumeMapper"),e.buildPass=function(){t.zBufferTexture=null},e.zBufferPass=function(e,r){if(e){var n=r.getZBufferTexture();n!==t.zBufferTexture&&(t.zBufferTexture=n)}},e.opaqueZBufferPass=function(t,r){return e.zBufferPass(t,r)},e.volumePass=function(r,n){if(r){t._openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.jitterTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.scalarTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.opacityTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLVolume=e.getFirstAncestorOfType("vtkOpenGLVolume");var a=t.openGLVolume.getRenderable();t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer");var o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera()),e.renderPiece(o,a)}},e.buildShaders=function(t,r,n){e.getShaderTemplate(t,r,n),e.replaceShaderValues(t,r,n)},e.getShaderTemplate=function(e,t,r){e.Vertex=Nn,e.Fragment=Bn,e.Geometry=""},e.replaceShaderValues=function(r,n,a){var o=r.Fragment;a.getProperty().getInterpolationType()===Vn.LINEAR&&(o=Sr.substitute(o,"//VTK::TrilinearOn","#define vtkTrilinearOn").result),!0===a.getProperty().getUseLabelOutline()&&(o=Sr.substitute(o,"//VTK::ImageLabelOutlineOn","#define vtkImageLabelOutlineOn").result);var i=t.scalarTexture.getComponents();o=Sr.substitute(o,"//VTK::NumComponents","#define vtkNumComponents ".concat(i)).result;var s=a.getProperty().getIndependentComponents();if(s){o=Sr.substitute(o,"//VTK::IndependentComponentsOn","#define vtkIndependentComponentsOn").result;for(var l=[],c=0;c<i;c++)a.getProperty().getOpacityMode(c)===Ln.PROPORTIONAL&&l.push("#define vtkComponent".concat(c,"Proportional"));l.length>0&&(o=Sr.substitute(o,"//VTK::vtkProportionalComponents",l.join("\n")).result)}var u=t.currentInput.getSpatialExtent(),d=t.currentInput.getSpacing(),f=new Float64Array(3);ot.R3.set(f,(u[1]-u[0])*d[0],(u[3]-u[2])*d[1],(u[5]-u[4])*d[2]);var p=ot.R3.length(f)/t.renderable.getSampleDistance();o=Sr.substitute(o,"//VTK::MaximumSamplesValue","".concat(Math.ceil(p))).result,o=Sr.substitute(o,"//VTK::LightComplexity","#define vtkLightComplexity ".concat(t.lastLightComplexity)).result,t.lastLightComplexity>0&&(t.renderable.getVolumetricScatteringBlending()>0&&(o=Sr.substitute(o,"//VTK::VolumeShadowOn","#define VolumeShadowOn").result),t.renderable.getVolumetricScatteringBlending()<1&&(o=Sr.substitute(o,"//VTK::SurfaceShadowOn","#define SurfaceShadowOn").result),t.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0&&(o=Sr.substitute(o,"//VTK::localAmbientOcclusionOn","#define localAmbientOcclusionOn").result)),t.gopacity=a.getProperty().getUseGradientOpacity(0);for(var g=1;s&&!t.gopacity&&g<i;++g)a.getProperty().getUseGradientOpacity(g)&&(t.gopacity=!0);t.gopacity&&(o=Sr.substitute(o,"//VTK::GradientOpacityOn","#define vtkGradientOpacityOn").result),t.renderable.getComputeNormalFromOpacity()&&(o=Sr.substitute(o,"//VTK::vtkComputeNormalFromOpacity","#define vtkComputeNormalFromOpacity").result),null!==t.zBufferTexture&&(o=Sr.substitute(o,"//VTK::ZBuffer::Dec",["uniform sampler2D zBufferTexture;","uniform float vpWidth;","uniform float vpHeight;"]).result,o=Sr.substitute(o,"//VTK::ZBuffer::Impl",["vec4 depthVec = texture2D(zBufferTexture, vec2(gl_FragCoord.x / vpWidth, gl_FragCoord.y/vpHeight));","float zdepth = (depthVec.r*256.0 + depthVec.g)/257.0;","zdepth = zdepth * 2.0 - 1.0;","if (cameraParallel == 0) {","zdepth = -2.0 * camFar * camNear / (zdepth*(camFar-camNear)-(camFar+camNear)) - camNear;}","else {","zdepth = (zdepth + 1.0) * 0.5 * (camFar - camNear);}\n","zdepth = -zdepth/rayDir.z;","dists.y = min(zdepth,dists.y);"]).result),o=Sr.substitute(o,"//VTK::BlendMode","".concat(t.renderable.getBlendMode())).result,r.Fragment=o,e.replaceShaderLight(r,n,a),e.replaceShaderClippingPlane(r,n,a)},e.replaceShaderLight=function(e,r,n){if(0!==t.lastLightComplexity){var a=e.Fragment,o=0;r.getLights().forEach((function(e){e.getSwitch()&&(o+=1)})),a=Sr.substitute(a,"//VTK::Light::Dec",["uniform int lightNum;","uniform bool twoSidedLighting;","uniform vec3 lightColor[".concat(o,"];"),"uniform vec3 lightDirectionVC[".concat(o,"]; // normalized"),"uniform vec3 lightHalfAngleVC[".concat(o,"];"),"//VTK::Light::Dec"],!1).result,3===t.lastLightComplexity&&(a=Sr.substitute(a,"//VTK::Light::Dec",["uniform vec3 lightPositionVC[".concat(o,"];"),"uniform vec3 lightAttenuation[".concat(o,"];"),"uniform float lightConeAngle[".concat(o,"];"),"uniform float lightExponent[".concat(o,"];"),"uniform int lightPositional[".concat(o,"];")],!1).result),t.renderable.getVolumetricScatteringBlending()>0&&(a=Sr.substitute(a,"//VTK::VolumeShadow::Dec",["uniform float volumetricScatteringBlending;","uniform float giReach;","uniform float volumeShadowSamplingDistFactor;","uniform float anisotropy;","uniform float anisotropy2;"],!1).result),t.renderable.getLocalAmbientOcclusion()&&n.getProperty().getAmbient()>0&&(a=Sr.substitute(a,"//VTK::LAO::Dec",["uniform int kernelRadius;","uniform vec2 kernelSample[".concat(t.renderable.getLAOKernelRadius(),"];"),"uniform int kernelSize;"],!1).result),e.Fragment=a}},e.replaceShaderClippingPlane=function(e,r,n){var a=e.Fragment;if(t.renderable.getClippingPlanes().length>0){var o=t.renderable.getClippingPlanes().length;a=Sr.substitute(a,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","//VTK::ClipPlane::Dec"],!1).result,a=Sr.substitute(a,"//VTK::ClipPlane::Impl",["for(int i = 0; i < ".concat(o,"; i++) {")," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}e.Fragment=a},e.getNeedToRebuildShaders=function(r,n,a){var o=0;a.getProperty().getShade()&&t.renderable.getBlendMode()===C.COMPOSITE_BLEND&&(o=0,t.numberOfLights=0,n.getLights().forEach((function(e){e.getSwitch()>0&&(t.numberOfLights++,0===o&&(o=1)),1===o&&(t.numberOfLights>1||1!==e.getIntensity()||!e.lightTypeIsHeadLight())&&(o=2),o<3&&e.getPositional()&&(o=3)})));var i=!1;t.lastLightComplexity!==o&&(t.lastLightComplexity=o,i=!0);var s=t.scalarTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=!1,u=[];if(l){for(var d=0;d<s;d++)u.push(a.getProperty().getOpacityMode(d));u.length>0&&(c=!0)}var f=t.currentInput.getSpatialExtent(),p=t.currentInput.getSpacing(),g=new Float64Array(3);ot.R3.set(g,(f[1]-f[0])*p[0],(f[3]-f[2])*p[1],(f[5]-f[4])*p[2]);var m=ot.R3.length(g)/t.renderable.getSampleDistance(),h={interpolationType:a.getProperty().getInterpolationType(),useLabelOutline:a.getProperty().getUseLabelOutline(),numComp:s,usesProportionalComponents:c,iComps:l,maxSamples:m,useGradientOpacity:a.getProperty().getUseGradientOpacity(0),blendMode:t.renderable.getBlendMode(),proportionalComponents:u};return t.previousState&&t.previousState.interpolationType===h.interpolationType&&t.previousState.useLabelOutline===h.useLabelOutline&&t.previousState.numComp===h.numComp&&t.previousState.usesProportionalComponents===h.usesProportionalComponents&&t.previousState.iComps===h.iComps&&t.previousState.maxSamples===h.maxSamples&&t.previousState.useGradientOpacity===h.useGradientOpacity&&t.previousState.blendMode===h.blendMode&&function(e,t){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}(t.previousState.proportionalComponents,h.proportionalComponents)?!!(0===r.getProgram()||i||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||!!t.lastZBufferTexture!=!!t.zBufferTexture||r.getShaderSourceTime().getMTime()<e.getMTime()||r.getShaderSourceTime().getMTime()<t.renderable.getMTime())&&(t.lastZBufferTexture=t.zBufferTexture,!0):(t.previousState=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Fn(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},h),!0)},e.updateShaders=function(r,n,a){if(t.lastBoundBO=r,e.getNeedToRebuildShaders(r,n,a)){var o={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(o,n,a);var i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);i!==r.getProgram()&&(r.setProgram(i),r.getVAO().releaseGraphicsResources()),r.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(r.getProgram());r.getVAO().bind(),e.setMapperShaderParameters(r,n,a),e.setCameraShaderParameters(r,n,a),e.setPropertyShaderParameters(r,n,a),e.getClippingPlaneShaderParameters(r,n,a)},e.setMapperShaderParameters=function(e,r,n){var a=e.getProgram();e.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())&&(a.isAttributeUsed("vertexDC")&&(e.getVAO().addAttributeArray(a,e.getCABO(),"vertexDC",e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||kn("Error setting vertexDC in shader VAO.")),e.getAttributeUpdateTime().modified()),a.setUniformi("texture1",t.scalarTexture.getTextureUnit()),a.setUniformf("sampleDistance",t.renderable.getSampleDistance());for(var o=t.scalarTexture.getVolumeInfo(),i=t.renderable.getIpScalarRange(),s=[],l=[],c=0;c<4;c++)s[c]=i[0]*o.dataComputedScale[c]+o.dataComputedOffset[c],l[c]=i[1]*o.dataComputedScale[c]+o.dataComputedOffset[c],s[c]=(s[c]-o.offset[c])/o.scale[c],l[c]=(l[c]-o.offset[c])/o.scale[c];if(a.setUniform4f("ipScalarRangeMin",s[0],s[1],s[2],s[3]),a.setUniform4f("ipScalarRangeMax",l[0],l[1],l[2],l[3]),null!==t.zBufferTexture){a.setUniformi("zBufferTexture",t.zBufferTexture.getTextureUnit());var u=t._useSmallViewport?[t._smallViewportWidth,t._smallViewportHeight]:t._openGLRenderWindow.getFramebufferSize();a.setUniformf("vpWidth",u[0]),a.setUniformf("vpHeight",u[1])}},e.setCameraShaderParameters=function(r,n,a){var o=t.openGLCamera.getKeyMatrices(n),i=t.openGLVolume.getKeyMatrices();ot._E.multiply(t.modelToView,o.wcvc,i.mcwc);var s=r.getProgram(),l=t.openGLCamera.getRenderable(),c=l.getClippingRange();s.setUniformf("camThick",c[1]-c[0]),s.setUniformf("camNear",c[0]),s.setUniformf("camFar",c[1]);for(var u=t.currentInput.getBounds(),d=t.currentInput.getDimensions(),f=new Float64Array(3),p=new Float64Array(3),g=1,m=-1,h=1,v=-1,y=0;y<8;++y){if(ot.R3.set(f,u[y%2],u[2+Math.floor(y/2)%2],u[4+Math.floor(y/4)]),ot.R3.transformMat4(f,f,t.modelToView),!l.getParallelProjection()){ot.R3.normalize(p,f);var b=-c[0]/f[2];ot.R3.scale(f,p,b)}ot.R3.transformMat4(f,f,o.vcpc),g=Math.min(f[0],g),m=Math.max(f[0],m),h=Math.min(f[1],h),v=Math.max(f[1],v)}s.setUniformf("dcxmin",g),s.setUniformf("dcxmax",m),s.setUniformf("dcymin",h),s.setUniformf("dcymax",v),s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",l.getParallelProjection());var T=t.currentInput.getSpatialExtent(),C=t.currentInput.getSpacing(),x=new Float64Array(3);ot.R3.set(x,(T[1]-T[0])*C[0],(T[3]-T[2])*C[1],(T[5]-T[4])*C[2]),s.setUniform3f("vSpacing",C[0],C[1],C[2]),ot.R3.set(f,T[0],T[2],T[4]),t.currentInput.indexToWorldVec3(f,f),ot.R3.transformMat4(f,f,t.modelToView),s.setUniform3f("vOriginVC",f[0],f[1],f[2]);var S=t.currentInput.getIndexToWorld();ot._E.multiply(t.idxToView,t.modelToView,S),ot.wO.multiply(t.idxNormalMatrix,o.normalMatrix,i.normalMatrix),ot.wO.multiply(t.idxNormalMatrix,t.idxNormalMatrix,t.currentInput.getDirectionByReference());var P=ot.R3.length(x)/t.renderable.getSampleDistance();P>t.renderable.getMaximumSamplesPerRay()&&Un("The number of steps required ".concat(Math.ceil(P)," is larger than the\n specified maximum number of steps ").concat(t.renderable.getMaximumSamplesPerRay(),".\n Please either change the\n volumeMapper sampleDistance or its maximum number of samples."));var w=new Float64Array(3);if(ot.R3.set(w,1,1,1),ot.R3.divide(w,w,x),s.setUniform3f("vVCToIJK",w[0],w[1],w[2]),s.setUniform3i("volumeDimensions",d[0],d[1],d[2]),!t._openGLRenderWindow.getWebgl2()){var O=t.scalarTexture.getVolumeInfo();s.setUniformf("texWidth",t.scalarTexture.getWidth()),s.setUniformf("texHeight",t.scalarTexture.getHeight()),s.setUniformi("xreps",O.xreps),s.setUniformi("xstride",O.xstride),s.setUniformi("ystride",O.ystride)}for(var I=new Float64Array(3),A=new Float64Array(3),R=0;R<6;++R){switch(R){case 1:ot.R3.set(I,-1,0,0),ot.R3.set(A,T[0],T[2],T[4]);break;case 2:ot.R3.set(I,0,1,0),ot.R3.set(A,T[1],T[3],T[5]);break;case 3:ot.R3.set(I,0,-1,0),ot.R3.set(A,T[0],T[2],T[4]);break;case 4:ot.R3.set(I,0,0,1),ot.R3.set(A,T[1],T[3],T[5]);break;case 5:ot.R3.set(I,0,0,-1),ot.R3.set(A,T[0],T[2],T[4]);break;default:ot.R3.set(I,1,0,0),ot.R3.set(A,T[1],T[3],T[5])}ot.R3.transformMat3(I,I,t.idxNormalMatrix),ot.R3.transformMat4(A,A,t.idxToView);var E=-1*ot.R3.dot(A,I);s.setUniform3f("vPlaneNormal".concat(R),I[0],I[1],I[2]),s.setUniformf("vPlaneDistance".concat(R),E)}if(a.getProperty().getUseLabelOutline()){var M=t.currentInput.getWorldToIndex();s.setUniformMatrix("vWCtoIDX",M);var D=n.getActiveCamera(),V=D.getClippingRange(),L=(0,Ft.Z)(V,2),_=L[0],N=L[1],B=D.getDistance();D.setClippingRange(B,B+.1);var F=t.openGLCamera.getKeyMatrices(n);ot._E.invert(t.projectionToWorld,F.wcpc),D.setClippingRange(_,N),t.openGLCamera.getKeyMatrices(n),s.setUniformMatrix("PCWCMatrix",t.projectionToWorld);var U=e.getRenderTargetSize();s.setUniformf("vpWidth",U[0]),s.setUniformf("vpHeight",U[1]);var k=e.getRenderTargetOffset();s.setUniformf("vpOffsetX",k[0]/U[0]),s.setUniformf("vpOffsetY",k[1]/U[1])}if(ot._E.invert(t.projectionToView,o.vcpc),s.setUniformMatrix("PCVCMatrix",t.projectionToView),0!==t.lastLightComplexity){var G=0,W=[],z=[],j=[];if(n.getLights().forEach((function(e){if(e.getSwitch()>0){var t=e.getColor(),r=e.getIntensity();W[0+3*G]=t[0]*r,W[1+3*G]=t[1]*r,W[2+3*G]=t[2]*r;var n=e.getDirection();ot.R3.set(I,n[0],n[1],n[2]),ot.R3.transformMat3(I,I,o.normalMatrix),ot.R3.normalize(I,I),z[0+3*G]=I[0],z[1+3*G]=I[1],z[2+3*G]=I[2],j[0+3*G]=-.5*I[0],j[1+3*G]=-.5*I[1],j[2+3*G]=-.5*(I[2]-1),G++}})),s.setUniformi("twoSidedLighting",n.getTwoSidedLighting()),s.setUniformi("lightNum",G),s.setUniform3fv("lightColor",W),s.setUniform3fv("lightDirectionVC",z),s.setUniform3fv("lightHalfAngleVC",j),3===t.lastLightComplexity){G=0;var H=[],K=[],Z=[],X=[],q=[];n.getLights().forEach((function(e){if(e.getSwitch()>0){var r=e.getAttenuationValues();K[0+3*G]=r[0],K[1+3*G]=r[1],K[2+3*G]=r[2],X[G]=e.getExponent(),Z[G]=e.getConeAngle(),q[G]=e.getPositional();var n=e.getTransformedPosition();ot.R3.transformMat4(n,n,t.modelToView),H[0+3*G]=n[0],H[1+3*G]=n[1],H[2+3*G]=n[2],G+=1}})),s.setUniform3fv("lightPositionVC",H),s.setUniform3fv("lightAttenuation",K),s.setUniformfv("lightConeAngle",Z),s.setUniformfv("lightExponent",X),s.setUniformiv("lightPositional",q)}if(t.renderable.getVolumetricScatteringBlending()>0&&(s.setUniformf("giReach",t.renderable.getGlobalIlluminationReach()),s.setUniformf("volumetricScatteringBlending",t.renderable.getVolumetricScatteringBlending()),s.setUniformf("volumeShadowSamplingDistFactor",t.renderable.getVolumeShadowSamplingDistFactor()),s.setUniformf("anisotropy",t.renderable.getAnisotropy()),s.setUniformf("anisotropy2",Math.pow(t.renderable.getAnisotropy(),2))),t.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0){var Y=t.renderable.getLAOKernelSize();s.setUniformi("kernelSize",Y);for(var $=[],Q=0;Q<Y;Q++)$[2*Q]=.5*Math.random(),$[2*Q+1]=.5*Math.random();s.setUniform2fv("kernelSample",$),s.setUniformi("kernelRadius",t.renderable.getLAOKernelRadius())}}},e.setPropertyShaderParameters=function(e,r,n){var a=e.getProgram();a.setUniformi("ctexture",t.colorTexture.getTextureUnit()),a.setUniformi("otexture",t.opacityTexture.getTextureUnit()),a.setUniformi("jtexture",t.jitterTexture.getTextureUnit());var o=t.scalarTexture.getVolumeInfo(),i=n.getProperty(),s=t.scalarTexture.getComponents(),l=n.getProperty().getIndependentComponents();if(l&&s>=2)for(var c=0;c<s;c++)a.setUniformf("mix".concat(c),n.getProperty().getComponentWeight(c));for(var u=0;u<s;u++){var d=l?u:0,f=o.scale[u],p=i.getScalarOpacity(d).getRange(),g=f/(p[1]-p[0]),m=(o.offset[u]-p[0])/(p[1]-p[0]);a.setUniformf("oshift".concat(u),m),a.setUniformf("oscale".concat(u),g);var h=i.getRGBTransferFunction(d).getRange(),v=(o.offset[u]-h[0])/(h[1]-h[0]),y=f/(h[1]-h[0]);a.setUniformf("cshift".concat(u),v),a.setUniformf("cscale".concat(u),y)}if(t.gopacity)if(l)for(var b=0;b<s;++b){var T=o.scale[b];if(i.getUseGradientOpacity(b)){var C=i.getGradientOpacityMinimumOpacity(b),x=i.getGradientOpacityMaximumOpacity(b);a.setUniformf("gomin".concat(b),C),a.setUniformf("gomax".concat(b),x);var S=[i.getGradientOpacityMinimumValue(b),i.getGradientOpacityMaximumValue(b)];a.setUniformf("goscale".concat(b),T*(x-C)/(S[1]-S[0])),a.setUniformf("goshift".concat(b),-S[0]*(x-C)/(S[1]-S[0])+C)}else a.setUniformf("gomin".concat(b),1),a.setUniformf("gomax".concat(b),1),a.setUniformf("goscale".concat(b),0),a.setUniformf("goshift".concat(b),1)}else{var P=o.scale[s-1],w=i.getGradientOpacityMinimumOpacity(0),O=i.getGradientOpacityMaximumOpacity(0);a.setUniformf("gomin0",w),a.setUniformf("gomax0",O);var I=[i.getGradientOpacityMinimumValue(0),i.getGradientOpacityMaximumValue(0)];a.setUniformf("goscale0",P*(O-w)/(I[1]-I[0])),a.setUniformf("goshift0",-I[0]*(O-w)/(I[1]-I[0])+w)}if(!0===n.getProperty().getUseLabelOutline()){var A=n.getProperty().getLabelOutlineThickness(),R=n.getProperty().getLabelOutlineOpacity();a.setUniformi("outlineThickness",A),a.setUniformf("outlineOpacity",R)}t.lastLightComplexity>0&&(a.setUniformf("vAmbient",i.getAmbient()),a.setUniformf("vDiffuse",i.getDiffuse()),a.setUniformf("vSpecular",i.getSpecular()),a.setUniformf("vSpecularPower",i.getSpecularPower()))},e.getClippingPlaneShaderParameters=function(e,r,n){if(t.renderable.getClippingPlanes().length>0){for(var a=t.openGLCamera.getKeyMatrices(r),o=[],i=[],s=t.renderable.getClippingPlanes(),l=s.length,c=0;c<l;++c){var u=s[c].getNormal(),d=s[c].getOrigin();ot.R3.transformMat3(u,u,a.normalMatrix),ot.R3.transformMat4(d,d,a.wcvc);var f=-1*ot.R3.dot(d,u);o.push(u[0]),o.push(u[1]),o.push(u[2]),i.push(f)}var p=e.getProgram();p.setUniform3fv("vClipPlaneNormals",o),p.setUniformfv("vClipPlaneDistances",i)}},e.delete=(0,ht.tS)((function(){t._animationRateSubscription&&(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.getRenderTargetSize=function(){if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];var e=t._openGLRenderer.getTiledSizeAndOrigin();return[e.usize,e.vsize]},e.getRenderTargetOffset=function(){var e=t._openGLRenderer.getTiledSizeAndOrigin();return[e.lowerLeftU,e.lowerLeftV]},e.renderPieceStart=function(r,n){var a=r.getVTKWindow().getInteractor();if(t._useSmallViewport=!1,a.isAnimating()&&t._lastScale>1.5&&(t._useSmallViewport=!0),t._animationRateSubscription||(t._animationRateSubscription=a.onAnimationFrameRateUpdate((function(){if(t.renderable.getAutoAdjustSampleDistances()){var e=a.getRecentAnimationFrameRate(),r=a.getDesiredUpdateRate()/e;(r>1.15||r<.85)&&(t._lastScale*=r),t._lastScale>400&&(t._lastScale=400),t._lastScale<1.5&&(t._lastScale=1.5)}else t._lastScale=t.renderable.getImageSampleDistance()*t.renderable.getImageSampleDistance();var n=t._openGLRenderWindow.getFramebufferSize();t._smallViewportWidth=Math.ceil(n[0]/Math.sqrt(t._lastScale)),t._smallViewportHeight=Math.ceil(n[1]/Math.sqrt(t._lastScale))}))),t._useSmallViewport){var o=t._openGLRenderWindow.getFramebufferSize();if(t._smallViewportHeight>o[1]&&(t._smallViewportHeight=o[1]),t._smallViewportWidth>o[0]&&(t._smallViewportWidth=o[0]),t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(o[0],o[1]),t.framebuffer.populateFramebuffer();else{var i=t.framebuffer.getSize();i[0]===o[0]&&i[1]===o[1]||(t.framebuffer.create(o[0],o[1]),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();var s=t.context;s.clearColor(0,0,0,0),s.colorMask(!0,!0,!0,!0),s.clear(s.COLOR_BUFFER_BIT),s.viewport(0,0,t._smallViewportWidth,t._smallViewportHeight),t.fvp=[t._smallViewportWidth/o[0],t._smallViewportHeight/o[1]]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(r,n),n.getProperty().getInterpolationType()===Vn.NEAREST?(t.scalarTexture.setMinificationFilter(Vr.NEAREST),t.scalarTexture.setMagnificationFilter(Vr.NEAREST)):(t.scalarTexture.setMinificationFilter(Vr.LINEAR),t.scalarTexture.setMagnificationFilter(Vr.LINEAR)),t.lastBoundBO=null,null!==t.zBufferTexture&&t.zBufferTexture.activate()},e.renderPieceDraw=function(r,n){var a=t.context;t.scalarTexture.activate(),t.opacityTexture.activate(),t.colorTexture.activate(),t.jitterTexture.activate(),e.updateShaders(t.tris,r,n),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.scalarTexture.deactivate(),t.colorTexture.deactivate(),t.opacityTexture.deactivate(),t.jitterTexture.deactivate()},e.renderPieceFinish=function(e,r){if(null!==t.zBufferTexture&&t.zBufferTexture.deactivate(),t._useSmallViewport){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join("\n"),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join("\n"),"");var n=t.copyShader;t.copyVAO=Or.newInstance(),t.copyVAO.setOpenGLRenderWindow(t._openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(n,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||kn("Error setting vertexDC in copy shader VAO.")}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);var a=t._openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,a[0],a[1]);var o=t.framebuffer.getColorTexture();o.activate(),t.copyShader.setUniformi("texture",o.getTextureUnit()),t.copyShader.setUniform2f("tfactor",t.fvp[0],t.fvp[1]);var i=t.context;i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),o.deactivate(),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=function(r,n){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n)):kn("No input!")},e.computeBounds=function(r,n){e.getInput()?t.bounds=e.getInput().getBounds():(0,Mr.u)(t.Bounds)},e.updateBufferObjects=function(t,r){e.getNeedToRebuildBufferObjects(t,r)&&e.buildBufferObjects(t,r)},e.getNeedToRebuildBufferObjects=function(r,n){return t.VBOBuildTime.getMTime()<e.getMTime()||t.VBOBuildTime.getMTime()<n.getMTime()||t.VBOBuildTime.getMTime()<t.renderable.getMTime()||t.VBOBuildTime.getMTime()<n.getProperty().getMTime()||t.VBOBuildTime.getMTime()<t.currentInput.getMTime()},e.buildBufferObjects=function(e,r){var n=t.currentInput;if(n){var a=n.getPointData()&&n.getPointData().getScalars();if(a){var o=r.getProperty();if(!t.jitterTexture.getHandle()){for(var i=new Uint8Array(1024),s=0;s<1024;++s)i[s]=255*Math.random();t.jitterTexture.setMinificationFilter(Vr.LINEAR),t.jitterTexture.setMagnificationFilter(Vr.LINEAR),t.jitterTexture.create2DFromRaw(32,32,1,nn.Tu.UNSIGNED_CHAR,i)}var l=a.getNumberOfComponents(),c=o.getIndependentComponents()?l:1,u="".concat(o.getMTime());if(t.opacityTextureString!==u){for(var d=1024,f=2048*c,p=new Float32Array(f),g=new Float32Array(d),m=0;m<c;++m){var h=o.getScalarOpacity(m),v=t.renderable.getSampleDistance()/o.getScalarOpacityUnitDistance(m),y=h.getRange();h.getTable(y[0],y[1],d,g,1);for(var b=0;b<d;++b)p[m*d*2+b]=1-Math.pow(1-g[b],v),p[m*d*2+b+d]=p[m*d*2+b]}if(t.opacityTexture.releaseGraphicsResources(t._openGLRenderWindow),t.opacityTexture.setMinificationFilter(Vr.LINEAR),t.opacityTexture.setMagnificationFilter(Vr.LINEAR),t._openGLRenderWindow.getWebgl2()||t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear"))t.opacityTexture.create2DFromRaw(d,2*c,1,nn.Tu.FLOAT,p);else{for(var T=new Uint8Array(f),C=0;C<f;++C)T[C]=255*p[C];t.opacityTexture.create2DFromRaw(d,2*c,1,nn.Tu.UNSIGNED_CHAR,T)}t.opacityTextureString=u}if(u="".concat(o.getMTime()),t.colorTextureString!==u){for(var x=1024,S=new Uint8Array(2048*c*3),P=new Float32Array(3072),w=0;w<c;++w){var O=o.getRGBTransferFunction(w),I=O.getRange();O.getTable(I[0],I[1],x,P,1);for(var A=0;A<3072;++A)S[w*x*6+A]=255*P[A],S[w*x*6+A+3072]=255*P[A]}t.colorTexture.releaseGraphicsResources(t._openGLRenderWindow),t.colorTexture.setMinificationFilter(Vr.LINEAR),t.colorTexture.setMagnificationFilter(Vr.LINEAR),t.colorTexture.create2DFromRaw(x,2*c,3,nn.Tu.UNSIGNED_CHAR,S),t.colorTextureString=u}if(u="".concat(n.getMTime()),t.scalarTextureString!==u){var R=n.getDimensions();t.scalarTexture.setOglNorm16Ext(t.context.getExtension("EXT_texture_norm16")),t.scalarTexture.releaseGraphicsResources(t._openGLRenderWindow),t.scalarTexture.resetFormatAndType(),t.scalarTexture.create3DFilterableFromDataArray(R[0],R[1],R[2],a,t.renderable.getPreferSizeOverAccuracy()),t.scalarTextureString=u}if(!t.tris.getCABO().getElementCount()){for(var E=new Float32Array(12),M=0;M<4;M++)E[3*M]=M%2*2-1,E[3*M+1]=M>1?1:-1,E[3*M+2]=-1;var D=new Uint16Array(8);D[0]=3,D[1]=0,D[2]=1,D[3]=3,D[4]=3,D[5]=0,D[6]=3,D[7]=2;var V=re.ZP.newInstance({numberOfComponents:3,values:E});V.setName("points");var L=re.ZP.newInstance({numberOfComponents:1,values:D});t.tris.getCABO().createVBO(L,"polys",ur.hX.SURFACE,{points:V,cellOffset:0})}t.VBOBuildTime.modified()}}}}var Wn={context:null,VBOBuildTime:null,scalarTexture:null,scalarTextureString:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lastLightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function zn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wn,r),Tt.extend(e,t,r),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime,{mtime:0}),t.tris=Er.newInstance(),t.scalarTexture=Yr.newInstance(),t.opacityTexture=Yr.newInstance(),t.colorTexture=Yr.newInstance(),t.jitterTexture=Yr.newInstance(),t.jitterTexture.setWrapS(Dr.REPEAT),t.jitterTexture.setWrapT(Dr.REPEAT),t.framebuffer=Dn.newInstance(),t.idxToView=ot._E.identity(new Float64Array(16)),t.idxNormalMatrix=ot.wO.identity(new Float64Array(9)),t.modelToView=ot._E.identity(new Float64Array(16)),t.projectionToView=ot._E.identity(new Float64Array(16)),t.projectionToWorld=ot._E.identity(new Float64Array(16)),t._lastScale=1,(0,ht.g2)(e,t,["context"]),Gn(e,t)}var jn=(0,ht.WL)(zn,"vtkOpenGLVolumeMapper"),Hn={newInstance:jn,extend:zn};wt("vtkVolumeMapper",jn);var Kn=ht.eR;var Zn={};function Xn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zn,r),Tt.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=function(r,n){t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent();var a=t._openGLRenderer.getAspectRatio(),o=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin(),s=null;if(t.renderable.getUseZValues()){var l=n.getZBufferTexture(),c=Math.floor(l.getWidth()),u=Math.floor(l.getHeight()),d=t._openGLRenderWindow.getContext();l.bind();var f=n.getFramebuffer();f?f.saveCurrentBindingsAndBuffers():Kn("No framebuffer to save/restore");var p=d.createFramebuffer();d.bindFramebuffer(d.FRAMEBUFFER,p),d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,l.getHandle(),0),d.checkFramebufferStatus(d.FRAMEBUFFER)===d.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(c*u*4),d.viewport(0,0,c,u),d.readPixels(0,0,c,u,d.RGBA,d.UNSIGNED_BYTE,s)),f&&f.restorePreviousBindingsAndBuffers(),d.deleteFramebuffer(p)}t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,s)},e.queryPass=function(e,r){e&&t.renderable.getUseZValues()&&r.requestDepth()}}(e,t)}var qn=(0,ht.WL)(Xn,"vtkOpenGLPixelSpaceCallbackMapper"),Yn={newInstance:qn,extend:Xn};wt("vtkPixelSpaceCallbackMapper",qn);var $n=Object.create(null);function Qn(e,t){$n[e]=t}var Jn={};function ea(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jn,r),t.overrides=$n,St.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}(0,t)}ht.default.newInstance(ea,"vtkWebGPUViewNodeFactory");var ta={keyMatrixTime:null,keyMatrices:null};function ra(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ta,r),Tt.extend(e,t,r),t.keyMatrixTime={},ht.default.obj(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},ht.default.setGet(e,t,["keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getProjectionMatrix=function(e,r,n,a){if(ot._E.identity(e),t.renderable.getParallelProjection()){var o=t.renderable.getParallelScale(),i=o*r,s=o,l=(a[0]-1)*i,c=(a[0]+1)*i,u=(a[1]-1)*s,d=(a[1]+1)*s,f=1/(c-l),p=1/(d-u);e[0]=2*f,e[5]=2*p,e[10]=1/(n[1]-n[0]),e[12]=(c+l)*f,e[13]=(d+u)*p,e[14]=n[1]/(n[1]-n[0])}else{var g,m,h=Math.tan(Math.PI*t.renderable.getViewAngle()/360);!0===t.renderable.getUseHorizontalViewAngle()?(g=n[0]*h,m=n[0]*h/r):(g=n[0]*h*r,m=n[0]*h);var v=(a[0]-1)*g,y=(a[0]+1)*g,b=(a[1]-1)*m,T=(a[1]+1)*m;e[0]=2*n[0]/(y-v),e[5]=2*n[0]/(T-b),e[12]=(v+y)/(y-v),e[13]=(b+T)/(T-b),e[10]=0,e[14]=n[0],e[11]=-1,e[15]=0}},e.convertToOpenGLDepth=function(e){if(t.renderable.getParallelProjection())return 1-e;var r=t.renderable.getClippingRangeByReference(),n=-r[0]/e;return.5*(n=(r[0]+r[1])/(r[1]-r[0])+2*r[0]*r[1]/(n*(r[1]-r[0])))+.5},e.getKeyMatrices=function(r){var n=r.getRenderable(),a=r.getParent();if(Math.max(a.getMTime(),e.getMTime(),n.getMTime(),t.renderable.getMTime(),r.getStabilizedTime())>t.keyMatrixTime.getMTime()){var o=t.renderable.getViewMatrix();ot._E.copy(t.keyMatrices.normalMatrix,o),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,ot._E.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),ot._E.transpose(t.keyMatrices.wcvc,o);var i=r.getStabilizedCenterByReference();ot._E.translate(t.keyMatrices.scvc,t.keyMatrices.wcvc,i);var s=r.getAspectRatio(),l=t.renderable.getClippingRangeByReference();e.getProjectionMatrix(t.keyMatrices.vcpc,s,l,t.renderable.getWindowCenterByReference()),ot._E.multiply(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),ot._E.invert(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}(e,t)}var na=ht.default.newInstance(ra);Qn("vtkCamera",na);var aa={device:null,handle:null,label:null};function oa(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,aa,r),ht.default.obj(e,t),t.bindables=[],t.bindGroupTime={},ht.default.obj(t.bindGroupTime,{mtime:0}),ht.default.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),ht.default.setGet(e,t,["label","device","arrayInformation"]),function(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.setBindables=function(r){if(t.bindables.length===r.length){for(var n=!0,a=0;a<t.bindables.length;a++)t.bindables[a]!==r[a]&&(n=!1);if(n)return}t.bindables=r,e.modified()},e.getBindGroupLayout=function(e){for(var r=[],n=0;n<t.bindables.length;n++){var a=t.bindables[n].getBindGroupLayoutEntry();a.binding=n,r.push(a)}return e.getBindGroupLayout({entries:r})},e.getBindGroup=function(r){for(var n=e.getMTime(),a=0;a<t.bindables.length;a++){var o=t.bindables[a].getBindGroupTime().getMTime();n=o>n?o:n}if(n<t.bindGroupTime.getMTime())return t.bindGroup;for(var i=[],s=0;s<t.bindables.length;s++){var l=t.bindables[s].getBindGroupEntry();l.binding=s,i.push(l)}return t.bindGroup=r.getHandle().createBindGroup({layout:e.getBindGroupLayout(r),entries:i,label:t.label}),t.bindGroupTime.modified(),t.bindGroup},e.getShaderCode=function(e){for(var r=[],n=e.getBindGroupLayoutCount(t.label),a=0;a<t.bindables.length;a++)r.push(t.bindables[a].getShaderCode(a,n));return r.join("\n")}}(e,t)}var ia={newInstance:ht.default.newInstance(oa),extend:oa};var sa={device:null,handle:null};function la(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,sa,r),ht.default.obj(e,t),ht.default.get(e,t,["lastCameraMTime"]),ht.default.setGet(e,t,["device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=function(e,r){t.device=e,t.handle=t.device.getHandle().createShaderModule({code:r.getCode()})}}(e,t)}var ca={newInstance:ht.default.newInstance(la,"vtkWebGPUShaderModule"),extend:la};var ua={shaderModules:null,device:null,window:null};function da(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ua,r),t._shaderModules=new Map,ht.default.obj(e,t),ht.default.setGet(e,t,["device","window"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=function(e){for(var r=e.getType(),n=e.getHash(),a=t._shaderModules.keys(),o=0;o<a.length;o++){var i=a[o];if(i.getHash()===n&&i.getType()===r)return t._shaderModules.get(i)}var s=ca.newInstance();return s.initialize(t.device,e),t._shaderModules.set(e,s),s}}(e,t)}var fa={newInstance:ht.default.newInstance(da,"vtkWebGPUShaderCache"),extend:da,substitute:function(e,t,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(r)?r.join("\n"):r,o=!1;-1!==e.search(t)&&(o=!0);var i="";n&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}},pa=r(78826);var ga={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function ma(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ga,r),(0,ht.j6)(e,t),t.layouts=[],t.shaderDescriptions=[],(0,ht.U2)(e,t,["handle","pipelineDescription"]),(0,ht.g2)(e,t,["device","renderEncoder","topology","vertexState"]),function(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=function(){return t.shaderDescriptions},e.initialize=function(e,r){t.pipelineDescription=t.renderEncoder.getPipelineSettings(),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=r;for(var n=[],a=0;a<t.layouts.length;a++)n.push(t.layouts[a].layout);t.pipelineLayout=e.getHandle().createPipelineLayout({bindGroupLayouts:n}),t.pipelineDescription.layout=t.pipelineLayout;for(var o=0;o<t.shaderDescriptions.length;o++){var i=t.shaderDescriptions[o],s=e.getShaderModule(i);"vertex"===i.getType()&&(t.pipelineDescription.vertex.module=s.getHandle(),t.pipelineDescription.vertex.entryPoint="main"),"fragment"===i.getType()&&(t.pipelineDescription.fragment.module=s.getHandle(),t.pipelineDescription.fragment.entryPoint="main")}t.handle=e.getHandle().createRenderPipeline(t.pipelineDescription)},e.getShaderDescription=function(e){for(var r=0;r<t.shaderDescriptions.length;r++)if(t.shaderDescriptions[r].getType()===e)return t.shaderDescriptions[r];return null},e.addBindGroupLayout=function(e){e&&t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=function(e){return t.layouts[e].layout},e.getBindGroupLayoutCount=function(e){for(var r=0;r<t.layouts.length;r++)if(t.layouts[r].label===e)return r;return 0},e.bindVertexInput=function(e,t){t.bindBuffers(e)}}(e,t)}var ha={newInstance:(0,ht.WL)(ma,"vtkWebGPUPipeline"),extend:ma};var va={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function ya(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,va,r),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],ht.default.obj(e,t),ht.default.setGet(e,t,["type","hash","code"]),ht.default.getArray(e,t,["outputTypes","outputNames","outputInterpolations"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=function(e){return t.outputNames.includes(e)},e.addOutput=function(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;t.outputTypes.push(e),t.outputNames.push(r),t.outputInterpolations.push(n)},e.addBuiltinOutput=function(e,r){t.builtinOutputTypes.push(e),t.builtinOutputNames.push(r)},e.addBuiltinInput=function(e,r){t.builtinInputTypes.push(e),t.builtinInputNames.push(r)},e.replaceShaderCode=function(e,r){var n=[],a=[];if(r&&n.push(r.getShaderCode()),e||t.builtinInputNames.length){var o=[];if(o.push("struct ".concat(t.type,"Input\n{")),e)for(var i=e.getOutputNamesByReference(),s=e.getOutputTypesByReference(),l=e.getOutputInterpolationsByReference(),c=0;c<i.length;c++)void 0!==l[c]?o.push(" @location(".concat(c,") @interpolate(").concat(l[c],") ").concat(i[c]," : ").concat(s[c],",")):o.push(" @location(".concat(c,") ").concat(i[c]," : ").concat(s[c],","));for(var u=0;u<t.builtinInputNames.length;u++)o.push(" ".concat(t.builtinInputNames[u]," : ").concat(t.builtinInputTypes[u],","));o.length>1&&(o.push("};"),a=o,n[n.length-1]+=",",n.push("input: ".concat(t.type,"Input")))}if(n.length&&(t.code=fa.substitute(t.code,"//VTK::IOStructs::Input",n).result),t.outputNames.length+t.builtinOutputNames.length){for(var d=["struct ".concat(t.type,"Output\n{")],f=0;f<t.outputNames.length;f++)void 0!==t.outputInterpolations[f]?d.push(" @location(".concat(f,") @interpolate(").concat(t.outputInterpolations[f],") ").concat(t.outputNames[f]," : ").concat(t.outputTypes[f],",")):d.push(" @location(".concat(f,") ").concat(t.outputNames[f]," : ").concat(t.outputTypes[f],","));for(var p=0;p<t.builtinOutputNames.length;p++)d.push(" ".concat(t.builtinOutputNames[p]," : ").concat(t.builtinOutputTypes[p],","));d.push("};"),a=a.concat(d),t.code=fa.substitute(t.code,"//VTK::IOStructs::Output",["-> ".concat(t.type,"Output")]).result}t.code=fa.substitute(t.code,"//VTK::IOStructs::Dec",a).result}}(e,t)}var ba={newInstance:ht.default.newInstance(ya,"vtkWebGPUShaderDescription"),extend:ya},Ta={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};var Ca={getDetailsFromTextureFormat:function(e){return!e||e.length<6?0:e in Ta==!0?Ta[e]:((0,ht.E0)("unknown format ".concat(e)),null)},getByteStrideFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;"x"===e[e.length-2]&&(t=Number(e[e.length-1]));var r=1===t?e.length-1:e.length-3,n=Number(e[r]);return Number.isNaN(n)?((0,ht.E0)("unknown format ".concat(e)),0):t*(5-n/2)},getNumberOfComponentsFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;return"x"===e[e.length-2]&&(t=Number(e[e.length-1])),t},getNativeTypeFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void(0,ht.E0)("unknown format ".concat(e));t="Uint"}var r=e.split("x")[0],n=Number(r[r.length-1]);if(!Number.isNaN(n))return t+=8*(5-n/2),t+="Array";(0,ht.E0)("unknown format ".concat(e))},getShaderTypeFromBufferFormat:function(e){var t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void(0,ht.E0)("unknown format ".concat(e));t="u32"}var r=1;return"x"===e[e.length-2]&&(r=Number(e[e.length-1])),4===r?"vec4<".concat(t,">"):3===r?"vec3<".concat(t,">"):2===r?"vec2<".concat(t,">"):t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;var t=1;return"vec"===e.substring(0,3)?t=Number(e[3]):"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void(0,ht.E0)("unknown format ".concat(e))}};function xa(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!t.includes(e[r]))return!1;return!0}var Sa={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function Pa(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sa,r),(0,ht.j6)(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],(0,ht.g2)(e,t,["created","device","handle","indexBuffer"]),function(e,t){t.classHierarchy.push("vtkWebGPUVertexInput"),e.addBuffer=function(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vertex",a=r;Array.isArray(a)||(a=[a]);for(var o=0;o<t.inputs.length;o++)if(xa(t.inputs[o].names,a)){if(t.inputs[o].buffer===e)return;return void(t.inputs[o].buffer=e)}t.inputs.push({buffer:e,stepMode:n,names:a}),t.inputs=t.inputs.sort((function(e,t){return e.names[0]<t.names[0]?-1:e.names[0]>t.names[0]?1:0}))},e.removeBufferIfPresent=function(e){for(var r=0;r<t.inputs.length;r++)t.inputs[r].names.includes(e)&&t.inputs.splice(r,1)},e.getBuffer=function(e){for(var r=0;r<t.inputs.length;r++)if(t.inputs[r].names.includes(e))return t.inputs[r].buffer;return null},e.hasAttribute=function(e){for(var r=0;r<t.inputs.length;r++)if(t.inputs[r].names.includes(e))return!0;return!1},e.getAttributeTime=function(e){for(var r=0;r<t.inputs.length;r++)if(t.inputs[r].names.includes(e))return t.inputs[r].buffer.getSourceTime();return 0},e.getShaderCode=function(){for(var e="",r=0,n=0;n<t.inputs.length;n++)for(var a=0;a<t.inputs[n].names.length;a++){var o=t.inputs[n].buffer.getArrayInformation()[a],i=Ca.getShaderTypeFromBufferFormat(o.format);r>0&&(e+=",\n"),e="".concat(e," @location(").concat(r,") ").concat(t.inputs[n].names[a]," : ").concat(i),r++}return e},e.getVertexInputInformation=function(){var e={};if(t.inputs.length){for(var r=[],n=0,a=0;a<t.inputs.length;a++){for(var o=t.inputs[a].buffer,i={arrayStride:o.getStrideInBytes(),stepMode:t.inputs[a].stepMode,attributes:[]},s=o.getArrayInformation(),l=0;l<t.inputs[a].names.length;l++)i.attributes.push({shaderLocation:n,offset:s[l].offset,format:s[l].format}),n++;r.push(i)}e.buffers=r}return e},e.bindBuffers=function(e){for(var r=0;r<t.inputs.length;r++)e.setVertexBuffer(r,t.inputs[r].buffer.getHandle());t.indexBuffer&&e.setIndexBuffer(t.indexBuffer.getHandle(),t.indexBuffer.getArrayInformation()[0].format)},e.getReady=function(){},e.releaseGraphicsResources=function(){t.created&&(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}(e,t)}var wa={newInstance:(0,ht.WL)(Pa,"vtkWebGPUVertexInput"),extend:Pa};var Oa={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function Ia(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Oa,r),Tt.extend(e,t,r),t.textureViews=[],t.vertexInput=wa.newInstance(),t.bindGroup=ia.newInstance({label:"mapperBG"}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||"\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4<f32> = vec4<f32>(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n",t.vertexShaderTemplate=t.vertexShaderTemplate||"\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n // var vertex: vec4<f32> = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",t.shaderReplacements=new Map,ht.default.get(e,t,["pipeline","vertexInput"]),ht.default.setGet(e,t,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),function(e,t){t.classHierarchy.push("vtkWebGPUSimpleMapper"),e.generateShaderDescriptions=function(r,n,a){var o=ba.newInstance({type:"vertex",hash:r,code:t.vertexShaderTemplate}),i=ba.newInstance({type:"fragment",hash:r,code:t.fragmentShaderTemplate}),s=n.getShaderDescriptions();s.push(o),s.push(i);for(var l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter((function(e,t,r){return r.indexOf(e)===t})),d=u.map((function(e){return"replaceShader".concat(e.substring(7,e.length-2))})),f=0;f<d.length;f++){var p=d[f];"replaceShaderIOStructs"!==p&&t.shaderReplacements.has(p)&&t.shaderReplacements.get(p)(r,n,a)}e.replaceShaderIOStructs(r,n,a)},e.replaceShaderIOStructs=function(e,t,r){var n=t.getShaderDescription("vertex");n.replaceShaderCode(null,r),t.getShaderDescription("fragment").replaceShaderCode(n)},e.replaceShaderRenderEncoder=function(e,r,n){t.renderEncoder.replaceShaderCode(r)},t.shaderReplacements.set("replaceShaderRenderEncoder",e.replaceShaderRenderEncoder),e.replaceShaderRenderer=function(e,r,n){if(t.WebGPURenderer){var a=t.WebGPURenderer.getBindGroup().getShaderCode(r),o=r.getShaderDescription("vertex"),i=o.getCode();i=fa.substitute(i,"//VTK::Renderer::Dec",[a]).result,o.setCode(i);var s=r.getShaderDescription("fragment");i=s.getCode(),i=fa.substitute(i,"//VTK::Renderer::Dec",[a]).result,s.setCode(i)}},t.shaderReplacements.set("replaceShaderRenderer",e.replaceShaderRenderer),e.replaceShaderMapper=function(e,r,n){var a=t.bindGroup.getShaderCode(r),o=r.getShaderDescription("vertex"),i=o.getCode();i=fa.substitute(i,"//VTK::Mapper::Dec",[a]).result,o.setCode(i);var s=r.getShaderDescription("fragment");s.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),i=s.getCode(),i=fa.substitute(i,"//VTK::Mapper::Dec",[a]).result,s.setCode(i)},t.shaderReplacements.set("replaceShaderMapper",e.replaceShaderMapper),e.replaceShaderPosition=function(e,t,r){var n=t.getShaderDescription("vertex");n.addBuiltinOutput("vec4<f32>","@builtin(position) Position");var a=n.getCode();a=fa.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,n.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,t,r){t.getShaderDescription("vertex").addOutput("vec2<f32>","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=function(e){t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=function(r){t.renderEncoder=r,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=function(){},e.updateBuffers=function(){},e.updateBindings=function(){t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=function(){},e.registerDrawCallback=function(r){r.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=function(r){e.prepareToDraw(r),r.setPipeline(t.pipeline),e.draw(r)},e.draw=function(e){var r=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(e),r.bindVertexInput(e,t.vertexInput);var n=t.vertexInput.getIndexBuffer();n?e.drawIndexed(n.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=function(){var e=(0,pa.Z)(t.additionalBindables);t.UBO&&e.push(t.UBO),t.SSBO&&e.push(t.SSBO);for(var r=0;r<t.textureViews.length;r++){e.push(t.textureViews[r]);var n=t.textureViews[r].getSampler();n&&e.push(n)}return e},e.updatePipeline=function(){e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=ha.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&&t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}(e,t)}var Aa={newInstance:ht.default.newInstance(Ia,"vtkWebGPUSimpleMapper"),extend:Ia};var Ra={};function Ea(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ra,r),Aa.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=function(e,t,r){var n=t.getShaderDescription("vertex");n.addBuiltinOutput("vec4<f32>","@builtin(position) Position"),n.addOutput("vec4<f32>","vertexVC");var a=n.getCode();a=fa.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2<f32>(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4<f32>(vertexBC, 1.0);","output.vertexVC = vec4<f32>(vertexBC, 1);"]).result,n.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.updateBuffers=function(){var e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,["vertexBC"]),t.numberOfVertices=6}}(e,t)}var Ma={newInstance:ht.default.newInstance(Ea,"vtkWebGPUFullScreenQuad"),extend:Ea},Da={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};function Va(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var La=["getMappedRange","mapAsync","unmap"];function _a(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=function(e,r){t.handle=t.device.getHandle().createBuffer({size:e,usage:r,label:t.label}),t.sizeInBytes=e,t.usage=r},e.write=function(e){!function(e,t,r,n){var a=n.byteLength,o=e.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=o.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(n)),o.unmap();var s=e.createCommandEncoder();s.copyBufferToBuffer(o,0,t,r,a);var l=s.finish();e.queue.submit([l]),o.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=function(e,r){t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:r,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=e.byteLength,t.usage=r,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(var r=function(r){e[La[r]]=function(){var e;return(e=t.handle)[La[r]].apply(e,arguments)}},n=0;n<La.length;n++)r(n)}var Na={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function Ba(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Na,r),ht.default.obj(e,t),ht.default.get(e,t,["handle","sizeInBytes","usage"]),ht.default.setGet(e,t,["strideInBytes","device","arrayInformation","label","sourceTime"]),_a(e,t)}var Fa=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Va(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Va(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance(Ba),extend:Ba},Da),Ua=r(98589);function ka(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Ga,Wa=Ua.ZP.Representation,za=Da.PrimitiveTypes,ja=function(){function e(){(0,Ut.Z)(this,e),this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}return(0,kt.Z)(e,[{key:"clear",value:function(){this.count=0}},{key:"has",value:function(e){for(var t=0;t<this.count;t++)if(this.keys[t]===e)return!0}},{key:"get",value:function(e){for(var t=0;t<this.count;t++)if(this.keys[t]===e)return this.values[t]}},{key:"set",value:function(e,t){this.count<9&&(this.keys[this.count]=e,this.values[this.count++]=t)}}]),e}();function Ha(e,t,r){var n=e.pointIdToFlatId[t];return n<0&&(n=e.flatId,e.pointIdToFlatId[t]=n,e.flatIdToPointId[e.flatId]=t,e.flatIdToCellId[e.flatId]=r,e.flatId++),n}function Ka(e,t,r){for(var n=e.length,a=0;a<n;a++){var o=e[a];if(r.cellProvokedMap.has(o)){r.ibo[r.iboId++]=r.cellProvokedMap.get(o);for(var i=a+1;i<a+n;i++){var s=Ha(r,o=e[i%n],t);r.ibo[r.iboId++]=s}return}}for(var l=0;l<n;l++){var c=e[l];if(!r.provokedPointIds[c]){var u=Ha(r,c,t);r.provokedPointIds[c]=1,r.cellProvokedMap.set(c,u),r.flatIdToCellId[u]=t,r.ibo[r.iboId++]=u;for(var d=l+1;d<l+n;d++)u=Ha(r,c=e[d%n],t),r.ibo[r.iboId++]=u;return}}var f=e[0],p=r.flatId;r.cellProvokedMap.set(f,p),r.flatIdToPointId[r.flatId]=f,r.flatIdToCellId[r.flatId]=t,r.flatId++,r.ibo[r.iboId++]=p;for(var g=1;g<n;g++)p=Ha(r,f=e[g],t),r.ibo[r.iboId++]=p}function Za(e,t,r){var n=e.length;r.iboSize+=n;for(var a=0;a<n;a++){var o=e[a];if(r.cellProvokedMap.has(o))return}for(var i=0;i<n;i++){var s=e[i];if(!r.provokedPointIds[s])return r.provokedPointIds[s]=1,void r.cellProvokedMap.set(s,1)}r.cellProvokedMap.set(e[0],1),r.extraPoints++}var Xa=new Uint32Array(1),qa=new Uint32Array(2),Ya=new Uint32Array(3),$a={anythingToPoints:function(e,t,r,n,a){for(var o=0;o<e;++o)Xa[0]=t[r+o],Ga(Xa,n,a)},linesToWireframe:function(e,t,r,n,a){for(var o=0;o<e-1;++o)qa[0]=t[r+o],qa[1]=t[r+o+1],Ga(qa,n,a)},polysToWireframe:function(e,t,r,n,a){if(e>2)for(var o=0;o<e;++o)qa[0]=t[r+o],qa[1]=t[r+(o+1)%e],Ga(qa,n,a)},stripsToWireframe:function(e,t,r,n,a){if(e>2){for(var o=0;o<e-1;++o)qa[0]=t[r+o],qa[1]=t[r+o+1],Ga(qa,n,a);for(var i=0;i<e-2;i++)qa[0]=t[r+i],qa[1]=t[r+i+2],Ga(qa,n,a)}},polysToSurface:function(e,t,r,n,a){for(var o=0;o<e-2;o++)Ya[0]=t[r],Ya[1]=t[r+o+1],Ya[2]=t[r+o+2],Ga(Ya,n,a)},stripsToSurface:function(e,t,r,n,a){for(var o=0;o<e-2;o++)Ya[0]=t[r+o],Ya[1]=t[r+o+1+o%2],Ya[2]=t[r+o+1+(o+1)%2],Ga(Ya,n,a)}};function Qa(e,t){t.classHierarchy.push("vtkWebGPUIndexBuffer"),e.buildIndexBuffer=function(e){var r=e.cells,n=e.primitiveType,a=e.representation,o=e.cellOffset,i=r.getData(),s=i.length,l=function(e){switch(e){case za.Points:return"points";case za.Lines:return"lines";case za.Triangles:case za.TriangleEdges:return"polys";case za.TriangleStripEdges:case za.TriangleStrips:return"strips";default:return""}}(n),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ja},d=null;d=a===Wa.POINTS||n===za.Points?$a.anythingToPoints:a===Wa.WIREFRAME||n===za.Lines?$a["".concat(l,"ToWireframe")]:$a["".concat(l,"ToSurface")],Ga=Za;for(var f=o||0,p=0;p<s;)u.cellProvokedMap.clear(),d(i[p],i,p+1,f,u),p+=i[p]+1,f++;u.flatIdToPointId=c<=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),c+u.extraPoints<36863?u.pointIdToFlatId=new Int16Array(c):u.pointIdToFlatId=new Int32Array(c),c+u.extraPoints<=65535?(u.ibo=new Uint16Array(u.iboSize),e.format="uint16"):(u.ibo=new Uint32Array(u.iboSize),e.format="uint32"),u.flatIdToCellId=f<=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),u.pointIdToFlatId.fill(-1),u.provokedPointIds.fill(0),Ga=Ka,f=o||0;for(var g=0;g<s;)u.cellProvokedMap.clear(),d(i[g],i,g+1,f,u),g+=i[g]+1,f++;delete u.provokedPointIds,delete u.pointIdToFlatId,e.nativeArray=u.ibo,t.flatIdToPointId=u.flatIdToPointId,t.flatIdToCellId=u.flatIdToCellId,t.flatSize=u.flatId,t.indexCount=u.iboId}}var Ja={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function eo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ja,r),Fa.extend(e,t,r),ht.default.setGet(e,t,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),Qa(e,t)}var to=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ka(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ka(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance(eo),extend:eo},Da);function ro(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function no(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ro(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ro(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ao=Da.BufferUsage,oo=ht.E0,io=re.ZP.VtkDataTypes;function so(e,t,r,n,a){var o={},i=e.getFlatSize();if(!i)return o;var s=[0,0,0,0];a.shift&&(a.shift.length?s=a.shift:s.fill(a.shift));var l=[1,1,1,1];a.scale&&(a.scale.length?l=a.scale:l.fill(a.scale));var c,u=!!Object.prototype.hasOwnProperty.call(a,"packExtra")&&a.packExtra,d=0,f=r+(u?1:0),p=(0,ht.B5)(n,i*f),g=e.getFlatIdToPointId();a.cellData&&(g=e.getFlatIdToCellId()),1===r?c=function(e){p[d++]=l[0]*t[e]+s[0]}:2===r?c=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==r||u?3===r&&u?c=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===r&&(c=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):c=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(var m=0;m<i;m++){c(r*g[m])}return o.nativeArray=p,o}function lo(e,t,r,n){var a=[e[3*n]-e[3*r],e[3*n+1]-e[3*r+1],e[3*n+2]-e[3*r+2]],o=[e[3*t]-e[3*r],e[3*t+1]-e[3*r+1],e[3*t+2]-e[3*r+2]],i=[];return(0,Mr.j)(a,o,i),(0,Mr.l)(i),i}function co(e,t){function r(e){var r,n;if(e.dataArray&&!e.nativeArray&&(e.nativeArray=e.dataArray.getData()),e.usage===ao.Index&&((r=to.newInstance({label:e.label})).setDevice(t.device),n=GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,r.buildIndexBuffer(e),r.createAndWrite(e.nativeArray,n),r.setArrayInformation([{format:e.format}])),r||(r=Fa.newInstance({label:e.label})).setDevice(t.device),e.usage===ao.UniformArray&&(n=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,r.createAndWrite(e.nativeArray,n)),e.usage===ao.Storage&&(n=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,r.createAndWrite(e.nativeArray,n)),e.usage===ao.Texture&&(n=GPUBufferUsage.COPY_SRC,r.createAndWrite(e.nativeArray,n)),e.usage===ao.PointArray){n=GPUBufferUsage.VERTEX;var a=Ca.getNativeTypeFromBufferFormat(e.format),o=so(e.indexBuffer,e.dataArray.getData(),e.dataArray.getNumberOfComponents(),a,{packExtra:e.packExtra,shift:e.shift,scale:e.scale,cellData:e.cellData,cellOffset:e.cellOffset});r.createAndWrite(o.nativeArray,n),r.setStrideInBytes(Ca.getByteStrideFromBufferFormat(e.format)),r.setArrayInformation([{offset:0,format:e.format,interpolation:e.cellData?"flat":"perspective"}])}if(e.usage===ao.NormalsFromPoints){n=GPUBufferUsage.VERTEX;var i=Ca.getNativeTypeFromBufferFormat(e.format),s=function(e,t){var r=t.getData(),n=e.getData();if(!n||!r)return null;for(var a=new Int8Array(4*e.getNumberOfCells()),o=n.length,i=0,s=0;s<o;){var l=lo(r,n[s+1],n[s+2],n[s+3]);a[i++]=127*l[0],a[i++]=127*l[1],a[i++]=127*l[2],a[i++]=127,s+=n[s]+1}return a}(e.cells,e.dataArray),l=so(e.indexBuffer,s,4,i,{cellData:!0});r.createAndWrite(l.nativeArray,n),r.setStrideInBytes(Ca.getByteStrideFromBufferFormat(e.format)),r.setArrayInformation([{offset:0,format:e.format,interpolation:"flat"}])}return e.usage===ao.RawVertex&&(n=GPUBufferUsage.VERTEX,r.createAndWrite(e.nativeArray,n),r.setStrideInBytes(Ca.getByteStrideFromBufferFormat(e.format)),r.setArrayInformation([{offset:0,format:e.format}])),r.setSourceTime(e.time),r}t.classHierarchy.push("vtkWebGPUBufferManager"),e.hasBuffer=function(e){return t.device.hasCachedObject(e)},e.getBuffer=function(e){return e.hash?t.device.getCachedObject(e.hash,r,e):r(e)},e.getBufferForPointArray=function(t,r){var n=function(e){var t;switch(e.getDataType()){case io.UNSIGNED_CHAR:t="uint8";break;case io.FLOAT:t="float32";break;case io.UNSIGNED_INT:t="uint32";break;case io.INT:t="sint32";break;case io.DOUBLE:t="float32";break;case io.UNSIGNED_SHORT:t="uint16";break;case io.SHORT:t="sin16";break;default:t="float32"}switch(e.getNumberOfComponents()){case 2:t+="x2";break;case 3:t.includes("32")||oo("unsupported x3 type for ".concat(t)),t+="x3";break;case 4:t+="x4"}return t}(t),a={hash:"".concat(t.getMTime(),"I").concat(r.getMTime()).concat(n),usage:ao.PointArray,format:n,dataArray:t,indexBuffer:r};return e.getBuffer(a)},e.getFullScreenQuadBuffer=function(){if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=Fa.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);var e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),t.fullScreenQuadBuffer}}var uo={device:null,fullScreenQuadBuffer:null};function fo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uo,r),(0,ht.j6)(e,t),(0,ht.g2)(e,t,["device"]),co(e,t)}var po=no(no({newInstance:(0,ht.WL)(fo),extend:fo},{}),Da),go=po.BufferUsage,mo=ht.default.vtkErrorMacro;var ho={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function vo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ho,r),ht.default.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},ht.default.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},ht.default.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},ht.default.get(e,t,["bindGroupTime"]),ht.default.setGet(e,t,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=function(e,r){if(t._bufferEntryNames.has(e))mo("entry named ".concat(e," already exists"));else{t._bufferEntryNames.set(e,t.bufferEntries.length);var n=Ca.getByteStrideFromShaderFormat(r);t.bufferEntries.push({name:e,type:r,sizeInBytes:n,offset:t.sizeInBytes,nativeType:Ca.getNativeTypeFromShaderFormat(r)}),t.sizeInBytes+=n}},e.send=function(e){if(!t._buffer){var r={nativeArray:t.Float32Array,usage:go.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(r),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=ht.default.newTypedArray(e,t.arrayBuffer))},e.setValue=function(r,n,a){var o=t._bufferEntryNames.get(r);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);var s=t[i.nativeType];s[(i.offset+n*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=a}else mo("entry named ".concat(r," not found in UBO"))},e.setArray=function(r,n,a){var o=t._bufferEntryNames.get(r);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);for(var s=t[i.nativeType],l=(i.offset+n*t.sizeInBytes)/s.BYTES_PER_ELEMENT,c=0;c<a.length;c++)s[l+c]=a[c]}else mo("entry named ".concat(r," not found in UBO"))},e.setAllInstancesFromArray=function(r,n){var a=t._bufferEntryNames.get(r);if(void 0!==a){var o=t.bufferEntries[a];e.createView(o.nativeType);for(var i=t[o.nativeType],s=n.length/t.numberOfInstances,l=0;l<t.numberOfInstances;l++)for(var c=(o.offset+l*t.sizeInBytes)/i.BYTES_PER_ELEMENT,u=0;u<s;u++)i[c+u]=n[l*s+u]}else mo("entry named ".concat(r," not found in UBO"))},e.setAllInstancesFromArrayColorToFloat=function(r,n){var a=t._bufferEntryNames.get(r);if(void 0!==a){var o=t.bufferEntries[a];e.createView(o.nativeType);for(var i=t[o.nativeType],s=n.length/t.numberOfInstances,l=0;l<t.numberOfInstances;l++)for(var c=(o.offset+l*t.sizeInBytes)/i.BYTES_PER_ELEMENT,u=0;u<s;u++)i[c+u]=n[l*s+u]/255}else mo("entry named ".concat(r," not found in UBO"))},e.setAllInstancesFromArray3x3To4x4=function(r,n){var a=t._bufferEntryNames.get(r);if(void 0!==a){var o=t.bufferEntries[a];e.createView(o.nativeType);for(var i=t[o.nativeType],s=0;s<t.numberOfInstances;s++)for(var l=(o.offset+s*t.sizeInBytes)/i.BYTES_PER_ELEMENT,c=0;c<3;c++)for(var u=0;u<3;u++)i[l+4*c+u]=n[9*s+3*c+u]}else mo("entry named ".concat(r," not found in UBO"))},e.getSendTime=function(){return t._sendTime.getMTime()},e.getShaderCode=function(e,r){for(var n=["struct ".concat(t.label,"StructEntry\n{")],a=0;a<t.bufferEntries.length;a++){var o=t.bufferEntries[a];n.push(" ".concat(o.name,": ").concat(o.type,","))}return n.push("\n};\nstruct ".concat(t.label,"Struct\n{\n values: array<").concat(t.label,"StructEntry>,\n};\n@binding(").concat(e,") @group(").concat(r,") var<storage, read> ").concat(t.label,": ").concat(t.label,"Struct;\n")),n.join("\n")},e.getBindGroupEntry=function(){return{resource:{buffer:t._buffer.getHandle()}}},e.clearData=function(){t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var yo={newInstance:ht.default.newInstance(vo,"vtkWebGPUStorageBuffer"),extend:vo},bo=po.BufferUsage,To=ht.default.vtkErrorMacro;var Co={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function xo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Co,r),ht.default.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},ht.default.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},ht.default.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,ht.default.get(e,t,["binding","bindGroupTime"]),ht.default.setGet(e,t,["bindGroupLayoutEntry","device","label","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=function(e,r){t._bufferEntryNames.has(e)?To("entry named ".concat(e," already exists")):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:r,sizeInBytes:Ca.getByteStrideFromShaderFormat(r),offset:-1,nativeType:Ca.getNativeTypeFromShaderFormat(r),packed:!1}))},e.sortBufferEntries=function(){if(t.sortDirty){for(var e=0,r=[],n=4,a=0;a<t.bufferEntries.length;a++){var o=t.bufferEntries[a];o.sizeInBytes%16==0&&(n=Math.max(16,n)),o.sizeInBytes%8==0&&(n=Math.max(8,n))}for(var i=0;i<t.bufferEntries.length;i++){var s=t.bufferEntries[i];!1===s.packed&&s.sizeInBytes%16==0&&(s.packed=!0,s.offset=e,r.push(s),e+=s.sizeInBytes)}for(var l=0;l<t.bufferEntries.length;l++){var c=t.bufferEntries[l];if(!1===c.packed&&12===c.sizeInBytes)for(var u=0;u<t.bufferEntries.length;u++){var d=t.bufferEntries[u];if(!1===d.packed&&4===d.sizeInBytes){c.packed=!0,c.offset=e,r.push(c),e+=c.sizeInBytes,d.packed=!0,d.offset=e,r.push(d),e+=d.sizeInBytes;break}}}for(var f=0;f<t.bufferEntries.length;f++){var p=t.bufferEntries[f];if(!p.packed&&p.sizeInBytes%8==0)for(var g=f+1;g<t.bufferEntries.length;g++){var m=t.bufferEntries[g];if(!m.packed&&m.sizeInBytes%8==0){p.packed=!0,p.offset=e,r.push(p),e+=p.sizeInBytes,m.packed=!0,m.offset=e,r.push(m),e+=m.sizeInBytes;break}}}for(var h=0;h<t.bufferEntries.length;h++){var v=t.bufferEntries[h];if(!v.packed&&v.sizeInBytes%8==0)for(var y=!1,b=0;!y&&b<t.bufferEntries.length;b++){var T=t.bufferEntries[b];if(!T.packed&&4===T.sizeInBytes)for(var C=b+1;C<t.bufferEntries.length;C++){var x=t.bufferEntries[C];if(!x.packed&&4===x.sizeInBytes){v.packed=!0,v.offset=e,r.push(v),e+=v.sizeInBytes,T.packed=!0,T.offset=e,r.push(T),e+=T.sizeInBytes,x.packed=!0,x.offset=e,r.push(x),e+=x.sizeInBytes,y=!0;break}}}}for(var S=0;S<t.bufferEntries.length;S++){var P=t.bufferEntries[S];!P.packed&&P.sizeInBytes>4&&(P.packed=!0,P.offset=e,r.push(P),e+=P.sizeInBytes)}for(var w=0;w<t.bufferEntries.length;w++){var O=t.bufferEntries[w];O.packed||(O.packed=!0,O.offset=e,r.push(O),e+=O.sizeInBytes)}t.bufferEntries=r,t._bufferEntryNames.clear();for(var I=0;I<t.bufferEntries.length;I++)t._bufferEntryNames.set(t.bufferEntries[I].name,I);t.sizeInBytes=e,t.sizeInBytes=n*Math.ceil(t.sizeInBytes/n),t.sortDirty=!1}},e.sendIfNeeded=function(e){if(!t.UBO){var r={nativeArray:t.Float32Array,usage:bo.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(r),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&&(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=ht.default.newTypedArray(e,t.arrayBuffer))},e.setValue=function(r,n){e.sortBufferEntries();var a=t._bufferEntryNames.get(r);if(void 0!==a){var o=t.bufferEntries[a];e.createView(o.nativeType);var i=t[o.nativeType];o.lastValue!==n&&(i[o.offset/i.BYTES_PER_ELEMENT]=n,t.sendDirty=!0),o.lastValue=n}else To("entry named ".concat(r," not found in UBO"))},e.setArray=function(r,n){e.sortBufferEntries();var a=t._bufferEntryNames.get(r);if(void 0!==a){var o=t.bufferEntries[a];e.createView(o.nativeType);for(var i=t[o.nativeType],s=!1,l=0;l<n.length;l++)o.lastValue&&o.lastValue[l]===n[l]||(i[o.offset/i.BYTES_PER_ELEMENT+l]=n[l],s=!0);s&&(t.sendDirty=!0,o.lastValue=(0,pa.Z)(n))}else To("entry named ".concat(r," not found in UBO"))},e.getBindGroupEntry=function(){return{resource:{buffer:t.UBO.getHandle()}}},e.getSendTime=function(){return t.sendTime.getMTime()},e.getShaderCode=function(r,n){e.sortBufferEntries();for(var a=["struct ".concat(t.label,"Struct\n{")],o=0;o<t.bufferEntries.length;o++){var i=t.bufferEntries[o];a.push(" ".concat(i.name,": ").concat(i.type,","))}return a.push("};\n@binding(".concat(r,") @group(").concat(n,") var<uniform> ").concat(t.label,": ").concat(t.label,"Struct;")),a.join("\n")}}(e,t)}var So={newInstance:ht.default.newInstance(xo,"vtkWebGPUUniformBuffer"),extend:xo},Po=ht.eR,wo="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4<f32> = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n",Oo="\nfn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2<f32> = vec2<f32>(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var tcoord: vec4<f32> = vec4<f32>(input.vertexVC.xy, -1, 1);\n var V: vec4<f32> = normalize(mapperUBO.FSQMatrix * tcoord); // vec2<f32>((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2);\n // textureSampleLevel gets rid of some ugly artifacts\n var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0);\n var computedColor: vec4<f32> = vec4<f32>(background.rgb, 1);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n",Io=new Float64Array(16),Ao=new Float64Array(16);var Ro={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function Eo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ro,r),Tt.extend(e,t,r),t.UBO=So.newInstance({label:"rendererUBO"}),t.UBO.addEntry("WCVCMatrix","mat4x4<f32>"),t.UBO.addEntry("SCPCMatrix","mat4x4<f32>"),t.UBO.addEntry("PCSCMatrix","mat4x4<f32>"),t.UBO.addEntry("SCVCMatrix","mat4x4<f32>"),t.UBO.addEntry("VCPCMatrix","mat4x4<f32>"),t.UBO.addEntry("WCVCNormals","mat4x4<f32>"),t.UBO.addEntry("viewportSize","vec2<f32>"),t.UBO.addEntry("LightCount","i32"),t.UBO.addEntry("MaxEnvironmentMipLevel","f32"),t.UBO.addEntry("BackgroundDiffuseStrength","f32"),t.UBO.addEntry("BackgroundSpecularStrength","f32"),t.UBO.addEntry("cameraParallel","u32"),t.SSBO=yo.newInstance({label:"rendererLightSSBO"}),t.lightTimeString="",t.bindGroup=ia.newInstance({label:"rendererBG"}),t.bindGroup.setBindables([t.UBO,t.SSBO]),t.tmpMat4=ot._E.identity(new Float64Array(16)),t.stabilizedTime={},(0,ht.j6)(t.stabilizedTime,{mtime:0}),(0,ht.U2)(e,t,["bindGroup","stabilizedTime"]),(0,ht.c$)(e,t,["stabilizedCenter"]),(0,ht.g2)(e,t,["renderEncoder","selector","suppressClear","UBO"]),function(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=function(r){if(r){if(!t.renderable)return;t.camera=t.renderable.getActiveCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.camera),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),t.webgpuCamera=e.getViewNodeFor(t.camera),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=function(){var e=t.camera.getClippingRange(),r=t.camera.getPositionByReference(),n=t.camera.getDirectionOfProjectionByReference(),a=[],o=[];ot.R3.scale(o,n,.5*(e[0]+e[1])),ot.R3.add(a,r,o),ot.R3.sub(o,a,t.stabilizedCenter),ot.R3.len(o)/(e[1]-e[0])>t.recenterThreshold&&(t.stabilizedCenter=a,t.stabilizedTime.modified())},e.updateLights=function(){for(var e=0,r=t.renderable.getLightsByReference(),n=0;n<r.length;++n)r[n].getSwitch()>0&&e++;return e||(Po("No lights are on, creating one."),t.renderable.createLight()),e},e.updateUBO=function(){var r=t.UBO.getSendTime();if(t._parent.getMTime()>r||e.getMTime()>r||t.camera.getMTime()>r||t.renderable.getMTime()>r){var n,a=t.webgpuCamera.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",a.wcvc),t.UBO.setArray("SCPCMatrix",a.scpc),t.UBO.setArray("PCSCMatrix",a.pcsc),t.UBO.setArray("SCVCMatrix",a.scvc),t.UBO.setArray("VCPCMatrix",a.vcpc),t.UBO.setArray("WCVCNormals",a.normalMatrix),t.UBO.setValue("LightCount",t.renderable.getLights().length),t.UBO.setValue("MaxEnvironmentMipLevel",null===(n=t.renderable.getEnvironmentTexture())||void 0===n?void 0:n.getMipLevel()),t.UBO.setValue("BackgroundDiffuseStrength",t.renderable.getEnvironmentTextureDiffuseStrength()),t.UBO.setValue("BackgroundSpecularStrength",t.renderable.getEnvironmentTextureSpecularStrength());var o=e.getYInvertedTiledSizeAndOrigin();t.UBO.setArray("viewportSize",[o.usize,o.vsize]),t.UBO.setValue("cameraParallel",t.camera.getParallelProjection());var i=t._parent.getDevice();t.UBO.sendIfNeeded(i)}},e.updateSSBO=function(){for(var r,n=t.renderable.getLights(),a=t.webgpuCamera.getKeyMatrices(e),o="".concat(t.renderable.getMTime()),i=0;i<n.length;i++)o+=n[i].getMTime();if(o!==t.lightTimeString){for(var s=new Float32Array(4*n.length),l=new Float32Array(4*n.length),c=new Float32Array(4*n.length),u=new Float32Array(4*n.length),d=0;d<n.length;d++){var f=4*d,p=n[d].getPosition();ot.R3.transformMat4(p,p,a.wcvc),s[f]=p[0],s[f+1]=p[1],s[f+2]=p[2],s[f+3]=0,l[f]=-n[d].getDirection()[0],l[f+1]=-n[d].getDirection()[1],l[f+2]=-n[d].getDirection()[2],l[f+3]=0,c[f]=n[d].getColor()[0],c[f+1]=n[d].getColor()[1],c[f+2]=n[d].getColor()[2],c[f+3]=5*n[d].getIntensity(),u[f]=(r=n[d]).getPositional()?r.getConeAngle()>=90?0:2:1,u[f+1]=Math.cos((0,Mr.r)(n[d].getConeAngle())),u[f+2]=Math.cos((0,Mr.r)(n[d].getConeAngle()+n[d].getConeFalloff())),u[f+3]=0}t.SSBO.clearData(),t.SSBO.setNumberOfInstances(n.length),t.SSBO.addEntry("LightPos","vec4<f32>"),t.SSBO.addEntry("LightDir","vec4<f32>"),t.SSBO.addEntry("LightColor","vec4<f32>"),t.SSBO.addEntry("LightData","vec4<f32>"),t.SSBO.setAllInstancesFromArray("LightPos",s),t.SSBO.setAllInstancesFromArray("LightDir",l),t.SSBO.setAllInstancesFromArray("LightColor",c),t.SSBO.setAllInstancesFromArray("LightData",u);var g=t._parent.getDevice();t.SSBO.send(g)}t.lightTimeString=o},e.scissorAndViewport=function(t){var r=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize,0,1),t.getHandle().setScissorRect(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize)},e.bindUBO=function(e){e.activateBindGroup(t.bindGroup)},e.opaquePass=function(r){r?(t.renderEncoder.begin(t._parent.getCommandEncoder()),e.updateUBO(),e.updateSSBO()):(e.scissorAndViewport(t.renderEncoder),e.clear(),t.renderEncoder.end())},e.clear=function(){var r;if(!t.renderable.getTransparent()&&!t.suppressClear){var n=t._parent.getDevice();if(!t.clearFSQ){t.clearFSQ=Ma.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(wo);var a=So.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4<f32>"),a.addEntry("BackgroundColor","vec4<f32>"),t.clearFSQ.setUBO(a),t.backgroundTex=t.renderable.getEnvironmentTexture()}if("clearfsqwithtexture"!==t.clearFSQ.getPipelineHash()&&t.renderable.getUseEnvironmentTextureAsBackground()&&null!==(r=t.backgroundTex)&&void 0!==r&&r.getImageLoaded()){t.clearFSQ.setFragmentShaderTemplate(Oo);var o=So.newInstance({label:"mapperUBO"});o.addEntry("FSQMatrix","mat4x4<f32>"),o.addEntry("BackgroundColor","vec4<f32>"),t.clearFSQ.setUBO(o);var i=n.getTextureManager().getTextureForVTKTexture(t.backgroundTex);if(i.getReady()){var s=i.createView("EnvironmentTexture");t.clearFSQ.setTextureViews([s]),t.backgroundTexLoaded=!0;var l=t.backgroundTex.getInterpolate()?"linear":"nearest";s.addSampler(n,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:l,magFilter:l,mipmapFilter:"linear"})}t.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if("clearfsqwithtexture"===t.clearFSQ.getPipelineHash()&&!t.renderable.getUseEnvironmentTextureAsBackground()){t.clearFSQ=Ma.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(wo);var c=So.newInstance({label:"mapperUBO"});c.addEntry("FSQMatrix","mat4x4<f32>"),c.addEntry("BackgroundColor","vec4<f32>"),t.clearFSQ.setUBO(c)}var u=t.webgpuCamera.getKeyMatrices(e),d=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",d),ot._E.transpose(Ao,u.normalMatrix),ot._E.mul(Io,u.scvc,u.pcsc),ot._E.mul(Io,Ao,Io),t.clearFSQ.getUBO().setArray("FSQMatrix",Io),t.clearFSQ.getUBO().sendIfNeeded(n),t.clearFSQ.prepareAndDraw(t.renderEncoder)}},e.translucentPass=function(r){r?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.volumeDepthRangePass=function(r){r?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.getAspectRatio=function(){var e=t._parent.getSizeByReference(),r=t.renderable.getViewportByReference();return e[0]*(r[2]-r[0])/((r[3]-r[1])*e[1])},e.convertToOpenGLDepth=function(e){return t.webgpuCamera.convertToOpenGLDepth(e)},e.getYInvertedTiledSizeAndOrigin=function(){var r=e.getTiledSizeAndOrigin(),n=t._parent.getSizeByReference();return r.lowerLeftV=n[1]-r.vsize-r.lowerLeftV,r},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),r=[0,0,1,1],n=e[0]-r[0],a=e[1]-r[1],o=t._parent.normalizedDisplayToDisplay(n,a),i=Math.round(o[0]),s=Math.round(o[1]),l=e[2]-r[0],c=e[3]-r[1],u=t._parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=function(e){for(var r=0;r<t.children.length;r++)if((t.children[r].getPropID?t.children[r].getPropID():-1)===e)return t.children[r];return null},e.getStabilizedTime=function(){return t.stabilizedTime.getMTime()},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()}}(e,t)}var Mo=(0,ht.WL)(Eo,"vtkWebGPURenderer");Qn("vtkRenderer",Mo);var Do={device:null,handle:null,label:null,options:null};function Vo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Do,r),ht.default.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},ht.default.obj(t.bindGroupTime,{mtime:0}),ht.default.get(e,t,["bindGroupTime","handle","options"]),ht.default.setGet(e,t,["bindGroupLayoutEntry","device","label"]),function(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.options.addressModeU=r.addressModeU?r.addressModeU:"clamp-to-edge",t.options.addressModeV=r.addressModeV?r.addressModeV:"clamp-to-edge",t.options.addressModeW=r.addressModeW?r.addressModeW:"clamp-to-edge",t.options.magFilter=r.magFilter?r.magFilter:"nearest",t.options.minFilter=r.minFilter?r.minFilter:"nearest",t.options.mipmapFilter=r.mipmapFilter?r.mipmapFilter:"nearest",t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=function(e,r){return"@binding(".concat(e,") @group(").concat(r,") var ").concat(t.label,": sampler;")},e.getBindGroupEntry=function(){return{resource:t.handle}}}(e,t)}var Lo={newInstance:ht.default.newInstance(Vo),extend:Vo},_o=fn.SlicingMode;var No=new Float64Array(16),Bo=new Float64Array(16),Fo=new Float64Array(16),Uo=new Float64Array(4),ko=new Float64Array(4);var Go={rowLength:1024};function Wo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Go,r),Ma.extend(e,t,r),e.setFragmentShaderTemplate("\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Image::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n //VTK::Image::Sample\n\n // var computedColor: vec4<f32> = vec4<f32>(1.0,0.7, 0.5, 1.0);\n\n//VTK::RenderEncoder::Impl\n\n return output;\n}\n"),t.UBO=So.newInstance({label:"mapperUBO"}),t.UBO.addEntry("SCTCMatrix","mat4x4<f32>"),t.UBO.addEntry("Origin","vec4<f32>"),t.UBO.addEntry("Axis2","vec4<f32>"),t.UBO.addEntry("Axis1","vec4<f32>"),t.UBO.addEntry("cScale","vec4<f32>"),t.UBO.addEntry("cShift","vec4<f32>"),t.lutBuildTime={},(0,ht.j6)(t.lutBuildTime,{mtime:0}),t.imagemat=ot._E.identity(new Float64Array(16)),t.imagematinv=ot._E.identity(new Float64Array(16)),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkWebGPUImageMapper"),e.buildPass=function(r){if(r){t.WebGPUImageSlice=e.getFirstAncestorOfType("vtkWebGPUImageSlice"),t.WebGPURenderer=t.WebGPUImageSlice.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice();var n=t.WebGPURenderer.getRenderable();t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(n.getActiveCamera())}},e.translucentPass=function(t){t&&e.render()},e.opaquePass=function(t){t&&e.render()},e.render=function(){t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw)},e.computePipelineHash=function(){var e=t.currentInput.getExtent();e[0]===e[1]||e[2]===e[3]||e[4]===e[5]?(t.dimensions=2,t.pipelineHash="img2"):(t.dimensions=3,t.pipelineHash="img3")},e.updateUBO=function(){var r=t.UBO.getSendTime(),n=t.WebGPUImageSlice.getRenderable(),a=n.getMapper();if(e.getMTime()>r||t.renderable.getMTime()>r||n.getProperty().getMTime()>r){var o=a.getInputData(),i=t.WebGPURenderer.getStabilizedCenterByReference();ot._E.identity(No),ot._E.translate(No,No,i);var s=n.getMatrix();ot._E.transpose(Bo,s),ot._E.invert(Bo,Bo),ot._E.multiply(No,Bo,No);var l=o.getWorldToIndex();ot._E.multiply(No,l,No),ot._E.invert(Fo,No),ot._E.fromTranslation(Bo,[.5,.5,.5]),ot._E.multiply(No,Bo,No);var c=o.getDimensions();ot._E.identity(Bo),ot._E.scale(Bo,Bo,[1/c[0],1/c[1],1/c[2]]),ot._E.multiply(No,Bo,No),t.UBO.setArray("SCTCMatrix",No);var u=t.currentInput.getExtent(),d=t.renderable.getClosestIJKAxis().ijkMode,f=t.renderable.getSlice();d!==t.renderable.getSlicingMode()&&(f=t.renderable.getSliceAtPosition(f));var p=2,g=0,m=1;d===_o.I?(p=0,g=1,m=2):d===_o.J&&(p=1,g=2,m=0),Uo[p]=f,Uo[g]=u[2*g]-.5,Uo[m]=u[2*m]-.5,Uo[3]=1,ot.vh.transformMat4(Uo,Uo,Fo),t.UBO.setArray("Origin",Uo),ko[p]=f,ko[g]=u[2*g+1]+.5,ko[m]=u[2*m]-.5,ko[3]=1,ot.vh.transformMat4(ko,ko,Fo),ot.vh.subtract(ko,ko,Uo),ko[3]=1,t.UBO.setArray("Axis1",ko),ko[p]=f,ko[g]=u[2*g]-.5,ko[m]=u[2*m+1]+.5,ko[3]=1,ot.vh.transformMat4(ko,ko,Fo),ot.vh.subtract(ko,ko,Uo),ko[3]=1,t.UBO.setArray("Axis2",ko);for(var h=[1,1,1,1],v=[0,0,0,0],y=t.textureViews[0],b=y.getTexture().getScale(),T=y.getTexture().getNumberOfComponents(),C=0;C<T;C++){var x=n.getProperty().getColorWindow(),S=n.getProperty().getColorLevel(),P=n.getProperty().getRGBTransferFunction(0);if(P){var w=P.getRange();x=w[1]-w[0],S=.5*(w[1]+w[0])}h[C]=b/x,v[C]=-S/x+.5}t.UBO.setArray("cScale",h),t.UBO.setArray("cShift",v),t.UBO.sendIfNeeded(t.device)}},e.updateLUTImage=function(){var r=t.WebGPUImageSlice.getRenderable().getProperty();e.getTextureViews()[0].getTexture().getNumberOfComponents();var n=function(e,t,r){if(t.apply(e)){var n=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(n,"-").concat(r)}return"0"}(r,r.getRGBTransferFunction,1);if(t.colorTextureString!==n){t.numRows=1;var a=new Uint8Array(2*t.numRows*t.rowLength*4),o=r.getRGBTransferFunction();if(o)for(var i=new Float32Array(3*t.rowLength),s=0;s<1;s++){var l=(o=r.getRGBTransferFunction(s)).getRange();o.getTable(l[0],l[1],t.rowLength,i,1);for(var c=0;c<t.rowLength;c++){var u=s*t.rowLength*8+4*c;a[u]=255*i[3*c],a[u+1]=255*i[3*c+1],a[u+2]=255*i[3*c+2],a[u+3]=255;for(var d=0;d<4;d++)a[u+4*t.rowLength+d]=a[u+d]}}else for(var f=0;f<t.rowLength;++f){var p=255*f/(t.rowLength-1);a[4*f]=p,a[4*f+1]=p,a[4*f+2]=p,a[4*f+3]=255;for(var g=0;g<4;g++)a[4*f+4*t.rowLength+g]=a[4*f+g]}var m={nativeArray:a,width:t.rowLength,height:2*t.numRows,depth:1,format:"rgba8unorm"},h=t.device.getTextureManager().getTexture(m).createView("tfunTexture");t.textureViews[1]=h,t.colorTextureString=n}};var r=e.updateBuffers;e.updateBuffers=function(){r();var n=t.device.getTextureManager().getTextureForImageData(t.currentInput),a=t.textureViews;if(!a[0]||a[0].getTexture()!==n){var o=n.createView("imgTexture");a[0]=o}e.updateLUTImage(),e.updateUBO();var i=t.WebGPUImageSlice.getRenderable().getProperty().getInterpolationType()===tn.NEAREST?"nearest":"linear";t.clampSampler&&i===t.clampSampler.getOptions().minFilter||(t.clampSampler=Lo.newInstance({label:"clampSampler"}),t.clampSampler.create(t.device,{minFilter:i,magFilter:i}),t.additionalBindables=[t.clampSampler])};var n=e.getShaderReplacements();e.replaceShaderPosition=function(e,r,n){var a=r.getShaderDescription("vertex");a.addBuiltinOutput("vec4<f32>","@builtin(position) Position");var o=a.getCode(),i=["var pos: vec4<f32> = mapperUBO.Origin +"," (vertexBC.x * 0.5 + 0.5) * mapperUBO.Axis1 + (vertexBC.y * 0.5 + 0.5) * mapperUBO.Axis2;","pos.w = 1.0;"];2===t.dimensions?i.push("var tcoord : vec2<f32> = (mapperUBO.SCTCMatrix * pos).xy;"):i.push("var tcoord : vec3<f32> = (mapperUBO.SCTCMatrix * pos).xyz;"),i.push("output.tcoordVS = tcoord;","output.Position = rendererUBO.SCPCMatrix * pos;"),o=fa.substitute(o,"//VTK::Position::Impl",i).result,a.setCode(o)},n.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,r,n){var a=r.getShaderDescription("vertex");2===t.dimensions?a.addOutput("vec2<f32>","tcoordVS"):a.addOutput("vec3<f32>","tcoordVS")},n.set("replaceShaderTCoord",e.replaceShaderTCoord),e.replaceShaderImage=function(e,r,n){var a=r.getShaderDescription("fragment"),o=a.getCode();t.dimensions,o=fa.substitute(o,"//VTK::Image::Sample",[" var computedColor: vec4<f32> ="," textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);","//VTK::Image::Sample"]).result,o=fa.substitute(o,"//VTK::Image::Sample",[" var coord: vec2<f32> ="," vec2<f32>(computedColor.r * mapperUBO.cScale.r + mapperUBO.cShift.r, 0.5);"," computedColor = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);"]).result,a.setCode(o)},n.set("replaceShaderImage",e.replaceShaderImage)}(e,t)}var zo=(0,ht.WL)(Wo,"vtkWebGPUImageMapper");Qn("vtkImageMapper",zo);var jo={bufferShift:void 0,keyMatrixTime:null,keyMatrices:null,propID:void 0};function Ho(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,jo,r),Tt.extend(e,t,r),t.keyMatricesTime={},(0,ht.j6)(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:ot._E.identity(new Float64Array(16))},t.bufferShift=[0,0,0,0],(0,ht.U2)(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUImageSlice"),e.buildPass=function(r){if(t.renderable&&t.renderable.getVisibility()&&r){if(!t.renderable)return;t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaquePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children.forEach((function(e){e.traverse(r)})),e.apply(r,!1))},e.traverseTranslucentPass=function(r){!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(r,!0),t.children.forEach((function(e){e.traverse(r)})),e.apply(r,!1))},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},e.getBufferShift=function(r){return e.getKeyMatrices(r),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var r=t.renderable.getMatrix(),n=e.getStabilizedCenterByReference();t.bufferShift[0]=r[3]-n[0],t.bufferShift[1]=r[7]-n[1],t.bufferShift[2]=r[11]-n[2],ot._E.transpose(t.keyMatrices.bcwc,r),t.renderable.getIsIdentity()?ot._E.identity(t.keyMatrices.normalMatrix):(ot._E.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,ot._E.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),ot._E.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),ot._E.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),ot._E.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var Ko=(0,ht.WL)(Ho,"vtkWebGPUImageSlice");Qn("vtkImageSlice",Ko);var Zo={propID:void 0,keyMatricesTime:null};function Xo(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zo,r),Tt.extend(e,t,r),t.keyMatricesTime={},ht.default.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},ht.default.get(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUVolume"),e.buildPass=function(r){t.renderable&&t.renderable.getVisibility()&&r&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),t.renderable.getMapper().update())},e.queryPass=function(r,n){if(r){if(!t.renderable||!t.renderable.getVisibility())return;var a=t.renderable.getMapper().getBounds();if(!a||6!==a.length||a[0]>a[1])return;n.addVolume(e)}};var r=new Float64Array(3),n=new Float64Array(3);e.getBoundingCubePoints=function(e,a){var o=t.renderable.getMapper().getInputData();if(o)for(var i=o.getExtent(),s=t.renderable.getMatrix(),l=0,c=4;c<6;c++){r[2]=i[c];for(var u=2;u<4;u++){r[1]=i[u];for(var d=0;d<2;d++){r[0]=i[d],o.indexToWorld(r,n);var f=a+3*l;e[f++]=s[0]*n[0]+s[1]*n[1]+s[2]*n[2]+s[3],e[f++]=s[4]*n[0]+s[5]*n[1]+s[6]*n[2]+s[7],e[f++]=s[8]*n[0]+s[9]*n[1]+s[10]*n[2]+s[11],l++}}}},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var r=t.renderable.getMatrix(),n=e.getStabilizedCenterByReference();ot._E.transpose(t.keyMatrices.bcwc,r),ot._E.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var qo=ht.default.newInstance(Xo,"vtkWebGPUVolume");Qn("vtkVolume",qo);var Yo={};function $o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yo,r),Tt.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=function(r,n){t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();var a=t.WebGPURenderer.getAspectRatio(),o=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,null)}}(e,t)}var Qo=ht.default.newInstance($o,"vtkWebGPUPixelSpaceCallbackMapper");Qn("vtkPixelSpaceCallbackMapper",Qo);var Jo=r(96372),ei=r(11677),ti=r.n(ei);function ri(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function ni(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function i(e){ri(o,n,a,i,s,"next",e)}function s(e){ri(o,n,a,i,s,"throw",e)}i(void 0)}))}}var ai=r(75882),oi=r.n(ai),ii=navigator.gpu?"WebGPU":"WebGL",si=Object.create(null);function li(e,t){si[e]=t}function ci(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return si[e]&&si[e](t)}var ui={defaultViewAPI:ii,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function di(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ui,r),ht.default.obj(e,t),ht.default.setGet(e,t,["interactor","numberOfLayers","_views","defaultViewAPI"]),ht.default.get(e,t,["neverRendered"]),ht.default.getArray(e,t,["renderers"]),ht.default.moveToProtected(e,t,["views"]),ht.default.event(e,t,"completion"),function(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=function(r){e.hasRenderer(r)||(r.setRenderWindow(e),t.renderers.push(r),e.modified())},e.removeRenderer=function(r){t.renderers=t.renderers.filter((function(e){return e!==r})),e.modified()},e.hasRenderer=function(e){return-1!==t.renderers.indexOf(e)},e.newAPISpecificView=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ci(e||t.defaultViewAPI,r)},e.addView=function(r){e.hasView(r)||(r.setRenderable(e),t._views.push(r),e.modified())},e.removeView=function(r){t._views=t._views.filter((function(e){return e!==r})),e.modified()},e.hasView=function(e){return-1!==t._views.indexOf(e)},e.preRender=function(){t.renderers.forEach((function(e){e.isActiveCameraCreated()||e.resetCamera()}))},e.render=function(){e.preRender(),t.interactor?t.interactor.render():t._views.forEach((function(e){return e.traverseAllPasses()}))},e.getStatistics=function(){var e={propCount:0,invisiblePropCount:0};return t.renderers.forEach((function(t){t.getViewProps().forEach((function(t){if(t.getVisibility()){e.propCount+=1;var r=t.getMapper&&t.getMapper();if(r&&r.getPrimitiveCount){var n=r.getPrimitiveCount();Object.keys(n).forEach((function(t){e[t]||(e[t]=0),e[t]+=n[t]}))}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((function(t){return"".concat(t,": ").concat(e[t])})).join("\n"),e},e.captureImages=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ht.default.setImmediate(e.render),t._views.map((function(e){return e.captureNextImage?e.captureNextImage(r,n):void 0})).filter((function(e){return!!e}))}}(e,t)}var fi={newInstance:ht.default.newInstance(di,"vtkRenderWindow"),extend:di,registerViewConstructor:li,listViewAPIs:function(){return Object.keys(si)},newAPISpecificView:ci};var pi={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function gi(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pi,r),ht.default.obj(e,t),ht.default.get(e,t,["currentOperation"]),ht.default.setGet(e,t,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),ht.default.moveToProtected(e,t,["currentParent"]),function(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=function(){return t.currentOperation},e.setCurrentOperation=function(e){t.currentOperation=e,t.currentTraverseOperation="traverse".concat(ht.default.capitalize(t.currentOperation))},e.getTraverseOperation=function(){return t.currentTraverseOperation},e.traverse=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t._currentParent=n,t.preDelegateOperations.forEach((function(t){e.setCurrentOperation(t),r.traverse(e)})),t.delegates.forEach((function(t){t.traverse(r,e)})),t.postDelegateOperations.forEach((function(t){e.setCurrentOperation(t),r.traverse(e)})))}}(e,t)}var mi={newInstance:ht.default.newInstance(gi,"vtkRenderPass"),extend:gi},hi=Ua.ZP.Representation,vi=ht.default.vtkErrorMacro;function yi(e){var t=Sr.substitute(e.Fragment,"//VTK::RenderPassFragmentShader::Impl","\n float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\n gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\n gl_FragData[1].r = weight;\n ",!1);e.Fragment=t.result}var bi="//VTK::System::Dec\n\nin vec2 tcoord;\n\nuniform sampler2D translucentRTexture;\nuniform sampler2D translucentRGBATexture;\n\n// the output of this shader\n//VTK::Output::Dec\n\nvoid main()\n{\n vec4 t1Color = texture(translucentRGBATexture, tcoord);\n float t2Color = texture(translucentRTexture, tcoord).r;\n gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\n}\n";var Ti={framebuffer:null,copyShader:null,tris:null};function Ci(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ti,r),mi.extend(e,t,r),t.VBOBuildTime={},ht.default.obj(t.VBOBuildTime,{mtime:0}),t.tris=Er.newInstance(),ht.default.get(e,t,["framebuffer"]),function(e,t){t.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),e.createVertexBuffer=function(){var e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),r=new Float32Array([0,0,1,0,0,1,1,1]),n=new Uint16Array([4,0,1,3,2]),a=re.ZP.newInstance({numberOfComponents:3,values:e});a.setName("points");var o=re.ZP.newInstance({numberOfComponents:2,values:r});o.setName("tcoords");var i=re.ZP.newInstance({numberOfComponents:1,values:n});t.tris.getCABO().createVBO(i,"polys",hi.SURFACE,{points:a,tcoords:o,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=function(e){var r,n=e.getSize(),a=e.getContext();t.framebuffer=Dn.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),(r=t.framebuffer).create.apply(r,(0,pa.Z)(n)),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Yr.newInstance(),t.translucentRGBATexture.setInternalFormat(a.RGBA16F),t.translucentRGBATexture.setFormat(a.RGBA),t.translucentRGBATexture.setOpenGLDataType(a.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw(n[0],n[1],4,"Float32Array",null),t.translucentRTexture=Yr.newInstance(),t.translucentRTexture.setInternalFormat(a.R16F),t.translucentRTexture.setFormat(a.RED),t.translucentRTexture.setOpenGLDataType(a.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw(n[0],n[1],1,"Float32Array",null),t.translucentZTexture=Yr.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw(n[0],n[1],"Float32Array",null),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=function(e){t.copyShader=e.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join("\n"),bi,"")},e.createVBO=function(r){var n=r.getContext();t.tris.setOpenGLRenderWindow(r),e.createVertexBuffer();var a=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(a,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),n.FLOAT,3,n.FALSE)||vi("Error setting vertexDC in copy shader VAO."),t.copyVAO.addAttributeArray(a,t.tris.getCABO(),"tcoordTC",t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),n.FLOAT,2,n.FALSE)||vi("Error setting vertexDC in copy shader VAO.")},e.traverse=function(r,n,a){if(!t.deleted){var o=r.getSize(),i=r.getContext();if(t._supported=!1,n.getSelector()||!i||!r.getWebgl2()||!i.getExtension("EXT_color_buffer_half_float")&&!i.getExtension("EXT_color_buffer_float"))return e.setCurrentOperation("translucentPass"),void n.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(r);else{var s=t.framebuffer.getSize();null===s||s[0]!==o[0]||s[1]!==o[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(r),t.translucentRTexture.releaseGraphicsResources(r),t.translucentZTexture.releaseGraphicsResources(r),e.createFramebuffer(r)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),a.getOpaqueActorCount()>0&&(a.setCurrentOperation("opaqueZBufferPass"),n.traverse(a)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,o[0],o[1]),i.scissor(0,0,o[0],o[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation("translucentPass"),n.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(r):r.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=Or.newInstance(),t.copyVAO.setOpenGLRenderWindow(r)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()<e.getMTime()&&e.createVBO(r),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),i.depthMask(!1),i.depthFunc(i.ALWAYS),i.viewport(0,0,o[0],o[1]),i.scissor(0,0,o[0],o[1]),t.translucentRGBATexture.activate(),t.copyShader.setUniformi("translucentRGBATexture",t.translucentRGBATexture.getTextureUnit()),t.translucentRTexture.activate(),t.copyShader.setUniformi("translucentRTexture",t.translucentRTexture.getTextureUnit()),i.drawArrays(i.TRIANGLES,0,t.tris.getCABO().getElementCount()),i.depthMask(!0),i.depthFunc(i.LEQUAL),t.translucentRGBATexture.deactivate(),t.translucentRTexture.deactivate()}},e.getShaderReplacement=function(){return t._supported?yi:null},e.releaseGraphicsResources=function(r){t.framebuffer&&(t.framebuffer.releaseGraphicsResources(r),t.framebuffer=null),t.translucentRGBATexture&&(t.translucentRGBATexture.releaseGraphicsResources(r),t.translucentRGBATexture=null),t.translucentRTexture&&(t.translucentRTexture.releaseGraphicsResources(r),t.translucentRTexture=null),t.translucentZTexture&&(t.translucentZTexture.releaseGraphicsResources(r),t.translucentZTexture=null),t.copyVAO&&(t.copyVAO.releaseGraphicsResources(r),t.copyVAO=null),t.copyShader&&(t.copyShader.releaseGraphicsResources(r),t.copyShader=null),t.tris&&(t.tris.releaseGraphicsResources(r),t.tris=null),e.modified()}}(e,t)}var xi={newInstance:ht.default.newInstance(Ci,"vtkOpenGLOrderIndependentTranslucentPass"),extend:Ci};var Si={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function Pi(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Si,r),mi.extend(e,t,r),ht.default.get(e,t,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),function(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.deleted){t._currentParent=n,e.setCurrentOperation("buildPass"),r.traverse(e);for(var a=r.getRenderable().getNumberOfLayers(),o=r.getChildren(),i=0;i<a;i++)for(var s=0;s<o.length;s++){var l=o[s],c=r.getRenderable().getRenderers()[s];if(c.getDraw()&&c.getLayer()===i){if(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumeCount=0,t.overlayActorCount=0,e.setCurrentOperation("queryPass"),l.traverse(e),(t.opaqueActorCount>0||t.translucentActorCount>0)&&t.volumeCount>0||t.depthRequested){var u=r.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=Dn.newInstance()),t.framebuffer.setOpenGLRenderWindow(r),t.framebuffer.saveCurrentBindingsAndBuffers();var d=t.framebuffer.getSize();null!==d&&d[0]===u[0]&&d[1]===u[1]||(t.framebuffer.create(u[0],u[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("zBufferPass"),l.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),l.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),l.traverse(e)),t.translucentActorCount>0&&(t.translucentPass||(t.translucentPass=xi.newInstance()),t.translucentPass.traverse(r,l,e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),l.traverse(e)),t.overlayActorCount>0&&(e.setCurrentOperation("overlayPass"),l.traverse(e))}}}},e.getZBufferTexture=function(){return t.framebuffer?t.framebuffer.getColorTexture():null},e.requestDepth=function(){t.depthRequested=!0},e.incrementOpaqueActorCount=function(){return t.opaqueActorCount++},e.incrementTranslucentActorCount=function(){return t.translucentActorCount++},e.incrementVolumeCount=function(){return t.volumeCount++},e.incrementOverlayActorCount=function(){return t.overlayActorCount++}}(e,t)}var wi={newInstance:ht.default.newInstance(Pi,"vtkForwardPass"),extend:Pi},Oi=r(18603),Ii=r(14418);var Ai={fieldAssociation:Ii.ZP.FieldAssociations.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Ri(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ai,r),ht.default.obj(e,t),ht.default.setGet(e,t,["fieldAssociation","captureZValues"]),function(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=function(){var e=ni(oi().mark((function e(t,r,n,a,o){return oi().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t,r,n,a,o){return e.apply(this,arguments)}}(),e.selectAsync=function(){var t=ni(oi().mark((function t(r,n,a,o,i){var s;return oi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.getSourceDataAsync(r,n,a,o,i);case 2:if(!(s=t.sent)){t.next=5;break}return t.abrupt("return",s.generateSelection(n,a,o,i));case 5:return t.abrupt("return",[]);case 6:case"end":return t.stop()}}),t)})));return function(e,r,n,a,o){return t.apply(this,arguments)}}()}(e,t)}var Ei={newInstance:ht.default.newInstance(Ri,"vtkHardwareSelector"),extend:Ri},Mi={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};function Di(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Vi={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Li(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vi,r),ht.default.obj(e,t),t.properties={},ht.default.setGet(e,t,["contentType","fieldType","properties","selectionList"]),function(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=function(){return t.points.getBounds()}}(e,t)}var _i=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Di(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Di(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance(Li,"vtkSelectionNode"),extend:Li},Mi);function Ni(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Bi=Oi.Z.PassTypes,Fi=_i.SelectionContent,Ui=_i.SelectionField,ki=Ii.ZP.FieldAssociations,Gi=ht.default.vtkErrorMacro,Wi=1;function zi(e){return"".concat(e.propID," ").concat(e.compositeID)}function ji(e,t,r,n){return r?r[4*(t*(n[2]-n[0]+1)+e)+3]:0}function Hi(e,t,r,n){if(!r)return 0;var a=4*(t*(n[2]-n[0]+1)+e),o=r[a],i=r[a+1];return 256*(256*r[a+2]+i)+o}function Ki(e,t){var r=t;return r<<=24,r|=e}function Zi(e,t,r,n){var a=r<0?0:r;if(0===a){if(n[0]=t[0],n[1]=t[1],t[0]<e.area[0]||t[0]>e.area[2]||t[1]<e.area[1]||t[1]>e.area[3])return null;var o=[t[0]-e.area[0],t[1]-e.area[1]],i=Hi(o[0],o[1],e.pixBuffer[Bi.ACTOR_PASS],e.area);if(i<=0||i-Wi>=e.props.length)return null;var s={valid:!0};s.propID=i-Wi,s.prop=e.props[s.propID];var l=Hi(o[0],o[1],e.pixBuffer[Bi.COMPOSITE_INDEX_PASS],e.area);if((l<0||l>16777215)&&(l=0),s.compositeID=l-Wi,e.captureZValues){var c=4*(o[1]*(e.area[2]-e.area[0]+1)+o[0]);s.zValue=(256*e.zBuffer[c]+e.zBuffer[c+1])/65535,s.displayPosition=t}if(e.pixBuffer[Bi.ID_LOW24]&&0===ji(o[0],o[1],e.pixBuffer[Bi.ID_LOW24],e.area))return s;var u=Hi(o[0],o[1],e.pixBuffer[Bi.ID_LOW24],e.area),d=Hi(o[0],o[1],e.pixBuffer[Bi.ID_HIGH24],e.area);return s.attributeID=Ki(u,d),s}var f=[t[0],t[1]],p=[0,0],g=Zi(e,t,0,n);if(g&&g.valid)return g;for(var m=1;m<a;++m){for(var h=f[1]>m?f[1]-m:0;h<=f[1]+m;++h){if(p[1]=h,f[0]>=m&&(p[0]=f[0]-m,(g=Zi(e,p,0,n))&&g.valid))return g;if(p[0]=f[0]+m,(g=Zi(e,p,0,n))&&g.valid)return g}for(var v=f[0]>=m?f[0]-(m-1):0;v<=f[0]+(m-1);++v){if(p[0]=v,f[1]>=m&&(p[1]=f[1]-m,(g=Zi(e,p,0,n))&&g.valid))return g;if(p[1]=f[1]+m,(g=Zi(e,p,0,n))&&g.valid)return g}}return n[0]=t[0],n[1]=t[1],null}function Xi(e,t,r,n,a){var o=[],i=0;return t.forEach((function(t,s){var l=_i.newInstance();switch(l.setContentType(Fi.INDICES),e){case ki.FIELD_ASSOCIATION_CELLS:l.setFieldType(Ui.CELL);break;case ki.FIELD_ASSOCIATION_POINTS:l.setFieldType(Ui.POINT);break;default:Gi("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,r&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=a.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n)),l.setSelectionList(t.attributeIDs),o[i]=l,i++})),o}function qi(e,t,r,n,a){for(var o=Math.floor(t),i=Math.floor(r),s=Math.floor(n),l=Math.floor(a),c=new Map,u=[0,0],d=i;d<=l;d++)for(var f=o;f<=s;f++){var p=Zi(e,[f,d],0,u);if(p&&p.valid){var g=zi(p);if(c.has(g)){var m=c.get(g);m.pixelCount++,e.captureZValues&&p.zValue<m.info.zValue&&(m.info=p),-1===m.attributeIDs.indexOf(p.attributeID)&&m.attributeIDs.push(p.attributeID)}else c.set(g,{info:p,pixelCount:1,attributeIDs:[p.attributeID]})}}return Xi(e.fieldAssociation,c,e.captureZValues,e.renderer,e.openGLRenderWindow)}var Yi={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function $i(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yi,r),Ei.extend(e,t,r),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),ht.default.setGetArray(e,t,["area"],4),ht.default.setGet(e,t,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),ht.default.setGetArray(e,t,["propColorValue"],3),ht.default.moveToProtected(e,t,["renderer","openGLRenderWindow"]),ht.default.event(e,t,"event"),function(e,t){t.classHierarchy.push("vtkOpenGLHardwareSelector"),e.releasePixBuffers=function(){t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=function(){t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t.maxAttributeId=0;var r=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();var n=t.framebuffer.getSize();n[0]!==r[0]||n[1]!==r[1]?(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()):t.framebuffer.bind()}else t.framebuffer=Dn.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===ki.FIELD_ASSOCIATION_POINTS){var a=t._openGLRenderWindow.getContext(),o=a.isEnabled(a.BLEND);a.disable(a.BLEND),t._openGLRenderWindow.traverseAllPasses(),o&&a.enable(a.BLEND)}},e.endSelection=function(){t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=function(){var e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=function(){var e=t._openGLRenderWindow.getContext();t.originalBlending&&e.enable(e.BLEND)},e.select=function(){var r=null;return e.captureBuffers()&&(r=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),r},e.getSourceDataAsync=function(){var r=ni(oi().mark((function r(n,a,o,i,s){var l,c;return oi().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t._renderer=n,void 0===a?(l=t._openGLRenderWindow.getSize(),e.setArea(0,0,l[0]-1,l[1]-1)):e.setArea(a,o,i,s),e.captureBuffers()){r.next=4;break}return r.abrupt("return",!1);case 4:return(c={area:(0,pa.Z)(t.area),pixBuffer:(0,pa.Z)(t.pixBuffer),captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:(0,pa.Z)(t.props),fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow}).generateSelection=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return qi.apply(void 0,[c].concat(t))},r.abrupt("return",c);case 7:case"end":return r.stop()}}),r)})));return function(e,t,n,a,o){return r.apply(this,arguments)}}(),e.captureBuffers=function(){if(!t._renderer||!t._openGLRenderWindow)return Gi("Renderer and view must be set before calling Select."),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:"StartEvent"}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);var r=t._openGLRenderWindow.getRenderPasses();for(e.beginSelection(),t.currentPass=Bi.MIN_KNOWN_PASS;t.currentPass<=Bi.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&&(e.preCapturePass(t.currentPass),t.captureZValues&&t.currentPass===Bi.ACTOR_PASS&&"function"==typeof r[0].requestDepth&&"function"==typeof r[0].getFramebuffer?(r[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),e.processPixelBuffers());return e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:"EndEvent"}),!0},e.processPixelBuffers=function(){t.props.forEach((function(r,n){e.isPropHit(n)&&r.processSelectorPixelBuffers(e,t.propPixels[n])}))},e.passRequired=function(e){if(e===Bi.ID_HIGH24){if(t.fieldAssociation===ki.FIELD_ASSOCIATION_POINTS)return t.maximumPointId>16777215;if(t.fieldAssociation===ki.FIELD_ASSOCIATION_CELLS)return t.maximumCellId>16777215}return!0},e.savePixelBuffer=function(r){if(t.pixBuffer[r]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[r]){var n=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[r]=new Uint8Array(n),t.rawPixBuffer[r].set(t.pixBuffer[r])}if(r===Bi.ACTOR_PASS){if(t.captureZValues){var a=t._openGLRenderWindow.getRenderPasses();if("function"==typeof a[0].requestDepth&&"function"==typeof a[0].getFramebuffer){var o=a[0].getFramebuffer();o.saveCurrentBindingsAndBuffers(),o.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),o.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[r])}},e.buildPropHitList=function(e){for(var r=0,n=0;n<=t.area[3]-t.area[1];n++)for(var a=0;a<=t.area[2]-t.area[0];a++){var o=Hi(a,n,e,t.area);o>0&&(--o in t.hitProps||(t.hitProps[o]=!0,t.propPixels[o]=[]),t.propPixels[o].push(4*r)),++r}},e.renderProp=function(r){t.currentPass===Bi.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+Wi),t.props.push(r))},e.renderCompositeIndex=function(r){t.currentPass===Bi.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(r+Wi)},e.renderAttributeId=function(e){e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=function(e){return ht.default.enumToString(Bi,e)},e.isPropHit=function(e){return Boolean(t.hitProps[e])},e.setPropColorValueFromInt=function(e){t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=function(r,n,a){var o=n<0?0:n;if(0===o){if(a[0]=r[0],a[1]=r[1],r[0]<t.area[0]||r[0]>t.area[2]||r[1]<t.area[1]||r[1]>t.area[3])return null;var i=[r[0]-t.area[0],r[1]-t.area[1]],s=Hi(i[0],i[1],t.pixBuffer[Bi.ACTOR_PASS],t.area);if(s<=0||s-Wi>=t.props.length)return null;var l={valid:!0};l.propID=s-Wi,l.prop=t.props[l.propID];var c=Hi(i[0],i[1],t.pixBuffer[Bi.COMPOSITE_INDEX_PASS],t.area);if((c<0||c>16777215)&&(c=0),l.compositeID=c-Wi,t.captureZValues){var u=4*(i[1]*(t.area[2]-t.area[0]+1)+i[0]);l.zValue=(256*t.zBuffer[u]+t.zBuffer[u+1])/65535,l.displayPosition=r}if(t.pixBuffer[Bi.ID_LOW24]&&0===ji(i[0],i[1],t.pixBuffer[Bi.ID_LOW24],t.area))return l;var d=Hi(i[0],i[1],t.pixBuffer[Bi.ID_LOW24],t.area),f=Hi(i[0],i[1],t.pixBuffer[Bi.ID_HIGH24],t.area);return l.attributeID=Ki(d,f),l}var p=[r[0],r[1]],g=[0,0],m=e.getPixelInformation(r,0,a);if(m&&m.valid)return m;for(var h=1;h<o;++h){for(var v=p[1]>h?p[1]-h:0;v<=p[1]+h;++v){if(g[1]=v,p[0]>=h&&(g[0]=p[0]-h,(m=e.getPixelInformation(g,0,a))&&m.valid))return m;if(g[0]=p[0]+h,(m=e.getPixelInformation(g,0,a))&&m.valid)return m}for(var y=p[0]>=h?p[0]-(h-1):0;y<=p[0]+(h-1);++y){if(g[0]=y,p[1]>=h&&(g[1]=p[1]-h,(m=e.getPixelInformation(g,0,a))&&m.valid))return m;if(g[1]=p[1]+h,(m=e.getPixelInformation(g,0,a))&&m.valid)return m}}return a[0]=r[0],a[1]=r[1],null},e.generateSelection=function(r,n,a,o){for(var i=Math.floor(r),s=Math.floor(n),l=Math.floor(a),c=Math.floor(o),u=new Map,d=[0,0],f=s;f<=c;f++)for(var p=i;p<=l;p++){var g=[p,f],m=e.getPixelInformation(g,0,d);if(m&&m.valid){var h=zi(m);if(u.has(h)){var v=u.get(h);v.pixelCount++,t.captureZValues&&m.zValue<v.info.zValue&&(v.info=m),-1===v.attributeIDs.indexOf(m.attributeID)&&v.attributeIDs.push(m.attributeID)}else u.set(h,{info:m,pixelCount:1,attributeIDs:[m.attributeID]})}}return Xi(t.fieldAssociation,u,t.captureZValues,t._renderer,t._openGLRenderWindow)},e.getRawPixelBuffer=function(e){return t.rawPixBuffer[e]},e.getPixelBuffer=function(e){return t.pixBuffer[e]},e.attach=function(e,r){t._openGLRenderWindow=e,t._renderer=r};var r=e.setArea;e.setArea=function(){return!!r.apply(void 0,arguments)&&(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}}(e,t)}var Qi=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ni(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ni(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance($i,"vtkOpenGLHardwareSelector"),extend:$i},Oi.Z),Ji=r(20840),es=r.n(Ji),ts=["lastShaderBound","context","_openGLRenderWindow"];var rs={lastShaderBound:null,shaderPrograms:null,context:null};function ns(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rs,r),t.shaderPrograms={},ht.default.obj(e,t),ht.default.setGet(e,t,ts),ht.default.moveToProtected(e,t,["openGLRenderWindow"]),function(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=function(e,r,n){var a=r;n.length>0&&(a=Sr.substitute(a,"VSOut","GSOut").result);var o=t._openGLRenderWindow.getWebgl2(),i="\n",s="#version 100\n";o?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),a=Sr.substitute(a,"//VTK::System::Dec",["".concat(s,"\n"),o?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;var l=Sr.substitute(e,"//VTK::System::Dec",["".concat(s,"\n"),"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(o){l=Sr.substitute(l,"varying","out").result,a=Sr.substitute(a,"varying","in").result;for(var c="",u=0;a.includes("gl_FragData[".concat(u,"]"));)a=Sr.substitute(a,"gl_FragData\\[".concat(u,"\\]"),"fragOutput".concat(u)).result,c+="layout(location = ".concat(u,") out vec4 fragOutput").concat(u,";\n"),u++;a=Sr.substitute(a,"//VTK::Output::Dec",c).result}return{VSSource:l,FSSource:a,GSSource:Sr.substitute(n,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=function(t,r,n){var a=e.replaceShaderValues(t,r,n),o=e.getShaderProgram(a.VSSource,a.FSSource,a.GSSource);return e.readyShaderProgram(o)},e.readyShaderProgram=function(t){return t&&(t.getCompiled()||t.compileShader())&&e.bindShader(t)?t:null},e.getShaderProgram=function(e,r,n){var a="".concat(e).concat(r).concat(n),o=es().hash(a);if(!(o in t.shaderPrograms)){var i=Sr.newInstance();return i.setContext(t.context),i.getVertexShader().setSource(e),i.getFragmentShader().setSource(r),n&&i.getGeometryShader().setSource(n),i.setMd5Hash(o),t.shaderPrograms[o]=i,i}return t.shaderPrograms[o]},e.releaseGraphicsResources=function(r){e.releaseCurrentShader(),Object.keys(t.shaderPrograms).map((function(e){return t.shaderPrograms[e]})).forEach((function(e){return e.releaseGraphicsResources(r)}))},e.releaseGraphicsResources=function(){t.astShaderBound&&(t.lastShaderBound.release(),t.lastShaderBound=null)},e.bindShader=function(e){return t.lastShaderBound===e||(t.lastShaderBound&&t.lastShaderBound.release(),e.bind(),t.lastShaderBound=e),1}}(e,t)}var as={newInstance:ht.default.newInstance(ns,"vtkShaderCache"),extend:ns},os=ht.default.vtkErrorMacro;var is={context:null,numberOfTextureUnits:0,textureUnits:0};function ss(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,is,r),ht.default.obj(e,t),t.textureUnits=[],ht.default.get(e,t,["numberOfTextureUnits"]),ht.default.setGet(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=function(){for(var e=0;e<t.numberOfTextureUnits;++e)!0===t.textureUnits[e]&&os("some texture units were not properly released");t.textureUnits=[],t.numberOfTextureUnits=0},e.setContext=function(r){if(t.context!==r){if(0!==t.context&&e.deleteTable(),t.context=r,t.context){t.numberOfTextureUnits=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS);for(var n=0;n<t.numberOfTextureUnits;++n)t.textureUnits[n]=!1}e.modified()}},e.allocate=function(){for(var r=0;r<t.numberOfTextureUnits;r++)if(!e.isAllocated(r))return t.textureUnits[r]=!0,r;return-1},e.allocateUnit=function(r){return e.isAllocated(r)?-1:(t.textureUnits[r]=!0,r)},e.isAllocated=function(e){return t.textureUnits[e]},e.free=function(e){t.textureUnits[e]=!1}}(e,t)}var ls={newInstance:ht.default.newInstance(ss,"vtkOpenGLTextureUnitManager"),extend:ss};var cs={size:void 0,selector:void 0};function us(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cs,r),t.size||(t.size=[300,300]),ht.default.getArray(e,t,["size"],2),ht.default.get(e,t,["selector"]),Tt.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=function(){return null},e.getAspectRatio=function(){return t.size[0]/t.size[1]},e.getAspectRatioForRenderer=function(e){var r=e.getViewportByReference();return t.size[0]*(r[2]-r[0])/((r[3]-r[1])*t.size[1])},e.isInViewport=function(t,r,n){var a=n.getViewportByReference(),o=e.getFramebufferSize();return a[0]*o[0]<=t&&a[2]*o[0]>=t&&a[1]*o[1]<=r&&a[3]*o[1]>=r},e.getViewportSize=function(t){var r=t.getViewportByReference(),n=e.getFramebufferSize();return[(r[2]-r[0])*n[0],(r[3]-r[1])*n[1]]},e.getViewportCenter=function(t){var r=e.getViewportSize(t);return[.5*r[0],.5*r[1]]},e.displayToNormalizedDisplay=function(t,r,n){var a=e.getFramebufferSize();return[t/a[0],r/a[1],n]},e.normalizedDisplayToDisplay=function(t,r,n){var a=e.getFramebufferSize();return[t*a[0],r*a[1],n]},e.worldToView=function(e,t,r,n){return n.worldToView(e,t,r)},e.viewToWorld=function(e,t,r,n){return n.viewToWorld(e,t,r)},e.worldToDisplay=function(t,r,n,a){var o=a.worldToView(t,r,n),i=e.getViewportSize(a),s=a.viewToProjection(o[0],o[1],o[2],i[0]/i[1]),l=a.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=function(t,r,n,a){var o=e.displayToNormalizedDisplay(t,r,n),i=a.normalizedDisplayToProjection(o[0],o[1],o[2]),s=e.getViewportSize(a),l=a.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return a.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=function(t,r,n,a){var o=a.getViewportByReference();o=e.normalizedDisplayToDisplay(o[0],o[1],0);var i=e.normalizedDisplayToDisplay(t,r,n);return[i[0]-o[0]-.5,i[1]-o[1]-.5,n]},e.viewportToNormalizedViewport=function(t,r,n,a){var o=e.getViewportSize(a);return o&&0!==o[0]&&0!==o[1]?[t/(o[0]-1),r/(o[1]-1),n]:[t,r,n]},e.normalizedViewportToViewport=function(t,r,n,a){var o=e.getViewportSize(a);return[t*(o[0]-1),r*(o[1]-1),n]},e.displayToLocalDisplay=function(t,r,n){return[t,e.getFramebufferSize()[1]-r-1,n]},e.viewportToNormalizedDisplay=function(t,r,n,a){var o=a.getViewportByReference(),i=t+(o=e.normalizedDisplayToDisplay(o[0],o[1],0))[0]+.5,s=r+o[1]+.5;return e.displayToNormalizedDisplay(i,s,n)},e.getComputedDevicePixelRatio=function(){return t.size[0]/e.getContainerSize()[0]},e.getContainerSize=function(){ht.default.vtkErrorMacro("not implemented")},e.getPixelData=function(e,t,r,n){ht.default.vtkErrorMacro("not implemented")},e.createSelector=function(){ht.default.vtkErrorMacro("not implemented")}}(e,t)}var ds={newInstance:ht.default.newInstance(us,"vtkRenderWindowViewNode"),extend:us},fs={HmdVR:0,MobileAR:1,LookingGlassVR:2},ps="__getUnderlyingContext";function gs(){var e=new Map,t={apply:function(t,r,n){return e.has(n[0])?e.get(n[0]):t.apply(r,n)}};var r=Object.create(null);return r.getParameter=function(e,r,n,a){return new Proxy(a.bind(e),t)},r.depthMask=function(t,r,n,a){return new Proxy(a.bind(t),(o=t.DEPTH_WRITEMASK,{apply:function(t,r,n){return e.set(o,n[0]),t.apply(r,n)}}));var o},{get:function(e,t,n){if(t===ps)return function(){return e};var a=Reflect.get(e,t,e);a instanceof Function&&(a=a.bind(e));var o=r[t];return o?o(e,t,n,a):a}}}var ms=ht.default.vtkDebugMacro,hs=ht.default.vtkErrorMacro,vs=fs,ys={position:"absolute",top:0,left:0,width:"100%",height:"100%"},bs={vr:{rescaleFactor:1,translateZ:-.7},ar:{rescaleFactor:.25,translateZ:-.5}};function Ts(e,t,r){var n=e.createFramebuffer(),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,r,null),e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);var o=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),o===e.FRAMEBUFFER_COMPLETE}var Cs=0,xs=[];function Ss(){Cs--,xs.forEach((function(e){return e(Cs)}))}function Ps(e){e.preventDefault()}function ws(e,t){t.classHierarchy.push("vtkOpenGLRenderWindow");var n=gs();e.getViewNodeFactory=function(){return t.myFactory},t.canvas.addEventListener("webglcontextlost",Ps,!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1);var a,o=void 0!==navigator.xr&&navigator.xr.isSessionSupported("immersive-vr"),i=[0,0];e.onModified((function(){t.renderable&&(t.size[0]===i[0]&&t.size[1]===i[1]||(i[0]=t.size[0],i[1]=t.size[1],t.canvas.setAttribute("width",t.size[0]),t.canvas.setAttribute("height",t.size[1]))),t.viewStream&&t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?"none":"block",t.el&&(t.el.style.cursor=t.cursorVisibility?t.cursor:"none"),t.containerSize=null})),e.buildPass=function(r){if(r){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((function(t){t.setOpenGLRenderWindow(e)}))}},e.initialize=function(){if(!t.initialized){t.context=e.get3DContext(),t.textureUnitManager=ls.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);var r=t.context;r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),r.depthFunc(r.LEQUAL),r.enable(r.BLEND),t.initialized=!0}},e.makeCurrent=function(){t.context.makeCurrent()},e.setContainer=function(r){t.el&&t.el!==r&&(t.canvas.parentNode!==t.el&&hs("Error: canvas parent node does not match container"),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)),t.el!==r&&(t.el=r,t.el&&(t.el.appendChild(t.canvas),t.useBackgroundImage&&t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=function(){return t.el},e.getContainerSize=function(){if(!t.containerSize&&t.el){var e=t.el.getBoundingClientRect(),r=e.width,n=e.height;t.containerSize=[r,n]}return t.containerSize||t.size},e.getFramebufferSize=function(){return t.activeFramebuffer?t.activeFramebuffer.getSize():t.size},e.getPixelData=function(e,r,n,a){var o=new Uint8Array((n-e+1)*(a-r+1)*4);return t.context.readPixels(e,r,n-e+1,a-r+1,t.context.RGBA,t.context.UNSIGNED_BYTE,o),o},e.get3DContext=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},a=null;o&&e.invokeHaveVRDisplay();var i="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&i&&(a=t.canvas.getContext("webgl2",r))&&(t.webgl2=!0,ms("using webgl2")),a||(ms("using webgl1"),a=t.canvas.getContext("webgl",r)||t.canvas.getContext("experimental-webgl",r)),new Proxy(a,n)},e.startXR=function(r){if(void 0===navigator.xr)throw new Error("WebXR is not available");t.xrSessionType=void 0!==r?r:vs.HmdVR;var n=r===vs.MobileAR,a=n?"immersive-ar":"immersive-vr";if(!navigator.xr.isSessionSupported(a))throw n?new Error("Device does not support AR session"):new Error("VR display is not available");if(null!==t.xrSession)throw new Error("XR Session already exists!");navigator.xr.requestSession(a).then(e.enterXR,(function(){throw new Error("Failed to create XR session!")}))},e.enterXR=function(){var n=ni(oi().mark((function n(a){var o,i;return oi().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t.xrSession=a,t.oldCanvasSize=t.size.slice(),null===t.xrSession){n.next=15;break}return o=e.get3DContext(),n.next=6,o.makeXRCompatible();case 6:i=new r.g.XRWebGLLayer(t.xrSession,o[ps]()),e.setSize(i.framebufferWidth,i.framebufferHeight),t.xrSession.updateRenderState({baseLayer:i}),t.xrSession.requestReferenceSpace("local").then((function(e){t.xrReferenceSpace=e})),e.resetXRScene(),t.renderable.getInteractor().switchToXRAnimation(),t.xrSceneFrame=t.xrSession.requestAnimationFrame(e.xrRender),n.next=16;break;case 15:throw new Error("Failed to enter VR with a null xrSession.");case 16:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),e.resetXRScene=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:bs.vr.rescaleFactor,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:bs.vr.translateZ,n=t.xrSessionType===vs.MobileAR;n&&e===bs.vr.rescaleFactor&&(e=bs.ar.rescaleFactor),n&&r===bs.vr.translateZ&&(r=bs.ar.translateZ);var a=t.renderable.getRenderers()[0];a.resetCamera();var o=a.getActiveCamera(),i=o.getPhysicalScale(),s=o.getPhysicalTranslation();r*=i/=e,s[2]+=r,o.setPhysicalScale(i),o.setPhysicalTranslation(s),o.setClippingRange(.1*i,100*i)},e.stopXR=ni(oi().mark((function r(){var n,a;return oi().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(void 0!==navigator.xr){r.next=2;break}return r.abrupt("return");case 2:if(null===t.xrSession){r.next=10;break}return t.xrSession.cancelAnimationFrame(t.xrSceneFrame),t.renderable.getInteractor().returnFromXRAnimation(),(n=e.get3DContext()).bindFramebuffer(n.FRAMEBUFFER,null),r.next=9,t.xrSession.end().catch((function(e){if(!(e instanceof DOMException))throw e}));case 9:t.xrSession=null;case 10:void 0!==t.oldCanvasSize&&e.setSize.apply(e,(0,pa.Z)(t.oldCanvasSize)),(a=t.renderable.getRenderers()[0]).getActiveCamera().setProjectionMatrix(null),a.resetCamera(),a.setViewport(0,0,1,1),e.traverseAllPasses();case 16:case"end":return r.stop()}}),r)}))),e.xrRender=function(){var r=ni(oi().mark((function r(n,a){var o,i,s,l,c;return oi().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=a.session,t.renderable.getInteractor().updateXRGamepads(o,a,t.xrReferenceSpace),t.xrSceneFrame=t.xrSession.requestAnimationFrame(e.xrRender),(i=a.getViewerPose(t.xrReferenceSpace))&&(s=e.get3DContext(),t.xrSessionType===vs.MobileAR&&void 0!==t.oldCanvasSize&&(s.canvas.width=t.oldCanvasSize[0],s.canvas.height=t.oldCanvasSize[1]),l=o.renderState.baseLayer,s.bindFramebuffer(s.FRAMEBUFFER,l.framebuffer),s.clear(s.COLOR_BUFFER_BIT),s.clear(s.DEPTH_BUFFER_BIT),e.setSize(l.framebufferWidth,l.framebufferHeight),c=t.renderable.getRenderers()[0],i.views.forEach((function(r,n){var a=l.getViewport(r);if(t.xrSessionType===vs.HmdVR)if("left"===r.eye)c.setViewport(0,0,.5,1);else{if("right"!==r.eye)return;c.setViewport(.5,0,1,1)}else if(t.xrSessionType===vs.LookingGlassVR){var o=a.x/l.framebufferWidth,i=a.y/l.framebufferHeight,s=(a.x+a.width)/l.framebufferWidth,u=(a.y+a.height)/l.framebufferHeight;c.setViewport(o,i,s,u)}else c.setViewport(0,0,1,1);c.getActiveCamera().computeViewParametersFromPhysicalMatrix(r.transform.inverse.matrix),c.getActiveCamera().setProjectionMatrix(r.projectionMatrix),e.traverseAllPasses()})),s.scissor(0,0,l.framebufferWidth,l.framebufferHeight),s.disable(s.SCISSOR_TEST));case 5:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}(),e.restoreContext=function(){var t=mi.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=function(r){var n=t._textureResourceIds.get(r);if(void 0===n){var a=e.getTextureUnitManager().allocate();a<0?hs("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(r,a),t.context.activeTexture(t.context.TEXTURE0+a))}else t.context.activeTexture(t.context.TEXTURE0+n)},e.deactivateTexture=function(r){var n=t._textureResourceIds.get(r);void 0!==n&&(e.getTextureUnitManager().free(n),t._textureResourceIds.delete(r))},e.getTextureUnitForTexture=function(e){var r=t._textureResourceIds.get(e);return void 0!==r?r:-1},e.getDefaultTextureInternalFormat=function(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(t.webgl2)switch(e){case nn.Tu.UNSIGNED_CHAR:switch(r){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case n&&!a&&nn.Tu.UNSIGNED_SHORT:switch(r){case 1:return n.R16_EXT;case 2:return n.RG16_EXT;case 3:return n.RGB16_EXT;default:return n.RGBA16_EXT}case n&&!a&&nn.Tu.SHORT:switch(r){case 1:return n.R16_SNORM_EXT;case 2:return n.RG16_SNORM_EXT;case 3:return n.RGB16_SNORM_EXT;default:return n.RGBA16_SNORM_EXT}case nn.Tu.FLOAT:default:switch(r){case 1:return t.context.R16F;case 2:return t.context.RG16F;case 3:return t.context.RGB16F;default:return t.context.RGBA16F}}switch(r){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=function(e){t.bgImage.src=e.src},e.setUseBackgroundImage=function(e){t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.resetCamera,o=void 0!==a&&a,i=n.size,s=void 0===i?null:i,l=n.scale,c=void 0===l?1:l;if(t.deleted)return null;t.imageFormat=r;var u=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:s||1!==c?s||t.size.map((function(e){return e*c})):null},new Promise((function(r,n){var a=e.onImageReady((function(n){if(null===t._screenshot.size)t.notifyStartCaptureImage=u,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach((function(e){return(0,e.restoreParamsFn)(e.arg)})),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),r(n);else{var i=document.createElement("img");if(i.style=ys,i.src=n,t._screenshot.placeHolder=t.el.appendChild(i),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),o){var s=!0!==o;t._screenshot.cameras=t.renderable.getRenderers().map((function(e){var t=e.getActiveCamera(),r=t.get("focalPoint","position","parallelScale");return{resetCameraArgs:s?{renderer:e}:void 0,resetCameraFn:s?o:e.resetCamera,restoreParamsFn:t.set,arg:JSON.parse(JSON.stringify(r))}})),t._screenshot.cameras.forEach((function(e){return(0,e.resetCameraFn)(e.resetCameraArgs)}))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=function(){if(null!=a)return a;var t=e.get3DContext(),r=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return a=r[1],r[1]},e.getGLInformations=function(){for(var r=e.get3DContext(),n=r.getExtension("OES_texture_float"),a=r.getExtension("OES_texture_half_float"),o=r.getExtension("WEBGL_debug_renderer_info"),i=r.getExtension("WEBGL_draw_buffers"),s=r.getExtension("EXT_texture_filter_anisotropic")||r.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",r.getParameter(r.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",r.getParameter(r.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",r.getParameter(r.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",r.getParameter(r.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",r.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",r.getParameter(r.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",r.getParameter(r.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",r.getParameter(r.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&r.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",r.getParameter(r.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",r.getParameter(r.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",r.getParameter(r.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",r.getParameter(r.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",r.getParameter(r.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",r.getParameter(r.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",r.getParameter(r.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",r.getParameter(r.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",r.getParameter(r.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",r.getParameter(r.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",r.getParameter(r.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",r.getParameter(r.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",r.getParameter(r.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[n&&Ts(r,r.RGBA,r.UNSIGNED_BYTE)?"RGBA":"",n&&Ts(r,r.RGB,r.UNSIGNED_BYTE)?"RGB":"",n&&Ts(r,r.LUMINANCE,r.UNSIGNED_BYTE)?"LUMINANCE":"",n&&Ts(r,r.ALPHA,r.UNSIGNED_BYTE)?"ALPHA":"",n&&Ts(r,r.LUMINANCE_ALPHA,r.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[a&&Ts(r,r.RGBA,a.HALF_FLOAT_OES)?"RGBA":"",a&&Ts(r,r.RGB,a.HALF_FLOAT_OES)?"RGB":"",a&&Ts(r,r.LUMINANCE,a.HALF_FLOAT_OES)?"LUMINANCE":"",a&&Ts(r,r.ALPHA,a.HALF_FLOAT_OES)?"ALPHA":"",a&&Ts(r,r.LUMINANCE_ALPHA,a.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[n&&Ts(r,r.RGBA,r.FLOAT)?"RGBA":"",n&&Ts(r,r.RGB,r.FLOAT)?"RGB":"",n&&Ts(r,r.LUMINANCE,r.FLOAT)?"LUMINANCE":"",n&&Ts(r,r.ALPHA,r.FLOAT)?"ALPHA":"",n&&Ts(r,r.LUMINANCE_ALPHA,r.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?r.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_FLOAT).rangeMax,"</sup>)"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).rangeMax,"</sup>)"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_FLOAT).rangeMax,"</sup>)"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).rangeMax,"</sup>)"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).rangeMax,"</sup>)"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_FLOAT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_FLOAT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_FLOAT).rangeMax,"</sup>)"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.HIGH_INT).rangeMax,"</sup>)"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_INT).rangeMax,"</sup>)"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.LOW_INT).rangeMax,"</sup>)"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_INT).rangeMax,"</sup>)"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_INT).rangeMax,"</sup>)"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_INT).precision," (-2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_INT).rangeMin,"</sup> - 2<sup>",r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.LOW_INT).rangeMax,"</sup>)"].join("")],["Supported Extensions","EXTENSIONS",r.getSupportedExtensions().join("<br/>\t\t\t\t\t ")],["WebGL Renderer","RENDERER",r.getParameter(r.RENDERER)],["WebGL Vendor","VENDOR",r.getParameter(r.VENDOR)],["WebGL Version","VERSION",r.getParameter(r.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",r.getParameter(r.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",o&&r.getParameter(o.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",o&&r.getParameter(o.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};l.length;){var u=l.pop(),d=(0,Ft.Z)(u,3),f=d[0],p=d[1],g=d[2];p&&(c[p]={label:f,value:g})}return c},e.traverseAllPasses=function(){if(t.renderPasses)for(var r=0;r<t.renderPasses.length;++r)t.renderPasses[r].traverse(e,null);t.notifyStartCaptureImage&&function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.imageFormat,n=document.createElement("canvas"),a=n.getContext("2d");n.width=t.canvas.width,n.height=t.canvas.height,a.drawImage(t.canvas,0,0);var o=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((function(e){e.getViewProps().forEach((function(e){if(e.getContainer)for(var t=e.getContainer().getElementsByTagName("canvas"),r=0;r<t.length;r++){var n=t[r],i=n.getBoundingClientRect(),s=i.x-o.x,l=i.y-o.y;a.drawImage(n,s,l)}}))}));var i=n.toDataURL(r);n.remove(),e.invokeImageReady(i)}()},e.disableCullFace=function(){t.cullFaceEnabled&&(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=function(){t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=function(r){if(t.viewStream===r)return!1;(t.subscription&&(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=r,t.viewStream)&&(t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((function(t){return e.setBackgroundImage(t.image)})),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified());return!0},e.createSelector=function(){var t=Qi.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=ht.default.chain((function(){t.canvas.removeEventListener("webglcontextlost",Ps),t.canvas.removeEventListener("webglcontextrestored",e.restoreContext)}),e.delete,e.setViewStream,Ss),e.setActiveFramebuffer=function(e){t.activeFramebuffer=e};var s=e.setSize;e.setSize=function(t,r){var n=s(t,r);return n&&e.invokeWindowResizeEvent({width:t,height:r}),n}}var Os={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,xrSession:null,xrReferenceSpace:null,xrSupported:!0,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};function Is(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Os,r),ds.extend(e,t,r),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",Cs++,xs.forEach((function(e){return e(Cs)})),t.selector||(t.selector=Qi.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t.myFactory=At.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",As),t.shaderCache=as.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=wi.newInstance(),ht.default.event(e,t,"imageReady"),ht.default.event(e,t,"haveVRDisplay"),ht.default.get(e,t,["shaderCache","textureUnitManager","webgl2","vrDisplay","useBackgroundImage","xrSupported","activeFramebuffer"]),ht.default.setGet(e,t,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),ht.default.setGetArray(e,t,["size"],2),ht.default.event(e,t,"windowResizeEvent"),ws(e,t)}var As=ht.default.newInstance(Is,"vtkOpenGLRenderWindow");li("WebGL",As);var Rs={newInstance:As,extend:Is,pushMonitorGLContextCount:function(e){xs.push(e)},popMonitorGLContextCount:function(e){return xs.pop()}};var Es={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function Ms(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Es,r),Tt.extend(e,t,r),t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ot.wO.identity(new Float64Array(9)),mcwc:ot._E.identity(new Float64Array(16))},(0,ht.g2)(e,t,["context"]),(0,ht.U2)(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=function(r){if(r){t._openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var n=0;n<t.children.length;n++){var a=t.children[n];a.isA("vtkOpenGLTexture")?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(a)):t.oglmapper=a}}},e.traverseZBufferPass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.traverseOpaqueZBufferPass=function(t){return e.traverseOpaquePass(t)},e.traverseOpaquePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.traverseTranslucentPass=function(r){!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.activateTextures=function(){if(t.ogltextures){t.activeTextures=[];for(var e=0;e<t.ogltextures.length;e++){var r=t.ogltextures[e];r.render(),r.getHandle()&&t.activeTextures.push(r)}}},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},e.zBufferPass=function(t,r){return e.opaquePass(t,r)},e.opaqueZBufferPass=function(t,r){return e.opaquePass(t,r)},e.opaquePass=function(r,n){if(r)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(var a=0;a<t.activeTextures.length;a++)t.activeTextures[a].deactivate()},e.translucentPass=function(r,n){if(r)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(var a=0;a<t.activeTextures.length;a++)t.activeTextures[a].deactivate()},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),ot._E.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),ot._E.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?ot.wO.identity(t.keyMatrices.normalMatrix):(ot.wO.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),ot.wO.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),ot.wO.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Ds=(0,ht.WL)(Ms),Vs={newInstance:Ds,extend:Ms};wt("vtkActor",Ds);var Ls={context:null,activeTextures:null};function _s(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ls,r),Tt.extend(e,t,r),(0,ht.g2)(e,t,["context"]),(0,ht.U2)(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=function(r){if(r){if(!t.renderable)return;t._openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var n=0;n<t.children.length;n++){var a=t.children[n];a.isA("vtkOpenGLTexture")?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(a)):t.oglmapper=a}}},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;r.incrementOverlayActorCount()}},e.traverseOpaquePass=function(r){t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.traverseTranslucentPass=function(r){t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&!t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.traverseOverlayPass=function(r){t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&&(e.apply(r,!0),t.oglmapper.traverse(r),e.apply(r,!1))},e.activateTextures=function(){if(t.ogltextures){t.activeTextures=[];for(var e=0;e<t.ogltextures.length;e++){var r=t.ogltextures[e];r.render(),r.getHandle()&&t.activeTextures.push(r)}}},e.opaquePass=function(r,n){if(r)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(var a=0;a<t.activeTextures.length;a++)t.activeTextures[a].deactivate()},e.translucentPass=function(r,n){if(r)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(var a=0;a<t.activeTextures.length;a++)t.activeTextures[a].deactivate()},e.overlayPass=function(r,n){if(r)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(var a=0;a<t.activeTextures.length;a++)t.activeTextures[a].deactivate()}}(e,t)}var Ns=(0,ht.WL)(_s),Bs={newInstance:Ns,extend:_s};wt("vtkActor2D",Ns);var Fs=r(93702),Us=r(54873);function ks(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Gs(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ks(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ks(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Ws=Ii.ZP.FieldAssociations,zs=Er.primTypes,js=Ua.ZP.Representation,Hs=Ua.ZP.Shading,Ks=Fs.ZP.ScalarMode,Zs=Yr.Filter,Xs=Yr.Wrap,qs=ht.E0,Ys={type:"StartEvent"},$s={type:"EndEvent"},Qs=Us.ZP.CoordinateSystem;function Js(e,t){function r(e,t,r){return t.identity(r),e.reduce((function(e,r,n){return 0===n?r?t.copy(e,r):t.identity(e):r?t.multiply(e,e,r):e}),r)}t.classHierarchy.push("vtkOpenGLPolyDataMapper"),e.buildPass=function(r){r&&(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType("vtkOpenGLActor"),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.translucentPass=function(r,n){r&&(t.currentRenderPass=n,e.render())},e.zBufferPass=function(r){r&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=function(t){return e.zBufferPass(t)},e.opaquePass=function(t){t&&e.render()},e.render=function(){var r=t._openGLRenderWindow.getContext();if(t.context!==r){t.context=r;for(var n=zs.Start;n<zs.End;n++)t.primitives[n].setOpenGLRenderWindow(t._openGLRenderWindow)}var a=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,a)},e.getShaderTemplate=function(e,t,r){e.Vertex=pn,e.Fragment=gn,e.Geometry=""},e.replaceShaderColor=function(e,r,n){var a=e.Vertex,o=e.Geometry,i=e.Fragment,s=t.lastBoundBO.getReferenceByName("lastLightComplexity"),l=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];s&&(l=l.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var c=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];s&&(c=c.concat([" vec3 specularColor;"," float specularPower;"])),c=c.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),s&&(c=c.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat(["varying vec4 vertexColorVSOutput;"]),a=Sr.substitute(a,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,a=Sr.substitute(a,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,o=Sr.substitute(o,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,o=Sr.substitute(o,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?t.renderable.getInterpolateScalarsBeforeMapping()&&t.renderable.getColorCoordinates()&&!t.drawingEdges?i=Sr.substitute(i,"//VTK::Color::Impl",c.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(n.getBackfaceProperty()&&!t.drawingEdges&&(l=l.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),s?(l=l.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),t.haveCellScalars&&!t.drawingEdges&&(l=l.concat(["uniform samplerBuffer texture1;"])),i=Sr.substitute(i,"//VTK::Color::Impl",c).result):i=Sr.substitute(i,"//VTK::Color::Impl",c.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result,i=Sr.substitute(i,"//VTK::Color::Dec",l).result,e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderLight=function(e,r,n){var a=e.Fragment,o=t.lastBoundBO.getReferenceByName("lastLightComplexity"),i=t.lastBoundBO.getReferenceByName("lastLightCount"),s=[];switch(o){case 0:a=Sr.substitute(a,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:a=Sr.substitute(a,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(var l=0;l<i;++l)s=s.concat(["uniform vec3 lightColor".concat(l,";"),"uniform vec3 lightDirectionVC".concat(l,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(l,"; // normalized")]);a=Sr.substitute(a,"//VTK::Light::Dec",s).result,s=["vec3 diffuseL = vec3(0,0,0);"," vec3 specularL = vec3(0,0,0);"," float df;"];for(var c=0;c<i;++c)s=s.concat([" df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC".concat(c,"));")," diffuseL += ((df".concat("",") * lightColor").concat(c,");")," if (dot(normalVCVSOutput, lightDirectionVC".concat(c,") < 0.0)")," {"," float sf = pow( max(0.0, dot(lightHalfAngleVC".concat(c,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(c,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=Sr.substitute(a,"//VTK::Light::Impl",s,!1).result;break;case 3:for(var u=0;u<i;++u)s=s.concat(["uniform vec3 lightColor".concat(u,";"),"uniform vec3 lightDirectionVC".concat(u,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(u,"; // normalized"),"uniform vec3 lightPositionVC".concat(u,";"),"uniform vec3 lightAttenuation".concat(u,";"),"uniform float lightConeAngle".concat(u,";"),"uniform float lightExponent".concat(u,";"),"uniform int lightPositional".concat(u,";")]);a=Sr.substitute(a,"//VTK::Light::Dec",s).result,s=["vec3 diffuseL = vec3(0,0,0);"," vec3 specularL = vec3(0,0,0);"," vec3 vertLightDirectionVC;"," float attenuation;"," float df;"];for(var d=0;d<i;++d)s=s.concat([" attenuation = 1.0;"," if (lightPositional".concat(d," == 0)")," {"," vertLightDirectionVC = lightDirectionVC".concat(d,";")," }"," else"," {"," vertLightDirectionVC = vertexVC.xyz - lightPositionVC".concat(d,";")," float distanceVC = length(vertLightDirectionVC);"," vertLightDirectionVC = normalize(vertLightDirectionVC);"," attenuation = 1.0 /"," (lightAttenuation".concat(d,".x")," + lightAttenuation".concat(d,".y * distanceVC")," + lightAttenuation".concat(d,".z * distanceVC * distanceVC);")," // per OpenGL standard cone angle is 90 or less for a spot light"," if (lightConeAngle".concat(d," <= 90.0)")," {"," float coneDot = dot(vertLightDirectionVC, lightDirectionVC".concat(d,");")," // if inside the cone"," if (coneDot >= cos(radians(lightConeAngle".concat(d,")))")," {"," attenuation = attenuation * pow(coneDot, lightExponent".concat(d,");")," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));"," diffuseL += ((df".concat("",") * lightColor").concat(d,");")," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {"," float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC".concat(d,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(d,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=Sr.substitute(a,"//VTK::Light::Impl",s,!1).result;break;default:qs("bad light complexity")}e.Fragment=a},e.replaceShaderNormal=function(e,r,n){if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var a=e.Vertex,o=e.Geometry,i=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(a=Sr.substitute(a,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,a=Sr.substitute(a,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,o=Sr.substitute(o,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,o=Sr.substitute(o,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,i=Sr.substitute(i,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,i=Sr.substitute(i,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(i=Sr.substitute(i,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,i=Sr.substitute(i,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.lastBoundBO.getOpenGLMode(n.getProperty().getRepresentation())===t.context.LINES?(i=Sr.substitute(i,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,i=Sr.substitute(i,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(i=Sr.substitute(i,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,i=Sr.substitute(i,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,i=Sr.substitute(i,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderPositionVC=function(e,r,n){t.lastBoundBO.replaceShaderPositionVC(e,r,n);var a=e.Vertex,o=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=Sr.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=Sr.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=Sr.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=Sr.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=Sr.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=Sr.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=Sr.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,r,n){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment;if(t.drawingEdges)return;a=Sr.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;var s=t.openGLActor.getActiveTextures(),l=2,c=2;if(s&&s.length>0&&(l=s[0].getComponents(),s[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(c=3)),t.renderable.getColorTextureMap()&&(l=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),c=2),2===c){if(a=Sr.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=Sr.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=Sr.substitute(i,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,s&&s.length>=1)switch(l){case 1:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(a=Sr.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=Sr.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=Sr.substitute(i,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,l){case 1:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:i=Sr.substitute(i,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderClip=function(e,r,n){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();a=Sr.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[".concat(i,"];"),"varying float clipDistancesVSOutput[".concat(i,"];")]).result,a=Sr.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < ".concat(i,"; planeNum++)")," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=Sr.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[".concat(i,"];")]).result,o=Sr.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < ".concat(i,"; planeNum++)")," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getCoincidentParameters=function(e,r){var n={factor:0,offset:0},a=r.getProperty();if(t.renderable.getResolveCoincidentTopology()||a.getEdgeVisibility()&&a.getRepresentation()===js.SURFACE){var o=t.lastBoundBO.getPrimitiveType();o===zs.Points||a.getRepresentation()===js.POINTS?n=t.renderable.getCoincidentTopologyPointOffsetParameter():o===zs.Lines||a.getRepresentation()===js.WIREFRAME?n=t.renderable.getCoincidentTopologyLineOffsetParameters():o!==zs.Tris&&o!==zs.TriStrips||(n=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),o!==zs.TrisEdges&&o!==zs.TriStripsEdges||((n=t.renderable.getCoincidentTopologyPolygonOffsetParameters()).factor/=2,n.offset/=2)}var i=t._openGLRenderer.getSelector();return i&&i.getFieldAssociation()===Ws.FIELD_ASSOCIATION_POINTS&&(n.offset-=2),n},e.replaceShaderPicking=function(e,r,n){var a=e.Fragment,o=e.Vertex;if(a=Sr.substitute(a,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Oi.X.ID_LOW24&&t.lastSelectionState!==Oi.X.ID_HIGH24||(o=Sr.substitute(o,"//VTK::Picking::Dec",["flat out int vertexIDVSOutput;\n","uniform int VertexIDOffset;\n"]).result,o=Sr.substitute(o,"//VTK::Picking::Impl"," vertexIDVSOutput = gl_VertexID + VertexIDOffset;\n").result,a=Sr.substitute(a,"//VTK::Picking::Dec","flat in int vertexIDVSOutput;\n").result,a=Sr.substitute(a,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),t.lastSelectionState){case Oi.X.ID_LOW24:a=Sr.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);").result;break;case Oi.X.ID_HIGH24:a=Sr.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx)/255.0, 0.0, 0.0, 1.0);").result;break;default:a=Sr.substitute(a,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,a=Sr.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result}e.Fragment=a,e.Vertex=o}},e.replaceShaderValues=function(r,n,a){if(e.replaceShaderColor(r,n,a),e.replaceShaderNormal(r,n,a),e.replaceShaderLight(r,n,a),e.replaceShaderTCoord(r,n,a),e.replaceShaderPicking(r,n,a),e.replaceShaderClip(r,n,a),e.replaceShaderCoincidentOffset(r,n,a),e.replaceShaderPositionVC(r,n,a),t.haveSeenDepthRequest){var o=r.Fragment;o=Sr.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=Sr.substitute(o,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,r.Fragment=o}},e.getNeedToRebuildShaders=function(e,r,n){var a=0,o=0,i=e.getPrimitiveType(),s=t.currentInput,l=!1,c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=n.getProperty().getInterpolation()===Hs.FLAT,f=n.getProperty().getRepresentation(),p=e.getOpenGLMode(f,i);if(p===t.context.TRIANGLES||u&&!c||!d&&c?l=!0:d||p!==t.context.LINES||(l=!0),n.getProperty().getLighting()&&l){a=0;for(var g=r.getLightsByReference(),m=0;m<g.length;++m){var h=g[m];h.getSwitch()>0&&(o++,0===a&&(a=1)),1===a&&(o>1||1!==h.getIntensity()||!h.lightTypeIsHeadLight())&&(a=2),a<3&&h.getPositional()&&(a=3)}}var v=!1,y=t.lastBoundBO.getReferenceByName("lastLightComplexity"),b=t.lastBoundBO.getReferenceByName("lastLightCount");return y===a&&b===o||(t.lastBoundBO.set({lastLightComplexity:a},!0),t.lastBoundBO.set({lastLightCount:o},!0),v=!0),(!t.currentRenderPass&&t.lastRenderPassShaderReplacement||t.currentRenderPass&&t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&&(v=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime()<t.renderable.getMTime()||e.getShaderSourceTime().getMTime()<t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()<t.selectionStateChanged.getMTime()||v)&&(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,!0)},e.invokeShaderCallbacks=function(e,r,n){var a=t.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach((function(t){t.callback(t.userData,e,r,n)}))},e.setMapperShaderParameters=function(r,n,a){if(r.getProgram().isUniformUsed("PrimitiveIDOffset")&&r.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),r.getProgram().isUniformUsed("VertexIDOffset")&&r.getProgram().setUniformi("VertexIDOffset",t.vertexIDOffset),r.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>r.getAttributeUpdateTime().getMTime()||r.getShaderSourceTime().getMTime()>r.getAttributeUpdateTime().getMTime())){var o=t.lastBoundBO.getReferenceByName("lastLightComplexity");r.getProgram().isAttributeUsed("vertexMC")&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"vertexMC",r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,!1)||qs("Error setting vertexMC in shader VAO.")),r.getProgram().isAttributeUsed("normalMC")&&r.getCABO().getNormalOffset()&&o>0?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"normalMC",r.getCABO().getNormalOffset(),r.getCABO().getStride(),t.context.FLOAT,3,!1)||qs("Error setting normalMC in shader VAO."):r.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach((function(e,n){r.getProgram().isAttributeUsed("".concat(e,"MC"))&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"".concat(e,"MC"),r.getCABO().getCustomData()[n].offset,r.getCABO().getStride(),t.context.FLOAT,r.getCABO().getCustomData()[n].components,!1)||qs("Error setting ".concat(e,"MC in shader VAO.")))})),r.getProgram().isAttributeUsed("tcoordMC")&&r.getCABO().getTCoordOffset()?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"tcoordMC",r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,r.getCABO().getTCoordComponents(),!1)||qs("Error setting tcoordMC in shader VAO."):r.getVAO().removeAttributeArray("tcoordMC"),r.getProgram().isAttributeUsed("scalarColor")&&r.getCABO().getColorComponents()?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO().getColorBO(),"scalarColor",r.getCABO().getColorOffset(),r.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||qs("Error setting scalarColor in shader VAO."):r.getVAO().removeAttributeArray("scalarColor"),r.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes(),s=[],l=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null,c=l?ot._E.copy(t.tmpMat4,a.getMatrix()):a.getMatrix();l&&(ot._E.transpose(c,c),ot._E.multiply(c,c,l),ot._E.transpose(c,c));for(var u=0;u<i;u++){var d=[];t.renderable.getClippingPlaneInDataCoords(c,u,d);for(var f=0;f<4;f++)s.push(d[f])}r.getProgram().setUniformi("numClipPlanes",i),r.getProgram().setUniform4fv("clipPlanes",s)}t.internalColorTexture&&r.getProgram().isUniformUsed("texture1")&&r.getProgram().setUniformi("texture1",t.internalColorTexture.getTextureUnit());var p=t.openGLActor.getActiveTextures();if(p)for(var g=0;g<p.length;++g){var m=p[g].getTextureUnit(),h="texture".concat(m+1);r.getProgram().isUniformUsed(h)&&r.getProgram().setUniformi(h,m)}if(t.haveSeenDepthRequest&&r.getProgram().setUniformi("depthRequest",t.renderDepth?1:0),r.getProgram().isUniformUsed("coffset")){var v=e.getCoincidentParameters(n,a);r.getProgram().setUniformf("coffset",v.offset),r.getProgram().isUniformUsed("cfactor")&&r.getProgram().setUniformf("cfactor",v.factor)}r.setMapperShaderParameters(n,a,t._openGLRenderer.getTiledSizeAndOrigin());var y=t._openGLRenderer.getSelector();r.getProgram().setUniform3fArray("mapperIndex",y?y.getPropColorValue():[0,0,0]),r.getProgram().setUniformi("picking",y?y.getCurrentPass()+1:0)},e.setLightingShaderParameters=function(e,r,n){var a=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(a<2)){for(var o=e.getProgram(),i=0,s=r.getLightsByReference(),l=0;l<s.length;++l){var c=s[l];if(c.getSwitch()>0){var u=c.getColorByReference(),d=c.getIntensity();t.lightColor[0]=u[0]*d,t.lightColor[1]=u[1]*d,t.lightColor[2]=u[2]*d;var f=c.getDirection(),p=r.getActiveCamera().getViewMatrix(),g=(0,pa.Z)(f);c.lightTypeIsSceneLight()&&(g[0]=p[0]*f[0]+p[1]*f[1]+p[2]*f[2],g[1]=p[4]*f[0]+p[5]*f[1]+p[6]*f[2],g[2]=p[8]*f[0]+p[9]*f[1]+p[10]*f[2],(0,Mr.l)(g)),t.lightDirection[0]=g[0],t.lightDirection[1]=g[1],t.lightDirection[2]=g[2],t.lightHalfAngle[0]=-t.lightDirection[0],t.lightHalfAngle[1]=-t.lightDirection[1],t.lightHalfAngle[2]=1-t.lightDirection[2],(0,Mr.l)(t.lightDirection),o.setUniform3fArray("lightColor".concat(i),t.lightColor),o.setUniform3fArray("lightDirectionVC".concat(i),t.lightDirection),o.setUniform3fArray("lightHalfAngleVC".concat(i),t.lightHalfAngle),i++}}if(!(a<3)){var m=r.getActiveCamera().getViewMatrix();ot._E.transpose(m,m),i=0;for(var h=0;h<s.length;++h){var v=s[h];if(v.getSwitch()>0){var y=v.getTransformedPosition(),b=new Float64Array(3);ot.R3.transformMat4(b,y,m),o.setUniform3fArray("lightAttenuation".concat(i),v.getAttenuationValuesByReference()),o.setUniformi("lightPositional".concat(i),v.getPositional()),o.setUniformf("lightExponent".concat(i),v.getExponent()),o.setUniformf("lightConeAngle".concat(i),v.getConeAngle()),o.setUniform3fArray("lightPositionVC".concat(i),[b[0],b[1],b[2]]),i++}}}}},e.setCameraShaderParameters=function(e,n,a){var o=e.getProgram(),i=t.openGLCamera.getKeyMatrices(n),s=n.getActiveCamera(),l=t.openGLCamera.getKeyMatrixTime().getMTime(),c=o.getLastCameraMTime(),u=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,d=a.getIsIdentity(),f=d?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(a.getCoordinateSystem()===Qs.DISPLAY){var p=t._openGLRenderer.getTiledSizeAndOrigin();ot._E.identity(t.tmpMat4),t.tmpMat4[0]=2/p.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/p.vsize,t.tmpMat4[13]=-1,ot._E.multiply(t.tmpMat4,t.tmpMat4,u),o.setUniformMatrix("MCPCMatrix",t.tmpMat4)}else o.setUniformMatrix("MCPCMatrix",r([i.wcpc,f.mcwc,u],ot._E,t.tmpMat4));o.isUniformUsed("MCVCMatrix")&&o.setUniformMatrix("MCVCMatrix",r([i.wcvc,f.mcwc,u],ot._E,t.tmpMat4)),o.isUniformUsed("normalMatrix")&&o.setUniformMatrix3x3("normalMatrix",r([i.normalMatrix,f.normalMatrix],ot.wO,t.tmpMat3)),c!==l&&(o.isUniformUsed("cameraParallel")&&o.setUniformi("cameraParallel",s.getParallelProjection()),o.setLastCameraMTime(l)),d||o.setLastCameraMTime(0)},e.setPropertyShaderParameters=function(e,r,n){var a=e.getProgram(),o=n.getProperty(),i=o.getOpacity(),s=t.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),l=t.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),c=t.drawingEdges?1:o.getAmbient(),u=t.drawingEdges?0:o.getDiffuse(),d=t.drawingEdges?0:o.getSpecular(),f=o.getSpecularPower();a.setUniformf("opacityUniform",i),a.setUniform3fArray("ambientColorUniform",s),a.setUniform3fArray("diffuseColorUniform",l),a.setUniformf("ambient",c),a.setUniformf("diffuse",u);var p=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(p<1)){var g=o.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",g),a.setUniformf("specularPowerUniform",f),a.setUniformf("specular",d),a.isUniformUsed("ambientIntensityBF")){if(i=(o=n.getBackfaceProperty()).getOpacity(),s=o.getAmbientColor(),c=o.getAmbient(),l=o.getDiffuseColor(),u=o.getDiffuse(),g=o.getSpecularColor(),d=o.getSpecular(),a.setUniformf("ambientIntensityBF",c),a.setUniformf("diffuseIntensityBF",u),a.setUniformf("opacityUniformBF",i),a.setUniform3fArray("ambientColorUniformBF",s),a.setUniform3fArray("diffuseColorUniformBF",l),p<1)return;a.setUniformf("specularIntensityBF",d),a.setUniform3fArray("specularColorUniformBF",g),a.setUniformf("specularPowerUniformBF",f)}}},e.updateMaximumPointCellIds=function(e,r){var n,a,o,i,s=t._openGLRenderer.getSelector();if(s){if(null!==(n=t.selectionWebGLIdsToVTKIds)&&void 0!==n&&null!==(a=n.points)&&void 0!==a&&a.length){var l=t.selectionWebGLIdsToVTKIds.points.length;s.setMaximumPointId(l-1)}if(null!==(o=t.selectionWebGLIdsToVTKIds)&&void 0!==o&&null!==(i=o.cells)&&void 0!==i&&i.length){var c=t.selectionWebGLIdsToVTKIds.cells.length;s.setMaximumCellId(c-1)}s.getFieldAssociation()===Ws.FIELD_ASSOCIATION_POINTS&&(t.pointPicking=!0)}},e.renderPieceStart=function(r,n){t.primitiveIDOffset=0,t.vertexIDOffset=0;var a,o,i=(a=t._openGLRenderer,(o=a.getSelector())?o.getCurrentPass():Oi.X.MIN_KNOWN_PASS-1);t.lastSelectionState!==i&&(t.selectionStateChanged.modified(),t.lastSelectionState=i),t._openGLRenderer.getSelector()&&t._openGLRenderer.getSelector().renderProp(n),e.updateBufferObjects(r,n),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=function(r,n){for(var a=n.getProperty().getRepresentation(),o=n.getProperty().getEdgeVisibility()&&a===js.SURFACE,i=t._openGLRenderer.getSelector(),s=i&&i.getFieldAssociation()===Ws.FIELD_ASSOCIATION_POINTS&&(t.lastSelectionState===Oi.X.ID_LOW24||t.lastSelectionState===Oi.X.ID_HIGH24),l=zs.Start;l<zs.End;l++){t.primitives[l].setPointPicking(s),t.primitives[l].getCABO().getElementCount()&&(t.drawingEdges=o&&(l===zs.TrisEdges||l===zs.TriStripsEdges),t.drawingEdges&&(t.renderDepth||t.lastSelectionState>=0)||(t.lastBoundBO=t.primitives[l],t.primitiveIDOffset+=t.primitives[l].drawArrays(r,n,a,e),t.vertexIDOffset+=t.primitives[l].getCABO().getElementCount()))}},e.renderPieceFinish=function(e,r){t.LastBoundBO&&t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&&t.internalColorTexture.deactivate()},e.renderPiece=function(r,n){if(e.invokeEvent(Ys),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent($s),t.currentInput){if(t.currentInput.getPoints&&t.currentInput.getPoints().getNumberOfValues()){var a=t.context,o=n.getProperty().getBackfaceCulling(),i=n.getProperty().getFrontfaceCulling();o||i?i?(t._openGLRenderWindow.enableCullFace(),a.cullFace(a.FRONT)):(t._openGLRenderWindow.enableCullFace(),a.cullFace(a.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n)}}else qs("No input!")},e.computeBounds=function(r,n){e.getInput()?t.bounds=e.getInput().getBounds():(0,Mr.u)(t.bounds)},e.updateBufferObjects=function(t,r){e.getNeedToRebuildBufferObjects(t,r)&&e.buildBufferObjects(t,r)},e.getNeedToRebuildBufferObjects=function(r,n){var a=t.VBOBuildTime.getMTime();return a<e.getMTime()||a<t.renderable.getMTime()||a<n.getMTime()||a<t.currentInput.getMTime()},e.buildBufferObjects=function(r,n){var a=t.currentInput;if(null!==a){t.renderable.mapScalars(a,1);var o=t.renderable.getColorMapColors();t.haveCellScalars=!1;var i=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(i!==Ks.USE_CELL_DATA&&i!==Ks.USE_CELL_FIELD_DATA&&i!==Ks.USE_FIELD_DATA&&a.getPointData().getScalars()||i===Ks.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));var s=n.getProperty().getInterpolation()!==Hs.FLAT?a.getPointData().getNormals():null;null===s&&a.getCellData().getNormals()&&(t.haveCellNormals=!0,s=a.getCellData().getNormals());var l=n.getProperty().getRepresentation(),c=a.getPointData().getTCoords();if(t.openGLActor.getActiveTextures()||(c=null),t.renderable.getColorCoordinates()){c=t.renderable.getColorCoordinates(),t.internalColorTexture||(t.internalColorTexture=Yr.newInstance({resizable:!0}));var u=t.internalColorTexture;u.setMinificationFilter(Zs.NEAREST),u.setMagnificationFilter(Zs.NEAREST),u.setWrapS(Xs.CLAMP_TO_EDGE),u.setWrapT(Xs.CLAMP_TO_EDGE),u.setOpenGLRenderWindow(t._openGLRenderWindow);var d=t.renderable.getColorTextureMap(),f=d.getExtent(),p=d.getPointData().getScalars();u.create2DFromRaw(f[1]-f[0]+1,f[3]-f[2]+1,p.getNumberOfComponents(),p.getDataType(),p.getData()),u.activate(),u.sendParameters(),u.deactivate()}var g="".concat(a.getMTime(),"A").concat(l,"B").concat(a.getMTime())+"C".concat(s?s.getMTime():1,"D").concat(o?o.getMTime():1)+"E".concat(n.getProperty().getEdgeVisibility())+"F".concat(c?c.getMTime():1);if(t.VBOBuildString!==g){var m={points:a.getPoints(),normals:s,tcoords:c,colors:o,cellOffset:0,vertexOffset:0,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:t.renderable.getCustomShaderAttributes().map((function(e){return a.getPointData().getArrayByName(e)}))};t.renderable.getPopulateSelectionSettings()&&(t.selectionWebGLIdsToVTKIds={points:null,cells:null});for(var h=[{inRep:"verts",cells:a.getVerts()},{inRep:"lines",cells:a.getLines()},{inRep:"polys",cells:a.getPolys()},{inRep:"strips",cells:a.getStrips()},{inRep:"polys",cells:a.getPolys()},{inRep:"strips",cells:a.getStrips()}],v=n.getProperty().getEdgeVisibility()&&l===js.SURFACE,y=zs.Start;y<zs.End;y++)y!==zs.TrisEdges&&y!==zs.TriStripsEdges?(m.cellOffset+=t.primitives[y].getCABO().createVBO(h[y].cells,h[y].inRep,l,m,t.selectionWebGLIdsToVTKIds),m.vertexOffset+=t.primitives[y].getCABO().getElementCount()):v?t.primitives[y].getCABO().createVBO(h[y].cells,h[y].inRep,js.WIREFRAME,Gs(Gs({},m),{},{tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1})):t.primitives[y].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&&(t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),e.updateMaximumPointCellIds()),t.VBOBuildTime.modified(),t.VBOBuildString=g}}}}var el={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightHalfAngle:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Oi.X.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function tl(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,el,r),Tt.extend(e,t,r),Qr.implementReplaceShaderCoincidentOffset(e,t,r),Qr.implementBuildShadersWithReplacements(e,t,r),t.primitives=[],t.primTypes=zs,t.tmpMat3=ot.wO.identity(new Float64Array(9)),t.tmpMat4=ot._E.identity(new Float64Array(16));for(var n=zs.Start;n<zs.End;n++)t.primitives[n]=Er.newInstance(),t.primitives[n].setPrimitiveType(n),t.primitives[n].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);(0,ht.g2)(e,t,["context"]),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},(0,ht.j6)(t.selectionStateChanged,{mtime:0}),Js(e,t)}var rl=(0,ht.WL)(tl,"vtkOpenGLPolyDataMapper"),nl={newInstance:rl,extend:tl};function al(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}wt("vtkMapper",rl);var ol=ht.E0,il=Ua.ZP.Representation,sl=cr.ObjectType,ll=Qi.PassTypes,cl={type:"StartEvent"},ul={type:"EndEvent"};function dl(e,t){t.classHierarchy.push("vtkOpenGLGlyph3DMapper");var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?al(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):al(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);e.renderPiece=function(r,n){if(e.invokeEvent(cl),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(1),e.invokeEvent(ul),t.currentInput){if(t.currentInput.getPoints&&t.currentInput.getPoints().getNumberOfValues()){var a=t.context;t._openGLRenderWindow.getWebgl2()?(t.hardwareSupport=!0,t.extension=null):t.extension||(t.extension=t.context.getExtension("ANGLE_instanced_arrays"),t.hardwareSupport=!!t.extension);var o=n.getProperty().getBackfaceCulling(),i=n.getProperty().getFrontfaceCulling();o||i?i?(t._openGLRenderWindow.enableCullFace(),a.cullFace(a.FRONT)):(t._openGLRenderWindow.enableCullFace(),a.cullFace(a.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n)}}else ol("No input!")},e.multiply4x4WithOffset=function(e,t,r,n){var a=t[0],o=t[1],i=t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],f=t[8],p=t[9],g=t[10],m=t[11],h=t[12],v=t[13],y=t[14],b=t[15],T=r[n],C=r[n+1],x=r[n+2],S=r[n+3];e[0]=T*a+C*l+x*f+S*h,e[1]=T*o+C*c+x*p+S*v,e[2]=T*i+C*u+x*g+S*y,e[3]=T*s+C*d+x*m+S*b,T=r[n+4],C=r[n+5],x=r[n+6],S=r[n+7],e[4]=T*a+C*l+x*f+S*h,e[5]=T*o+C*c+x*p+S*v,e[6]=T*i+C*u+x*g+S*y,e[7]=T*s+C*d+x*m+S*b,T=r[n+8],C=r[n+9],x=r[n+10],S=r[n+11],e[8]=T*a+C*l+x*f+S*h,e[9]=T*o+C*c+x*p+S*v,e[10]=T*i+C*u+x*g+S*y,e[11]=T*s+C*d+x*m+S*b,T=r[n+12],C=r[n+13],x=r[n+14],S=r[n+15],e[12]=T*a+C*l+x*f+S*h,e[13]=T*o+C*c+x*p+S*v,e[14]=T*i+C*u+x*g+S*y,e[15]=T*s+C*d+x*m+S*b},e.replaceShaderNormal=function(e,n,a){if(t.hardwareSupport&&t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var o=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=Sr.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=Sr.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),e.Vertex=o}r.replaceShaderNormal(e,n,a)},e.replaceShaderColor=function(e,n,a){if(t.hardwareSupport&&t.renderable.getColorArray()){var o=e.Vertex,i=e.Geometry,s=e.Fragment,l=t.lastBoundBO.getReferenceByName("lastLightComplexity"),c=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(c=c.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(c=c.concat(["varying vec4 vertexColorVSOutput;"]),o=Sr.substitute(o,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,o=Sr.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,i=Sr.substitute(i,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,i=Sr.substitute(i,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),s=Sr.substitute(s,"//VTK::Color::Impl",u).result,s=Sr.substitute(s,"//VTK::Color::Dec",c).result,e.Vertex=o,e.Geometry=i,e.Fragment=s}r.replaceShaderColor(e,n,a)},e.replaceShaderPositionVC=function(e,n,a){if(t.hardwareSupport){var o=e.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=Sr.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,o=Sr.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(o=Sr.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,o=Sr.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),e.Vertex=o}r.replaceShaderPositionVC(e,n,a)},e.replaceShaderPicking=function(e,n,a){if(t.hardwareSupport){var o=e.Fragment,i=e.Vertex;i=Sr.substitute(i,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,i=Sr.substitute(i,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,e.Vertex=i,o=Sr.substitute(o,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,o=Sr.substitute(o,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,e.Fragment=o}else r.replaceShaderPicking(e,n,a)},e.updateGlyphShaderParameters=function(r,n,a,o,i,s,l,c){var u=a.getProgram();if(r){var d=t.normalMatrix,f=s,p=9*l,g=t.tmpMat3,m=d[0],h=d[1],v=d[2],y=d[3],b=d[4],T=d[5],C=d[6],x=d[7],S=d[8],P=f[p],w=f[p+1],O=f[p+2],I=f[p+3],A=f[p+4],R=f[p+5],E=f[p+6],M=f[p+7],D=f[p+8];g[0]=P*m+w*y+O*C,g[1]=P*h+w*b+O*x,g[2]=P*v+w*T+O*S,g[3]=I*m+A*y+R*C,g[4]=I*h+A*b+R*x,g[5]=I*v+A*T+R*S,g[6]=E*m+M*y+D*C,g[7]=E*h+M*b+D*x,g[8]=E*v+M*T+D*S,u.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix("MCPCMatrix",t.tmpMat4),n&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix("MCVCMatrix",t.tmpMat4)),o){var V=o.getData();t.tmpColor[0]=V[4*l]/255,t.tmpColor[1]=V[4*l+1]/255,t.tmpColor[2]=V[4*l+2]/255,u.setUniform3fArray("ambientColorUniform",t.tmpColor),u.setUniform3fArray("diffuseColorUniform",t.tmpColor)}c&&u.setUniform3fArray("mapperIndex",c.getPropColorValue())},e.renderPieceDraw=function(r,n){var a=n.getProperty().getRepresentation(),o=t.context,i=n.getProperty().getEdgeVisibility()&&a===il.SURFACE,s=t.openGLCamera.getKeyMatrices(r),l=t.openGLActor.getKeyMatrices();ot.wO.multiply(t.normalMatrix,s.normalMatrix,l.normalMatrix),ot._E.multiply(t.mcpcMatrix,s.wcpc,l.mcwc),ot._E.multiply(t.mcvcMatrix,s.wcvc,l.mcwc);var c=t.renderable.getMatrixArray(),u=t.renderable.getNormalArray(),d=t.renderable.getColorArray(),f=c.length/16,p=!1;t._openGLRenderer.getSelector()&&t._openGLRenderer.getSelector().getCurrentPass()===ll.COMPOSITE_INDEX_PASS&&(p=!0);for(var g=t.primTypes.Start;g<t.primTypes.End;g++){var m=t.primitives[g].getCABO();if(m.getElementCount()){t.drawingEdges=i&&(g===t.primTypes.TrisEdges||g===t.primTypes.TriStripsEdges),t.lastBoundBO=t.primitives[g],t.primitives[g].updateShaders(r,n,e);var h=t.primitives[g].getProgram(),v=t.primitives[g].getOpenGLMode(a),y=h.isUniformUsed("normalMatrix"),b=h.isUniformUsed("MCVCMatrix");if(t.hardwareSupport)t.extension?t.extension.drawArraysInstancedANGLE(v,0,m.getElementCount(),f):o.drawArraysInstanced(v,0,m.getElementCount(),f);else for(var T=0;T<f;++T)p&&t._openGLRenderer.getSelector().renderCompositeIndex(T),e.updateGlyphShaderParameters(y,b,t.primitives[g],d,c,u,T,p?t._openGLRenderer.getSelector():null),o.drawArrays(v,0,m.getElementCount())}}},e.setMapperShaderParameters=function(e,n,a){if(e.getCABO().getElementCount()&&(t.glyphBOBuildTime.getMTime()>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed("gMatrix")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||ol("Error setting gMatrix in shader VAO."):e.getVAO().removeAttributeArray("gMatrix"),e.getProgram().isAttributeUsed("gNormal")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||ol("Error setting gNormal in shader VAO."):e.getVAO().removeAttributeArray("gNormal"),e.getProgram().isAttributeUsed("gColor")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||ol("Error setting gColor in shader VAO."):e.getVAO().removeAttributeArray("gColor"),e.getProgram().isAttributeUsed("mapperIndexVS")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||ol("Error setting mapperIndexVS in shader VAO."):e.getVAO().removeAttributeArray("mapperIndexVS"),r.setMapperShaderParameters(e,n,a),void e.getAttributeUpdateTime().modified();r.setMapperShaderParameters(e,n,a)},e.getNeedToRebuildBufferObjects=function(e,n){return t.renderable.buildArrays(),t.VBOBuildTime.getMTime()<t.renderable.getBuildTime().getMTime()||r.getNeedToRebuildBufferObjects(e,n)},e.getNeedToRebuildShaders=function(e,n,a){return!!(r.getNeedToRebuildShaders(e,n,a)||e.getShaderSourceTime().getMTime()<t.renderable.getMTime()||e.getShaderSourceTime().getMTime()<t.currentInput.getMTime())},e.buildBufferObjects=function(e,n){if(t.hardwareSupport){var a=t.renderable.getMatrixArray(),o=t.renderable.getNormalArray(),i=t.renderable.getColorArray();if(t.matrixBuffer||(t.matrixBuffer=cr.newInstance(),t.matrixBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.normalBuffer=cr.newInstance(),t.normalBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorBuffer=cr.newInstance(),t.colorBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.pickBuffer=cr.newInstance(),t.pickBuffer.setOpenGLRenderWindow(t._openGLRenderWindow)),t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(a,sl.ARRAY_BUFFER),t.normalBuffer.upload(o,sl.ARRAY_BUFFER),i?t.colorBuffer.upload(i.getData(),sl.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();for(var s=a.length/16,l=new Uint8Array(4*s),c=0;c<s;++c){var u=c+1,d=4*c;l[d]=u%256,u-=l[d],u/=256,l[d+1]=u%256,u-=l[d+1],u/=256,l[d+2]=u%256,l[d+3]=255}t.pickBuffer.upload(l,sl.ARRAY_BUFFER),t.glyphBOBuildTime.modified()}}return r.buildBufferObjects(e,n)}}var fl={normalMatrix:null,mcpcMatrix:null,mcwcMatrix:null};function pl(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fl,r),nl.extend(e,t,r),t.tmpMat3=ot.wO.identity(new Float64Array(9)),t.normalMatrix=ot.wO.identity(new Float64Array(9)),t.mcpcMatrix=ot._E.identity(new Float64Array(16)),t.mcvcMatrix=ot._E.identity(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},(0,ht.j6)(t.glyphBOBuildTime,{mtime:0}),dl(e,t)}var gl=(0,ht.WL)(pl,"vtkOpenGLGlyph3DMapper"),ml={newInstance:gl,extend:pl};wt("vtkGlyph3DMapper",gl);var hl=ht.E0;var vl={context:null};function yl(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vl,r),Tt.extend(e,t,r),t.openGLTexture=Yr.newInstance(),t.tris=Er.newInstance(),t.keyMatrixTime={},(0,ht.j6)(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ot.wO.identity(new Float64Array(9)),mcwc:ot._E.identity(new Float64Array(16))},(0,ht.g2)(e,t,["context"]),(0,ht.U2)(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=function(r){if(r){t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);var n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera())}},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;r.incrementOpaqueActorCount()}},e.opaquePass=function(r,n){if(r&&!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);var a=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",a);var o=t._openGLRenderer.getRenderable(),i=t.openGLCamera.getKeyMatrices(o),s=new Float64Array(16);if(ot._E.invert(s,i.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",s),"box"===t.lastFormat){var l=o.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",l[0],l[1],l[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=function(){if(!t.tris.getCABO().getElementCount()){for(var e=new Float32Array(12),r=0;r<4;r++)e[3*r]=r%2*2-1,e[3*r+1]=r>1?1:-1,e[3*r+2]=1;var n=re.ZP.newInstance({numberOfComponents:3,values:e});n.setName("points");var a=new Uint16Array(8);a[0]=3,a[1]=0,a[2]=1,a[3]=3,a[4]=3,a[5]=0,a[6]=3,a[7]=2;var o=re.ZP.newInstance({numberOfComponents:1,values:a});t.tris.getCABO().createVBO(o,"polys",ur.hX.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||hl("Error setting vertexMC in shader VAO."));var i=t.renderable.getTextures();i.length||hl("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==i[0]&&(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(i[0]))}}(e,t)}var bl=(0,ht.WL)(yl),Tl={newInstance:bl,extend:yl};wt("vtkSkybox",bl);var Cl="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkSphereMapperVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// this shader implements imposters in OpenGL for Spheres\n\nattribute vec4 vertexMC;\nattribute vec2 offsetMC;\n\n// optional normal declaration\n//VTK::Normal::Dec\n\n//VTK::Picking::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\n\n// material property values\n//VTK::Color::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\nvarying vec4 vertexVCVSOutput;\nvarying float radiusVCVSOutput;\nvarying vec3 centerVCVSOutput;\n\nuniform int cameraParallel;\nuniform float scaleFactor;\n\nvoid main()\n{\n //VTK::Picking::Impl\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Clip::Impl\n\n // compute the projected vertex position\n vec2 scaledOffsetMC = scaleFactor * offsetMC;\n vertexVCVSOutput = MCVCMatrix * vertexMC;\n centerVCVSOutput = vertexVCVSOutput.xyz;\n radiusVCVSOutput = length(scaledOffsetMC)*0.5;\n\n // make the triangle face the camera\n if (cameraParallel == 0)\n {\n vec3 dir = normalize(-vertexVCVSOutput.xyz);\n vec3 base2 = normalize(cross(dir,vec3(1.0,0.0,0.0)));\n vec3 base1 = cross(base2,dir);\n vertexVCVSOutput.xyz = vertexVCVSOutput.xyz + scaledOffsetMC.x*base1 + scaledOffsetMC.y*base2;\n }\n else\n {\n // add in the offset\n vertexVCVSOutput.xy = vertexVCVSOutput.xy + scaledOffsetMC;\n }\n\n gl_Position = VCPCMatrix * vertexVCVSOutput;\n}\n";function xl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Sl=ht.E0;function Pl(e,t){t.classHierarchy.push("vtkOpenGLSphereMapper");var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xl(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xl(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);e.getShaderTemplate=function(e,t,r){e.Vertex=Cl,e.Fragment=gn,e.Geometry=""},e.replaceShaderValues=function(e,n,a){var o=e.Vertex,i=e.Fragment;o=Sr.substitute(o,"//VTK::Camera::Dec",["uniform mat4 VCPCMatrix;\n","uniform mat4 MCVCMatrix;"]).result,i=Sr.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=Sr.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;\n"]).result;i=Sr.substitute(i,"//VTK::Normal::Dec",["uniform float invertedDepth;\n","uniform int cameraParallel;\n","varying float radiusVCVSOutput;\n","varying vec3 centerVCVSOutput;\n","uniform mat4 VCPCMatrix;\n"]).result;var s="";t.context.getExtension("EXT_frag_depth")&&(s="gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\n"),t._openGLRenderWindow.getWebgl2()&&(s="gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\n"),i=Sr.substitute(i,"//VTK::Depth::Impl",[" vec3 EyePos;\n"," vec3 EyeDir;\n"," if (cameraParallel != 0) {\n"," EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\n"," EyeDir = vec3(0.0,0.0,-1.0); }\n"," else {\n"," EyeDir = vertexVC.xyz;\n"," EyePos = vec3(0.0,0.0,0.0);\n"," float lengthED = length(EyeDir);\n"," EyeDir = normalize(EyeDir);\n"," if (lengthED > radiusVCVSOutput*3.0) {\n"," EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\n"," }\n"," EyePos = EyePos - centerVCVSOutput;\n"," EyePos = EyePos/radiusVCVSOutput;\n"," float b = 2.0*dot(EyePos,EyeDir);\n"," float c = dot(EyePos,EyePos) - 1.0;\n"," float d = b*b - 4.0*c;\n"," vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\n"," if (d < 0.0) { discard; }\n"," else {\n"," float t = (-b - invertedDepth*sqrt(d))*0.5;\n"," normalVCVSOutput = invertedDepth*normalize(EyePos + t*EyeDir);\n"," vertexVC.xyz = normalVCVSOutput*radiusVCVSOutput + centerVCVSOutput;\n"," }\n"," vec4 pos = VCPCMatrix * vertexVC;\n",s]).result,i=Sr.substitute(i,"//VTK::Normal::Impl","").result,t.haveSeenDepthRequest&&(i=Sr.substitute(i,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),e.Vertex=o,e.Fragment=i,r.replaceShaderValues(e,n,a)},e.setMapperShaderParameters=function(e,n,a){if(e.getCABO().getElementCount()&&(t.VBOBuildTime>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())&&e.getProgram().isAttributeUsed("offsetMC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"offsetMC",12,e.getCABO().getStride(),t.context.FLOAT,2,!1)||Sl("Error setting 'offsetMC' in shader VAO.")),e.getProgram().isUniformUsed("invertedDepth")&&e.getProgram().setUniformf("invertedDepth",t.invert?-1:1),e.getProgram().isUniformUsed("scaleFactor")){var o=t.currentInput.getPointData();null!=t.renderable.getScaleArray()&&o.hasArray(t.renderable.getScaleArray())?e.getProgram().setUniformf("scaleFactor",t.renderable.getScaleFactor()):e.getProgram().setUniformf("scaleFactor",1)}r.setMapperShaderParameters(e,n,a)},e.setCameraShaderParameters=function(e,r,n){var a=e.getProgram(),o=r.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(r);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",i.vcpc),a.isUniformUsed("MCVCMatrix"))if(n.getIsIdentity())a.setUniformMatrix("MCVCMatrix",i.wcvc);else{var s=t.openGLActor.getKeyMatrices(),l=new Float64Array(16);ot._E.multiply(l,i.wcvc,s.mcwc),a.setUniformMatrix("MCVCMatrix",l)}a.isUniformUsed("cameraParallel")&&e.getProgram().setUniformi("cameraParallel",o.getParallelProjection())},e.getOpenGLMode=function(e,r){return t.context.TRIANGLES},e.buildBufferObjects=function(e,r){var n=t.currentInput;if(null!==n){t.renderable.mapScalars(n,1);var a=t.renderable.getColorMapColors(),o=t.primitives[t.primTypes.Tris].getCABO(),i=n.getPointData(),s=n.getPoints(),l=s.getNumberOfPoints(),c=s.getData(),u=null;null!=t.renderable.getScaleArray()&&i.hasArray(t.renderable.getScaleArray())&&(u=i.getArray(t.renderable.getScaleArray()).getData());var d=null,f=0,p=null;a?(f=a.getNumberOfComponents(),o.setColorOffset(0),o.setColorBOStride(4),d=a.getData(),p=new Uint8Array(3*l*4),o.getColorBO()||o.setColorBO(cr.newInstance()),o.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow)):o.getColorBO()&&o.setColorBO(null),o.setColorComponents(f);var g=new Float32Array(5*l*3);o.setStride(20);for(var m=Math.cos((0,Mr.r)(30)),h=0,v=0,y=0,b=0,T=0;T<l;++T){var C=t.renderable.getRadius();u&&(C=u[T]),h=3*T,g[y++]=c[h++],g[y++]=c[h++],g[y++]=c[h++],g[y++]=-2*C*m,g[y++]=-C,d&&(v=T*f,p[b++]=d[v],p[b++]=d[v+1],p[b++]=d[v+2],p[b++]=d[v+3]),h=3*T,g[y++]=c[h++],g[y++]=c[h++],g[y++]=c[h++],g[y++]=2*C*m,g[y++]=-C,d&&(p[b++]=d[v],p[b++]=d[v+1],p[b++]=d[v+2],p[b++]=d[v+3]),h=3*T,g[y++]=c[h++],g[y++]=c[h++],g[y++]=c[h++],g[y++]=0,g[y++]=2*C,d&&(p[b++]=d[v],p[b++]=d[v+1],p[b++]=d[v+2],p[b++]=d[v+3])}o.setElementCount(y/5),o.upload(g,rr.ARRAY_BUFFER),a&&o.getColorBO().upload(p,rr.ARRAY_BUFFER),t.VBOBuildTime.modified()}}}var wl={};function Ol(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wl,r),nl.extend(e,t,r),Pl(e,t)}var Il=(0,ht.WL)(Ol,"vtkOpenGLSphereMapper"),Al={newInstance:Il,extend:Ol};wt("vtkSphereMapper",Il);var Rl="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkStickMapperVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// this shader implements imposters in OpenGL for Sticks\n\nattribute vec4 vertexMC;\nattribute vec3 orientMC;\nattribute vec4 offsetMC;\nattribute float radiusMC;\n\n// optional normal declaration\n//VTK::Normal::Dec\n\n//VTK::Picking::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\n\n// material property values\n//VTK::Color::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\nvarying vec4 vertexVCVSOutput;\nvarying float radiusVCVSOutput;\nvarying float lengthVCVSOutput;\nvarying vec3 centerVCVSOutput;\nvarying vec3 orientVCVSOutput;\n\nuniform int cameraParallel;\n\nvoid main()\n{\n //VTK::Picking::Impl\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Clip::Impl\n\n vertexVCVSOutput = MCVCMatrix * vertexMC;\n centerVCVSOutput = vertexVCVSOutput.xyz;\n radiusVCVSOutput = radiusMC;\n lengthVCVSOutput = length(orientMC);\n orientVCVSOutput = normalMatrix * normalize(orientMC);\n\n // make sure it is pointing out of the screen\n if (orientVCVSOutput.z < 0.0)\n {\n orientVCVSOutput = -orientVCVSOutput;\n }\n\n // make the basis\n vec3 xbase;\n vec3 ybase;\n vec3 dir = vec3(0.0,0.0,1.0);\n if (cameraParallel == 0)\n {\n dir = normalize(-vertexVCVSOutput.xyz);\n }\n if (abs(dot(dir,orientVCVSOutput)) == 1.0)\n {\n xbase = normalize(cross(vec3(0.0,1.0,0.0),orientVCVSOutput));\n ybase = cross(xbase,orientVCVSOutput);\n }\n else\n {\n xbase = normalize(cross(orientVCVSOutput,dir));\n ybase = cross(orientVCVSOutput,xbase);\n }\n\n vec3 offsets = offsetMC.xyz*2.0-1.0;\n vertexVCVSOutput.xyz = vertexVCVSOutput.xyz +\n radiusVCVSOutput*offsets.x*xbase +\n radiusVCVSOutput*offsets.y*ybase +\n 0.5*lengthVCVSOutput*offsets.z*orientVCVSOutput;\n\n gl_Position = VCPCMatrix * vertexVCVSOutput;\n}\n";function El(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var Ml=ht.E0;function Dl(e,t){t.classHierarchy.push("vtkOpenGLStickMapper");var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?El(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):El(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);e.getShaderTemplate=function(e,t,r){e.Vertex=Rl,e.Fragment=gn,e.Geometry=""},e.replaceShaderValues=function(e,n,a){var o=e.Vertex,i=e.Fragment;o=Sr.substitute(o,"//VTK::Camera::Dec",["uniform mat4 VCPCMatrix;\n","uniform mat4 MCVCMatrix;"]).result,i=Sr.substitute(i,"//VTK::PositionVC::Dec","varying vec4 vertexVCVSOutput;").result,i=Sr.substitute(i,"//VTK::PositionVC::Impl"," vec4 vertexVC = vertexVCVSOutput;\n").result;i=Sr.substitute(i,"//VTK::Normal::Dec",["uniform int cameraParallel;\n","varying float radiusVCVSOutput;\n","varying vec3 orientVCVSOutput;\n","varying float lengthVCVSOutput;\n","varying vec3 centerVCVSOutput;\n","uniform mat4 VCPCMatrix;\n"]).result;var s="";t.context.getExtension("EXT_frag_depth")&&(s=" gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\n"),t._openGLRenderWindow.getWebgl2()&&(s="gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\n"),i=Sr.substitute(i,"//VTK::Depth::Impl",[" vec3 EyePos;\n"," vec3 EyeDir;\n"," if (cameraParallel != 0) {\n"," EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\n"," EyeDir = vec3(0.0,0.0,-1.0); }\n"," else {\n"," EyeDir = vertexVC.xyz;\n"," EyePos = vec3(0.0,0.0,0.0);\n"," float lengthED = length(EyeDir);\n"," EyeDir = normalize(EyeDir);\n"," if (lengthED > radiusVCVSOutput*3.0) {\n"," EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\n"," }\n"," EyePos = EyePos - centerVCVSOutput;\n"," vec3 base1;\n"," if (abs(orientVCVSOutput.z) < 0.99) {\n"," base1 = normalize(cross(orientVCVSOutput,vec3(0.0,0.0,1.0))); }\n"," else {\n"," base1 = normalize(cross(orientVCVSOutput,vec3(0.0,1.0,0.0))); }\n"," vec3 base2 = cross(orientVCVSOutput,base1);\n"," EyePos = vec3(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,orientVCVSOutput));\n"," EyeDir = vec3(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,orientVCVSOutput));\n"," EyePos = EyePos/radiusVCVSOutput;\n"," float a = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;\n"," float b = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);\n"," float c = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;\n"," float d = b*b - 4.0*a*c;\n"," vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\n"," if (d < 0.0) { discard; }\n"," else {\n"," float t = (-b - sqrt(d))/(2.0*a);\n"," float tz = EyePos.z + t*EyeDir.z;\n"," vec3 iPoint = EyePos + t*EyeDir;\n"," if (abs(iPoint.z)*radiusVCVSOutput > lengthVCVSOutput*0.5) {\n"," float t2 = (-b + sqrt(d))/(2.0*a);\n"," float tz2 = EyePos.z + t2*EyeDir.z;\n"," if (tz2*radiusVCVSOutput > lengthVCVSOutput*0.5 || tz*radiusVCVSOutput < -0.5*lengthVCVSOutput) { discard; }\n"," else {\n"," normalVCVSOutput = orientVCVSOutput;\n"," float t3 = (lengthVCVSOutput*0.5/radiusVCVSOutput - EyePos.z)/EyeDir.z;\n"," iPoint = EyePos + t3*EyeDir;\n"," vertexVC.xyz = radiusVCVSOutput*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\n"," }\n"," }\n"," else {\n"," normalVCVSOutput = iPoint.x*base1 + iPoint.y*base2;\n"," vertexVC.xyz = radiusVCVSOutput*(normalVCVSOutput + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\n"," }\n"," }\n"," vec4 pos = VCPCMatrix * vertexVC;\n",s]).result,i=Sr.substitute(i,"//VTK::Normal::Impl","").result,t.haveSeenDepthRequest&&(i=Sr.substitute(i,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),e.Vertex=o,e.Fragment=i,r.replaceShaderValues(e,n,a)},e.setMapperShaderParameters=function(e,n,a){e.getCABO().getElementCount()&&(t.VBOBuildTime>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())&&(e.getProgram().isAttributeUsed("orientMC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"orientMC",12,e.getCABO().getStride(),t.context.FLOAT,3,!1)||Ml("Error setting 'orientMC' in shader VAO.")),e.getProgram().isAttributeUsed("offsetMC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),"offsetMC",0,e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,3,!0)||Ml("Error setting 'offsetMC' in shader VAO.")),e.getProgram().isAttributeUsed("radiusMC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"radiusMC",24,e.getCABO().getStride(),t.context.FLOAT,1,!1)||Ml("Error setting 'radiusMC' in shader VAO."))),r.setMapperShaderParameters(e,n,a)},e.setCameraShaderParameters=function(e,r,n){var a=e.getProgram(),o=r.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(r);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",i.vcpc),n.getIsIdentity())a.isUniformUsed("MCVCMatrix")&&a.setUniformMatrix("MCVCMatrix",i.wcvc),a.isUniformUsed("normalMatrix")&&a.setUniformMatrix3x3("normalMatrix",i.normalMatrix);else{var s=t.openGLActor.getKeyMatrices();if(a.isUniformUsed("MCVCMatrix")){var l=new Float64Array(16);ot._E.multiply(l,i.wcvc,s.mcwc),a.setUniformMatrix("MCVCMatrix",l)}if(a.isUniformUsed("normalMatrix")){var c=new Float64Array(9);ot.wO.multiply(c,i.normalMatrix,s.normalMatrix),a.setUniformMatrix3x3("normalMatrix",c)}}a.isUniformUsed("cameraParallel")&&e.getProgram().setUniformi("cameraParallel",o.getParallelProjection())},e.getOpenGLMode=function(e,r){return t.context.TRIANGLES},e.buildBufferObjects=function(e,r){var n=t.currentInput;if(null!==n){t.renderable.mapScalars(n,1);var a=t.renderable.getColorMapColors(),o=t.primitives[t.primTypes.Tris].getCABO(),i=n.getPointData(),s=n.getPoints(),l=s.getNumberOfPoints(),c=s.getData();4;var u=null,d=0;o.setColorBOStride(4),o.getColorBO()||o.setColorBO(cr.newInstance()),o.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow),a&&(d=a.getNumberOfComponents(),o.setColorOffset(4),u=a.getData(),o.setColorBOStride(8)),o.setColorComponents(d),o.setStride(28);var f=new Float32Array(7*l*12),p=new Uint8Array(12*l*(u?8:4)),g=null,m=null;null!=t.renderable.getScaleArray()&&i.hasArray(t.renderable.getScaleArray())&&(g=i.getArray(t.renderable.getScaleArray()).getData()),null!=t.renderable.getOrientationArray()&&i.hasArray(t.renderable.getOrientationArray())?m=i.getArray(t.renderable.getOrientationArray()).getData():Ml(["Error setting orientationArray.\n","You have to specify the stick orientation"]);for(var h=[0,1,3,0,3,2,2,3,5,2,5,4],v=0,y=0,b=0,T=0,C=0;C<l;++C){var x=t.renderable.getLength(),S=t.renderable.getRadius();g&&(x=g[2*C],S=g[2*C+1]);for(var P=0;P<h.length;++P)v=3*C,f[b++]=c[v++],f[b++]=c[v++],f[b++]=c[v++],v=3*C,f[b++]=m[v++]*x,f[b++]=m[v++]*x,f[b++]=m[v++]*x,f[b++]=S,p[T++]=h[P]%2*255,p[T++]=h[P]>=4?255:0,p[T++]=h[P]>=2?255:0,p[T++]=255,y=C*d,u&&(p[T++]=u[y],p[T++]=u[y+1],p[T++]=u[y+2],p[T++]=u[y+3])}o.setElementCount(b/7),o.upload(f,rr.ARRAY_BUFFER),o.getColorBO().upload(p,rr.ARRAY_BUFFER),t.VBOBuildTime.modified()}}}var Vl={};function Ll(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vl,r),nl.extend(e,t,r),Dl(e,t)}var _l=(0,ht.WL)(Ll,"vtkOpenGLStickMapper"),Nl={newInstance:_l,extend:Ll};wt("vtkStickMapper",_l);const{vtkWarningMacro:Bl}=ht.default;const Fl={};function Ul(e,t,r={}){Object.assign(t,Fl,r),Hn.extend(e,t,r),t.scalarTexture=r.scalarTexture,t.previousState={},function(e,t){t.classHierarchy.push("vtkStreamingOpenGLVolumeMapper"),e.buildBufferObjects=(e,r)=>{const n=t.currentInput;if(!n)return;const a=n.getPointData()&&n.getPointData().getScalars();if(!a)return;const o=r.getProperty();if(!t.jitterTexture.getHandle()){const e=new Uint8Array(1024);for(let t=0;t<1024;++t)e[t]=255*Math.random();t.jitterTexture.setMinificationFilter(Vr.LINEAR),t.jitterTexture.setMagnificationFilter(Vr.LINEAR),t.jitterTexture.create2DFromRaw(32,32,1,nn.Tu.UNSIGNED_CHAR,e)}const i=a.getNumberOfComponents(),s=o.getIndependentComponents()?i:1;let l=`${o.getMTime()}`;if(t.opacityTextureString!==l){const e=1024,r=2*e*s,n=new Float32Array(r),a=new Float32Array(e);for(let r=0;r<s;++r){const i=o.getScalarOpacity(r),s=t.renderable.getSampleDistance()/o.getScalarOpacityUnitDistance(r),l=i.getRange();i.getTable(l[0],l[1],e,a,1);for(let t=0;t<e;++t)n[r*e*2+t]=1-(1-a[t])**s,n[r*e*2+t+e]=n[r*e*2+t]}if(t.opacityTexture.releaseGraphicsResources(t._openGLRenderWindow),t.opacityTexture.setMinificationFilter(Vr.LINEAR),t.opacityTexture.setMagnificationFilter(Vr.LINEAR),t._openGLRenderWindow.getWebgl2()||t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear"))t.opacityTexture.create2DFromRaw(e,2*s,1,nn.Tu.FLOAT,n);else{const a=new Uint8Array(r);for(let e=0;e<r;++e)a[e]=255*n[e];t.opacityTexture.create2DFromRaw(e,2*s,1,nn.Tu.UNSIGNED_CHAR,a)}t.opacityTextureString=l}if(l=`${o.getMTime()}`,t.colorTextureString!==l){const e=1024,r=new Uint8Array(2*e*s*3),n=new Float32Array(3*e);for(let t=0;t<s;++t){const a=o.getRGBTransferFunction(t),i=a.getRange();a.getTable(i[0],i[1],e,n,1);for(let a=0;a<3*e;++a)r[t*e*6+a]=255*n[a],r[t*e*6+a+3*e]=255*n[a]}t.colorTexture.releaseGraphicsResources(t._openGLRenderWindow),t.colorTexture.setMinificationFilter(Vr.LINEAR),t.colorTexture.setMagnificationFilter(Vr.LINEAR),t.colorTexture.create2DFromRaw(e,2*s,3,nn.Tu.UNSIGNED_CHAR,r),t.colorTextureString=l}if(l=`${n.getMTime()}`,t.scalarTextureString!==l){const e=n.getDimensions(),r=t.scalarTexture.getTextureParameters(),o=n.getPointData().getScalars().getDataType(),s=n.getPointData().getScalars().getData();let c=!0;if(r.dataType&&r.dataType===o){const e=r.width*r.height*r.depth*r.numComps;s.length===e&&(c=!1)}c?(t.scalarTexture.setOglNorm16Ext(t.context.getExtension("EXT_texture_norm16")),t.scalarTexture.releaseGraphicsResources(t._openGLRenderWindow),t.scalarTexture.resetFormatAndType(),t.scalarTexture.create3DFilterableFromRaw(e[0],e[1],e[2],i,a.getDataType(),a.getData(),t.renderable.getPreferSizeOverAccuracy())):(t.scalarTexture.deactivate(),t.scalarTexture.update3DFromRaw(s)),t.scalarTextureString=l}if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t<4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t>1?1:-1,e[3*t+2]=-1;const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const n=re.ZP.newInstance({numberOfComponents:3,values:e});n.setName("points");const a=re.ZP.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(a,"polys",ur.hX.SURFACE,{points:n,cellOffset:0})}t.VBOBuildTime.modified()},e.getRenderTargetSize=()=>{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:r}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,r]},e.getRenderTargetOffset=()=>{const{lowerLeftU:e,lowerLeftV:r}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,r]}}(e,t)}const kl={newInstance:ht.default.newInstance(Ul,"vtkStreamingOpenGLVolumeMapper"),extend:Ul};const Gl={};function Wl(e,t,r={}){Object.assign(t,Gl,r),St.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkStreamingOpenGLViewNodeFactory"),e.createNode=r=>{if(r.isDeleted())return null;let n=0,a=r.getClassName(n++),o=!1;const i=Object.keys(t.overrides);for(;a&&!o;)-1!==i.indexOf(a)?o=!0:a=r.getClassName(n++);if(!o)return null;const s=t.getModelInitialValues(r),l=t.overrides[a](s);return l.setMyFactory(e),l},t.getModelInitialValues=e=>{const t={};return"vtkSharedVolumeMapper"===e.getClassName()&&(t.scalarTexture=e.getScalarTexture()),t}}(e,t),e.registerOverride("vtkActor",Vs.newInstance),e.registerOverride("vtkActor2D",Bs.newInstance),e.registerOverride("vtkCamera",Dt.newInstance),e.registerOverride("vtkGlyph3DMapper",ml.newInstance),e.registerOverride("vtkImageMapper",Cn.newInstance),e.registerOverride("vtkImageSlice",wn.newInstance),e.registerOverride("vtkMapper",nl.newInstance),e.registerOverride("vtkPixelSpaceCallbackMapper",Yn.newInstance),e.registerOverride("vtkRenderer",Bt.newInstance),e.registerOverride("vtkSkybox",Tl.newInstance),e.registerOverride("vtkSphereMapper",Al.newInstance),e.registerOverride("vtkStickMapper",Nl.newInstance),e.registerOverride("vtkTexture",Yr.newInstance),e.registerOverride("vtkVolume",Rn.newInstance),e.registerOverride("vtkVolumeMapper",Hn.newInstance),e.registerOverride("vtkSharedVolumeMapper",kl.newInstance)}const zl={newInstance:ht.default.newInstance(Wl,"vtkStreamingOpenGLViewNodeFactory"),extend:Wl};function jl(e,t,r={}){Object.assign(t,r),Rs.extend(e,t,r),t.myFactory=zl.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",Hl),function(e,t){t.classHierarchy.push("vtkStreamingOpenGLRenderWindow")}(0,t)}const Hl=ht.default.newInstance(jl,"vtkStreamingOpenGLRenderWindow"),Kl={newInstance:Hl,extend:jl};var Zl=r(32198),Xl={Device:{Unknown:0,LeftController:1,RightController:2},Input:{Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4}};function ql(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Yl(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ql(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ql(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var $l=Xl.Device,Ql=Xl.Input,Jl=ht.default.vtkWarningMacro,ec=ht.default.vtkErrorMacro,tc=ht.default.normalizeWheel,rc=ht.default.vtkOnceErrorMacro,nc=new MouseEvent(""),ac={"xr-standard":[Ql.Trigger,Ql.Grip,Ql.TrackPad,Ql.Thumbstick,Ql.A,Ql.B]},oc=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function ic(e){e.cancelable&&e.preventDefault()}function sc(e){var t=Object.create(null);return e.forEach((function(e){var r=e.pointerId,n=e.position;t[r]=n})),t}var lc={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function cc(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lc,r),ht.default.obj(e,t),t._animationExtendedEnd=0,ht.default.event(e,t,"RenderEvent"),oc.forEach((function(r){return ht.default.event(e,t,r)})),ht.default.get(e,t,["initialized","container","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),ht.default.setGet(e,t,["lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),ht.default.moveToProtected(e,t,["view"]),function(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");var r=new Set,n=new Map,a=1;function o(r,n){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(r,n))}function i(e){var r=t._view.getCanvas(),a=r.getBoundingClientRect(),i=r.width/a.width,s=r.height/a.height,l={x:i*(e.clientX-a.left),y:s*(a.height-e.clientY+a.top),z:0};return(n.size<=1||!t.currentRenderer)&&o(l.x,l.y),l}function s(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function l(e){var t=s(e);return Yl({key:e.key,keyCode:e.charCode},t)}function c(e){return e.pointerType||""}function u(){t._view&&t.enabled&&t.enableRender&&(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.start=function(){(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=function(e){ec("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=function(r){t.interactorStyle!==r&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=r,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=function(){t.initialized=!0,e.enable(),e.render()},e.enable=function(){return e.setEnabled(!0)},e.disable=function(){return e.setEnabled(!1)},e.startEventLoop=function(){return Jl("empty event loop")},e.getCurrentRenderer=function(){return t.currentRenderer||o(0,0),t.currentRenderer},e.bindEvents=function(r){t.container=r,r.addEventListener("contextmenu",ic),r.addEventListener("wheel",e.handleWheel),r.addEventListener("DOMMouseScroll",e.handleWheel),r.addEventListener("pointerenter",e.handlePointerEnter),r.addEventListener("pointerleave",e.handlePointerLeave),r.addEventListener("pointermove",e.handlePointerMove,{passive:!1}),r.addEventListener("pointerdown",e.handlePointerDown,{passive:!1}),r.addEventListener("pointerup",e.handlePointerUp),r.addEventListener("pointercancel",e.handlePointerCancel),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),r.style.touchAction="none",r.style.userSelect="none",r.style.webkitTapHighlightColor="rgba(0,0,0,0)"},e.unbindEvents=function(){var r=t.container;r.removeEventListener("contextmenu",ic),r.removeEventListener("wheel",e.handleWheel),r.removeEventListener("DOMMouseScroll",e.handleWheel),r.removeEventListener("pointerenter",e.handlePointerEnter),r.removeEventListener("pointerleave",e.handlePointerLeave),r.removeEventListener("pointermove",e.handlePointerMove,{passive:!1}),r.removeEventListener("pointerdown",e.handlePointerDown,{passive:!1}),r.removeEventListener("pointerup",e.handlePointerUp),r.removeEventListener("pointercancel",e.handlePointerCancel),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),t.container=null,n.clear()},e.handleKeyPress=function(t){var r=l(t);e.keyPressEvent(r)},e.handleKeyDown=function(t){var r=l(t);e.keyDownEvent(r)},e.handleKeyUp=function(t){var r=l(t);e.keyUpEvent(r)},e.handlePointerEnter=function(t){var r=Yl(Yl({},s(t)),{},{position:i(t),deviceType:c(t)});e.pointerEnterEvent(r),"mouse"===r.deviceType&&e.mouseEnterEvent(r)},e.handlePointerLeave=function(t){var r=Yl(Yl({},s(t)),{},{position:i(t),deviceType:c(t)});e.pointerLeaveEvent(r),"mouse"===r.deviceType&&e.mouseLeaveEvent(r)},e.handlePointerDown=function(r){if(!(r.button>2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&&ic(r),r.target.hasPointerCapture(r.pointerId)&&r.target.releasePointerCapture(r.pointerId),t.container.setPointerCapture(r.pointerId),n.has(r.pointerId)&&Jl("[RenderWindowInteractor] duplicate pointerId detected"),n.set(r.pointerId,{pointerId:r.pointerId,position:i(r)}),r.pointerType){case"pen":case"touch":e.handleTouchStart(r);break;default:e.handleMouseDown(r)}},e.handlePointerUp=function(r){if(n.has(r.pointerId))switch(t.preventDefaultOnPointerUp&&ic(r),n.delete(r.pointerId),t.container.releasePointerCapture(r.pointerId),r.pointerType){case"pen":case"touch":e.handleTouchEnd(r);break;default:e.handleMouseUp(r)}},e.handlePointerCancel=function(t){if(n.has(t.pointerId))switch(n.delete(t.pointerId),t.pointerType){case"pen":case"touch":e.handleTouchEnd(t);break;default:e.handleMouseUp(t)}},e.handlePointerMove=function(t){switch(n.has(t.pointerId)&&(n.get(t.pointerId).position=i(t)),t.pointerType){case"pen":case"touch":e.handleTouchMove(t);break;default:e.handleMouseMove(t)}},e.handleMouseDown=function(t){var r=Yl(Yl({},s(t)),{},{position:i(t),deviceType:c(t)});switch(t.button){case 0:e.leftButtonPressEvent(r);break;case 1:e.middleButtonPressEvent(r);break;case 2:e.rightButtonPressEvent(r);break;default:ec("Unknown mouse button pressed: ".concat(t.button))}},e.requestPointerLock=function(){t.container&&t.container.requestPointerLock()},e.exitPointerLock=function(){return document.exitPointerLock()},e.isPointerLocked=function(){return!!t.container&&document.pointerLockElement===t.container},e.handlePointerLockChange=function(){e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=function(n){void 0!==n?r.has(n)?Jl("requester is already registered for animating"):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):ec("undefined requester, can not start animating")},e.extendAnimation=function(n){var a=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,a),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=function(){return t.xrAnimation||null!==t.animationRequest},e.cancelAnimation=function(n){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r.has(n))r.delete(n),t.animationRequest&&0===r.size&&Date.now()>t._animationExtendedEnd&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!a){var o=n&&n.getClassName?n.getClassName():n;Jl("".concat(o," did not request an animation"))}},e.switchToXRAnimation=function(){t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=function(){t.xrAnimation=!1,0!==r.size&&(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=function(r,n,a){r.inputSources.forEach((function(r){var o=null==r.gripSpace?null:n.getPose(r.gripSpace,a),i=r.gamepad,s=r.handedness;if(i){i.index in t.lastGamepadValues||(t.lastGamepadValues[i.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(var l=0;l<i.buttons.length;++l)l in t.lastGamepadValues[i.index][s].buttons||(t.lastGamepadValues[i.index][s].buttons[l]=!1),t.lastGamepadValues[i.index][s].buttons[l]!==i.buttons[l].pressed&&null!=o&&(e.button3DEvent({gamepad:i,position:o.transform.position,orientation:o.transform.orientation,pressed:i.buttons[l].pressed,device:"left"===r.handedness?$l.LeftController:$l.RightController,input:ac[i.mapping]&&ac[i.mapping][l]?ac[i.mapping][l]:Ql.Trigger}),t.lastGamepadValues[i.index][s].buttons[l]=i.buttons[l].pressed),t.lastGamepadValues[i.index][s].buttons[l]&&null!=o&&e.move3DEvent({gamepad:i,position:o.transform.position,orientation:o.transform.orientation,device:"left"===r.handedness?$l.LeftController:$l.RightController})}}))},e.handleMouseMove=function(r){var n=Yl(Yl({},s(r)),{},{position:i(r),deviceType:c(r)});0===t.moveTimeoutID?e.startMouseMoveEvent(n):(e.mouseMoveEvent(n),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((function(){e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=function(){var n=Date.now();t._animationFrameCount++,n-t._animationStartTime>1e3&&t._animationFrameCount>1&&(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),u(),r.size>0||Date.now()<t._animationExtendedEnd?t.animationRequest=requestAnimationFrame(e.handleAnimation):(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render())},e.handleWheel=function(r){ic(r);var n=Yl(Yl(Yl({},tc(r)),s(r)),{},{position:i(r),deviceType:c(r)});0===t.wheelTimeoutID&&(a=Math.abs(n.spinY)>=.3?Math.abs(n.spinY):1),n.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(n),e.mouseWheelEvent(n)):(e.mouseWheelEvent(n),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((function(){e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=function(t){var r=Yl(Yl({},s(t)),{},{position:i(t),deviceType:c(t)});switch(t.button){case 0:e.leftButtonReleaseEvent(r);break;case 1:e.middleButtonReleaseEvent(r);break;case 2:e.rightButtonReleaseEvent(r);break;default:ec("Unknown mouse button released: ".concat(t.button))}},e.handleTouchStart=function(r){var a=(0,pa.Z)(n.values());if(t.recognizeGestures&&a.length>1){var o=sc(n);if(2===a.length){var l=Yl(Yl({},s(nc)),{},{position:a[0].position,deviceType:c(r)});e.leftButtonReleaseEvent(l)}e.recognizeGesture("TouchStart",o)}else if(1===a.length){var u=Yl(Yl({},s(nc)),{},{position:i(r),deviceType:c(r)});e.leftButtonPressEvent(u)}},e.handleTouchMove=function(r){var a=(0,pa.Z)(n.values());if(t.recognizeGestures&&a.length>1){var o=sc(n);e.recognizeGesture("TouchMove",o)}else if(1===a.length){var i=Yl(Yl({},s(nc)),{},{position:a[0].position,deviceType:c(r)});e.mouseMoveEvent(i)}},e.handleTouchEnd=function(r){var a=(0,pa.Z)(n.values());if(t.recognizeGestures)if(0===a.length){var o=Yl(Yl({},s(nc)),{},{position:i(r),deviceType:c(r)});e.leftButtonReleaseEvent(o)}else if(1===a.length){var l=sc(n);e.recognizeGesture("TouchEnd",l);var u=Yl(Yl({},s(nc)),{},{position:a[0].position,deviceType:c(r)});e.leftButtonPressEvent(u)}else{var d=sc(n);e.recognizeGesture("TouchMove",d)}else if(1===a.length){var f=Yl(Yl({},s(nc)),{},{position:a[0].position,deviceType:c(r)});e.leftButtonReleaseEvent(f)}},e.setView=function(r){t._view!==r&&(t._view=r,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=function(){var e,r,n;return null===(e=t._view)||void 0===e||null===(r=e.getRenderable())||void 0===r||null===(n=r.getRenderersByReference())||void 0===n?void 0:n[0]},e.findPokedRenderer=function(){var e,r,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t._view)return null;var o=null===(e=t._view)||void 0===e||null===(r=e.getRenderable())||void 0===r?void 0:r.getRenderers();if(!o||0===o.length)return null;o.sort((function(e,t){return e.getLayer()-t.getLayer()}));for(var i=null,s=null,l=null,c=o.length;c--;){var u=o[c];if(t._view.isInViewport(n,a,u)&&u.getInteractive()){l=u;break}null===i&&u.getInteractive()&&(i=u),null===s&&t._view.isInViewport(n,a,u)&&(s=u)}return null===l&&(l=i),null===l&&(l=s),null==l&&(l=o[0]),l},e.render=function(){e.isAnimating()||t.inRender||u()},oc.forEach((function(r){var n=r.charAt(0).toLowerCase()+r.slice(1);e["".concat(n,"Event")]=function(n){if(t.enabled)if(e.getCurrentRenderer()){var a=Yl({type:r,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer()},n);e["invoke".concat(r)](a)}else rc("\n Can not forward events without a current renderer on the interactor.\n ")}})),e.recognizeGesture=function(r,n){if(!(Object.keys(n).length>2)){if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===r)return Object.keys(n).forEach((function(e){t.startingEventPositions[e]=n[e]})),void(t.currentGesture="Start");if("TouchEnd"===r)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});var a=0,o=[],i=[];Object.keys(n).forEach((function(e){o[a]=n[e],i[a]=t.startingEventPositions[e],a++}));var s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((o[0].x-o[1].x)*(o[0].x-o[1].x)+(o[0].y-o[1].y)*(o[0].y-o[1].y)),c=(0,Mr.A)(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=(0,Mr.A)(Math.atan2(o[1].y-o[0].y,o[1].x-o[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)<Math.abs(d)&&(d=u-c);var f=[];if(f[0]=(o[0].x-i[0].x+o[1].x-i[1].x)/2,f[1]=(o[0].y-i[0].y+o[1].y-i[1].y)/2,"TouchMove"===r)if("Start"===t.currentGesture){var p=.01*Math.sqrt(t.container.clientWidth*t.container.clientWidth+t.container.clientHeight*t.container.clientHeight);p<15&&(p=15);var g=Math.abs(l-s),m=3.1415926*l*Math.abs(d)/360,h=Math.sqrt(f[0]*f[0]+f[1]*f[1]);if(g>p&&g>m&&g>h){t.currentGesture="Pinch";var v={scale:1,touches:n};e.startPinchEvent(v)}else if(m>p&&m>h){t.currentGesture="Rotate";var y={rotation:0,touches:n};e.startRotateEvent(y)}else if(h>p){t.currentGesture="Pan";var b={translation:[0,0],touches:n};e.startPanEvent(b)}}else{if("Rotate"===t.currentGesture){var T={rotation:d,touches:n};e.rotateEvent(T)}if("Pinch"===t.currentGesture){var C={scale:l/s,touches:n};e.pinchEvent(C)}if("Pan"===t.currentGesture){var x={translation:f,touches:n};e.panEvent(x)}}}},e.handleVisibilityChange=function(){t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=function(e){t._forcedRenderer=!!e,t.currentRenderer=e};var d=e.delete;e.delete=function(){for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),t.container&&e.unbindEvents(),d()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}(e,t)}var uc=Yl({newInstance:ht.default.newInstance(cc,"vtkRenderWindowInteractor"),extend:cc,handledEvents:oc},Xl),dc=r(23834),fc=r(16623);const pc={background:[0,0,0],container:null};function gc(e,t,r={}){Object.assign(t,pc,r),ht.default.obj(e,t),ht.default.get(e,t,["renderWindow","openGLRenderWindow","interactor","container"]),ht.default.event(e,t,"resize"),function(e,t){const r=e.invokeResize;delete e.invokeResize,t.renderWindow=fi.newInstance(),t.rendererMap={},t.openGLRenderWindow=Kl.newInstance(),t.renderWindow.addView(t.openGLRenderWindow),t.interactor=uc.newInstance(),t.interactor.setView(t.openGLRenderWindow),t.interactor.initialize(),e.addRenderer=({viewport:e,id:r,background:n})=>{const a=Zl.ZP.newInstance({viewport:e,background:n||t.background});t.renderWindow.addRenderer(a),t.rendererMap[r]=a},e.destroy=()=>{t.renderWindow.getInteractor().delete()},e.removeRenderer=r=>{const n=e.getRenderer(r);t.renderWindow.removeRenderer(n),n.delete(),delete t.rendererMap[r]},e.getRenderer=e=>t.rendererMap[e],e.getRenderers=()=>{const{rendererMap:e}=t;return Object.keys(e).map((t=>({id:t,renderer:e[t]})))},e.resize=()=>{if(t.container){const{width:e,height:n}=t.container;t.openGLRenderWindow.setSize(Math.floor(e),Math.floor(n)),r(),t.renderWindow.render()}},e.setContainer=e=>{t.container=e,t.openGLRenderWindow.setContainer(t.container)},e.delete=ht.default.chain(e.setContainer,e.destroy,t.openGLRenderWindow.delete,e.delete),e.resize()}(e,t)}const mc={newInstance:ht.default.newInstance(gc),extend:gc};var hc=r(16595),vc=r(44031);function yc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function bc(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?yc(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):yc(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Tc=x.BlendMode,Cc=x.FilterMode;var xc={createRadonTransferFunction:function(e,t,r,n,a){var o=null;return a?(o=a).removeAllPoints():o=vc.ZP.newInstance(),o.addPointLong(-1024,0,1,1),o.addPoint(e,t),o.addPoint(r,n),o}};var Sc={bounds:[1,-1,1,-1,1,-1],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,blendMode:Tc.COMPOSITE_BLEND,ipScalarRange:[-1e6,1e6],filterMode:Cc.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,volumeShadowSamplingDistFactor:5,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7};function Pc(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sc,r),hc.Z.extend(e,t,r),ht.default.setGet(e,t,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","blendMode","filterMode","preferSizeOverAccuracy","computeNormalFromOpacity","volumetricScatteringBlending","globalIlluminationReach","volumeShadowSamplingDistFactor","anisotropy","localAmbientOcclusion","LAOKernelSize","LAOKernelRadius"]),ht.default.setGetArray(e,t,["ipScalarRange"],2),ht.default.event(e,t,"lightingActivated"),function(e,t){t.classHierarchy.push("vtkVolumeMapper");var r=bc({},e);e.getBounds=function(){var r=e.getInputData();return r?(t.static||e.update(),t.bounds=r.getBounds()):t.bounds=(0,Mr.N)(),t.bounds},e.update=function(){e.getInputData()},e.setBlendModeToComposite=function(){e.setBlendMode(Tc.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=function(){e.setBlendMode(Tc.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=function(){e.setBlendMode(Tc.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=function(){e.setBlendMode(Tc.AVERAGE_INTENSITY_BLEND)},e.setBlendModeToAdditiveIntensity=function(){e.setBlendMode(Tc.ADDITIVE_INTENSITY_BLEND)},e.setBlendModeToRadonTransform=function(){e.setBlendMode(Tc.RADON_TRANSFORM_BLEND)},e.getBlendModeAsString=function(){return ht.default.enumToString(Tc,t.blendMode)},e.setAverageIPScalarRange=function(t,r){console.warn("setAverageIPScalarRange is deprecated use setIpScalarRange"),e.setIpScalarRange(t,r)},e.getFilterModeAsString=function(){return ht.default.enumToString(Cc,t.filterMode)},e.setFilterModeToOff=function(){e.setFilterMode(Cc.OFF)},e.setFilterModeToNormalized=function(){e.setFilterMode(Cc.NORMALIZED)},e.setFilterModeToRaw=function(){e.setFilterMode(Cc.RAW)},e.setGlobalIlluminationReach=function(e){return r.setGlobalIlluminationReach((0,Mr.C)(e,0,1))},e.setVolumetricScatteringBlending=function(e){return r.setVolumetricScatteringBlending((0,Mr.C)(e,0,1))},e.setVolumeShadowSamplingDistFactor=function(e){return r.setVolumeShadowSamplingDistFactor(e>=1?e:1)},e.setAnisotropy=function(e){return r.setAnisotropy((0,Mr.C)(e,-.99,.99))},e.setLAOKernelSize=function(e){return r.setLAOKernelSize((0,Mr.J)((0,Mr.C)(e,1,32)))},e.setLAOKernelRadius=function(e){return r.setLAOKernelRadius(e>=1?e:1)}}(e,t)}var wc=bc({newInstance:ht.default.newInstance(Pc,"vtkVolumeMapper"),extend:Pc},xc);const Oc={scalarTexture:null};function Ic(e,t,r={}){Object.assign(t,Oc,r),wc.extend(e,t,r),ht.default.setGet(e,t,["scalarTexture"]),function(e,t){t.classHierarchy.push("vtkSharedVolumeMapper");const r=e.delete;e.delete=()=>{t.scalarTexture=null,r()}}(e,t)}const Ac={newInstance:ht.default.newInstance(Ic,"vtkSharedVolumeMapper"),extend:Ic};const Rc={updatedFrames:[]};function Ec(e,t,r={}){Object.assign(t,Rc,r),Yr.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkStreamingOpenGLTexture");const r=e.create3DFilterableFromRaw;e.create3DFilterableFromRaw=(e,n,a,o,i,s,l)=>{t.inputDataType=i,t.inputNumComps=o,r(e,n,a,o,i,s,l)},e.update3DFromRaw=r=>{const{updatedFrames:n}=t;if(!n.length)return;let a,o;if(t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),r instanceof Uint8Array)a=1,o=Uint8Array;else if(r instanceof Int16Array)a=2,o=Int16Array;else if(r instanceof Uint16Array)a=2,o=Uint16Array;else{if(!(r instanceof Float32Array))throw new Error("No support for given TypedArray.");a=4,o=Float32Array}for(let e=0;e<n.length;e++)n[e]&&t.fillSubImage3D(r,e,a,o);return t.updatedFrames=[],t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},t.fillSubImage3D=(e,r,n,a)=>{const o=e.buffer,i=r*(t.width*t.height*t.components*n),s=t.width*t.components,l=t.context,c=l.getParameter(l.MAX_TEXTURE_SIZE);let u=Math.floor(n*c/t.width);u=Math.min(u,t.height);const{useNorm16Texture:d,preferSizeOverAccuracy:f}=Qe().rendering;d&&!f&&(u=1);const p=s*u,g=p*n,m=Math.floor(t.height/u),h=t.height%u,v=s*h;for(let e=0;e<m;e++){const n=e*u;let s=new a(o,i+e*g,p);if(t.useHalfFloat&&(a===Uint16Array||a===Int16Array)){for(let e=0;e<s.length;e++)s[e]=Br.toHalf(s[e]);a===Int16Array&&(s=new Uint16Array(s))}l.texSubImage3D(t.target,0,0,n,r,t.width,u,1,t.format,t.openGLDataType,s)}if(0!==h){const e=m*u,n=new a(o,i+m*g,v);l.texSubImage3D(t.target,0,0,e,r,t.width,h,1,t.format,t.openGLDataType,n)}},e.getTextureParameters=()=>({width:t.width,height:t.height,depth:t.depth,numComps:t.inputNumComps,dataType:t.inputDataType}),e.setUpdatedFrame=e=>{t.updatedFrames[e]=!0}}(e,t)}const Mc={newInstance:ht.default.newInstance(Ec,"vtkStreamingOpenGLTexture"),extend:Ec};var Dc=r(34535),Vc=r(32899);const Lc={isPerformingCoordinateTransformation:!1};function _c(e,t,r={}){Object.assign(t,Lc,r),Dc.ZP.extend(e,t,r),ht.default.setGet(e,t,["isPerformingCoordinateTransformation"]),function(e,t){t.classHierarchy.push("vtkSlabCamera");const r=ot._E.identity(new Float64Array(16)),n=new Float64Array(3);e.getProjectionMatrix=(e,a,o)=>{const i=ot._E.create();if(t.projectionMatrix){const e=1/t.physicalScale;return ot.R3.set(n,e,e,e),ot._E.copy(i,t.projectionMatrix),ot._E.scale(i,i,n),ot._E.transpose(i,i),i}ot._E.identity(r);let s=t.clippingRange[0],l=t.clippingRange[1];t.isPerformingCoordinateTransformation&&(s=t.distance,l=t.distance+.1);const c=l-s,u=[s+(a+1)*c/2,s+(o+1)*c/2];if(t.parallelProjection){const n=t.parallelScale*e,a=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*a,l=(t.windowCenter[1]+1)*a;ot._E.ortho(r,o,i,s,l,u[0],u[1]),ot._E.transpose(r,r)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const n=Math.tan(Vc.ZP.radiansFromDegrees(t.viewAngle)/2);let a,o;!0===t.useHorizontalViewAngle?(a=s*n,o=s*n/e):(a=s*n*e,o=s*n);const i=(t.windowCenter[0]-1)*a,l=(t.windowCenter[0]+1)*a,c=(t.windowCenter[1]-1)*o,d=(t.windowCenter[1]+1)*o,f=u[0],p=u[1];r[0]=2*f/(l-i),r[5]=2*f/(d-c),r[2]=(i+l)/(l-i),r[6]=(c+d)/(d-c),r[10]=-(f+p)/(p-f),r[14]=-1,r[11]=-2*f*p/(p-f),r[15]=0}}return ot._E.copy(i,r),i}}(e,t)}const Nc={newInstance:ht.default.newInstance(_c,"vtkSlabCamera"),extend:_c};class Bc{constructor(e){this._imageIdsIndexMap=new Map,this._imageURIsIndexMap=new Map,this.isPreScaled=!1,this.volumeId=e.volumeId,this.metadata=e.metadata,this.dimensions=e.dimensions,this.spacing=e.spacing,this.origin=e.origin,this.direction=e.direction,this.imageData=e.imageData,this.scalarData=e.scalarData,this.sizeInBytes=e.sizeInBytes,this.vtkOpenGLTexture=Mc.newInstance(),this.numVoxels=this.dimensions[0]*this.dimensions[1]*this.dimensions[2],e.scaling&&(this.scaling=e.scaling),e.referencedVolumeId&&(this.referencedVolumeId=e.referencedVolumeId)}get imageIds(){return this._imageIds}set imageIds(e){this._imageIds=e,this._reprocessImageIds()}_reprocessImageIds(){this._imageIdsIndexMap.clear(),this._imageURIsIndexMap.clear(),this._imageIds.forEach(((e,t)=>{const r=me(e);this._imageIdsIndexMap.set(e,t),this._imageURIsIndexMap.set(r,t)}))}isDynamicVolume(){return!1}getScalarData(){if((e=this.scalarData)instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)return this.scalarData;var e;throw new Error("Unknow scalar data type")}getImageIdIndex(e){return this._imageIdsIndexMap.get(e)}getImageURIIndex(e){return this._imageURIsIndexMap.get(e)}destroy(){this.imageData.delete(),this.imageData=null,this.scalarData=null,this.vtkOpenGLTexture.releaseGraphicsResources(),this.vtkOpenGLTexture.delete()}}const Fc=Bc;function Uc(e){const{dimensions:t,metadata:r,spacing:n,direction:a,origin:o}=e,{PhotometricInterpretation:i}=r;let s=1;"RGB"===i&&(s=3);const l=Jo.ZP.newInstance(),c={numberOfComponents:s};if(l.setDimensions(t),l.setSpacing(n),l.setDirection(a),l.setOrigin(o),e.isDynamicVolume()){!function(e,t,r){t.forEach(((t,n)=>{const a=re.ZP.newInstance({name:`timePoint-${n}`,values:t,...r});e.getPointData().addArray(a)})),e.getPointData().setActiveScalars("timePoint-0")}(l,e.getScalarDataArrays(),c)}else{!function(e,t,r){const n=re.ZP.newInstance({name:"Pixels",values:t,...r});e.getPointData().setScalars(n)}(l,e.getScalarData(),c)}return l}const kc={};let Gc;function Wc(e,t){const r=e.indexOf(":"),n=e.substring(0,r),a=kc[n];if(null==a){if(void 0!==Gc)return Gc(e,t);throw new Error("loadVolumeFromVolumeLoader: no volume loader for volumeId")}const o=a(e,t);return o.promise.then((function(e){se(J,g.VOLUME_LOADED,{volume:e})}),(function(t){const r={volumeId:e,error:t};se(J,g.VOLUME_LOADED_FAILED,r)})),o}function zc(e,t={imageIds:[]}){if(void 0===e)throw new Error("loadVolume: parameter volumeId must not be undefined");let r=mt.getVolumeLoadObject(e);return void 0!==r?r.promise:(r=Wc(e,t),r.promise.then((e=>(e.imageData=Uc(e),e))))}async function jc(e,t){if(void 0===e)throw new Error("createAndCacheVolume: parameter volumeId must not be undefined");let r=mt.getVolumeLoadObject(e);return void 0!==r||(r=Wc(e,t),r.promise.then((e=>{e.imageData=Uc(e)})),mt.putVolumeLoadObject(e,r).catch((e=>{throw e}))),r.promise}async function Hc(e,t){const r=mt.getVolume(e);if(!r)throw new Error(`Cannot created derived volume: Referenced volume with id ${e} does not exist.`);let{volumeId:n}=t;const{targetBuffer:a}=t;void 0===n&&(n=le());const{metadata:o,dimensions:i,spacing:s,origin:l,direction:c}=r,u=r.getScalarData().length;let d,f;const{useNorm16Texture:p}=Qe().rendering;if(a)if("Float32Array"===a.type)d=4*u,f=Float32Array;else if("Uint8Array"===a.type)d=u,f=Uint8Array;else if(p&&"Uint16Array"===a.type)d=2*u,f=Uint16Array;else{if(!p||"Int16Array"!==a.type)throw new Error("TargetBuffer should be Float32Array or Uint8Array");d=2*u,f=Uint16Array}else d=4*u,f=Float32Array;if(!mt.isCacheable(d))throw new Error(g.CACHE_SIZE_EXCEEDED);let m;if(a?.sharedArrayBuffer){m=new f(new SharedArrayBuffer(d))}else m=new f(u);const h=re.ZP.newInstance({name:"Pixels",numberOfComponents:1,values:m}),v=Jo.ZP.newInstance();v.setDimensions(i),v.setSpacing(s),v.setDirection(c),v.setOrigin(l),v.getPointData().setScalars(h);const y=new Bc({volumeId:n,metadata:ti()(o),dimensions:[i[0],i[1],i[2]],spacing:s,origin:l,direction:c,imageData:v,scalarData:m,sizeInBytes:d,referencedVolumeId:e}),b={promise:Promise.resolve(y)};return await mt.putVolumeLoadObject(n,b),y}function Kc(e,t,r=!1){const{scalarData:n,metadata:a,dimensions:o,spacing:i,origin:s,direction:l}=e;if(!n||!(n instanceof Uint8Array||n instanceof Float32Array||n instanceof Uint16Array||n instanceof Int16Array))throw new Error("To use createLocalVolume you should pass scalarData of type Uint8Array, Uint16Array, Int16Array or Float32Array");void 0===t&&(t=le());const c=mt.getVolume(t);if(c)return c;const u=o[0]*o[1]*o[2],d=n?n.buffer.byteLength:4*u;if(!mt.isCacheable(d))throw new Error(g.CACHE_SIZE_EXCEEDED);const f=re.ZP.newInstance({name:"Pixels",numberOfComponents:1,values:n}),p=Jo.ZP.newInstance();p.setDimensions(o),p.setSpacing(i),p.setDirection(l),p.setOrigin(s),p.getPointData().setScalars(f);const m=new Bc({volumeId:t,metadata:ti()(a),dimensions:[o[0],o[1],o[2]],spacing:i,origin:s,direction:l,imageData:p,scalarData:n,sizeInBytes:d});if(r)return m;const h={promise:Promise.resolve(m)};return mt.putVolumeLoadObject(t,h),m}function Zc(e,t){kc[e]=t}function Xc(){return Object.keys(kc)}function qc(e){const t=Gc;return Gc=e,t}const Yc=1+H,$c=e=>!!Xc().find((t=>{return r=e.volumeId,(n=t)===r.substring(0,Math.min(r.length,n.length));var r,n}));function Qc(e,t,r){const{viewPlaneNormal:n}=t,a=e.getActors();if(!a||!a.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const o=a.map((e=>{const t=e.referenceId??e.uid;return mt.getVolume(t)})).filter((e=>!!e));if(r){const e=o.findIndex((e=>e.volumeId===r)),t=o[e],{uid:i}=a[e];return{imageVolume:t,spacingInNormalDirection:dt(t,n),actorUID:i}}if(!o.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const i={spacingInNormalDirection:1/0,imageVolume:null,actorUID:null},s=o.find($c);for(let e=0;e<o.length;e++){const t=o[e];if(s&&!$c(t))continue;const r=dt(t,n);r*Yc<i.spacingInNormalDirection&&(i.spacingInNormalDirection=r,i.imageVolume=t,i.actorUID=a[e].uid)}return i}function Jc(e){const t=e.getMapper().getInputData(),r=t.extentToBounds(t.getExtent());return[[r[0],r[2],r[4]],[r[0],r[2],r[5]],[r[0],r[3],r[4]],[r[0],r[3],r[5]],[r[1],r[2],r[4]],[r[1],r[2],r[5]],[r[1],r[3],r[4]],[r[1],r[3],r[5]]]}function eu(e,t){return!(e[0]<0||e[0]>=t[0]||e[1]<0||e[1]>=t[1]||e[2]<0||e[2]>=t[2])}const tu=function(e,t){let r;r=t?[Le(t)]:_e();const n=[];return r.forEach((t=>{const r=e.getActors(),a=t.getVolumeViewports();for(const e of a){const t=e.getActors();if(t.length!==r.length)continue;r.every((({uid:e})=>t.find((t=>e===t.uid))))&&n.push(e)}})),n};const ru=function(e,t){let r;r=t?[Le(t)]:_e();const n=[];return r.forEach((t=>{const r=t.getVolumeViewports().filter((t=>t.hasVolumeId(e)));n.push(...r)})),n};function nu(e,t){return e.worldToIndex(t).map(Math.round)}class au{constructor(e){this.numRequests={interaction:0,thumbnail:0,prefetch:0},this.id=e||le(),this.requestPool={interaction:{0:[]},thumbnail:{0:[]},prefetch:{0:[]}},this.grabDelay=5,this.awake=!1,this.numRequests={interaction:0,thumbnail:0,prefetch:0},this.maxNumRequests={interaction:6,thumbnail:6,prefetch:5}}setMaxSimultaneousRequests(e,t){this.maxNumRequests[e]=t}getMaxSimultaneousRequests(e){return this.maxNumRequests[e]}destroy(){this.timeoutHandle&&window.clearTimeout(this.timeoutHandle)}addRequest(e,t,r,n=0){const a={requestFn:e,type:t,additionalDetails:r};void 0===this.requestPool[t][n]&&(this.requestPool[t][n]=[]),this.requestPool[t][n].push(a),this.awake?t===h.Interaction&&this.startGrabbing():(this.awake=!0,this.startGrabbing())}filterRequests(e){Object.keys(this.requestPool).forEach((t=>{const r=this.requestPool[t];Object.keys(r).forEach((t=>{r[t]=r[t].filter((t=>e(t)))}))}))}clearRequestStack(e){if(!this.requestPool[e])throw new Error(`No category for the type ${e} found`);this.requestPool[e]={0:[]}}sendRequests(e){const t=this.maxNumRequests[e]-this.numRequests[e];for(let r=0;r<t;r++){const t=this.getNextRequest(e);if(null===t)return!1;t&&(this.numRequests[e]++,this.awake=!0,t.requestFn().finally((()=>{this.numRequests[e]--,this.startAgain()})))}return!0}getNextRequest(e){const t=this.getSortedPriorityGroups(e);for(const r of t)if(this.requestPool[e][r].length)return this.requestPool[e][r].shift();return null}startGrabbing(){const e=this.sendRequests(h.Interaction),t=this.sendRequests(h.Thumbnail),r=this.sendRequests(h.Prefetch);e||t||r||(this.awake=!1)}startAgain(){this.awake&&(void 0!==this.grabDelay?this.timeoutHandle||(this.timeoutHandle=window.setTimeout((()=>{this.timeoutHandle=null,this.startGrabbing()}),this.grabDelay)):this.startGrabbing())}getSortedPriorityGroups(e){const t=Object.keys(this.requestPool[e]).map(Number).filter((t=>this.requestPool[e][t].length)).sort(((e,t)=>e-t));return t}getRequestPool(){return this.requestPool}}new au;const ou=new au("imageLoadPool");ou.grabDelay=0,ou.setMaxSimultaneousRequests(h.Interaction,1e3),ou.setMaxSimultaneousRequests(h.Thumbnail,1e3),ou.setMaxSimultaneousRequests(h.Prefetch,1e3);const iu=ou,su={};let lu;function cu(e,t){let r=mt.getImageLoadObject(e);if(void 0!==r)return r;const n=mt.getVolumeContainingImageId(e);if(n&&n.volume.loadStatus.loaded){const{volume:t,imageIdIndex:a}=n;return r=t.convertToCornerstoneImage(e,a),r}const a=mt.getCachedImageBasedOnImageURI(e);return a?(r=a.imageLoadObject,r):(r=function(e,t){const r=e.indexOf(":"),n=e.substring(0,r),a=su[n];if(null==a){if(void 0!==lu)return lu(e);throw new Error("loadImageFromImageLoader: no image loader for imageId")}const o=a(e,t);return o.promise.then((function(e){se(J,g.IMAGE_LOADED,{image:e})}),(function(t){const r={imageId:e,error:t};se(J,g.IMAGE_LOAD_FAILED,r)})),o}(e,t),r)}function uu(e,t={priority:0,requestType:"prefetch"}){if(void 0===e)throw new Error("loadImage: parameter imageId must not be undefined");return cu(e,t).promise}function du(e,t={priority:0,requestType:"prefetch"}){if(void 0===e)throw new Error("loadAndCacheImage: parameter imageId must not be undefined");const r=cu(e,t);return mt.getImageLoadObject(e)||mt.putImageLoadObject(e,r).catch((e=>{console.warn(e)})),r.promise}function fu(e,t={priority:0,requestType:"prefetch"}){if(!e||0===e.length)throw new Error("loadAndCacheImages: parameter imageIds must be list of image Ids");return e.map((e=>du(e,t)))}function pu(e){iu.filterRequests((({additionalDetails:t})=>!t.imageId||t.imageId!==e));const t=mt.getImageLoadObject(e);t&&t.cancelFn()}function gu(e){e.forEach((e=>pu(e)))}function mu(){const e=iu.getRequestPool();Object.keys(e).forEach((t=>{const r=e[t];Object.keys(r).forEach((e=>{const t=r[e].pop(),{imageId:n,volumeId:a}=t.additionalDetails;let o;n?o=mt.getImageLoadObject(n):a&&(o=mt.getVolumeLoadObject(a)),o&&o.cancel()})),iu.clearRequestStack(t)}))}function hu(e,t){su[e]=t}function vu(e){const t=lu;return lu=e,t}function yu(){Object.keys(su).forEach((e=>delete su[e])),lu=void 0}const bu="viewport-element",Tu="cornerstone-canvas";function Cu(e){const t=`canvas.${Tu}`,r=`div.${bu}`,n=e.querySelector(r)||function(e){const t=document.createElement("div");return t.style.position="relative",t.style.width="100%",t.style.height="100%",t.classList.add(bu),e.appendChild(t),t}(e);return n.querySelector(t)||function(e){const t=document.createElement("canvas");return t.style.position="absolute",t.style.width="100%",t.style.height="100%",t.classList.add(Tu),e.appendChild(t),t}(n)}const xu=e=>e.preScale?.scaled&&e.preScale.scalingParameters?.suvbw;function Su(e,t,r=void 0,n="_thumbnails"){if(!(e&&e instanceof HTMLCanvasElement))throw new Error("canvas element is required");const a=`renderGPUViewport-${t.imageId}`,o=t.imageId,i=document.createElement("div");i.style.width=`${e.width}px`,i.style.height=`${e.height}px`,i.style.visibility="hidden",i.style.position="absolute";const s=window.devicePixelRatio||1,l=e.width,c=e.height;e.width=l*s,e.height=c*s,e.style.width=`${l}px`,e.style.height=`${c}px`,document.body.appendChild(i);const u=a.split(":").join("-");i.setAttribute("viewport-id-for-remove",u);const d=Le(n)||new ip(n);let f=d.getViewport(a);if(!f){const e={viewportId:a,type:y.STACK,element:i,defaultOptions:{suppressEvents:!0}};d.enableElement(e),f=d.getViewport(a)}return new Promise((n=>{let s=!1;const l=t=>{if(s)return;const r=Cu(i);e.getContext("2d").drawImage(r,0,0,r.width,r.height,0,0,e.width,e.height),s=!0,i.removeEventListener(g.IMAGE_RENDERED,l),setTimeout((()=>{d.disableElement(a);document.querySelectorAll(`[viewport-id-for-remove="${u}"]`).forEach((e=>{e.remove()}))}),0),n(o)};i.addEventListener(g.IMAGE_RENDERED,l),f.renderImageObject(t),f.resetCamera(),"PT"!==r||xu(t)||f.setProperties({voiRange:{lower:t.minPixelValue,upper:t.maxPixelValue}}),f.render()}))}const Pu={viewport:{}};function wu(e,t){if(null==e)throw new Error(t)}function Ou(e,t=null){return wu(e,"getImageSize: parameter image must not be undefined"),wu(e.width,"getImageSize: parameter image must have width"),wu(e.height,"getImageSize: parameter image must have height"),function(e){return!(null==e||0===e||180===e)}(t)?{height:e.width,width:e.height}:{width:e.width,height:e.height}}function Iu(e,t,r=null){wu(e,"getImageScale: parameter canvas must not be undefined"),wu(t,"getImageScale: parameter image must not be undefined");const n=Ou(t,r),a=t.rowPixelSpacing||1,o=t.columnPixelSpacing||1;let i=1,s=1;a<o?s=o/a:i=a/o;const l=e.height/n.height/i,c=e.width/n.width/s;return{verticalScale:l,horizontalScale:c,scaleFactor:Math.min(c,l)}}function Au(e,t,r,n){if(void 0===e)throw new Error("getDefaultViewport: parameter canvas must not be undefined");if(void 0===t)return function(){const e={scale:1,translation:{x:0,y:0},voi:{windowWidth:void 0,windowCenter:void 0},invert:!1,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:void 0,voiLUT:void 0,colormap:void 0,labelmap:!1,displayedArea:{tlhc:{x:1,y:1},brhc:{x:1,y:1},rowPixelSpacing:1,columnPixelSpacing:1,presentationSizeMode:"NONE"}};return Object.assign({},e,Pu.viewport)}();const a=Iu(e,t,0).scaleFactor;let o;return"PT"===r&&t.isPreScaled?o={windowWidth:5,windowCenter:2.5}:void 0!==t.windowWidth&&void 0!==t.windowCenter&&(o={windowWidth:Array.isArray(t.windowWidth)?t.windowWidth[0]:t.windowWidth,windowCenter:Array.isArray(t.windowCenter)?t.windowCenter[0]:t.windowCenter}),{scale:a,translation:{x:0,y:0},voi:o,invert:t.invert,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:t.modalityLUT,modality:r,voiLUT:t.voiLUT,colormap:void 0!==n?n:t.colormap,displayedArea:{tlhc:{x:1,y:1},brhc:{x:t.columns,y:t.rows},rowPixelSpacing:void 0===t.rowPixelSpacing?1:t.rowPixelSpacing,columnPixelSpacing:void 0===t.columnPixelSpacing?1:t.columnPixelSpacing,presentationSizeMode:"NONE"}}}class Ru{constructor(){this.reset()}getMatrix(){return this.m}reset(){this.m=[1,0,0,1,0,0]}clone(){const e=new Ru;return e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5],e}multiply(e){const t=this.m[0]*e[0]+this.m[2]*e[1],r=this.m[1]*e[0]+this.m[3]*e[1],n=this.m[0]*e[2]+this.m[2]*e[3],a=this.m[1]*e[2]+this.m[3]*e[3],o=this.m[0]*e[4]+this.m[2]*e[5]+this.m[4],i=this.m[1]*e[4]+this.m[3]*e[5]+this.m[5];this.m[0]=t,this.m[1]=r,this.m[2]=n,this.m[3]=a,this.m[4]=o,this.m[5]=i}invert(){const e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,r=-this.m[1]*e,n=-this.m[2]*e,a=this.m[0]*e,o=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),i=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);this.m[0]=t,this.m[1]=r,this.m[2]=n,this.m[3]=a,this.m[4]=o,this.m[5]=i}rotate(e){const t=Math.cos(e),r=Math.sin(e),n=this.m[0]*t+this.m[2]*r,a=this.m[1]*t+this.m[3]*r,o=this.m[0]*-r+this.m[2]*t,i=this.m[1]*-r+this.m[3]*t;this.m[0]=n,this.m[1]=a,this.m[2]=o,this.m[3]=i}translate(e,t){this.m[4]+=this.m[0]*e+this.m[2]*t,this.m[5]+=this.m[1]*e+this.m[3]*t}scale(e,t){this.m[0]*=e,this.m[1]*=e,this.m[2]*=t,this.m[3]*=t}transformPoint(e){const t=e[0],r=e[1];return[t*this.m[0]+r*this.m[2]+this.m[4],t*this.m[1]+r*this.m[3]+this.m[5]]}}function Eu(e,t){const r=new Ru;if(!e.viewport.displayedArea)return r;r.translate(e.canvas.width/2,e.canvas.height/2);const n=e.viewport.rotation;0!==n&&r.rotate(n*Math.PI/180);let a=e.viewport.scale,o=e.viewport.scale;const i=e.viewport.displayedArea.brhc.x-(e.viewport.displayedArea.tlhc.x-1),s=e.viewport.displayedArea.brhc.y-(e.viewport.displayedArea.tlhc.y-1);if("NONE"===e.viewport.displayedArea.presentationSizeMode)e.image.rowPixelSpacing<e.image.columnPixelSpacing?a*=e.image.columnPixelSpacing/e.image.rowPixelSpacing:e.image.columnPixelSpacing<e.image.rowPixelSpacing&&(o*=e.image.rowPixelSpacing/e.image.columnPixelSpacing);else if(a=e.viewport.displayedArea.columnPixelSpacing,o=e.viewport.displayedArea.rowPixelSpacing,"SCALE TO FIT"===e.viewport.displayedArea.presentationSizeMode){const t=e.canvas.height/(s*o),r=e.canvas.width/(i*a);a=o=Math.min(r,t),e.viewport.displayedArea.rowPixelSpacing<e.viewport.displayedArea.columnPixelSpacing?a*=e.viewport.displayedArea.columnPixelSpacing/e.viewport.displayedArea.rowPixelSpacing:e.viewport.displayedArea.columnPixelSpacing<e.viewport.displayedArea.rowPixelSpacing&&(o*=e.viewport.displayedArea.rowPixelSpacing/e.viewport.displayedArea.columnPixelSpacing)}return r.scale(a,o),0!==n&&r.rotate(-n*Math.PI/180),r.translate(e.viewport.translation.x,e.viewport.translation.y),0!==n&&r.rotate(n*Math.PI/180),void 0!==t&&r.scale(t,t),e.viewport.hflip&&r.scale(-1,1),e.viewport.vflip&&r.scale(1,-1),r.translate(-i/2,-s/2),r}function Mu(){return window.performance?performance.now():Date.now()}function Du(e,t,r){return r?function(e){const t=Math.max(...e.lut).toString(2).length-8,r=e.lut[0]>>t,n=e.lut[e.lut.length-1]>>t,a=e.firstValueMapped+e.lut.length-1;return function(o){return o<e.firstValueMapped?r:o>=a?n:e.lut[o-e.firstValueMapped]>>t}}(r):function(e,t){return function(r){const n=255*((r-(t-.5))/(e-1)+.5);return Math.min(Math.max(n,0),255)}}(e,t)}function Vu(e,t,r){if(void 0===e)throw new Error("setToPixelCoordinateSystem: parameter enabledElement must not be undefined");if(void 0===t)throw new Error("setToPixelCoordinateSystem: parameter context must not be undefined");const n=Eu(e,r).getMatrix();t.setTransform(n[0],n[1],n[2],n[3],n[4],n[5])}function Lu(e,t){const r=e.renderingTools.lastRenderedImageId,n=e.renderingTools.lastRenderedViewport;return t.imageId!==r||!n||n.windowCenter!==e.viewport.voi.windowCenter||n.windowWidth!==e.viewport.voi.windowWidth||n.invert!==e.viewport.invert||n.rotation!==e.viewport.rotation||n.hflip!==e.viewport.hflip||n.vflip!==e.viewport.vflip||n.modalityLUT!==e.viewport.modalityLUT||n.voiLUT!==e.viewport.voiLUT||n.colormap!==e.viewport.colormap}function _u(e,t){const r=e.renderingTools.renderCanvas;r.width=t.width,r.height=t.height;const n=r.getContext("2d");n.fillStyle="white",n.fillRect(0,0,r.width,r.height);const a=n.getImageData(0,0,t.width,t.height);e.renderingTools.renderCanvasContext=n,e.renderingTools.renderCanvasData=a}function Nu(e){const t=e.image.imageId,r=e.viewport,n=e.image.color;return e.renderingTools.lastRenderedImageId=t,e.renderingTools.lastRenderedIsColor=n,e.renderingTools.lastRenderedViewport={windowCenter:r.voi.windowCenter,windowWidth:r.voi.windowWidth,invert:r.invert,rotation:r.rotation,hflip:r.hflip,vflip:r.vflip,modalityLUT:r.modalityLUT,voiLUT:r.voiLUT,colormap:r.colormap},e.renderingTools}function Bu(e,t){return void 0!==e.cachedLut&&e.cachedLut.windowCenter===t.voi.windowCenter&&e.cachedLut.windowWidth===t.voi.windowWidth&&e.cachedLut.invert===t.invert||(function(e,t,r,n,a){const o=e.maxPixelValue,i=e.minPixelValue,s=Math.min(i,0);if(void 0===e.cachedLut){const t=o-s+1;e.cachedLut={},e.cachedLut.lutArray=new Uint8ClampedArray(t)}const l=e.cachedLut.lutArray,c=Du(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r,a);if(!0===n)for(let e=i;e<=o;e++)l[e+-s]=255-c(e);else for(let e=i;e<=o;e++)l[e+-s]=c(e)}(e,t.voi.windowWidth,t.voi.windowCenter,t.invert),e.cachedLut.windowWidth=t.voi.windowWidth,e.cachedLut.windowCenter=t.voi.windowCenter,e.cachedLut.invert=t.invert),e.cachedLut.lutArray}function Fu(e,t,r){const n=!0===e.renderingTools.lastRenderedIsColor;e.renderingTools.renderCanvas&&n||(e.renderingTools.renderCanvas=document.createElement("canvas"));const a=e.renderingTools.renderCanvas,{windowWidth:o,windowCenter:i}=e.viewport.voi;if((256===o||255===o)&&(128===i||127===i)&&!1===e.viewport.invert&&t.getCanvas&&t.getCanvas())return t.getCanvas();if(!1===Lu(e,t)&&!0!==r)return a;a.width===t.width&&a.height===t.height||_u(e,t);let s=Mu();const l=Bu(t,e.viewport);t.stats=t.stats||{},t.stats.lastLutGenerateTime=Mu()-s;const c=e.renderingTools.renderCanvasData,u=e.renderingTools.renderCanvasContext;return t.rgba?function(e,t,r){let n=Mu();const a=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-n;const o=e.minPixelValue;let i=0,s=0;const l=a.length;if(n=Mu(),o<0)for(;s<l;)r[i++]=t[a[s++]+-o],r[i++]=t[a[s++]+-o],r[i++]=t[a[s++]+-o],r[i++]=a[s++];else for(;s<l;)r[i++]=t[a[s++]],r[i++]=t[a[s++]],r[i++]=t[a[s++]],r[i++]=a[s++];e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-n}(t,l,c.data):function(e,t,r){let n=Mu();const a=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-n;const o=e.minPixelValue;let i=0,s=0;const l=a.length;if(n=Mu(),o<0)for(;s<l;)r[i++]=t[a[s++]+-o],r[i++]=t[a[s++]+-o],r[i]=t[a[s]+-o],s+=2,i+=2;else for(;s<l;)r[i++]=t[a[s++]],r[i++]=t[a[s++]],r[i]=t[a[s]],s+=2,i+=2;e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-n}(t,l,c.data),s=Mu(),u.putImageData(c,0,0),t.stats.lastPutImageDataTime=Mu()-s,a}function Uu(e,t){if(void 0===e)throw new Error("renderColorImage: enabledElement parameter must not be undefined");const r=e.image;if(void 0===r)throw new Error("renderColorImage: image must be loaded before it can be drawn");const n=e.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,e.canvas.width,e.canvas.height),n.imageSmoothingEnabled=!e.viewport.pixelReplication,Vu(e,n);const a=Fu(e,r,t),o=e.viewport.displayedArea.tlhc.x-1,i=e.viewport.displayedArea.tlhc.y-1,s=e.viewport.displayedArea.brhc.x-o,l=e.viewport.displayedArea.brhc.y-i;n.drawImage(a,o,i,s,l,0,0,s,l),e.renderingTools=Nu(e)}function ku(e,t){if(function(e){const t=e.voiLUT&&e.voiLUT.lut&&e.voiLUT.lut.length>0;return t||void 0!==e.voi.windowWidth&&void 0!==e.voi.windowCenter}(e))return;const r=t.maxPixelValue*t.slope+t.intercept,n=t.minPixelValue*t.slope+t.intercept,a=r-n,o=(r+n)/2;void 0===e.voi?e.voi={windowWidth:a,windowCenter:o}:(e.voi.windowWidth=a,e.voi.windowCenter=o)}function Gu(e,t){return!e&&!t||!(!e||!t)&&e.id===t.id}function Wu(e,t,r){return void 0!==e.cachedLut&&e.cachedLut.windowCenter===t.voi.windowCenter&&e.cachedLut.windowWidth===t.voi.windowWidth&&Gu(e.cachedLut.modalityLUT,t.modalityLUT)&&Gu(e.cachedLut.voiLUT,t.voiLUT)&&e.cachedLut.invert===t.invert&&!0!==r||(ku(t,e),function(e,t,r,n,a,o){const i=e.maxPixelValue,s=e.minPixelValue,l=Math.min(s,0);if(void 0===e.cachedLut){const t=i-l+1;e.cachedLut={},e.cachedLut.lutArray=new Uint8ClampedArray(t)}const c=e.cachedLut.lutArray,u=function(e,t,r){return r?function(e){const t=e.lut[0],r=e.lut[e.lut.length-1],n=e.firstValueMapped+e.lut.length;return a=>a<e.firstValueMapped?t:a>=n?r:e.lut[a]}(r):function(e,t){return r=>r*e+t}(e,t)}(e.slope,e.intercept,a),d=Du(t,r,o);if(e.isPreScaled)if(!0===n)for(let e=s;e<=i;e++)c[e+-l]=255-d(e);else for(let e=s;e<=i;e++)c[e+-l]=d(e);else if(!0===n)for(let e=s;e<=i;e++)c[e+-l]=255-d(u(e));else for(let e=s;e<=i;e++)c[e+-l]=d(u(e))}(e,t.voi.windowWidth,t.voi.windowCenter,t.invert,t.modalityLUT,t.voiLUT),e.cachedLut.windowWidth=t.voi.windowWidth,e.cachedLut.windowCenter=t.voi.windowCenter,e.cachedLut.invert=t.invert,e.cachedLut.voiLUT=t.voiLUT,e.cachedLut.modalityLUT=t.modalityLUT),e.cachedLut.lutArray}function zu(e,t,r,n=!0){const a=!0===e.renderingTools.lastRenderedIsColor;e.renderingTools.renderCanvas&&!a||(e.renderingTools.renderCanvas=document.createElement("canvas"),_u(e,t));const o=e.renderingTools.renderCanvas;if(!1===Lu(e,t)&&!0!==r)return o;o.width===t.width&&o.height===t.height||_u(e,t),t.stats=t.stats||{};const i=e.renderingTools.renderCanvasData,s=e.renderingTools.renderCanvasContext;let l=Mu();t.stats.lastLutGenerateTime=Mu()-l;const{viewport:c}=e;if("PT"===c.modality&&t.isPreScaled){const{windowWidth:e,windowCenter:r}=c.voi,n=r-e/2,a=255/(r+e/2-n);let o;o=c.invert?e=>255-(e-n)*a:e=>(e-n)*a,function(e,t,r){let n=Mu();const a=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-n;const o=a.length;let i=3,s=0;for(n=Mu();s<o;)r[i]=t(a[s++]),i+=4;e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-n}(t,o,i.data)}else{const e=Wu(t,c,r);n?function(e,t,r){let n=Mu();const a=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-n;const o=a.length,i=e.minPixelValue;let s=3,l=0;if(n=Mu(),a instanceof Int16Array)if(i<0)for(;l<o;)r[s]=t[a[l++]+-i],s+=4;else for(;l<o;)r[s]=t[a[l++]],s+=4;else if(a instanceof Uint16Array)for(;l<o;)r[s]=t[a[l++]],s+=4;else if(i<0)for(;l<o;)r[s]=t[a[l++]+-i],s+=4;else for(;l<o;)r[s]=t[a[l++]],s+=4;e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-n}(t,e,i.data):function(e,t,r){let n=Mu();const a=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-n;const o=a.length,i=e.minPixelValue;let s,l=0,c=0;if(n=Mu(),a instanceof Int16Array)if(i<0)for(;c<o;)s=t[a[c++]+-i],r[l++]=s,r[l++]=s,r[l++]=s,r[l++]=255;else for(;c<o;)s=t[a[c++]],r[l++]=s,r[l++]=s,r[l++]=s,r[l++]=255;else if(a instanceof Uint16Array)for(;c<o;)s=t[a[c++]],r[l++]=s,r[l++]=s,r[l++]=s,r[l++]=255;else if(i<0)for(;c<o;)s=t[a[c++]+-i],r[l++]=s,r[l++]=s,r[l++]=s,r[l++]=255;else for(;c<o;)s=t[a[c++]],r[l++]=s,r[l++]=s,r[l++]=s,r[l++]=255;e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-n}(t,e,i.data)}return l=Mu(),s.putImageData(i,0,0),t.stats.lastPutImageDataTime=Mu()-l,o}function ju(e,t){if(void 0===e)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=e.image;if(void 0===r)throw new Error("drawImage: image must be loaded before it can be drawn");const n=e.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,e.canvas.width,e.canvas.height),n.imageSmoothingEnabled=!e.viewport.pixelReplication,Vu(e,n);const a=zu(e,r,t),o=e.viewport.displayedArea.tlhc.x-1,i=e.viewport.displayedArea.tlhc.y-1,s=e.viewport.displayedArea.brhc.x-o,l=e.viewport.displayedArea.brhc.y-i;n.drawImage(a,o,i,s,l,0,0,s,l),e.renderingTools=Nu(e)}function Hu(e,t,r){if(e>1)throw new Error("HSVToRGB expects hue < 1");const n=[];if(0===t)return n[0]=r,n[1]=r,n[2]=r,n;const a=Math.floor(6*e),o=6*e-a,i=r*(1-t),s=r*(1-t*o),l=r*(1-t*(1-o));switch(a){case 0:case 6:n[0]=r,n[1]=l,n[2]=i;break;case 1:n[0]=s,n[1]=r,n[2]=i;break;case 2:n[0]=i,n[1]=r,n[2]=l;break;case 3:n[0]=i,n[1]=s,n[2]=r;break;case 4:n[0]=l,n[1]=i,n[2]=r;break;case 5:n[0]=r,n[1]=i,n[2]=s}return n}const Ku=class{constructor(){this.NumberOfColors=256,this.Ramp="linear",this.TableRange=[0,255],this.HueRange=[0,.66667],this.SaturationRange=[1,1],this.ValueRange=[1,1],this.AlphaRange=[1,1],this.NaNColor=[128,0,0,255],this.BelowRangeColor=[0,0,0,255],this.UseBelowRangeColor=!0,this.AboveRangeColor=[255,255,255,255],this.UseAboveRangeColor=!0,this.InputRange=[0,255],this.Table=[]}setNumberOfTableValues(e){this.NumberOfColors=e}setRamp(e){this.Ramp=e}setTableRange(e,t){this.TableRange[0]=e,this.TableRange[1]=t}setHueRange(e,t){this.HueRange[0]=e,this.HueRange[1]=t}setSaturationRange(e,t){this.SaturationRange[0]=e,this.SaturationRange[1]=t}setValueRange(e,t){this.ValueRange[0]=e,this.ValueRange[1]=t}setRange(e,t){this.InputRange[0]=e,this.InputRange[1]=t}setAlphaRange(e,t){this.AlphaRange[0]=e,this.AlphaRange[1]=t}getColor(e){return this.mapValue(e)}build(e){if(this.Table.length>1&&!e)return;this.Table=[];const t=this.NumberOfColors-1;let r,n,a,o;t?(r=(this.HueRange[1]-this.HueRange[0])/t,n=(this.SaturationRange[1]-this.SaturationRange[0])/t,a=(this.ValueRange[1]-this.ValueRange[0])/t,o=(this.AlphaRange[1]-this.AlphaRange[0])/t):r=n=a=o=0;for(let e=0;e<=t;e++){const t=this.HueRange[0]+e*r,i=this.SaturationRange[0]+e*n,s=this.ValueRange[0]+e*a,l=this.AlphaRange[0]+e*o,c=Hu(t,i,s),u=[0,0,0,0];switch(this.Ramp){case"scurve":u[0]=Math.floor(127.5*(1+Math.cos((1-c[0])*Math.PI))),u[1]=Math.floor(127.5*(1+Math.cos((1-c[1])*Math.PI))),u[2]=Math.floor(127.5*(1+Math.cos((1-c[2])*Math.PI))),u[3]=Math.floor(255*l);break;case"linear":u[0]=Math.floor(255*c[0]+.5),u[1]=Math.floor(255*c[1]+.5),u[2]=Math.floor(255*c[2]+.5),u[3]=Math.floor(255*l+.5);break;case"sqrt":u[0]=Math.floor(255*Math.sqrt(c[0])+.5),u[1]=Math.floor(255*Math.sqrt(c[1])+.5),u[2]=Math.floor(255*Math.sqrt(c[2])+.5),u[3]=Math.floor(255*Math.sqrt(l)+.5);break;default:throw new Error(`Invalid Ramp value (${this.Ramp})`)}this.Table.push(u)}this.buildSpecialColors()}buildSpecialColors(){const e=this.NumberOfColors,t=e+0,r=e+1,n=e+2;this.UseBelowRangeColor||0===e?this.Table[t]=this.BelowRangeColor:this.Table[t]=this.Table[0],this.UseAboveRangeColor||0===e?this.Table[r]=this.AboveRangeColor:this.Table[r]=this.Table[e-1],this.Table[n]=this.NaNColor}mapValue(e){const t=this.getIndex(e);if(t<0)return this.NaNColor;if(0===t){if(this.UseBelowRangeColor&&e<this.TableRange[0])return this.BelowRangeColor}else if(t===this.NumberOfColors-1&&this.UseAboveRangeColor&&e>this.TableRange[1])return this.AboveRangeColor;return this.Table[t]}getIndex(e){const t={Range:[],MaxIndex:this.NumberOfColors-1,Shift:-this.TableRange[0],Scale:1};if(this.TableRange[1]<=this.TableRange[0]?t.Scale=Number.MAX_VALUE:t.Scale=t.MaxIndex/(this.TableRange[1]-this.TableRange[0]),t.Range[0]=this.TableRange[0],t.Range[1]=this.TableRange[1],isNaN(e))return-1;let r=function(e,t){let r;return r=e<t.Range[0]?t.MaxIndex+0+1.5:e>t.Range[1]?t.MaxIndex+1+1.5:(e+t.Shift)*t.Scale,Math.floor(r)}(e,t);return r===this.NumberOfColors+0?r=0:r===this.NumberOfColors+1&&(r=this.NumberOfColors-1),r}setTableValue(e,t){if(5===arguments.length&&(t=Array.prototype.slice.call(arguments,1)),e<0)throw new Error(`Can't set the table value for negative index (${e})`);e>=this.NumberOfColors&&new Error(`Index ${e} is greater than the number of colors ${this.NumberOfColors}`),this.Table[e]=t,0!==e&&e!==this.NumberOfColors-1||this.buildSpecialColors()}},Zu=[0,0,0,0];function Xu(e,t){let r=0,n=e.length-1;for(;r<=n;){const a=r+Math.floor((n-r)/2),o=e[a];if(o===t)return a;t<o?n=a-1:r=a+1}return r}function qu(e,t,r){let n;const a=[],o=[],i=[],s=[];for(r=null===r?1:r,n=0;n<t.length;n++){const r=t[n];a.push((e-1)*r[0]),o.push(r[1]),i.push(r[1])}const l=function(e,t,r){const n=(t-e)/((r=null===r?100:r)-1),a=[];for(;r-- >0;)a.push(e),e+=n;return a[a.length-1]=t,a}(0,1,e);for(n=0;n<e;n++)l[n]=(e-1)*Math.pow(l[n],r);const c=function(e,t){let r;const n=[],a=t.length;for(e.sort((function(e,t){return e-t})),r=0;r<a;r++)n[r]=Xu(e,t[r]);return n}(a,l);for(n=1;n<e-1;n++){const e=c[n],t=(l[n]-a[e-1])/(a[e]-a[e-1]),r=o[e]-i[e-1];s[n]=t*r+i[e-1]}return s[0]=i[0],s[e-1]=o[t.length-1],s}function Yu(e,t){let r=W[e];r||(r=W[e]=t||{name:"",colors:[]}),!r.colors&&r.segmentedData&&(r.colors=function(e,t,r){let n;const a=[];r=null===r?1:r;const o=qu(t=null===t?256:t,e.red,r),i=qu(t,e.green,r),s=qu(t,e.blue,r);for(n=0;n<t;n++){const e=[Math.round(255*o[n]),Math.round(255*i[n]),Math.round(255*s[n]),255];a.push(e)}return a}(r.segmentedData,r.numColors,r.gamma));const n={getId:()=>e,getColorSchemeName:()=>r.name,setColorSchemeName(e){r.name=e},getNumberOfColors:()=>r.colors.length,setNumberOfColors(e){for(;r.colors.length<e;)r.colors.push(Zu);r.colors.length=e},getColor(e){return this.isValidIndex(e)?r.colors[e]:Zu},getColorRepeating(e){const t=r.colors.length;return e=t?e%t:0,this.getColor(e)},setColor(e,t){this.isValidIndex(e)&&(r.colors[e]=t)},addColor(e){r.colors.push(e)},insertColor(e,t){this.isValidIndex(e)&&r.colors.splice(e,1,t)},removeColor(e){this.isValidIndex(e)&&r.colors.splice(e,1)},clearColors(){r.colors=[]},buildLookupTable(e){if(!e)return;const t=r.colors.length;e.setNumberOfTableValues(t);for(let n=0;n<t;n++)e.setTableValue(n,r.colors[n])},createLookupTable(){const e=new Ku;return this.buildLookupTable(e),e},isValidIndex:e=>e>=0&&e<r.colors.length};return n}const $u=function(e,t,r,n){let a=Mu();const o=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-a;const i=o.length,s=e.minPixelValue;let l,c,u,d=0,f=0;if(a=Mu(),u=r instanceof Ku?r.Table:r,s<0)for(;f<i;)l=t[o[f++]+-s],c=u[l],n[d++]=c[0],n[d++]=c[1],n[d++]=c[2],n[d++]=c[3];else for(;f<i;)l=t[o[f++]],c=u[l],n[d++]=c[0],n[d++]=c[1],n[d++]=c[2],n[d++]=c[3];e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-a};const Qu=function(e,t,r,n){let a=Mu();const o=e.getPixelData();e.stats.lastGetPixelDataTime=Mu()-a;const i=o.length,s=e.minPixelValue;let l,c,u,d=0,f=0;if(a=Mu(),u=r instanceof Ku?r.Table:r,s<0)for(;f<i;)l=t(o[f++]+-s),c=u[l],n[d++]=c[0],n[d++]=c[1],n[d++]=c[2],n[d++]=c[3];else for(;f<i;)l=t(o[f++]),c=u[l],n[d++]=c[0],n[d++]=c[1],n[d++]=c[2],n[d++]=c[3];e.stats.lastStoredPixelDataToCanvasImageDataTime=Mu()-a};function Ju(e,t,r){return Math.max(t,Math.min(r,e))}function ed(e,t){if(void 0===e)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=e.image;if(void 0===r)throw new Error("drawImage: image must be loaded before it can be drawn");const n=e.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,e.canvas.width,e.canvas.height),n.imageSmoothingEnabled=!e.viewport.pixelReplication,Vu(e,n);const a=function(e,t,r){e.renderingTools.renderCanvas||(e.renderingTools.renderCanvas=document.createElement("canvas"));const n=e.renderingTools.renderCanvas;let a=e.viewport.colormap||e.options.colormap;if(e.options&&e.options.colormap&&console.warn("enabledElement.options.colormap is deprecated. Use enabledElement.viewport.colormap instead"),a&&"string"==typeof a&&(a=Yu(a)),!a)throw new Error("renderPseudoColorImage: colormap not found.");const o=a.getId();if(!1===Lu(e,t)&&!0!==r&&e.renderingTools.colormapId===o)return n;n.width===t.width&&n.height===t.height||_u(e,t);let i=Mu();e.renderingTools.colorLUT&&!r&&e.renderingTools.colormapId===o||(a.setNumberOfColors(256),e.renderingTools.colorLUT=a.createLookupTable(),e.renderingTools.colormapId=o);const s=e.renderingTools.renderCanvasData,l=e.renderingTools.renderCanvasContext,{viewport:c}=e,u=e.renderingTools.colorLUT;if("PT"===c.modality){const{windowWidth:e,windowCenter:r}=c.voi,n=r-e/2,a=255/(r+e/2-n);let o;o=c.invert?e=>Ju(Math.floor(255-(e-n)*a),0,255):e=>Ju(Math.floor((e-n)*a),0,255),Qu(t,o,u,s.data)}else{const n=Wu(t,e.viewport,r);t.stats=t.stats||{},t.stats.lastLutGenerateTime=Mu()-i,$u(t,n,u,s.data)}return i=Mu(),l.putImageData(s,0,0),t.stats.lastPutImageDataTime=Mu()-i,n}(e,r,t),o=e.viewport.displayedArea.tlhc.x-1,i=e.viewport.displayedArea.tlhc.y-1,s=e.viewport.displayedArea.brhc.x-o,l=e.viewport.displayedArea.brhc.y-i;n.drawImage(a,o,i,s,l,0,0,s,l),e.renderingTools=Nu(e)}function td(e,t){const r=e.image;if(!e.canvas||!e.image)return;const n=Mu();if(r.stats={lastGetPixelDataTime:-1,lastStoredPixelDataToCanvasImageDataTime:-1,lastPutImageDataTime:-1,lastRenderTime:-1,lastLutGenerateTime:-1},r){let n=r.render;n||(n=e.viewport.colormap?ed:r.color?Uu:ju),n(e,t)}const a=Mu()-n;r.stats.lastRenderTime=a,e.invalid=!1,e.needsRedraw=!1}function rd(e,t,r,n){const a={canvas:e,viewport:Au(e,t,r),image:t,renderingTools:{}};a.transform=Eu(a);return new Promise(((e,r)=>{td(a,true),e(t.imageId)}))}function nd(e){const{canvas:t,imageId:r,requestType:n=h.Thumbnail,priority:a=-5,renderingEngineId:o="_thumbnails",useCPURendering:i=!1}=e,s=i?rd:Su;return new Promise(((e,l)=>{function c(r,n){const{modality:a}=ut("generalSeriesModule",n)||{};r.isPreScaled=r.isPreScaled||r.preScale?.scaled,s(t,r,a,o).then((()=>{e(n)}))}function u(e,t){console.error(e,t),l(e)}const{useNorm16Texture:d}=Qe().rendering,f={targetBuffer:{type:d?void 0:"Float32Array"},preScale:{enabled:!0},useRGBA:!!i,requestType:n};iu.addRequest(function(e,t,r){return du(e,r).then((t=>{c.call(this,t,e)}),(t=>{u.call(this,t,e)}))}.bind(null,r,null,f),n,{imageId:r},a)}))}const ad=function(e,t){const r=ut("imagePlaneModule",e);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${e}`);const{columnCosines:n,rowCosines:a,imagePositionPatient:o}=r;let{columnPixelSpacing:i,rowPixelSpacing:s}=r;i||=1,s||=1;const l=ot.R3.create();ot.R3.scaleAndAdd(l,o,n,-i/2),ot.R3.scaleAndAdd(l,l,a,-s/2);const c=ot.R3.create();return ot.R3.sub(c,t,l),[ot.R3.dot(c,a)/s,ot.R3.dot(c,n)/i]};function od(e,t){const r=ut("imagePlaneModule",e);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${e}`);const{columnCosines:n,rowCosines:a,imagePositionPatient:o}=r;let{columnPixelSpacing:i,rowPixelSpacing:s}=r;i||=1,s||=1;const l=ot.R3.create();return ot.R3.scaleAndAdd(l,o,a,s*(t[0]-.5)),ot.R3.scaleAndAdd(l,l,n,i*(t[1]-.5)),Array.from(l)}var id=r(45802);const sd=H*H,ld=e=>Math.abs(Math.abs(e)-1)<sd,cd=(e,t)=>ld(e[t])||ld(e[t+1])||ld(e[t+2]),ud=e=>cd(e,0)&&cd(e,3)&&cd(e,6);function dd(e,t,r){const n=e.getMapper().getInputData();let a;const o=n.getDirection();if(ud(o))a=Jc(e);else{const[e,t,r]=n.getDimensions();a=[[0,0,0],[e-1,0,0],[0,t-1,0],[e-1,t-1,0],[0,0,r-1],[e-1,0,r-1],[0,t-1,r-1],[e-1,t-1,r-1]].map((e=>n.indexToWorld(e)))}const i=id.Z.buildFromDegree().identity().rotateFromDirections(t,[1,0,0]);a.forEach((e=>i.apply(e)));const s=[...r];i.apply(s);const l=s[0];let c=1/0,u=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>u&&(u=t),t<c&&(c=t)}return{min:c,max:u,current:l,actor:e,viewPlaneNormal:t,focalPoint:r}}const fd=function(e,t){const r=e.getCamera(),{focalPoint:n,viewPlaneNormal:a}=r,{spacingInNormalDirection:o,actorUID:i}=Qc(e,r,t);if(!i)throw new Error(`Could not find image volume with id ${t} in the viewport`);const s=e.getActor(i);return s?{sliceRange:dd(s.actor,a,n),spacingInNormalDirection:o,camera:r}:(console.warn("No actor found for with actorUID of",i),null)};const pd=function(e,t){const{sliceRange:r,spacingInNormalDirection:n,camera:a}=fd(e,t),{min:o,max:i,current:s}=r,l=Math.round((i-o)/n),c=(s-o)/(i-o)*l;return{numScrollSteps:l,currentStepIndex:Math.round(c),sliceRangeInfo:{sliceRange:r,spacingInNormalDirection:n,camera:a}}};function gd(e,t,r,n,a,o){const{min:i,max:s,current:l}=r,c=ot.R3.create();ot.R3.sub(c,t,e);const u=Math.round((s-i)/a),d=(l-i)/(s-i)*u;let f=Math.round(d),p=[e[0]-n[0]*d*a,e[1]-n[1]*d*a,e[2]-n[2]*d*a];f+=o,f>u?f=u:f<0&&(f=0);const g=f*a;p=[p[0]+n[0]*g,p[1]+n[1]*g,p[2]+n[2]*g];return{newFocalPoint:p,newPosition:[p[0]+c[0],p[1]+c[1],p[2]+c[2]]}}const md=function(e){const t=e.getCamera(),{spacingInNormalDirection:r,imageVolume:n}=Qc(e,t);if(!n)return;const{viewPlaneNormal:a,focalPoint:o}=t,i=e.getActors().find((e=>e.referenceId===n.volumeId||e.uid===n.volumeId));i||console.warn("No actor found for with actorUID of",n.volumeId);const s=dd(i.actor,a,o),{min:l,max:c,current:u}=s,d=Math.round((c-l)/r)+1;let f=(u-l)/(c-l)*d;return f=Math.floor(f),f>d-1?f=d-1:f<0&&(f=0),{numberOfSlices:d,imageIndex:f}};function hd(e){return vd(e,"vtkVolume")||vd(e,"vtkImageSlice")}function vd(e,t){return!!e.actor.isA(t)}function yd(e,t){let r;r=t?[Ne(t)]:_e();const n=[];return r.forEach((t=>{const r=t.getStackViewports().filter((t=>t.hasImageURI(e))),a=t.getVolumeViewports().filter((t=>t.hasImageURI(e)));n.push(...r,...a)})),n}function bd(e,t){const r=function(e,t){const r=t.getImageIds(),n=t.getCurrentImageIdIndex();if(0===r.length)return null;const a=t=>{const r=function(e){const t=ut("imagePlaneModule",e);if(!(t&&t.rowCosines instanceof Array&&3===t.rowCosines.length&&t.columnCosines instanceof Array&&3===t.columnCosines.length&&t.imagePositionPatient instanceof Array&&3===t.imagePositionPatient.length))return null;const{rowCosines:r,columnCosines:n,imagePositionPatient:a}=t,o=ot.R3.set(ot.R3.create(),...r),i=ot.R3.set(ot.R3.create(),...n),s=ot.R3.cross(ot.R3.create(),o,i);return{rowCosines:r,columnCosines:n,imagePositionPatient:a,planeNormal:s}}(t);if(!r)return null;return Wd(kd(r.planeNormal,r.imagePositionPatient),e)},o={distance:a(r[n])??1/0,index:n},i=r.slice(n+1);for(let e=0;e<i.length;e++){const t=a(i[e]);if(null!==t){if(!(t<=o.distance))break;o.distance=t,o.index=e+n+1}}const s=r.slice(0,n);for(let e=s.length-1;e>=0;e--){const t=a(s[e]);if(null!==t&&t!==o.distance){if(!(t<o.distance))break;o.distance=t,o.index=e}}return o.distance===1/0?null:o}(e,t);return r?r.index:null}const Td={},Cd={add:(e,t)=>{const[r,n]=e,a=`${r}_${n}`;Td[a]||(Td[a]={}),Td[a]=t},get:(e,t)=>{if("spatialRegistrationModule"!==e)return;const[r,n]=t,a=`${r}_${n}`;if(Td[a])return Td[a];const o=`${n}_${r}`;return Td[o]?ot._E.invert(ot._E.create(),Td[o]):void 0}};st(Cd.get.bind(Cd));const xd=Cd;const Sd=function(e,t){const r=e.getCurrentImageId(),n=t.getCurrentImageId(),a=ut("imagePlaneModule",r),o=ut("imagePlaneModule",n);if(!a||!o)return void console.log("Viewport spatial registration requires image plane module");const{imageOrientationPatient:i}=o,s=a.imageOrientationPatient.every(((e,t)=>Math.abs(e-i[t])<.05));if(!s)return void console.log("Viewport spatial registration only supported for same orientation (hence translation only) for now",a?.imageOrientationPatient,o?.imageOrientationPatient);const l=a.imagePositionPatient,c=o.imagePositionPatient,u=ot.R3.subtract(ot.R3.create(),l,c),d=ot._E.fromTranslation(ot._E.create(),u);xd.add([e.id,t.id],d)};function Pd(e){const{imageData:t,dimensions:r}=e.getImageData(),{canvas:n}=e,a=[n.width,0],o=[n.width,n.height],i=[0,n.height],s=e.canvasToWorld([0,0]),l=e.canvasToWorld(a),c=e.canvasToWorld(o),u=e.canvasToWorld(i),d=t.worldToIndex(s),f=t.worldToIndex(l),p=t.worldToIndex(c),g=t.worldToIndex(u);return function({dimensions:e,imageData:t,topLeftImage:r,topRightImage:n,bottomRightImage:a,bottomLeftImage:o,topLeftWorld:i,topRightWorld:s,bottomRightWorld:l,bottomLeftWorld:c}){const u=wd(r,e)?i:t.indexToWorld([0,0,0]),d=wd(n,e)?s:t.indexToWorld([e[0]-1,0,0]),f=wd(a,e)?l:t.indexToWorld([e[0]-1,e[1]-1,0]),p=wd(o,e)?c:t.indexToWorld([0,e[1]-1,0]);return[u,d,p,f]}({dimensions:r,imageData:t,topLeftImage:d,topRightImage:f,bottomRightImage:p,bottomLeftImage:g,topLeftWorld:s,topRightWorld:l,bottomRightWorld:c,bottomLeftWorld:u})}function wd(e,t){return e[0]>0||e[0]<t[0]-1||e[1]>0||e[1]<t[1]-1||e[2]>0||e[2]<t[2]-1}function Od(e){return Array.isArray(e)?e.some((e=>Number.isNaN(e))):Number.isNaN(e)}function Id(e,t){const r=t.colorTransfer.split(" ").splice(1).map(parseFloat),{shiftRange:n}=function(e){let t=1/0,r=-1/0;for(let n=0;n<e.length;n+=4)t=Math.min(t,e[n]),r=Math.max(r,e[n]);const n=(r-t)/2;return{shiftRange:[-n,n],min:t,max:r}}(r),a=n[0],o=n[1]-n[0],i=te.ZP.newInstance(),s=[];for(let e=0;e<r.length;e+=4){let t=r[e];const n=r[e+1],i=r[e+2],l=r[e+3];t=(t-a)/o,s.push([t,n,i,l])}!function(e,t,r){const n=t[1]-t[0],a=e.map((([e,r,a,o])=>[e*n+t[0],r,a,o]));r.removeAllPoints(),a.forEach((([e,t,n,a])=>r.addRGBPoint(e,t,n,a)))}(s,n,i),e.getProperty().setRGBTransferFunction(0,i);const l=t.scalarOpacity.split(" ").splice(1).map(parseFloat),c=vc.ZP.newInstance(),u=[];for(let e=0;e<l.length;e+=2){let t=l[e];const r=l[e+1];t=(t-a)/o,u.push([t,r])}!function(e,t,r){const n=t[1]-t[0],a=e.map((([e,r])=>[e*n+t[0],r]));r.removeAllPoints(),a.forEach((([e,t])=>r.addPoint(e,t)))}(u,n,c),e.getProperty().setScalarOpacity(0,c);const[d,f,p,g]=t.gradientOpacity.split(" ").splice(1).map(parseFloat);e.getProperty().setUseGradientOpacity(0,!0),e.getProperty().setGradientOpacityMinimumValue(0,d),e.getProperty().setGradientOpacityMinimumOpacity(0,f),e.getProperty().setGradientOpacityMaximumValue(0,p),e.getProperty().setGradientOpacityMaximumOpacity(0,g),"1"===t.interpolation&&e.getProperty().setInterpolationTypeToFastLinear();const m=parseFloat(t.ambient),h=parseFloat(t.diffuse),v=parseFloat(t.specular),y=parseFloat(t.specularPower);e.getProperty().setAmbient(m),e.getProperty().setDiffuse(h),e.getProperty().setSpecular(v),e.getProperty().setSpecularPower(y)}const Ad=e=>e&&"object"==typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e),Rd=(e,t)=>{return t&&!0===t.clone&&Ad(e)?Md((r=e,Array.isArray(r)?[]:{}),e,t):e;var r},Ed=(e,t,r)=>{const n=e.slice();return t.forEach((function(t,a){void 0===n[a]?n[a]=Rd(t,r):Ad(t)?n[a]=Md(e[a],t,r):-1===e.indexOf(t)&&n.push(Rd(t,r))})),n},Md=(e={},t={},r=void 0)=>{const n=Array.isArray(t),a=(r||{arrayMerge:Ed}).arrayMerge||Ed;return n?Array.isArray(e)?a(e,t,r):Rd(t,r):((e,t,r)=>{const n={};return Ad(e)&&Object.keys(e).forEach((function(t){n[t]=Rd(e[t],r)})),Object.keys(t).forEach((function(a){Ad(t[a])&&e[a]?n[a]=Md(e[a],t[a],r):n[a]=Rd(t[a],r)})),n})(e,t,r)},Dd=Md;function Vd(e){const t=ut("modalityLutModule",e)||{},r=ut("generalSeriesModule",e)||{},{modality:n}=r,a={rescaleSlope:t.rescaleSlope,rescaleIntercept:t.rescaleIntercept,modality:n},o=ut("scalingModule",e)||{};return{...a,..."PT"===n&&{suvbw:o.suvbw,suvbsa:o.suvbsa,suvlbm:o.suvlbm}}}function Ld(e,t){let r;if(t&&t instanceof Uint8Array)r="Uint8Array";else if(t instanceof Float32Array)r="Float32Array";else if(t instanceof Int16Array)r="Int16Array";else{if(!(t instanceof Uint16Array))throw new Error("Unsupported array type");r="Uint16Array"}return r}function _d(e){if(!e)return;const{viewportUid:t,renderingEngineUid:r}=e.dataset;return Nd(t,r)}function Nd(e,t){if(!t||!e)return;const r=Ne(t);if(!r||r.hasBeenDestroyed)return;const n=r.getViewport(e);if(!n)return;const a=n.getFrameOfReferenceUID();return{viewport:n,renderingEngine:r,viewportId:e,renderingEngineId:t,FrameOfReferenceUID:a}}function Bd(){const e=[];return _e().forEach((t=>{t.getViewports().forEach((({element:t})=>{e.push(_d(t))}))})),e}const Fd=function(e){const t=_d(e);if(!t)return;const{viewport:r}=t;if(!(r instanceof tp))throw new Error(`An image can only be fetched for a stack viewport and not for a viewport of type: ${r.type}`);return r.getCornerstoneImage()};function Ud(e,t,r){const[n,a,o]=e,[i,s,l]=t,[c,u,d,f]=r,p=i-n,g=s-a,m=l-o,h=-1*(c*n+u*a+d*o-f)/(c*p+u*g+d*m);return[p*h+n,g*h+a,m*h+o]}function kd(e,t){const[r,n,a]=e;return[r,n,a,r*t[0]+n*t[1]+a*t[2]]}function Gd(e,t,r){const[n,a,o,i]=e,[s,l,c,u]=t,[d,f,p,g]=r,m=ot.wO.fromValues(n,s,d,a,l,f,o,c,p),h=ot.wO.fromValues(i,u,g,a,l,f,o,c,p),v=ot.wO.fromValues(n,s,d,i,u,g,o,c,p),y=ot.wO.fromValues(n,s,d,a,l,f,i,u,g);return[ot.wO.determinant(h)/ot.wO.determinant(m),ot.wO.determinant(v)/ot.wO.determinant(m),ot.wO.determinant(y)/ot.wO.determinant(m)]}function Wd(e,t,r=!1){const[n,a,o,i]=e,[s,l,c]=t,u=n*s+a*l+o*c-i,d=Math.abs(u)/Math.sqrt(n*n+a*a+o*o);return(r?Math.sign(u):1)*d}function zd(e,t){return{windowWidth:Math.abs(t-e)+1,windowCenter:(e+t+1)/2}}function jd(e,t){return{lower:t-.5-(e-1)/2,upper:t-.5+(e-1)/2}}const Hd=new Map;function Kd(e){Hd.set(e.Name,e)}function Zd(e){return Hd.get(e)}function Xd(){return Array.from(Hd.keys())}const qd=mt;var Yd=Object.create(null);[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,7.54296e-7,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,1.11641e-7,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,3.63578e-7,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,4.05298e-7,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4.264e-8,0,6.20844e-7,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,3.3216e-7,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,4.05432e-7,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,4.55569e-8]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,4.55569e-8,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}].filter((function(e){return e.RGBPoints})).filter((function(e){return"CIELAB"!==e.ColorSpace})).forEach((function(e){Yd[e.Name]=e}));var $d=Object.keys(Yd);$d.sort();var Qd={addPreset:function(e){e.RGBPoints&&"CIELAB"!==e.ColorSpace&&(Yd[e.Name]||($d.push(e.Name),$d.sort()),Yd[e.Name]=e)},removePresetByName:function(e){var t=$d.indexOf(e);t>-1&&$d.splice(t,1),delete Yd[e]},getPresetByName:function(e){return Yd[e]},rgbPresetNames:$d},Jd=r(91382),ef=r(49445);function tf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var rf=_n.InterpolationType,nf=_n.OpacityMode,af=ht.default.vtkErrorMacro,of=4;var sf={independentComponents:!0,interpolationType:rf.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:1,labelOutlineOpacity:1};function lf(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,sf,r),ht.default.obj(e,t),!t.componentData){t.componentData=[];for(var n=0;n<of;++n)t.componentData.push({colorChannels:1,grayTransferFunction:null,rGBTransferFunction:null,scalarOpacity:null,scalarOpacityUnitDistance:1,opacityMode:nf.FRACTIONAL,gradientOpacityMinimumValue:0,gradientOpacityMinimumOpacity:0,gradientOpacityMaximumValue:1,gradientOpacityMaximumOpacity:1,useGradientOpacity:!1,componentWeight:1})}ht.default.setGet(e,t,["independentComponents","interpolationType","shade","ambient","diffuse","specular","specularPower","useLabelOutline","labelOutlineThickness","labelOutlineOpacity"]),function(e,t){t.classHierarchy.push("vtkVolumeProperty"),e.getMTime=function(){for(var e,r=t.mtime,n=0;n<of;n++)1===t.componentData[n].colorChannels?t.componentData[n].grayTransferFunction&&(r=r>(e=t.componentData[n].grayTransferFunction.getMTime())?r:e):3===t.componentData[n].colorChannels&&t.componentData[n].rGBTransferFunction&&(r=r>(e=t.componentData[n].rGBTransferFunction.getMTime())?r:e),t.componentData[n].scalarOpacity&&(r=r>(e=t.componentData[n].scalarOpacity.getMTime())?r:e),t.componentData[n].gradientOpacity&&(t.componentData[n].disableGradientOpacity||(r=r>(e=t.componentData[n].gradientOpacity.getMTime())?r:e));return r},e.getColorChannels=function(e){return e<0||e>3?(af("Bad index - must be between 0 and 3"),0):t.componentData[e].colorChannels},e.setGrayTransferFunction=function(r,n){var a=!1;return t.componentData[r].grayTransferFunction!==n&&(t.componentData[r].grayTransferFunction=n,a=!0),1!==t.componentData[r].colorChannels&&(t.componentData[r].colorChannels=1,a=!0),a&&e.modified(),a},e.getGrayTransferFunction=function(r){return null===t.componentData[r].grayTransferFunction&&(t.componentData[r].grayTransferFunction=vc.ZP.newInstance(),t.componentData[r].grayTransferFunction.addPoint(0,0),t.componentData[r].grayTransferFunction.addPoint(1024,1),1!==t.componentData[r].colorChannels&&(t.componentData[r].colorChannels=1),e.modified()),t.componentData[r].grayTransferFunction},e.setRGBTransferFunction=function(r,n){var a=!1;return t.componentData[r].rGBTransferFunction!==n&&(t.componentData[r].rGBTransferFunction=n,a=!0),3!==t.componentData[r].colorChannels&&(t.componentData[r].colorChannels=3,a=!0),a&&e.modified(),a},e.getRGBTransferFunction=function(r){return null===t.componentData[r].rGBTransferFunction&&(t.componentData[r].rGBTransferFunction=te.ZP.newInstance(),t.componentData[r].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[r].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[r].colorChannels&&(t.componentData[r].colorChannels=3),e.modified()),t.componentData[r].rGBTransferFunction},e.setScalarOpacity=function(r,n){return t.componentData[r].scalarOpacity!==n&&(t.componentData[r].scalarOpacity=n,e.modified(),!0)},e.getScalarOpacity=function(r){return null===t.componentData[r].scalarOpacity&&(t.componentData[r].scalarOpacity=vc.ZP.newInstance(),t.componentData[r].scalarOpacity.addPoint(0,1),t.componentData[r].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[r].scalarOpacity},e.setComponentWeight=function(r,n){if(r<0||r>=of)return af("Invalid index"),!1;var a=Math.min(1,Math.max(0,n));return t.componentData[r].componentWeight!==a&&(t.componentData[r].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=of?(af("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(rf.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(rf.LINEAR)},e.setInterpolationTypeToFastLinear=function(){return e.setInterpolationType(rf.FAST_LINEAR)},e.getInterpolationTypeAsString=function(){return ht.default.enumToString(rf,t.interpolationType)},["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach((function(r){var n=ht.default.capitalize(r);e["set".concat(n)]=function(n,a){return t.componentData[n]["".concat(r)]!==a&&(t.componentData[n]["".concat(r)]=a,e.modified(),!0)}})),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach((function(r){var n=ht.default.capitalize(r);e["get".concat(n)]=function(e){return t.componentData[e]["".concat(r)]}}))}(e,t)}var cf=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?tf(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tf(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance(lf,"vtkVolumeProperty"),extend:lf},_n),uf=ht.default.vtkDebugMacro;var df={mapper:null,property:null,bounds:[1,-1,1,-1,1,-1]};function ff(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,df,r),ef.ZP.extend(e,t,r),t.boundsMTime={},ht.default.obj(t.boundsMTime),ht.default.set(e,t,["property"]),ht.default.setGet(e,t,["mapper"]),ht.default.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=function(){return e},e.makeProperty=cf.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var r,n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!(r=[n,t.mapperBounds],r[0].map((function(e,t){return r.map((function(e){return e[t]}))}))).reduce((function(e,t){return e&&t[0]===t[1]}),!0)||e.getMTime()>t.boundsMTime.getMTime()){uf("Recomputing bounds..."),t.mapperBounds=n.map((function(e){return e}));var a=[];Jd.ZP.getCorners(n,a),e.computeMatrix();var o=new Float64Array(16);ot._E.transpose(o,t.matrix),a.forEach((function(e){return ot.R3.transformMat4(e,e,o)})),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map((function(e,t){return t%2==0?a.reduce((function(e,r){return e>r[t/2]?r[t/2]:e}),e):a.reduce((function(e,r){return e<r[(t-1)/2]?r[(t-1)/2]:e}),e)})),t.boundsMTime.modified()}return t.bounds},e.getMTime=function(){var e=t.mtime;if(null!==t.property){var r=t.property.getMTime();e=r>e?r:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var r=t.mapper.getMTime();e=r>e?r:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(r=t.mapper.getInput().getMTime())>e?r:e)}return e}}(e,t)}var pf={newInstance:ht.default.newInstance(ff,"vtkVolume"),extend:ff};function gf(e,t){const r=Ac.newInstance();Qe().rendering.preferSizeOverAccuracy&&r.setPreferSizeOverAccuracy(!0),r.setInputData(e);const n=e.getSpacing(),a=(n[0]+n[1]+n[2])/6;return r.setMaximumSamplesPerRay(4e3),r.setSampleDistance(a),r.setScalarTexture(t),r}const mf=0,hf=h.Prefetch;const vf=async function(e,t,r){let n=function(e){const{imageIds:t}=e,r=Math.floor(t.length/2),n=ut("voiLutModule",t[r]);if(n&&n.windowWidth&&n.windowCenter){const{windowWidth:e,windowCenter:t}=n,r={windowWidth:Array.isArray(e)?e[0]:e,windowCenter:Array.isArray(t)?t[0]:t},{lower:a,upper:o}=jd(Number(r.windowWidth),Number(r.windowCenter));return{lower:a,upper:o}}}(t);if(n||(n=await async function(e,t){const{imageIds:r}=e,n=e.getScalarData(),a=Math.floor(r.length/2),o=e.imageIds[a],i=ut("generalSeriesModule",o)||{},{modality:s}=i,l=ut("modalityLutModule",o)||{},c=r.length,u=n.byteLength/c,d=n.length/c,f=n.BYTES_PER_ELEMENT,p={rescaleSlope:l.rescaleSlope,rescaleIntercept:l.rescaleIntercept,modality:s};let g;if("PT"===s){const e=ut("scalingModule",o);e&&(g={...p,suvbw:e.suvbw})}const m=a*u,h={targetBuffer:{type:t?void 0:"Float32Array"},priority:mf,requestType:hf,preScale:{enabled:!0,scalingParameters:g}},v=await du(o,h);let y;y=v?v.getPixelData():function(e,t,r,n){const{scalarData:a}=e,{volumeBuffer:o}=a;a.BYTES_PER_ELEMENT!==r&&(t*=a.BYTES_PER_ELEMENT/r);const i=a.constructor,s=new i(n),l=new i(o,t,n);return s.set(l),s}(e,m,f,d);const{min:b,max:T}=ce(y);return{lower:b,upper:T}}(t,r)),!n||void 0===n.lower||void 0===n.upper)throw new Error("Could not get VOI from metadata, nor from the min max of the image middle slice");n=function(e,t){const r=e.imageIds,n=Math.floor(r.length/2),a=r[n];if(function(e,t){if("PT"!==e||!t.isPreScaled)return!1;if(!t.scaling?.PT.suvbw)return!1;return!0}((ut("generalSeriesModule",a)||{}).modality,e))return{lower:0,upper:5};return t}(t,n);const{lower:a,upper:o}=n;e.getProperty().getRGBTransferFunction(0).setMappingRange(a,o)};const yf=async function(e,t,r,n=!1,a=!1){const{volumeId:o,callback:i,blendMode:s}=e,l=await zc(o);if(!l)throw new Error(`imageVolume with id: ${l.volumeId} does not exist`);const{imageData:c,vtkOpenGLTexture:u}=l,d=gf(c,u);s&&d.setBlendMode(s);const f=pf.newInstance();return f.setMapper(d),3===c.getPointData().getScalars().getNumberOfComponents()&&f.getProperty().setIndependentComponents(!1),l.imageIds&&await vf(f,l,a),i&&i({volumeActor:f,volumeId:o}),n||function(e,t,r,n){const a=r.getProperty().getRGBTransferFunction(0).getRange(),o={viewportId:t,range:{lower:a[0],upper:a[1]},volumeId:n};se(e,g.VOI_MODIFIED,o)}(t,r,f,o),f};const bf=async function(e,t,r,n=!1,a=!1){r.forEach((t=>{const r=e.getViewport(t);if(!r)throw new Error(`Viewport with Id ${t} does not exist`);if(!(r instanceof Pf))throw new Error("setVolumesForViewports only supports VolumeViewport and VolumeViewport3D")}));const o=r.map((async r=>{const o=e.getViewport(r);await o.setVolumes(t,n,a)}));await Promise.all(o)};const Tf=async function(e,t,r,n=!1,a=!1){for(const t of r){const r=e.getViewport(t);if(!r)throw new Error(`Viewport with Id ${t} does not exist`);if(!(r instanceof Pf))return void console.warn(`Viewport with Id ${t} is not a BaseVolumeViewport. Cannot add volume to this viewport.`)}const o=r.map((async r=>{const o=e.getViewport(r);await o.addVolumes(t,n,a)}));await Promise.all(o)},Cf={};const xf=function(e){const{renderingEngineId:t,viewportId:r}=e.detail,n=Le(t).getViewport(r);if(!(n instanceof Pf))throw new Error("volumeNewImageEventDispatcher: viewport is not a BaseVolumeViewport");void 0===Cf[n.id]&&(Cf[n.id]=0);const a=md(n);if(!a)return void console.warn(`volumeNewImageEventDispatcher: sliceData is undefined for viewport ${n.id}`);const{numberOfSlices:o,imageIndex:i}=a;if(Cf[n.id]===i)return;Cf[n.id]=i;const s={imageIndex:i,viewportId:r,renderingEngineId:t,numberOfSlices:o};se(n.element,g.VOLUME_NEW_IMAGE,s)};const Sf=class{constructor(e){this.flipHorizontal=!1,this.flipVertical=!1,this.viewportStatus=G.NO_DATA,this._suppressCameraModifiedEvents=!1,this.hasPixelSpacing=!0,this.id=e.id,this.renderingEngineId=e.renderingEngineId,this.type=e.type,this.element=e.element,this.canvas=e.canvas,this.sx=e.sx,this.sy=e.sy,this.sWidth=e.sWidth,this.sHeight=e.sHeight,this._actors=new Map,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.defaultOptions=ti()(e.defaultOptions),this.suppressEvents=!!e.defaultOptions.suppressEvents&&e.defaultOptions.suppressEvents,this.options=ti()(e.defaultOptions),this.isDisabled=!1}static get useCustomRenderingPipeline(){return!1}setRendered(){this.viewportStatus!==G.NO_DATA&&this.viewportStatus!==G.LOADING&&(this.viewportStatus=G.RENDERED)}getRenderingEngine(){return $.get(this.renderingEngineId)}getRenderer(){const e=this.getRenderingEngine();if(!e||e.hasBeenDestroyed)throw new Error("Rendering engine has been destroyed");return e.offscreenMultiRenderWindow.getRenderer(this.id)}render(){this.getRenderingEngine().renderViewport(this.id)}setOptions(e,t=!1){this.options=ti()(e),this.options?.displayArea&&this.setDisplayArea(this.options?.displayArea),t&&this.render()}reset(e=!1){this.options=ti()(this.defaultOptions),e&&this.render()}flip({flipHorizontal:e,flipVertical:t}){const r=this.getDefaultImageData();if(!r)return;const n=this.getCamera(),{viewPlaneNormal:a,viewUp:o,focalPoint:i,position:s}=n,l=ot.R3.cross(ot.R3.create(),a,o);let c=ot.R3.copy(ot.R3.create(),o);const u=ot.R3.negate(ot.R3.create(),a),d=ot.R3.distance(s,i),f=r.getDimensions().map((e=>Math.floor(e/2))),p=[f[0],f[1],f[2]],g=r.indexToWorld(p,ot.R3.create()),m=this._getFocalPointForResetCamera(g,n,{resetPan:!0,resetToCenter:!1}),h=ot.R3.subtract(ot.R3.create(),i,m),v=ot.R3.length(h),y=e=>{const t=ot.R3.scale(ot.R3.create(),e,2*ot.R3.dot(h,e));return ot.R3.subtract(t,t,h),ot.R3.normalize(t,t),t};if(e){const e=y(c),t=ot.R3.scaleAndAdd(ot.R3.create(),m,e,v),r=ot.R3.scaleAndAdd(ot.R3.create(),t,u,d);this.setCamera({viewPlaneNormal:u,position:r,focalPoint:t}),this.flipHorizontal=!this.flipHorizontal}if(t){c=ot.R3.negate(c,o);const e=y(l),t=ot.R3.scaleAndAdd(ot.R3.create(),m,e,v),r=ot.R3.scaleAndAdd(ot.R3.create(),t,u,d);this.setCamera({focalPoint:t,viewPlaneNormal:u,viewUp:c,position:r}),this.flipVertical=!this.flipVertical}this.render()}getDefaultImageData(){const e=this.getDefaultActor();if(e&&hd(e))return e.actor.getMapper().getInputData()}getDefaultActor(){return this.getActors()[0]}getActors(){return Array.from(this._actors.values())}getActor(e){return this._actors.get(e)}getActorUIDByIndex(e){const t=this.getActors()[e];if(t)return t.uid}getActorByIndex(e){return this.getActors()[e]}setActors(e){this.removeAllActors();this.addActors(e,!0)}_removeActor(e){const t=this.getActor(e);if(!t)return void console.warn(`Actor ${e} does not exist for this viewport`);this.getRenderer().removeViewProp(t.actor),this._actors.delete(e)}removeActors(e){e.forEach((e=>{this._removeActor(e)}))}addActors(e,t=!1){const r=this.getRenderingEngine();r&&!r.hasBeenDestroyed?(e.forEach((e=>this.addActor(e))),this.resetCamera(t,t)):console.warn("Viewport::addActors::Rendering engine has not been initialized or has been destroyed")}addActor(e){const{uid:t,actor:r}=e,n=this.getRenderingEngine();if(!n||n.hasBeenDestroyed)return void console.warn(`Cannot add actor UID of ${t} Rendering Engine has been destroyed`);if(!t||!r)throw new Error("Actors should have uid and vtk Actor properties");if(this.getActor(t))return void console.warn(`Actor ${t} already exists for this viewport`);this.getRenderer().addActor(r),this._actors.set(t,Object.assign({},e))}removeAllActors(){this.getRenderer().removeAllViewProps(),this._actors=new Map}resetCameraNoEvent(){this._suppressCameraModifiedEvents=!0,this.resetCamera(),this._suppressCameraModifiedEvents=!1}setCameraNoEvent(e){this._suppressCameraModifiedEvents=!0,this.setCamera(e),this._suppressCameraModifiedEvents=!1}_getViewImageDataIntersections(e,t,r){const n=r[0],a=r[1],o=r[2],i=n*t[0]+a*t[1]+o*t[2],s=e.getBounds(),l=this._getEdges(s),c=[];for(const e of l){const[[t,r,l],[u,d,f]]=e;if(n*(u-t)+a*(d-r)+o*(f-l)==0)continue;const p=Ud([t,r,l],[u,d,f],[n,a,o,i]);this._isInBounds(p,s)&&c.push(p)}return c}setDisplayArea(e,t=!1){const{storeAsInitialCamera:r}=e;this.setCamera(this.fitToCanvasCamera,!1);const{imageArea:n,imageCanvasPoint:a}=e;if(n){const[e,t]=n,a=Math.min(this.getZoom()/e,this.getZoom()/t);this.setZoom(a,r)}const o=this.getDefaultImageData();if(a&&o){const{imagePoint:e,canvasPoint:t}=a,[n,i]=t,s=window?.devicePixelRatio||1,l=this.sWidth/s*(n-.5),c=this.sHeight/s*(i-.5),u=o.getDimensions(),d=this.worldToCanvas([0,0,0]),f=this.worldToCanvas(u),p=[f[0]-d[0],f[1]-d[1]],[g,m]=p,[h,v]=e,y=[g*(.5-h)+l,m*(.5-v)+c];this.setPan(y,r)}if(r&&(this.options.displayArea=e),!t){const t={viewportId:this.id,displayArea:e,storeAsInitialCamera:r};se(this.element,g.DISPLAY_AREA_MODIFIED,t)}}getDisplayArea(){return this.options?.displayArea}resetCamera(e=!0,t=!0,r=!0,n=!0){const a=this.getRenderer();this.setCamera({flipHorizontal:!1,flipVertical:!1});const o=ti()(this.getCamera()),i=a.computeVisiblePropBounds(),s=[0,0,0],l=this.getDefaultImageData();if(l){const e=l.getSpacing();i[0]=i[0]+e[0]/2,i[1]=i[1]-e[0]/2,i[2]=i[2]+e[1]/2,i[3]=i[3]-e[1]/2,i[4]=i[4]+e[2]/2,i[5]=i[5]-e[2]/2}const c=this.getVtkActiveCamera(),u=c.getViewPlaneNormal(),d=c.getViewUp();if(s[0]=(i[0]+i[1])/2,s[1]=(i[2]+i[3])/2,s[2]=(i[4]+i[5])/2,l){const e=l.getDimensions().map((e=>Math.floor(e/2))),t=[e[0],e[1],e[2]];l.indexToWorld(t,s)}const{widthWorld:f,heightWorld:p}=this._getWorldDistanceViewUpAndViewRight(i,d,u),g=[this.sWidth,this.sHeight],m=f/p,h=g[0]/g[1];let v;if(m<h)v=p/2;else{v=p*(m/h)/2}const y=1.1*v;let b=i[1]-i[0],T=i[3]-i[2],C=i[5]-i[4];b*=b,T*=T,C*=C,v=b+T+C,v=0===v?1:v,v=.5*Math.sqrt(v);const x=1.1*v,S=Math.abs(Vc.ZP.dot(d,u))>.999?[-d[2],d[0],d[1]]:d,P=this._getFocalPointForResetCamera(s,o,{resetPan:e,resetToCenter:r}),w=[P[0]+x*u[0],P[1]+x*u[1],P[2]+x*u[2]];a.resetCameraClippingRange(i);const O=[-j.MAXIMUM_RAY_DISTANCE,j.MAXIMUM_RAY_DISTANCE];c.setPhysicalScale(v),c.setPhysicalTranslation(-P[0],-P[1],-P[2]),this.setCamera({parallelScale:t?y:o.parallelScale,focalPoint:P,position:w,viewAngle:90,viewUp:S,clippingRange:O});const I=ti()(this.getCamera());this.setFitToCanvasCamera(ti()(this.getCamera())),n&&this.setInitialCamera(I);const A={type:"ResetCameraEvent",renderer:a};return a.invokeEvent(A),this.triggerCameraModifiedEventIfNecessary(o,I),l&&this.options?.displayArea&&t&&e&&r&&this.setDisplayArea(this.options?.displayArea),!0}setInitialCamera(e){this.initialCamera=e}setFitToCanvasCamera(e){this.fitToCanvasCamera=e}getPan(){const e=this.getVtkActiveCamera().getFocalPoint(),t=this.canvasToWorld([0,0]),r=this.worldToCanvas(ot.R3.subtract(ot.R3.create(),this.initialCamera.focalPoint,t)),n=this.worldToCanvas(ot.R3.subtract(ot.R3.create(),e,t));return ot.K4.subtract(ot.K4.create(),r,n)}setPan(e,t=!1){const r=this.getCamera(),{focalPoint:n,position:a}=r,o=this.canvasToWorld([0,0]),i=ot.K4.subtract(ot.K4.create(),e,this.getPan());if(Math.abs(i[0])<1&&Math.abs(i[1])<1&&!t)return;const s=ot.R3.subtract(ot.R3.create(),this.canvasToWorld(i),o),l=ot.R3.subtract(ot.R3.create(),n,s),c=ot.R3.subtract(ot.R3.create(),a,s);this.setCamera({...r,focalPoint:l,position:c},t)}getZoom(){const e=this.getVtkActiveCamera(),{parallelScale:t}=this.initialCamera;return t/e.getParallelScale()}setZoom(e,t=!1){const r=this.getCamera(),{parallelScale:n}=this.initialCamera,a=n/e;(r.parallelScale!==a||t)&&this.setCamera({...r,parallelScale:a},t)}_getFocalPointForViewPlaneReset(e){const{focalPoint:t,viewPlaneNormal:r}=this.getCamera(),n=this._getViewImageDataIntersections(e,t,r);let a=0,o=0,i=0;n.forEach((([e,t,r])=>{a+=e,o+=t,i+=r}));return[a/n.length,o/n.length,i/n.length]}getCanvas(){return this.canvas}getVtkActiveCamera(){return this.getRenderer().getActiveCamera()}getCamera(){const e=this.getVtkActiveCamera();return{viewUp:e.getViewUp(),viewPlaneNormal:e.getViewPlaneNormal(),position:e.getPosition(),focalPoint:e.getFocalPoint(),parallelProjection:e.getParallelProjection(),parallelScale:e.getParallelScale(),viewAngle:e.getViewAngle(),flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}setCamera(e,t=!1){const r=this.getVtkActiveCamera(),n=ti()(this.getCamera()),a=Object.assign({},n,e),{viewUp:o,viewPlaneNormal:i,position:s,focalPoint:l,parallelScale:c,viewAngle:u,flipHorizontal:d,flipVertical:f,clippingRange:p}=e;if(void 0!==d){const e=d&&!this.flipHorizontal||!d&&this.flipHorizontal;e&&this.flip({flipHorizontal:e})}if(void 0!==f){const e=f&&!this.flipVertical||!f&&this.flipVertical;e&&this.flip({flipVertical:e})}void 0!==o&&r.setViewUp(o),void 0!==i&&r.setDirectionOfProjection(-i[0],-i[1],-i[2]),void 0!==s&&r.setPosition(...s),void 0!==l&&r.setFocalPoint(...l),void 0!==c&&r.setParallelScale(c),void 0!==u&&r.setViewAngle(u),void 0!==p&&r.setClippingRange(p);const g=this.getDefaultActor();if(!g||!g.actor)return;if(vd(g,"vtkImageSlice")){this.getRenderer().resetCameraClippingRange()}else this.updateClippingPlanesForActors(a);t&&this.setInitialCamera(a),this.triggerCameraModifiedEventIfNecessary(n,this.getCamera())}triggerCameraModifiedEventIfNecessary(e,t){if(!this._suppressCameraModifiedEvents&&!this.suppressEvents){const r={previousCamera:e,camera:t,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,rotation:this.getRotation()};se(this.element,g.CAMERA_MODIFIED,r)}}updateClippingPlanesForActors(e){this.getActors().forEach((t=>{if(!t.actor)return;const r=t.actor.getMapper().getClippingPlanes();let n=j.MINIMUM_SLAB_THICKNESS;t.slabThickness&&(n=t.slabThickness);const{viewPlaneNormal:a,focalPoint:o}=e;this.setOrientationOfClippingPlanes(r,n,a,o)}))}setOrientationOfClippingPlanes(e,t,r,n){if(e.length<2)return;const a=[r[0],r[1],r[2]];Vc.ZP.multiplyScalar(a,t),e[0].setNormal(r);const o=[0,0,0];Vc.ZP.subtract(n,a,o),e[0].setOrigin(o),e[1].setNormal(-r[0],-r[1],-r[2]);const i=[0,0,0];Vc.ZP.add(n,a,i),e[1].setOrigin(i)}_getWorldDistanceViewUpAndViewRight(e,t,r){const n=this._getCorners(e),a=this._getCorners(e),o=ot.R3.cross(ot.R3.create(),t,r);let i=id.Z.buildFromDegree().identity().rotateFromDirections(t,[1,0,0]);n.forEach((e=>i.apply(e)));let s=1/0,l=-1/0;for(let e=0;e<8;e++){const t=n[e][0];t>l&&(l=t),t<s&&(s=t)}i=id.Z.buildFromDegree().identity().rotateFromDirections([o[0],o[1],o[2]],[1,0,0]),a.forEach((e=>i.apply(e)));let c=1/0,u=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>u&&(u=t),t<c&&(c=t)}return{widthWorld:u-c,heightWorld:l-s}}_shouldUseNativeDataType(){const{useNorm16Texture:e,preferSizeOverAccuracy:t}=Qe().rendering;return e||t}_getCorners(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}_getFocalPointForResetCamera(e,t,{resetPan:r=!0,resetToCenter:n=!0}){if(n&&r)return e;if(n&&!r)return Od(t.focalPoint)?e:t.focalPoint;if(!n&&r){const r=t,n=r.focalPoint,a=r.viewPlaneNormal,o=ot.R3.subtract(ot.R3.create(),e,n),i=ot.R3.dot(o,a),s=ot.R3.scaleAndAdd(ot.R3.create(),e,a,-1*i);return[s[0],s[1],s[2]]}return r||n?void 0:Od(t.focalPoint)?e:t.focalPoint}_isInBounds(e,t){const[r,n,a,o,i,s]=t,[l,c,u]=e;return!(l<r||l>n||c<a||c>o||u<i||u>s)}_getEdges(e){const[t,r,n,a,o,i,s,l]=this._getCorners(e);return[[t,r],[t,o],[t,n],[r,a],[r,i],[n,a],[n,s],[a,l],[o,s],[o,i],[i,l],[s,l]]}};const Pf=class extends Sf{constructor(e){if(super(e),this.useCPURendering=!1,this.use16BitTexture=!1,this.inverted=!1,this.getProperties=()=>{const e=this.getActors().map((e=>{const t=e.actor,r=e.uid;if(!qd.getVolume(r))return null;const n=t.getProperty().getRGBTransferFunction(0),[a,o]="SIGMOID"===this.VOILUTFunction?ae(n):n.getRange();return{volumeId:r,voiRange:{lower:a,upper:o}}})).filter(Boolean);return{voiRange:e.length?e[0].voiRange:null,VOILUTFunction:this.VOILUTFunction,invert:this.inverted}},this.getFrameOfReferenceUID=()=>this._FrameOfReferenceUID,this.canvasToWorld=e=>{const t=this.getVtkActiveCamera();t.setIsPerformingCoordinateTransformation?.(!0);const r=this.getRenderer(),n=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),a=n.getSize(),o=window.devicePixelRatio||1,i=[e[0]*o,e[1]*o],s=[i[0]+this.sx,i[1]+this.sy];s[1]=a[1]-s[1];const l=n.displayToWorld(s[0],s[1],0,r);return t.setIsPerformingCoordinateTransformation?.(!1),[l[0],l[1],l[2]]},this.worldToCanvas=e=>{const t=this.getVtkActiveCamera();t.setIsPerformingCoordinateTransformation?.(!0);const r=this.getRenderer(),n=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),a=n.getSize(),o=n.worldToDisplay(...e,r);o[1]=a[1]-o[1];const i=[o[0]-this.sx,o[1]-this.sy],s=window.devicePixelRatio||1,l=[i[0]/s,i[1]/s];return t.setIsPerformingCoordinateTransformation?.(!1),l},this.hasImageURI=e=>this.getActors().filter((e=>vd(e,"vtkVolume"))).some((({uid:t})=>{const r=qd.getVolume(t);if(!r||!r.imageIds)return!1;return r.imageIds.map(me).includes(e)})),this.getImageIds=e=>{const t=this._getApplicableVolumeActor(e);if(!t)throw new Error(`No actor found for the given volumeId: ${e}`);const r=t.volumeId,n=qd.getVolume(r);if(!n)throw new Error(`imageVolume with id: ${r} does not exist in cache`);return n.imageIds},this.useCPURendering=Ze(),this.use16BitTexture=this._shouldUseNativeDataType(),this.useCPURendering)throw new Error("VolumeViewports cannot be used whilst CPU Fallback Rendering is enabled.");const t=this.getRenderer(),r=Nc.newInstance();switch(t.setActiveCamera(r),this.type){case y.ORTHOGRAPHIC:case y.VOLUME_3D:r.setParallelProjection(!0);break;case y.PERSPECTIVE:r.setParallelProjection(!1);break;default:throw new Error(`Unrecognized viewport type: ${this.type}`)}this.initializeVolumeNewImageEventDispatcher()}static get useCustomRenderingPipeline(){return!1}applyViewOrientation(e){const{viewPlaneNormal:t,viewUp:r}=this._getOrientationVectors(e),n=this.getVtkActiveCamera();n.setDirectionOfProjection(-t[0],-t[1],-t[2]),n.setViewUpFrom(r),this.resetCamera()}initializeVolumeNewImageEventDispatcher(){const e=function(e){const{viewportId:t}=e.detail;if(t!==this.id||this.isDisabled)return;if(!this.getImageData())return;xf(e)}.bind(this),t=function(r){const{viewportId:n}=r.detail;if(n!==this.id)return;this.element.removeEventListener(g.CAMERA_MODIFIED,e),J.removeEventListener(g.ELEMENT_DISABLED,t),function(e){void 0!==Cf[e]&&delete Cf[e]}(n)}.bind(this);this.element.removeEventListener(g.CAMERA_MODIFIED,e),this.element.addEventListener(g.CAMERA_MODIFIED,e),J.addEventListener(g.ELEMENT_DISABLED,t)}resetVolumeViewportClippingRange(){const e=this.getVtkActiveCamera();e.getParallelProjection()?e.setClippingRange(-j.MAXIMUM_RAY_DISTANCE,j.MAXIMUM_RAY_DISTANCE):e.setClippingRange(j.MINIMUM_SLAB_THICKNESS,j.MAXIMUM_RAY_DISTANCE)}setVOILUTFunction(e,t,r){-1===Object.values(_).indexOf(e)&&(e=_.LINEAR);const{voiRange:n}=this.getProperties();this.VOILUTFunction=e,this.setVOI(n,t,r)}setColormap(e,t,r){const n=this._getApplicableVolumeActor(t);if(!n)return;const{volumeActor:a}=n;a.getMapper().setSampleDistance(1);const o=te.ZP.newInstance();let i=Zd(e.name);const{name:s}=e;if(i||(i=Qd.getPresetByName(s)),!i)throw new Error(`Colormap ${e} not found`);const l=a.getProperty().getRGBTransferFunction(0).getRange();o.applyColorMap(i),o.setMappingRange(l[0],l[1]),a.getProperty().setRGBTransferFunction(0,o)}setOpacity(e,t){const r=this._getApplicableVolumeActor(t);if(!r)return;const{volumeActor:n}=r,a=vc.ZP.newInstance();if("number"==typeof e.opacity){const t=n.getProperty().getRGBTransferFunction(0).getRange();a.addPoint(t[0],e.opacity),a.addPoint(t[1],e.opacity)}else e.opacity.forEach((({opacity:e,value:t})=>{a.addPoint(t,e)}));n.getProperty().setScalarOpacity(0,a)}setInvert(e,t,r){const n=this._getApplicableVolumeActor(t);if(!n)return;const a=n.volumeId;ee(this._getOrCreateColorTransferFunction(a)),this.inverted=e;const{voiRange:o}=this.getProperties();if(!r){const e={viewportId:this.id,range:o,volumeId:a,VOILUTFunction:this.VOILUTFunction,invert:this.inverted,invertStateChanged:!0};se(this.element,g.VOI_MODIFIED,e)}}_getOrCreateColorTransferFunction(e){const t=this._getApplicableVolumeActor(e);if(!t)return null;const{volumeActor:r}=t,n=r.getProperty().getRGBTransferFunction(0);if(n)return n;const a=te.ZP.newInstance();return r.getProperty().setRGBTransferFunction(0,a),a}setInterpolationType(e,t){const r=this._getApplicableVolumeActor(t);if(!r)return;const{volumeActor:n}=r;n.getProperty().setInterpolationType(e)}setVOI(e,t,r=!1){const n=this._getApplicableVolumeActor(t);if(!n)return;const{volumeActor:a}=n,o=n.volumeId;let i=e;if(void 0===i){const e=a.getMapper().getInputData().getPointData().getScalars().getRange();i={lower:e[0],upper:e[1]}}if(this.VOILUTFunction===_.SAMPLED_SIGMOID){const e=ne(i);a.getProperty().setRGBTransferFunction(0,e)}else{const{lower:e,upper:t}=i;a.getProperty().getRGBTransferFunction(0).setRange(e,t)}if(!r){const t={viewportId:this.id,range:e,volumeId:o,VOILUTFunction:this.VOILUTFunction};se(this.element,g.VOI_MODIFIED,t)}}setProperties({voiRange:e,VOILUTFunction:t,invert:r,colormap:n,preset:a,interpolationType:o}={},i,s=!1){n?.name&&this.setColormap(n,i,s),null!=n?.opacity&&this.setOpacity(n,i),void 0!==e&&this.setVOI(e,i,s),void 0!==o&&this.setInterpolationType(o),void 0!==t&&this.setVOILUTFunction(t,i,s),void 0!==r&&this.inverted!==r&&this.setInvert(r,i,s),void 0!==a&&this.setPreset(a,i,s)}setPreset(e,t,r){const n=this._getApplicableVolumeActor(t);if(!n)return;const{volumeActor:a}=n,o=X.find((t=>t.name===e));o&&Id(a,o)}async setVolumes(e,t=!1,r=!1){const n=qd.getVolume(e[0].volumeId);if(!n)throw new Error(`imageVolume with id: ${n.volumeId} does not exist`);const a=n.metadata.FrameOfReferenceUID;await this._isValidVolumeInputArray(e,a),this._FrameOfReferenceUID=a;const o=[];for(let t=0;t<e.length;t++){const{volumeId:n,actorUID:a,slabThickness:i}=e[t],s=await yf(e[t],this.element,this.id,r,this.use16BitTexture),l=a||n;o.push({uid:l,actor:s,slabThickness:i,referenceId:n})}this._setVolumeActors(o),this.viewportStatus=G.PRE_RENDER,se(this.element,g.VOLUME_VIEWPORT_NEW_VOLUME,{viewportId:this.id,volumeActors:o}),t&&this.render()}async addVolumes(e,t=!1,r=!1){const n=qd.getVolume(e[0].volumeId);if(!n)throw new Error(`imageVolume with id: ${n.volumeId} does not exist`);const a=[];await this._isValidVolumeInputArray(e,this._FrameOfReferenceUID);for(let t=0;t<e.length;t++){const{volumeId:n,visibility:o,actorUID:i,slabThickness:s}=e[t],l=await yf(e[t],this.element,this.id,r,this.use16BitTexture);!1===o&&l.setVisibility(!1);const c=i||n;a.push({uid:c,actor:l,slabThickness:s,referenceId:n})}this.addActors(a),t&&this.render()}removeVolumeActors(e,t=!1){this.removeActors(e),t&&this.render()}setOrientation(e,t=!0){console.warn('Method "setOrientation" needs implementation')}_getApplicableVolumeActor(e){if(void 0!==e&&!this.getActor(e))return;const t=this.getActors();if(!t.length)return;let r;return e&&(r=this.getActor(e)?.actor),r||(r=t[0].actor,e=t[0].uid),{volumeActor:r,volumeId:e}}async _isValidVolumeInputArray(e,t){const r=e.length;for(let n=1;n<r;n++){const r=e[n],a=await zc(r.volumeId);if(!a)throw new Error(`imageVolume with id: ${a.volumeId} does not exist`);if(t!==a.metadata.FrameOfReferenceUID)throw new Error(`Volumes being added to viewport ${this.id} do not share the same FrameOfReferenceUID. This is not yet supported`)}return!0}getBounds(){return this.getRenderer().computeVisiblePropBounds()}flip(e){super.flip(e)}hasVolumeId(e){return this.getActors().some((t=>t.uid===e))}getImageData(e){const t=this.getDefaultActor();if(!t)return;const{uid:r}=t;e=e??r;const n=this.getActor(e);if(!vd(n,"vtkVolume"))return;const a=n.actor,o=qd.getVolume(e),i=a.getMapper().getInputData();return{dimensions:i.getDimensions(),spacing:i.getSpacing(),origin:i.getOrigin(),direction:i.getDirection(),scalarData:i.getPointData().getScalars().isDeleted()?null:i.getPointData().getScalars().getData(),imageData:a.getMapper().getInputData(),metadata:{Modality:o?.metadata?.Modality},scaling:o?.scaling,hasPixelSpacing:!0}}_setVolumeActors(e){this.inverted=!1,this.setActors(e)}_getOrientationVectors(e){if("object"==typeof e){if(e.viewPlaneNormal&&e.viewUp)return e;throw new Error("Invalid orientation object. It must contain viewPlaneNormal and viewUp")}if("string"==typeof e&&Z[e])return Z[e];throw new Error(`Invalid orientation: ${e}. Valid orientations are: ${Object.keys(Z).join(", ")}`)}getSlabThickness(){const e=this.getActors();let t=j.MINIMUM_SLAB_THICKNESS;return e.forEach((e=>{e.slabThickness>t&&(t=e.slabThickness)})),t}getIntensityFromWorld(e){const t=this.getDefaultActor();if(!vd(t,"vtkVolume"))return;const{actor:r,uid:n}=t,a=r.getMapper().getInputData(),o=qd.getVolume(n),{dimensions:i}=o,s=nu(a,e),l=s[2]*i[0]*i[1]+s[1]*i[0]+s[0];return o.getScalarData()[l]}};const wf=class extends Pf{constructor(e){super(e),this._useAcquisitionPlaneForViewPlane=!1,this.getCurrentImageIdIndex=()=>{const{viewPlaneNormal:e,focalPoint:t}=this.getCamera(),{origin:r,spacing:n}=this.getImageData(),a=n[2],o=ot.R3.create();ot.R3.sub(o,t,r);const i=ot.R3.dot(o,e);return Math.round(Math.abs(i)/a)},this.getCurrentImageId=()=>{this.getActors().length>1&&console.warn(`Using the first/default actor of ${this.getActors().length} actors for getCurrentImageId.`);const e=this.getDefaultActor();if(!e||!vd(e,"vtkVolume"))return;const{uid:t}=e,r=qd.getVolume(t);if(!r)return;const{viewPlaneNormal:n,focalPoint:a}=this.getCamera();return ft(r,a,n)},this.getRotation=()=>0;const{orientation:t}=this.options;t&&t!==I.ACQUISITION?this.applyViewOrientation(t):this._useAcquisitionPlaneForViewPlane=!0}async setVolumes(e,t=!1,r=!1){const n=qd.getVolume(e[0].volumeId);if(!n)throw new Error(`imageVolume with id: ${n.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(n),this._useAcquisitionPlaneForViewPlane=!1),super.setVolumes(e,t,r)}async addVolumes(e,t=!1,r=!1){const n=qd.getVolume(e[0].volumeId);if(!n)throw new Error(`imageVolume with id: ${n.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(n),this._useAcquisitionPlaneForViewPlane=!1),super.addVolumes(e,t,r)}setOrientation(e,t=!0){let r,n;if(Z[e])({viewPlaneNormal:r,viewUp:n}=Z[e]);else{if("acquisition"!==e)throw new Error(`Invalid orientation: ${e}. Use Enums.OrientationAxis instead.`);({viewPlaneNormal:r,viewUp:n}=this._getAcquisitionPlaneOrientation())}this.setCamera({viewPlaneNormal:r,viewUp:n}),this.resetCamera(),t&&this.render()}_getAcquisitionPlaneOrientation(){const e=this.getDefaultActor();if(!e)return;const t=e.uid,r=qd.getVolume(t);if(!r)throw new Error(`imageVolume with id: ${t} does not exist in cache`);const{direction:n}=r;return{viewPlaneNormal:n.slice(6,9).map((e=>-e)),viewUp:n.slice(3,6).map((e=>-e))}}_setViewPlaneToAcquisitionPlane(e){let t,r;if(e){const{direction:n}=e;t=n.slice(6,9).map((e=>-e)),r=n.slice(3,6).map((e=>-e))}else({viewPlaneNormal:t,viewUp:r}=this._getAcquisitionPlaneOrientation());this.setCamera({viewPlaneNormal:t,viewUp:r}),this.resetCamera()}setBlendMode(e,t=[],r=!1){let n=this.getActors();t&&t.length>0&&(n=n.filter((e=>t.includes(e.uid)))),n.forEach((t=>{const{actor:r}=t;r.getMapper().setBlendMode(e)})),r&&this.render()}resetCamera(e=!0,t=!0,r=!0){super.resetCamera(e,t,r),this.resetVolumeViewportClippingRange();const n=this.getVtkActiveCamera(),a=n.getViewPlaneNormal(),o=n.getFocalPoint();return this.getActors().forEach((e=>{if(!e.actor)return;const t=e.actor.getMapper();if(0===t.getClippingPlanes().length){const r=$r.ZP.newInstance(),n=$r.ZP.newInstance(),i=[r,n];let s=j.MINIMUM_SLAB_THICKNESS;e.slabThickness&&(s=e.slabThickness),this.setOrientationOfClippingPlanes(i,s,a,o),t.addClippingPlane(r),t.addClippingPlane(n)}})),!0}setSlabThickness(e,t=[]){let r=this.getActors();t&&t.length>0&&(r=r.filter((e=>t.includes(e.uid)))),r.forEach((t=>{vd(t,"vtkVolume")&&(t.slabThickness=e)}));const n=this.getCamera();this.updateClippingPlanesForActors(n),this.triggerCameraModifiedEventIfNecessary(n,n)}resetProperties(e){this._resetProperties(e)}_resetProperties(e){const t=e?this.getActor(e):this.getDefaultActor();if(!t)throw new Error(`No actor found for the given volumeId: ${e}`);const r=qd.getVolume(t.uid);if(!r)throw new Error(`imageVolume with id: ${t.uid} does not exist in cache`);vf(t.actor,r,!1);const n=t.actor.getProperty().getRGBTransferFunction(0).getMappingRange(),a={viewportId:t.uid,range:{lower:n[0],upper:n[1]},volumeId:t.uid};se(this.element,g.VOI_MODIFIED,a)}};var Of=r(21924);var If={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1]};var Af={extend:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,If,r),Of.Z.extend(e,t,r),ht.default.setGet(e,t,["slice","useCustomExtents"]),ht.default.setGetArray(e,t,["customDisplayExtent"],6),ht.default.setGetArray(e,t,["backgroundColor"],4),function(e,t){t.classHierarchy.push("vtkAbstractImageMapper"),e.getIsOpaque=function(){return!0},e.getCurrentImage=function(){return null}}(e,t)}};function Rf(e,t,r){var n=r.getCurrentImage(),a=n.getExtent(),o=[a[0],a[2],a[4]],i=r.getClosestIJKAxis().ijkMode,s=r.isA("vtkImageArrayMapper")?r.getSubSlice():r.getSlice();i!==r.getSlicingMode()&&(s=r.getSliceAtPosition(s)),o[i]+=s;var l=[0,0,0];n.indexToWorld(o,l),o[i]+=1;var c=[0,0,0];n.indexToWorld(o,c),c[0]-=l[0],c[1]-=l[1],c[2]-=l[2],ot.R3.normalize(c,c);var u=$r.ZP.intersectWithLine(e,t,l,c);if(u.intersection){var d=u.x,f=[0,0,0];return n.worldToIndex(d,f),{t:u.t,absoluteIJK:f}}return null}var Ef=r(84418);function Mf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Df(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Mf(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mf(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Vf=Ef.Z.staticOffsetAPI,Lf=Ef.Z.otherStaticMethods,_f=ht.default.vtkWarningMacro,Nf=fn.SlicingMode;function Bf(e,t){function r(){var r;switch(t.slicingMode){case Nf.X:r=[1,0,0];break;case Nf.Y:r=[0,1,0];break;case Nf.Z:r=[0,0,1];break;default:return void(t.closestIJKAxis={ijkMode:t.slicingMode,flip:!1})}var n=[0,0,0],a=e.getCurrentImage().getDirection();(0,Mr.O)(a,r,n);for(var o=0,i=-1,s=!1,l=0;l<n.length;++l){var c=Math.abs(n[l]);c>o&&(o=c,s=n[l]<0,i=l)}if(1!==o){var u="IJKXYZ"[t.slicingMode],d="IJKXYZ"[i];_f("Unaccurate slicing along ".concat(u," axis which ")+"is not aligned with any IJK axis of the image data. "+"Using ".concat(d," axis as a fallback (").concat(o,"% aligned). ")+"Necessitates slice reformat that is not yet implemented. You can switch the slicing mode on your mapper to do IJK slicing instead.")}t.closestIJKAxis={ijkMode:i,flip:s}}t.classHierarchy.push("vtkImageMapper"),e.getSliceAtPosition=function(r){var n,a=e.getCurrentImage();if(3===r.length)n=r;else if(Number.isFinite(r)){var o=a.getBounds();switch(t.slicingMode){case Nf.X:n=[r,(o[3]+o[2])/2,(o[5]+o[4])/2];break;case Nf.Y:n=[(o[1]+o[0])/2,r,(o[5]+o[4])/2];break;case Nf.Z:n=[(o[1]+o[0])/2,(o[3]+o[2])/2,r]}}var i=[0,0,0];a.worldToIndex(n,i);var s=a.getExtent(),l=0;switch(e.getClosestIJKAxis().ijkMode){case Nf.I:l=(0,Mr.C)(i[0],s[0],s[1]);break;case Nf.J:l=(0,Mr.C)(i[1],s[2],s[3]);break;case Nf.K:l=(0,Mr.C)(i[2],s[4],s[5]);break;default:return 0}return l},e.setSliceFromCamera=function(r){var n=r.getFocalPoint();switch(t.slicingMode){case Nf.I:case Nf.J:case Nf.K:var a=e.getSliceAtPosition(n);e.setSlice(a);break;case Nf.X:e.setSlice(n[0]);break;case Nf.Y:e.setSlice(n[1]);break;case Nf.Z:e.setSlice(n[2])}},e.setXSlice=function(t){e.setSlicingMode(Nf.X),e.setSlice(t)},e.setYSlice=function(t){e.setSlicingMode(Nf.Y),e.setSlice(t)},e.setZSlice=function(t){e.setSlicingMode(Nf.Z),e.setSlice(t)},e.setISlice=function(t){e.setSlicingMode(Nf.I),e.setSlice(t)},e.setJSlice=function(t){e.setSlicingMode(Nf.J),e.setSlice(t)},e.setKSlice=function(t){e.setSlicingMode(Nf.K),e.setSlice(t)},e.getSlicingModeNormal=function(){var r=[0,0,0],n=e.getCurrentImage().getDirection(),a=[[n[0],n[1],n[2]],[n[3],n[4],n[5]],[n[6],n[7],n[8]]];switch(t.slicingMode){case Nf.X:r[0]=1;break;case Nf.Y:r[1]=1;break;case Nf.Z:r[2]=1;break;case Nf.I:(0,Mr.O)(a,[1,0,0],r);break;case Nf.J:(0,Mr.O)(a,[0,1,0],r);break;case Nf.K:(0,Mr.O)(a,[0,0,1],r)}return r},e.setSlicingMode=function(n){t.slicingMode!==n&&(t.slicingMode=n,e.getCurrentImage()&&r(),e.modified())},e.getClosestIJKAxis=function(){return void 0!==t.closestIJKAxis&&t.closestIJKAxis.ijkMode!==Nf.NONE||!e.getCurrentImage()||r(),t.closestIJKAxis},e.getBounds=function(){var r=e.getCurrentImage();if(!r)return(0,Mr.N)();if(!t.useCustomExtents)return r.getBounds();var n=t.customDisplayExtent.slice(),a=e.getClosestIJKAxis().ijkMode,o=t.slice;switch(a!==t.slicingMode&&(o=e.getSliceAtPosition(t.slice)),a){case Nf.I:n[0]=o,n[1]=o;break;case Nf.J:n[2]=o,n[3]=o;break;case Nf.K:n[4]=o,n[5]=o}return r.extentToBounds(n)},e.getBoundsForSlice=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.slice,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=e.getCurrentImage();if(!a)return(0,Mr.N)();var o=a.getSpatialExtent(),i=e.getClosestIJKAxis().ijkMode,s=r;switch(i!==t.slicingMode&&(s=e.getSliceAtPosition(r)),i){case Nf.I:o[0]=s-n,o[1]=s+n;break;case Nf.J:o[2]=s-n,o[3]=s+n;break;case Nf.K:o[4]=s-n,o[5]=s+n}return a.extentToBounds(o)},e.intersectWithLineForPointPicking=function(t,r){return function(e,t,r){var n=Rf(e,t,r);if(n){var a=r.getCurrentImage().getExtent(),o=[Math.round(n.absoluteIJK[0]),Math.round(n.absoluteIJK[1]),Math.round(n.absoluteIJK[2])];return o[0]<a[0]||o[0]>a[1]||o[1]<a[2]||o[1]>a[3]||o[2]<a[4]||o[2]>a[5]?null:{t:n.t,ijk:o}}return null}(t,r,e)},e.intersectWithLineForCellPicking=function(t,r){return function(e,t,r){var n=Rf(e,t,r);if(n){var a=r.getCurrentImage().getExtent(),o=n.absoluteIJK,i=[Math.floor(o[0]),Math.floor(o[1]),Math.floor(o[2])];if(i[0]<a[0]||i[0]>a[1]-1||i[1]<a[2]||i[1]>a[3]-1||i[2]<a[4]||i[2]>(a[5]?a[5]-1:a[5]))return null;var s=[o[0]-i[0],o[1]-i[1],o[2]-i[2]];return{t:n.t,ijk:i,pCoords:s}}return null}(t,r,e)},e.getCurrentImage=function(){return e.getInputData()}}var Ff={slicingMode:Nf.NONE,closestIJKAxis:{ijkMode:Nf.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function Uf(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ff,r),Af.extend(e,t,r),ht.default.get(e,t,["slicingMode"]),ht.default.setGet(e,t,["closestIJKAxis","renderToRectangle","sliceAtFocalPoint","preferSizeOverAccuracy"]),Ef.Z.implementCoincidentTopologyMethods(e,t),Bf(e,t)}var kf=Df(Df(Df({newInstance:ht.default.newInstance(Uf,"vtkImageMapper"),extend:Uf},Vf),Lf),fn),Gf=rn.InterpolationType,Wf=ht.default.vtkErrorMacro,zf=4;var jf={independentComponents:!1,interpolationType:Gf.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1};function Hf(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,jf,r),ht.default.obj(e,t),!t.componentData){t.componentData=[];for(var n=0;n<zf;n++)t.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}ht.default.setGet(e,t,["independentComponents","interpolationType","colorWindow","colorLevel","ambient","diffuse","opacity","useLookupTableScalarRange"]),function(e,t){t.classHierarchy.push("vtkImageProperty"),e.getMTime=function(){for(var e,r=t.mtime,n=0;n<zf;n++)t.componentData[n].rGBTransferFunction&&(r=r>(e=t.componentData[n].rGBTransferFunction.getMTime())?r:e),t.componentData[n].piecewiseFunction&&(r=r>(e=t.componentData[n].piecewiseFunction.getMTime())?r:e);return r},e.setRGBTransferFunction=function(r,n){var a=r,o=n;return Number.isInteger(r)||(o=r,a=0),t.componentData[a].rGBTransferFunction!==o&&(t.componentData[a].rGBTransferFunction=o,e.modified(),!0)},e.getRGBTransferFunction=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.componentData[e].rGBTransferFunction},e.setPiecewiseFunction=function(r,n){var a=r,o=n;return Number.isInteger(r)||(o=r,a=0),t.componentData[a].piecewiseFunction!==o&&(t.componentData[a].piecewiseFunction=o,e.modified(),!0)},e.getPiecewiseFunction=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.componentData[e].piecewiseFunction},e.setScalarOpacity=function(t,r){var n=t,a=r;return Number.isInteger(t)||(a=t,n=0),e.setPiecewiseFunction(n,a)},e.getScalarOpacity=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e.getPiecewiseFunction(t)},e.setComponentWeight=function(r,n){if(r<0||r>=zf)return Wf("Invalid index"),!1;var a=Math.min(1,Math.max(0,n));return t.componentData[r].componentWeight!==a&&(t.componentData[r].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=zf?(Wf("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(Gf.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(Gf.LINEAR)},e.getInterpolationTypeAsString=function(){return ht.default.enumToString(Gf,t.interpolationType)}}(e,t)}var Kf={newInstance:ht.default.newInstance(Hf,"vtkImageProperty"),extend:Hf},Zf=ht.default.vtkDebugMacro;var Xf={mapper:null,property:null,bounds:[1,-1,1,-1,1,-1]};function qf(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xf,r),ef.ZP.extend(e,t,r),t.boundsMTime={},ht.default.obj(t.boundsMTime),ht.default.set(e,t,["property"]),ht.default.setGet(e,t,["mapper"]),ht.default.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkImageSlice"),e.getActors=function(){return e},e.getImages=function(){return e},e.getIsOpaque=function(){if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.property||e.getProperty();var r=t.property.getOpacity()>=1;return r&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return!1},e.makeProperty=Kf.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var r,n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!(r=[n,t.mapperBounds],r[0].map((function(e,t){return r.map((function(e){return e[t]}))}))).reduce((function(e,t){return e&&t[0]===t[1]}),!0)||e.getMTime()>t.boundsMTime.getMTime()){Zf("Recomputing bounds..."),t.mapperBounds=n.map((function(e){return e}));var a=[];Jd.ZP.getCorners(n,a),e.computeMatrix();var o=new Float64Array(16);ot._E.transpose(o,t.matrix),a.forEach((function(e){return ot.R3.transformMat4(e,e,o)})),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map((function(e,t){return t%2==0?a.reduce((function(e,r){return e>r[t/2]?r[t/2]:e}),e):a.reduce((function(e,r){return e<r[(t-1)/2]?r[(t-1)/2]:e}),e)})),t.boundsMTime.modified()}return t.bounds},e.getBoundsForSlice=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=t.mapper.getBoundsForSlice(r,n);if(!a||6!==a.length)return a;if(a[0]>a[1])return a;var o=[];Jd.ZP.getCorners(a,o),e.computeMatrix();var i=new Float64Array(16);ot._E.transpose(i,t.matrix),o.forEach((function(e){return ot.R3.transformMat4(e,e,i)}));var s=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];return s=s.map((function(e,t){return t%2==0?o.reduce((function(e,r){return e>r[t/2]?r[t/2]:e}),e):o.reduce((function(e,r){return e<r[(t-1)/2]?r[(t-1)/2]:e}),e)})),s},e.getMinXBound=function(){return e.getBounds(),t.bounds[0]},e.getMaxXBound=function(){return e.getBounds(),t.bounds[1]},e.getMinYBound=function(){return e.getBounds(),t.bounds[2]},e.getMaxYBound=function(){return e.getBounds(),t.bounds[3]},e.getMinZBound=function(){return e.getBounds(),t.bounds[4]},e.getMaxZBound=function(){return e.getBounds(),t.bounds[5]},e.getMTime=function(){var e=t.mtime;if(null!==t.property){var r=t.property.getMTime();e=r>e?r:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var r=t.mapper.getMTime();e=r>e?r:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(r=t.mapper.getInput().getMTime())>e?r:e)}if(null!==t.property){var n=t.property.getMTime();e=n>e?n:e,null!==t.property.getRGBTransferFunction()&&(e=(n=t.property.getRGBTransferFunction().getMTime())>e?n:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()}}(e,t)}var Yf={newInstance:ht.default.newInstance(qf,"vtkImageSlice"),extend:qf};function $f(e){return Eu(e)}function Qf(e,t){const r=$f(e);return r.invert(),r.transformPoint(t)}function Jf(e,t){return $f(e).transformPoint(t)}function ep(e,t=!1){const r=e.canvas.width,n=e.canvas.height;!function(e){const{canvas:t}=e,{clientWidth:r,clientHeight:n}=t;t.width===r&&t.height===n||(t.width=r,t.height=n)}(e),void 0!==e.image&&(t||function(e,t,r){const n=e.viewport.scale,a=Ou(e.image,e.viewport.rotation),o=Math.round(a.width*n),i=Math.round(a.height*n),s=e.viewport.translation.x,l=e.viewport.translation.y;return o===t&&i<=r||o<=t&&i===r&&0===s&&0===l}(e,r,n)?function(e){const{image:t}=e;e.viewport.scale=Iu(e.canvas,t,e.viewport.rotation).scaleFactor,e.viewport.translation.x=0,e.viewport.translation.y=0}(e):function(e,t,r){const n=e.viewport.scale,a=e.canvas.width/t,o=e.canvas.height/r,i=Math.sqrt(a*o);e.viewport.scale=i*n}(e,r,n))}const tp=class extends Sf{constructor(e){super(e),this.voiUpdatedWithSetProperties=!1,this.invert=!1,this.initialInvert=!1,this.stackInvalidated=!1,this._publishCalibratedEvent=!1,this.useNativeDataType=!1,this.updateRenderingPipeline=()=>{this._configureRenderingPipeline()},this.resize=()=>{this.useCPURendering&&this._resizeCPU()},this._resizeCPU=()=>{this._cpuFallbackEnabledElement.viewport&&ep(this._cpuFallbackEnabledElement)},this.getFrameOfReferenceUID=()=>{const e=this.getCurrentImageId();if(!e)return;const t=ut("imagePlaneModule",e);return t?t.frameOfReferenceUID:void 0},this.getCornerstoneImage=()=>this.csImage,this.createActorMapper=e=>{const t=kf.newInstance();t.setInputData(e);const r=Yf.newInstance();r.setMapper(t);const{preferSizeOverAccuracy:n}=Qe().rendering;return n&&t.setPreferSizeOverAccuracy(!0),e.getPointData().getNumberOfComponents()>1&&r.getProperty().setIndependentComponents(!1),r},this.getProperties=()=>{const{voiRange:e,VOILUTFunction:t,interpolationType:r,invert:n,voiUpdatedWithSetProperties:a}=this;return{voiRange:e,VOILUTFunction:t,interpolationType:r,invert:n,rotation:this.getRotation(),isComputedVOI:!a}},this.getRotationCPU=()=>{const{viewport:e}=this._cpuFallbackEnabledElement;return e.rotation},this.getRotationGPU=()=>{const{viewUp:e,viewPlaneNormal:t,flipVertical:r}=this.getCamera(),n=r?ot.R3.negate(ot.R3.create(),this.initialViewUp):this.initialViewUp,a=180*ot.R3.angle(n,e)/Math.PI,o=ot.R3.cross(ot.R3.create(),n,e);return ot.R3.dot(o,t)>=0?a:(360-a)%360},this.renderImageObject=e=>{this._setCSImage(e);(this.useCPURendering?this._updateToDisplayImageCPU:this._updateActorToDisplayImageId).call(this,e)},this._setCSImage=e=>{e.isPreScaled=e.preScale?.scaled,this.csImage=e},this.canvasToWorldCPU=e=>{if(!this._cpuFallbackEnabledElement.image)return;const[t,r]=Qf(this._cpuFallbackEnabledElement,e),{origin:n,spacing:a,direction:o}=this.getImageData(),i=ot.R3.fromValues(0,0,0),s=o.slice(0,3),l=o.slice(3,6);return ot.R3.scaleAndAdd(i,n,s,t*a[0]),ot.R3.scaleAndAdd(i,i,l,r*a[1]),[i[0],i[1],i[2]]},this.worldToCanvasCPU=e=>{const{spacing:t,direction:r,origin:n}=this.getImageData(),a=r.slice(0,3),o=r.slice(3,6),i=ot.R3.subtract(ot.R3.create(),e,n),s=[ot.R3.dot(i,a)/t[0],ot.R3.dot(i,o)/t[1]];return Jf(this._cpuFallbackEnabledElement,s)},this.canvasToWorldGPU=e=>{const t=this.getRenderer(),r=this.getVtkActiveCamera(),n=r.getClippingRange(),a=r.getDistance();r.setClippingRange(a,a+.1);const o=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),i=o.getSize(),s=window.devicePixelRatio||1,l=[e[0]*s,e[1]*s],c=[l[0]+this.sx,l[1]+this.sy];c[1]=i[1]-c[1];const u=o.displayToWorld(c[0],c[1],0,t);return r.setClippingRange(n[0],n[1]),[u[0],u[1],u[2]]},this.worldToCanvasGPU=e=>{const t=this.getRenderer(),r=this.getVtkActiveCamera(),n=r.getClippingRange(),a=r.getDistance();r.setClippingRange(a,a+.1);const o=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),i=o.getSize(),s=o.worldToDisplay(...e,t);s[1]=i[1]-s[1];const l=[s[0]-this.sx,s[1]-this.sy];r.setClippingRange(n[0],n[1]);const c=window.devicePixelRatio||1;return[l[0]/c,l[1]/c]},this.getCurrentImageIdIndex=()=>this.currentImageIdIndex,this.getTargetImageIdIndex=()=>this.targetImageIdIndex,this.getImageIds=()=>this.imageIds,this.getCurrentImageId=()=>this.imageIds[this.currentImageIdIndex],this.hasImageId=e=>this.imageIds.includes(e),this.hasImageURI=e=>{const t=this.imageIds;for(let r=0;r<t.length;r++)if(me(t[r])===e)return!0;return!1},this.customRenderViewportToCanvas=()=>{if(!this.useCPURendering)throw new Error("Custom cpu rendering pipeline should only be hit in CPU rendering mode");return this._cpuFallbackEnabledElement.image?(td(this._cpuFallbackEnabledElement,this.cpuRenderingInvalidated),this.cpuRenderingInvalidated=!1):this.fillWithBackgroundColor(),{canvas:this.canvas,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,viewportStatus:this.viewportStatus}},this.renderingPipelineFunctions={getImageData:{cpu:this.getImageDataCPU,gpu:this.getImageDataGPU},setColormap:{cpu:this.setColormapCPU,gpu:this.setColormapGPU},getCamera:{cpu:this.getCameraCPU,gpu:super.getCamera},setCamera:{cpu:this.setCameraCPU,gpu:super.setCamera},setVOI:{cpu:this.setVOICPU,gpu:this.setVOIGPU},getRotation:{cpu:this.getRotationCPU,gpu:this.getRotationGPU},setInterpolationType:{cpu:this.setInterpolationTypeCPU,gpu:this.setInterpolationTypeGPU},setInvertColor:{cpu:this.setInvertColorCPU,gpu:this.setInvertColorGPU},resetCamera:{cpu:(e=!0,t=!0)=>(this.resetCameraCPU(e,t),!0),gpu:(e=!0,t=!0)=>(this.resetCameraGPU(e,t),!0)},canvasToWorld:{cpu:this.canvasToWorldCPU,gpu:this.canvasToWorldGPU},worldToCanvas:{cpu:this.worldToCanvasCPU,gpu:this.worldToCanvasGPU},getRenderer:{cpu:()=>this.getCPUFallbackError("getRenderer"),gpu:super.getRenderer},getDefaultActor:{cpu:()=>this.getCPUFallbackError("getDefaultActor"),gpu:super.getDefaultActor},getActors:{cpu:()=>this.getCPUFallbackError("getActors"),gpu:super.getActors},getActor:{cpu:()=>this.getCPUFallbackError("getActor"),gpu:super.getActor},setActors:{cpu:()=>this.getCPUFallbackError("setActors"),gpu:super.setActors},addActors:{cpu:()=>this.getCPUFallbackError("addActors"),gpu:super.addActors},addActor:{cpu:()=>this.getCPUFallbackError("addActor"),gpu:super.addActor},removeAllActors:{cpu:()=>this.getCPUFallbackError("removeAllActors"),gpu:super.removeAllActors},unsetColormap:{cpu:this.unsetColormapCPU,gpu:this.unsetColormapGPU}},this.scaling={},this.modality=null,this.useCPURendering=Ze(),this.useNativeDataType=this._shouldUseNativeDataType(),this._configureRenderingPipeline(),this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport(),this.imageIds=[],this.currentImageIdIndex=0,this.targetImageIdIndex=0,this.cameraFocalPointOnRender=[0,0,0],this.resetCamera(),this.initializeElementDisabledHandler()}setUseCPURendering(e){this.useCPURendering=e,this._configureRenderingPipeline()}static get useCustomRenderingPipeline(){return Ze()}_configureRenderingPipeline(){this.useNativeDataType=this._shouldUseNativeDataType(),this.useCPURendering=Ze();for(const[e,t]of Object.entries(this.renderingPipelineFunctions))this[e]=this.useCPURendering?t.cpu:t.gpu;this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport()}_resetCPUFallbackElement(){this._cpuFallbackEnabledElement={canvas:this.canvas,renderingTools:{},transform:new Ru,viewport:{rotation:0}}}_resetGPUViewport(){const e=this.getRenderer(),t=Dc.ZP.newInstance();e.setActiveCamera(t);const r=[0,0,-1];this.initialViewUp=[0,-1,0],t.setDirectionOfProjection(-r[0],-r[1],-r[2]),t.setViewUp(...this.initialViewUp),t.setParallelProjection(!0),t.setThicknessFromFocalPoint(.1),t.setFreezeFocalPoint(!0)}initializeElementDisabledHandler(){J.addEventListener(g.ELEMENT_DISABLED,(function e(){clearTimeout(this.debouncedTimeout),J.removeEventListener(g.ELEMENT_DISABLED,e)}))}getImageDataGPU(){const e=this.getDefaultActor();if(!e)return;if(!hd(e))return;const{actor:t}=e,r=t.getMapper().getInputData();return{dimensions:r.getDimensions(),spacing:r.getSpacing(),origin:r.getOrigin(),direction:r.getDirection(),scalarData:r.getPointData().getScalars().getData(),imageData:t.getMapper().getInputData(),metadata:{Modality:this.modality},scaling:this.scaling,hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{...this.csImage.preScale}}}getImageDataCPU(){const{metadata:e}=this._cpuFallbackEnabledElement,t=e.spacing;return{dimensions:e.dimensions,spacing:t,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality},scaling:this.scaling,imageData:{getDirection:()=>e.direction,getDimensions:()=>e.dimensions,getScalarData:()=>this.cpuImagePixelData,getSpacing:()=>t,worldToIndex:e=>{const t=this.worldToCanvasCPU(e),r=Qf(this._cpuFallbackEnabledElement,t);return[r[0],r[1],0]},indexToWorld:e=>{const t=Jf(this._cpuFallbackEnabledElement,[e[0],e[1]]);return this.canvasToWorldCPU(t)}},scalarData:this.cpuImagePixelData,hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{...this.csImage.preScale}}}buildMetadata(e){const t=e.imageId,{pixelRepresentation:r,bitsAllocated:n,bitsStored:a,highBit:o,photometricInterpretation:i,samplesPerPixel:s}=ut("imagePixelModule",t),{windowWidth:l,windowCenter:c,voiLUTFunction:u}=e,{modality:d}=ut("generalSeriesModule",t),f=ut("scalingModule",t);"PT"===d&&f&&this._addScalingToViewport(f),this.modality=d;const p=this._getValidVOILUTFunction(u);this.VOILUTFunction=p,this.calibration=null;let g=this._getImagePlaneModule(t);return this.useCPURendering||(g=this.calibrateIfNecessary(t,g)),{imagePlaneModule:g,imagePixelModule:{bitsAllocated:n,bitsStored:a,samplesPerPixel:s,highBit:o,photometricInterpretation:i,pixelRepresentation:r,windowWidth:l,windowCenter:c,modality:d,voiLUTFunction:p}}}calibrateIfNecessary(e,t){const r=ut("calibratedPixelSpacing",e),n=this.calibration!==r,{scale:a}=r||{};return this.hasPixelSpacing=a>0||t.rowPixelSpacing>0,t.calibration=r,n?(this.calibration=r,this._publishCalibratedEvent=!0,this._calibrationEvent={scale:a,calibration:r},t):t}setProperties({voiRange:e,VOILUTFunction:t,invert:r,interpolationType:n,rotation:a}={},o=!1){if(this.viewportStatus=this.csImage?G.PRE_RENDER:G.LOADING,void 0!==e){const t=!0;this.setVOI(e,{suppressEvents:o,voiUpdatedWithSetProperties:t})}void 0!==t&&this.setVOILUTFunction(t,o),void 0!==r&&this.setInvertColor(r),void 0!==n&&this.setInterpolationType(n),void 0!==a&&this.getRotation()!==a&&this.setRotation(a)}resetProperties(){this.cpuRenderingInvalidated=!0,this.voiUpdatedWithSetProperties=!1,this.viewportStatus=G.PRE_RENDER,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={}),this._resetProperties(),this.render()}_resetProperties(){let e;e=this._isCurrentImagePTPrescaled()?this._getDefaultPTPrescaledVOIRange():this._getVOIRangeForCurrentImage(),this.setVOI(e),0!==this.getRotation()&&this.setRotation(0),this.setInterpolationType(T.LINEAR),this.setInvertColor(this.initialInvert)}_setPropertiesFromCache(){const{interpolationType:e,invert:t}=this;let r;r=this.voiUpdatedWithSetProperties?this.voiRange:this._isCurrentImagePTPrescaled()?this._getDefaultPTPrescaledVOIRange():this._getVOIRangeForCurrentImage()??this.voiRange,this.setVOI(r),this.setInterpolationType(e),this.setInvertColor(t)}getCameraCPU(){const{metadata:e,viewport:t}=this._cpuFallbackEnabledElement,{direction:r}=e,n=r.slice(6,9).map((e=>-e));let a=r.slice(3,6).map((e=>-e));if(t.rotation){const e=ot._E.fromRotation(ot._E.create(),t.rotation*Math.PI/180,n);a=ot.R3.transformMat4(ot.R3.create(),a,e)}const o=[this.element.clientWidth/2,this.element.clientHeight/2],i=this.canvasToWorld(o),s=this.canvasToWorld([0,0]),l=this.canvasToWorld([0,this.element.clientHeight]);return{parallelProjection:!0,focalPoint:i,position:[0,0,0],parallelScale:ot.R3.distance(s,l)/2,scale:t.scale,viewPlaneNormal:[n[0],n[1],n[2]],viewUp:[a[0],a[1],a[2]],flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}setCameraCPU(e){const{viewport:t,image:r}=this._cpuFallbackEnabledElement,n=this.getCameraCPU(),{focalPoint:a,parallelScale:o,scale:i,flipHorizontal:s,flipVertical:l}=e,{clientHeight:c}=this.element;if(a){const e=this.worldToCanvasCPU(a),r=Qf(this._cpuFallbackEnabledElement,e),o=this.worldToCanvasCPU(n.focalPoint),i=Qf(this._cpuFallbackEnabledElement,o),s=ot.K4.create();ot.K4.subtract(s,ot.K4.fromValues(r[0],r[1]),ot.K4.fromValues(i[0],i[1]));const l=function(e,t){const{hflip:r,vflip:n,rotation:a}=t;if(e.x*=r?-1:1,e.y*=n?-1:1,0!==a){const t=a*Math.PI/180,r=Math.cos(t),n=Math.sin(t),o=e.x*r-e.y*n,i=e.x*n+e.y*r;e.x=o,e.y=i}return e}({x:s[0],y:s[1]},t);t.translation.x-=l.x,t.translation.y-=l.y}if(o){const{rowPixelSpacing:e}=r,n=c*e*.5/o;t.scale=n,t.parallelScale=o}if(i){const{rowPixelSpacing:e}=r;t.scale=i,t.parallelScale=c*e*.5/i}void 0===s&&void 0===l||this.setFlipCPU({flipHorizontal:s,flipVertical:l}),this._cpuFallbackEnabledElement.transform=Eu(this._cpuFallbackEnabledElement);const u={previousCamera:n,camera:this.getCamera(),element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,rotation:this.getRotation()};se(this.element,g.CAMERA_MODIFIED,u)}setFlipCPU({flipHorizontal:e,flipVertical:t}){const{viewport:r}=this._cpuFallbackEnabledElement;void 0!==e&&(r.hflip=e,this.flipHorizontal=r.hflip),void 0!==t&&(r.vflip=t,this.flipVertical=r.vflip)}setRotation(e){const t=this.getCamera();this.useCPURendering?this.setRotationCPU(e):this.setRotationGPU(e);const r={previousCamera:t,camera:this.getCamera(),element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,rotation:e};se(this.element,g.CAMERA_MODIFIED,r)}setVOILUTFunction(e,t){if(this.useCPURendering)throw new Error("VOI LUT function is not supported in CPU rendering");const r=this._getValidVOILUTFunction(e);let n=!1;this.VOILUTFunction!==_.LINEAR&&r===_.LINEAR&&(n=!0),this.VOILUTFunction=r;const{voiRange:a}=this.getProperties();this.setVOI(a,{suppressEvents:t,forceRecreateLUTFunction:n})}setRotationCPU(e){const{viewport:t}=this._cpuFallbackEnabledElement;t.rotation=e}setRotationGPU(e){const{flipVertical:t}=this.getCamera(),r=t?ot.R3.negate(ot.R3.create(),this.initialViewUp):this.initialViewUp;this.setCamera({viewUp:r}),this.getVtkActiveCamera().roll(-e)}setInterpolationTypeGPU(e){const t=this.getDefaultActor();if(!t)return;if(!hd(t))return;const{actor:r}=t;r.getProperty().setInterpolationType(e),this.interpolationType=e}setInterpolationTypeCPU(e){const{viewport:t}=this._cpuFallbackEnabledElement;t.pixelReplication=e!==T.LINEAR,this.interpolationType=e}setInvertColorCPU(e){const{viewport:t}=this._cpuFallbackEnabledElement;t&&(t.invert=e,this.invert=e)}setInvertColorGPU(e){const t=this.getDefaultActor();if(t&&hd(t))if(vd(t,"vtkVolume")){const r=t.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&ee(r),this.invert=e}else if(vd(t,"vtkImageSlice")){const r=t.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&ee(r),this.invert=e}}setVOICPU(e,t={}){const{suppressEvents:r=!1}=t,{viewport:n,image:a}=this._cpuFallbackEnabledElement;if(!n||!a)return;if(void 0===e){const{windowWidth:t,windowCenter:r}=a,o=Array.isArray(t)?t[0]:t,i=Array.isArray(r)?r[0]:r;n.voi={windowWidth:o,windowCenter:i};const{lower:s,upper:l}=jd(o,i);e={lower:s,upper:l}}else{const{lower:t,upper:r}=e,{windowCenter:a,windowWidth:o}=zd(t,r);n.voi||(n.voi={windowWidth:0,windowCenter:0}),n.voi.windowWidth=o,n.voi.windowCenter=a}this.voiRange=e;const o={viewportId:this.id,range:e};r||se(this.element,g.VOI_MODIFIED,o)}setVOIGPU(e,t={}){const{suppressEvents:r=!1,forceRecreateLUTFunction:n=!1,voiUpdatedWithSetProperties:a=!1}=t;if(e&&this.voiRange&&this.voiRange.lower===e.lower&&this.voiRange.upper===e.upper&&!n&&!this.stackInvalidated)return;const o=this.getDefaultActor();if(!o)return;if(!hd(o))return;const i=o.actor;let s=e;if(void 0===s){const e=i.getMapper().getInputData().getPointData().getScalars().getRange();s={lower:e[0],upper:e[1]}}i.getProperty().setUseLookupTableScalarRange(!0);let l=i.getProperty().getRGBTransferFunction(0);const c=this.VOILUTFunction===_.SAMPLED_SIGMOID;if(c||!l||n){l=(c?ne:oe)(s),this.invert&&ee(l),i.getProperty().setRGBTransferFunction(0,l)}if(c||l.setRange(s.lower,s.upper),this.voiRange=s,this.voiUpdatedWithSetProperties||(this.voiUpdatedWithSetProperties=a),r)return;const u={viewportId:this.id,range:s,VOILUTFunction:this.VOILUTFunction};se(this.element,g.VOI_MODIFIED,u)}_addScalingToViewport(e){if(this.scaling.PT)return;const{suvbw:t,suvlbm:r,suvbsa:n}=e,a={};r&&(a.suvbwToSuvlbm=r/t),n&&(a.suvbwToSuvbsa=n/t),this.scaling.PT=a}_getNumCompsFromPhotometricInterpretation(e){let t=1;return"RGB"!==e&&-1===e.indexOf("YBR")&&"PALETTE COLOR"!==e||(t=3),t}_getImageDataMetadata(e){const{imagePlaneModule:t,imagePixelModule:r}=this.buildMetadata(e);let n,a;n=t.rowCosines,a=t.columnCosines,null!=n&&null!=a||(n=[1,0,0],a=[0,1,0]);const o=ot.R3.fromValues(n[0],n[1],n[2]),i=ot.R3.fromValues(a[0],a[1],a[2]),s=ot.R3.create();ot.R3.cross(s,o,i);let l=t.imagePositionPatient;null==l&&(l=[0,0,0]);const c=t.columnPixelSpacing||e.columnPixelSpacing,u=t.rowPixelSpacing||e.rowPixelSpacing,d=e.columns,f=e.rows,p=e.numComps||this._getNumCompsFromPhotometricInterpretation(r.photometricInterpretation);return{bitsAllocated:r.bitsAllocated,numComps:p,origin:l,direction:[...o,...i,...s],dimensions:[d,f,1],spacing:[c,u,1],numVoxels:d*f*1,imagePlaneModule:t,imagePixelModule:r}}_getCameraOrientation(e){const t=e.slice(6,9).map((e=>-e)),r=e.slice(3,6).map((e=>-e));return{viewPlaneNormal:[t[0],t[1],t[2]],viewUp:[r[0],r[1],r[2]]}}_createVTKImageData({origin:e,direction:t,dimensions:r,spacing:n,numComps:a,pixelArray:o}){const i=new o.constructor(o.length),s=re.ZP.newInstance({name:"Pixels",numberOfComponents:a,values:i});this._imageData=Jo.ZP.newInstance(),this._imageData.setDimensions(r),this._imageData.setSpacing(n),this._imageData.setDirection(t),this._imageData.setOrigin(e),this._imageData.getPointData().setScalars(s)}async setStack(e,t=0){this._throwIfDestroyed(),this.imageIds=e,this.currentImageIdIndex=t,this.targetImageIdIndex=t,this.stackInvalidated=!0,this.flipVertical=!1,this.flipHorizontal=!1,this.voiRange=null,this.interpolationType=T.LINEAR,this.invert=!1,this.viewportStatus=G.LOADING,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={},delete this._cpuFallbackEnabledElement.viewport.colormap);const r=await this._setImageIdIndex(t),n={imageIds:e,viewportId:this.id,element:this.element,currentImageIdIndex:t};return se(J,g.STACK_VIEWPORT_NEW_STACK,n),r}_throwIfDestroyed(){if(this.isDisabled)throw new Error("The stack viewport has been destroyed and is no longer usable. Renderings will not be performed. If you are using the same viewportId and have re-enabled the viewport, you need to grab the new viewport instance using renderingEngine.getViewport(viewportId), instead of using your lexical scoped reference to the viewport instance.")}_checkVTKImageDataMatchesCornerstoneImage(e,t){if(!t)return!1;const[r,n]=t.getSpacing(),[a,o]=t.getDimensions(),i=this._getImagePlaneModule(e.imageId),s=t.getDirection(),l=s.slice(0,3),c=s.slice(3,6),u=t.getPointData().getScalars().getDataType(),d=Ce(r,e.columnPixelSpacing),f=Ce(n,e.rowPixelSpacing);return(d||null===e.columnPixelSpacing&&1===r)&&(f||null===e.rowPixelSpacing&&1===n)&&a===e.columns&&o===e.rows&&Ce(i.rowCosines,l)&&Ce(i.columnCosines,c)&&(!this.useNativeDataType||u===e.getPixelData().constructor.name)}_updateVTKImageDataFromCornerstoneImage(e){let t=this._getImagePlaneModule(e.imageId).imagePositionPatient;null==t&&(t=[0,0,0]),this._imageData.setOrigin(t),this._updatePixelData(e)}_updatePixelData(e){const t=e.getPixelData(),r=this._imageData.getPointData().getScalars().getData();if(e.color&&e.rgba){const n=new Uint8Array(e.columns*e.rows*3);for(let r=0;r<e.columns*e.rows;r++)n[3*r]=t[4*r],n[3*r+1]=t[4*r+1],n[3*r+2]=t[4*r+2];e.rgba=!1,e.getPixelData=()=>n,r.set(n)}else r.set(t);this._imageData.modified()}async _loadAndDisplayImage(e,t){return await(this.useCPURendering?this._loadAndDisplayImageCPU(e,t):this._loadAndDisplayImageGPU(e,t)),e}_loadAndDisplayImageCPU(e,t){return new Promise(((r,n)=>{function a(e,t,n){if(this.currentImageIdIndex!==t)return;const a=e.getPixelData(),o=e.preScale,i=o?.scalingParameters;if(a instanceof Float32Array&&(o?.scaled&&i?.rescaleIntercept%1!=0||i?.rescaleSlope%1!=0)){const t={min:e.maxPixelValue,max:e.minPixelValue},r=Math.abs(t.max-t.min)/65535,n=t.min,o=a.length,i=new Uint16Array(o);let s=65535,l=0;for(let e=0;e<o;e++){const t=Math.floor((a[e]-n)/r);i[e]=t,s=Math.min(s,t),l=Math.max(l,t)}e.minPixelValue=s,e.maxPixelValue=l,e.slope=r,e.intercept=n,e.getPixelData=()=>i,e.preScale={...e.preScale,scaled:!1}}this._setCSImage(e),this.viewportStatus=G.PRE_RENDER;const s={image:e,imageId:n,imageIdIndex:t,viewportId:this.id,renderingEngineId:this.renderingEngineId};se(this.element,g.STACK_NEW_IMAGE,s),this._updateToDisplayImageCPU(e),this.render(),this.currentImageIdIndex=t,r(n)}function o(e,t,r){const a={error:e,imageIdIndex:t,imageId:r};this.suppressEvents||se(J,g.IMAGE_LOAD_ERROR,a),n(e)}const i=h.Interaction,s={imageId:e},l={imageId:e,imageIdIndex:t,viewportId:this.id,renderingEngineId:this.renderingEngineId};se(this.element,g.PRE_STACK_NEW_IMAGE,l),iu.addRequest(function(e,t,r){return du(e,r).then((r=>{a.call(this,r,t,e)}),(r=>{o.call(this,r,t,e)}))}.bind(this,e,t,{preScale:{enabled:!0},useRGBA:!0}),i,s,-5)}))}_loadAndDisplayImageGPU(e,t){return new Promise(((r,n)=>{function a(e,t,n){if(this.currentImageIdIndex!==t)return;const a=this.csImage?.imageFrame,o=e?.imageFrame;a?.photometricInterpretation===o?.photometricInterpretation&&this.csImage?.photometricInterpretation===e?.photometricInterpretation||(this.stackInvalidated=!0),this._setCSImage(e);const i={image:e,imageId:n,imageIdIndex:t,viewportId:this.id,renderingEngineId:this.renderingEngineId};se(this.element,g.STACK_NEW_IMAGE,i),this._updateActorToDisplayImageId(e),this.render(),this.currentImageIdIndex=t,r(n)}function o(e,t,r){const a={error:e,imageIdIndex:t,imageId:r};se(J,g.IMAGE_LOAD_ERROR,a),n(e)}const i=h.Interaction,s={imageId:e},l={targetBuffer:{type:this.useNativeDataType?void 0:"Float32Array"},preScale:{enabled:!0},useRGBA:!1},c={imageId:e,imageIdIndex:t,viewportId:this.id,renderingEngineId:this.renderingEngineId};se(this.element,g.PRE_STACK_NEW_IMAGE,c),iu.addRequest(function(e,t,r){return du(e,r).then((r=>{a.call(this,r,t,e)}),(r=>{o.call(this,r,t,e)}))}.bind(this,e,t,l),i,s,-5)}))}_updateToDisplayImageCPU(e){const t=this._getImageDataMetadata(e),r=Au(this.canvas,e,this.modality,this._cpuFallbackEnabledElement.viewport.colormap),{windowCenter:n,windowWidth:a}=r.voi;this.voiRange=jd(a,n),this._cpuFallbackEnabledElement.image=e,this._cpuFallbackEnabledElement.metadata={...t},this.cpuImagePixelData=e.getPixelData();const o=Object.assign({},r,this._cpuFallbackEnabledElement.viewport);this._cpuFallbackEnabledElement.viewport=this.stackInvalidated?r:o,this.stackInvalidated=!1,this.cpuRenderingInvalidated=!0,this._cpuFallbackEnabledElement.transform=Eu(this._cpuFallbackEnabledElement)}_updateActorToDisplayImageId(e){const t=this._checkVTKImageDataMatchesCornerstoneImage(e,this._imageData),r=this.getRenderer().getActiveCamera(),n=ti()(this.getCamera());if(t&&!this.stackInvalidated){this._updateVTKImageDataFromCornerstoneImage(e);const t=this.getCamera(),a=ot.R3.subtract(ot.R3.create(),this.cameraFocalPointOnRender,t.focalPoint);this.resetCameraNoEvent(),this.setCameraNoEvent({flipHorizontal:n.flipHorizontal,flipVertical:n.flipVertical,viewUp:n.viewUp});const{focalPoint:o}=this.getCamera();return this.cameraFocalPointOnRender=o,r.setFreezeFocalPoint(!0),this._restoreCameraProps(t,n,a),void this._setPropertiesFromCache()}const{origin:a,direction:o,dimensions:i,spacing:s,numComps:l,imagePixelModule:c}=this._getImageDataMetadata(e);this._createVTKImageData({origin:a,direction:o,dimensions:i,spacing:s,numComps:l,pixelArray:e.getPixelData()}),this._updateVTKImageDataFromCornerstoneImage(e);const u=this.createActorMapper(this._imageData),d=[];d.push({uid:this.id,actor:u}),this.setActors(d);const{viewPlaneNormal:f,viewUp:p}=this._getCameraOrientation(o);this.setCameraNoEvent({viewUp:p,viewPlaneNormal:f}),this.initialViewUp=p,this.resetCameraNoEvent(),this.triggerCameraEvent(this.getCamera(),n),r.setFreezeFocalPoint(!0);const g="MONOCHROME1"===c.photometricInterpretation;this.stackInvalidated=!0,this.setVOI(this._getInitialVOIRange(e),{forceRecreateLUTFunction:!!g}),this.initialInvert=!!g,this.setInvertColor(this.invert||this.initialInvert),this.cameraFocalPointOnRender=this.getCamera().focalPoint,this.stackInvalidated=!1,this._publishCalibratedEvent&&this.triggerCalibrationEvent()}_getInitialVOIRange(e){if(this.voiRange&&this.voiUpdatedWithSetProperties)return this.voiRange;const{windowCenter:t,windowWidth:r}=e;let n=this._getVOIRangeFromWindowLevel(r,t);return n=this._getPTPreScaledRange()||n,n}_getPTPreScaledRange(){if(this._isCurrentImagePTPrescaled())return this._getDefaultPTPrescaledVOIRange()}_isCurrentImagePTPrescaled(){return!("PT"!==this.modality||!this.csImage.isPreScaled)&&!!this.csImage.preScale?.scalingParameters?.suvbw}_getDefaultPTPrescaledVOIRange(){return{lower:0,upper:5}}_getVOIRangeFromWindowLevel(e,t){let r,n;if("number"==typeof t&&"number"==typeof e?(r=t,n=e):Array.isArray(t)&&Array.isArray(e)&&(r=t[0],n=e[0]),void 0!==r&&void 0!==n)return jd(n,r)}async _setImageIdIndex(e){if(e>=this.imageIds.length)throw new Error(`ImageIdIndex provided ${e} is invalid, the stack only has ${this.imageIds.length} elements`);this.currentImageIdIndex=e,this.hasPixelSpacing=!0,this.viewportStatus=G.PRE_RENDER;return await this._loadAndDisplayImage(this.imageIds[e],e)}resetCameraCPU(e,t){const{image:r}=this._cpuFallbackEnabledElement;if(!r)return;!function(e,t=!0,r=!0){const{canvas:n,image:a,viewport:o}=e,i=Iu(n,a,0).scaleFactor;o.vflip=!1,o.hflip=!1,t&&(o.translation.x=0,o.translation.y=0),r&&(o.displayedArea.tlhc.x=1,o.displayedArea.tlhc.y=1,o.displayedArea.brhc.x=a.columns,o.displayedArea.brhc.y=a.rows,o.scale=i)}(this._cpuFallbackEnabledElement,e,t);const{scale:n}=this._cpuFallbackEnabledElement.viewport,{clientWidth:a,clientHeight:o}=this.element,i=[a/2,o/2],s=this.canvasToWorldCPU(i);this.setCameraCPU({focalPoint:s,scale:n})}resetCameraGPU(e,t){this.setCamera({flipHorizontal:!1,flipVertical:!1,viewUp:this.initialViewUp});return super.resetCamera(e,t,!0)}scroll(e,t=!0,r=!1){const n=this.imageIds,a=this.targetImageIdIndex,o=n.length;let i=a+e;i=Math.max(0,i),r?i%=o:i=Math.min(o-1,i),this.targetImageIdIndex=i;const s=n[i];qd.isLoaded(s)||!t?this.setImageIdIndex(i):(clearTimeout(this.debouncedTimeout),this.debouncedTimeout=window.setTimeout((()=>{this.setImageIdIndex(i)}),40));const l={newImageIdIndex:i,imageId:s,direction:e};i!==a&&se(this.element,g.STACK_VIEWPORT_SCROLL,l)}async setImageIdIndex(e){if(this._throwIfDestroyed(),this.currentImageIdIndex===e)return this.getCurrentImageId();return this._setImageIdIndex(e)}calibrateSpacing(e){const t=this.getImageIds().indexOf(e);this.stackInvalidated=!0,this._loadAndDisplayImage(e,t)}_restoreCameraProps({parallelScale:e},t,r){const n=this.getRenderer(),{position:a,focalPoint:o}=this.getCamera(),i=ot.R3.subtract(ot.R3.create(),a,r),s=ot.R3.subtract(ot.R3.create(),o,r);this.setCameraNoEvent({parallelScale:e,position:i,focalPoint:s});const l=this.getCamera();this.triggerCameraEvent(l,t);const c={type:"ResetCameraEvent",renderer:n};n.invokeEvent(c)}triggerCameraEvent(e,t){const r={previousCamera:t,camera:e,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};this.suppressEvents||se(this.element,g.CAMERA_MODIFIED,r)}triggerCalibrationEvent(){const{imageData:e}=this.getImageData(),t={element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,imageId:this.getCurrentImageId(),imageData:e,worldToIndex:e.getWorldToIndex(),...this._calibrationEvent};this.suppressEvents||se(this.element,g.IMAGE_SPACING_CALIBRATED,t),this._publishCalibratedEvent=!1}_getVOIRangeForCurrentImage(){const{windowCenter:e,windowWidth:t}=this.csImage;return this._getVOIRangeFromWindowLevel(t,e)}_getValidVOILUTFunction(e){return-1===Object.values(_).indexOf(e)&&(e=_.LINEAR),e}getCPUFallbackError(e){return new Error(`method ${e} cannot be used during CPU Fallback mode`)}fillWithBackgroundColor(){const e=this.getRenderingEngine();e&&e.fillCanvasWithBackgroundColor(this.canvas,this.options.background)}unsetColormapCPU(){delete this._cpuFallbackEnabledElement.viewport.colormap,this._cpuFallbackEnabledElement.renderingTools={},this.cpuRenderingInvalidated=!0,this.fillWithBackgroundColor(),this.render()}setColormapCPU(e){const t=Yu(e.name,e);this._cpuFallbackEnabledElement.viewport.colormap=t,this._cpuFallbackEnabledElement.renderingTools={},this.fillWithBackgroundColor(),this.cpuRenderingInvalidated=!0,this.render()}setColormapGPU(e){const t=this.getDefaultActor().actor.getProperty(),r=t.getRGBTransferFunction();if(r)r.applyColorMap(e),t.setRGBTransferFunction(0,r);else{const r=te.ZP.newInstance(),n=this._getVOIRangeForCurrentImage();r.applyColorMap(e),r.setMappingRange(n.lower,n.upper),t.setRGBTransferFunction(0,r)}this.render()}unsetColormapGPU(){throw new Error("unsetColormapGPU not implemented.")}_getImagePlaneModule(e){const t=ut("imagePlaneModule",e);ut("calibratedPixelSpacing",e);this.calibration||=t.calibration;const r={...t};return r.columnPixelSpacing||(r.columnPixelSpacing=1,this.hasPixelSpacing=this.calibration?.scale>0),r.rowPixelSpacing||(r.rowPixelSpacing=1,this.hasPixelSpacing=this.calibration?.scale>0),r.columnCosines||(r.columnCosines=[0,1,0]),r.rowCosines||(r.rowCosines=[1,0,0]),r.imagePositionPatient||(r.imagePositionPatient=[0,0,0]),r.imageOrientationPatient||(r.imageOrientationPatient=new Float32Array([1,0,0,0,1,0])),r}};const rp=class extends Pf{constructor(e){super(e),this.getRotation=()=>0,this.getCurrentImageIdIndex=()=>{},this.getCurrentImageId=()=>null;const{parallelProjection:t,orientation:r}=this.options,n=this.getVtkActiveCamera();null!=t&&n.setParallelProjection(t),r&&r!==I.ACQUISITION&&this.applyViewOrientation(r)}resetCamera(e=!0,t=!0,r=!0){super.resetCamera(e,t,r),this.resetVolumeViewportClippingRange()}setSlabThickness(e,t){return null}setBlendMode(e,t,r){return null}resetProperties(e){return null}},np={[y.ORTHOGRAPHIC]:wf,[y.PERSPECTIVE]:wf,[y.STACK]:tp,[y.VOLUME_3D]:rp};function ap(e){return np[e].useCustomRenderingPipeline}const op=class{constructor(e){if(this._needsRender=new Set,this._animationFrameSet=!1,this._animationFrameHandle=null,this.renderFrameOfReference=e=>{const t=this._getViewportsAsArray().map((t=>{if(t.getFrameOfReferenceUID()===e)return t.id}));return this.renderViewports(t)},this._renderFlaggedViewports=()=>{this._throwIfDestroyed(),this.useCPURendering||this.performVtkDrawCall();const e=this._getViewportsAsArray(),t=[];for(let r=0;r<e.length;r++){const n=e[r];if(this._needsRender.has(n.id)){const e=this.renderViewportUsingCustomOrVtkPipeline(n);if(t.push(e),n.setRendered(),this._needsRender.delete(n.id),0===this._needsRender.size)break}}this._animationFrameSet=!1,this._animationFrameHandle=null,t.forEach((e=>{e?.element&&se(e.element,g.IMAGE_RENDERED,e)}))},this.id=e||le(),this.useCPURendering=Ze(),$.set(this),!$e())throw new Error("@cornerstonejs/core is not initialized, run init() first");this.useCPURendering||(this.offscreenMultiRenderWindow=mc.newInstance(),this.offScreenCanvasContainer=document.createElement("div"),this.offscreenMultiRenderWindow.setContainer(this.offScreenCanvasContainer)),this._viewports=new Map,this.hasBeenDestroyed=!1}enableElement(e){const t=this._normalizeViewportInputEntry(e);this._throwIfDestroyed();const{element:r,viewportId:n}=t;if(!r)throw new Error("No element provided");this.getViewport(n)&&(console.log("Viewport already exists, disabling it first"),this.disableElement(n),console.log(`Viewport ${n} disabled`));const{type:a}=t,o=ap(a);this.useCPURendering||o?this.addCustomViewport(t):this.enableVTKjsDrivenViewport(t);const i=Cu(r),{background:s}=t.defaultOptions;this.fillCanvasWithBackgroundColor(i,s)}disableElement(e){this._throwIfDestroyed();const t=this.getViewport(e);if(!t)return void console.warn(`viewport ${e} does not exist`);this._resetViewport(t),ap(t.type)||this.useCPURendering||this.offscreenMultiRenderWindow.removeRenderer(e),this._removeViewport(e),t.isDisabled=!0,this._needsRender.delete(e);this.getViewports().length||this._clearAnimationFrame();this.resize(!0,!0)}setViewports(e){const t=this._normalizeViewportInputEntries(e);this._throwIfDestroyed(),this._reset();const r=[],n=[];t.forEach((e=>{this.useCPURendering||ap(e.type)?n.push(e):r.push(e)})),this.setVtkjsDrivenViewports(r),this.setCustomViewports(n)}resize(e=!0,t=!0){this._throwIfDestroyed();const r=this._getViewportsAsArray(),n=[],a=[];r.forEach((e=>{ap(e.type)?a.push(e):n.push(e)})),n.length&&this._resizeVTKViewports(n,t,e),a.length&&this._resizeUsingCustomResizeHandler(a,t,e)}getViewport(e){return this._viewports.get(e)}getViewports(){return this._throwIfDestroyed(),this._getViewportsAsArray()}getStackViewports(){this._throwIfDestroyed();return this.getViewports().filter((e=>e instanceof tp))}getVolumeViewports(){this._throwIfDestroyed();return this.getViewports().filter((e=>e instanceof Pf))}render(){const e=this.getViewports().map((e=>e.id));this._setViewportsToBeRenderedNextFrame(e)}renderViewports(e){this._setViewportsToBeRenderedNextFrame(e)}renderViewport(e){this._setViewportsToBeRenderedNextFrame([e])}destroy(){if(!this.hasBeenDestroyed){if(!this.useCPURendering){this._getViewportsAsArray().forEach((e=>{this.offscreenMultiRenderWindow.removeRenderer(e.id)})),this.offscreenMultiRenderWindow.delete(),delete this.offscreenMultiRenderWindow}this._reset(),$.delete(this.id),this.hasBeenDestroyed=!0}}fillCanvasWithBackgroundColor(e,t){const r=e.getContext("2d");let n;if(t){const e=t.map((e=>Math.floor(255*e)));n=`rgb(${e[0]}, ${e[1]}, ${e[2]})`}else n="black";r.fillStyle=n,r.fillRect(0,0,e.width,e.height)}_normalizeViewportInputEntry(e){const{type:t,defaultOptions:r}=e;let n=r;return n&&0!==Object.keys(n).length||(n={background:[0,0,0],orientation:null,displayArea:null},t===y.ORTHOGRAPHIC&&(n={...n,orientation:I.AXIAL})),{...e,defaultOptions:n}}_normalizeViewportInputEntries(e){const t=[];return e.forEach((e=>{t.push(this._normalizeViewportInputEntry(e))})),t}_resizeUsingCustomResizeHandler(e,t=!0,r=!0){e.forEach((e=>{"function"==typeof e.resize&&e.resize()})),e.forEach((e=>{const r=e.getCamera();e.resetCamera(),t&&e.setCamera(r)})),!0===r&&this.render()}_resizeVTKViewports(e,t=!0,r=!0){const n=e.map((e=>e.canvas));if(n.length){const{offScreenCanvasWidth:t,offScreenCanvasHeight:r}=this._resizeOffScreenCanvas(n);this._resize(e,t,r)}e.forEach((e=>{const r=Cu(e.element),n=r.getBoundingClientRect(),a=window.devicePixelRatio||1;r.width=n.width*a,r.height=n.height*a;const o=e.getCamera();e.resetCamera(),t&&e.setCamera(o)})),!0===r&&this.render()}enableVTKjsDrivenViewport(e){const t=this._getViewportsAsArray().filter((e=>!1===ap(e.type))),r=t.map((e=>e.canvas)),n=Cu(e.element);r.push(n);const a=window.devicePixelRatio||1,o=n.getBoundingClientRect();n.width=o.width*a,n.height=o.height*a;const{offScreenCanvasWidth:i,offScreenCanvasHeight:s}=this._resizeOffScreenCanvas(r),l=this._resize(t,i,s),c={...e,canvas:n};this.addVtkjsDrivenViewport(c,{offScreenCanvasWidth:i,offScreenCanvasHeight:s,xOffset:l})}_removeViewport(e){this.getViewport(e)?this._viewports.delete(e):console.warn(`viewport ${e} does not exist`)}addVtkjsDrivenViewport(e,t){const{element:r,canvas:n,viewportId:a,type:o,defaultOptions:i}=e;r.tabIndex=-1;const{offScreenCanvasWidth:s,offScreenCanvasHeight:l,xOffset:c}=t,{sxStartDisplayCoords:u,syStartDisplayCoords:d,sxEndDisplayCoords:f,syEndDisplayCoords:p,sx:m,sy:h,sWidth:v,sHeight:b}=this._getViewportCoordsOnOffScreenCanvas(e,s,l,c);this.offscreenMultiRenderWindow.addRenderer({viewport:[u,d,f,p],id:a,background:i.background?i.background:[0,0,0]});const T={id:a,element:r,renderingEngineId:this.id,type:o,canvas:n,sx:m,sy:h,sWidth:v,sHeight:b,defaultOptions:i||{}};let C;if(o===y.STACK)C=new tp(T);else if(o===y.ORTHOGRAPHIC||o===y.PERSPECTIVE)C=new wf(T);else{if(o!==y.VOLUME_3D)throw new Error(`Viewport Type ${o} is not supported`);C=new rp(T)}this._viewports.set(a,C);const x={element:r,viewportId:a,renderingEngineId:this.id};C.suppressEvents||se(J,g.ELEMENT_ENABLED,x)}addCustomViewport(e){const{element:t,viewportId:r,type:n,defaultOptions:a}=e;t.tabIndex=-1;const o=Cu(t),{clientWidth:i,clientHeight:s}=o;o.width===i&&o.height===s||(o.width=i,o.height=s);const l={id:r,renderingEngineId:this.id,element:t,type:n,canvas:o,sx:0,sy:0,sWidth:i,sHeight:s,defaultOptions:a||{}};if(n!==y.STACK)throw new Error("Support for fully custom viewports not yet implemented");const c=new tp(l);this._viewports.set(r,c);const u={element:t,viewportId:r,renderingEngineId:this.id};se(J,g.ELEMENT_ENABLED,u)}setCustomViewports(e){e.forEach((e=>this.addCustomViewport(e)))}setVtkjsDrivenViewports(e){if(e.length){const t=e.map((e=>Cu(e.element)));t.forEach((e=>{const t=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*t,e.height=r.height*t}));const{offScreenCanvasWidth:r,offScreenCanvasHeight:n}=this._resizeOffScreenCanvas(t);let a=0;for(let o=0;o<e.length;o++){const i=e[o],s=t[o],l={...i,canvas:s};this.addVtkjsDrivenViewport(l,{offScreenCanvasWidth:r,offScreenCanvasHeight:n,xOffset:a}),a+=s.width}}}_resizeOffScreenCanvas(e){const{offScreenCanvasContainer:t,offscreenMultiRenderWindow:r}=this,n=window.devicePixelRatio||1,a=Math.max(...e.map((e=>e.clientHeight*n)));let o=0;return e.forEach((e=>{o+=e.clientWidth*n})),t.width=o,t.height=a,r.resize(),{offScreenCanvasWidth:o,offScreenCanvasHeight:a}}_resize(e,t,r){let n=0;const a=window.devicePixelRatio||1;for(let o=0;o<e.length;o++){const i=e[o],{sxStartDisplayCoords:s,syStartDisplayCoords:l,sxEndDisplayCoords:c,syEndDisplayCoords:u,sx:d,sy:f,sWidth:p,sHeight:g}=this._getViewportCoordsOnOffScreenCanvas(i,t,r,n);n+=i.canvas.clientWidth*a,i.sx=d,i.sy=f,i.sWidth=p,i.sHeight=g;this.offscreenMultiRenderWindow.getRenderer(i.id).setViewport([s,l,c,u])}return n}_getViewportCoordsOnOffScreenCanvas(e,t,r,n){const{canvas:a}=e,{clientWidth:o,clientHeight:i}=a,s=window.devicePixelRatio||1,l=i*s,c=o*s,u=n/t,d=0+(r-l)/r;return{sxStartDisplayCoords:u,syStartDisplayCoords:d,sxEndDisplayCoords:u+c/t,syEndDisplayCoords:d+l/r,sx:n,sy:0,sWidth:c,sHeight:l}}_getViewportsAsArray(){return Array.from(this._viewports.values())}_setViewportsToBeRenderedNextFrame(e){e.forEach((e=>{this._needsRender.add(e)})),this._render()}_render(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}performVtkDrawCall(){const{offscreenMultiRenderWindow:e}=this,t=e.getRenderWindow(),r=e.getRenderers();if(r.length){for(let e=0;e<r.length;e++){const{renderer:t,id:n}=r[e];this._needsRender.has(n)?t.setDraw(!0):t.setDraw(!1)}t.render();for(let e=0;e<r.length;e++)r[e].renderer.setDraw(!1)}}renderViewportUsingCustomOrVtkPipeline(e){let t;if(!(e.sWidth<2||e.sHeight<2)){if(!0===ap(e.type))t=e.customRenderViewportToCanvas();else{if(this.useCPURendering)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");const{offscreenMultiRenderWindow:r}=this,n=r.getOpenGLRenderWindow().get3DContext().canvas;t=this._renderViewportFromVtkCanvasToOnscreenCanvas(e,n)}return t}console.log("Viewport is too small",e.sWidth,e.sHeight)}_renderViewportFromVtkCanvasToOnscreenCanvas(e,t){const{element:r,canvas:n,sx:a,sy:o,sWidth:i,sHeight:s,id:l,renderingEngineId:c,suppressEvents:u}=e,{width:d,height:f}=n;return n.getContext("2d").drawImage(t,a,o,i,s,0,0,d,f),{element:r,suppressEvents:u,viewportId:l,renderingEngineId:c,viewportStatus:e.viewportStatus}}_resetViewport(e){const t=this.id,{element:r,canvas:n,id:a}=e,o={element:r,viewportId:a,renderingEngineId:t};se(J,g.ELEMENT_DISABLED,o),r.removeAttribute("data-viewport-uid"),r.removeAttribute("data-rendering-engine-uid");n.getContext("2d").clearRect(0,0,n.width,n.height)}_clearAnimationFrame(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}_reset(){this._getViewportsAsArray().forEach((e=>{this._resetViewport(e)})),this._clearAnimationFrame(),this._viewports=new Map}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}_downloadOffScreenCanvas(){!function(e){const t=document.createElement("a");t.download="viewport.png",t.href=e,document.body.appendChild(t),t.click(),document.body.removeChild(t)}(this._debugRender())}_debugRender(){const{offscreenMultiRenderWindow:e}=this,t=e.getRenderWindow(),r=e.getRenderers();for(let e=0;e<r.length;e++)r[e].renderer.setDraw(!0);t.render();const n=e.getOpenGLRenderWindow().get3DContext().canvas,a=n.toDataURL();return this._getViewportsAsArray().forEach((e=>{const{sx:t,sy:r,sWidth:a,sHeight:o}=e,i=e.canvas,{width:s,height:l}=i;i.getContext("2d").drawImage(n,t,r,a,o,0,0,s,l)})),a}};const ip=op,sp=new au("imageRetrievalPool");sp.setMaxSimultaneousRequests(h.Interaction,200),sp.setMaxSimultaneousRequests(h.Thumbnail,200),sp.setMaxSimultaneousRequests(h.Prefetch,200),sp.grabDelay=0;const lp=sp,cp=Symbol("DefaultSettings"),up=Symbol("RuntimeSettings"),dp=Symbol("ObjectSettingsMap"),fp=Symbol("Dictionary");class pp{constructor(e){const t=Object.create(e instanceof pp&&fp in e?e[fp]:null);Object.seal(Object.defineProperty(this,fp,{value:t}))}set(e,t){return mp(this[fp],e,t,null)}get(e){return function(e,t){return e[t]}(this[fp],e)}unset(e){return function(e,t){if(t.endsWith(".")){let r=0;const n=t,a=n.slice(0,-1),o=0===a.length;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(o||t.startsWith(n)||t===a)&&(delete e[t],++r);return r>0}return delete e[t]}(this[fp],e+"")}forEach(e){gp(this[fp],e)}extend(){return new pp(this)}import(e){hp(e)&&Object.keys(e).forEach((t=>{mp(this[fp],t,e[t],null)}))}dump(){const e={};return gp(this[fp],((t,r)=>{void 0!==r&&vp(e,t,r)})),e}static assert(e){return e instanceof pp?e:pp.getRuntimeSettings()}static getDefaultSettings(e=null){let t=pp[cp];if(t instanceof pp||(t=new pp,pp[cp]=t),e){const r={};return t.forEach((n=>{if(n.startsWith(e)){const a=n.split(`${e}.`)[1];r[a]=t.get(n)}})),r}return t}static getRuntimeSettings(){let e=pp[up];return e instanceof pp||(e=new pp(pp.getDefaultSettings()),pp[up]=e),e}static getObjectSettings(e,t){let r=null;if(e instanceof pp)r=e;else if("object"==typeof e&&null!==e){let n=pp[dp];n instanceof WeakMap||(n=new WeakMap,pp[dp]=n),r=n.get(e),r instanceof pp||(r=new pp(pp.assert(pp.getObjectSettings(t))),n.set(e,r))}return r}static extendRuntimeSettings(){return pp.getRuntimeSettings().extend()}}function gp(e,t){for(const r in e)t(r,e[r])}function mp(e,t,r,n){return!!function(e){let t,r,n;if("string"!=typeof e||(t=e.length-1)<0)return!1;n=-1;for(;(r=e.indexOf(".",n+1))>=0;){if(r-n<2||r===t)return!1;n=r}return!0}(t)&&(hp(r)?function(e,t,r,n){let a;if(n.has(r))return mp(e,t,null,n);n.add(r),a=0;for(const o in r)Object.prototype.hasOwnProperty.call(r,o)&&(mp(e,0===o.length?t:`${t}.${o}`,r[o],n)||++a);return n.delete(r),0===a}(e,t,r,n instanceof WeakSet?n:new WeakSet):(e[t]=r,!0))}function hp(e){if("object"==typeof e&&null!==e){const t=Object.getPrototypeOf(e);if(t===Object.prototype||null===t)return!0}return!1}function vp(e,t,r){const n=t.indexOf(".");if(n>=0){const a=t.slice(0,n);let o=e[a];if("object"!=typeof o||null===o){const t=o;o={},void 0!==t&&(o[""]=t),e[a]=o}vp(o,t.slice(n+1,t.length),r)}else e[t]=r}pp.getDefaultSettings().set("useCursors",!0);var yp=r(47294);function bp(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}Symbol("implicit");var Tp=r(22791);function Cp(e){return+e}var xp=[0,1];function Sp(e){return e}function Pp(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:(r=isNaN(t)?NaN:.5,function(){return r});var r}function wp(e,t,r){var n=e[0],a=e[1],o=t[0],i=t[1];return a<n?(n=Pp(a,n),o=r(i,o)):(n=Pp(n,a),o=r(o,i)),function(e){return o(n(e))}}function Op(e,t,r){var n=Math.min(e.length,t.length)-1,a=new Array(n),o=new Array(n),i=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<n;)a[i]=Pp(e[i],e[i+1]),o[i]=r(t[i],t[i+1]);return function(t){var r=(0,yp.b4)(e,t,1,n)-1;return o[r](a[r](t))}}function Ip(){var e,t,r,n,a,o,i=xp,s=xp,l=Tp.sX,c=Sp;function u(){var e=Math.min(i.length,s.length);return c!==Sp&&(c=function(e,t){var r;return e>t&&(r=e,e=t,t=r),function(r){return Math.max(e,Math.min(t,r))}}(i[0],i[e-1])),n=e>2?Op:wp,a=o=null,d}function d(t){return null==t||isNaN(t=+t)?r:(a||(a=n(i.map(e),s,l)))(e(c(t)))}return d.invert=function(r){return c(t((o||(o=n(s,i.map(e),Tp.k4)))(r)))},d.domain=function(e){return arguments.length?(i=Array.from(e,Cp),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Tp.uL,u()},d.clamp=function(e){return arguments.length?(c=!!e||Sp,u()):c!==Sp},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(r=e,d):r},function(r,n){return e=r,t=n,u()}}function Ap(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Rp(e){return(e=Ap(Math.abs(e)))?e[1]:NaN}var Ep,Mp=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Dp(e){if(!(t=Mp.exec(e)))throw new Error("invalid format: "+e);var t;return new Vp({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Vp(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Lp(e,t){var r=Ap(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}Dp.prototype=Vp.prototype,Vp.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const _p={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Lp(100*e,t),r:Lp,s:function(e,t){var r=Ap(e,t);if(!r)return e+"";var n=r[0],a=r[1],o=a-(Ep=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,i=n.length;return o===i?n:o>i?n+new Array(o-i+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+Ap(e,Math.max(0,t+o-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Np(e){return e}var Bp,Fp,Up,kp=Array.prototype.map,Gp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Wp(e){var t,r,n=void 0===e.grouping||void 0===e.thousands?Np:(t=kp.call(e.grouping,Number),r=e.thousands+"",function(e,n){for(var a=e.length,o=[],i=0,s=t[0],l=0;a>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),o.push(e.substring(a-=s,a+s)),!((l+=s+1)>n));)s=t[i=(i+1)%t.length];return o.reverse().join(r)}),a=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",i=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Np:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(kp.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"−":e.minus+"",u=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=Dp(e)).fill,r=e.align,d=e.sign,f=e.symbol,p=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,y=e.type;"n"===y?(m=!0,y="g"):_p[y]||(void 0===h&&(h=12),v=!0,y="g"),(p||"0"===t&&"="===r)&&(p=!0,t="0",r="=");var b="$"===f?a:"#"===f&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",T="$"===f?o:/[%p]/.test(y)?l:"",C=_p[y],x=/[defgprs%]/.test(y);function S(e){var a,o,l,f=b,S=T;if("c"===y)S=C(e)+S,e="";else{var P=(e=+e)<0||1/e<0;if(e=isNaN(e)?u:C(Math.abs(e),h),v&&(e=function(e){e:for(var t,r=e.length,n=1,a=-1;n<r;++n)switch(e[n]){case".":a=t=n;break;case"0":0===a&&(a=n),t=n;break;default:if(!+e[n])break e;a>0&&(a=0)}return a>0?e.slice(0,a)+e.slice(t+1):e}(e)),P&&0==+e&&"+"!==d&&(P=!1),f=(P?"("===d?d:c:"-"===d||"("===d?"":d)+f,S=("s"===y?Gp[8+Ep/3]:"")+S+(P&&"("===d?")":""),x)for(a=-1,o=e.length;++a<o;)if(48>(l=e.charCodeAt(a))||l>57){S=(46===l?i+e.slice(a+1):e.slice(a))+S,e=e.slice(0,a);break}}m&&!p&&(e=n(e,1/0));var w=f.length+e.length+S.length,O=w<g?new Array(g-w+1).join(t):"";switch(m&&p&&(e=n(O+e,O.length?g-S.length:1/0),O=""),r){case"<":e=f+e+S+O;break;case"=":e=f+O+e+S;break;case"^":e=O.slice(0,w=O.length>>1)+f+e+S+O.slice(w);break;default:e=O+f+e+S}return s(e)}return h=void 0===h?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),S.toString=function(){return e+""},S}return{format:d,formatPrefix:function(e,t){var r=d(((e=Dp(e)).type="f",e)),n=3*Math.max(-8,Math.min(8,Math.floor(Rp(t)/3))),a=Math.pow(10,-n),o=Gp[8+n/3];return function(e){return r(a*e)+o}}}}function zp(e,t,r,n){var a,o=(0,yp.ly)(e,t,r);switch((n=Dp(null==n?",f":n)).type){case"s":var i=Math.max(Math.abs(e),Math.abs(t));return null!=n.precision||isNaN(a=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Rp(t)/3)))-Rp(Math.abs(e)))}(o,i))||(n.precision=a),Up(n,i);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(a=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Rp(t)-Rp(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(n.precision=a-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(a=function(e){return Math.max(0,-Rp(Math.abs(e)))}(o))||(n.precision=a-2*("%"===n.type))}return Fp(n)}function jp(){var e=Ip()(Sp,Sp);return e.copy=function(){return t=e,jp().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},bp.apply(e,arguments),function(e){var t=e.domain;return e.ticks=function(e){var r=t();return(0,yp.sd)(r[0],r[r.length-1],null==e?10:e)},e.tickFormat=function(e,r){var n=t();return zp(n[0],n[n.length-1],null==e?10:e,r)},e.nice=function(r){null==r&&(r=10);var n,a,o=t(),i=0,s=o.length-1,l=o[i],c=o[s],u=10;for(c<l&&(a=l,l=c,c=a,a=i,i=s,s=a);u-- >0;){if((a=(0,yp.G9)(l,c,r))===n)return o[i]=l,o[s]=c,t(o);if(a>0)l=Math.floor(l/a)*a,c=Math.ceil(c/a)*a;else{if(!(a<0))break;l=Math.ceil(l*a)/a,c=Math.floor(c*a)/a}n=a}return e},e}(e)}Bp=Wp({thousands:",",grouping:[3],currency:["$",""]}),Fp=Bp.format,Up=Bp.formatPrefix;const Hp=new Date,Kp=new Date;function Zp(e,t,r,n){function a(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return a.floor=t=>(e(t=new Date(+t)),t),a.ceil=r=>(e(r=new Date(r-1)),t(r,1),e(r),r),a.round=e=>{const t=a(e),r=a.ceil(e);return e-t<r-e?t:r},a.offset=(e,r)=>(t(e=new Date(+e),null==r?1:Math.floor(r)),e),a.range=(r,n,o)=>{const i=[];if(r=a.ceil(r),o=null==o?1:Math.floor(o),!(r<n&&o>0))return i;let s;do{i.push(s=new Date(+r)),t(r,o),e(r)}while(s<r&&r<n);return i},a.filter=r=>Zp((t=>{if(t>=t)for(;e(t),!r(t);)t.setTime(t-1)}),((e,n)=>{if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!r(e););else for(;--n>=0;)for(;t(e,1),!r(e););})),r&&(a.count=(t,n)=>(Hp.setTime(+t),Kp.setTime(+n),e(Hp),e(Kp),Math.floor(r(Hp,Kp))),a.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?a.filter(n?t=>n(t)%e==0:t=>a.count(0,t)%e==0):a:null)),a}const Xp=Zp((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));Xp.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?Zp((t=>{t.setTime(Math.floor(t/e)*e)}),((t,r)=>{t.setTime(+t+r*e)}),((t,r)=>(r-t)/e)):Xp:null);Xp.range;const qp=1e3,Yp=6e4,$p=36e5,Qp=864e5,Jp=6048e5,eg=2592e6,tg=31536e6,rg=Zp((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*qp)}),((e,t)=>(t-e)/qp),(e=>e.getUTCSeconds())),ng=(rg.range,Zp((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qp)}),((e,t)=>{e.setTime(+e+t*Yp)}),((e,t)=>(t-e)/Yp),(e=>e.getMinutes()))),ag=(ng.range,Zp((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*Yp)}),((e,t)=>(t-e)/Yp),(e=>e.getUTCMinutes()))),og=(ag.range,Zp((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qp-e.getMinutes()*Yp)}),((e,t)=>{e.setTime(+e+t*$p)}),((e,t)=>(t-e)/$p),(e=>e.getHours()))),ig=(og.range,Zp((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*$p)}),((e,t)=>(t-e)/$p),(e=>e.getUTCHours()))),sg=(ig.range,Zp((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Yp)/Qp),(e=>e.getDate()-1))),lg=(sg.range,Zp((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Qp),(e=>e.getUTCDate()-1))),cg=(lg.range,Zp((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Qp),(e=>Math.floor(e/Qp))));cg.range;function ug(e){return Zp((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Yp)/Jp))}const dg=ug(0),fg=ug(1),pg=ug(2),gg=ug(3),mg=ug(4),hg=ug(5),vg=ug(6);dg.range,fg.range,pg.range,gg.range,mg.range,hg.range,vg.range;function yg(e){return Zp((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/Jp))}const bg=yg(0),Tg=yg(1),Cg=yg(2),xg=yg(3),Sg=yg(4),Pg=yg(5),wg=yg(6),Og=(bg.range,Tg.range,Cg.range,xg.range,Sg.range,Pg.range,wg.range,Zp((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()))),Ig=(Og.range,Zp((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),Ag=(Ig.range,Zp((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));Ag.every=e=>isFinite(e=Math.floor(e))&&e>0?Zp((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,r)=>{t.setFullYear(t.getFullYear()+r*e)})):null;Ag.range;const Rg=Zp((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));Rg.every=e=>isFinite(e=Math.floor(e))&&e>0?Zp((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)})):null;Rg.range;function Eg(e,t,r,n,a,o){const i=[[rg,1,qp],[rg,5,5e3],[rg,15,15e3],[rg,30,3e4],[o,1,Yp],[o,5,3e5],[o,15,9e5],[o,30,18e5],[a,1,$p],[a,3,108e5],[a,6,216e5],[a,12,432e5],[n,1,Qp],[n,2,1728e5],[r,1,Jp],[t,1,eg],[t,3,7776e6],[e,1,tg]];function s(t,r,n){const a=Math.abs(r-t)/n,o=(0,yp.YF)((([,,e])=>e)).right(i,a);if(o===i.length)return e.every((0,yp.ly)(t/tg,r/tg,n));if(0===o)return Xp.every(Math.max((0,yp.ly)(t,r,n),1));const[s,l]=i[a/i[o-1][2]<i[o][2]/a?o-1:o];return s.every(l)}return[function(e,t,r){const n=t<e;n&&([e,t]=[t,e]);const a=r&&"function"==typeof r.range?r:s(e,t,r),o=a?a.range(e,+t+1):[];return n?o.reverse():o},s]}const[Mg,Dg]=Eg(Rg,Ig,bg,cg,ig,ag),[Vg,Lg]=Eg(Ag,Og,dg,sg,og,ng);function _g(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Ng(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Bg(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}var Fg,Ug,kg,Gg={"-":"",_:" ",0:"0"},Wg=/^\s*\d+/,zg=/^%/,jg=/[\\^$*+?|[\]().{}]/g;function Hg(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",o=a.length;return n+(o<r?new Array(r-o+1).join(t)+a:a)}function Kg(e){return e.replace(jg,"\\$&")}function Zg(e){return new RegExp("^(?:"+e.map(Kg).join("|")+")","i")}function Xg(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function qg(e,t,r){var n=Wg.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Yg(e,t,r){var n=Wg.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function $g(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Qg(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Jg(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function em(e,t,r){var n=Wg.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function tm(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function rm(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function nm(e,t,r){var n=Wg.exec(t.slice(r,r+1));return n?(e.q=3*n[0]-3,r+n[0].length):-1}function am(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function om(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function im(e,t,r){var n=Wg.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function sm(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function lm(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function cm(e,t,r){var n=Wg.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function um(e,t,r){var n=Wg.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function dm(e,t,r){var n=Wg.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function fm(e,t,r){var n=zg.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function pm(e,t,r){var n=Wg.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function gm(e,t,r){var n=Wg.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function mm(e,t){return Hg(e.getDate(),t,2)}function hm(e,t){return Hg(e.getHours(),t,2)}function vm(e,t){return Hg(e.getHours()%12||12,t,2)}function ym(e,t){return Hg(1+sg.count(Ag(e),e),t,3)}function bm(e,t){return Hg(e.getMilliseconds(),t,3)}function Tm(e,t){return bm(e,t)+"000"}function Cm(e,t){return Hg(e.getMonth()+1,t,2)}function xm(e,t){return Hg(e.getMinutes(),t,2)}function Sm(e,t){return Hg(e.getSeconds(),t,2)}function Pm(e){var t=e.getDay();return 0===t?7:t}function wm(e,t){return Hg(dg.count(Ag(e)-1,e),t,2)}function Om(e){var t=e.getDay();return t>=4||0===t?mg(e):mg.ceil(e)}function Im(e,t){return e=Om(e),Hg(mg.count(Ag(e),e)+(4===Ag(e).getDay()),t,2)}function Am(e){return e.getDay()}function Rm(e,t){return Hg(fg.count(Ag(e)-1,e),t,2)}function Em(e,t){return Hg(e.getFullYear()%100,t,2)}function Mm(e,t){return Hg((e=Om(e)).getFullYear()%100,t,2)}function Dm(e,t){return Hg(e.getFullYear()%1e4,t,4)}function Vm(e,t){var r=e.getDay();return Hg((e=r>=4||0===r?mg(e):mg.ceil(e)).getFullYear()%1e4,t,4)}function Lm(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Hg(t/60|0,"0",2)+Hg(t%60,"0",2)}function _m(e,t){return Hg(e.getUTCDate(),t,2)}function Nm(e,t){return Hg(e.getUTCHours(),t,2)}function Bm(e,t){return Hg(e.getUTCHours()%12||12,t,2)}function Fm(e,t){return Hg(1+lg.count(Rg(e),e),t,3)}function Um(e,t){return Hg(e.getUTCMilliseconds(),t,3)}function km(e,t){return Um(e,t)+"000"}function Gm(e,t){return Hg(e.getUTCMonth()+1,t,2)}function Wm(e,t){return Hg(e.getUTCMinutes(),t,2)}function zm(e,t){return Hg(e.getUTCSeconds(),t,2)}function jm(e){var t=e.getUTCDay();return 0===t?7:t}function Hm(e,t){return Hg(bg.count(Rg(e)-1,e),t,2)}function Km(e){var t=e.getUTCDay();return t>=4||0===t?Sg(e):Sg.ceil(e)}function Zm(e,t){return e=Km(e),Hg(Sg.count(Rg(e),e)+(4===Rg(e).getUTCDay()),t,2)}function Xm(e){return e.getUTCDay()}function qm(e,t){return Hg(Tg.count(Rg(e)-1,e),t,2)}function Ym(e,t){return Hg(e.getUTCFullYear()%100,t,2)}function $m(e,t){return Hg((e=Km(e)).getUTCFullYear()%100,t,2)}function Qm(e,t){return Hg(e.getUTCFullYear()%1e4,t,4)}function Jm(e,t){var r=e.getUTCDay();return Hg((e=r>=4||0===r?Sg(e):Sg.ceil(e)).getUTCFullYear()%1e4,t,4)}function eh(){return"+0000"}function th(){return"%"}function rh(e){return+e}function nh(e){return Math.floor(+e/1e3)}!function(e){Fg=function(e){var t=e.dateTime,r=e.date,n=e.time,a=e.periods,o=e.days,i=e.shortDays,s=e.months,l=e.shortMonths,c=Zg(a),u=Xg(a),d=Zg(o),f=Xg(o),p=Zg(i),g=Xg(i),m=Zg(s),h=Xg(s),v=Zg(l),y=Xg(l),b={a:function(e){return i[e.getDay()]},A:function(e){return o[e.getDay()]},b:function(e){return l[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:mm,e:mm,f:Tm,g:Mm,G:Vm,H:hm,I:vm,j:ym,L:bm,m:Cm,M:xm,p:function(e){return a[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:rh,s:nh,S:Sm,u:Pm,U:wm,V:Im,w:Am,W:Rm,x:null,X:null,y:Em,Y:Dm,Z:Lm,"%":th},T={a:function(e){return i[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:_m,e:_m,f:km,g:$m,G:Jm,H:Nm,I:Bm,j:Fm,L:Um,m:Gm,M:Wm,p:function(e){return a[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:rh,s:nh,S:zm,u:jm,U:Hm,V:Zm,w:Xm,W:qm,x:null,X:null,y:Ym,Y:Qm,Z:eh,"%":th},C={a:function(e,t,r){var n=p.exec(t.slice(r));return n?(e.w=g.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(e,t,r){var n=d.exec(t.slice(r));return n?(e.w=f.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(e,t,r){var n=v.exec(t.slice(r));return n?(e.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(e,t,r){var n=m.exec(t.slice(r));return n?(e.m=h.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(e,r,n){return P(e,t,r,n)},d:om,e:om,f:dm,g:tm,G:em,H:sm,I:sm,j:im,L:um,m:am,M:lm,p:function(e,t,r){var n=c.exec(t.slice(r));return n?(e.p=u.get(n[0].toLowerCase()),r+n[0].length):-1},q:nm,Q:pm,s:gm,S:cm,u:Yg,U:$g,V:Qg,w:qg,W:Jg,x:function(e,t,n){return P(e,r,t,n)},X:function(e,t,r){return P(e,n,t,r)},y:tm,Y:em,Z:rm,"%":fm};function x(e,t){return function(r){var n,a,o,i=[],s=-1,l=0,c=e.length;for(r instanceof Date||(r=new Date(+r));++s<c;)37===e.charCodeAt(s)&&(i.push(e.slice(l,s)),null!=(a=Gg[n=e.charAt(++s)])?n=e.charAt(++s):a="e"===n?" ":"0",(o=t[n])&&(n=o(r,a)),i.push(n),l=s+1);return i.push(e.slice(l,s)),i.join("")}}function S(e,t){return function(r){var n,a,o=Bg(1900,void 0,1);if(P(o,e,r+="",0)!=r.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(t&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(a=(n=Ng(Bg(o.y,0,1))).getUTCDay(),n=a>4||0===a?Tg.ceil(n):Tg(n),n=lg.offset(n,7*(o.V-1)),o.y=n.getUTCFullYear(),o.m=n.getUTCMonth(),o.d=n.getUTCDate()+(o.w+6)%7):(a=(n=_g(Bg(o.y,0,1))).getDay(),n=a>4||0===a?fg.ceil(n):fg(n),n=sg.offset(n,7*(o.V-1)),o.y=n.getFullYear(),o.m=n.getMonth(),o.d=n.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),a="Z"in o?Ng(Bg(o.y,0,1)).getUTCDay():_g(Bg(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(a+5)%7:o.w+7*o.U-(a+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Ng(o)):_g(o)}}function P(e,t,r,n){for(var a,o,i=0,s=t.length,l=r.length;i<s;){if(n>=l)return-1;if(37===(a=t.charCodeAt(i++))){if(a=t.charAt(i++),!(o=C[a in Gg?t.charAt(i++):a])||(n=o(e,r,n))<0)return-1}else if(a!=r.charCodeAt(n++))return-1}return n}return b.x=x(r,b),b.X=x(n,b),b.c=x(t,b),T.x=x(r,T),T.X=x(n,T),T.c=x(t,T),{format:function(e){var t=x(e+="",b);return t.toString=function(){return e},t},parse:function(e){var t=S(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=x(e+="",T);return t.toString=function(){return e},t},utcParse:function(e){var t=S(e+="",!0);return t.toString=function(){return e},t}}}(e),Fg.format,Fg.parse,Ug=Fg.utcFormat,kg=Fg.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var ah="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||Ug(ah);+new Date("2000-01-01T00:00:00.000Z")||kg(ah);var oh=r(64725);function ih(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function sh(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ih(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ih(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var lh=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],ch=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],uh=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],dh=[0,1,0,1,0,1,0,1,2,2,2,2],fh=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],ph=new Float64Array(3),gh=new Float64Array(3),mh=new Float64Array(3),hh=new Float64Array(3),vh=new Float64Array(3),yh=new Float64Array(3),bh=new Float64Array(16);function Th(e,t){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor,e.font="".concat(t.fontStyle," ").concat(t.fontSize,"px ").concat(t.fontFamily)}var Ch=ht.default.newInstance((function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},r),ht.default.obj(e,t),t.tmPolyData=Wt.ZP.newInstance(),t.tmMapper=Fs.ZP.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=fc.ZP.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),ht.default.setGet(e,t,["renderable"]),ht.default.get(e,t,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),t.forceUpdate=!1,t.lastRedrawTime={},ht.default.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},ht.default.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push("vtkCubeAxesActorHelper"),e.setRenderable=function(r){t.renderable!==r&&(t.renderable=r,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(r.getProperty()),t.tmActor.setParentProp(r),e.modified())},e.createPolyDataForOneLabel=function(e,r,n,a,o,i,s){var l=t.renderable.get_tmAtlas().get(e);if(l){var c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;ph[0]=c[3*r],ph[1]=c[3*r+1],ph[2]=c[3*r+2],ot.R3.transformMat4(mh,ph,n),mh[0]+=.1,ot.R3.transformMat4(gh,mh,a),ot.R3.subtract(vh,gh,ph),mh[0]-=.1,mh[1]+=.1,ot.R3.transformMat4(gh,mh,a),ot.R3.subtract(yh,gh,ph);for(var d=0;d<3;d++)vh[d]/=.05*u[0],yh[d]/=.05*u[1];var f=s.ptIdx,p=s.cellIdx;ph[0]=c[3*r],ph[1]=c[3*r+1],ph[2]=c[3*r+2],o[0]<-.5?ot.R3.scale(mh,vh,o[0]*i-l.width):o[0]>.5?ot.R3.scale(mh,vh,o[0]*i):ot.R3.scale(mh,vh,o[0]*i-l.width/2),ot.R3.add(ph,ph,mh),ot.R3.scale(mh,yh,o[1]*i-l.height/2),ot.R3.add(ph,ph,mh),s.points[3*f]=ph[0],s.points[3*f+1]=ph[1],s.points[3*f+2]=ph[2],s.tcoords[2*f]=l.tcoords[0],s.tcoords[2*f+1]=l.tcoords[1],f++,ot.R3.scale(mh,vh,l.width),ot.R3.add(ph,ph,mh),s.points[3*f]=ph[0],s.points[3*f+1]=ph[1],s.points[3*f+2]=ph[2],s.tcoords[2*f]=l.tcoords[2],s.tcoords[2*f+1]=l.tcoords[3],f++,ot.R3.scale(mh,yh,l.height),ot.R3.add(ph,ph,mh),s.points[3*f]=ph[0],s.points[3*f+1]=ph[1],s.points[3*f+2]=ph[2],s.tcoords[2*f]=l.tcoords[4],s.tcoords[2*f+1]=l.tcoords[5],f++,ot.R3.scale(mh,vh,l.width),ot.R3.subtract(ph,ph,mh),s.points[3*f]=ph[0],s.points[3*f+1]=ph[1],s.points[3*f+2]=ph[2],s.tcoords[2*f]=l.tcoords[6],s.tcoords[2*f+1]=l.tcoords[7],f++,s.polys[4*p]=3,s.polys[4*p+1]=f-4,s.polys[4*p+2]=f-3,s.polys[4*p+3]=f-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=f-4,s.polys[4*p+2]=f-2,s.polys[4*p+3]=f-1,s.ptIdx+=4,s.cellIdx+=2}},e.updateTexturePolyData=function(){var r=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);ot._E.transpose(r,r);var n=t.renderable.getTextValues().length,a=4*n,o=2*n,i=new Float64Array(3*a),s=new Uint16Array(4*o),l=new Float32Array(2*a);ot._E.invert(bh,r);for(var c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=0,d=0,f=0,p=t.renderable.getTextPolyData().getPoints().getData(),g=t.renderable.getTextValues();u<p.length/3;){ph[0]=p[3*u],ph[1]=p[3*u+1],ph[2]=p[3*u+2],ot.R3.transformMat4(mh,ph,r),ph[0]=p[3*u+3],ph[1]=p[3*u+4],ph[2]=p[3*u+5],ot.R3.transformMat4(hh,ph,r),ot.R3.subtract(mh,mh,hh);var m=[mh[0],mh[1]];(0,Mr.L)(m),e.createPolyDataForOneLabel(g[d],u,r,bh,m,t.renderable.getAxisTitlePixelOffset(),c),u+=2,d++;for(var h=0;h<t.renderable.getTickCounts()[f];h++)e.createPolyDataForOneLabel(g[d],u,r,bh,m,t.renderable.getTickLabelPixelOffset(),c),u++,d++;f++}var v=re.ZP.newInstance({numberOfComponents:2,values:l,name:"TextureCoordinates"});t.tmPolyData.getPointData().setTCoords(v),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updateAPISpecificData=function(r,n,a){t.lastSize[0]===r[0]&&t.lastSize[1]===r[1]||(t.lastSize[0]=r[0],t.lastSize[1]=r[1],t.lastAspectRatio=r[0]/r[1],t.forceUpdate=!0),t.camera=n,e.updateTexturePolyData()}}(e,t)}),"vtkCubeAxesActorHelper");function xh(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,function(e){return sh({boundsScaleFactor:1.3,camera:null,dataBounds:(0,pa.Z)(Jd.ZP.INIT_BOUNDS),faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:12,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"}},e)}(r)),fc.ZP.extend(e,t,r),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=["X-Axis","Y-Axis","Z-Axis"],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.tmTexture=oh.ZP.newInstance(),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Fs.ZP.newInstance(),t.polyData=Wt.ZP.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=fc.ZP.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=Wt.ZP.newInstance(),ht.default.setGet(e,t,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset"]),ht.default.setGetArray(e,t,["dataBounds"],6),ht.default.setGetArray(e,t,["axisLabels"],3),ht.default.get(e,t,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),function(e,t){t.classHierarchy.push("vtkCubeAxesActor"),e.setCamera=function(r){t.camera!==r&&(t.cameraModifiedSub&&(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=r,r&&(t.cameraModifiedSub=r.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=function(){var e=t.camera.getViewMatrix();ot._E.transpose(e,e);for(var r=!1,n=Jd.ZP.getDiagonalLength(t.dataBounds),a=Math.sin(t.faceVisibilityAngle*Math.PI/180),o=0;o<6;o++){var i=!1,s=Math.floor(o/2),l=(s+1)%3,c=(s+2)%3;t.dataBounds[2*l]!==t.dataBounds[2*l+1]&&t.dataBounds[2*c]!==t.dataBounds[2*c+1]&&(ph[s]=t.dataBounds[o]-.1*n*lh[o][s],ph[l]=.5*(t.dataBounds[2*l]+t.dataBounds[2*l+1]),ph[c]=.5*(t.dataBounds[2*c]+t.dataBounds[2*c+1]),ot.R3.transformMat4(mh,ph,e),ph[s]=t.dataBounds[o],ot.R3.transformMat4(hh,ph,e),ot.R3.subtract(mh,hh,mh),ot.R3.normalize(mh,mh),i=mh[2]>a,t.camera.getParallelProjection()||(ot.R3.normalize(hh,hh),i=ot.R3.dot(hh,mh)>a)),i!==t.lastFacesToDraw[o]&&(t.lastFacesToDraw[o]=i,r=!0)}return r},e.updatePolyData=function(e,r,n){var a=0,o=0;a+=8;for(var i=0,s=0;s<12;s++)r[s]>0&&i++;if(o+=i,t.gridLines)for(var l=0;l<6;l++)e[l]&&(a+=2*n[fh[l][0]].length+2*n[fh[l][1]].length,o+=n[fh[l][0]].length+n[fh[l][1]].length);for(var c=new Float64Array(3*a),u=new Uint32Array(3*o),d=0,f=0,p=0;p<2;p++)for(var g=0;g<2;g++)for(var m=0;m<2;m++)c[3*d]=t.dataBounds[m],c[3*d+1]=t.dataBounds[2+g],c[3*d+2]=t.dataBounds[4+p],d++;for(var h=0;h<12;h++)r[h]>0&&(u[3*f]=2,u[3*f+1]=uh[h][0],u[3*f+2]=uh[h][1],f++);if(t.gridLines)for(var v=0;v<6;v++)if(e[v]){for(var y=Math.floor(v/2),b=n[fh[v][0]],T=0;T<b.length;T++)c[3*d+y]=t.dataBounds[v],c[3*d+fh[v][0]]=b[T],c[3*d+fh[v][1]]=t.dataBounds[2*fh[v][1]],c[3*++d+y]=t.dataBounds[v],c[3*d+fh[v][0]]=b[T],c[3*d+fh[v][1]]=t.dataBounds[2*fh[v][1]+1],d++,u[3*f]=2,u[3*f+1]=d-2,u[3*f+2]=d-1,f++;b=n[fh[v][1]];for(var C=0;C<b.length;C++)c[3*d+y]=t.dataBounds[v],c[3*d+fh[v][1]]=b[C],c[3*d+fh[v][0]]=t.dataBounds[2*fh[v][0]],c[3*++d+y]=t.dataBounds[v],c[3*d+fh[v][1]]=b[C],c[3*d+fh[v][0]]=t.dataBounds[2*fh[v][0]+1],d++,u[3*f]=2,u[3*f+1]=d-2,u[3*f+2]=d-1,f++}t.polyData.getPoints().setData(c,3),t.polyData.getPoints().modified(),t.polyData.getLines().setData(u,1),t.polyData.getLines().modified(),t.polyData.modified()},e.updateTextData=function(e,r,n,a){for(var o=0,i=0;i<12;i++)1===r[i]&&(o+=2,o+=n[dh[i]].length);for(var s=t.polyData.getPoints().getData(),l=new Float64Array(3*o),c=0,u=0,d=0,f=0;f<6;f++)if(e[f])for(var p=0;p<4;p++){var g=ch[f][p];if(1===r[g]){var m=dh[g],h=3*uh[g][0],v=3*uh[g][1];l[3*c]=.5*(s[h]+s[v]),l[3*c+1]=.5*(s[h+1]+s[v+1]),l[3*c+2]=.5*(s[h+2]+s[v+2]),l[3*++c+Math.floor(f/2)]=t.dataBounds[f],l[3*c+fh[f][0]]=.5*(t.dataBounds[2*fh[f][0]]+t.dataBounds[2*fh[f][0]+1]),l[3*c+fh[f][1]]=.5*(t.dataBounds[2*fh[f][1]]+t.dataBounds[2*fh[f][1]+1]),c++,t.textValues[u]=t.axisLabels[m],u++;var y=(m+1)%3,b=(m+2)%3,T=n[m],C=a[m];t.tickCounts[d]=T.length;for(var x=0;x<T.length;x++)l[3*c+m]=T[x],l[3*c+y]=s[h+y],l[3*c+b]=s[h+b],c++,t.textValues[u]=C[x],u++;d++}}t.textPolyData.getPoints().setData(l,3),t.textPolyData.modified()},e.update=function(){if(t.camera){for(var r=e.computeFacesToDraw(),n=t.lastFacesToDraw,a=!1,o=0;o<6;o++)t.dataBounds[o]!==t.lastTickBounds[o]&&(a=!0,t.lastTickBounds[o]=t.dataBounds[o]);if(r||a||t.forceUpdate){for(var i=new Array(12).fill(0),s=0;s<6;s++)if(n[s])for(var l=0;l<4;l++)i[ch[s][l]]++;for(var c=[],u=[],d=0;d<3;d++){var f=jp().domain([t.dataBounds[2*d],t.dataBounds[2*d+1]]);c[d]=f.ticks(5);var p=f.tickFormat(5);u[d]=c[d].map(p)}e.updatePolyData(n,i,c),e.updateTextData(n,i,c,u),(a||t.forceUpdate)&&e.updateTextureAtlas(u)}t.forceUpdate=!1}},e.updateTextureAtlas=function(e){t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t._tmAtlas.clear();for(var r=0,n=1,a=0;a<3;a++){if(!t._tmAtlas.has(t.axisLabels[a])){Th(t.tmContext,t.axisTextStyle);var o=t.tmContext.measureText(t.axisLabels[a]),i={height:o.actualBoundingBoxAscent+2,startingHeight:n,width:o.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[a],i),n+=i.height,r<i.width&&(r=i.width)}Th(t.tmContext,t.tickTextStyle);for(var s=0;s<e[a].length;s++)if(!t._tmAtlas.has(e[a][s])){var l=t.tmContext.measureText(e[a][s]),c={height:l.actualBoundingBoxAscent+2,startingHeight:n,width:l.width+2,textStyle:t.tickTextStyle};t._tmAtlas.set(e[a][s],c),n+=c.height,r<c.width&&(r=c.width)}}r=(0,Mr.M)(r),n=(0,Mr.M)(n),t._tmAtlas.forEach((function(e){e.tcoords=[0,(n-e.startingHeight-e.height)/n,e.width/r,(n-e.startingHeight-e.height)/n,e.width/r,(n-e.startingHeight)/n,0,(n-e.startingHeight)/n]})),t.tmCanvas.width=r,t.tmCanvas.height=n,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,r,n),t._tmAtlas.forEach((function(e,r){Th(t.tmContext,e.textStyle),t.tmContext.fillText(r,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((function(){t.forceUpdate=!0,e.update()})),e.setTickTextStyle=function(r){t.tickTextStyle=sh(sh({},t.tickTextStyle),r),e.modified()},e.setAxisTextStyle=function(r){t.axisTextStyle=sh(sh({},t.axisTextStyle),r),e.modified()},e.get_tmAtlas=function(){return t._tmAtlas},e.getBounds=function(){return e.update(),Jd.ZP.setBounds(t.bounds,t.gridActor.getBounds()),Jd.ZP.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor),t.bounds};var r=ht.default.chain(e.setProperty,t.gridActor.setProperty);e.setProperty=function(e){return r(e)[0]}}(e,t)}var Sh={newInstance:ht.default.newInstance(xh,"vtkCubeAxesActor"),extend:xh,newCubeAxesActorHelper:Ch};var Ph={};function wh(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ph,r),Tt.extend(e,t,r),t.CubeAxesActorHelper=Sh.newCubeAxesActorHelper(),function(e,t){t.classHierarchy.push("vtkOpenGLCubeAxesActor"),e.buildPass=function(r){r&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=function(e,r){if(e){var n=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,a=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([a.usize,a.vsize],n,t._openGLRenderWindow.getRenderable())}}}(e,t)}var Oh=(0,ht.WL)(wh,"vtkOpenGLCubeAxesActor");wt("vtkCubeAxesActor",Oh);var Ih=r(1600),Ah=r(85687),Rh=Ah.ZP.ColorMode,Eh=Ah.ZP.ScalarMode,Mh=Ah.ZP.GetArray;var Dh={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function Vh(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dh,r),hc.Z.extend(e,t,r),ht.default.get(e,t,["colorMapColors"]),ht.default.setGet(e,t,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),ht.default.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),function(e,t){t.classHierarchy.push("vtkMapper2D"),e.createDefaultLookupTable=function(){t.lookupTable=Ih.ZP.newInstance()},e.getColorModeAsString=function(){return ht.default.enumToString(Rh,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return ht.default.enumToString(Eh,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,r,n,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(r===Eh.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(r===Eh.USE_POINT_DATA)i=e.getPointData().getScalars();else if(r===Eh.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(r===Eh.USE_POINT_FIELD_DATA){var l=e.getPointData();i=n===Mh.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(r===Eh.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=n===Mh.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(r===Eh.USE_FIELD_DATA){var u=e.getFieldData();i=n===Mh.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var r=t.lookupTable.getMTime();e=r>e?r:e}return e},e.mapScalars=function(r,n){var a=e.getAbstractScalars(r,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(a){var o="".concat(e.getMTime()).concat(a.getMTime()).concat(n);if(t.colorBuildString!==o){t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]);var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,t.fieldDataTupleId)),t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(n)}}else t.colorMapColors=null}}(e,t)}var Lh={newInstance:ht.default.newInstance(Vh,"vtkMapper2D"),extend:Vh},_h="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nuniform int PrimitiveIDOffset;\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Scalar coloring\n//VTK::Color::Dec\n\n// Depth Peeling\n//VTK::DepthPeeling::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Color::Impl\n //VTK::TCoord::Impl\n\n //VTK::DepthPeeling::Impl\n //VTK::Picking::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n}\n",Nh="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\n// all variables that represent positions or directions have a suffix\n// indicating the coordinate system they are in. The possible values are\n// MC - Model Coordinates\n// WC - WC world coordinates\n// VC - View Coordinates\n// DC - Display Coordinates\n\nin vec4 vertexWC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nuniform mat4 WCVCMatrix; // World to view matrix\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n gl_Position = WCVCMatrix*vertexWC;\n\n //VTK::TCoord::Impl\n\n //VTK::Color::Impl\n\n //VTK::PositionVC::Impl\n}\n",Bh={BACKGROUND:0,FOREGROUND:1},Fh={DisplayLocation:Bh},Uh=Er.primTypes,kh=Lh.ScalarMode,Gh=ht.E0,Wh={type:"StartEvent"},zh={type:"EndEvent"};var jh={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function Hh(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,jh,r),Tt.extend(e,t,r),Qr.implementReplaceShaderCoincidentOffset(e,t,r),Qr.implementBuildShadersWithReplacements(e,t,r),t.primitives=[],t.primTypes=Uh,t.tmpMat4=ot._E.identity(new Float64Array(16));for(var n=Uh.Start;n<Uh.End;n++)t.primitives[n]=Er.newInstance(),t.primitives[n].setPrimitiveType(n),t.primitives[n].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);(0,ht.g2)(e,t,["context"]),t.VBOBuildTime={},(0,ht.j6)(t.VBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),e.buildPass=function(r){r&&(t.openGLActor2D=e.getFirstAncestorOfType("vtkOpenGLActor2D"),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.overlayPass=function(t){t&&e.render()},e.getShaderTemplate=function(e,t,r){e.Vertex=Nh,e.Fragment=_h,e.Geometry=""},e.render=function(){var r=t._openGLRenderWindow.getContext();if(t.context!==r){t.context=r;for(var n=Uh.Start;n<Uh.End;n++)t.primitives[n].setOpenGLRenderWindow(t._openGLRenderWindow)}var a=t.openGLActor2D.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,a)},e.renderPiece=function(r,n){e.invokeEvent(Wh),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(zh),t.currentInput?t.currentInput.getPoints&&t.currentInput.getPoints().getNumberOfValues()&&(e.renderPieceStart(r,n),e.renderPieceDraw(r,n),e.renderPieceFinish(r,n)):Gh("No input!")},e.renderPieceStart=function(r,n){t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&&(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(n)),e.updateBufferObjects(r,n),t.lastBoundBO=null},e.getNeedToRebuildShaders=function(e,r,n){return e.getShaderSourceTime().getMTime()<t.renderable.getMTime()||e.getShaderSourceTime().getMTime()<t.currentInput.getMTime()},e.updateBufferObjects=function(t,r){e.getNeedToRebuildBufferObjects(t,r)&&e.buildBufferObjects(t,r)},e.getNeedToRebuildBufferObjects=function(r,n){var a=t.VBOBuildTime.getMTime();return!!(a<e.getMTime()||a<t._openGLRenderWindow.getMTime()||a<t.renderable.getMTime()||a<n.getMTime()||a<t.currentInput.getMTime()||t.renderable.getTransformCoordinate()&&a<r.getMTime())},e.buildBufferObjects=function(e,r){var n=t.currentInput;if(null!==n){t.renderable.mapScalars(n,r.getProperty().getOpacity());var a=t.renderable.getColorMapColors();t.haveCellScalars=!1;var o=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(o!==kh.USE_CELL_DATA&&o!==kh.USE_CELL_FIELD_DATA&&o!==kh.USE_FIELD_DATA&&n.getPointData().getScalars()||o===kh.USE_POINT_FIELD_DATA||!a||(t.haveCellScalars=!0));var i=r.getProperty().getRepresentation(),s=n.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(s=null);var l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u="".concat(n.getMTime(),"A").concat(i,"B").concat(n.getMTime())+"C".concat(a?a.getMTime():1)+"D".concat(s?s.getMTime():1)+"E".concat(l?e.getMTime():1)+"F".concat(c);if(t.VBOBuildString!==u){var d=n.getPoints();if(l){var f=dc.ZP.newInstance(),p=d.getNumberOfPoints();f.setNumberOfPoints(p);for(var g=[],m=0;m<p;++m){d.getPoint(m,g),l.setValue(g);var h=l.getComputedDoubleViewportValue(e);f.setPoint(m,h[0],h[1],0)}d=f}var v={points:d,tcoords:s,colors:a,cellOffset:0,haveCellScalars:t.haveCellSCalars,customAttributes:t.renderable.getCustomShaderAttributes().map((function(e){return n.getPointData().getArrayByName(e)}))};v.cellOffset+=t.primitives[Uh.Points].getCABO().createVBO(n.getVerts(),"verts",i,v),v.cellOffset+=t.primitives[Uh.Lines].getCABO().createVBO(n.getLines(),"lines",i,v),v.cellOffset+=t.primitives[Uh.Tris].getCABO().createVBO(n.getPolys(),"polys",i,v),v.cellOffset+=t.primitives[Uh.TriStrips].getCABO().createVBO(n.getStrips(),"strips",i,v),t.VBOBuildTime.modified(),t.VBOBuildString=u}}},e.renderPieceDraw=function(r,n){var a=n.getProperty().getRepresentation();t.context.depthMask(!0);for(var o=Uh.Start;o<Uh.End;o++)t.primitives[o].getCABO().getElementCount()&&(t.lastBoundBO=t.primitives[o],t.primitiveIDOffset+=t.primitives[o].drawArrays(r,n,a,e))},e.renderPieceFinish=function(e,r){t.lastBoundBO&&t.lastBoundBO.getVAO().release()},e.replaceShaderValues=function(t,r,n){e.replaceShaderColor(t,r,n),e.replaceShaderTCoord(t,r,n),e.replaceShaderPicking(t,r,n),e.replaceShaderPositionVC(t,r,n)},e.replaceShaderColor=function(e,r,n){var a=e.Vertex,o=e.Geometry,i=e.Fragment;t.haveCellScalars&&(i=Sr.substitute(i,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,i=Sr.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),0!==t.lastBoundBO.getCABO().getColorComponents()?(a=Sr.substitute(a,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,a=Sr.substitute(a,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,o=Sr.substitute(o,"//VTK::Color::Dec",["in vec4 fcolorVSOutput[];\n","out vec4 fcolorGSOutput;"]).result,o=Sr.substitute(o,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,i=Sr.substitute(i,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,i=Sr.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(i=Sr.substitute(i,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,i=Sr.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = diffuseColor;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,r,n){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment,s=t.lastBoundBO.getCABO().getTCoordComponents();1===s?(a=Sr.substitute(a,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,a=Sr.substitute(a,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput[];\n","out float tcoordVCGSOutput;"]).result,o=Sr.substitute(o,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,i=Sr.substitute(i,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,i=Sr.substitute(i,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):2===s&&(a=Sr.substitute(a,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,a=Sr.substitute(a,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];\n","out vec2 tcoordVCGSOutput;"]).result,o=Sr.substitute(o,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,i=Sr.substitute(i,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,i=Sr.substitute(i,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),t.haveCellScalars&&(o=Sr.substitute(o,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderPicking=function(e,t,r){var n=e.Fragment;n=Sr.substitute(n,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,n=Sr.substitute(n,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=n},e.replaceShaderPositionVC=function(e,r,n){t.lastBoundBO.replaceShaderPositionVC(e,r,n)},e.invokeShaderCallbacks=function(e,r,n){var a=t.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach((function(t){t.callback(t.userData,e,r,n)}))},e.setMapperShaderParameters=function(e,r,n){if(e.getProgram().isUniformUsed("PrimitiveIDOffset")&&e.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),e.getProgram().isAttributeUsed("vertexWC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"vertexWC",e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||Gh("Error setting vertexWC in shader VAO.")),e.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach((function(r,n){e.getProgram().isAttributeUsed("".concat(r,"MC"))&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"".concat(r,"MC"),e.getCABO().getCustomData()[n].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[n].components,!1)||Gh("Error setting ".concat(r,"MC in shader VAO.")))})),e.getProgram().isAttributeUsed("tcoordMC")&&e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"tcoordMC",e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||Gh("Error setting tcoordMC in shader VAO."):e.getVAO().removeAttributeArray("tcoordMC"),t.internalColorTexture&&e.getProgram().isUniformUsed("texture1")&&e.getProgram().setUniformi("texture1",t.internalColorTexture.getTextureUnit());var a=t.openGLActor2D.getActiveTextures();if(a)for(var o=0;o<a.length;++o){var i=a[o].getTextureUnit(),s="texture".concat(i+1);e.getProgram().isUniformUsed(s)&&e.getProgram().setUniformi(s,i)}e.setMapperShaderParameters(r,n,t._openGLRenderer.getTiledSizeAndOrigin());var l=t._openGLRenderer.getSelector();e.getProgram().setUniform3fArray("mapperIndex",l?l.getPropColorValue():[0,0,0]),e.getProgram().setUniformi("picking",l?l.getCurrentPass()+1:0)}},e.setPropertyShaderParameters=function(e,r,n){var a=t.renderable.getColorMapColors();if(!a||0===a.getNumberOfComponents()){var o=e.getProgram(),i=n.getProperty(),s=i.getOpacity(),l=i.getColor(),c=[l[0],l[1],l[2],s];o.setUniform4f("diffuseColor",c)}},e.setLightingShaderParameters=function(e,t,r){},e.setCameraShaderParameters=function(e,r,n){var a=e.getProgram(),o=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,i=r.getRenderWindow().getViews()[0].getViewportSize(r),s=r.getViewport(),l=n.getActualPositionCoordinate().getComputedDoubleViewportValue(r),c=[0,0,1,1],u=[0,0,1,1];if(u[0]=s[0]>=c[0]?s[0]:c[0],u[1]=s[1]>=c[1]?s[1]:c[1],u[2]=s[2]<=c[2]?s[2]:c[2],u[3]=s[3]<=c[3]?s[3]:c[3],!(u[0]>=u[2]||u[1]>=u[3])){i[0]=(0,Mr.K)(i[0]*(u[2]-u[0])/(s[2]-s[0])),i[1]=(0,Mr.K)(i[1]*(u[3]-u[1])/(s[3]-s[1]));var d=t._openGLRenderer.getParent().getSize(),f=(0,Mr.K)(l[0]-(u[0]-s[0])*d[0]),p=(0,Mr.K)(l[1]-(u[1]-s[1])*d[1]),g=-f,m=-f+i[0],h=-p,v=-p+i[1];g===m&&(m=g+1),h===v&&(v=h+1);var y,b,T,C=ot._E.identity(new Float64Array(16));C[0]=2/(m-g),C[5]=2/(v-h),C[3]=-1*(m+g)/(m-g),C[7]=-1*(v+h)/(v-h),C[10]=0,C[11]=n.getProperty().getDisplayLocation()===Bh.FOREGROUND?-1:1,C[15]=1,ot._E.transpose(C,C),a.setUniformMatrix("WCVCMatrix",(y=[C,o],b=ot._E,T=t.tmpMat4,b.identity(T),y.reduce((function(e,t,r){return 0===r?t?b.copy(e,t):b.identity(e):t?b.multiply(e,e,t):e}),T)))}}}(e,t)}var Kh=(0,ht.WL)(Hh,"vtkOpenGLPolyDataMapper2D");function Zh(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Xh(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Zh(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zh(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}wt("vtkMapper2D",Kh);var qh=r(4666).ZP.VectorMode;function Yh(e,t){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor,e.font="".concat(t.fontStyle," ").concat(t.fontSize,"px ").concat(t.fontFamily)}function $h(e,t){return function(e){var r=e.getLastSize(),n=Math.pow(r[0]/700,.8),a=Math.pow(r[1]/700,.8),o=Math.min(n,a),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),i.fontSize=Math.max(24*o,12),e.getLastAspectRatio()>1?s.fontSize=Math.max(20*o,10):s.fontSize=Math.max(16*o,10);var l=e.updateTextureAtlas();e.setTopTitle(!1);var c=e.getBoxSizeByReference();if(e.getLastAspectRatio()>1)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth<=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/r[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/r[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/a,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);var u=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/r[1],d=2*l.tickWidth/r[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*d*(e.getTicks().length+3))),c[1]=u,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function Qh(e,t){return function(e){var t=e.getLastTickBounds(),r=jp().domain([t[0],t[1]]),n=r.ticks(5),a=r.tickFormat(5);e.setTicks(n),e.setTickStrings(n.map(a))}}var Jh=ht.default.newInstance((function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},r),ht.default.obj(e,t),ht.default.setGet(e,t,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),ht.default.get(e,t,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),ht.default.getArray(e,t,["boxPosition","boxSize"]),ht.default.setArray(e,t,["boxPosition","boxSize"],2),t.forceUpdate=!1,t.lastRebuildTime={},ht.default.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.barMapper=Fs.ZP.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=Wt.ZP.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=fc.ZP.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=Wt.ZP.newInstance(),t.tmMapper=Fs.ZP.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=oh.ZP.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=fc.ZP.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push("vtkScalarBarActorHelper"),e.setRenderable=function(r){t.renderable!==r&&(t.renderable=r,t.barActor.setProperty(r.getProperty()),t.barActor.setParentProp(r),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(r.getProperty()),t.tmActor.setParentProp(r),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=r.generateTicks,t.axisTextStyle=Xh({},r.getAxisTextStyle()),t.tickTextStyle=Xh({},r.getTickTextStyle()),e.modified())},e.updateAPISpecificData=function(r,n,a){t.lastSize[0]===r[0]&&t.lastSize[1]===r[1]||(t.lastSize[0]=r[0],t.lastSize[1]=r[1],t.lastAspectRatio=r[0]/r[1],t.forceUpdate=!0);var o=t.renderable.getScalarsToColors();if(o&&t.renderable.getVisibility()&&(t.barMapper.setLookupTable(o),t.camera=n,t.renderWindow=a,t.forceUpdate||Math.max(o.getMTime(),e.getMTime(),t.renderable.getMTime())>t.lastRebuildTime.getMTime())){var i=o.getMappingRange();if(t.lastTickBounds=(0,pa.Z)(i),t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle=Xh({},t.renderable.getAxisTextStyle()),t.tickTextStyle=Xh({},t.renderable.getTickTextStyle()),t.barPosition=(0,pa.Z)(t.renderable.getBarPosition()),t.barSize=(0,pa.Z)(t.renderable.getBarSize()),t.boxPosition=(0,pa.Z)(t.renderable.getBoxPosition()),t.boxSize=(0,pa.Z)(t.renderable.getBoxSize()),t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();var s=e.updateTextureAtlas();e.recomputeBarSegments(s)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=function(){t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left";var r={},n=new Map,a=0,o=1;Yh(t.tmContext,t.axisTextStyle);var i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:o,width:i.width+2,textStyle:t.axisTextStyle};n.set(t.renderable.getAxisLabel(),s),o+=s.height,a=s.width,r.titleWidth=s.width,r.titleHeight=s.height,r.tickWidth=0,r.tickHeight=0,Yh(t.tmContext,t.tickTextStyle);for(var l=[].concat((0,pa.Z)(e.getTickStrings()),["NaN","Below","Above"]),c=0;c<l.length;c++)n.has(l[c])||(s={height:(i=t.tmContext.measureText(l[c])).actualBoundingBoxAscent+2,startingHeight:o,width:i.width+2,textStyle:t.tickTextStyle},n.set(l[c],s),o+=s.height,a<s.width&&(a=s.width),r.tickWidth<s.width&&(r.tickWidth=s.width),r.tickHeight<s.height&&(r.tickHeight=s.height));return a=(0,Mr.M)(a),o=(0,Mr.M)(o),n.forEach((function(e){e.tcoords=[0,(o-e.startingHeight-e.height)/o,e.width/a,(o-e.startingHeight-e.height)/o,e.width/a,(o-e.startingHeight)/o,0,(o-e.startingHeight)/o]})),t.tmCanvas.width=a,t.tmCanvas.height=o,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,a,o),n.forEach((function(e,r){Yh(t.tmContext,e.textStyle),t.tmContext.fillText(r,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=n,r},e.computeBarSize=function(e){t.vertical=t.boxSize[1]>t.boxSize[0];var r=2*e.tickHeight/t.lastSize[1],n=[1,1];if(t.vertical){var a=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){var o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-a,t.barSize[1]=t.boxSize[1]-o}else{var i=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-i-a,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+a,t.barPosition[1]=t.boxPosition[1],n[1]=r}else{var s=(2*e.tickWidth-8)/t.lastSize[0],l=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-l,t.barPosition[1]=t.boxPosition[1],n[0]=s}return n},e.recomputeBarSegments=function(r){var n,a,o,i,s=e.computeBarSize(r);t.barSegments=[];var l=[0,0],c=t.vertical?1:0,u=t.vertical?.01:.02;function d(e,r){t.barSegments.push({corners:[[].concat(l),[l[0]+s[0],l[1]],[l[0]+s[0],l[1]+s[1]],[l[0],l[1]+s[1]]],scalars:r,title:e}),l[c]+=s[c]+u}t.renderable.getDrawNanAnnotation()&&t.renderable.getScalarsToColors().getNanColor()&&d("NaN",[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&&null!==(n=(a=t.renderable.getScalarsToColors()).getUseBelowRangeColor)&&void 0!==n&&n.call(a)&&d("Below",[-.1,-.1,-.1,-.1]);var f=null===(o=(i=t.renderable.getScalarsToColors()).getUseAboveRangeColor)||void 0===o?void 0:o.call(i);l[c]+=u;var p=s[c];s[c]=f?1-2*u-s[c]-l[c]:1-u-l[c],d("ticks",t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&&f&&(s[c]=p,l[c]+=u,d("Above",[1.1,1.1,1.1,1.1]))};var r=new Float64Array(3);e.createPolyDataForOneLabel=function(e,n,a,o,i,s){var l=t._tmAtlas.get(e);if(l){var c=s.ptIdx,u=s.cellIdx;r[0]=(.5*n[0]+.5)*t.lastSize[0],r[1]=(.5*n[1]+.5)*t.lastSize[1],r[2]=n[2],r[0]+=i[0],r[1]+=i[1];var d=[],f="vertical"===o?[1,0]:[0,1];"vertical"===o?(d[0]=l.width,d[1]=-l.height,"middle"===a[0]?r[1]-=l.width/2:"right"===a[0]&&(r[1]-=l.width),"middle"===a[1]?r[0]+=l.height/2:"top"===a[1]&&(r[0]+=l.height)):(d[0]=l.width,d[1]=l.height,"middle"===a[0]?r[0]-=l.width/2:"right"===a[0]&&(r[0]-=l.width),"middle"===a[1]?r[1]-=l.height/2:"top"===a[1]&&(r[1]-=l.height)),s.points[3*c]=r[0],s.points[3*c+1]=r[1],s.points[3*c+2]=r[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,r[f[0]]+=d[0],s.points[3*c]=r[0],s.points[3*c+1]=r[1],s.points[3*c+2]=r[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,r[f[1]]+=d[1],s.points[3*c]=r[0],s.points[3*c+1]=r[1],s.points[3*c+2]=r[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,r[f[0]]-=d[0],s.points[3*c]=r[0],s.points[3*c+1]=r[1],s.points[3*c+2]=r[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2}};var n=new Float64Array(3);e.updatePolyDataForLabels=function(){var r=e.getTickStrings().length+t.barSegments.length,a=4*r,o=2*r,i=new Float64Array(3*a),s=new Uint16Array(4*o),l=new Float32Array(2*a),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;n[2]=-.99;var f=t.vertical?["right","middle"]:["middle","bottom"],p=[0,1],g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(n[0]=t.boxPosition[0]+.5*t.boxSize[0],n[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)):(n[0]=t.barPosition[0]+t.barSize[0],n[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),n,["middle","top"],"vertical",[t.axisTitlePixelOffset,0],c)),p=[-1,0]):(g[1]=t.tickLabelPixelOffset,n[0]=t.barPosition[0]+.5*t.barSize[0],n[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)),n[u]=t.barPosition[u]+(.5*p[u]+.5)*t.barSize[u],n[d]=t.barPosition[d]+.5*t.barSize[d];for(var m=null,h=0;h<t.barSegments.length;h++){var v=t.barSegments[h];"ticks"===v.title?m=v:(n[d]=t.barPosition[d]+.5*t.barSize[d]*(v.corners[2][d]+v.corners[0][d]),e.createPolyDataForOneLabel(v.title,n,f,"horizontal",g,c))}for(var y=t.barPosition[d]+t.barSize[d]*m.corners[0][d],b=t.barSize[d]*(m.corners[2][d]-m.corners[0][d]),T=e.getTicks(),C=e.getTickStrings(),x=0;x<T.length;x++){var S=(T[x]-t.lastTickBounds[0])/(t.lastTickBounds[1]-t.lastTickBounds[0]);n[d]=y+b*S,e.createPolyDataForOneLabel(C[x],n,f,"horizontal",g,c)}var P=re.ZP.newInstance({numberOfComponents:2,values:l,name:"TextureCoordinates"});t.tmPolyData.getPointData().setTCoords(P),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updatePolyDataForBarSegments=function(){var e,r,a=t.renderable.getScalarsToColors(),o=0;t.renderable.getDrawNanAnnotation()&&a.getNanColor()&&(o+=1),t.renderable.getDrawBelowRangeSwatch()&&null!==(e=a.getUseBelowRangeColor)&&void 0!==e&&e.call(a)&&(o+=1),t.renderable.getDrawAboveRangeSwatch()&&null!==(r=a.getUseAboveRangeColor)&&void 0!==r&&r.call(a)&&(o+=1);var i=4*(1+o),s=i,l=1;a.getVectorMode()===qh.COMPONENT&&(l=a.getVectorComponent()+1);for(var c=new Float64Array(3*i),u=new Uint16Array(5*s),d=new Float32Array(i*l),f=0,p=0,g=0;g<t.barSegments.length;g++){for(var m=t.barSegments[g],h=0;h<4;h++){n[0]=t.barPosition[0]+m.corners[h][0]*t.barSize[0],n[1]=t.barPosition[1]+m.corners[h][1]*t.barSize[1],c[3*f]=(.5*n[0]+.5)*t.lastSize[0],c[3*f+1]=(.5*n[1]+.5)*t.lastSize[1],c[3*f+2]=n[2];for(var v=0;v<l;v++)d[f*l+v]=t.lastTickBounds[0]+m.scalars[h]*(t.lastTickBounds[1]-t.lastTickBounds[0]);f++}u[5*p]=4,u[5*p+1]=f-4,u[5*p+2]=f-3,u[5*p+3]=f-2,u[5*p+4]=f-1,p++}var y=re.ZP.newInstance({numberOfComponents:l,values:d,name:"Scalars"});t.polyData.getPointData().setScalars(y),t.polyData.getPoints().setData(c,3),t.polyData.getPoints().modified(),t.polyData.getPolys().setData(u,1),t.polyData.getPolys().modified(),t.polyData.modified()}}(e,t)}),"vtkScalarBarActorHelper");function ev(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,function(e){return Xh({automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0},e)}(r)),t.autoLayout||(t.autoLayout=$h(0,t)),t.generateTicks||(t.generateTicks=Qh()),fc.ZP.extend(e,t,r),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),ht.default.setGet(e,t,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),ht.default.get(e,t,["axisTextStyle","tickTextStyle"]),ht.default.getArray(e,t,["barPosition","barSize","boxPosition","boxSize"]),ht.default.setArray(e,t,["barPosition","barSize","boxPosition","boxSize"],2),function(e,t){t.classHierarchy.push("vtkScalarBarActor"),e.setTickTextStyle=function(r){t.tickTextStyle=Xh(Xh({},t.tickTextStyle),r),e.modified()},e.setAxisTextStyle=function(r){t.axisTextStyle=Xh(Xh({},t.axisTextStyle),r),e.modified()},e.resetAutoLayoutToDefault=function(){e.setAutoLayout($h(0,t))},e.resetGenerateTicksToDefault=function(){e.setGenerateTicks(Qh())}}(e,t)}var tv={newInstance:ht.default.newInstance(ev,"vtkScalarBarActor"),extend:ev,newScalarBarActorHelper:Jh};var rv={};function nv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rv,r),Tt.extend(e,t,r),t.scalarBarActorHelper=tv.newScalarBarActorHelper(),function(e,t){t.classHierarchy.push("vtkOpenGLScalarBarActor"),e.buildPass=function(r){r&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=function(e,r){if(e){var n=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,a=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([a.usize,a.vsize],n,t._openGLRenderWindow.getRenderable())}}}(e,t)}var av=(0,ht.WL)(nv,"vtkOpenGLScalarBarActor");wt("vtkScalarBarActor",av);var ov=Us.ZP.CoordinateSystem;var iv={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function sv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,iv,r),Tt.extend(e,t,r),t.keyMatricesTime={},ht.default.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},ht.default.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=function(r){r&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children[0]&&t.children[0].traverse(r),e.apply(r,!1))},e.traverseTranslucentPass=function(r){!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(r,!0),t.children[0]&&t.children[0].traverse(r),e.apply(r,!1))},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},e.getBufferShift=function(r){return e.getKeyMatrices(r),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var r=t.renderable.getMatrix();t.bufferShift[0]=r[3],t.bufferShift[1]=r[7],t.bufferShift[2]=r[11];var n=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===ov.WORLD&&(t.bufferShift[0]-=n[0],t.bufferShift[1]-=n[1],t.bufferShift[2]-=n[2]),ot._E.transpose(t.keyMatrices.bcwc,r),t.renderable.getIsIdentity()?ot._E.identity(t.keyMatrices.normalMatrix):(ot._E.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,ot._E.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),ot._E.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),ot._E.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===ov.WORLD?ot._E.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]):ot._E.copy(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var lv=ht.default.newInstance(sv);Qn("vtkActor",lv);var cv=Us.ZP.CoordinateSystem;var uv={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function dv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uv,r),Tt.extend(e,t,r),t.keyMatricesTime={},ht.default.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},ht.default.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor2D"),e.buildPass=function(r){r&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(r){t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(r,!0),t.children[0]&&t.children[0].traverse(r),e.apply(r,!1))},e.traverseTranslucentPass=function(r){!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(r,!0),t.children[0]&&t.children[0].traverse(r),e.apply(r,!1))},e.queryPass=function(e,r){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},e.getBufferShift=function(r){return e.getKeyMatrices(r),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.bufferShift[0]=0,t.bufferShift[1]=0,t.bufferShift[2]=0;var r=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===cv.WORLD&&(t.bufferShift[0]-=r[0],t.bufferShift[1]-=r[1],t.bufferShift[2]-=r[2]),ot._E.identity(t.keyMatrices.bcwc),ot._E.identity(t.keyMatrices.normalMatrix),ot._E.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===cv.WORLD?ot._E.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):ot._E.copy(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var fv=ht.default.newInstance(dv);Qn("vtkActor2D",fv);var pv={};function gv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pv,r),Tt.extend(e,t,r),t.CubeAxesActorHelper=Sh.newCubeAxesActorHelper(),function(e,t){t.classHierarchy.push("vtkWebGPUCubeAxesActor"),e.buildPass=function(r){r&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=function(e,r){if(e){var n=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,a=t.WebGPURenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([a.usize,a.vsize],n,t.WebGPURenderWindow.getRenderable())}}}(e,t)}var mv=(0,ht.WL)(gv,"vtkWebGPUCubeAxesActor");function hv(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}Qn("vtkCubeAxesActor",mv);var vv=Fh.DisplayLocation;var yv={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:ur.hX.SURFACE,displayLocation:vv.FOREGROUND};function bv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yv,r),ht.default.obj(e,t),ht.default.setGet(e,t,["opacity","lineWidth","pointSize","displayLocation","representation"]),ht.default.setGetArray(e,t,["color"],3),function(e,t){t.classHierarchy.push("vtkProperty2D"),e.setDisplayLocationToBackground=function(){return e.setDisplayLocation(vv.BACKGROUND)},e.setDisplayLocationToForeground=function(){return e.setDisplayLocation(vv.FOREGROUND)},e.setRepresentationToWireframe=function(){return e.setRepresentation(ur.hX.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(ur.hX.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(ur.hX.POINTS)},e.getRepresentationAsString=function(){return ht.default.enumToString(ur.hX,t.representation)}}(e,t)}var Tv=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?hv(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):hv(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:ht.default.newInstance(bv,"vtkProperty2D"),extend:bv},Fh),Cv=po.BufferUsage,xv=po.PrimitiveTypes,Sv=Ua.ZP.Representation,Pv=Fs.ZP.ScalarMode,wv=Us.ZP.CoordinateSystem,Ov=Tv.DisplayLocation;function Iv(e){return e.indexOf("edge")>=0}var Av={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function Rv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Av,r),Aa.extend(e,t,r),t.fragmentShaderTemplate='\nstruct PBRData {\n diffuse: vec3<f32>,\n specular: vec3<f32>,\n}\n\n// Dot product with the max already in it\nfn mdot(a: vec3<f32>, b: vec3<f32>) -> f32 {\n return max(0.0, dot(a, b));\n}\n// Dot product with a max in it that does not allow for negative values\n// Physically based rendering is accurate as long as normals are accurate,\n// however this is pretty often not the case. In order to prevent negative\n// values from ruining light calculations and creating zones of zero light,\n// this remapping is used, which smoothly clamps the dot product between\n// zero and one while still maintaining a good amount of accuracy.\nfn cdot(a: vec3<f32>, b: vec3<f32>) -> f32 {\n var d: f32 = max(0.0, dot(a, b));\n d = pow((d + 1) / 2.0, 2.6);\n return d;\n}\n\n// Lambertian diffuse model\nfn lambertDiffuse(base: vec3<f32>, N: vec3<f32>, L: vec3<f32>) -> vec3<f32> {\n var pi: f32 = 3.14159265359; \n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5);\n return (base/pi)*NdotL;\n}\n\n// Yasuhiro Fujii improvement on the Oren-Nayar model\n// https://mimosa-pudica.net/improved-oren-nayar.html\n// p is surface color, o is roughness\nfn fujiiOrenNayar(p: vec3<f32>, o: f32, N: vec3<f32>, L: vec3<f32>, V: vec3<f32>) -> vec3<f32> {\n var invpi: f32 = 0.31830988618; // 1/pi\n\n var o2 = o*o;\n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better\n\n var NdotV: f32 = mdot(N, V);\n var LdotV: f32 = mdot(L, V);\n\n var s: f32 = LdotV - NdotL*NdotV;\n var t: f32 = mix(1, max(NdotL, NdotV), step(0, s)); // Mix with step is the equivalent of an if statement\n var A: vec3<f32> = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13));\n A = invpi*(1 - A);\n var B: f32 = 0.45*(o2 / (o2 + 0.09));\n B = invpi*B;\n\n return p*NdotL*(A + B*(s/t));\n}\n\n// Fresnel portion of BRDF (IOR only, simplified)\nfn schlickFresnelIOR(V: vec3<f32>, N: vec3<f32>, ior: f32, k: f32) -> f32 {\n var NdotV: f32 = mdot(V, N);\n var F0: f32 = (pow((ior - 1.0), 2) + k*k) / (pow((ior + 1.0), 2) + k*k); // This takes into account the roughness, which the other one does not\n return F0 + (1 - F0) * pow((1-NdotV), 5); \n}\n\n// Fresnel portion of BRDF (Color ior, better)\nfn schlickFresnelRGB(V: vec3<f32>, N: vec3<f32>, F0: vec3<f32>) -> vec3<f32> {\n var NdotV: f32 = mdot(V, N);\n return F0 + (1 - F0) * pow((1-NdotV), 5); \n}\n\n// Normal portion of BRDF\n// https://learnopengl.com/PBR/Theory\n// Trowbridge-Reitz GGX functions: normal, halfway, roughness^2\nfn trGGX(N: vec3<f32>, H: vec3<f32>, a: f32) -> f32 {\n var pi: f32 = 3.14159265359; \n\n var a2: f32 = a*a;\n var NdotH = mdot(N, H);\n var NdotH2 = NdotH*NdotH;\n \n var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0;\n\n return a2 / max((pi*denom*denom), 0.000001);\n}\n\n// A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent\nfn anisotrophicTrGGX(N: vec3<f32>, H: vec3<f32>, O: vec3<f32>, s: f32, a: f32) -> f32 {\n var Op: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(O) * s, 0.)).xyz;\n\n var ggx1: f32 = trGGX(N + Op*s, H, a);\n var ggx2: f32 = trGGX(N - Op*s, H, a);\n return (0.5 * ggx1 + 0.5 * ggx2);\n}\n\n// Geometry portion of BRDF\nfn schlickGGX(N: vec3<f32>, X: vec3<f32>, k: f32) -> f32 {\n var NdotX = cdot(N, X);\n return NdotX / max(0.000001, (NdotX*(1-k) + k));\n}\n\nfn smithSurfaceRoughness(N: vec3<f32>, V: vec3<f32>, L: vec3<f32>, k: f32) -> f32 {\n var ggx1: f32 = min(1, schlickGGX(N, V, k));\n var ggx2: f32 = min(1, schlickGGX(N, L, k));\n return ggx1*ggx2;\n}\n\n// BRDF Combination\nfn cookTorrance(D: f32, F: f32, G: f32, N: vec3<f32>, V: vec3<f32>, L: vec3<f32>) -> f32 {\n var num: f32 = D*F*G;\n var denom: f32 = 4*cdot(V, N)*cdot(L, N);\n\n return num / max(denom, 0.000001);\n}\n\n// Different lighting calculations for different light sources\nfn calcDirectionalLight(N: vec3<f32>, V: vec3<f32>, ior: f32, roughness: f32, metallic: f32, direction: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData { \n var L: vec3<f32> = normalize(direction); // Light Vector\n var H: vec3<f32> = normalize(L + V); // Halfway Vector\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2;\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1, G, N, V, L); // Fresnel term is replaced with 1 because it is added later\n var incoming: vec3<f32> = color;\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5);\n\n var specular: vec3<f32> = brdf*incoming*angle;\n // Oren-Nayar gives a clay-like effect when fully rough which some people may not want, so it might be better to give a separate\n // control property for the diffuse vs specular roughness\n var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V); \n // Stores the specular and diffuse separately to allow for finer post processing\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// TODO: find some way to reduce the number of arguments going in here\nfn calcPointLight(N: vec3<f32>, V: vec3<f32>, fragPos: vec3<f32>, ior: f32, roughness: f32, metallic: f32, position: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {\n var L: vec3<f32> = normalize(position - fragPos); // Light Vector\n var H: vec3<f32> = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1, G, N, V, L); \n var incoming: vec3<f32> = color * (1. / (dist*dist));\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3<f32> = brdf*incoming*angle;\n var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights\nfn calcSpotLight(N: vec3<f32>, V: vec3<f32>, fragPos: vec3<f32>, ior: f32, roughness: f32, metallic: f32, position: vec3<f32>, direction: vec3<f32>, cones: vec2<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {\n var L: vec3<f32> = normalize(position - fragPos);\n var H: vec3<f32> = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1, G, N, V, L); \n \n // Cones.x is the inner phi and cones.y is the outer phi\n var theta: f32 = mdot(normalize(direction), L);\n var epsilon: f32 = cones.x - cones.y;\n var intensity: f32 = (theta - cones.y) / epsilon;\n intensity = clamp(intensity, 0.0, 1.0);\n intensity /= dist*dist;\n\n var incoming: vec3<f32> = color * intensity;\n\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3<f32> = brdf*incoming*angle;\n var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// Environment mapping stuff\n// Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point\nfn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2<f32> = vec2<f32>(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::TCoord::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n // Temporary ambient, diffuse, and opacity\n var ambientColor: vec4<f32> = mapperUBO.AmbientColor;\n var diffuseColor: vec4<f32> = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n // This should be declared somewhere else\n var _diffuseMap: vec4<f32> = vec4<f32>(1);\n var _roughnessMap: vec4<f32> = vec4<f32>(1);\n var _metallicMap: vec4<f32> = vec4<f32>(1);\n var _normalMap: vec4<f32> = vec4<f32>(0, 0, 1, 0); // normal map was setting off the normal vector detection in fragment\n var _ambientOcclusionMap: vec4<f32> = vec4<f32>(1);\n var _emissionMap: vec4<f32> = vec4<f32>(0);\n\n //VTK::Color::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Normal::Impl\n\n var computedColor: vec4<f32> = vec4<f32>(diffuseColor.rgb, 1.0);\n\n //VTK::Light::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::Position::Impl\n\n //VTK::RenderEncoder::Impl\n\n return output;\n}\n',t.vertexShaderTemplate="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4<f32> = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",t._tmpMat3=ot.wO.identity(new Float64Array(9)),t._tmpMat4=ot._E.identity(new Float64Array(16)),t.UBO=So.newInstance({label:"mapperUBO"}),t.UBO.addEntry("BCWCMatrix","mat4x4<f32>"),t.UBO.addEntry("BCSCMatrix","mat4x4<f32>"),t.UBO.addEntry("MCWCNormals","mat4x4<f32>"),t.UBO.addEntry("AmbientColor","vec4<f32>"),t.UBO.addEntry("DiffuseColor","vec4<f32>"),t.UBO.addEntry("EdgeColor","vec4<f32>"),t.UBO.addEntry("SpecularColor","vec4<f32>"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("Roughness","f32"),t.UBO.addEntry("Metallic","f32"),t.UBO.addEntry("Ambient","f32"),t.UBO.addEntry("Normal","f32"),t.UBO.addEntry("Emission","f32"),t.UBO.addEntry("NormalStrength","f32"),t.UBO.addEntry("BaseIOR","f32"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("LineWidth","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("ZValue","f32"),t.UBO.addEntry("PropID","u32"),t.UBO.addEntry("ClipNear","f32"),t.UBO.addEntry("ClipFar","f32"),t.UBO.addEntry("Time","u32"),(0,ht.g2)(e,t,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),t.textures=[],function(e,t){t.classHierarchy.push("vtkWebGPUCellArrayMapper"),e.buildPass=function(r){r&&(t.is2D?(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.forceZValue=!0):(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.forceZValue=!1),t.coordinateSystem=t.WebGPUActor.getRenderable().getCoordinateSystem(),t.useRendererMatrix=t.coordinateSystem!==wv.DISPLAY,t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=function(r){r&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.opaquePass=function(r){r&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.updateUBO=function(){var r=t.WebGPUActor.getRenderable().getProperty(),n=t.UBO.getSendTime();if(e.getMTime()>n||r.getMTime()>n||t.renderable.getMTime()>n){var a,o=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);if(t.UBO.setArray("BCWCMatrix",o.bcwc),t.UBO.setArray("BCSCMatrix",o.bcsc),t.UBO.setArray("MCWCNormals",o.normalMatrix),t.is2D){t.UBO.setValue("ZValue",t.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===Ov.FOREGROUND?1:0);var i=r.getColorByReference();t.UBO.setValue("AmbientIntensity",1),t.UBO.setArray("DiffuseColor",[i[0],i[1],i[2],1]),t.UBO.setValue("DiffuseIntensity",0),t.UBO.setValue("SpecularIntensity",0)}else{var s=r.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",r.getAmbient()),t.UBO.setArray("AmbientColor",[s[0],s[1],s[2],1]),t.UBO.setValue("DiffuseIntensity",r.getDiffuse()),s=r.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[s[0],s[1],s[2],1]),t.UBO.setValue("Roughness",r.getRoughness()),t.UBO.setValue("BaseIOR",r.getBaseIOR()),t.UBO.setValue("Metallic",r.getMetallic()),t.UBO.setValue("NormalStrength",r.getNormalStrength()),t.UBO.setValue("Emission",r.getEmission()),t.UBO.setValue("SpecularIntensity",r.getSpecular()),s=r.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[s[0],s[1],s[2],1])}var l=null===(a=r.getEdgeColorByReference)||void 0===a?void 0:a.call(r);l&&t.UBO.setArray("EdgeColor",[l[0],l[1],l[2],1]),t.UBO.setValue("LineWidth",r.getLineWidth()),t.UBO.setValue("Opacity",r.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());var c=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(c)}},e.haveWideLines=function(){var e=t.WebGPUActor.getRenderable(),r=e.getProperty().getRepresentation();return!(e.getProperty().getLineWidth()<=1)&&t.primitiveType!==xv.Verts&&(t.primitiveType!==xv.Triangles&&t.primitiveType!==xv.TriangleStrips||r===Sv.WIREFRAME)},e.replaceShaderPosition=function(r,n,a){var o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4<f32>","@builtin(position) Position"),o.hasOutput("vertexVC")||o.addOutput("vec4<f32>","vertexVC");var i=o.getCode();t.useRendererMatrix?(i=fa.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4<f32> = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4<f32>(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,t.forceZValue&&(i=fa.substitute(i,"//VTK::Position::Impl",["pCoord = vec4<f32>(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(i=fa.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4<f32> = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,t.forceZValue&&(i=fa.substitute(i,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),e.haveWideLines()&&(o.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i=fa.substitute(i,"//VTK::Position::Impl",[" var tmpPos: vec4<f32> = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3<f32> = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4<f32>(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),i=fa.substitute(i,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,o.setCode(i)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderNormal=function(e,r,n){var a=n.getBuffer("normalMC"),o=t.WebGPUActor.getRenderable();if(a){var i=r.getShaderDescription("vertex");i.hasOutput("normalVC")||i.addOutput("vec3<f32>","normalVC",a.getArrayInformation()[0].interpolation),i.hasOutput("tangentVC")||i.addOutput("vec3<f32>","tangentVC",a.getArrayInformation()[0].interpolation),i.hasOutput("bitangentVC")||i.addOutput("vec3<f32>","bitangentVC",a.getArrayInformation()[0].interpolation);var s=i.getCode();s=fa.substitute(s,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3<f32> = cross(output.normalVC, vec3<f32>(0, 0, 1));"," var c2: vec3<f32> = cross(output.normalVC, vec3<f32>(0, 1, 0));"," var tangent: vec3<f32> = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,i.setCode(s);var l=r.getShaderDescription("fragment");s=l.getCode(),s=o.getProperty().getNormalTexture()?fa.substitute(s,"//VTK::Normal::Impl",[" var normal: vec3<f32> = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3<f32> = input.tangentVC;"," var bitangent: vec3<f32> = input.bitangentVC;"," var TCVCMatrix: mat3x3<f32> = mat3x3<f32>("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3<f32> = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:fa.substitute(s,"//VTK::Normal::Impl",[" var normal: vec3<f32> = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,l.setCode(s)}},t.shaderReplacements.set("replaceShaderNormal",e.replaceShaderNormal),e.replaceShaderLight=function(e,r,n){if(!e.includes("sel")){var a=r.getShaderDescription("vertex");a.hasOutput("vertexVC")||a.addOutput("vec4<f32>","vertexVC");var o=t.WebGPURenderer.getRenderable(),i=r.getShaderDescription("fragment"),s=i.getCode();if(!s.includes("var normal:")||!t.useRendererMatrix||Iv(e)||t.is2D||e.includes("sel"))s=fa.substitute(s,"//VTK::Light::Impl",[" var diffuse: vec3<f32> = diffuseColor.rgb;"," var specular: vec3<f32> = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4<f32>(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,i.setCode(s);else{var l,c=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3<f32> = vec3<f32>(input.vertexVC.xyz);"," var V: vec3<f32> = mix(normalize(-fragPos), vec3<f32>(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3<f32> = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3<f32> = vec3<f32>(0.);"," var specular: vec3<f32> = vec3<f32>(0.);"," var emission: vec3<f32> = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3<f32> = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3<f32> = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3<f32> = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3<f32> = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3<f32> = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2<f32> = vec2<f32>(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3<f32> = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3<f32> = mix(vec3<f32>(fresnel), fresnelMetallic, metallic);"," kS = min(vec3<f32>(1), kS);"," var kD: vec3<f32> = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3<f32> = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4<f32>(PBR, mapperUBO.Opacity);"];null!==(l=o.getEnvironmentTexture())&&void 0!==l&&l.getImageLoaded()&&c.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3<f32> = (transpose(rendererUBO.WCVCNormals) * vec4<f32>(normal, 1.)).xyz;"," var diffuseCoords: vec2<f32> = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3<f32> = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4<f32>(VreflN, 1.)).xyz;"," var specularCoords: vec2<f32> = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3<f32> = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4<f32>(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3<f32> = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4<f32>(diffuseIBLContribution*kD, 0);"),s=fa.substitute(s,"//VTK::Light::Impl",c).result,i.setCode(s)}}},t.shaderReplacements.set("replaceShaderLight",e.replaceShaderLight),e.replaceShaderColor=function(e,t,r){if(Iv(e)){var n=t.getShaderDescription("fragment"),a=n.getCode();return a=fa.substitute(a,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,void n.setCode(a)}var o=r.getBuffer("colorVI");if(o){var i=t.getShaderDescription("vertex");i.addOutput("vec4<f32>","color",o.getArrayInformation()[0].interpolation);var s=i.getCode();s=fa.substitute(s,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,i.setCode(s);var l=t.getShaderDescription("fragment");s=l.getCode(),s=fa.substitute(s,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,l.setCode(s)}},t.shaderReplacements.set("replaceShaderColor",e.replaceShaderColor),e.replaceShaderTCoord=function(e,r,n){var a,o,i,s,l,c,u,d,f,p,g,m,h,v,y,b,T,C;if(n.hasAttribute("tcoord")){var x=r.getShaderDescription("vertex"),S=n.getBuffer("tcoord"),P=Ca.getNumberOfComponentsFromBufferFormat(S.getArrayInformation()[0].format),w=x.getCode();x.addOutput("vec".concat(P,"<f32>"),"tcoordVS"),w=fa.substitute(w,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,x.setCode(w);var O=r.getShaderDescription("fragment");w=O.getCode();var I,A,R=t.WebGPUActor.getRenderable(),E=function(e){return!!e&&e.getDimensionality()===P},M=[];(null!==(a=(o=R.getProperty()).getDiffuseTexture)&&void 0!==a&&null!==(i=a.call(o))&&void 0!==i&&i.getImageLoaded()||R.getTextures()[0]||t.colorTexture)&&(E(null===(I=(A=R.getProperty()).getDiffuseTexture)||void 0===I?void 0:I.call(A))||E(R.getTextures()[0])||E(t.colorTexture))&&M.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),null!==(s=(l=R.getProperty()).getRoughnessTexture)&&void 0!==s&&null!==(c=s.call(l))&&void 0!==c&&c.getImageLoaded()&&E(R.getProperty().getRoughnessTexture())&&M.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),null!==(u=(d=R.getProperty()).getMetallicTexture)&&void 0!==u&&null!==(f=u.call(d))&&void 0!==f&&f.getImageLoaded()&&E(R.getProperty().getMetallicTexture())&&M.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),null!==(p=(g=R.getProperty()).getNormalTexture)&&void 0!==p&&null!==(m=p.call(g))&&void 0!==m&&m.getImageLoaded()&&E(R.getProperty().getNormalTexture())&&M.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),null!==(h=(v=R.getProperty()).getAmbientOcclusionTexture)&&void 0!==h&&null!==(y=h.call(v))&&void 0!==y&&y.getImageLoaded()&&E(R.getProperty().getAmbientOcclusionTexture())&&M.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),null!==(b=(T=R.getProperty()).getEmissionTexture)&&void 0!==b&&null!==(C=b.call(T))&&void 0!==C&&C.getImageLoaded()&&E(R.getProperty().getEmissionTexture())&&M.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),w=fa.substitute(w,"//VTK::TCoord::Impl",M).result,O.setCode(w)}},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.replaceShaderSelect=function(e,t,r){if(e.includes("sel")){var n=t.getShaderDescription("fragment"),a=n.getCode();a=fa.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,n.setCode(a)}},t.shaderReplacements.set("replaceShaderSelect",e.replaceShaderSelect),e.getUsage=function(e,t){return e===Sv.POINTS||t===xv.Points?Cv.Verts:t===xv.Lines?Cv.Lines:e===Sv.WIREFRAME?t===xv.Triangles?Cv.LinesFromTriangles:Cv.LinesFromStrips:t===xv.Triangles?Cv.Triangles:t===xv.TriangleStrips?Cv.Strips:t===xv.TriangleEdges?Cv.LinesFromTriangles:Cv.LinesFromStrips},e.getHashFromUsage=function(e){return"pt".concat(e)},e.getTopologyFromUsage=function(e){switch(e){case Cv.Triangles:return"triangle-list";case Cv.Verts:return"point-list";case Cv.Lines:default:return"line-list"}},e.buildVertexInput=function(){var r,n,a=t.currentInput,o=t.cellArray,i=t.primitiveType,s=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),l=t.WebGPURenderWindow.getDevice(),c=!1;i===xv.TriangleEdges&&(c=!0,s=Sv.WIREFRAME);var u,d=t.vertexInput,f=a.getPoints();if(o){var p={hash:"R".concat(s,"P").concat(i).concat(o.getMTime()),usage:Cv.Index,cells:o,numberOfPoints:f.getNumberOfPoints(),primitiveType:i,representation:s};u=l.getBufferManager().getBuffer(p),d.setIndexBuffer(u)}else d.setIndexBuffer(null);if(f){var g=t.WebGPUActor.getBufferShift(t.WebGPURenderer),m={hash:"".concat(f.getMTime(),"I").concat(u.getMTime()).concat(g.join(),"float32x4"),usage:Cv.PointArray,format:"float32x4",dataArray:f,indexBuffer:u,shift:g,packExtra:!0},h=l.getBufferManager().getBuffer(m);d.addBuffer(h,["vertexBC"])}else d.removeBufferIfPresent("vertexBC");var v=e.getUsage(s,i);if(t._usesCellNormals=!1,t.is2D||v!==Cv.Triangles&&v!==Cv.Strips)d.removeBufferIfPresent("normalMC");else{var y=a.getPointData().getNormals(),b={format:"snorm8x4",indexBuffer:u,packExtra:!0,shift:0,scale:127};if(y){b.hash="".concat(y.getMTime(),"I").concat(u.getMTime(),"snorm8x4"),b.dataArray=y,b.usage=Cv.PointArray;var T=l.getBufferManager().getBuffer(b);d.addBuffer(T,["normalMC"])}else if(i===xv.Triangles){t._usesCellNormals=!0,b.hash="PFN".concat(f.getMTime(),"I").concat(u.getMTime(),"snorm8x4"),b.dataArray=f,b.cells=o,b.usage=Cv.NormalsFromPoints;var C=l.getBufferManager().getBuffer(b);d.addBuffer(C,["normalMC"])}else d.removeBufferIfPresent("normalMC")}var x=!1;if(t.renderable.getScalarVisibility()){var S=t.renderable.getColorMapColors();if(S&&!c){var P=t.renderable.getScalarMode(),w=!1;P!==Pv.USE_CELL_DATA&&P!==Pv.USE_CELL_FIELD_DATA&&P!==Pv.USE_FIELD_DATA&&a.getPointData().getScalars()||P===Pv.USE_POINT_FIELD_DATA||!S||(w=!0);var O={usage:Cv.PointArray,format:"unorm8x4",hash:"".concat(w).concat(S.getMTime(),"I").concat(u.getMTime(),"unorm8x4"),dataArray:S,indexBuffer:u,cellData:w,cellOffset:0},I=l.getBufferManager().getBuffer(O);d.addBuffer(I,["colorVI"]),x=!0}}x||d.removeBufferIfPresent("colorVI");var A=null;if((A=null!==(r=(n=t.renderable).getInterpolateScalarsBeforeMapping)&&void 0!==r&&r.call(n)&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():a.getPointData().getTCoords())&&!c){var R=l.getBufferManager().getBufferForPointArray(A,d.getIndexBuffer());d.addBuffer(R,["tcoord"])}else d.removeBufferIfPresent("tcoord")},e.updateTextures=function(){var e,r,n,a,o,i,s,l,c,u,d,f,p,g,m,h=[],v=[],y=null===(e=(r=t.renderable).getColorTextureMap)||void 0===e?void 0:e.call(r);y&&(t.colorTexture||(t.colorTexture=oh.ZP.newInstance({label:"polyDataColor"})),t.colorTexture.setInputData(y),v.push(["Diffuse",t.colorTexture]));var b=t.WebGPUActor.getRenderable(),T=t.WebGPURenderer.getRenderable(),C=[];if(null!==(n=(a=b.getProperty()).getDiffuseTexture)&&void 0!==n&&n.call(a)){var x=["Diffuse",b.getProperty().getDiffuseTexture()];C.push(x)}if(b.getTextures()[0]){var S=["Diffuse",b.getTextures()[0]];C.push(S)}if(t.colorTexture){var P=["Diffuse",t.colorTexture];C.push(P)}if(null!==(o=(i=b.getProperty()).getRoughnessTexture)&&void 0!==o&&o.call(i)){var w=["Roughness",b.getProperty().getRoughnessTexture()];C.push(w)}if(null!==(s=(l=b.getProperty()).getMetallicTexture)&&void 0!==s&&s.call(l)){var O=["Metallic",b.getProperty().getMetallicTexture()];C.push(O)}if(null!==(c=(u=b.getProperty()).getNormalTexture)&&void 0!==c&&c.call(u)){var I=["Normal",b.getProperty().getNormalTexture()];C.push(I)}if(null!==(d=(f=b.getProperty()).getAmbientOcclusionTexture)&&void 0!==d&&d.call(f)){var A=["AmbientOcclusion",b.getProperty().getAmbientOcclusionTexture()];C.push(A)}if(null!==(p=(g=b.getProperty()).getEmissionTexture)&&void 0!==p&&p.call(g)){var R=["Emission",b.getProperty().getEmissionTexture()];C.push(R)}if(null!==(m=T.getEnvironmentTexture)&&void 0!==m&&m.call(T)){var E=["Environment",T.getEnvironmentTexture()];C.push(E)}for(var M=0;M<C.length;M++)(C[M][1].getInputData()||C[M][1].getJsImageData()||C[M][1].getCanvas())&&v.push(C[M]),C[M][1].getImage()&&C[M][1].getImageLoaded()&&v.push(C[M]);for(var D=0;D<v.length;D++){var V=v[D][1],L=v[D][0],_=t.device.getTextureManager().getTextureForVTKTexture(V);if(_.getReady()){for(var N=!1,B=0;B<t.textures.length;B++)t.textures[B]===_&&(N=!0,h[B]=!0);if(!N){h[t.textures.length]=!0;var F=_.createView("".concat(L,"Texture"));t.textures.push(_),t.textureViews.push(F);var U=V.getInterpolate()?"linear":"nearest",k=null;!k&&V.getEdgeClamp()&&V.getRepeat()&&(k="mirror-repeat"),!k&&V.getEdgeClamp()&&(k="clamp-to-edge"),!k&&V.getRepeat()&&(k="repeat"),"Environment"!==L?F.addSampler(t.device,{addressModeU:k,addressModeV:k,addressModeW:k,minFilter:U,magFilter:U}):F.addSampler(t.device,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:U,magFilter:U,mipmapFilter:"linear"})}}}for(var G=t.textures.length-1;G>=0;G--)h[G]||(t.textures.splice(G,1),t.textureViews.splice(G,1))},e.computePipelineHash=function(){var r="pd".concat(t.useRendererMatrix?"r":"").concat(t.forceZValue?"z":"");if(t.primitiveType===xv.TriangleEdges||t.primitiveType===xv.TriangleStripEdges)r+="edge";else{if(t.vertexInput.hasAttribute("normalMC")&&(r+="n"),t.vertexInput.hasAttribute("colorVI")&&(r+="c"),t.vertexInput.hasAttribute("tcoord")){var n=t.vertexInput.getBuffer("tcoord"),a=Ca.getNumberOfComponentsFromBufferFormat(n.getArrayInformation()[0].format);r+="t".concat(a)}t.textures.length&&(r+="tx".concat(t.textures.length))}t._usesCellNormals&&(r+="cn"),t.SSBO&&(r+="ssbo"),r+=e.getHashFromUsage(t.usage),r+=t.renderEncoder.getPipelineHash(),t.pipelineHash=r},e.updateBuffers=function(){t.primitiveType!==xv.TriangleEdges&&t.primitiveType!==xv.TriangleStripEdges&&e.updateTextures();var r=t.WebGPUActor.getRenderable(),n=r.getProperty().getRepresentation();t.usage=e.getUsage(n,t.primitiveType),e.buildVertexInput();var a=t.vertexInput.getBuffer("vertexBC");if(e.setNumberOfVertices(a.getSizeInBytes()/a.getStrideInBytes()),e.setTopology(e.getTopologyFromUsage(t.usage)),e.updateUBO(),e.haveWideLines()){var o=r.getProperty();e.setNumberOfInstances(Math.ceil(2*o.getLineWidth()))}else e.setNumberOfInstances(1)}}(e,t)}var Ev={newInstance:(0,ht.WL)(Rv,"vtkWebGPUCellArrayMapper"),extend:Rv},Mv=po.PrimitiveTypes;var Dv={primitives:null};function Vv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dv,r),Tt.extend(e,t,r),t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.createCellArrayMapper=function(){return Ev.newInstance()},e.buildPass=function(r){if(r){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.renderable.getStatic()||t.renderable.update();var n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=function(r){for(var n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],a=[],o=0,i=Mv.Points;i<=Mv.Triangles;i++)if(n[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());var s=t.primitives[i];s.setCellArray(n[i]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(i),s.setRenderable(t.renderable),o+=n[i].getNumberOfCells(),a.push(s)}else t.primitives[i]=null;if(t.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(var l=Mv.TriangleEdges;l<=Mv.TriangleStripEdges;l++)if(n[l-2].getNumberOfValues()>0){t.primitives[l]||(t.primitives[l]=e.createCellArrayMapper());var c=t.primitives[l];c.setCellArray(n[l-2]),c.setCurrentInput(r),c.setCellOffset(t.primitives[l-2].getCellOffset()),c.setPrimitiveType(l),c.setRenderable(t.renderable),a.push(c)}else t.primitives[l]=null;e.prepareNodes(),e.addMissingChildren(a),e.removeUnusedNodes()}}(e,t)}var Lv=(0,ht.WL)(Vv,"vtkWebGPUPolyDataMapper");function _v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}Qn("vtkMapper",Lv);var Nv=po.PrimitiveTypes;function Bv(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_v(Object(r),!0).forEach((function(t){(0,qt.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({primitives:[]},e)}function Fv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bv(r)),Tt.extend(e,t,r),t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),e.createCellArrayMapper=function(){return Ev.newInstance()},e.buildPass=function(r){if(r){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.renderable.getStatic()||t.renderable.update();var n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=function(r){for(var n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],a=[],o=0,i=Nv.Points;i<=Nv.Triangles;i++)if(n[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());var s=t.primitives[i];s.setCellArray(n[i]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(i),s.setRenderable(t.renderable),s.setIs2D(!0),o+=n[i].getNumberOfCells(),a.push(s)}else t.primitives[i]=null;e.prepareNodes(),e.addMissingChildren(a),e.removeUnusedNodes()}}(e,t)}var Uv=(0,ht.WL)(Fv,"vtkWebGPUPolyDataMapper2D");Qn("vtkMapper2D",Uv);var kv={};function Gv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kv,r),Tt.extend(e,t,r),t.scalarBarActorHelper=tv.newScalarBarActorHelper(),function(e,t){t.classHierarchy.push("vtkWebGPUScalarBarActor"),e.buildPass=function(r){r&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=function(e,r){if(e){var n=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,a=t.WebGPURenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([a.usize,a.vsize],n,t.WebGPURenderWindow.getRenderable())}}}(e,t)}var Wv=(0,ht.WL)(Gv,"vtkWebGPUScalarBarActor");Qn("vtkScalarBarActor",Wv);var zv={texture:null,handle:null,sampler:null,label:null};function jv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zv,r),ht.default.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},t.bindGroupTime={},ht.default.obj(t.bindGroupTime,{mtime:0}),ht.default.get(e,t,["bindGroupTime","texture"]),ht.default.setGet(e,t,["bindGroupLayoutEntry","label","sampler"]),function(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=function(e,r){t.texture=e,t.options=r,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;var n=Ca.getDetailsFromTextureFormat(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=n.sampleType},e.createFromTextureHandle=function(e,r){t.texture=null,t.options=r,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;var n=Ca.getDetailsFromTextureFormat(r.format);t.bindGroupLayoutEntry.texture.sampleType=n.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=function(){return{resource:e.getHandle()}},e.getShaderCode=function(e,r){var n="f32";"sint"===t.bindGroupLayoutEntry.texture.sampleType?n="i32":"uint"===t.bindGroupLayoutEntry.texture.sampleType&&(n="u32");var a="@binding(".concat(e,") @group(").concat(r,") var ").concat(t.label,": texture_").concat(t.options.dimension,"<").concat(n,">;");return"depth"===t.bindGroupLayoutEntry.texture.sampleType&&(a="@binding(".concat(e,") @group(").concat(r,") var ").concat(t.label,": texture_depth_").concat(t.options.dimension,";")),a},e.addSampler=function(r,n){var a=Lo.newInstance({label:"".concat(t.label,"Sampler")});a.create(r,n),e.setSampler(a)},e.getBindGroupTime=function(){return t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime},e.getHandle=function(){return t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle}}(e,t)}var Hv={newInstance:ht.default.newInstance(jv),extend:jv},Kv=po.BufferUsage;var Zv={device:null,handle:null,buffer:null,ready:!1,label:null};function Xv(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zv,r),ht.default.obj(e,t),ht.default.get(e,t,["handle","ready","width","height","depth","format","usage"]),ht.default.setGet(e,t,["device","label"]),function(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=function(e,r){t.device=e,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1;var n=1===t.depth?"2d":"3d";t.format=r.format?r.format:"rgba8unorm",t.mipLevel=r.mipLevel?r.mipLevel:0,t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:n,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=function(e,r,n){t.device=e,t.handle=r,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1,t.format=n.format?n.format:"rgba8unorm",t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=function(r){var n=[];if(r.canvas)return t.device.getHandle().queue.copyExternalImageToTexture({source:r.canvas,flipY:r.flip},{texture:t.handle,premultipliedAlpha:!0},[t.width,t.height,t.depth]),void(t.ready=!0);r.jsImageData&&!r.nativeArray&&(r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format="rgba8unorm",r.flip=!0,r.nativeArray=r.jsImageData.data);var a=Ca.getDetailsFromTextureFormat(t.format),o=t.width*a.stride,i=function(e,t,r){var n=e.length/(t*r)*e.BYTES_PER_ELEMENT,o=2===a.elementSize&&"float"===a.sampleType;if(o||n%256){for(var i=e,s=n/i.BYTES_PER_ELEMENT,l=a.elementSize,c=256*Math.floor((s*l+255)/256),u=c/l,d=ht.default.newTypedArray(o?"Uint16Array":i.constructor.name,u*t*r),f=0;f<t*r;f++)if(o)for(var p=0;p<s;p++)d[f*u+p]=Br.toHalf(i[f*s+p]);else d.set(i.subarray(f*s,(f+1)*s),f*u);return[d,c]}return[e,n]};if(r.nativeArray&&(n=r.nativeArray),r.image){var s=document.createElement("canvas");s.width=r.image.width,s.height=r.image.height;var l=s.getContext("2d");l.translate(0,s.height),l.scale(1,-1),l.drawImage(r.image,0,0,r.image.width,r.image.height,0,0,s.width,s.height),n=l.getImageData(0,0,r.image.width,r.image.height).data}var c=t.device.createCommandEncoder();if(3!==e.getDimensionality()){for(var u=oh.ZP.generateMipmaps(n,t.width,t.height,t.mipLevel),d=t.width,f=t.height,p=0;p<=t.mipLevel;p++){var g=i(u[p],f,1);o=g[1];var m={dataArray:r.dataArray?r.dataArray:null,nativeArray:g[0],usage:Kv.Texture},h=t.device.getBufferManager().getBuffer(m);c.copyBufferToTexture({buffer:h.getHandle(),offset:0,bytesPerRow:o,rowsPerImage:f},{texture:t.handle,mipLevel:p},[d,f,1]),d/=2,f/=2}t.device.submitCommandEncoder(c),t.ready=!0}else{var v=i(n,t.height,t.depth);o=v[1];var y={dataArray:r.dataArray?r.dataArray:null,usage:Kv.Texture};y.nativeArray=v[0];var b=t.device.getBufferManager().getBuffer(y);c.copyBufferToTexture({buffer:b.getHandle(),offset:0,bytesPerRow:o,rowsPerImage:t.height},{texture:t.handle},[t.width,t.height,t.depth]),t.device.submitCommandEncoder(c),t.ready=!0}},e.getScale=function(){var e=Ca.getDetailsFromTextureFormat(t.format);return 2===e.elementSize&&"float"===e.sampleType?1:255},e.getNumberOfComponents=function(){return Ca.getDetailsFromTextureFormat(t.format).numComponents},e.getDimensionality=function(){var e=0;return t.width>1&&e++,t.height>1&&e++,t.depth>1&&e++,e},e.resizeToMatch=function(e){e.getWidth()===t.width&&e.getHeight()===t.height&&e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=function(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&r===t.height&&n===t.depth||(t.width=e,t.height=r,t.depth=n,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.dimension||(n.dimension=1===t.depth?"2d":"3d");var a=Hv.newInstance({label:r});return a.create(e,n),a}}(e,t)}ht.default.newInstance(Xv);const qv=class{constructor(e){const{points:t,type:r}=e.data;this.id=e.id,this.points=t,this.type=r,this.color=e.color,this.segmentIndex=e.segmentIndex,this.sizeInBytes=this._getSizeInBytes()}_getSizeInBytes(){let e=0;return e+=3*this.points.length,e}getPoints(){return this.points}getFlatPointsArray(){return this.points.map((e=>[...e])).flat()}getColor(){return this.color}getType(){return this.type}};class Yv{constructor(e){this.color=[200,0,0],this.id=e.id,this.contours=[],this.color=e.color??this.color,this.frameOfReferenceUID=e.frameOfReferenceUID,this.segmentIndex=e.segmentIndex,this._createEachContour(e.data),this.sizeInBytes=this._getSizeInBytes()}_createEachContour(e){e.forEach((e=>{const{points:t,type:r,color:n}=e,a=new qv({id:`${this.id}-segment-${this.segmentIndex}`,data:{points:t,type:r,segmentIndex:this.segmentIndex,color:n??this.color},segmentIndex:this.segmentIndex,color:n??this.color});this.contours.push(a)})),this._updateContourSetCentroid()}_updateContourSetCentroid(){const e=this.getTotalNumberOfPoints(),t=this.getFlatPointsArray(),r=t.reduce(((e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]]),[0,0,0]),n=[r[0]/e,r[1]/e,r[2]/e],a=t.reduce(((e,t)=>this._getDistance(n,t)<this._getDistance(n,e)?t:e),t[0]);this.centroid=a}_getSizeInBytes(){return this.contours.reduce(((e,t)=>e+t.sizeInBytes),0)}getCentroid(){return this.centroid}getSegmentIndex(){return this.segmentIndex}getColor(){return this.color}getContours(){return this.contours}getSizeInBytes(){return this.sizeInBytes}getFlatPointsArray(){return this.contours.map((e=>e.getPoints())).flat()}getNumberOfContours(){return this.contours.length}getTotalNumberOfPoints(){return this.contours.reduce(((e,t)=>e+t.getPoints().length),0)}getNumberOfPointsArray(){return this.contours.reduce(((e,t,r)=>(e[r]=this.getNumberOfPointsInAContour(r),e)),[])}getPointsInContour(e){return this.contours[e].getPoints()}getNumberOfPointsInAContour(e){return this.getPointsInContour(e).length}_getDistance(e,t){return Math.sqrt((e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2)}}async function $v(e,t){let r=qd.getGeometry(e);if(r)return r;if(t.type!==M.CONTOUR)throw new Error("Unknown geometry type, Only CONTOUR is supported");r=function(e,t){if(!t||0===t.data.length)throw new Error("Invalid contour set data, see publicContourSetData type for more info");if(!t.id)throw new Error("Invalid contour set data, each contour set must have an id");if(!t.data||!Array.isArray(t.data))throw new Error("Invalid contour set data, each contour set must have an array of contours");t.data.forEach((e=>{if(!e.points||!Array.isArray(e.points))throw new Error("Invalid contour set data, each contour must have an array of points");e.points.forEach((e=>{if(!e||!Array.isArray(e)||3!==e.length)throw new Error("Invalid contour set data, each point must be an array of length 3")}))}));const r=new Yv({id:t.id,data:t.data,color:t.color,frameOfReferenceUID:t.frameOfReferenceUID,segmentIndex:t.segmentIndex}),n={id:e,type:M.CONTOUR,data:r,sizeInBytes:r.getSizeInBytes()};return n}(e,t.geometryData);const n={promise:Promise.resolve(r)};return await qd.putGeometryLoadObject(e,n),r}},17197:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>g});var n=r(78826),a=r(87765),o=r(41168),i=r(54131),s=r(89262);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e){var t=0;return e.filter((function(e,r){return r===t&&(t+=e+1,!0)}))}function d(e){for(var t=0,r=0;r<e.length;)r+=e[r]+1,t++;return t}var f={extractCellSizes:u,getNumberOfCells:d};function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.ZP.extend(e,t,function(e){return c({empty:!0,numberOfComponents:1,dataType:s.Tu.UNSIGNED_INT},e)}(r)),function(e,t){t.classHierarchy.push("vtkCellArray");var r=c({},e);e.getNumberOfCells=function(r){return void 0===t.numberOfCells||r?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=d(e.getData()),t.numberOfCells):t.numberOfCells},e.getCellSizes=function(r){return void 0===t.cellSizes||r?(t.cellSizes=u(e.getData()),t.cellSizes):t.cellSizes},e.resize=function(n){var a=e.getNumberOfTuples();r.resize(n);var o=e.getNumberOfTuples();o<a&&(0===o?(t.numberOfCells=0,t.cellSizes=[]):(t.numberOfCells=void 0,t.cellSizes=void 0))},e.setData=function(e){r.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=function(e){var r=e,n=t.values[r++];return t.values.subarray(r,r+n)},e.insertNextCell=function(r){var a=e.getNumberOfCells();return e.insertNextTuples([r.length].concat((0,n.Z)(r))),++t.numberOfCells,null!=t.cellSizes&&t.cellSizes.push(r.length),a}}(e,t)}var g=c({newInstance:o.default.newInstance(p,"vtkCellArray"),extend:p},f)},54131:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>y});var n=r(87765),a=r(89262),o=r(41168),i=r(59474);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var c=o.E0;function u(e,t,r){var n,a,o,i,s=e.length;if(0===s)return{min:Number.MAX_VALUE,max:-Number.MAX_VALUE};for(a=n=e[t],i=t;i<s;i+=r)(o=e[i])<n?n=o:o>a&&(a=o);return{min:n,max:a}}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(t<0&&r>1){for(var n=e.length/r,a=new Float64Array(n),o=0,i=0;o<n;++o){for(var s,l=i+r;i<l;++i)a[o]+=e[i]*e[i];a[s=o]=Math.pow(a[s],.5)}return u(a,0,1)}return u(e,t<0?0:t,r)}function f(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e||[];r.length<=t;)r.push(null);return r}function p(e){return Object.prototype.toString.call(e).slice(8,-1)}var g={computeRange:d,createRangeHelper:function(){var e=Number.MAX_VALUE,t=-Number.MAX_VALUE,r=0,n=0;return{add:function(a){e>a&&(e=a),t<a&&(t=a),r++,n+=a},get:function(){return{min:e,max:t,count:r,sum:n,mean:n/r}},getRange:function(){return{min:e,max:t}}}},fastComputeRange:u,getDataType:p,getMaxNorm:function(e){for(var t=e.getNumberOfComponents(),r=0,n=new Array(t),a=0;a<e.getNumberOfTuples();++a){e.getTuple(a,n);var o=(0,i.n)(n,t);o>r&&(r=o)}return r}};var m={name:"",numberOfComponents:1,dataType:a.ZP.DefaultDataType,rangeTuple:[0,0]};function h(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,m,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");(t.values?Array.isArray(t.values)&&(t.values=(0,o.MR)(t.dataType,t.values)):t.values=(0,o.B5)(t.dataType,t.size),t.values)&&(t.size=null!==(r=t.size)&&void 0!==r?r:t.values.length,t.dataType=p(t.values));(0,o.j6)(e,t),(0,o.t8)(e,t,["name","numberOfComponents"]),function(e,t){function r(r){if(r<0)return!1;var n=e.getNumberOfComponents(),a=t.values.length/(n>0?n:1);if(r===a)return!0;if(r>a){var i=t.values;return t.values=(0,o.B5)(t.dataType,(r+a)*n),t.values.set(i),!0}return t.size>r*n&&(t.size=r*n,e.dataChange()),!0}t.classHierarchy.push("vtkDataArray"),e.dataChange=function(){t.ranges=null,e.modified()},e.resize=function(n){r(n);var a=n*e.getNumberOfComponents();return t.size!==a&&(t.size=a,e.dataChange(),!0)},e.initialize=function(){e.resize(0)},e.getElementComponentSize=function(){return t.values.BYTES_PER_ELEMENT},e.getComponent=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+r]},e.setComponent=function(r,n,a){a!==t.values[r*t.numberOfComponents+n]&&(t.values[r*t.numberOfComponents+n]=a,e.dataChange())},e.getValue=function(r){var n=r/t.numberOfComponents,a=r%t.numberOfComponents;return e.getComponent(n,a)},e.setValue=function(r,n){var a=r/t.numberOfComponents,o=r%t.numberOfComponents;e.setComponent(a,o,n)},e.getData=function(){return t.size===t.values.length?t.values:t.values.subarray(0,t.size)},e.getRange=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=r<0?t.numberOfComponents:r,a=null;return t.ranges||(t.ranges=f(t.ranges,t.numberOfComponents)),(a=t.ranges[n])?(t.rangeTuple[0]=a.min,t.rangeTuple[1]=a.max,t.rangeTuple):(a=d(e.getData(),r,t.numberOfComponents),t.ranges[n]=a,t.rangeTuple[0]=a.min,t.rangeTuple[1]=a.max,t.rangeTuple)},e.setRange=function(e,r){t.ranges||(t.ranges=f(t.ranges,t.numberOfComponents));var n={min:e.min,max:e.max};return t.ranges[r]=n,t.rangeTuple[0]=n.min,t.rangeTuple[1]=n.max,t.rangeTuple},e.setTuple=function(e,r){for(var n=e*t.numberOfComponents,a=0;a<t.numberOfComponents;a++)t.values[n+a]=r[a]},e.setTuples=function(e,r){for(var n=e*t.numberOfComponents,a=Math.min(r.length,t.size-n),o=0;o<a;)t.values[n++]=r[o++]},e.insertTuple=function(n,a){return t.size<=n*t.numberOfComponents&&(t.size=(n+1)*t.numberOfComponents,r(n+1)),e.setTuple(n,a),n},e.insertTuples=function(n,a){var o=n+a.length/t.numberOfComponents;return t.size<o*t.numberOfComponents&&(t.size=o*t.numberOfComponents,r(o)),e.setTuples(n,a),o},e.insertNextTuple=function(r){var n=t.size/t.numberOfComponents;return e.insertTuple(n,r)},e.insertNextTuples=function(r){var n=t.size/t.numberOfComponents;return e.insertTuples(n,r)},e.getTuple=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.numberOfComponents||1,a=e*n;switch(n){case 4:r[3]=t.values[a+3];case 3:r[2]=t.values[a+2];case 2:r[1]=t.values[a+1];case 1:r[0]=t.values[a];break;default:for(var o=n-1;o>=0;--o)r[o]=t.values[a+o]}return r},e.getTuples=function(r,n){var a=(null!=r?r:0)*t.numberOfComponents,o=(null!=n?n:e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(a,o);return i.length>0?i:null},e.getTupleLocation=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=function(){return t.numberOfComponents},e.getNumberOfValues=function(){return t.size},e.getNumberOfTuples=function(){return t.size/t.numberOfComponents},e.getDataType=function(){return t.dataType},e.newClone=function(){return v({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents})},e.getName=function(){return t.name||(e.modified(),t.name="vtkDataArray".concat(e.getMTime())),t.name},e.setData=function(r,n){t.values=r,t.size=r.length,t.dataType=p(r),n&&(t.numberOfComponents=n),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),e.dataChange()},e.getState=function(){if(t.deleted)return null;var r=l(l({},t),{},{vtkClass:e.getClassName()});r.values=Array.from(r.values),delete r.buffer,Object.keys(r).forEach((function(e){r[e]||delete r[e]}));var n={};return Object.keys(r).sort().forEach((function(e){n[e]=r[e]})),n.mtime&&delete n.mtime,n},e.deepCopy=function(t){e.shallowCopy(t),e.setData(t.getData().slice())},e.interpolateTuple=function(r,n,a,o,i,s){var l=t.numberOfComponents||1;l===n.getNumberOfComponents()&&l===o.getNumberOfComponents()||c("numberOfComponents must match");var u=n.getTuple(a),d=o.getTuple(i),f=[];switch(f.length=l,l){case 4:f[3]=u[3]+(d[3]-u[3])*s;case 3:f[2]=u[2]+(d[2]-u[2])*s;case 2:f[1]=u[1]+(d[1]-u[1])*s;case 1:f[0]=u[0]+(d[0]-u[0])*s;break;default:for(var p=0;p<l;p++)f[p]=u[p]+(d[p]-u[p])*s}return e.insertTuple(r,f)}}(e,t)}var v=(0,o.WL)(h,"vtkDataArray"),y=l(l({newInstance:v,extend:h},g),a.ZP)},89262:(e,t,r)=>{"use strict";r.d(t,{Tu:()=>a,Xe:()=>n,ZP:()=>o});var n={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},a={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},o={DefaultDataType:a.FLOAT,DataTypeByteSize:n,VtkDataTypes:a}},1600:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>g});var n=r(41168),a=r(59474),o=r(4666),i=r(77415),s=r(89262),l=n.default.vtkErrorMacro,c=0,u=1,d=2;var f={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,f,r),o.ZP.extend(e,t,r),t.table||(t.table=[]),t.buildTime={},n.default.obj(t.buildTime),t.opaqueFlagBuildTime={},n.default.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},n.default.obj(t.insertTime,{mtime:0}),n.default.get(e,t,["buildTime"]),n.default.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),n.default.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),n.default.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),n.default.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=function(){if(t.opaqueFlagBuildTime.getMTime()<e.getMTime()){var r=!0;t.nanColor[3]<1&&(r=0),t.useBelowRangeColor&&t.belowRangeColor[3]<1&&(r=0),t.useAboveRangeColor&&t.aboveRangeColor[3]<1&&(r=0);for(var n=3;n<t.table.length&&r;n+=4)t.table[n]<255&&(r=!1);t.opaqueFlag=r,t.opaqueFlagBuildTime.modified()}return t.opaqueFlag},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return t.table.length/4},e.linearIndexLookup=function(e,t){var r=0;return r=e<t.range[0]?t.maxIndex+c+1.5:e>t.range[1]?t.maxIndex+u+1.5:(r=(e+t.shift)*t.scale)<t.maxIndex?r:t.maxIndex,Math.floor(r)},e.linearLookup=function(t,r,n){var o=4*((0,a.i)(t)?Math.floor(n.maxIndex+1.5+d):e.linearIndexLookup(t,n));return r.slice(o,o+4)},e.indexedLookupFunction=function(r,n,a){var o=e.getAnnotatedValueIndexInternal(r);-1===o&&(o=t.numberOfColors+d);var i=4*o;return[n[i],n[i+1],n[i+2],n[i+3]]},e.lookupShiftAndScale=function(e,t){t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]>e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=function(r,n,a,o){var s=e.linearLookup;t.indexedLookup&&(s=e.indexedLookupFunction);var l=e.getMappingRange(),c={maxIndex:e.getNumberOfColors()-1,range:l,shift:0,scale:0};e.lookupShiftAndScale(l,c);var u=e.getAlpha(),d=r.getNumberOfTuples(),f=r.getNumberOfComponents(),p=n.getData(),g=r.getData();if(u>=1){if(a===i.OG.RGBA)for(var m=0;m<d;m++){var h=s(g[m*f+o],t.table,c);p[4*m]=h[0],p[4*m+1]=h[1],p[4*m+2]=h[2],p[4*m+3]=h[3]}}else if(a===i.OG.RGBA)for(var v=0;v<d;v++){var y=s(g[v*f+o],t.table,c);p[4*v]=y[0],p[4*v+1]=y[1],p[4*v+2]=y[2],p[4*v+3]=Math.floor(y[3]*u+.5)}},e.forceBuild=function(){var r=0,n=0,o=0,i=0,s=t.numberOfColors-1;s&&(r=(t.hueRange[1]-t.hueRange[0])/s,n=(t.saturationRange[1]-t.saturationRange[0])/s,o=(t.valueRange[1]-t.valueRange[0])/s,i=(t.alphaRange[1]-t.alphaRange[0])/s),t.table.length=4*s+16;for(var l=[],c=[],u=0;u<=s;u++)l[0]=t.hueRange[0]+u*r,l[1]=t.saturationRange[0]+u*n,l[2]=t.valueRange[0]+u*o,(0,a.h)(l,c),c[3]=t.alphaRange[0]+u*i,t.table[4*u]=255*c[0]+.5,t.table[4*u+1]=255*c[1]+.5,t.table[4*u+2]=255*c[2]+.5,t.table[4*u+3]=255*c[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=function(r){if(4===r.getNumberOfComponents())if(r.getDataType()===s.Tu.UNSIGNED_CHAR){t.numberOfColors=r.getNumberOfTuples();var n=r.getData();t.table.length=n.length;for(var a=0;a<n.length;a++)t.table[a]=n[a];e.buildSpecialColors(),t.insertTime.modified(),e.modified()}else l("Expected unsigned char values for RGBA colors");else l("Expected 4 components for RGBA colors")},e.buildSpecialColors=function(){var e=t.numberOfColors,r=t.table,n=4*(e+c);t.useBelowRangeColor||0===e?(r[n]=255*t.belowRangeColor[0]+.5,r[n+1]=255*t.belowRangeColor[1]+.5,r[n+2]=255*t.belowRangeColor[2]+.5,r[n+3]=255*t.belowRangeColor[3]+.5):(r[n]=r[0],r[n+1]=r[1],r[n+2]=r[2],r[n+3]=r[3]),n=4*(e+u),t.useAboveRangeColor||0===e?(r[n]=255*t.aboveRangeColor[0]+.5,r[n+1]=255*t.aboveRangeColor[1]+.5,r[n+2]=255*t.aboveRangeColor[2]+.5,r[n+3]=255*t.aboveRangeColor[3]+.5):(r[n]=r[4*(e-1)+0],r[n+1]=r[4*(e-1)+1],r[n+2]=r[4*(e-1)+2],r[n+3]=r[4*(e-1)+3]),r[n=4*(e+d)]=255*t.nanColor[0]+.5,r[n+1]=255*t.nanColor[1]+.5,r[n+2]=255*t.nanColor[2]+.5,r[n+3]=255*t.nanColor[3]+.5},e.build=function(){(t.table.length<1||e.getMTime()>t.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&t.insertTime.modified()}(e,t)}var g={newInstance:n.default.newInstance(p,"vtkLookupTable"),extend:p}},32899:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>n.f});r(16976),r(78826),r(53775),r(41168),r(40286);var n=r(59474)},40286:(e,t,r)=>{"use strict";r.d(t,{B0:()=>i,Ib:()=>o,Wd:()=>n,qt:()=>a});var n=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],a=[1,0,0,0,1,0,0,0,1],o=1e-6,i=1e-12},59474:(e,t,r)=>{"use strict";r.d(t,{A:()=>b,C:()=>Qe,F:()=>ct,G:()=>Ge,H:()=>Ze,I:()=>Xe,J:()=>C,K:()=>T,L:()=>ie,M:()=>E,N:()=>pt,O:()=>de,P:()=>Ye,Q:()=>M,a:()=>ye,b:()=>we,c:()=>Je,d:()=>H,e:()=>ee,f:()=>bt,g:()=>Le,h:()=>We,i:()=>ft,j:()=>Z,k:()=>U,l:()=>q,m:()=>z,n:()=>X,o:()=>se,r:()=>y,s:()=>k,u:()=>qe});var n=r(16976),a=r(78826),o=r(53775),i=r.n(o),s=r(41168),l=r(40286),c=s.default.vtkErrorMacro,u=s.default.vtkWarningMacro,d=0,f=20;function p(e){return function(){return c("vtkMath::".concat(e," - NOT IMPLEMENTED"))}}function g(e,t,r,n){for(var a,o=0;o<t;o++)a=e[r*t+o],e[r*t+o]=e[n*t+o],e[n*t+o]=a}function m(e,t,r,n){for(var a,o=0;o<t;o++)a=e[o*t+r],e[o*t+r]=e[o*t+n],e[o*t+n]=a}function h(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3,t=Array(e),r=0;r<e;++r)t[r]=0;return t}var v=function(){return Math.PI};function y(e){return e/180*Math.PI}function b(e){return 180*e/Math.PI}var T=Math.round,C=Math.floor,x=Math.ceil,S=Math.min,P=Math.max;function w(e){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=e.length;n<a;n+=t)e[n]<r&&(r=e[n]);return r}function O(e){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=e.length;n<a;n+=t)r<e[n]&&(r=e[n]);return r}function I(e){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,n=-1/0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=e.length;a<o;a+=t)e[a]<r&&(r=e[a]),n<e[a]&&(n=e[a]);return[r,n]}var A=p("ceilLog2"),R=p("factorial");function E(e){for(var t=1;t<e;)t*=2;return t}function M(e){return e===E(e)}function D(e,t){for(var r=1,n=1;n<=t;++n)r*=(e-n+1)/n;return Math.floor(r)}function V(e,t){if(e<t)return 0;for(var r=h(t),n=0;n<t;++n)r[n]=n;return r}function L(e,t,r){for(var n=0,a=t-1;a>=0;--a)if(r[a]<e-t+a){for(var o=r[a]+1;a<t;)r[a++]=o++;n=1;break}return n}function _(e){i()("".concat(e),{global:!0}),d=e}function N(){return d}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e+((arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)-e)*Math.random()}var F=p("gaussian");function U(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function k(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r}function G(e,t){return e[0]*=t,e[1]*=t,e[2]*=t,e}function W(e,t){return e[0]*=t,e[1]*=t,e}function z(e,t,r,n){return n[0]=e[0]+t[0]*r,n[1]=e[1]+t[1]*r,n[2]=e[2]+t[2]*r,n}function j(e,t,r,n){return n[0]=e[0]+t[0]*r,n[1]=e[1]+t[1]*r,n}function H(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function K(e,t,r){r[0]=e[0]*t[0],r[1]=e[0]*t[1],r[2]=e[0]*t[2],r[3]=e[1]*t[0],r[4]=e[1]*t[1],r[5]=e[1]*t[2],r[6]=e[2]*t[0],r[7]=e[2]*t[1],r[8]=e[2]*t[2]}function Z(e,t,r){var n=e[1]*t[2]-e[2]*t[1],a=e[2]*t[0]-e[0]*t[2],o=e[0]*t[1]-e[1]*t[0];return r[0]=n,r[1]=a,r[2]=o,r}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var r=0,n=0;n<t;n++)r+=e[n]*e[n];return Math.sqrt(r)}}function q(e){var t=X(e);return 0!==t&&(e[0]/=t,e[1]/=t,e[2]/=t),t}function Y(e,t,r,n){var a,o,i,s=e[0]*e[0],l=e[1]*e[1],c=e[2]*e[2],u=Math.sqrt(s+l+c);s>l&&s>c?(a=0,o=1,i=2):l>c?(a=1,o=2,i=0):(a=2,o=0,i=1);var d=e[a]/u,f=e[o]/u,p=e[i]/u,g=Math.sqrt(d*d+p*p);if(0!==n){var m=Math.sin(n),h=Math.cos(n);t&&(t[a]=(p*h-d*f*m)/g,t[o]=m*g,t[i]=(-d*h-f*p*m)/g),r&&(r[a]=(-p*m-d*f*h)/g,r[o]=h*g,r[i]=(d*m-f*p*h)/g)}else t&&(t[a]=p/g,t[o]=0,t[i]=-d/g),r&&(r[a]=-d*f/g,r[o]=g,r[i]=-f*p/g)}function $(e,t,r){var n=H(t,t);if(0===n)return r[0]=0,r[1]=0,r[2]=0,!1;for(var a=H(e,t)/n,o=0;o<3;o++)r[o]=t[o];return G(r,a),!0}function Q(e,t){return e[0]*t[0]+e[1]*t[1]}function J(e,t,r){var n=Q(t,t);if(0===n)return r[0]=0,r[1]=0,!1;for(var a=Q(e,t)/n,o=0;o<2;o++)r[o]=t[o];return W(r,a),!0}function ee(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])+(e[2]-t[2])*(e[2]-t[2])}function te(e,t){var r=[0,0,0];return Z(e,t,r),Math.atan2(X(r),H(e,t))}function re(e,t,r){var n=Math.abs(e-r);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-Math.pow(n,2)/(2*t))}function ne(e,t,r){var n=Math.abs(e-r);return Math.exp(-Math.pow(n,2)/(2*t))}function ae(e,t,r){r[0]=e[0]*t[0],r[1]=e[0]*t[1],r[2]=e[1]*t[0],r[3]=e[1]*t[1]}function oe(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function ie(e){var t=oe(e);return 0!==t&&(e[0]/=t,e[1]/=t),t}function se(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return 2===t.length?t[0][0]*t[1][1]-t[1][0]*t[0][1]:4===t.length?t[0]*t[3]-t[1]*t[2]:Number.NaN}function le(e,t){for(var r,n,a,o=[0,0,0],i=0;i<3;i++)a=Math.abs(e[3*i]),(n=Math.abs(e[3*i+1]))>a&&(a=n),(n=Math.abs(e[3*i+2]))>a&&(a=n),o[i]=1/a;a=o[0]*Math.abs(e[0]),r=0,(n=o[1]*Math.abs(e[3]))>=a&&(a=n,r=1),(n=o[2]*Math.abs(e[6]))>=a&&(r=2),0!==r&&(g(e,3,r,0),o[r]=o[0]),t[0]=r,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],a=o[1]*Math.abs(e[4]),r=1,(n=o[2]*Math.abs(e[7]))>=a&&(r=2,g(e,3,1,2),o[2]=o[1]),t[1]=r,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2}function ce(e,t,r){var n=r[t[0]];r[t[0]]=r[0],r[0]=n,n=r[t[1]],r[t[1]]=r[1],r[1]=n-e[3]*r[0],n=r[t[2]],r[t[2]]=r[2],r[2]=n-e[6]*r[0]-e[7]*r[1],r[2]/=e[8],r[1]=(r[1]-e[5]*r[2])/e[4],r[0]=(r[0]-e[1]*r[1]-e[2]*r[2])/e[0]}function ue(e,t,r){var n=e[0],a=e[1],o=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],f=+se(s,u,l,d),p=-se(i,c,l,d),g=+se(i,c,s,u),m=-se(a,u,o,d),h=+se(n,c,o,d),v=-se(n,c,a,u),y=+se(a,s,o,l),b=-se(n,i,o,l),T=+se(n,i,a,s),C=n*f+a*p+o*g,x=f*t[0]+m*t[1]+y*t[2],S=p*t[0]+h*t[1]+b*t[2],P=g*t[0]+v*t[1]+T*t[2];r[0]=x/C,r[1]=S/C,r[2]=P/C}function de(e,t,r){var n=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],a=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],o=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];r[0]=n,r[1]=a,r[2]=o}function fe(e,t,r){for(var n=(0,a.Z)(e),o=(0,a.Z)(t),i=0;i<3;i++)r[i]=n[0]*o[i]+n[1]*o[i+3]+n[2]*o[i+6],r[i+3]=n[3]*o[i]+n[4]*o[i+3]+n[5]*o[i+6],r[i+6]=n[6]*o[i]+n[7]*o[i+3]+n[8]*o[i+6]}function pe(e,t,r,n,o,i,s){n!==o&&c("Number of columns of A must match number of rows of B.");for(var l=(0,a.Z)(e),u=(0,a.Z)(t),d=0;d<r;d++)for(var f=0;f<i;f++){s[d*i+f]=0;for(var p=0;p<n;p++)s[d*i+f]+=l[d*n+p]*u[f+i*p]}}function ge(e,t){var r;r=e[3],t[3]=e[1],t[1]=r,r=e[6],t[6]=e[2],t[2]=r,r=e[7],t[7]=e[5],t[5]=r,t[0]=e[0],t[4]=e[4],t[8]=e[8]}function me(e,t){var r=e[0],n=e[1],a=e[2],o=e[3],i=e[4],s=e[5],l=e[6],c=e[7],d=e[8],f=+se(i,c,s,d),p=-se(o,l,s,d),g=+se(o,l,i,c),m=-se(n,c,a,d),h=+se(r,l,a,d),v=-se(r,l,n,c),y=+se(n,i,a,s),b=-se(r,o,a,s),T=+se(r,o,n,i),C=r*f+n*p+a*g;0===C&&u("Matrix has 0 determinant"),t[0]=f/C,t[3]=p/C,t[6]=g/C,t[1]=m/C,t[4]=h/C,t[7]=v/C,t[2]=y/C,t[5]=b/C,t[8]=T/C}function he(e){return e[0]*e[4]*e[8]+e[3]*e[7]*e[2]+e[6]*e[1]*e[5]-e[0]*e[7]*e[5]-e[3]*e[1]*e[8]-e[6]*e[4]*e[2]}function ve(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.Ib;if(e.length!==t.length)return!1;return e.every((function(e,n){return Math.abs(e-t[n])<=r}))}var ye=ve;function be(e){for(var t=0;t<3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function Te(e,t){for(var r=0;r<e;r++){for(var n=0;n<e;n++)t[r*e+n]=0;t[r*e+r]=1}return t}function Ce(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.Ib;return ye(e,l.Wd,t)}function xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.Ib;return ye(e,l.qt,t)}function Se(e,t){var r=e[0]*e[0],n=e[0]*e[1],a=e[0]*e[2],o=e[0]*e[3],i=e[1]*e[1],s=e[2]*e[2],l=e[3]*e[3],c=e[1]*e[2],u=e[1]*e[3],d=e[2]*e[3],f=i+s+l,p=1/(r+f),g=(r-f)*p;p*=2,t[0]=i*p+g,t[3]=(c+o)*p,t[6]=(u-a)*p,t[1]=(c-o)*p,t[4]=s*p+g,t[7]=(d+n)*p,t[2]=(u+a)*p,t[5]=(d-n)*p,t[8]=l*p+g}function Pe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!"".concat(e).includes("e"))return+"".concat(Math.round("".concat(e,"e+").concat(t)),"e-").concat(t);var r="".concat(e).split("e"),n="";return+r[1]+t>0&&(n="+"),+"".concat(Math.round("".concat(+r[0],"e").concat(n).concat(+r[1]+t)),"e-").concat(t)}function we(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=Pe(e[0],r),t[1]=Pe(e[1],r),t[2]=Pe(e[2],r),t}function Oe(e,t,r,n){var a,o,i,s,c,d,p,g,v,y,b,T,C,x,S,P,w=h(t),O=h(t),I=function(e,t,r){x=e[t],C=e[r],e[t]=x-T*(C+x*y),e[r]=C+T*(x-C*y)};for(Te(t,n),c=0;c<t;c++)w[c]=r[c]=e[c+c*t],O[c]=0;for(a=0;a<f;a++){for(b=0,c=0;c<t-1;c++)for(s=c+1;s<t;s++)b+=Math.abs(e[c*t+s]);if(0===b)break;for(p=a<3?.2*b/(t*t):0,c=0;c<t-1;c++)for(s=c+1;s<t;s++)if(x=100*Math.abs(e[c*t+s]),a>3&&Math.abs(r[c])+x===Math.abs(r[c])&&Math.abs(r[s])+x===Math.abs(r[s]))e[c*t+s]=0;else if(Math.abs(e[c*t+s])>p){for(C=r[s]-r[c],Math.abs(C)+x===Math.abs(C)?v=e[c*t+s]/C:(g=.5*C/e[c*t+s],v=1/(Math.abs(g)+Math.sqrt(1+g*g)),g<0&&(v=-v)),S=1/Math.sqrt(1+v*v),y=(T=v*S)/(1+S),C=v*e[c*t+s],O[c]-=C,O[s]+=C,r[c]-=C,r[s]+=C,e[c*t+s]=0,o=0;o<=c-1;o++)I(e,o*t+c,o*t+s);for(o=c+1;o<=s-1;o++)I(e,c*t+o,o*t+s);for(o=s+1;o<t;o++)I(e,c*t+o,s*t+o);for(o=0;o<t;o++)I(n,o*t+c,o*t+s)}for(c=0;c<t;c++)w[c]+=O[c],r[c]=w[c],O[c]=0}if(a>=f)return u("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o<t-1;o++){for(P=r[i=o],a=o+1;a<t;a++)(r[a]>=P||Math.abs(r[a]-P)<l.B0)&&(P=r[i=a]);i!==o&&(r[i]=r[o],r[o]=P,m(n,t,o,i))}var A=(t>>1)+(1&t);for(d=0,a=0;a<t*t;a++)n[a]>=0&&d++;if(d<A)for(a=0;a<t;a++)n[a*t+o]*=-1;return 1}function Ie(e,t){var r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];r[0]=e[0]+e[4]+e[8],r[5]=e[0]-e[4]-e[8],r[10]=-e[0]+e[4]-e[8],r[15]=-e[0]-e[4]+e[8],r[1]=r[4]=e[7]-e[5],r[2]=r[8]=e[2]-e[6],r[3]=r[12]=e[3]-e[1],r[6]=r[9]=e[3]+e[1],r[7]=r[13]=e[2]+e[6],r[11]=r[14]=e[7]+e[5];var n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];Oe([].concat(r),4,[0,0,0,0],n),t[0]=n[0],t[1]=n[4],t[2]=n[8],t[3]=n[12]}function Ae(e,t,r){var n=e[0]*t[0],a=e[0]*t[1],o=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],f=e[2]*t[1],p=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],y=e[3]*t[3];r[0]=n-l-p-y,r[1]=a+s+g-v,r[2]=o-u+d+h,r[3]=i+c-f+m}function Re(e,t){for(var r=0;r<9;r++)t[r]=e[r];for(var n,a=h(3),o=h(3),i=0;i<3;i++){var s=Math.abs(t[3*i]),l=Math.abs(t[3*i+1]),c=Math.abs(t[3*i+2]);n=c>(n=l>s?l:s)?c:n,a[i]=1,0!==n&&(a[i]/=n)}var u=Math.abs(t[0])*a[0],d=Math.abs(t[3])*a[1],f=Math.abs(t[6])*a[2];o[0]=0,d>=(n=u)&&(n=d,o[0]=1),f>=n&&(o[0]=2),0!==o[0]&&(m(t,3,o[0],0),a[o[0]]=a[0]);var p=Math.abs(t[4])*a[1],g=Math.abs(t[7])*a[2];o[1]=1,g>=(n=p)&&(o[1]=2,m(t,3,1,2)),o[2]=2;var v=0;if(he(t)<0){v=1;for(var y=0;y<9;y++)t[y]=-t[y]}var b=h(4);if(Ie(t,b),Se(b,t),v)for(var T=0;T<9;T++)t[T]=-t[T];1!==o[1]&&m(t,3,o[1],1),0!==o[0]&&m(t,3,o[0],0)}function Ee(e,t,r){var n,o,i,s,l,c;if(Oe((0,a.Z)(e),3,t,r),t[0]!==t[1]||t[0]!==t[2]){for(ge(r,r),n=0;n<3;n++)if(t[(n+1)%3]===t[(n+2)%3]){for(c=Math.abs(r[3*n]),s=0,o=1;o<3;o++)c<(l=Math.abs(r[3*n+o]))&&(c=l,s=o);s!==n&&(l=t[s],t[s]=t[n],t[n]=l,g(r,3,n,s)),r[3*s+s]<0&&(r[3*s]=-r[3*s],r[3*s+1]=-r[3*s+1],r[3*s+2]=-r[3*s+2]),i=(s+2)%3,r[3*(o=(s+1)%3)]=0,r[3*o+1]=0,r[3*o+2]=0,r[3*o+o]=1;var u=Z([r[3*s],r[3*s+1],r[3*s+2]],[r[3*o],r[3*o+1],r[3*o+2]],[]);q(u);for(var d=Z(u,[r[3*s],r[3*s+1],r[3*s+2]],[]),f=0;f<3;f++)r[3*i+f]=u[f],r[3*o+f]=d[f];return void ge(r,r)}for(c=Math.abs(r[0]),s=0,n=1;n<3;n++)c<(l=Math.abs(r[3*n]))&&(c=l,s=n);if(0!==s){var p=t[s];t[s]=t[0],t[0]=p,g(r,3,s,0)}if(Math.abs(r[4])<Math.abs(r[7])){var m=t[2];t[2]=t[1],t[1]=m,g(r,3,1,2)}for(n=0;n<2;n++)r[3*n+n]<0&&(r[3*n]=-r[3*n],r[3*n+1]=-r[3*n+1],r[3*n+2]=-r[3*n+2]);he(r)<0&&(r[6]=-r[6],r[7]=-r[7],r[8]=-r[8]),ge(r,r)}else be(r)}function Me(e,t,r,n){var o,i=(0,a.Z)(e),s=he(i);if(s<0)for(o=0;o<9;o++)i[o]=-i[o];Re(i,t),ge(i,i),fe(i,t,n),Ee(n,r,n),fe(t,n,t),ge(n,n),s<0&&(r[0]=-r[0],r[1]=-r[1],r[2]=-r[2])}function De(e,t,r){var n,a,o,i,s,c,d,f=0,p=h(r);for(n=0;n<r;n++){for(i=0,a=0;a<r;a++)(d=Math.abs(e[n*r+a]))>i&&(i=d);if(0===i)return u("Unable to factor linear system"),0;p[n]=1/i}for(a=0;a<r;a++){for(n=0;n<a;n++){for(s=e[n*r+a],o=0;o<n;o++)s-=e[n*r+o]*e[o*r+a];e[n*r+a]=s}for(i=0,n=a;n<r;n++){for(s=e[n*r+a],o=0;o<a;o++)s-=e[n*r+o]*e[o*r+a];e[n*r+a]=s,(c=p[n]*Math.abs(s))>=i&&(i=c,f=n)}if(a!==f){for(o=0;o<r;o++)c=e[f*r+o],e[f*r+o]=e[a*r+o],e[a*r+o]=c;p[f]=p[a]}if(t[a]=f,Math.abs(e[a*r+a])<=l.B0)return u("Unable to factor linear system"),0;if(a!==r-1)for(c=1/e[a*r+a],n=a+1;n<r;n++)e[n*r+a]*=c}return 1}function Ve(e,t,r,n){var a,o,i,s,l;for(i=-1,a=0;a<n;a++){if(l=r[s=t[a]],r[s]=r[a],i>=0)for(o=i;o<=a-1;o++)l-=e[a*n+o]*r[o];else 0!==l&&(i=a);r[a]=l}for(a=n-1;a>=0;a--){for(l=r[a],o=a+1;o<n;o++)l-=e[a*n+o]*r[o];r[a]=l/e[a*n+a]}}function Le(e,t,r){if(2===r){var n=h(2),a=se(e[0],e[1],e[2],e[3]);return 0===a?0:(n[0]=(e[3]*t[0]-e[1]*t[1])/a,n[1]=(-e[2]*t[0]+e[0]*t[1])/a,t[0]=n[0],t[1]=n[1],1)}if(1===r)return 0===e[0]?0:(t[0]/=e[0],1);var o=h(r);return 0===De(e,o,r)?0:(Ve(e,o,t,r),1)}function _e(e,t,r){var n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:null)||h(r),o=n||h(r);if(0===De(e,a,r))return null;for(var i=0;i<r;i++){for(var s=0;s<r;s++)o[s]=0;o[i]=1,Ve(e,a,o,r);for(var l=0;l<r;l++)t[l*r+i]=o[l]}return t}function Ne(e,t){for(var r=+Number.MAX_VALUE,n=-Number.MAX_VALUE,a=0;a<t;a++)for(var o=a;o<t;o++)Math.abs(e[a*t+o])>n&&(n=Math.abs(e[a*t+o]));for(var i=0;i<t;i++)Math.abs(e[i*t+i])<r&&(r=Math.abs(e[i*t+i]));return 0===r?Number.MAX_VALUE:n/r}function Be(e,t,r){return Oe(e,3,t,r)}function Fe(e,t,r,n){if(e<r)return u("Insufficient number of samples. Underdetermined."),0;var a,o,i,s=h(r*r),l=h(r),c=h(r*r);for(i=0;i<e;i++)for(a=0;a<r;a++)for(o=a;o<r;o++)s[a*r+o]+=t[i*r+a]*t[i*r+o];for(a=0;a<r;a++)for(o=0;o<a;o++)s[a*r+o]=s[o*r+a];for(Oe(s,r,l,c),a=0;a<r;a++)n[a]=c[a*r+r-1];return 1}function Ue(e,t,r,n,a,o){var i=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];if(e<r||e<a)return u("Insufficient number of samples. Underdetermined."),0;var s,c,d,f,p=h(a),g=1,m=0,v=0;if(i){for(d=0;d<a;d++)p[d]=1;for(c=0;c<e;c++)for(d=0;d<a;d++)Math.abs(n[c*a+d])>l.B0&&(g=0,p[d]=0);if(g&&1===a)return u("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),Fe(e,t,r,o);if(g)v=1;else for(d=0;d<a;d++)p[d]&&(v=1)}v&&(m=Fe(e,t,r,s=h(r)));var y=h(r*r),b=h(r*r),T=h(r*a);for(f=0;f<e;f++)for(c=0;c<r;c++){for(d=c;d<r;d++)y[c*r+d]+=t[f*r+c]*t[f*r+d];for(d=0;d<a;d++)T[c*a+d]+=t[f*r+c]*n[f*a+d]}for(c=0;c<r;c++)for(d=0;d<c;d++)y[c*r+d]=y[d*r+c];var C=_e(y,b,r);if(C)for(c=0;c<r;c++)for(d=0;d<a;d++)for(o[c*a+d]=0,f=0;f<r;f++)o[c*a+d]+=b[c*r+f]*T[f*a+d];if(v)for(d=0;d<a;d++)if(p[d])for(c=0;c<r;c++)o[c*a+d]=s[c*a];return v?m&&C:C}function ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}}function Ge(e,t){var r,a,o=(0,n.Z)(e,3),i=o[0],s=o[1],l=o[2],c=1/6,u=i,d=i;s>u?u=s:s<d&&(d=s),l>u?u=l:l<d&&(d=l);var f=u;(a=f>0?(u-d)/u:0)>0?(r=i===u?c*(s-l)/(u-d):s===u?1/3+c*(l-i)/(u-d):2/3+c*(i-s)/(u-d))<0&&(r+=1):r=0,t[0]=r,t[1]=a,t[2]=f}function We(e,t){var r,a,o,i=(0,n.Z)(e,3),s=i[0],l=i[1],c=i[2],u=1/3,d=1/6,f=2/3,p=5/6;s>d&&s<=u?(a=1,r=(u-s)/d,o=0):s>u&&s<=.5?(a=1,o=(s-u)/d,r=0):s>.5&&s<=f?(o=1,a=(f-s)/d,r=0):s>f&&s<=p?(o=1,r=(s-f)/d,a=0):s>p&&s<=1?(r=1,o=(1-s)/d,a=0):(r=1,a=s/d,o=0),r=l*r+(1-l),a=l*a+(1-l),o=l*o+(1-l),r*=c,a*=c,o*=c,t[0]=r,t[1]=a,t[2]=o}function ze(e,t){var r=(0,n.Z)(e,3),a=(r[0]+16)/116,o=r[1]/500+a,i=a-r[2]/200;a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,o=Math.pow(o,3)>.008856?Math.pow(o,3):(o-16/116)/7.787,i=Math.pow(i,3)>.008856?Math.pow(i,3):(i-16/116)/7.787;t[0]=.9505*o,t[1]=1*a,t[2]=1.089*i}function je(e,t){var r=(0,n.Z)(e,3),a=r[0]/.9505,o=r[1]/1,i=r[2]/1.089;a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,t[0]=116*o-16,t[1]=500*(a-o),t[2]=200*(o-i)}function He(e,t){var r=(0,n.Z)(e,3),a=r[0],o=r[1],i=r[2],s=3.2406*a+-1.5372*o+-.4986*i,l=-.9689*a+1.8758*o+.0415*i,c=.0557*a+-.204*o+1.057*i;s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,l>.0031308?l=1.055*Math.pow(l,1/2.4)-.055:l*=12.92,c>.0031308?c=1.055*Math.pow(c,1/2.4)-.055:c*=12.92;var u=s;u<l&&(u=l),u<c&&(u=c),u>1&&(s/=u,l/=u,c/=u),s<0&&(s=0),l<0&&(l=0),c<0&&(c=0),t[0]=s,t[1]=l,t[2]=c}function Ke(e,t){var r=(0,n.Z)(e,3),a=r[0],o=r[1],i=r[2];a>.04045?a=Math.pow((a+.055)/1.055,2.4):a/=12.92,o>.04045?o=Math.pow((o+.055)/1.055,2.4):o/=12.92,i>.04045?i=Math.pow((i+.055)/1.055,2.4):i/=12.92,t[0]=.4124*a+.3576*o+.1805*i,t[1]=.2126*a+.7152*o+.0722*i,t[2]=.0193*a+.1192*o+.9505*i}function Ze(e,t){var r=[0,0,0];Ke(e,r),je(r,t)}function Xe(e,t){var r=[0,0,0];ze(e,r),He(r,t)}function qe(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function Ye(e){return!(e[1]-e[0]<0)}function $e(e,t,r){return r[0]=Math.min(e[0],t[0]),r[1]=Math.max(e[0],t[0]),r[2]=Math.min(e[1],t[1]),r[3]=Math.max(e[1],t[1]),r[4]=Math.min(e[2],t[2]),r[5]=Math.max(e[2],t[2]),r}function Qe(e,t,r){return e<t?t:e>r?r:e}function Je(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[0,0,0];return n[0]=Qe(e[0],t[0],r[0]),n[1]=Qe(e[1],t[1],r[1]),n[2]=Qe(e[2],t[2],r[2]),n}function et(e,t){var r=0;return t[0]!==t[1]&&(r=((r=e<t[0]?t[0]:e>t[1]?t[1]:e)-t[0])/(t[1]-t[0])),r}var tt=p("GetScalarTypeFittingRange"),rt=p("GetAdjustedScalarRange");function nt(e,t){if(!e||!t)return 0;for(var r=0;r<6;r+=2)if(e[r]<t[r]||e[r]>t[r+1]||e[r+1]<t[r]||e[r+1]>t[r+1])return 0;return 1}function at(e,t,r){if(!e||!t)return 0;for(var n=0;n<6;n+=2)if(e[n]+r[n/2]<t[n]||e[n]-r[n/2]>t[n+1]||e[n+1]+r[n/2]<t[n]||e[n+1]-r[n/2]>t[n+1])return 0;return 1}function ot(e,t,r){if(!e||!t||!r)return 0;for(var n=0;n<3;n++)if(e[n]+r[n]<t[2*n]||e[n]-r[n]>t[2*n+1])return 0;return 1}function it(e,t,r,n){for(var a=h(3),o=h(3),i=h(3),s=h(3),l=h(3),c=h(3),u=0;u<3;++u)a[u]=e[u]-t[u],o[u]=t[u]-r[u],i[u]=r[u]-e[u],s[u]=-a[u],l[u]=-o[u],c[u]=-i[u];var d=X(s),f=X(l),p=X(i),g=h(3);Z(a,o,g);for(var m=X(g),v=d*f*p/(2*m),y=2*m*m,b=f*f*H(a,c)/y,T=p*p*H(s,o)/y,C=d*d*H(i,l)/y,x=0;x<3;++x)n[x]=b*e[x]+T*t[x]+C*r[x];return v}var st=1/0,lt=-1/0,ct=function(e){return!Number.isFinite(e)},ut=Number.isFinite,dt=Number.isNaN,ft=dt;function pt(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function gt(e){for(var t=-1,r=-1,n=0;n<e.length;n++){var a=Math.abs(e[n]);a>t&&(r=n,t=a)}return r}function mt(e){var t=Math.floor(255*e);return t>15?t.toString(16):"0".concat(t.toString(16))}function ht(e){return"".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#").concat(e.map(mt).join(""))}function vt(e){return Math.round(255*e)}function yt(e){return 3===e.length?"rgb(".concat(e.map(vt).join(", "),")"):"rgba(".concat(vt(e[0]||0),", ").concat(vt(e[1]||0),", ").concat(vt(e[2]||0),", ").concat(e[3]||0,")")}var bt={Pi:v,radiansFromDegrees:y,degreesFromRadians:b,round:T,floor:C,ceil:x,ceilLog2:A,min:S,max:P,arrayMin:w,arrayMax:O,arrayRange:I,isPowerOfTwo:M,nearestPowerOfTwo:E,factorial:R,binomial:D,beginCombination:V,nextCombination:L,randomSeed:_,getSeed:N,random:B,gaussian:F,add:U,subtract:k,multiplyScalar:G,multiplyScalar2D:W,multiplyAccumulate:z,multiplyAccumulate2D:j,dot:H,outer:K,cross:Z,norm:X,normalize:q,perpendiculars:Y,projectVector:$,projectVector2D:J,distance2BetweenPoints:ee,angleBetweenVectors:te,gaussianAmplitude:re,gaussianWeight:ne,dot2D:Q,outer2D:ae,norm2D:oe,normalize2D:ie,determinant2x2:se,LUFactor3x3:le,LUSolve3x3:ce,linearSolve3x3:ue,multiply3x3_vect3:de,multiply3x3_mat3:fe,multiplyMatrix:pe,transpose3x3:ge,invert3x3:me,identity3x3:be,identity:Te,isIdentity:Ce,isIdentity3x3:xe,determinant3x3:he,quaternionToMatrix3x3:Se,areEquals:ve,areMatricesEqual:ye,roundNumber:Pe,roundVector:we,matrix3x3ToQuaternion:Ie,multiplyQuaternion:Ae,orthogonalize3x3:Re,diagonalize3x3:Ee,singularValueDecomposition3x3:Me,solveLinearSystem:Le,invertMatrix:_e,luFactorLinearSystem:De,luSolveLinearSystem:Ve,estimateMatrixCondition:Ne,jacobi:Be,jacobiN:Oe,solveHomogeneousLeastSquares:Fe,solveLeastSquares:Ue,hex2float:ke,rgb2hsv:Ge,hsv2rgb:We,lab2xyz:ze,xyz2lab:je,xyz2rgb:He,rgb2xyz:Ke,rgb2lab:Ze,lab2rgb:Xe,uninitializeBounds:qe,areBoundsInitialized:Ye,computeBoundsFromPoints:$e,clampValue:Qe,clampVector:Je,clampAndNormalizeValue:et,getScalarTypeFittingRange:tt,getAdjustedScalarRange:rt,extentIsWithinOtherExtent:nt,boundsIsWithinOtherBounds:at,pointIsWithinBounds:ot,solve3PointCircle:it,inf:st,negInf:lt,isInf:ct,isNan:dt,isNaN:dt,isFinite:ut,createUninitializedBounds:pt,getMajorAxisIndex:gt,floatToHex2:mt,floatRGB2HexCode:ht,float2CssRGBA:yt}},45802:(e,t,r)=>{"use strict";r.d(t,{Z:()=>f});var n=r(78826),a=r(72688),o=r(75755),i=r(45451),s=r(59474),l=r(40286),c=function(e){return e},u=1e-6,d=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(0,a.Z)(this,e),this.matrix=i._E.identity(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=t?i.DV.toRadian:c}return(0,o.Z)(e,[{key:"rotateFromDirections",value:function(e,t){var r=new Float64Array(3),n=new Float64Array(3),a=new Float64Array(16);i.R3.set(r,e[0],e[1],e[2]),i.R3.set(n,t[0],t[1],t[2]),i.R3.normalize(r,r),i.R3.normalize(n,n);var o=i.R3.dot(r,n);return o>=1||(i.R3.cross(this.tmp,r,n),i.R3.length(this.tmp)<u&&(i.R3.cross(this.tmp,[1,0,0],e),i.R3.length(this.tmp)<u&&i.R3.cross(this.tmp,[0,1,0],e)),i._E.fromRotation(a,Math.acos(o),this.tmp),i._E.multiply(this.matrix,this.matrix,a)),this}},{key:"rotate",value:function(e,t){return i.R3.set.apply(i.R3,[this.tmp].concat((0,n.Z)(t))),i.R3.normalize(this.tmp,this.tmp),i._E.rotate(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}},{key:"rotateX",value:function(e){return i._E.rotateX(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateY",value:function(e){return i._E.rotateY(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateZ",value:function(e){return i._E.rotateZ(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"translate",value:function(e,t,r){return i.R3.set(this.tmp,e,t,r),i._E.translate(this.matrix,this.matrix,this.tmp),this}},{key:"scale",value:function(e,t,r){return i.R3.set(this.tmp,e,t,r),i._E.scale(this.matrix,this.matrix,this.tmp),this}},{key:"multiply",value:function(e){return i._E.multiply(this.matrix,this.matrix,e),this}},{key:"multiply3x3",value:function(e){return i._E.multiply(this.matrix,this.matrix,[e[0],e[1],e[2],0,e[3],e[4],e[5],0,e[6],e[7],e[8],0,0,0,0,1]),this}},{key:"invert",value:function(){return i._E.invert(this.matrix,this.matrix),this}},{key:"identity",value:function(){return i._E.identity(this.matrix),this}},{key:"apply",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if((0,s.a)(l.Wd,this.matrix))return this;for(var n=-1===r?e.length:t+3*r,a=t;a<n;a+=3)i.R3.set(this.tmp,e[a],e[a+1],e[a+2]),i.R3.transformMat4(this.tmp,this.tmp,this.matrix),e[a]=this.tmp[0],e[a+1]=this.tmp[1],e[a+2]=this.tmp[2];return this}},{key:"getMatrix",value:function(){return this.matrix}},{key:"setMatrix",value:function(e){return e&&16===e.length&&i._E.copy(this.matrix,e),this}}]),e}();var f={buildFromDegree:function(){return new d(!0)},buildFromRadian:function(){return new d(!1)}}},23834:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>u});var n=r(41168),a=r(54131),o=r(89262),i=n.default.vtkErrorMacro,s=[1,-1,1,-1,1,-1];var l={empty:!0,numberOfComponents:3,dataType:o.Tu.FLOAT,bounds:[1,-1,1,-1,1,-1]};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,l,r),a.ZP.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==r&&(t.size=r*a,t.values=n.default.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(a),e.modified())},e.setPoint=function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];e.setTuple(t,n)},e.getPoint=e.getTuple,e.insertNextPoint=function(t,r,n){return e.insertNextTuple([t,r,n])},e.getBounds=function(){if(3===e.getNumberOfComponents()){var r=e.getRange(0);t.bounds[0]=r[0],t.bounds[1]=r[1];var n=e.getRange(1);t.bounds[2]=n[0],t.bounds[3]=n[1];var a=e.getRange(2);return t.bounds[4]=a[0],t.bounds[5]=a[1],t.bounds}if(2!==e.getNumberOfComponents())return i("getBounds called on an array with components of\n ".concat(e.getNumberOfComponents())),s;var o=e.getRange(0);t.bounds[0]=o[0],t.bounds[1]=o[1];var l=e.getRange(1);return t.bounds[2]=l[0],t.bounds[3]=l[1],t.bounds[4]=0,t.bounds[5]=0,t.bounds},e.computeBounds=e.getBounds,e.setNumberOfComponents(t.numberOfComponents<2?3:t.numberOfComponents)}(e,t)}var u={newInstance:n.default.newInstance(c,"vtkPoints"),extend:c}},4666:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>y});var n=r(87765),a=r(41168),o=r(54131),i=r(77415),s=r(85687);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var c=i.ZP.ScalarMappingTarget,u=i.ZP.VectorMode,d=o.ZP.VtkDataTypes,f=s.ZP.ColorMode,p=a.default.vtkErrorMacro;function g(e){return e}function m(e){return Math.floor(255*e+.5)}var h={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:u.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function v(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,h,r),a.default.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],a.default.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),a.default.setArray(e,t,["mappingRange"],2),a.default.getArray(e,t,["mappingRange"]),function(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=function(){return e.setVectorMode(u.MAGNITUDE)},e.setVectorModeToComponent=function(){return e.setVectorMode(u.COMPONENT)},e.setVectorModeToRGBColors=function(){return e.setVectorMode(u.RGBCOLORS)},e.build=function(){},e.isOpaque=function(){return!0},e.setAnnotations=function(r,n){if(!(r&&!n||!r&&n))if(r&&n&&r.length!==n.length)p("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],n&&r)for(var a=n.length,o=0;o<a;o++)t.annotationArray.push({value:r[o],annotation:String(n[o])});e.updateAnnotatedValueMap(),e.modified()}},e.setAnnotation=function(r,n){var a=e.checkForAnnotatedValue(r),o=!1;return a>=0?t.annotationArray[a].annotation!==n&&(t.annotationArray[a].annotation=n,o=!0):(t.annotationArray.push({value:r,annotation:n}),a=t.annotationArray.length-1,o=!0),o&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=function(){return t.annotationArray.length},e.getAnnotatedValue=function(e){return e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value},e.getAnnotation=function(e){return void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation},e.getAnnotatedValueIndex=function(r){return t.annotationArray.length?e.checkForAnnotatedValue(r):-1},e.removeAnnotation=function(r){var n=e.checkForAnnotatedValue(r),a=n>=0;return a&&(t.annotationArray.splice(n,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=function(){t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=function(r,n){if(t.indexedLookup){var a=e.getAnnotatedValueIndex(r);e.getIndexedColor(a,n)}else e.getColor(parseFloat(r),n),n[3]=1},e.checkForAnnotatedValue=function(t){return e.getAnnotatedValueIndexInternal(t)},e.getAnnotatedValueIndexInternal=function(e){if(void 0!==t.annotatedValueMap[e]){var r=t.annotationArray.length;return t.annotatedValueMap[e]%r}return-1},e.getIndexedColor=function(e,t){t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=function(){t.annotatedValueMap=[];for(var e=t.annotationArray.length,r=0;r<e;r++)t.annotatedValueMap[t.annotationArray[r].value]=r},e.mapScalars=function(t,r,n){var i=t.getNumberOfComponents(),s=null;if(r===f.DEFAULT&&t.getDataType()===d.UNSIGNED_CHAR||r===f.DIRECT_SCALARS&&t)s=e.convertToRGBA(t,i,t.getNumberOfTuples());else{var l={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:d.UNSIGNED_CHAR},u=a.default.newTypedArray(l.dataType,4*t.getNumberOfTuples());l.values=u,l.size=u.length,s=o.ZP.newInstance(l);var p=n;p<0&&i>1?e.mapVectorsThroughTable(t,s,c.RGBA,-1,-1):(p<0&&(p=0),p>=i&&(p=i-1),e.mapScalarsThroughTable(t,s,c.RGBA,p))}return s},e.mapVectorsToMagnitude=function(e,t,r){for(var n=e.getNumberOfTuples(),a=e.getNumberOfComponents(),o=t.getData(),i=e.getData(),s=0;s<n;s++){for(var l=0,c=0;c<r;c++)l+=i[s*a+c]*i[s*a+c];o[s]=Math.sqrt(l)}},e.mapVectorsThroughTable=function(t,r,n,a,i){var s=e.getVectorMode(),l=i,c=a,d=t.getNumberOfComponents();s===u.COMPONENT?(-1===c&&(c=e.getVectorComponent()),c<0&&(c=0),c>=d&&(c=d-1)):(-1===l&&(l=e.getVectorSize()),l<=0?(c=0,l=d):(c<0&&(c=0),c>=d&&(c=d-1),c+l>d&&(l=d-c)),s!==u.MAGNITUDE||1!==d&&1!==l||(s=u.COMPONENT));var f=0;switch(c>0&&(f=c),s){case u.COMPONENT:e.mapScalarsThroughTable(t,r,n,f);break;case u.RGBCOLORS:break;case u.MAGNITUDE:default:var p=o.ZP.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,p,l),e.mapScalarsThroughTable(p,r,n,0)}},e.luminanceToRGBA=function(e,t,r,n){for(var a=n(r),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c<s;c+=1){var u=n(o[c]);i[4*l]=u,i[4*l+1]=u,i[4*l+2]=u,i[4*l+3]=a,l++}},e.luminanceAlphaToRGBA=function(e,t,r,n){for(var a=t.getData(),o=e.getData(),i=a.length,s=0,l=0;l<i;l+=2){var c=n(a[l]);o[s]=c,o[s+1]=c,o[s+2]=c,o[s+3]=n(a[l+1])*r,s+=4}},e.rGBToRGBA=function(e,t,r,n){for(var a=m(r),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c<s;c+=3)i[4*l]=n(o[c]),i[4*l+1]=n(o[c+1]),i[4*l+2]=n(o[c+2]),i[4*l+3]=a,l++},e.rGBAToRGBA=function(e,t,r,n){for(var a=t.getData(),o=e.getData(),i=a.length,s=0,l=0;l<i;l+=4)o[4*s]=n(a[l]),o[4*s+1]=n(a[l+1]),o[4*s+2]=n(a[l+2]),o[4*s+3]=n(a[l+3])*r,s++},e.convertToRGBA=function(r,n,a){var i=t.alpha;if(4===n&&i>=1&&r.getDataType()===d.UNSIGNED_CHAR)return r;var s=o.ZP.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:d.UNSIGNED_CHAR});if(a<=0)return s;i=(i=i>0?i:0)<1?i:1;var l=g;switch(r.getDataType()!==d.FLOAT&&r.getDataType()!==d.DOUBLE||(l=m),n){case 1:e.luminanceToRGBA(s,r,i,l);break;case 2:e.luminanceAlphaToRGBA(s,r,l);break;case 3:e.rGBToRGBA(s,r,i,l);break;case 4:e.rGBAToRGBA(s,r,i,l);break;default:return p("Cannot convert colors"),null}return s},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return 16777216},e.setRange=function(t,r){return e.setMappingRange(t,r)},e.getRange=function(){return e.getMappingRange()},e.areScalarsOpaque=function(r,n,a){if(!r)return e.isOpaque();var o=r.getNumberOfComponents();return(n!==f.DEFAULT||r.getDataType()!==d.UNSIGNED_CHAR)&&n!==f.DIRECT_SCALARS||(3===o||1===o?t.alpha>=1:255===r.getRange(o-1)[0])}}(e,t)}var y=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(v,"vtkScalarsToColors"),extend:v},i.ZP)},77415:(e,t,r)=>{"use strict";r.d(t,{OG:()=>n,ZP:()=>a});var n={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},a={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:n}},91382:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>Z});var n=r(87765),a=r(72688),o=r(75755),i=r(78826),s=r(16976),l=r(59474),c=r(45451),u=r(3969);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var f=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function p(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function g(e){return e[0]<=e[1]&&e[2]<=e[3]&&e[4]<=e[5]}function m(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function h(e){return m(e,f)}function v(e,t,r,n){var a=(0,s.Z)(e,6),o=a[0],i=a[1],l=a[2],c=a[3],u=a[4],d=a[5];return e[0]=o<t?o:t,e[1]=i>t?i:t,e[2]=l<r?l:r,e[3]=c>r?c:r,e[4]=u<n?u:n,e[5]=d>n?d:n,e}function y(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(var r=0;r<t.length;++r)v.apply(void 0,[e].concat((0,i.Z)(t[r])));else for(var n=0;n<t.length;n+=3)v.apply(void 0,[e].concat((0,i.Z)(t.slice(n,n+3))));return e}function b(e,t,r,n,a,o,i){var l=(0,s.Z)(e,6),c=l[0],u=l[1],d=l[2],f=l[3],p=l[4],g=l[5];return void 0===i?(e[0]=Math.min(t[0],c),e[1]=Math.max(t[1],u),e[2]=Math.min(t[2],d),e[3]=Math.max(t[3],f),e[4]=Math.min(t[4],p),e[5]=Math.max(t[5],g)):(e[0]=Math.min(t,c),e[1]=Math.max(r,u),e[2]=Math.min(n,d),e[3]=Math.max(a,f),e[4]=Math.min(o,p),e[5]=Math.max(i,g)),e}function T(e,t,r,n){var a=(0,s.Z)(e,6),o=a[0],i=a[1],l=a[2],c=a[3],u=a[4],d=a[5];return e[0]=t,e[1]=t>i?t:i,e[2]=r,e[3]=r>c?r:c,e[4]=n,e[5]=n>d?n:d,o!==t||l!==r||u!==n}function C(e,t,r,n){var a=(0,s.Z)(e,6),o=a[0],i=a[1],l=a[2],c=a[3],u=a[4],d=a[5];return e[0]=t<o?t:o,e[1]=t,e[2]=r<l?r:l,e[3]=r,e[4]=n<u?n:u,e[5]=n,i!==t||c!==r||d!==n}function x(e,t){return e[0]-=t,e[1]+=t,e[2]-=t,e[3]+=t,e[4]-=t,e[5]+=t,e}function S(e,t,r,n){return!!g(e)&&(t>=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),r>=0?(e[2]*=r,e[3]*=r):(e[2]=r*e[3],e[3]=r*e[2]),n>=0?(e[4]*=n,e[5]*=n):(e[4]=n*e[5],e[5]=n*e[4]),!0)}function P(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function w(e,t){return e[2*t+1]-e[2*t]}function O(e){return[w(e,0),w(e,1),w(e,2)]}function I(e){return e.slice(0,2)}function A(e){return e.slice(2,4)}function R(e){return e.slice(4,6)}function E(e){var t=O(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function M(e){if(g(e)){var t=O(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function D(e){return[e[0],e[2],e[4]]}function V(e){return[e[1],e[3],e[5]]}function L(e,t){return e<=0&&t>=0||e>=0&&t<=0}function _(e,t){for(var r=0,n=0;n<2;n++)for(var a=2;a<4;a++)for(var o=4;o<6;o++)t[r]=[e[n],e[a],e[o]],r++;return t}function N(e,t,r){return t[0]=e[0],t[1]=e[2],t[2]=e[4],r[0]=e[1],r[1]=e[3],r[2]=e[5],t}function B(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];r.length<6&&h(r);for(var n=_(e,[]),a=0;a<n.length;++a)c.R3.transformMat4(n[a],n[a],t);return y(r,n)}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function U(e,t,r,n){for(var a=[].concat(f),o=e.getData(),i=0;i<o.length;i+=3){var s=[o[i],o[i+1],o[i+2]],c=(0,l.d)(s,t);a[0]=Math.min(c,a[0]),a[1]=Math.max(c,a[1]);var u=(0,l.d)(s,r);a[2]=Math.min(u,a[2]),a[3]=Math.max(u,a[3]);var d=(0,l.d)(s,n);a[4]=Math.min(d,a[4]),a[5]=Math.max(d,a[5])}return a}function k(e,t,r,n,a){for(var o=!0,i=[],s=0,l=[],c=[0,0,0],u=0;u<3;u++)t[u]<e[2*u]?(i[u]=1,c[u]=e[2*u],o=!1):t[u]>e[2*u+1]?(i[u]=0,c[u]=e[2*u+1],o=!1):i[u]=2;if(o)return n[0]=t[0],n[1]=t[1],n[2]=t[2],a[0]=0,1;for(var d=0;d<3;d++)2!==i[d]&&0!==r[d]?l[d]=(c[d]-t[d])/r[d]:l[d]=-1;for(var f=0;f<3;f++)l[s]<l[f]&&(s=f);if(l[s]>1||l[s]<0)return 0;a[0]=l[s];for(var p=0;p<3;p++)if(s!==p){if(n[p]=t[p]+l[s]*r[p],n[p]<e[2*p]||n[p]>e[2*p+1])return 0}else n[p]=c[p];return 1}function G(e,t,r){for(var n=[],a=0,o=1,i=1,s=4;s<=5;++s){n[2]=e[s];for(var l=2;l<=3;++l){n[1]=e[l];for(var c=0;c<=1;++c)if(n[0]=e[c],a=u.ZP.evaluate(r,t,n),i&&(o=a>=0?1:-1,i=0),0===a||o>0&&a<0||o<0&&a>0)return 1}}return 0}function W(e,t){if(!g(e)||!g(t))return!1;for(var r,n=[0,0,0,0,0,0],a=0;a<3;a++)if(r=!1,t[2*a]>=e[2*a]&&t[2*a]<=e[2*a+1]?(r=!0,n[2*a]=t[2*a]):e[2*a]>=t[2*a]&&e[2*a]<=t[2*a+1]&&(r=!0,n[2*a]=e[2*a]),t[2*a+1]>=e[2*a]&&t[2*a+1]<=e[2*a+1]?(r=!0,n[2*a+1]=t[2*a+1]):e[2*a+1]>=t[2*a]&&e[2*a+1]<=t[2*a+1]&&(r=!0,n[2*a+1]=e[2*a+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function z(e,t){if(!g(e)||!g(t))return!1;for(var r=0;r<3;r++)if(!(t[2*r]>=e[2*r]&&t[2*r]<=e[2*r+1]||e[2*r]>=t[2*r]&&e[2*r]<=t[2*r+1]||t[2*r+1]>=e[2*r]&&t[2*r+1]<=e[2*r+1]||e[2*r+1]>=t[2*r]&&e[2*r+1]<=t[2*r+1]))return!1;return!0}function j(e,t,r,n){return!(t<e[0]||t>e[1])&&(!(r<e[2]||r>e[3])&&!(n<e[4]||n>e[5]))}function H(e,t,r){for(var n=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],a=[0,0,0,0,0,0,0,0],o=0,i=0;i<2;i++)for(var s=2;s<4;s++)for(var l=4;l<6;l++){var c=[e[i],e[s],e[l]];a[o++]=u.ZP.evaluate(r,t,c)}for(var d=2;d--&&!(L(a[n[d][0]],a[n[d][4]])&&L(a[n[d][1]],a[n[d][5]])&&L(a[n[d][2]],a[n[d][6]])&&L(a[n[d][3]],a[n[d][7]])););if(d<0)return!1;for(var f=Math.sign(r[d]),p=Math.abs((e[2*d+1]-e[2*d])*r[d]),g=f>0?1:0,m=0;m<4;m++)if(0!==p){var h=Math.abs(a[n[d][m]])/p;f>0&&h<g&&(g=h),f<0&&h>g&&(g=h)}var v=(1-g)*e[2*d]+g*e[2*d+1];return f>0?e[2*d]=v:e[2*d+1]=v,!0}var K=function(){function e(t){(0,a.Z)(this,e),this.bounds=t,this.bounds||(this.bounds=new Float64Array(f))}return(0,o.Z)(e,[{key:"getBounds",value:function(){return this.bounds}},{key:"equals",value:function(e){return p(this.bounds,e)}},{key:"isValid",value:function(){return g(this.bounds)}},{key:"setBounds",value:function(e){return m(this.bounds,e)}},{key:"reset",value:function(){return h(this.bounds)}},{key:"addPoint",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return v.apply(void 0,[this.bounds].concat(t))}},{key:"addPoints",value:function(e){return y(this.bounds,e)}},{key:"addBounds",value:function(e,t,r,n,a,o){return b(this.bounds,e,t,r,n,a,o)}},{key:"setMinPoint",value:function(e,t,r){return T(this.bounds,e,t,r)}},{key:"setMaxPoint",value:function(e,t,r){return C(this.bounds,e,t,r)}},{key:"inflate",value:function(e){return x(this.bounds,e)}},{key:"scale",value:function(e,t,r){return S(this.bounds,e,t,r)}},{key:"getCenter",value:function(){return P(this.bounds)}},{key:"getLength",value:function(e){return w(this.bounds,e)}},{key:"getLengths",value:function(){return O(this.bounds)}},{key:"getMaxLength",value:function(){return E(this.bounds)}},{key:"getDiagonalLength",value:function(){return M(this.bounds)}},{key:"getMinPoint",value:function(){return D(this.bounds)}},{key:"getMaxPoint",value:function(){return V(this.bounds)}},{key:"getXRange",value:function(){return I(this.bounds)}},{key:"getYRange",value:function(){return A(this.bounds)}},{key:"getZRange",value:function(){return R(this.bounds)}},{key:"getCorners",value:function(e){return _(this.bounds,e)}},{key:"computeCornerPoints",value:function(e,t){return N(this.bounds,e,t)}},{key:"computeLocalBounds",value:function(e,t,r){return U(this.bounds,e,t,r)}},{key:"transformBounds",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return B(this.bounds,e,t)}},{key:"computeScale3",value:function(e){return F(this.bounds,e)}},{key:"cutWithPlane",value:function(e,t){return H(this.bounds,e,t)}},{key:"intersectBox",value:function(e,t,r,n){return k(this.bounds,e,t,r,n)}},{key:"intersectPlane",value:function(e,t){return G(this.bounds,e,t)}},{key:"intersect",value:function(e){return W(this.bounds,e)}},{key:"intersects",value:function(e){return z(this.bounds,e)}},{key:"containsPoint",value:function(e,t,r){return j(this.bounds,e,t,r)}},{key:"contains",value:function(e){return z(this.bounds,e)}}]),e}();var Z=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:function(e){var t=e&&e.bounds;return new K(t)}},{equals:p,isValid:g,setBounds:m,reset:h,addPoint:v,addPoints:y,addBounds:b,setMinPoint:T,setMaxPoint:C,inflate:x,scale:S,scaleAboutCenter:function(e,t,r,n){if(!g(e))return!1;var a=P(e);return e[0]-=a[0],e[1]-=a[0],e[2]-=a[1],e[3]-=a[1],e[4]-=a[2],e[5]-=a[2],S(e,t,r,n),e[0]+=a[0],e[1]+=a[0],e[2]+=a[1],e[3]+=a[1],e[4]+=a[2],e[5]+=a[2],!0},getCenter:P,getLength:w,getLengths:O,getMaxLength:E,getDiagonalLength:M,getMinPoint:D,getMaxPoint:V,getXRange:I,getYRange:A,getZRange:R,getCorners:_,computeCornerPoints:N,computeLocalBounds:U,transformBounds:B,computeScale3:F,cutWithPlane:H,intersectBox:k,intersectPlane:G,intersect:W,intersects:z,containsPoint:j,contains:function(e,t){return!!z(e,t)&&(!!j.apply(void 0,[e].concat((0,i.Z)(D(t))))&&!!j.apply(void 0,[e].concat((0,i.Z)(V(t)))))},INIT_BOUNDS:f})},14418:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>O});var n=r(87765),a=r(41168),o=r(99824),i=r(54131),s=a.default.vtkErrorMacro,l=a.default.vtkWarningMacro;var c={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function u(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,c,r),a.default.obj(e,t),function(e,t){t.classHierarchy.push("vtkFieldData");var r=e.getState;t.arrays&&(t.arrays=t.arrays.map((function(e){return{data:(0,o.Z)(e.data)}}))),e.initialize=function(){e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=function(){t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=function(r){e.initializeFields(),t.copyFieldFlags=r.getCopyFieldFlags().map((function(e){return e})),t.arrays=r.arrays().map((function(e){return{array:e}}))},e.getNumberOfArrays=function(){return t.arrays.length},e.getNumberOfActiveArrays=function(){return t.arrays.length},e.addArray=function(r){var n=r.getName(),a=e.getArrayWithIndex(n),o=a.array,i=a.index;return null!=o?(t.arrays[i]={data:r},i):(t.arrays=[].concat(t.arrays,{data:r}),t.arrays.length-1)},e.removeAllArrays=function(){t.arrays=[]},e.removeArray=function(r){var n=t.arrays.findIndex((function(e){return e.getName()===r}));return e.removeArrayByIndex(n)},e.removeArrayByIndex=function(e){return-1!==e&&e<t.arrays.length&&(t.arrays.splice(e,1),!0)},e.getArrays=function(){return t.arrays.map((function(e){return e.data}))},e.getArray=function(t){return"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t)},e.getArrayByName=function(e){return t.arrays.reduce((function(t,r,n){return r.data.getName()===e?r.data:t}),null)},e.getArrayWithIndex=function(e){var r=t.arrays.findIndex((function(t){return t.data.getName()===e}));return{array:-1!==r?t.arrays[r].data:null,index:r}},e.getArrayByIndex=function(e){return e>=0&&e<t.arrays.length?t.arrays[e].data:null},e.hasArray=function(t){return e.getArrayWithIndex(t).index>=0},e.getArrayName=function(e){var r=t.arrays[e];return r?r.data.getName():""},e.getCopyFieldFlags=function(){return t.copyFieldFlags},e.getFlag=function(e){return t.copyFieldFlags[e]},e.passData=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;r.getArrays().forEach((function(l){var c=e.getFlag(l.getName());if(!1!==c&&(!t.doCopyAllOff||!0===c)&&l){var u=e.getArrayByName(l.getName());if(u)if(l.getNumberOfComponents()===u.getNumberOfComponents())if(n>-1&&n<l.getNumberOfTuples()){var d=o>-1?o:n;u.insertTuple(d,l.getTuple(n))}else u.insertTuples(0,l.getTuples());else s("Unhandled case in passData");else if(n<0||n>l.getNumberOfTuples())e.addArray(l),r.getAttributes(l).forEach((function(t){e.setAttribute(l,t)}));else{var f=l.getNumberOfComponents(),p=l.getNumberOfValues(),g=o>-1?o:n;p<=g*f&&(p=(g+1)*f),(u=i.ZP.newInstance({name:l.getName(),dataType:l.getDataType(),numberOfComponents:f,values:a.default.newTypedArray(l.getDataType(),p),size:0})).insertTuple(g,l.getTuple(n)),e.addArray(u),r.getAttributes(l).forEach((function(t){e.setAttribute(u,t)}))}}}))},e.interpolateData=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5;r.getArrays().forEach((function(d){var f=e.getFlag(d.getName());if(!1!==f&&(!t.doCopyAllOff||!0===f)&&d){var p=e.getArrayByName(d.getName());if(p)if(d.getNumberOfComponents()===p.getNumberOfComponents())if(n>-1&&n<d.getNumberOfTuples()){var g=c>-1?c:n;p.interpolateTuple(g,d,n,d,o,u),l("Unexpected case in interpolateData")}else p.insertTuples(d.getTuples());else s("Unhandled case in interpolateData");else if(n<0||o<0||n>d.getNumberOfTuples())e.addArray(d),r.getAttributes(d).forEach((function(t){e.setAttribute(d,t)}));else{var m=d.getNumberOfComponents(),h=d.getNumberOfValues(),v=c>-1?c:n;h<=v*m&&(h=(v+1)*m),(p=i.ZP.newInstance({name:d.getName(),dataType:d.getDataType(),numberOfComponents:m,values:a.default.newTypedArray(d.getDataType(),h),size:0})).interpolateTuple(v,d,n,d,o,u),e.addArray(p),r.getAttributes(d).forEach((function(t){e.setAttribute(p,t)}))}}}))},e.copyFieldOn=function(e){t.copyFieldFlags[e]=!0},e.copyFieldOff=function(e){t.copyFieldFlags[e]=!1},e.copyAllOn=function(){t.doCopyAllOn&&!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=function(){!t.doCopyAllOn&&t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=function(){t.copyFieldFlags={}},e.deepCopy=function(e){t.arrays=e.getArrays().map((function(e){var t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=function(e){return e.getCopyFieldFlags().map((function(e){return e}))},e.reset=function(){return t.arrays.forEach((function(e){return e.data.reset()}))},e.getMTime=function(){return t.arrays.reduce((function(e,t){return t.data.getMTime()>e?t.data.getMTime():e}),t.mtime)},e.getNumberOfComponents=function(){return t.arrays.reduce((function(e,t){return e+t.data.getNumberOfComponents()}),0)},e.getNumberOfTuples=function(){return t.arrays.length>0?t.arrays[0].getNumberOfTuples():0},e.getState=function(){var e=r();return e&&(e.arrays=t.arrays.map((function(e){return{data:e.data.getState()}}))),e}}(e,t)}var d={newInstance:a.default.newInstance(u,"vtkFieldData"),extend:u},f=r(21477);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var m=f.ZP.AttributeTypes,h=f.ZP.AttributeCopyOperations,v=a.default.vtkWarningMacro;var y={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,y,r),d.extend(e,t,r),a.default.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),function(e,t){var r=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function n(e){var t=r.find((function(t){return m[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()}));return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes");var o=g({},e);e.checkNumberOfComponents=function(e){return!0},e.setAttribute=function(r,a){var o=n(a);if(r&&"PEDIGREEIDS"===o.toUpperCase()&&!r.isA("vtkDataArray"))return v("Cannot set attribute ".concat(o,". The attribute must be a vtkDataArray.")),-1;if(r&&!e.checkNumberOfComponents(r,o))return v("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1;var i=t["active".concat(o)];if(i>=0&&i<t.arrays.length){if(t.arrays[i]===r)return i;e.removeArrayByIndex(i)}return r?(i=e.addArray(r),t["active".concat(o)]=i):t["active".concat(o)]=-1,e.modified(),t["active".concat(o)]},e.getAttributes=function(t){return r.filter((function(r){return e["get".concat(r)]()===t}))},e.setActiveAttributeByName=function(t,r){return e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,r)},e.setActiveAttributeByIndex=function(r,a){var o=n(a);if(r>=0&&r<t.arrays.length){if("PEDIGREEIDS"!==o.toUpperCase()){var i=e.getArrayByIndex(r);if(!i.isA("vtkDataArray"))return v("Cannot set attribute ".concat(o,". Only vtkDataArray subclasses can be set as active attributes.")),-1;if(!e.checkNumberOfComponents(i,o))return v("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1}return t["active".concat(o)]=r,e.modified(),r}return-1===r&&(t["active".concat(o)]=r,e.modified()),-1},e.getActiveAttribute=function(t){var r=n(t);return e["get".concat(r)]()},e.removeAllArrays=function(){r.forEach((function(e){t["active".concat(e)]=-1})),o.removeAllArrays()},e.removeArrayByIndex=function(e){return-1!==e&&r.forEach((function(r){e===t["active".concat(r)]?t["active".concat(r)]=-1:e<t["active".concat(r)]&&(t["active".concat(r)]-=1)})),o.removeArrayByIndex(e)},r.forEach((function(r){var n="active".concat(r);e["get".concat(r)]=function(){return e.getArrayByIndex(t[n])},e["set".concat(r)]=function(t){return e.setAttribute(t,r)},e["setActive".concat(r)]=function(t){return e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,r)},e["copy".concat(r,"Off")]=function(){var e=r.toUpperCase();t.copyAttributeFlags[h.PASSDATA][m[e]]=!1},e["copy".concat(r,"On")]=function(){var e=r.toUpperCase();t.copyAttributeFlags[h.PASSDATA][m[e]]=!0}})),e.initializeAttributeCopyFlags=function(){t.copyAttributeFlags=[],Object.keys(h).filter((function(e){return"ALLCOPY"!==e})).forEach((function(e){t.copyAttributeFlags[h[e]]=Object.keys(m).filter((function(e){return"NUM_ATTRIBUTES"!==e})).reduce((function(e,t){return e[m[t]]=!0,e}),[])})),t.copyAttributeFlags[h.COPYTUPLE][m.GLOBALIDS]=!1,t.copyAttributeFlags[h.INTERPOLATE][m.GLOBALIDS]=!1,t.copyAttributeFlags[h.COPYTUPLE][m.PEDIGREEIDS]=!1},e.initialize=a.default.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&&Object.keys(t.dataArrays).length&&Object.keys(t.dataArrays).forEach((function(r){t.dataArrays[r].ref||"vtkDataArray"!==t.dataArrays[r].type||e.addArray(i.ZP.newInstance(t.dataArrays[r]))}));var s=e.shallowCopy;e.shallowCopy=function(e,r){s(e,r),t.arrays=e.getArrays().map((function(e){var t=e.newClone();return t.shallowCopy(e,r),{data:t}}))},e.initializeAttributeCopyFlags()}(e,t)}var T=g({newInstance:a.default.newInstance(b,"vtkDataSetAttributes"),extend:b},f.ZP),C={FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var S=["pointData","cellData","fieldData"];var P={};function w(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,P,r),a.default.obj(e,t),a.default.setGet(e,t,S),function(e,t){t.classHierarchy.push("vtkDataSet"),S.forEach((function(e){t[e]?t[e]=(0,o.Z)(t[e]):t[e]=T.newInstance()}));var r=e.shallowCopy;e.shallowCopy=function(e){r(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1]),S.forEach((function(r){t[r]=T.newInstance(),t[r].shallowCopy(e.getReferenceByName(r))}))}}(e,t)}var O=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(w,"vtkDataSet"),extend:w},C)},21477:(e,t,r)=>{"use strict";r.d(t,{XJ:()=>n,ZP:()=>a});var n={DEFAULT:0,SINGLE:1,DOUBLE:2},a={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:n,PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"}},96372:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>b});var n=r(16976),a=r(78826),o=r(41168),i=r(59474),s=r(91382),l=r(14418),c=r(87765),u={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9},d={StructuredType:u};function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var p=d.StructuredType;var g=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){(0,c.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({getDataDescriptionFromExtent:function(e){for(var t=0,r=0;r<3;++r)e[2*r]<e[2*r+1]&&t++;return e[0]>e[1]||e[2]>e[3]||e[4]>e[5]?p.EMPTY:3===t?p.XYZ_GRID:2===t?e[0]===e[1]?p.YZ_PLANE:e[2]===e[3]?p.XZ_PLANE:p.XY_PLANE:1===t?e[0]<e[1]?p.X_LINE:e[2]<e[3]?p.Y_LINE:p.Z_LINE:p.SINGLE_POINT}},d),m=r(45451),h=o.default.vtkErrorMacro;var v={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:u.EMPTY};function y(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,v,r),l.ZP.extend(e,t,r),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=m.wO.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),o.default.get(e,t,["indexToWorld","worldToIndex"]),o.default.setGetArray(e,t,["origin","spacing"],3),o.default.setGetArray(e,t,["direction"],9),o.default.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return h("instance deleted - cannot call any method"),!1;for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];var o=1===n.length?n[0]:n;if(6!==o.length)return!1;var i=t.extent.some((function(e,t){return e!==o[t]}));return i&&(t.extent=o.slice(),t.dataDescription=g.getDataDescriptionFromExtent(t.extent),e.modified()),i},e.setDimensions=function(){var r,n,a;if(t.deleted)h("instance deleted - cannot call any method");else{if(1===arguments.length){var o=arguments.length<=0?void 0:arguments[0];r=o[0],n=o[1],a=o[2]}else{if(3!==arguments.length)return void h("Bad dimension specification");r=arguments.length<=0?void 0:arguments[0],n=arguments.length<=1?void 0:arguments[1],a=arguments.length<=2?void 0:arguments[2]}e.setExtent(0,r-1,0,n-1,0,a-1)}},e.getDimensions=function(){return[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1]},e.getNumberOfCells=function(){for(var t=e.getDimensions(),r=1,n=0;n<3;n++){if(0===t[n])return 0;t[n]>1&&(r*=t[n]-1)}return r},e.getNumberOfPoints=function(){var t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=function(r){var n=e.getDimensions();if(0===n[0]||0===n[1]||0===n[2])return h("Requesting a point from an empty image."),null;var a=new Float64Array(3);switch(t.dataDescription){case u.EMPTY:return null;case u.SINGLE_POINT:break;case u.X_LINE:a[0]=r;break;case u.Y_LINE:a[1]=r;break;case u.Z_LINE:a[2]=r;break;case u.XY_PLANE:a[0]=r%n[0],a[1]=r/n[0];break;case u.YZ_PLANE:a[1]=r%n[1],a[2]=r/n[1];break;case u.XZ_PLANE:a[0]=r%n[0],a[2]=r/n[0];break;case u.XYZ_GRID:a[0]=r%n[0],a[1]=r/n[0]%n[1],a[2]=r/(n[0]*n[1]);break;default:h("Invalid dataDescription")}var o=[0,0,0];return e.indexToWorld(a,o),o},e.getBounds=function(){return e.extentToBounds(e.getSpatialExtent())},e.extentToBounds=function(e){return s.ZP.transformBounds(e,t.indexToWorld)},e.getSpatialExtent=function(){return s.ZP.inflate((0,a.Z)(t.extent),.5)},e.computeTransforms=function(){m._E.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],m._E.scale(t.indexToWorld,t.indexToWorld,t.spacing),m._E.invert(t.worldToIndex,t.indexToWorld)},e.indexToWorld=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return m.R3.transformMat4(r,e,t.indexToWorld),r},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return m.R3.transformMat4(r,e,t.worldToIndex),r},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return s.ZP.transformBounds(e,t.indexToWorld,r)},e.worldToIndexBounds=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return s.ZP.transformBounds(e,t.worldToIndex,r)},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=function(){return s.ZP.getCenter(e.getBounds())},e.computeHistogram=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[0,0,0,0,0,0];e.worldToIndexBounds(t,n);var a=[0,0,0],o=[0,0,0];s.ZP.computeCornerPoints(n,a,o),(0,i.b)(a,a),(0,i.b)(o,o);var l=e.getDimensions();(0,i.c)(a,[0,0,0],[l[0]-1,l[1]-1,l[2]-1],a),(0,i.c)(o,[0,0,0],[l[0]-1,l[1]-1,l[2]-1],o);for(var c=l[0],u=l[0]*l[1],d=e.getPointData().getScalars().getData(),f=-1/0,p=1/0,g=0,m=0,h=0,v=a[2];v<=o[2];v++)for(var y=a[1];y<=o[1];y++)for(var b=a[0]+y*c+v*u,T=a[0];T<=o[0];T++){if(!r||r([T,y,v],n)){var C=d[b];C>f&&(f=C),C<p&&(p=C),g+=C*C,m+=C,h+=1}++b}var x=h>0?m/h:0,S=h?Math.abs(g/h-x*x):0;return{minimum:p,maximum:f,average:x,variance:S,sigma:Math.sqrt(S),count:h}},e.computeIncrements=function(e){for(var t=[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=0;n<3;++n)t[n]=r,r*=e[2*n+1]-e[2*n]+1;return t},e.computeOffsetIndex=function(t){var r=(0,n.Z)(t,3),a=r[0],o=r[1],i=r[2],s=e.getExtent(),l=e.getPointData().getScalars().getNumberOfComponents(),c=e.computeIncrements(s,l);return Math.floor((Math.round(a)-s[0])*c[0]+(Math.round(o)-s[2])*c[1]+(Math.round(i)-s[4])*c[2])},e.getOffsetIndexFromWorld=function(t){for(var r=e.getExtent(),n=e.worldToIndex(t),a=0;a<3;++a)if(n[a]<r[2*a]||n[a]>r[2*a+1])return h("GetScalarPointer: Pixel ".concat(n," is not in memory. Current extent = ").concat(r)),NaN;return e.computeOffsetIndex(n)},e.getScalarValueFromWorld=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=e.getPointData().getScalars().getNumberOfComponents();if(r<0||r>=n)return h("GetScalarPointer: Scalar Component ".concat(r," is not within bounds. Current Scalar numberOfComponents: ").concat(n)),NaN;var a=e.getOffsetIndexFromWorld(t);return Number.isNaN(a)?a:e.getPointData().getScalars().getComponent(a,r)}}(e,t)}var b={newInstance:o.default.newInstance(y,"vtkImageData"),extend:y}},44031:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>s});var n=r(41168),a=n.default.vtkErrorMacro;var o={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function i(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,o,r),n.default.obj(e,t),t.nodes=[],n.default.setGet(e,t,["allowDuplicateScalars","clamping"]),n.default.setArray(e,t,["range"],2),n.default.getArray(e,t,["range"]),function(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=function(){return t.nodes.length},e.getType=function(){var e,r=0,n=0;t.nodes.length>0&&(r=t.nodes[0].y);for(var a=1;a<t.nodes.length;a++){if((e=t.nodes[a].y)!==r)if(e>r)switch(n){case 0:case 1:n=1;break;default:n=3}else switch(n){case 0:case 2:n=2;break;default:n=3}if(r=e,3===n)break}switch(n){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:return"Varied"}},e.getDataPointer=function(){var e=t.nodes.length;if(t.function=null,e>0){t.function=[];for(var r=0;r<e;r++)t.function[2*r]=t.nodes[r].x,t.function[2*r+1]=t.nodes[r].y}return t.function},e.getFirstNonZeroValue=function(){if(0===t.nodes.length)return 0;for(var e=1,r=0;r<t.nodes.length;r++)if(0!==t.nodes[r].y){e=0;break}return e?Number.MAX_VALUE:r>0?t.nodes[r-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x},e.getNodeValue=function(e,r){var n=t.nodes.length;return e<0||e>=n?(a("Index out of range!"),-1):(r[0]=t.nodes[e].x,r[1]=t.nodes[e].y,r[2]=t.nodes[e].midpoint,r[3]=t.nodes[e].sharpness,1)},e.setNodeValue=function(r,n){var o=t.nodes.length;if(r<0||r>=o)return a("Index out of range!"),-1;var i=t.nodes[r].x;return t.nodes[r].x=n[0],t.nodes[r].y=n[1],t.nodes[r].midpoint=n[2],t.nodes[r].sharpness=n[3],i!==n[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=function(t,r){return e.addPointLong(t,r,.5,0)},e.addPointLong=function(r,n,o,i){if(o<0||o>1)return a("Midpoint outside range [0.0, 1.0]"),-1;if(i<0||i>1)return a("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(r);var s,l={x:r,y:n,midpoint:o,sharpness:i};for(t.nodes.push(l),e.sortAndUpdateRange(),s=0;s<t.nodes.length&&t.nodes[s].x!==r;s++);return s<t.nodes.length?s:-1},e.setNodes=function(r){t.nodes!==r&&(t.nodes=r,e.sortAndUpdateRange())},e.sortAndUpdateRange=function(){t.nodes.sort((function(e,t){return e.x-t.x})),e.updateRange()||e.modified()},e.updateRange=function(){var r=t.range.slice(),n=t.nodes.length;return n?(t.range[0]=t.nodes[0].x,t.range[1]=t.nodes[n-1].x):(t.range[0]=0,t.range[1]=0),(r[0]!==t.range[0]||r[1]!==t.range[1])&&(e.modified(),!0)},e.removePoint=function(r){var n;for(n=0;n<t.nodes.length&&t.nodes[n].x!==r;n++);if(n>=t.nodes.length)return-1;var a=n,o=!1;return t.nodes.splice(n,1),0!==n&&n!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addSegment=function(r,n,a,o){e.sortAndUpdateRange();for(var i=0;i<t.nodes.length;)t.nodes[i].x>=r&&t.nodes[i].x<=a?t.nodes.splice(i,1):i++;e.addPoint(r,n,.5,0),e.addPoint(a,o,.5,0)},e.getValue=function(t){var r=[];return e.getTable(t,t,1,r),r[0]},e.adjustRange=function(r){if(r.length<2)return 0;var n=e.getRange();n[0]<r[0]?e.addPoint(r[0],e.getValue(r[0])):e.addPoint(r[0],e.getValue(n[0])),n[1]>r[1]?e.addPoint(r[1],e.getValue(r[1])):e.addPoint(r[1],e.getValue(n[1])),e.sortAndUpdateRange();for(var a=0;a<t.nodes.length;)t.nodes[a].x>=r[0]&&t.nodes[a].x<=r[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=function(t,r){var n=e.findMinimumXDistance();return Math.ceil((r-t)/n)},e.findMinimumXDistance=function(){var e=t.nodes.length;if(e<2)return-1;for(var r=t.nodes[1].x-t.nodes[0].x,n=0;n<e-1;n++){var a=t.nodes[n+1].x-t.nodes[n].x;a<r&&(r=a)}return r},e.getTable=function(e,r,n,a){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=0,l=t.nodes.length,c=0;0!==l&&(c=t.nodes[l-1].y);var u=0,d=0,f=0,p=0,g=0,m=0,h=0;for(o=0;o<n;o++){var v=i*o;for(u=n>1?e+o/(n-1)*(r-e):.5*(e+r);s<l&&u>t.nodes[s].x;)++s<l&&(d=t.nodes[s-1].x,f=t.nodes[s].x,p=t.nodes[s-1].y,g=t.nodes[s].y,m=t.nodes[s-1].midpoint,h=t.nodes[s-1].sharpness,m<1e-5&&(m=1e-5),m>.99999&&(m=.99999));if(s>=l)a[v]=t.clamping?c:0;else if(0===s)a[v]=t.clamping?t.nodes[0].y:0;else{var y=(u-d)/(f-d);if(y=y<m?.5*y/m:.5+.5*(y-m)/(1-m),h>.99){if(y<.5){a[v]=p;continue}a[v]=g;continue}if(h<.01){a[v]=(1-y)*p+y*g;continue}y<.5?y=.5*Math.pow(2*y,1+10*h):y>.5&&(y=1-.5*Math.pow(2*(1-y),1+10*h));var b=y*y,T=b*y,C=2*T-3*b+1,x=-2*T+3*b,S=T-2*b+y,P=T-b,w=(1-h)*(g-p);a[v]=C*p+x*g+S*w+P*w;var O=p<g?p:g,I=p>g?p:g;a[v]=a[v]<O?O:a[v],a[v]=a[v]>I?I:a[v]}}}}(e,t)}var s={newInstance:n.default.newInstance(i,"vtkPiecewiseFunction"),extend:i}},3969:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>b});var n=r(87765),a=r(59474),o=r(41168);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var s=1e-6,l="coincide",c="disjoint";function u(e,t,r){var n=r[0]*(e[0]-t[0])+r[1]*(e[1]-t[1])+r[2]*(e[2]-t[2]);return Math.abs(n)}function d(e,t,r,n){var o=[];(0,a.s)(e,t,o);var i=(0,a.d)(r,o);n[0]=e[0]-i*r[0],n[1]=e[1]-i*r[1],n[2]=e[2]-i*r[2]}function f(e,t,r){var n=(0,a.d)(e,t),o=(0,a.d)(t,t);return 0===o&&(o=1),r[0]=e[0]-n*t[0]/o,r[1]=e[1]-n*t[1]/o,r[2]=e[2]-n*t[2]/o,r}function p(e,t,r,n){var o=[];(0,a.s)(e,t,o);var i=(0,a.d)(r,o),s=(0,a.d)(r,r);0!==s?(n[0]=e[0]-i*r[0]/s,n[1]=e[1]-i*r[1]/s,n[2]=e[2]-i*r[2]/s):(n[0]=e[0],n[1]=e[1],n[2]=e[2])}function g(e,t,r,n){var o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},i=[],l=[];(0,a.s)(t,e,i),(0,a.s)(r,e,l);var c=(0,a.d)(n,l),u=(0,a.d)(n,i);return(u<0?-u:u)<=(c<0?-c*s:c*s)||(o.t=c/u,o.x[0]=e[0]+o.t*i[0],o.x[1]=e[1]+o.t*i[1],o.x[2]=e[2]+o.t*i[2],o.intersection=!0,o.betweenPoints=o.t>=0&&o.t<=1),o}function m(e,t,r,n){var o={intersection:!1,l0:[],l1:[],error:null},i=[];(0,a.j)(t,n,i);var u,d=i.map((function(e){return Math.abs(e)}));if(d[0]+d[1]+d[2]<s){var f=[];return(0,a.s)(e,r,f),0===(0,a.d)(t,f)?o.error=l:o.error=c,o}u=d[0]>d[1]&&d[0]>d[2]?"x":d[1]>d[2]?"y":"z";var p=[],g=-(0,a.d)(t,e),m=-(0,a.d)(n,r);switch(u){case"x":p[0]=0,p[1]=(m*t[2]-g*n[2])/i[0],p[2]=(g*n[1]-m*t[1])/i[0];break;case"y":p[0]=(g*n[2]-m*t[2])/i[1],p[1]=0,p[2]=(m*t[0]-g*n[0])/i[1];break;case"z":p[0]=(m*t[1]-g*n[1])/i[2],p[1]=(g*n[0]-m*t[0])/i[2],p[2]=0}return o.l0=p,(0,a.k)(p,i,o.l1),o.intersection=!0,o}var h={evaluate:function(e,t,r){return e[0]*(r[0]-t[0])+e[1]*(r[1]-t[1])+e[2]*(r[2]-t[2])},distanceToPlane:u,projectPoint:d,projectVector:f,generalizedProjectPoint:p,intersectWithLine:g,intersectWithPlane:m,DISJOINT:c,COINCIDE:l};var v={normal:[0,0,1],origin:[0,0,0]};function y(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,v,r),o.default.obj(e,t),o.default.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=function(e){return u(e,t.origin,t.normal)},e.projectPoint=function(e,r){d(e,t.origin,t.normal,r)},e.projectVector=function(e,r){return f(e,t.normal,r)},e.push=function(e){if(0!==e)for(var r=0;r<3;r++)t.origin[r]+=e*t.normal[r]},e.generalizedProjectPoint=function(e,r){p(e,t.origin,t.normal,r)},e.evaluateFunction=function(e,r,n){return Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(r-t.origin[1])+t.normal[2]*(n-t.origin[2])},e.evaluateGradient=function(e){return[t.normal[0],t.normal[1],t.normal[2]]},e.intersectWithLine=function(e,r){return g(e,r,t.origin,t.normal)},e.intersectWithPlane=function(e,r){return m(e,r,t.origin,t.normal)}}(e,t)}var b=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:o.default.newInstance(y,"vtkPlane"),extend:y},h)},1299:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>$});var n=r(87765),a=r(41168),o=r(99824),i=r(17197),s=r(78826),l=r(59474),c=r(23834);var u={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function d(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,u,r),a.default.obj(e,t),t.points||(t.points=c.ZP.newInstance()),a.default.get(e,t,["points","pointsIds"]),function(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(r){t.pointsIds=r;var n=t.points.getData();n.length!==3*t.pointsIds.length&&(n=a.default.newTypedArray(e.getDataType(),3*t.pointsIds.length));var o=e.getData();t.pointsIds.forEach((function(e,t){var r=3*e,a=3*t;n[a]=o[r],n[++a]=o[++r],n[++a]=o[++r]})),t.points.setData(n)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(var i=e.getNumberOfPoints()-1;i>=0;--i)t.pointsIds[i]=i}},e.getBounds=function(){var e=t.points.getNumberOfPoints(),r=[];if(e){t.points.getPoint(0,r),t.bounds[0]=r[0],t.bounds[1]=r[0],t.bounds[2]=r[1],t.bounds[3]=r[1],t.bounds[4]=r[2],t.bounds[5]=r[2];for(var n=1;n<e;n++)t.points.getPoint(n,r),t.bounds[0]=r[0]<t.bounds[0]?r[0]:t.bounds[0],t.bounds[1]=r[0]>t.bounds[1]?r[0]:t.bounds[1],t.bounds[2]=r[1]<t.bounds[2]?r[1]:t.bounds[2],t.bounds[3]=r[1]>t.bounds[3]?r[1]:t.bounds[3],t.bounds[4]=r[2]<t.bounds[4]?r[2]:t.bounds[4],t.bounds[5]=r[2]>t.bounds[5]?r[2]:t.bounds[5]}else(0,l.u)(t.bounds);return t.bounds},e.getLength2=function(){e.getBounds();for(var r=0,n=0,a=0;a<3;a++)r+=(n=t.bounds[2*a+1]-t.bounds[2*a])*n;return r},e.getParametricDistance=function(e){for(var t,r=0,n=0;n<3;n++)(t=e[n]<0?-e[n]:e[n]>1?e[n]-1:0)>r&&(r=t);return r},e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.deepCopy=function(e){e.initialize(t.points,t.pointsIds)},e.getCellDimension=function(){},e.intersectWithLine=function(e,t,r,n,a,o,i){},e.evaluatePosition=function(e,t,r,n,o,i){a.default.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}(e,t)}var f={newInstance:a.default.newInstance(d,"vtkCell"),extend:d};var p={array:null,maxId:0,extend:0};function g(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,p,r),a.default.obj(e,t),function(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=function(r){var n=r.getPoints().getNumberOfPoints(),a=r.getNumberOfCells(),o=new Uint32Array(n);if(r.isA("vtkPolyData")){for(var i=0;i<a;++i)r.getCellPoints(i).cellPointIds.forEach((function(t){e.incrementLinkCount(t)}));e.allocateLinks(n),t.maxId=n-1;for(var s=function(t){r.getCellPoints(t).cellPointIds.forEach((function(r){e.insertCellReference(r,o[r]++,t)}))},l=0;l<a;++l)s(l)}else{for(var c=0;c<a;c++)f.newInstance().getPointsIds().forEach((function(t){e.incrementLinkCount(t)}));e.allocateLinks(n),t.maxId=n-1;for(var u=function(t){f.newInstance().getPointsIds().forEach((function(r){e.insertCellReference(r,o[r]++,t)}))},d=0;d<a;++d)u(d)}},e.allocate=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map((function(){return{ncells:0,cells:null}})),t.extend=r,t.maxId=-1},e.initialize=function(){t.array=null},e.getLink=function(e){return t.array[e]},e.getNcells=function(e){return t.array[e].ncells},e.getCells=function(e){return t.array[e].cells},e.insertNextPoint=function(e){t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=function(e,r){t.array[e].cells[t.array[e].ncells++]=r},e.deletePoint=function(e){t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=function(e,r){t.array[r].cells=t.array[r].cells.filter((function(t){return t!==e})),t.array[r].ncells=t.array[r].cells.length},e.addCellReference=function(e,r){t.array[r].cells[t.array[r].ncells++]=e},e.resizeCellList=function(e,r){t.array[e].cells.length=r},e.squeeze=function(){!function(e,t){var r=t;for(t>=e.array.length&&(r+=e.array.length);r>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=r}(t,t.maxId+1)},e.reset=function(){t.maxId=-1},e.deepCopy=function(e){t.array=(0,s.Z)(e.array),t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=function(e){++t.array[e].ncells},e.allocateLinks=function(e){for(var r=0;r<e;++r)t.array[r].cells=new Array(t.array[r].ncells)},e.insertCellReference=function(e,r,n){t.array[e].cells[r]=n}}(e,t)}var m={newInstance:a.default.newInstance(g,"vtkCellLinks"),extend:g},h={VTK_EMPTY_CELL:0,VTK_VERTEX:1,VTK_POLY_VERTEX:2,VTK_LINE:3,VTK_POLY_LINE:4,VTK_TRIANGLE:5,VTK_TRIANGLE_STRIP:6,VTK_POLYGON:7,VTK_PIXEL:8,VTK_QUAD:9,VTK_TETRA:10,VTK_VOXEL:11,VTK_HEXAHEDRON:12,VTK_WEDGE:13,VTK_PYRAMID:14,VTK_PENTAGONAL_PRISM:15,VTK_HEXAGONAL_PRISM:16,VTK_QUADRATIC_EDGE:21,VTK_QUADRATIC_TRIANGLE:22,VTK_QUADRATIC_QUAD:23,VTK_QUADRATIC_POLYGON:36,VTK_QUADRATIC_TETRA:24,VTK_QUADRATIC_HEXAHEDRON:25,VTK_QUADRATIC_WEDGE:26,VTK_QUADRATIC_PYRAMID:27,VTK_BIQUADRATIC_QUAD:28,VTK_TRIQUADRATIC_HEXAHEDRON:29,VTK_QUADRATIC_LINEAR_QUAD:30,VTK_QUADRATIC_LINEAR_WEDGE:31,VTK_BIQUADRATIC_QUADRATIC_WEDGE:32,VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:33,VTK_BIQUADRATIC_TRIANGLE:34,VTK_CUBIC_LINE:35,VTK_CONVEX_POINT_SET:41,VTK_POLYHEDRON:42,VTK_PARAMETRIC_CURVE:51,VTK_PARAMETRIC_SURFACE:52,VTK_PARAMETRIC_TRI_SURFACE:53,VTK_PARAMETRIC_QUAD_SURFACE:54,VTK_PARAMETRIC_TETRA_REGION:55,VTK_PARAMETRIC_HEX_REGION:56,VTK_HIGHER_ORDER_EDGE:60,VTK_HIGHER_ORDER_TRIANGLE:61,VTK_HIGHER_ORDER_QUAD:62,VTK_HIGHER_ORDER_POLYGON:63,VTK_HIGHER_ORDER_TETRAHEDRON:64,VTK_HIGHER_ORDER_WEDGE:65,VTK_HIGHER_ORDER_PYRAMID:66,VTK_HIGHER_ORDER_HEXAHEDRON:67,VTK_LAGRANGE_CURVE:68,VTK_LAGRANGE_TRIANGLE:69,VTK_LAGRANGE_QUADRILATERAL:70,VTK_LAGRANGE_TETRAHEDRON:71,VTK_LAGRANGE_HEXAHEDRON:72,VTK_LAGRANGE_WEDGE:73,VTK_LAGRANGE_PYRAMID:74,VTK_NUMBER_OF_CELL_TYPES:75},v=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"];function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var b={getClassNameFromTypeId:function(e){return e<v.length?v[e]:"UnknownClass"},getTypeIdFromClassName:function(e){return v.findIndex(e)},isLinear:function(e){return e<h.VTK_QUADRATIC_EDGE||e===h.VTK_CONVEX_POINT_SET||e===h.VTK_POLYHEDRON},hasSubCells:function(e){return e===h.VTK_TRIANGLE_STRIP||e===h.VTK_POLY_LINE||e===h.VTK_POLY_VERTEX}};var T={size:0,maxId:-1,extend:1e3};function C(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,T,r),a.default.obj(e,t),a.default.get(e,t,["size","maxId","extend"]),a.default.getArray(e,t,["typeArray","locationArray"]),function(e,t){t.classHierarchy.push("vtkCellTypes"),e.allocate=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:512,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=r>0?r:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=function(e,r,n){t.typeArray[e]=r,t.locationArray[e]=n,e>t.maxId&&(t.maxId=e)},e.insertNextCell=function(r,n){return e.insertCell(++t.maxId,r,n),t.maxId},e.setCellTypes=function(e,r,n){t.size=e,t.typeArray=r,t.locationArray=n,t.maxId=e-1},e.getCellLocation=function(e){return t.locationArray[e]},e.deleteCell=function(e){t.typeArray[e]=h.VTK_EMPTY_CELL},e.getNumberOfTypes=function(){return t.maxId+1},e.isType=function(t){for(var r=e.getNumberOfTypes(),n=0;n<r;++n)if(t===e.getCellType(n))return!0;return!1},e.insertNextType=function(t){return e.insertNextCell(t,-1)},e.getCellType=function(e){return t.typeArray[e]},e.reset=function(){t.maxId=-1},e.deepCopy=function(r){e.allocate(r.getSize(),r.getExtend()),t.typeArray.set(r.getTypeArray()),t.locationArray.set(r.getLocationArray()),t.maxId=r.getMaxId()}}(e,t)}var x=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(C,"vtkCellTypes"),extend:C},b),S={IntersectionState:{NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2}};function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function w(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=S.IntersectionState;function I(e,t,r){var n,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o={t:Number.MIN_VALUE,distance:0},i=[];i[0]=r[0]-t[0],i[1]=r[1]-t[1],i[2]=r[2]-t[2];var s=i[0]*(e[0]-t[0])+i[1]*(e[1]-t[1])+i[2]*(e[2]-t[2]),c=(0,l.d)(i,i),u=1e-5*s;return 0!==c&&(o.t=s/c),u<0&&(u=-u),-u<c&&c<u||c<=0||o.t<0?n=t:o.t>1?n=r:(n=i,i[0]=t[0]+o.t*i[0],i[1]=t[1]+o.t*i[1],i[2]=t[2]+o.t*i[2]),a&&(a[0]=n[0],a[1]=n[1],a[2]=n[2]),o.distance=(0,l.e)(n,e),o}function A(e,t,r,n,a,o){var i=[],s=[],c=[];a[0]=0,o[0]=0,(0,l.s)(t,e,i),(0,l.s)(n,r,s),(0,l.s)(r,e,c);var u=[(0,l.d)(i,i),-(0,l.d)(i,s),-(0,l.d)(i,s),(0,l.d)(s,s)],d=[];if(d[0]=(0,l.d)(i,c),d[1]=-(0,l.d)(s,c),0===(0,l.g)(u,d,2)){for(var f,p=Number.MAX_VALUE,g=[e,t,r,n],m=[r,r,e,e],h=[n,n,t,t],v=[o[0],o[0],a[0],a[0]],y=[a[0],a[0],o[0],o[0]],b=0;b<4;b++)(f=I(g[b],m[b],h[b])).distance<p&&(p=f.distance,v[b]=f.t,y[b]=b%2);return O.ON_LINE}return a[0]=d[0],o[0]=d[1],a[0]>=0&&a[0]<=1&&o[0]>=0&&o[0]<=1?O.YES_INTERSECTION:O.NO_INTERSECTION}var R={distanceToLine:I,intersection:A};var E={};function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,E,r),f.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=function(){return 1},e.intersectWithLine=function(e,r,n,a,o){var i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;var s=[],c=[],u=[];t.points.getPoint(0,c),t.points.getPoint(1,u);var d,f=[],p=[],g=A(e,r,c,u,f,p);if(i.t=f[0],i.betweenPoints=(d=i.t)>=0&&d<=1,o[0]=p[0],g===O.YES_INTERSECTION){for(var m=0;m<3;m++)a[m]=c[m]+o[0]*(u[m]-c[m]),s[m]=e[m]+i.t*(r[m]-e[m]);if((0,l.e)(a,s)<=n*n)return i.intersect=1,i}else{var h;if(i.t<0)return(h=I(e,c,u,a)).distance<=n*n?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return(h=I(r,c,u,a)).distance<=n*n?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(o[0]<0)return o[0]=0,h=I(c,e,r,a),i.t=h.t,h.distance<=n*n?(i.intersect=1,i):i;if(o[0]>1)return o[0]=1,h=I(u,e,r,a),i.t=h.t,h.distance<=n*n?(i.intersect=1,i):i}return i},e.evaluateLocation=function(e,r,n){var a=[],o=[];t.points.getPoint(0,a),t.points.getPoint(1,o);for(var i=0;i<3;i++)r[i]=a[i]+e[0]*(o[i]-a[i]);n[0]=1-e[0],n[1]=e[0]}}(e,t)}var D=w(w({newInstance:a.default.newInstance(M,"vtkLine"),extend:M},R),S),V=r(14418);var L={};function _(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,L,r),V.ZP.extend(e,t,r),a.default.setGet(e,t,["points"]),function(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=(0,o.Z)(t.points):t.points=c.ZP.newInstance(),e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.getBounds=function(){return t.points.getBounds()},e.computeBounds=function(){e.getBounds()};var r=e.shallowCopy;e.shallowCopy=function(e){r(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1]),t.points=c.ZP.newInstance(),t.points.shallowCopy(e.getPoints())}}(e,t)}var N={newInstance:a.default.newInstance(_,"vtkPointSet"),extend:_},B=r(3969);function F(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function U(e,t,r,n){var a=r[0]-t[0],o=r[1]-t[1],i=r[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];n[0]=o*c-i*l,n[1]=i*s-a*c,n[2]=a*l-o*s}function k(e,t,r,n){U(e,t,r,n);var a=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);0!==a&&(n[0]/=a,n[1]/=a,n[2]/=a)}var G={computeNormalDirection:U,computeNormal:k,intersectWithTriangle:function(e,t,r,n,a,o){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1e-6,s=!1,c=[],u=[],d=[],f=[],p=[];k(e,t,r,f),k(n,a,o,p);var g=-(0,l.d)(f,e),m=-(0,l.d)(p,n),h=[(0,l.d)(p,e)+m,(0,l.d)(p,t)+m,(0,l.d)(p,r)+m];if(h[0]*h[1]>i&&h[0]*h[2]>i)return{intersect:!1,coplanar:s,pt1:c,pt2:u,surfaceId:d};var v=[(0,l.d)(f,n)+g,(0,l.d)(f,a)+g,(0,l.d)(f,o)+g];if(v[0]*v[1]>i&&v[0]*v[2]>i)return{intersect:!1,coplanar:s,pt1:c,pt2:u,surfaceId:d};if(Math.abs(f[0]-p[0])<1e-9&&Math.abs(f[1]-p[1])<1e-9&&Math.abs(f[2]-p[2])<1e-9&&Math.abs(g-m)<1e-9)return{intersect:!1,coplanar:s=!0,pt1:c,pt2:u,surfaceId:d};var y=[e,t,r],b=[n,a,o],T=(0,l.d)(f,p),C=(g-m*T)/(T*T-1),x=(m-g*T)/(T*T-1),S=[C*f[0]+x*p[0],C*f[1]+x*p[1],C*f[2]+x*p[2]],P=(0,l.j)(f,p,[]);(0,l.l)(P);for(var w,O,I=0,A=0,R=[],E=[],M=50,D=50,V=0;V<3;V++){var L=V,_=(V+1)%3,N=B.ZP.intersectWithLine(y[L],y[_],n,p);N.intersection&&N.t>0-i&&N.t<1+i&&(N.t<1+i&&N.t>1-i&&(M=I),R[I++]=(0,l.d)(N.x,P)-(0,l.d)(S,P));var F=B.ZP.intersectWithLine(b[L],b[_],e,f);F.intersection&&F.t>0-i&&F.t<1+i&&(F.t<1+i&&F.t>1-i&&(D=A),E[A++]=(0,l.d)(F.x,P)-(0,l.d)(S,P))}if(I>2){I--;var U=R[2];R[2]=R[M],R[M]=U}if(A>2){A--;var G=E[2];E[2]=E[D],E[D]=G}if(2!==I||2!==A)return{intersect:!1,coplanar:s,pt1:c,pt2:u,surfaceId:d};if(Number.isNaN(R[0])||Number.isNaN(R[1])||Number.isNaN(E[0])||Number.isNaN(E[1]))return{intersect:!1,coplanar:s,pt1:c,pt2:u,surfaceId:d};if(R[0]>R[1]){var W=R[1];R[1]=R[0],R[0]=W}if(E[0]>E[1]){var z=E[1];E[1]=E[0],E[0]=z}return R[1]<E[0]||E[1]<R[0]?{intersect:!1,coplanar:s,pt1:c,pt2:u,surfaceId:d}:(R[0]<E[0]?R[1]<E[1]?(d[0]=2,d[1]=1,w=E[0],O=R[1]):(d[0]=2,d[1]=2,w=E[0],O=E[1]):R[1]<E[1]?(d[0]=1,d[1]=1,w=R[0],O=R[1]):(d[0]=1,d[1]=2,w=R[0],O=E[1]),(0,l.m)(S,P,w,c),(0,l.m)(S,P,O,u),{intersect:!0,coplanar:s,pt1:c,pt2:u,surfaceId:d})}};var W={};function z(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,W,r),f.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkTriangle"),e.getCellDimension=function(){return 2},e.intersectWithLine=function(r,n,a,o,i){var s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;var c=a*a,u=[],d=[],f=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,f);var p=[];if(k(u,d,f,p),0!==p[0]||0!==p[1]||0!==p[2]){var g=B.ZP.intersectWithLine(r,n,u,p);if(s.betweenPoints=g.betweenPoints,s.t=g.t,o[0]=g.x[0],o[1]=g.x[1],o[2]=g.x[2],!g.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;var m=e.evaluatePosition(o,[],i,[]);if(m.evaluation>=0)return m.dist2<=c?(s.intersect=1,s):(s.intersect=m.evaluation,s)}var h=(0,l.e)(u,d),v=(0,l.e)(d,f),y=(0,l.e)(f,u);t.line||(t.line=D.newInstance()),h>v&&h>y?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):v>y&&v>h?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,f)):(t.line.getPoints().setPoint(0,f),t.line.getPoints().setPoint(1,u));var b=t.line.intersectWithLine(r,n,a,o,i);if(s.betweenPoints=b.betweenPoints,s.t=b.t,b.intersect){for(var T=[],C=[],x=[],S=0;S<3;S++)T[S]=u[S]-f[S],C[S]=d[S]-f[S],x[S]=o[S]-f[S];return i[0]=(0,l.d)(x,T)/y,i[1]=(0,l.d)(x,C)/v,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=function(e,r,n,a){var o,i,s,c,u,d,f,p={subId:0,dist2:0,evaluation:-1},g=[],m=[],h=[],v=[],y=[],b=[],T=[],C=0,x=[],S=[],P=[],w=[],O=[];p.subId=0,n[2]=0,t.points.getPoint(1,g),t.points.getPoint(2,m),t.points.getPoint(0,h),U(g,m,h,v),B.ZP.generalizedProjectPoint(e,g,v,O);var I=0;for(o=0;o<3;o++)(s=v[o]<0?-v[o]:v[o])>I&&(I=s,C=o);for(i=0,o=0;o<3;o++)o!==C&&(x[i++]=o);for(o=0;o<2;o++)y[o]=O[x[o]]-h[x[o]],b[o]=g[x[o]]-h[x[o]],T[o]=m[x[o]]-h[x[o]];if(0===(c=(0,l.o)(b,T)))return n[0]=0,n[1]=0,p.evaluation=-1,p;if(n[0]=(0,l.o)(y,T)/c,n[1]=(0,l.o)(b,y)/c,a[0]=1-(n[0]+n[1]),a[1]=n[0],a[2]=n[1],a[0]>=0&&a[0]<=1&&a[1]>=0&&a[1]<=1&&a[2]>=0&&a[2]<=1)r&&(p.dist2=(0,l.e)(O,e),r[0]=O[0],r[1]=O[1],r[2]=O[2]),p.evaluation=1;else{var A;if(r)if(a[1]<0&&a[2]<0)for(u=(0,l.e)(e,h),d=D.distanceToLine(e,g,h,A,P),f=D.distanceToLine(e,h,m,A,w),u<d?(p.dist2=u,S=h):(p.dist2=d,S=P),f<p.dist2&&(p.dist2=f,S=w),o=0;o<3;o++)r[o]=S[o];else if(a[2]<0&&a[0]<0)for(u=(0,l.e)(e,g),d=D.distanceToLine(e,g,h,A,P),f=D.distanceToLine(e,g,m,A,w),u<d?(p.dist2=u,S=g):(p.dist2=d,S=P),f<p.dist2&&(p.dist2=f,S=w),o=0;o<3;o++)r[o]=S[o];else if(a[1]<0&&a[0]<0)for(u=(0,l.e)(e,m),d=D.distanceToLine(e,m,h,A,P),f=D.distanceToLine(e,g,m,A,w),u<d?(p.dist2=u,S=m):(p.dist2=d,S=P),f<p.dist2&&(p.dist2=f,S=w),o=0;o<3;o++)r[o]=S[o];else if(a[0]<0){var R=D.distanceToLine(e,g,m,r);p.dist2=R.distance}else if(a[1]<0){var E=D.distanceToLine(e,m,h,r);p.dist2=E.distance}else if(a[2]<0){var M=D.distanceToLine(e,g,h,r);p.dist2=M.distance}p.evaluation=0}return p},e.evaluateLocation=function(e,r,n){var a=[],o=[],i=[];t.points.getPoint(0,a),t.points.getPoint(1,o),t.points.getPoint(2,i);for(var s=1-e[0]-e[1],l=0;l<3;l++)r[l]=a[l]*s+o[l]*e[0]+i[l]*e[1];n[0]=s,n[1]=e[0],n[2]=e[1]},e.getParametricDistance=function(e){var t,r=0,n=[];n[0]=e[0],n[1]=e[1],n[2]=1-e[0]-e[1];for(var a=0;a<3;a++)(t=n[a]<0?-n[a]:n[a]>1?n[a]-1:0)>r&&(r=t);return r}}(e,t)}var j,H=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?F(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(z,"vtkTriangle"),extend:z},G),K=["verts","lines","polys","strips"],Z=a.default.vtkWarningMacro,X=(j={},(0,n.Z)(j,h.VTK_LINE,D),(0,n.Z)(j,h.VTK_POLY_LINE,D),(0,n.Z)(j,h.VTK_TRIANGLE,H),j);var q={};function Y(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,q,r),N.extend(e,t,r),a.default.get(e,t,["cells","links"]),a.default.setGet(e,t,["verts","lines","polys","strips"]),function(e,t){t.classHierarchy.push("vtkPolyData"),K.forEach((function(r){var n;e["getNumberOf".concat((n=r,n.replace(/(?:^\w|[A-Z]|\b\w)/g,(function(e){return e.toUpperCase()})).replace(/\s+/g,"")))]=function(){return t[r].getNumberOfCells()},t[r]?t[r]=(0,o.Z)(t[r]):t[r]=i.ZP.newInstance()})),e.getNumberOfCells=function(){return K.reduce((function(e,r){return e+t[r].getNumberOfCells()}),0)};var r=e.shallowCopy;e.shallowCopy=function(e){r(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1]),K.forEach((function(r){t[r]=i.ZP.newInstance(),t[r].shallowCopy(e.getReferenceByName(r))}))},e.buildCells=function(){var r=e.getNumberOfVerts(),n=e.getNumberOfLines(),a=e.getNumberOfPolys(),o=e.getNumberOfStrips(),i=r+n+a+o,s=new Uint8Array(i),l=s,c=new Uint32Array(i),u=c;if(r){var d=0;t.verts.getCellSizes().forEach((function(e,t){u[t]=d,l[t]=e>1?h.VTK_POLY_VERTEX:h.VTK_VERTEX,d+=e+1})),u=u.subarray(r),l=l.subarray(r)}if(n){var f=0;t.lines.getCellSizes().forEach((function(e,t){u[t]=f,l[t]=e>2?h.VTK_POLY_LINE:h.VTK_LINE,1===e&&Z("Building VTK_LINE ",t," with only one point, but VTK_LINE needs at least two points. Check the input."),f+=e+1})),u=u.subarray(n),l=l.subarray(n)}if(a){var p=0;t.polys.getCellSizes().forEach((function(e,t){switch(u[t]=p,e){case 3:l[t]=h.VTK_TRIANGLE;break;case 4:l[t]=h.VTK_QUAD;break;default:l[t]=h.VTK_POLYGON}e<3&&Z("Building VTK_TRIANGLE ",t," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=e+1})),u+=u.subarray(a),l+=l.subarray(a)}if(o){var g=0;l.fill(h.VTK_TRIANGLE_STRIP,0,o),t.strips.getCellSizes().forEach((function(e,t){u[t]=g,g+=e+1}))}t.cells=x.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=m.newInstance(),r>0?t.links.allocate(r):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=function(e){return t.cells.getCellType(e)},e.getCellPoints=function(r){var n=e.getCellType(r),a=null;switch(n){case h.VTK_VERTEX:case h.VTK_POLY_VERTEX:a=t.verts;break;case h.VTK_LINE:case h.VTK_POLY_LINE:a=t.lines;break;case h.VTK_TRIANGLE:case h.VTK_QUAD:case h.VTK_POLYGON:a=t.polys;break;case h.VTK_TRIANGLE_STRIP:a=t.strips;break;default:return a=null,{type:0,cellPointIds:null}}var o=t.cells.getCellLocation(r);return{cellType:n,cellPointIds:a.getCell(o)}},e.getPointCells=function(e){return t.links.getCells(e)},e.getCellEdgeNeighbors=function(e,r,n){var a=t.links.getLink(r),o=t.links.getLink(n);return a.cells.filter((function(t){return t!==e&&-1!==o.cells.indexOf(t)}))},e.getCell=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e.getCellPoints(t),a=r||X[n.cellType].newInstance();return a.initialize(e.getPoints(),n.cellPointIds),a}}(e,t)}var $={newInstance:a.default.newInstance(Y,"vtkPolyData"),extend:Y}},97442:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>u});var n=r(78826),a=r(41168),o=r(54131),i=r(1299),s=r(45802);var l={xLength:1,yLength:1,zLength:1,center:[0,0,0],rotations:[0,0,0],pointType:"Float64Array",generate3DTextureCoordinates:!1};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,l,r),a.default.obj(e,t),a.default.setGet(e,t,["xLength","yLength","zLength","generate3DTextureCoordinates"]),a.default.setGetArray(e,t,["center","rotations"],3),a.default.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkCubeSource"),e.setBounds=function(){var e=[];if(Array.isArray(arguments.length<=0?void 0:arguments[0]))e=arguments.length<=0?void 0:arguments[0];else for(var r=0;r<arguments.length;r++)e.push(r<0||arguments.length<=r?void 0:arguments[r]);6===e.length&&(t.xLength=e[1]-e[0],t.yLength=e[3]-e[2],t.zLength=e[5]-e[4],t.center=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2])},e.requestData=function(e,r){var l;if(!t.deleted){var c=i.ZP.newInstance();r[0]=c;var u=a.default.newTypedArray(t.pointType,72);c.getPoints().setData(u,3);var d=a.default.newTypedArray(t.pointType,72),f=o.ZP.newInstance({name:"Normals",values:d,numberOfComponents:3});c.getPointData().setNormals(f);var p=2;!0===t.generate3DTextureCoordinates&&(p=3);var g=a.default.newTypedArray(t.pointType,24*p),m=o.ZP.newInstance({name:"TextureCoordinates",values:g,numberOfComponents:p});c.getPointData().setTCoords(m);var h=[0,0,0],v=[0,0,0],y=[0,0],b=0;h[0]=-t.xLength/2,v[0]=-1,v[1]=0,v[2]=0;for(var T=0;T<2;T++){h[1]=-t.yLength/2;for(var C=0;C<2;C++){y[1]=h[1]+.5,h[2]=-t.zLength/2;for(var x=0;x<2;x++)y[0]=(h[2]+.5)*(1-2*T),u[3*b]=h[0],u[3*b+1]=h[1],u[3*b+2]=h[2],d[3*b]=v[0],d[3*b+1]=v[1],d[3*b+2]=v[2],2===p?(g[b*p]=y[0],g[b*p+1]=y[1]):(g[b*p]=2*T-1,g[b*p+1]=2*C-1,g[b*p+2]=2*x-1),b++,h[2]+=t.zLength;h[1]+=t.yLength}h[0]+=t.xLength,v[0]+=2}h[1]=-t.yLength/2,v[1]=-1,v[0]=0,v[2]=0;for(var S=0;S<2;S++){h[0]=-t.xLength/2;for(var P=0;P<2;P++){y[0]=(h[0]+.5)*(2*S-1),h[2]=-t.zLength/2;for(var w=0;w<2;w++)y[1]=-1*(h[2]+.5),u[3*b]=h[0],u[3*b+1]=h[1],u[3*b+2]=h[2],d[3*b]=v[0],d[3*b+1]=v[1],d[3*b+2]=v[2],2===p?(g[b*p]=y[0],g[b*p+1]=y[1]):(g[b*p]=2*P-1,g[b*p+1]=2*S-1,g[b*p+2]=2*w-1),b++,h[2]+=t.zLength;h[0]+=t.xLength}h[1]+=t.yLength,v[1]+=2}h[2]=-t.zLength/2,v[2]=-1,v[0]=0,v[1]=0;for(var O=0;O<2;O++){h[1]=-t.yLength/2;for(var I=0;I<2;I++){y[1]=h[1]+.5,h[0]=-t.xLength/2;for(var A=0;A<2;A++)y[0]=(h[0]+.5)*(2*O-1),u[3*b]=h[0],u[3*b+1]=h[1],u[3*b+2]=h[2],d[3*b]=v[0],d[3*b+1]=v[1],d[3*b+2]=v[2],2===p?(g[b*p]=y[0],g[b*p+1]=y[1]):(g[b*p]=2*A-1,g[b*p+1]=2*I-1,g[b*p+2]=2*O-1),b++,h[0]+=t.xLength;h[1]+=t.yLength}h[2]+=t.zLength,v[2]+=2}s.Z.buildFromDegree().rotateX(t.rotations[0]).rotateY(t.rotations[1]).rotateZ(t.rotations[2]).apply(u).apply(d),(l=s.Z.buildFromRadian()).translate.apply(l,(0,n.Z)(t.center)).apply(u);var R=new Uint16Array(30);c.getPolys().setData(R,1);var E=0;R[E++]=4,R[E++]=0,R[E++]=1,R[E++]=3,R[E++]=2,R[E++]=4,R[E++]=4,R[E++]=6,R[E++]=7,R[E++]=5,R[E++]=4,R[E++]=8,R[E++]=10,R[E++]=11,R[E++]=9,R[E++]=4,R[E++]=12,R[E++]=13,R[E++]=15,R[E++]=14,R[E++]=4,R[E++]=16,R[E++]=18,R[E++]=19,R[E++]=17,R[E++]=4,R[E++]=20,R[E++]=21,R[E++]=23,R[29]=22}}}(e,t)}var u={newInstance:a.default.newInstance(c,"vtkCubeSource"),extend:c}},16595:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var n=r(41168);var a={clippingPlanes:[]};var o={extend:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,a,r),n.default.obj(e,t),n.default.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){t.classHierarchy.push("vtkAbstractMapper"),e.update=function(){e.getInputData()},e.addClippingPlane=function(r){return!!r.isA("vtkPlane")&&!t.clippingPlanes.includes(r)&&(t.clippingPlanes.push(r),e.modified(),!0)},e.getNumberOfClippingPlanes=function(){return t.clippingPlanes.length},e.removeAllClippingPlanes=function(){return 0!==t.clippingPlanes.length&&(t.clippingPlanes.length=0,e.modified(),!0)},e.removeClippingPlane=function(r){var n=t.clippingPlanes.indexOf(r);return-1!==n&&(t.clippingPlanes.splice(n,1),e.modified(),!0)},e.getClippingPlanes=function(){return t.clippingPlanes},e.setClippingPlanes=function(t){if(t)if(Array.isArray(t))for(var r=t.length,n=0;n<r&&n<6;n++)e.addClippingPlane(t[n]);else e.addClippingPlane(t)},e.getClippingPlaneInDataCoords=function(e,r,a){var o=t.clippingPlanes,i=e;if(o){var s=o.length;if(r>=0&&r<s){var l=o[r],c=l.getNormal(),u=l.getOrigin(),d=c[0],f=c[1],p=c[2],g=-(d*u[0]+f*u[1]+p*u[2]);return a[0]=d*i[0]+f*i[4]+p*i[8]+g*i[12],a[1]=d*i[1]+f*i[5]+p*i[9]+g*i[13],a[2]=d*i[2]+f*i[6]+p*i[10]+g*i[14],void(a[3]=d*i[3]+f*i[7]+p*i[11]+g*i[15])}}n.default.vtkErrorMacro("Clipping plane index ".concat(r," is out of range."))}}(e,t)}}},21924:(e,t,r)=>{"use strict";r.d(t,{Z:()=>s});var n=r(41168),a=r(16595),o=r(59474);var i={bounds:[1,-1,1,-1,1,-1],center:[0,0,0],viewSpecificProperties:null};var s={extend:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,i,r),a.Z.extend(e,t,r),t.bounds||(0,o.u)(t.bounds),t.center||(t.center=[0,0,0]),n.default.setGet(e,t,["viewSpecificProperties"]),t.viewSpecificProperties||(t.viewSpecificProperties={}),function(e,t){e.getBounds=function(){return 0},e.getBounds=function(r){e.getBounds();for(var n=0;n<6;n++)r[n]=t.bounds[n]},e.getCenter=function(){e.getBounds();for(var r=0;r<3;r++)t.center[r]=(t.bounds[2*r+1]+t.bounds[2*r])/2;return t.center.slice()},e.getLength=function(){var r=0,n=0;e.getBounds();for(var a=0;a<3;a++)n+=(r=t.bounds[2*a+1]-t.bounds[2*a])*r;return Math.sqrt(n)}}(e,t)}}},16623:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>g});var n=r(87765),a=r(45451),o=r(41168),i=r(91382),s=r(49445),l=r(98589);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var u=o.default.vtkDebugMacro;function d(e,t){t.classHierarchy.push("vtkActor");var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);e.getActors=function(){return[e]},e.getIsOpaque=function(){if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.property||e.getProperty();var r=t.property.getOpacity()>=1;return r=(r=r&&(!t.texture||!t.texture.isTranslucent()))&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque())},e.makeProperty=l.ZP.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var r=t.mapper.getBounds();if(!r||6!==r.length)return r;if(r[0]>r[1])return t.mapperBounds=r.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),r;if(!t.mapperBounds||r[0]!==t.mapperBounds[0]||r[1]!==t.mapperBounds[1]||r[2]!==t.mapperBounds[2]||r[3]!==t.mapperBounds[3]||r[4]!==t.mapperBounds[4]||r[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){u("Recomputing bounds..."),t.mapperBounds=r.concat();var n=[];i.ZP.getCorners(r,n),e.computeMatrix();var o=new Float64Array(16);a._E.transpose(o,t.matrix),n.forEach((function(e){return a.R3.transformMat4(e,e,o)})),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map((function(e,t){return t%2==0?n.reduce((function(e,r){return e>r[t/2]?r[t/2]:e}),e):n.reduce((function(e,r){return e<r[(t-1)/2]?r[(t-1)/2]:e}),e)})),t.boundsMTime.modified()}return t.bounds},e.getMTime=function(){var e=r.getMTime();if(null!==t.property){var n=t.property.getMTime();e=n>e?n:e}if(null!==t.backfaceProperty){var a=t.backfaceProperty.getMTime();e=a>e?a:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var r=t.mapper.getMTime();e=r>e?r:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(r=t.mapper.getInput().getMTime())>e?r:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()},e.processSelectorPixelBuffers=function(e,r){t.mapper&&t.mapper.processSelectorPixelBuffers&&t.mapper.processSelectorPixelBuffers(e,r)}}var f={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,f,r),s.ZP.extend(e,t,r),t.boundsMTime={},o.default.obj(t.boundsMTime),o.default.set(e,t,["property"]),o.default.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),d(e,t)}var g={newInstance:o.default.newInstance(p,"vtkActor"),extend:p}},34535:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>u});var n=r(78826),a=r(45451),o=r(41168),i=r(59474),s=o.default.vtkDebugMacro;var l={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,cameraLightTransform:a._E.create(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,l,r),o.default.obj(e,t),o.default.get(e,t,["distance"]),o.default.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),o.default.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),o.default.setGetArray(e,t,["clippingRange","windowCenter"],2),o.default.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),function(e,t){t.classHierarchy.push("vtkCamera");var r=new Float64Array(3),o=new Float64Array([0,0,-1]),l=new Float64Array([0,1,0]),c=a._E.identity(new Float64Array(16)),u=a._E.identity(new Float64Array(16)),d=new Float64Array(3),f=new Float64Array(3),p=new Float64Array(3),g=a._E.identity(new Float64Array(16)),m=a._E.identity(new Float64Array(16)),h=new Float64Array(3),v=new Float64Array(3);function y(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=function(){var r=e.getViewMatrix();t.viewUp[0]=r[4],t.viewUp[1]=r[5],t.viewUp[2]=r[6],e.modified()},e.setPosition=function(r,n,a){r===t.position[0]&&n===t.position[1]&&a===t.position[2]||(t.position[0]=r,t.position[1]=n,t.position[2]=a,e.computeDistance(),e.modified())},e.setFocalPoint=function(r,n,a){r===t.focalPoint[0]&&n===t.focalPoint[1]&&a===t.focalPoint[2]||(t.focalPoint[0]=r,t.focalPoint[1]=n,t.focalPoint[2]=a,e.computeDistance(),e.modified())},e.setDistance=function(r){if(t.distance!==r){t.distance=r,t.distance<1e-20&&(t.distance=1e-20,s("Distance is set to minimum."));var n=t.directionOfProjection;t.focalPoint[0]=t.position[0]+n[0]*t.distance,t.focalPoint[1]=t.position[1]+n[1]*t.distance,t.focalPoint[2]=t.position[2]+n[2]*t.distance,e.modified()}},e.computeDistance=function(){var e=t.focalPoint[0]-t.position[0],r=t.focalPoint[1]-t.position[1],n=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+r*r+n*n),t.distance<1e-20){t.distance=1e-20,s("Distance is set to minimum.");var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=r/t.distance,t.directionOfProjection[2]=n/t.distance,y()},e.dolly=function(r){if(!(r<=0)){var n=t.distance/r;e.setPosition(t.focalPoint[0]-n*t.directionOfProjection[0],t.focalPoint[1]-n*t.directionOfProjection[1],t.focalPoint[2]-n*t.directionOfProjection[2])}},e.roll=function(r){var n=t.position,o=t.focalPoint,s=t.viewUp,l=new Float64Array([s[0],s[1],s[2],0]);a._E.identity(g);var c=new Float64Array([o[0]-n[0],o[1]-n[1],o[2]-n[2]]);a._E.rotate(g,g,(0,i.r)(r),c),a.vh.transformMat4(l,l,g),t.viewUp[0]=l[0],t.viewUp[1]=l[1],t.viewUp[2]=l[2],e.modified()},e.azimuth=function(r){var n=t.focalPoint;a._E.identity(m),a._E.translate(m,m,n),a._E.rotate(m,m,(0,i.r)(r),t.viewUp),a._E.translate(m,m,[-n[0],-n[1],-n[2]]),a.R3.transformMat4(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.yaw=function(r){var n=t.position;a._E.identity(m),a._E.translate(m,m,n),a._E.rotate(m,m,(0,i.r)(r),t.viewUp),a._E.translate(m,m,[-n[0],-n[1],-n[2]]),a.R3.transformMat4(v,t.focalPoint,m),e.setFocalPoint(v[0],v[1],v[2])},e.elevation=function(r){var n=t.focalPoint,o=e.getViewMatrix(),s=[-o[0],-o[1],-o[2]];a._E.identity(m),a._E.translate(m,m,n),a._E.rotate(m,m,(0,i.r)(r),s),a._E.translate(m,m,[-n[0],-n[1],-n[2]]),a.R3.transformMat4(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.pitch=function(r){var o=t.position,s=e.getViewMatrix(),l=[s[0],s[1],s[2]];a._E.identity(m),a._E.translate(m,m,o),a._E.rotate(m,m,(0,i.r)(r),l),a._E.translate(m,m,[-o[0],-o[1],-o[2]]),a.R3.transformMat4(v,t.focalPoint,m),e.setFocalPoint.apply(e,(0,n.Z)(v))},e.zoom=function(r){r<=0||(t.parallelProjection?t.parallelScale/=r:t.viewAngle/=r,e.modified())},e.translate=function(r,n,a){var o=[r,n,a];(0,i.k)(t.position,o,t.position),(0,i.k)(t.focalPoint,o,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=function(r){var o=[].concat((0,n.Z)(t.viewUp),[1]),i=[],s=[],l=[];o[0]+=t.position[0],o[1]+=t.position[1],o[2]+=t.position[2],a.vh.transformMat4(i,[].concat((0,n.Z)(t.position),[1]),r),a.vh.transformMat4(s,[].concat((0,n.Z)(t.focalPoint),[1]),r),a.vh.transformMat4(l,o,r),l[0]-=i[0],l[1]-=i[1],l[2]-=i[2],e.setPosition.apply(e,(0,n.Z)(i.slice(0,3))),e.setFocalPoint.apply(e,(0,n.Z)(s.slice(0,3))),e.setViewUp.apply(e,(0,n.Z)(l.slice(0,3)))},e.getThickness=function(){return t.clippingRange[1]-t.clippingRange[0]},e.setThickness=function(r){var n=r;n<1e-20&&(n=1e-20,s("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+n)},e.setThicknessFromFocalPoint=function(r){var n=r;n<1e-20&&(n=1e-20,s("Thickness is set to minimum.")),e.setClippingRange(t.distance-n/2,t.distance+n/2)},e.setRoll=function(e){},e.getRoll=function(){},e.setObliqueAngles=function(e,t){},e.getOrientation=function(){},e.getOrientationWXYZ=function(){},e.getFrustumPlanes=function(e){},e.getCameraLightTransformMatrix=function(e){return a._E.copy(e,t.cameraLightTransform),e},e.computeCameraLightTransform=function(){a._E.copy(c,e.getViewMatrix()),a._E.invert(c,c),a._E.fromScaling(u,[t.distance,t.distance,t.distance]),a._E.multiply(c,c,u),a._E.identity(t.cameraLightTransform),a._E.translate(t.cameraLightTransform,c,[0,0,-1])},e.deepCopy=function(e){},e.physicalOrientationToWorldDirection=function(e){var t=a.gf.fromValues(e[0],e[1],e[2],e[3]),r=a.gf.create(),n=a.gf.fromValues(0,0,1,0);return a.gf.conjugate(r,t),a.gf.multiply(n,t,n),a.gf.multiply(n,n,r),[n[0],n[1],n[2]]},e.getPhysicalToWorldMatrix=function(t){e.getWorldToPhysicalMatrix(t),a._E.invert(t,t)},e.getWorldToPhysicalMatrix=function(e){a._E.identity(e);var r=[3];(0,i.j)(t.physicalViewNorth,t.physicalViewUp,r),e[0]=r[0],e[1]=r[1],e[2]=r[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],a._E.transpose(e,e),a.R3.set(d,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),a._E.scale(e,e,d),a._E.translate(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=function(n){a._E.invert(c,n),a.R3.transformMat4(d,r,c),e.computeDistance();var i=t.distance;e.setPosition(d[0],d[1],d[2]),a.R3.transformMat4(f,o,c),a.R3.subtract(f,f,d),a.R3.normalize(f,f),e.setDirectionOfProjection(f[0],f[1],f[2]),a.R3.transformMat4(p,l,c),a.R3.subtract(p,p,d),a.R3.normalize(p,p),e.setViewUp(p[0],p[1],p[2]),e.setDistance(i)},e.computeViewParametersFromPhysicalMatrix=function(t){e.getWorldToPhysicalMatrix(c),a._E.multiply(c,t,c),e.computeViewParametersFromViewMatrix(c)},e.setViewMatrix=function(r){t.viewMatrix=r,t.viewMatrix&&(a._E.copy(c,t.viewMatrix),e.computeViewParametersFromViewMatrix(c),a._E.transpose(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=function(){if(t.viewMatrix)return t.viewMatrix;a._E.lookAt(c,t.position,t.focalPoint,t.viewUp),a._E.transpose(c,c);var e=new Float64Array(16);return a._E.copy(e,c),e},e.setProjectionMatrix=function(e){t.projectionMatrix=e},e.getProjectionMatrix=function(e,r,n){var o=new Float64Array(16);if(a._E.identity(o),t.projectionMatrix){var s=1/t.physicalScale;return a.R3.set(d,s,s,s),a._E.copy(o,t.projectionMatrix),a._E.scale(o,o,d),a._E.transpose(o,o),o}a._E.identity(c);var l=t.clippingRange[1]-t.clippingRange[0],u=[t.clippingRange[0]+(r+1)*l/2,t.clippingRange[0]+(n+1)*l/2];if(t.parallelProjection){var f=t.parallelScale*e,p=t.parallelScale,g=(t.windowCenter[0]-1)*f,m=(t.windowCenter[0]+1)*f,h=(t.windowCenter[1]-1)*p,v=(t.windowCenter[1]+1)*p;a._E.ortho(c,g,m,h,v,u[0],u[1]),a._E.transpose(c,c)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");var y,b,T=Math.tan((0,i.r)(t.viewAngle)/2);!0===t.useHorizontalViewAngle?(y=t.clippingRange[0]*T,b=t.clippingRange[0]*T/e):(y=t.clippingRange[0]*T*e,b=t.clippingRange[0]*T);var C=(t.windowCenter[0]-1)*y,x=(t.windowCenter[0]+1)*y,S=(t.windowCenter[1]-1)*b,P=(t.windowCenter[1]+1)*b,w=u[0],O=u[1];c[0]=2*w/(x-C),c[5]=2*w/(P-S),c[2]=(C+x)/(x-C),c[6]=(S+P)/(P-S),c[10]=-(w+O)/(O-w),c[14]=-1,c[11]=-2*w*O/(O-w),c[15]=0}return a._E.copy(o,c),o},e.getCompositeProjectionMatrix=function(t,r,n){var o=e.getViewMatrix(),i=e.getProjectionMatrix(t,r,n);return a._E.multiply(i,o,i),i},e.setDirectionOfProjection=function(e,r,n){if(t.directionOfProjection[0]!==e||t.directionOfProjection[1]!==r||t.directionOfProjection[2]!==n){t.directionOfProjection[0]=e,t.directionOfProjection[1]=r,t.directionOfProjection[2]=n;var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance,y()}},e.setDeviceAngles=function(r,n,o,s){var l=[3];(0,i.j)(t.physicalViewNorth,t.physicalViewUp,l);var c=a._E.identity(new Float64Array(16));a._E.rotate(c,c,(0,i.r)(r),t.physicalViewUp),a._E.rotate(c,c,(0,i.r)(n),l),a._E.rotate(c,c,(0,i.r)(o),t.physicalViewNorth),a._E.rotate(c,c,(0,i.r)(-s),t.physicalViewUp);var u=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),d=new Float64Array(t.physicalViewNorth);a.R3.transformMat4(u,u,c),a.R3.transformMat4(d,d,c),e.setDirectionOfProjection(u[0],u[1],u[2]),e.setViewUp(d[0],d[1],d[2]),e.modified()},e.setOrientationWXYZ=function(t,r,o,s){var l=a._E.identity(new Float64Array(16));if(0!==t&&(0!==r||0!==o||0!==s)){var c=(0,i.r)(t),u=a.gf.create();a.gf.setAxisAngle(u,[r,o,s],c),a._E.fromQuat(l,u)}var d=new Float64Array(3);a.R3.transformMat4(d,[0,0,-1],l);var f=new Float64Array(3);a.R3.transformMat4(f,[0,1,0],l),e.setDirectionOfProjection.apply(e,(0,n.Z)(d)),e.setViewUp.apply(e,(0,n.Z)(f)),e.modified()},e.computeClippingRange=function(e){var r,n;r=t.viewPlaneNormal,n=t.position;for(var a=-r[0],o=-r[1],i=-r[2],s=-(a*n[0]+o*n[1]+i*n[2]),l=[a*e[0]+o*e[2]+i*e[4]+s,1e-18],c=0;c<2;c++)for(var u=0;u<2;u++)for(var d=0;d<2;d++){var f=a*e[d]+o*e[2+u]+i*e[4+c]+s;l[0]=f<l[0]?f:l[0],l[1]=f>l[1]?f:l[1]}return l}}(e,t)}var u={newInstance:o.default.newInstance(c,"vtkCamera"),extend:c}},95548:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>T});var n=r(87765),a=r(41168),o=r(59474),i=r(4666),s={ColorSpace:{RGB:0,HSV:1,LAB:2,DIVERGING:3},Scale:{LINEAR:0,LOG10:1}};function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var c=s.ColorSpace,u=s.Scale,d=i.ZP.ScalarMappingTarget,f=a.default.vtkDebugMacro,p=a.default.vtkErrorMacro,g=a.default.vtkWarningMacro;function m(e,t){var r=e[0],n=e[1],a=e[2],o=Math.sqrt(r*r+n*n+a*a),i=o>.001?Math.acos(r/o):0,s=i>.001?Math.atan2(a,n):0;t[0]=o,t[1]=i,t[2]=s}function h(e,t){if(e[0]>=t-.1)return e[2];var r=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+r:e[2]-r}function v(e,t,r,n){var a=[],i=[];(0,o.H)(t,a),(0,o.H)(r,i);var s=[],l=[];m(a,s),m(i,l);var c=e;if(s[1]>.05&&l[1]>.05&&function(e,t){var r=e-t;for(r<0&&(r=-r);r>=2*Math.PI;)r-=2*Math.PI;return r>Math.PI&&(r=2*Math.PI-r),r}(s[2],l[2])>.33*Math.PI){var u=Math.max(s[0],l[0]);u=Math.max(88,u),e<.5?(l[0]=u,l[1]=0,l[2]=0,c*=2):(s[0]=u,s[1]=0,s[2]=0,c=2*c-1)}s[1]<.05&&l[1]>.05?s[2]=h(l,s[0]):l[1]<.05&&s[1]>.05&&(l[2]=h(s,l[0]));var d=[];d[0]=(1-c)*s[0]+c*l[0],d[1]=(1-c)*s[1]+c*l[1],d[2]=(1-c)*s[2]+c*l[2];var f=[];!function(e,t){var r=e[0],n=e[1],a=e[2];t[0]=r*Math.cos(n),t[1]=r*Math.sin(n)*Math.cos(a),t[2]=r*Math.sin(n)*Math.sin(a)}(d,f),(0,o.I)(f,n)}var y={clamping:!0,colorSpace:c.RGB,hSVWrap:!0,scale:u.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 b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,y,r),i.ZP.extend(e,t,r),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},a.default.obj(t.buildTime),a.default.get(e,t,["buildTime","mappingRange"]),a.default.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),a.default.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),a.default.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=function(){return t.nodes.length},e.addRGBPoint=function(t,r,n,a){return e.addRGBPointLong(t,r,n,a,.5,0)},e.addRGBPointLong=function(r,n,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(i<0||i>1)return p("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return p("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(r);var l={x:r,r:n,g:a,b:o,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();for(var c=0;c<t.nodes.length&&t.nodes[c].x!==r;c++);return c<t.nodes.length?c:-1},e.addHSVPoint=function(t,r,n,a){return e.addHSVPointLong(t,r,n,a,.5,0)},e.addHSVPointLong=function(t,r,n,a){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,l=[],c=[r,n,a];return(0,o.h)(c,l),e.addRGBPoint(t,l[0],l[1],l[2],i,s)},e.setNodes=function(r){if(t.nodes!==r){var n=JSON.stringify(t.nodes);t.nodes=r;var a=JSON.stringify(t.nodes);if(e.sortAndUpdateRange()||n!==a)return e.modified(),!0}return!1},e.sortAndUpdateRange=function(){var r=JSON.stringify(t.nodes);t.nodes.sort((function(e,t){return e.x-t.x}));var n=JSON.stringify(t.nodes),a=e.updateRange();return a||r===n?a:(e.modified(),!0)},e.updateRange=function(){var r=[2];r[0]=t.mappingRange[0],r[1]=t.mappingRange[1];var n=t.nodes.length;return n?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[n-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(r[0]!==t.mappingRange[0]||r[1]!==t.mappingRange[1])&&(e.modified(),!0)},e.removePoint=function(r){for(var n=0;n<t.nodes.length&&t.nodes[n].x!==r;n++);var a=n;if(n>=t.nodes.length)return-1;var o=!1;return t.nodes.splice(n,1),0!==n&&n!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.movePoint=function(r,n){if(r!==n){e.removePoint(n);for(var a=0;a<t.nodes.length;a++)if(t.nodes[a].x===r){t.nodes[a].x=n,e.sortAndUpdateRange();break}}},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addRGBSegment=function(r,n,a,o,i,s,l,c){e.sortAndUpdateRange();for(var u=0;u<t.nodes.length;)t.nodes[u].x>=r&&t.nodes[u].x<=i?t.nodes.splice(u,1):u++;e.addRGBPointLong(r,n,a,o,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=function(t,r,n,a,i,s,l,c){var u=[r,n,a],d=[s,l,c],f=[],p=[];(0,o.h)(u,f),(0,o.h)(d,p),e.addRGBSegment(t,f[0],f[1],f[2],i,p[0],p[1],p[2])},e.mapValue=function(t){var r=[];return e.getColor(t,r),[Math.floor(255*r[0]+.5),Math.floor(255*r[1]+.5),Math.floor(255*r[2]+.5),255]},e.getColor=function(r,n){if(t.indexedLookup){var a=e.getSize(),o=e.getAnnotatedValueIndexInternal(r);if(o<0||0===a)e.getNanColor(n);else{var i=[];e.getNodeValue(o%a,i),n[0]=i.r,n[1]=i.g,n[2]=i.b}}else e.getTable(r,r,1,n)},e.getRedValue=function(t){var r=[];return e.getColor(t,r),r[0]},e.getGreenValue=function(t){var r=[];return e.getColor(t,r),r[1]},e.getBlueValue=function(t){var r=[];return e.getColor(t,r),r[2]},e.getTable=function(r,n,a,i){var s=Number(r),l=Number(n);if((0,o.i)(s)||(0,o.i)(l))for(var d=0;d<a;d++)i[3*d+0]=t.nanColor[0],i[3*d+1]=t.nanColor[1],i[3*d+2]=t.nanColor[2];else{var f=0,g=t.nodes.length,m=0,h=0,y=0;0!==g&&(m=t.nodes[g-1].r,h=t.nodes[g-1].g,y=t.nodes[g-1].b);var b=0,T=0,C=0,x=[0,0,0],S=[0,0,0],P=0,w=0,O=[],I=t.scale===u.LOG10;I&&(I=t.mappingRange[0]>0);var A=0,R=0,E=0;I&&(A=Math.log10(s),R=Math.log10(l));for(var M=0;M<a;M++){var D=3*M;if(a>1?I?(E=A+M/(a-1)*(R-A),b=Math.pow(10,E)):b=s+M/(a-1)*(l-s):I?(E=.5*(A+R),b=Math.pow(10,E)):b=.5*(s+l),t.discretize){var V=t.mappingRange;if(b>=V[0]&&b<=V[1]){var L=t.numberOfValues,_=V[1]-V[0];if(L<=1)b=V[0]+_/2;else{var N=(b-V[0])/_,B=(0,o.J)(L*N);b=V[0]+B/(L-1)*_}}}for(;f<g&&b>t.nodes[f].x;)++f<g&&(T=t.nodes[f-1].x,C=t.nodes[f].x,I&&(T=Math.log10(T),C=Math.log10(C)),x[0]=t.nodes[f-1].r,S[0]=t.nodes[f].r,x[1]=t.nodes[f-1].g,S[1]=t.nodes[f].g,x[2]=t.nodes[f-1].b,S[2]=t.nodes[f].b,P=t.nodes[f-1].midpoint,w=t.nodes[f-1].sharpness,P<1e-5&&(P=1e-5),P>.99999&&(P=.99999));if(b>t.mappingRange[1])i[D]=0,i[D+1]=0,i[D+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(i[D]=t.aboveRangeColor[0],i[D+1]=t.aboveRangeColor[1],i[D+2]=t.aboveRangeColor[2]):(i[D]=m,i[D+1]=h,i[D+2]=y));else if(b<t.mappingRange[0]||(0,o.F)(b)&&b<0)i[D]=0,i[D+1]=0,i[D+2]=0,t.clamping&&(e.getUseBelowRangeColor()?(i[D]=t.belowRangeColor[0],i[D+1]=t.belowRangeColor[1],i[D+2]=t.belowRangeColor[2]):g>0&&(i[D]=t.nodes[0].r,i[D+1]=t.nodes[0].g,i[D+2]=t.nodes[0].b));else if(0===f&&(Math.abs(b-s)<1e-6||t.discretize))g>0?(i[D]=t.nodes[0].r,i[D+1]=t.nodes[0].g,i[D+2]=t.nodes[0].b):(i[D]=0,i[D+1]=0,i[D+2]=0);else{var F=0;if(F=(F=I?(E-T)/(C-T):(b-T)/(C-T))<P?.5*F/P:.5+.5*(F-P)/(1-P),w>.99){if(F<.5){i[D]=x[0],i[D+1]=x[1],i[D+2]=x[2];continue}i[D]=S[0],i[D+1]=S[1],i[D+2]=S[2];continue}if(w<.01){if(t.colorSpace===c.RGB)i[D]=(1-F)*x[0]+F*S[0],i[D+1]=(1-F)*x[1]+F*S[1],i[D+2]=(1-F)*x[2]+F*S[2];else if(t.colorSpace===c.HSV){var U=[],k=[];(0,o.G)(x,U),(0,o.G)(S,k),t.hSVWrap&&(U[0]-k[0]>.5||k[0]-U[0]>.5)&&(U[0]>k[0]?U[0]-=1:k[0]-=1);var G=[];G[0]=(1-F)*U[0]+F*k[0],G[0]<0&&(G[0]+=1),G[1]=(1-F)*U[1]+F*k[1],G[2]=(1-F)*U[2]+F*k[2],(0,o.h)(G,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]}else if(t.colorSpace===c.LAB){var W=[],z=[];(0,o.H)(x,W),(0,o.H)(S,z);var j=[];j[0]=(1-F)*W[0]+F*z[0],j[1]=(1-F)*W[1]+F*z[1],j[2]=(1-F)*W[2]+F*z[2],(0,o.I)(j,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]}else t.colorSpace===c.DIVERGING?(v(F,x,S,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]):p("ColorSpace set to invalid value.",t.colorSpace);continue}F<.5?F=.5*Math.pow(2*F,1+10*w):F>.5&&(F=1-.5*Math.pow(2*(1-F),1+10*w));var H=F*F,K=H*F,Z=2*K-3*H+1,X=-2*K+3*H,q=K-2*H+F,Y=K-H,$=void 0;if(t.colorSpace===c.RGB)for(var Q=0;Q<3;Q++)$=(1-w)*(S[Q]-x[Q]),i[D+Q]=Z*x[Q]+X*S[Q]+q*$+Y*$;else if(t.colorSpace===c.HSV){var J=[],ee=[];(0,o.G)(x,J),(0,o.G)(S,ee),t.hSVWrap&&(J[0]-ee[0]>.5||ee[0]-J[0]>.5)&&(J[0]>ee[0]?J[0]-=1:ee[0]-=1);for(var te=[],re=0;re<3;re++)$=(1-w)*(ee[re]-J[re]),te[re]=Z*J[re]+X*ee[re]+q*$+Y*$,0===re&&te[re]<0&&(te[re]+=1);(0,o.h)(te,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]}else if(t.colorSpace===c.LAB){var ne=[],ae=[];(0,o.H)(x,ne),(0,o.H)(S,ae);for(var oe=[],ie=0;ie<3;ie++)$=(1-w)*(ae[ie]-ne[ie]),oe[ie]=Z*ne[ie]+X*ae[ie]+q*$+Y*$;(0,o.I)(oe,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]}else t.colorSpace===c.DIVERGING?(v(F,x,S,O),i[D]=O[0],i[D+1]=O[1],i[D+2]=O[2]):p("ColorSpace set to invalid value.");for(var se=0;se<3;se++)i[D+se]=i[D+se]<0?0:i[D+se],i[D+se]=i[D+se]>1?1:i[D+se]}}}},e.getUint8Table=function(r,n,a){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==o)return t.table;if(0===t.nodes.length)return p("Attempting to lookup a value with no points in the function"),t.table;var i=o?4:3;t.tableSize===a&&t.tableWithAlpha===o||(t.table=new Uint8Array(a*i),t.tableSize=a,t.tableWithAlpha=o);var s=[];e.getTable(r,n,a,s);for(var l=0;l<a;l++)t.table[l*i+0]=Math.floor(255*s[3*l+0]+.5),t.table[l*i+1]=Math.floor(255*s[3*l+1]+.5),t.table[l*i+2]=Math.floor(255*s[3*l+2]+.5),o&&(t.table[l*i+3]=255);return t.buildTime.modified(),t.table},e.buildFunctionFromArray=function(r){e.removeAllPoints();for(var n=r.getNumberOfComponents(),a=0;a<r.getNumberOfTuples();a++)switch(n){case 3:t.nodes.push({x:a,r:r.getComponent(a,0),g:r.getComponent(a,1),b:r.getComponent(a,2),midpoint:.5,sharpness:0});break;case 4:t.nodes.push({x:r.getComponent(a,0),r:r.getComponent(a,1),g:r.getComponent(a,2),b:r.getComponent(a,3),midpoint:.5,sharpness:0});break;case 5:t.nodes.push({x:a,r:r.getComponent(a,0),g:r.getComponent(a,1),b:r.getComponent(a,2),midpoint:r.getComponent(a,4),sharpness:r.getComponent(a,5)});break;case 6:t.nodes.push({x:r.getComponent(a,0),r:r.getComponent(a,1),g:r.getComponent(a,2),b:r.getComponent(a,3),midpoint:r.getComponent(a,4),sharpness:r.getComponent(a,5)})}e.sortAndUpdateRange()},e.buildFunctionFromTable=function(r,n,a,o){var i=0;e.removeAllPoints(),a>1&&(i=(n-r)/(a-1));for(var s=0;s<a;s++){var l={x:r+i*s,r:o[3*s],g:o[3*s+1],b:o[3*s+2],sharpness:0,midpoint:.5};t.nodes.push(l)}e.sortAndUpdateRange()},e.getNodeValue=function(e,r){return e<0||e>=t.nodes.length?(p("Index out of range!"),-1):(r[0]=t.nodes[e].x,r[1]=t.nodes[e].r,r[2]=t.nodes[e].g,r[3]=t.nodes[e].b,r[4]=t.nodes[e].midpoint,r[5]=t.nodes[e].sharpness,1)},e.setNodeValue=function(r,n){if(r<0||r>=t.nodes.length)return p("Index out of range!"),-1;var a=t.nodes[r].x;return t.nodes[r].x=n[0],t.nodes[r].r=n[1],t.nodes[r].g=n[2],t.nodes[r].b=n[3],t.nodes[r].midpoint=n[4],t.nodes[r].sharpness=n[5],a!==n[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=function(){return t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216},e.getIndexedColor=function(t,r){var n=e.getSize();if(n>0&&t>=0){var a=[];e.getNodeValue(t%n,a);for(var o=0;o<3;++o)r[o]=a[o+1];r[3]=1}else e.getNanColor(r),r[3]=1},e.fillFromDataPointer=function(t,r){if(!(t<=0)&&r){e.removeAllPoints();for(var n=0;n<t;n++)e.addRGBPoint(r[4*n],r[4*n+1],r[4*n+2],r[4*n+3])}},e.setMappingRange=function(r,n){var a=[r,n],o=e.getRange();if(o[1]!==a[1]||o[0]!==a[0])if(a[1]!==a[0]){for(var i=(a[1]-a[0])/(o[1]-o[0]),s=a[0]-o[0]*i,l=0;l<t.nodes.length;++l)t.nodes[l].x=t.nodes[l].x*i+s;t.mappingRange[0]=a[0],t.mappingRange[1]=a[1],e.modified()}else p("attempt to set zero width color range")},e.adjustRange=function(r){var n=e.getRange(),a=[];n[0]<r[0]?(e.getColor(r[0],a),e.addRGBPoint(r[0],a[0],a[1],a[2])):(e.getColor(n[0],a),e.addRGBPoint(r[0],a[0],a[1],a[2])),n[1]>r[1]?(e.getColor(r[1],a),e.addRGBPoint(r[1],a[0],a[1],a[2])):(e.getColor(n[1],a),e.addRGBPoint(r[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(var o=0;o<t.nodes.length;)t.nodes[o].x>=r[0]&&t.nodes[o].x<=r[1]?t.nodes.splice(o,1):++o;return 1},e.estimateMinNumberOfSamples=function(t,r){var n=e.findMinimumXDistance();return Math.ceil((r-t)/n)},e.findMinimumXDistance=function(){if(t.nodes.length<2)return-1;for(var e=Number.MAX_VALUE,r=0;r<t.nodes.length-1;r++){var n=t.nodes[r+1].x-t.nodes[r].x;n<e&&(e=n)}return e},e.mapScalarsThroughTable=function(r,n,a,o){0!==e.getSize()?t.indexedLookup?e.mapDataIndexed(r,n,a,o):e.mapData(r,n,a,o):f("Transfer Function Has No Points!")},e.mapData=function(t,r,n,a){if(0!==e.getSize()){var o=Math.floor(255*e.getAlpha()+.5),i=t.getNumberOfTuples(),s=t.getNumberOfComponents(),l=r.getData(),c=t.getData(),u=[];if(n===d.RGBA)for(var f=0;f<i;f++){var p=c[f*s+a];e.getColor(p,u),l[4*f]=Math.floor(255*u[0]+.5),l[4*f+1]=Math.floor(255*u[1]+.5),l[4*f+2]=Math.floor(255*u[2]+.5),l[4*f+3]=o}if(n===d.RGB)for(var m=0;m<i;m++){var h=c[m*s+a];e.getColor(h,u),l[3*m]=Math.floor(255*u[0]+.5),l[3*m+1]=Math.floor(255*u[1]+.5),l[3*m+2]=Math.floor(255*u[2]+.5)}if(n===d.LUMINANCE)for(var v=0;v<i;v++){var y=c[v*s+a];e.getColor(y,u),l[v]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5)}if(n===d.LUMINANCE_ALPHA)for(var b=0;b<i;b++){var T=c[b*s+a];e.getColor(T,u),l[2*b]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5),l[2*b+1]=o}}else g("Transfer Function Has No Points!")},e.applyColorMap=function(r){var n=JSON.stringify(t.colorSpace);r.ColorSpace&&(t.colorSpace=c[r.ColorSpace.toUpperCase()],void 0===t.colorSpace&&(p("ColorSpace ".concat(r.ColorSpace," not supported, using RGB instead")),t.colorSpace=c.RGB));var a=n!==JSON.stringify(t.colorSpace),o=a||JSON.stringify(t.nanColor);if(r.NanColor)for(t.nanColor=[].concat(r.NanColor);t.nanColor.length<4;)t.nanColor.push(1);var i=(a=a||o!==JSON.stringify(t.nanColor))||JSON.stringify(t.nodes);if(r.RGBPoints){var s=r.RGBPoints.length;t.nodes=[];for(var l=0;l<s;l+=4)t.nodes.push({x:r.RGBPoints[l],r:r.RGBPoints[l+1],g:r.RGBPoints[l+2],b:r.RGBPoints[l+3],midpoint:.5,sharpness:0})}var u=e.sortAndUpdateRange(),d=!u&&(a||i!==JSON.stringify(t.nodes));return d&&e.modified(),u||d}}(e,t)}var T=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(b,"vtkColorTransferFunction"),extend:b},s)},93702:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>A});var n=r(87765),a=r(41168),o=r(21924),i=r(54131),s=r(96372),l=r(1600),c=r(59474),u=r(77415),d=r(84418),f=r(85687),p=r(14418),g=r(18603);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v=p.ZP.FieldAssociations,y=d.Z.staticOffsetAPI,b=d.Z.otherStaticMethods,T=f.ZP.ColorMode,C=f.ZP.ScalarMode,x=f.ZP.GetArray,S=u.ZP.VectorMode,P=i.ZP.VtkDataTypes;function w(e){return function(){return a.default.vtkErrorMacro("vtkMapper::".concat(e," - NOT IMPLEMENTED"))}}var O={colorMapColors:null,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function I(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,O,r),o.Z.extend(e,t,r),a.default.get(e,t,["colorCoordinates","colorMapColors","colorTextureMap"]),a.default.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","selectionWebGLIdsToVTKIds","static","useLookupTableScalarRange","customShaderAttributes"]),a.default.setGetArray(e,t,["scalarRange"],2),d.Z.implementCoincidentTopologyMethods(e,t),function(e,t){t.classHierarchy.push("vtkMapper"),e.getBounds=function(){var r=e.getInputData();return r?(t.static||e.update(),t.bounds=r.getBounds()):t.bounds=(0,c.N)(),t.bounds},e.setForceCompileOnly=function(e){t.forceCompileOnly=e},e.createDefaultLookupTable=function(){t.lookupTable=l.ZP.newInstance()},e.getColorModeAsString=function(){return a.default.enumToString(T,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return a.default.enumToString(C,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,r,n,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(r===C.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(r===C.USE_POINT_DATA)i=e.getPointData().getScalars();else if(r===C.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(r===C.USE_POINT_FIELD_DATA){var l=e.getPointData();i=n===x.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(r===C.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=n===x.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(r===C.USE_FIELD_DATA){var u=e.getFieldData();i=n===x.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.mapScalars=function(r,n){var a=e.getAbstractScalars(r,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!a)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);var o="".concat(e.getMTime()).concat(a.getMTime()).concat(n);if(t.colorBuildString!==o){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(r))e.mapScalarsToTexture(a,n);else{t.colorCoordinates=null,t.colorTextureMap=null;var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,t.fieldDataTupleId))}t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(n)}},e.scalarToTextureCoordinate=function(e,t,r){var n=.5,a=1;return(0,c.i)(e)||(a=.49,(n=(e-t)*r)>1e3?n=1e3:n<-1e3&&(n=-1e3)),{texCoordS:n,texCoordT:a}},e.createColorTextureCoordinates=function(t,r,n,a,o,i,s,c,u){var d=(i[1]-i[0])/c,f=[];f[0]=i[0]-d,f[1]=i[1]+d;var p=1/(f[1]-f[0]),g=r.getData(),m=t.getData(),h=0,v=0;if(o<0||o>=a)for(var y=0;y<n;++y){for(var b=0,T=0;T<a;++T)b+=m[h]*m[h],h++;var C=Math.sqrt(b);u&&(C=l.ZP.applyLogScale(C,s,i));var x=e.scalarToTextureCoordinate(C,f[0],p);g[v]=x.texCoordS,g[v+1]=x.texCoordT,v+=2}else{h+=o;for(var S=0;S<n;++S){var P=m[h];u&&(P=l.ZP.applyLogScale(P,s,i));var w=e.scalarToTextureCoordinate(P,f[0],p);g[v]=w.texCoordS,g[v+1]=w.texCoordT,v+=2,h+=a}}},e.mapScalarsToTexture=function(r,n){var a=t.lookupTable.getRange(),o=t.lookupTable.usingLogScale();o&&l.ZP.getLogRange(a,a);var c=t.lookupTable.getAlpha();if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==n){t.lookupTable.setAlpha(n),t.colorTextureMap=null,t.lookupTable.build();var u=t.lookupTable.getNumberOfAvailableColors();u>4094&&(u=4094),u+=2;for(var d=(a[1]-a[0])/(u-1-2),f=new Float64Array(2*u),p=0;p<u;++p)f[p]=a[0]+p*d-d,o&&(f[p]=Math.pow(10,f[p]));for(var g=0;g<u;++g)f[g+u]=NaN;t.colorTextureMap=s.ZP.newInstance(),t.colorTextureMap.setExtent(0,u-1,0,1,0,0);var m=i.ZP.newInstance({numberOfComponents:1,values:f});t.colorTextureMap.getPointData().setScalars(t.lookupTable.mapScalars(m,t.colorMode,0)),t.lookupTable.setAlpha(c)}if(!t.colorCoordinates||e.getMTime()>t.colorCoordinates.getMTime()||e.getInputData(0).getMTime()>t.colorCoordinates.getMTime()||t.lookupTable.getMTime()>t.colorCoordinates.getMTime()){t.colorCoordinates=null;var h=r.getNumberOfComponents(),v=r.getNumberOfTuples();t.colorCoordinates=i.ZP.newInstance({numberOfComponents:2,values:new Float32Array(2*v)});var y=t.lookupTable.getVectorComponent();t.lookupTable.getVectorMode()===S.MAGNITUDE&&r.getNumberOfComponents()>1&&(y=-1),e.createColorTextureCoordinates(r,t.colorCoordinates,v,h,y,a,t.lookupTable.getRange(),t.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,o)}},e.getIsOpaque=function(){var r=e.getInputData(),n=e.getAbstractScalars(r,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==n)return!0;var a=e.getLookupTable();return!a||(a.build(),a.areScalarsOpaque(n,t.colorMode,-1))},e.canUseTextureMapForColoring=function(r){if(!t.interpolateScalarsBeforeMapping)return!1;if(t.lookupTable&&t.lookupTable.getIndexedLookup())return!1;var n=e.getAbstractScalars(r,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName),a=n.scalars;return!(!a||n.cellFlag||t.colorMode===T.DEFAULT&&a.getDataType()===P.UNSIGNED_CHAR||t.colorMode===T.DIRECT_SCALARS)},e.clearColorArrays=function(){t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var r=t.lookupTable.getMTime();e=r>e?r:e}return e},e.getPrimitiveCount=function(){var t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=w("AcquireInvertibleLookupTable"),e.valueToColor=w("ValueToColor"),e.colorToValue=w("ColorToValue"),e.useInvertibleColorFor=w("UseInvertibleColorFor"),e.clearInvertibleColor=w("ClearInvertibleColor"),e.processSelectorPixelBuffers=function(e,r){if(e&&t.selectionWebGLIdsToVTKIds&&t.populateSelectionSettings){var n=e.getRawPixelBuffer(g.X.ID_LOW24),a=e.getRawPixelBuffer(g.X.ID_HIGH24),o=e.getCurrentPass(),i=e.getFieldAssociation(),s=null;i===v.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===v.FIELD_ASSOCIATION_CELLS&&(s=t.selectionWebGLIdsToVTKIds.cells),s&&r.forEach((function(t){if(o===g.X.ID_LOW24){var r=0;a&&(r+=a[t],r*=256),r+=n[t+2],r*=256,r+=n[t+1],r*=256,r+=n[t];var i=s[r],l=e.getPixelBuffer(g.X.ID_LOW24);l[t]=255&i,l[t+1]=(65280&i)>>8,l[t+2]=(16711680&i)>>16}else if(o===g.X.ID_HIGH24&&a){var c=0;c+=a[t],c*=256,c+=n[t],c*=256,c+=n[t+1],c*=256,c+=n[t+2];var u=s[c];e.getPixelBuffer(g.X.ID_HIGH24)[t]=(4278190080&u)>>24}}))}}}(e,t)}var A=h(h(h({newInstance:a.default.newInstance(I,"vtkMapper"),extend:I},y),b),f.ZP)},84418:(e,t,r)=>{"use strict";r.d(t,{Z:()=>f});var n=1,a=0,o=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function i(){a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0}var s={getResolveCoincidentTopologyAsString:function(){return o[a]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return n},getResolveCoincidentTopology:function(){return a},setResolveCoincidentTopology:i,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){n=e},setResolveCoincidentTopologyToDefault:function(){i(0)},setResolveCoincidentTopologyToOff:function(){i(0)},setResolveCoincidentTopologyToPolygonOffset:function(){i(1)}},l=r(41168);function c(e,t,r){r.forEach((function(r){e["get".concat(r.method)]=function(){return t[r.key]},e["set".concat(r.method)]=function(e,n){t[r.key]={factor:e,offset:n}}}))}var u=["Polygon","Line","Point"],d={};c(d,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},u.map((function(e){return{key:e,method:"ResolveCoincidentTopology".concat(e,"OffsetParameters")}})));var f={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),l.default.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(s).forEach((function(t){e[t]=s[t]})),Object.keys(d).forEach((function(t){e[t]=d[t]})),c(e,t.topologyOffset,u.map((function(e){return{key:e,method:"RelativeCoincidentTopology".concat(e,"OffsetParameters")}}))),e.getCoincidentTopologyPolygonOffsetParameters=function(){var t=d.getResolveCoincidentTopologyPolygonOffsetParameters(),r=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+r.factor,offset:t.offset+r.offset}},e.getCoincidentTopologyLineOffsetParameters=function(){var t=d.getResolveCoincidentTopologyLineOffsetParameters(),r=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+r.factor,offset:t.offset+r.offset}},e.getCoincidentTopologyPointOffsetParameter=function(){var t=d.getResolveCoincidentTopologyPointOffsetParameters(),r=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+r.factor,offset:t.offset+r.offset}}},staticOffsetAPI:d,otherStaticMethods:s,CATEGORIES:u}},85687:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>n});var n={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}}},54873:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>d});var n=r(87765),a=r(41168),o={CoordinateSystem:{DISPLAY:0,WORLD:1}};function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var s=o.CoordinateSystem;function l(e){return function(){return a.default.vtkErrorMacro("vtkProp::".concat(e," - NOT IMPLEMENTED"))}}var c={allocatedRenderTime:10,coordinateSystem:s.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function u(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,c,r),a.default.obj(e,t),a.default.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),a.default.setGet(e,t,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),a.default.moveToProtected(e,t,["parentProp"]),function(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=function(){for(var e=t.mtime,r=0;r<t.textures.length;++r){var n=t.textures[r].getMTime();n>e&&(e=n)}return e},e.processSelectorPixelBuffers=function(e,t){},e.getNestedProps=function(){return null},e.getActors=function(){return[]},e.getActors2D=function(){return[]},e.getVolumes=function(){return[]},e.pick=l("pick"),e.hasKey=l("hasKey"),e.getNestedVisibility=function(){return t.visibility&&(!t._parentProp||t._parentProp.getNestedVisibility())},e.getNestedPickable=function(){return t.pickable&&(!t._parentProp||t._parentProp.getNestedPickable())},e.getNestedDragable=function(){return t.dragable&&(!t._parentProp||t._parentProp.getNestedDragable())},e.getRedrawMTime=function(){return t.mtime},e.setEstimatedRenderTime=function(e){t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=function(){t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=function(e){t.estimatedRenderTime+=e},e.setAllocatedRenderTime=function(e){t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=function(){return!1},e.getTextures=function(){return t.textures},e.hasTexture=function(e){return-1!==t.textures.indexOf(e)},e.addTexture=function(r){r&&!e.hasTexture(r)&&(t.textures=t.textures.concat(r),e.modified())},e.removeTexture=function(r){var n=t.textures.filter((function(e){return e!==r}));t.textures.length!==n.length&&(t.textures=n,e.modified())},e.removeAllTextures=function(){t.textures=[],e.modified()},e.setCoordinateSystemToWorld=function(){return e.setCoordinateSystem(s.WORLD)},e.setCoordinateSystemToDisplay=function(){return e.setCoordinateSystem(s.DISPLAY)}}(e,t)}var d=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(u,"vtkProp"),extend:u},o)},49445:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>u});var n=r(45451),a=r(41168),o=r(91382),i=r(59474),s=r(54873);var l={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function c(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,l,r),s.ZP.extend(e,t,r),t.matrixMTime={},a.default.obj(t.matrixMTime),a.default.get(e,t,["bounds","isIdentity"]),a.default.getArray(e,t,["orientation"]),a.default.setGetArray(e,t,["origin","position","scale"],3),t.matrix=n._E.identity(new Float64Array(16)),t.rotation=n._E.identity(new Float64Array(16)),t.userMatrix=n._E.identity(new Float64Array(16)),t.transform=null,function(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=function(r){t.position=t.position.map((function(e,t){return e+r[t]})),e.modified()},e.getOrientationWXYZ=function(){var e=n.gf.create();n._E.getRotation(e,t.rotation);var r=new Float64Array(3),a=n.gf.getAxisAngle(r,e);return[(0,i.A)(a),r[0],r[1],r[2]]},e.rotateX=function(r){0!==r&&(n._E.rotateX(t.rotation,t.rotation,(0,i.r)(r)),e.modified())},e.rotateY=function(r){0!==r&&(n._E.rotateY(t.rotation,t.rotation,(0,i.r)(r)),e.modified())},e.rotateZ=function(r){0!==r&&(n._E.rotateZ(t.rotation,t.rotation,(0,i.r)(r)),e.modified())},e.rotateWXYZ=function(r,a,o,s){if(0!==r&&(0!==a||0!==o||0!==s)){var l=(0,i.r)(r),c=n.gf.create();n.gf.setAxisAngle(c,[a,o,s],l);var u=new Float64Array(16);n._E.fromQuat(u,c),n._E.multiply(t.rotation,t.rotation,u),e.modified()}},e.setOrientation=function(r,a,o){return(r!==t.orientation[0]||a!==t.orientation[1]||o!==t.orientation[2])&&(t.orientation=[r,a,o],n._E.identity(t.rotation),e.rotateZ(o),e.rotateX(r),e.rotateY(a),e.modified(),!0)},e.setUserMatrix=function(r){return!(0,i.a)(t.userMatrix,r)&&(n._E.copy(t.userMatrix,r),e.modified(),!0)},e.getMatrix=function(){return e.computeMatrix(),t.matrix},e.computeMatrix=function(){if(e.getMTime()>t.matrixMTime.getMTime()){n._E.identity(t.matrix),t.userMatrix&&n._E.multiply(t.matrix,t.matrix,t.userMatrix),n._E.translate(t.matrix,t.matrix,t.origin),n._E.translate(t.matrix,t.matrix,t.position),n._E.multiply(t.matrix,t.matrix,t.rotation),n._E.scale(t.matrix,t.matrix,t.scale),n._E.translate(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),n._E.transpose(t.matrix,t.matrix),t.isIdentity=!0;for(var r=0;r<4;++r)for(var a=0;a<4;++a)(r===a?1:0)!==t.matrix[r+4*a]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=function(){return o.ZP.getCenter(t.bounds)},e.getLength=function(){return o.ZP.getLength(t.bounds)},e.getXRange=function(){return o.ZP.getXRange(t.bounds)},e.getYRange=function(){return o.ZP.getYRange(t.bounds)},e.getZRange=function(){return o.ZP.getZRange(t.bounds)},e.getUserMatrix=function(){return t.userMatrix},e.onModified((function(){e.computeMatrix()}))}(e,t)}var u={newInstance:a.default.newInstance(c,"vtkProp3D"),extend:c}},98589:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>f});var n=r(87765),a=r(41168),o=r(42695);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var s=o.ZP.Representation,l=o.ZP.Interpolation;function c(e){return function(){return a.default.vtkErrorMacro("vtkProperty::".concat(e," - NOT IMPLEMENTED"))}}var u={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:l.GOURAUD,representation:s.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function d(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,u,r),a.default.obj(e,t),a.default.setGet(e,t,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),a.default.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),function(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=function(r,n,a){Array.isArray(r)?t.color[0]===r[0]&&t.color[1]===r[1]&&t.color[2]===r[2]||(t.color[0]=r[0],t.color[1]=r[1],t.color[2]=r[2],e.modified()):t.color[0]===r&&t.color[1]===n&&t.color[2]===a||(t.color[0]=r,t.color[1]=n,t.color[2]=a,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=c("ComputeCompositeColor"),e.getColor=function(){var e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(var r=0;r<3;r++)t.color[r]=e*(t.ambient*t.ambientColor[r]+t.diffuse*t.diffuseColor[r]+t.specular*t.specularColor[r]);return[].concat(t.color)},e.setSpecularPower=function(r){var n=1/Math.max(1,r);t.roughness===n&&t.specularPower===r||(t.specularPower=r,t.roughness=n,e.modified())},e.addShaderVariable=c("AddShaderVariable"),e.setInterpolationToFlat=function(){return e.setInterpolation(l.FLAT)},e.setInterpolationToGouraud=function(){return e.setInterpolation(l.GOURAUD)},e.setInterpolationToPhong=function(){return e.setInterpolation(l.PHONG)},e.getInterpolationAsString=function(){return a.default.enumToString(l,t.interpolation)},e.setRepresentationToWireframe=function(){return e.setRepresentation(s.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(s.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(s.POINTS)},e.getRepresentationAsString=function(){return a.default.enumToString(s,t.representation)}}(e,t)}var f=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:a.default.newInstance(d,"vtkProperty"),extend:d},o.ZP)},42695:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>o,hX:()=>a});var n={FLAT:0,GOURAUD:1,PHONG:2},a={POINTS:0,WIREFRAME:1,SURFACE:2},o={Shading:n,Representation:a,Interpolation:n}},32198:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>x});var n=r(45451),a=r(41168),o=r(34535),i=r(59474);var s={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function l(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,s,r),a.default.obj(e,t),a.default.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),a.default.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),function(e,t){t.classHierarchy.push("vtkLight");var r=new Float64Array(3);e.getTransformedPosition=function(){return t.transformMatrix?n.R3.transformMat4(r,t.position,t.transformMatrix):n.R3.set(r,t.position[0],t.position[1],t.position[2]),r},e.getTransformedFocalPoint=function(){return t.transformMatrix?n.R3.transformMat4(r,t.focalPoint,t.transformMatrix):n.R3.set(r,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),r},e.getDirection=function(){return t.directionMTime<t.mtime&&(n.R3.sub(t.direction,t.focalPoint,t.position),(0,i.l)(t.direction),t.directionMTime=t.mtime),t.direction},e.setDirection=function(e){var r=new Float64Array(3);n.R3.sub(r,t.position,e),t.focalPoint=r},e.setDirectionAngle=function(t,r){var n=(0,i.r)(t),a=(0,i.r)(r);e.setPosition(Math.cos(n)*Math.sin(a),Math.sin(n),Math.cos(n)*Math.cos(a)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=function(){e.setLightType("HeadLight")},e.setLightTypeToCameraLight=function(){e.setLightType("CameraLight")},e.setLightTypeToSceneLight=function(){e.setTransformMatrix(null),e.setLightType("SceneLight")},e.lightTypeIsHeadLight=function(){return"HeadLight"===t.lightType},e.lightTypeIsSceneLight=function(){return"SceneLight"===t.lightType},e.lightTypeIsCameraLight=function(){return"CameraLight"===t.lightType}}(e,t)}var c={newInstance:a.default.newInstance(l,"vtkLight"),extend:l,LIGHT_TYPES:["HeadLight","CameraLight","SceneLight"]},u=a.default.vtkErrorMacro;function d(e,t){function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);var n=e.getNestedProps();if(n&&n.length)for(var a=0;a<n.length;a++)r(n[a],t);return t}var n;t.classHierarchy.push("vtkViewport"),e.getViewProps=function(){return t.props},e.hasViewProp=function(e){return t.props.includes(e)},e.addViewProp=function(r){r&&!e.hasViewProp(r)&&t.props.push(r)},e.removeViewProp=function(e){var r=t.props.filter((function(t){return t!==e}));t.props.length!==r.length&&(t.props=r)},e.removeAllViewProps=function(){t.props=[]},e.getViewPropsWithNestedProps=function(){for(var e=[],n=0;n<t.props.length;n++)r(t.props[n],e);return e},e.addActor2D=e.addViewProp,e.removeActor2D=function(t){e.removeViewProp(t)},e.getActors2D=function(){return t.actors2D=[],t.props.forEach((function(e){t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D},e.displayToView=function(){return u("call displayToView on your view instead")},e.viewToDisplay=function(){return u("callviewtodisplay on your view instead")},e.getSize=function(){return u("call getSize on your View instead")},e.normalizedDisplayToProjection=function(t,r,n){var a=e.normalizedDisplayToNormalizedViewport(t,r,n);return e.normalizedViewportToProjection(a[0],a[1],a[2])},e.normalizedDisplayToNormalizedViewport=function(e,r,n){var a=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/a[0],(r-t.viewport[1])/a[1],n]},e.normalizedViewportToProjection=function(e,t,r){return[2*e-1,2*t-1,2*r-1]},e.projectionToNormalizedDisplay=function(t,r,n){var a=e.projectionToNormalizedViewport(t,r,n);return e.normalizedViewportToNormalizedDisplay(a[0],a[1],a[2])},e.normalizedViewportToNormalizedDisplay=function(e,r,n){var a=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*a[0]+t.viewport[0],r*a[1]+t.viewport[1],n]},e.projectionToNormalizedViewport=function(e,t,r){return[.5*(e+1),.5*(t+1),.5*(r+1)]},e.PickPropFrom=(n="PickPropFrom",function(){return u("vtkViewport::".concat(n," - NOT IMPLEMENTED"))})}var f={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,f,r),a.default.obj(e,t),a.default.event(e,t,"event"),a.default.setGetArray(e,t,["viewport"],4),a.default.setGetArray(e,t,["background","background2"],3),d(e,t)}var g={newInstance:a.default.newInstance(p,"vtkViewport"),extend:p},m=r(91382),h=a.eR,v=a.E0,y=a.t7;function b(e){return function(){return v("vtkRenderer::".concat(e," - NOT IMPLEMENTED"))}}var T={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:(0,i.N)(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function C(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(Object.assign(t,T,r),g.extend(e,t,r),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1),(0,a.U2)(e,t,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),(0,a.g2)(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),(0,a.c$)(e,t,["actors","volumes","lights"]),(0,a.DV)(e,t,["background"],4,1),(0,a.B6)(e,t,["renderWindow"]),function(e,t){t.classHierarchy.push("vtkRenderer");var r={type:"ComputeVisiblePropBoundsEvent",renderer:e},a={type:"ResetCameraClippingRangeEvent",renderer:e},s={type:"ResetCameraEvent",renderer:e};e.updateCamera=function(){return t.activeCamera||(h("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0},e.updateLightsGeometryToFollowCamera=function(){var r=e.getActiveCameraAndResetIfCreated();t.lights.forEach((function(e){e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(r.getPositionByReference()),e.setFocalPointFrom(r.getFocalPointByReference()),e.modified(r.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(r.getCameraLightTransformMatrix(n._E.create())):v("light has unknown light type",e.get()))}))},e.updateLightGeometry=function(){return!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera()},e.allocateTime=b("allocateTime"),e.updateGeometry=b("updateGeometry"),e.getVTKWindow=function(){return t._renderWindow},e.setLayer=function(r){h(e.getClassName(),e,"setting Layer to ",r),t.layer!==r&&(t.layer=r,e.modified()),e.setPreserveColorBuffer(!!r)},e.setActiveCamera=function(r){return t.activeCamera!==r&&(t.activeCamera=r,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:r}),!0)},e.makeCamera=function(){var t=o.ZP.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=function(){return t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera},e.getActiveCameraAndResetIfCreated=function(){return t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera},e.getActors=function(){return t.actors=[],t.props.forEach((function(e){t.actors=t.actors.concat(e.getActors())})),t.actors},e.addActor=e.addViewProp,e.removeActor=function(r){t.actors=t.actors.filter((function(e){return e!==r})),e.removeViewProp(r),e.modified()},e.removeAllActors=function(){e.getActors().forEach((function(t){e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=function(){return t.volumes=[],t.props.forEach((function(e){t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes},e.addVolume=e.addViewProp,e.removeVolume=function(r){t.volumes=t.volumes.filter((function(e){return e!==r})),e.removeViewProp(r),e.modified()},e.removeAllVolumes=function(){e.getVolumes().forEach((function(t){e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=function(e){return t.lights.includes(e)},e.addLight=function(r){r&&!e.hasLight(r)&&(t.lights.push(r),e.modified())},e.removeLight=function(r){t.lights=t.lights.filter((function(e){return e!==r})),e.modified()},e.removeAllLights=function(){t.lights=[],e.modified()},e.setLightCollection=function(r){t.lights=r,e.modified()},e.makeLight=c.newInstance,e.createLight=function(){t.automaticLightCreation&&(t._createdLight&&(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=function(t,r,n,a){var o=e.normalizedDisplayToProjection(t,r,n);return o=e.projectionToView(o[0],o[1],o[2],a),e.viewToWorld(o[0],o[1],o[2])},e.worldToNormalizedDisplay=function(t,r,n,a){var o=e.worldToView(t,r,n);return o=e.viewToProjection(o[0],o[1],o[2],a),e.projectionToNormalizedDisplay(o[0],o[1],o[2])},e.viewToWorld=function(e,r,a){if(null===t.activeCamera)return v("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var o=t.activeCamera.getViewMatrix();n._E.invert(o,o),n._E.transpose(o,o);var i=new Float64Array([e,r,a]);return n.R3.transformMat4(i,i,o),i},e.projectionToView=function(e,r,a,o){if(null===t.activeCamera)return v("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];var i=t.activeCamera.getProjectionMatrix(o,-1,1);n._E.invert(i,i),n._E.transpose(i,i);var s=new Float64Array([e,r,a]);return n.R3.transformMat4(s,s,i),s},e.worldToView=function(e,r,a){if(null===t.activeCamera)return v("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var o=t.activeCamera.getViewMatrix();n._E.transpose(o,o);var i=new Float64Array([e,r,a]);return n.R3.transformMat4(i,i,o),i},e.viewToProjection=function(e,r,a,o){if(null===t.activeCamera)return v("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];var i=t.activeCamera.getProjectionMatrix(o,-1,1);n._E.transpose(i,i);var s=new Float64Array([e,r,a]);return n.R3.transformMat4(s,s,i),s},e.computeVisiblePropBounds=function(){t.allBounds[0]=m.ZP.INIT_BOUNDS[0],t.allBounds[1]=m.ZP.INIT_BOUNDS[1],t.allBounds[2]=m.ZP.INIT_BOUNDS[2],t.allBounds[3]=m.ZP.INIT_BOUNDS[3],t.allBounds[4]=m.ZP.INIT_BOUNDS[4],t.allBounds[5]=m.ZP.INIT_BOUNDS[5];var n=!0;e.invokeEvent(r);for(var a=0;a<t.props.length;++a){var o=t.props[a];if(o.getVisibility()&&o.getUseBounds()){var s=o.getBounds();s&&(0,i.P)(s)&&(n=!1,s[0]<t.allBounds[0]&&(t.allBounds[0]=s[0]),s[1]>t.allBounds[1]&&(t.allBounds[1]=s[1]),s[2]<t.allBounds[2]&&(t.allBounds[2]=s[2]),s[3]>t.allBounds[3]&&(t.allBounds[3]=s[3]),s[4]<t.allBounds[4]&&(t.allBounds[4]=s[4]),s[5]>t.allBounds[5]&&(t.allBounds[5]=s[5]))}}return n&&((0,i.u)(t.allBounds),h("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){var r=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds(),n=[0,0,0];if(!(0,i.P)(r))return h("Cannot reset camera!"),!1;var a=null;if(!e.getActiveCamera())return v("Trying to reset non-existent camera"),!1;a=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),n[0]=(r[0]+r[1])/2,n[1]=(r[2]+r[3])/2,n[2]=(r[4]+r[5])/2;var o=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4],u=(o*=o)+(l*=l)+(c*=c);u=0===u?1:u,u=.5*Math.sqrt(u);var d=(0,i.r)(t.activeCamera.getViewAngle()),f=u,p=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs((0,i.d)(g,a))>.999&&(y("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(n[0],n[1],n[2]),t.activeCamera.setPosition(n[0]+p*a[0],n[1]+p*a[1],n[2]+p*a[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(f),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-n[0],-n[1],-n[2]),e.invokeEvent(s),!0},e.resetCameraClippingRange=function(){var r=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds();if(!(0,i.P)(r))return h("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return v("Trying to reset clipping range of non-existent camera"),!1;var n=t.activeCamera.computeClippingRange(r),o=0;if(t.activeCamera.getParallelProjection())o=.2*t.activeCamera.getParallelScale();else{var s=(0,i.r)(t.activeCamera.getViewAngle());o=.2*Math.tan(s/2)*n[1]}return n[1]-n[0]<o&&(o=o-n[1]+n[0],n[1]+=o/2,n[0]-=o/2),n[0]<0&&(n[0]=0),n[0]=.99*n[0]-(n[1]-n[0])*t.clippingRangeExpansion,n[1]=1.01*n[1]+(n[1]-n[0])*t.clippingRangeExpansion,n[0]=n[0]>=n[1]?.01*n[1]:n[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),n[0]<t.nearClippingPlaneTolerance*n[1]&&(n[0]=t.nearClippingPlaneTolerance*n[1]),t.activeCamera.setClippingRange(n[0],n[1]),e.invokeEvent(a),!1},e.setRenderWindow=function(e){e!==t._renderWindow&&(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=function(){return t.props.filter((function(e){return e.getVisibility()})).length},e.visibleVolumeCount=e.visibleActorCount,e.getMTime=function(){var e=t.mtime,r=t.activeCamera?t.activeCamera.getMTime():0;r>e&&(e=r);var n=t._createdLight?t._createdLight.getMTime():0;return n>e&&(e=n),e},e.getTransparent=function(){return!!t.preserveColorBuffer},e.isActiveCameraCreated=function(){return!!t.activeCamera}}(e,t)}var x={newInstance:(0,a.WL)(C,"vtkRenderer"),extend:C}},64725:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>c});var n=r(87765),a=r(78826),o=r(41168);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var s={image:null,canvas:null,jsImageData:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function l(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,s,r),o.default.obj(e,t),o.default.algo(e,t,6,0),o.default.get(e,t,["canvas","image","jsImageData","imageLoaded","resizable"]),o.default.setGet(e,t,["repeat","edgeClamp","interpolate","mipLevel"]),function(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=function(){t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=function(r){t.jsImageData!==r&&(null!==r&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null),t.jsImageData=r,t.imageLoaded=!0,e.modified())},e.setCanvas=function(r){t.canvas!==r&&(null!==r&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.jsImageData=null),t.canvas=r,e.modified())},e.setImage=function(r){t.image!==r&&(null!==r&&(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null),t.image=r,t.imageLoaded=!1,r.complete?e.imageLoaded():r.addEventListener("load",e.imageLoaded),e.modified())},e.getDimensionality=function(){var r=0,n=0,a=1;if(e.getInputData()){var o=e.getInputData();r=o.getDimensions()[0],n=o.getDimensions()[1],a=o.getDimensions()[2]}return t.jsImageData&&(r=t.jsImageData.width,n=t.jsImageData.height),t.canvas&&(r=t.canvas.width,n=t.canvas.height),t.image&&(r=t.image.width,n=t.image.height),(r>1)+(n>1)+(a>1)},e.getInputAsJsImageData=function(){if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData();if(t.canvas)return t.canvas.getContext("2d").getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){var r=document.createElement("canvas");r.width=t.image.width,r.height=t.image.height;var n=r.getContext("2d");return n.translate(0,r.height),n.scale(1,-1),n.drawImage(t.image,0,0,t.image.width,t.image.height),n.getImageData(0,0,r.width,r.height)}return null}}(e,t)}var c=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({newInstance:o.default.newInstance(l,"vtkTexture"),extend:l},{generateMipmaps:function(e,t,r,n){for(var o=[1,2,1],i=e.length/(t*r),s=t,l=r,c=e,u=[c],d=0;d<n;d++){var f=(0,a.Z)(c);s/=2,c=new Uint8ClampedArray(s*(l/=2)*i);for(var p=i*s,g=0,m=0;m<c.length;m+=i){m%p==0&&(g+=2*i*s);for(var h=0;h<i;h++){var v=f[g+h];v+=f[g+i+h],v+=f[g-2*p+h],v+=f[g-2*p+i+h],v/=4,c[m+h]=v}g+=2*i}for(var y=(0,a.Z)(c),b=0;b<c.length;b+=i)for(var T=0;T<i;T++){for(var C=-(o.length-1)/2,x=4,S=0,P=0;P<o.length;P++){var w=b+T+C*i,O=w%p-(b+T)%p;O>i&&(w+=p),O<-i&&(w-=p),y[w]?S+=y[w]*o[P]:x-=o[P],C+=1}c[b+T]=S/x}y=(0,a.Z)(c);for(var I=0;I<c.length;I+=i)for(var A=0;A<i;A++){for(var R=-(o.length-1)/2,E=4,M=0,D=0;D<o.length;D++){var V=I+A+R*p;y[V]?M+=y[V]*o[D]:E-=o[D],R+=1}c[I+A]=M/E}u.push(c)}return u}})},18603:(e,t,r)=>{"use strict";r.d(t,{X:()=>n,Z:()=>a});var n={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3},a={PassTypes:n}},41168:(e,t,r)=>{"use strict";r.d(t,{Uw:()=>Q,tS:()=>te,default:()=>ie,U2:()=>z,c$:()=>X,B6:()=>$,WL:()=>ee,B5:()=>L,MR:()=>_,j6:()=>G,t8:()=>K,g2:()=>Z,DV:()=>Y,eR:()=>R,E0:()=>E,t7:()=>M});var n=r(16976),a=r(79133),o=r(87765),i=r(78826),s=r(33937),l=r(54833);function c(e,t,r){return c=(0,l.Z)()?Reflect.construct.bind():function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&(0,s.Z)(a,r.prototype),a},c.apply(null,arguments)}var u=r(25686),d=r.n(u),f=r(99824),p=r(72688),g=r(75755),m=r(69721);function h(){return h="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,m.Z)(e)););return e}(e,t);if(n){var a=Object.getOwnPropertyDescriptor(n,t);return a.get?a.get.call(arguments.length<3?e:r):a.value}},h.apply(this,arguments)}var v=r(57652),y=r(36639);function b(e){var t="function"==typeof Map?new Map:void 0;return b=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return c(e,arguments,(0,m.Z)(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,s.Z)(n,e)},b(e)}function T(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,m.Z)(e);if(t){var a=(0,m.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var C=function(e){(0,v.Z)(r,e);var t=T(r);function r(){return(0,p.Z)(this,r),t.apply(this,arguments)}return(0,g.Z)(r,[{key:"push",value:function(){for(var e=0;e<arguments.length;e++)this.includes(arguments[e])||h((0,m.Z)(r.prototype),"push",this).call(this,arguments[e]);return this.length}}]),r}(b(Array));function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){(0,o.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=0,w=Symbol("void");var O={};function I(){}["log","debug","info","warn","error","time","timeEnd","group","groupEnd"].forEach((function(e){O[e]=I})),f.I.console=console.hasOwnProperty("log")?console:O;var A={debug:I,error:f.I.console.error||I,info:f.I.console.info||I,log:f.I.console.log||I,warn:f.I.console.warn||I};function R(){A.debug.apply(A,arguments)}function E(){A.error.apply(A,arguments)}function M(){A.warn.apply(A,arguments)}var D={};var V=Object.create(null);V.Float32Array=Float32Array,V.Float64Array=Float64Array,V.Uint8Array=Uint8Array,V.Int8Array=Int8Array,V.Uint16Array=Uint16Array,V.Int16Array=Int16Array,V.Uint32Array=Uint32Array,V.Int32Array=Int32Array,V.Uint8ClampedArray=Uint8ClampedArray;try{V.BigInt64Array=BigInt64Array,V.BigUint64Array=BigUint64Array}catch(e){}function L(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return c(V[e]||Float64Array,r)}function _(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];return(t=V[e]||Float64Array).from.apply(t,n)}function N(e){return e.charAt(0).toUpperCase()+e.slice(1)}function B(e){return N("_"===e[0]?e.slice(1):e)}function F(e){Object.keys(e).forEach((function(t){Array.isArray(e[t])&&(e[t]=[].concat(e[t]))}))}function U(e){return e&&e.isA?e.getState():e}function k(e){setTimeout(e,0)}function G(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(t);var r=[];if(Number.isInteger(t.mtime)||(t.mtime=++P),"classHierarchy"in t){if(!(t.classHierarchy instanceof C)){for(var n=new C,a=0;a<t.classHierarchy.length;a++)n.push(t.classHierarchy[a]);t.classHierarchy=n}}else t.classHierarchy=new C("vtkObject");function o(e){r[e]=null}return e.isDeleted=function(){return!!t.deleted},e.modified=function(n){t.deleted?E("instance deleted - cannot call any method"):n&&n<e.getMTime()||(t.mtime=++P,r.forEach((function(t){return t&&t(e)})))},e.onModified=function(e){if(t.deleted)return E("instance deleted - cannot call any method"),null;var n=r.length;return r.push(e),function(e){return Object.freeze({unsubscribe:function(){o(e)}})}(n)},e.getMTime=function(){return t.mtime},e.isA=function(e){for(var r=t.classHierarchy.length;r--;)if(t.classHierarchy[r]===e)return!0;return!1},e.getClassName=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1;return Object.keys(r).forEach((function(s){var l=a?null:e["set".concat(N(s))];l&&Array.isArray(r[s])&&l.length>1?o=l.apply(void 0,(0,i.Z)(r[s]))||o:l?o=l(r[s])||o:(-1!==["mtime"].indexOf(s)||n||M("Warning: Set value to model directly ".concat(s,", ").concat(r[s])),o=t[s]!==r[s]||o,t[s]=r[s])})),o},e.get=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];if(!r.length)return t;var a={};return r.forEach((function(e){a[e]=t[e]})),a},e.getReferenceByName=function(e){return t[e]},e.delete=function(){Object.keys(t).forEach((function(e){return delete t[e]})),r.forEach((function(e,t){return o(t)})),t.deleted=!0},e.getState=function(){if(t.deleted)return null;var r=S(S({},t),{},{vtkClass:e.getClassName()});Object.keys(r).forEach((function(e){null===r[e]||void 0===r[e]||"_"===e[0]?delete r[e]:r[e].isA?r[e]=r[e].getState():Array.isArray(r[e])&&(r[e]=r[e].map(U))}));var n={};return Object.keys(r).sort().forEach((function(e){n[e]=r[e]})),n.mtime&&delete n.mtime,n},e.shallowCopy=function(r){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r.getClassName()!==e.getClassName())throw new Error("Cannot ShallowCopy ".concat(r.getClassName()," into ").concat(e.getClassName()));var a=r.get(),o=Object.keys(t).sort();Object.keys(a).sort().forEach((function(e){var r=o.indexOf(e);-1===r?n&&R("add ".concat(e," in shallowCopy")):o.splice(r,1),t[e]=a[e]})),o.length&&n&&R("Untouched keys: ".concat(o.join(", "))),e.modified()},e.toJSON=function(){return e.getState()},e}var W={object:function(e,t,r){return function(){return S({},t[r.name])}}};function z(e,t,r){r.forEach((function(r){if("object"===(0,a.Z)(r)){var n=W[r.type];e["get".concat(B(r.name))]=n?n(e,t,r):function(){return t[r.name]}}else e["get".concat(B(r))]=function(){return t[r]}}))}var j={enum:function(e,t,r){var n="_on".concat(B(r.name),"Changed");return function(a){if("string"==typeof a){if(void 0!==r.enum[a])return t[r.name]!==r.enum[a]&&(t[r.name]=r.enum[a],e.modified(),!0);throw E("Set Enum with invalid argument ".concat(r,", ").concat(a)),new RangeError("Set Enum with invalid string argument")}if("number"==typeof a){if(t[r.name]!==a){if(-1!==Object.keys(r.enum).map((function(e){return r.enum[e]})).indexOf(a)){var o,i=t[r.name];return t[r.name]=a,null===(o=t[n])||void 0===o||o.call(t,e,t,a,i),e.modified(),!0}throw E("Set Enum outside numeric range ".concat(r,", ").concat(a)),new RangeError("Set Enum outside numeric range")}return!1}throw E("Set Enum with invalid argument (String/Number) ".concat(r,", ").concat(a)),new TypeError("Set Enum with invalid argument (String/Number)")}},object:function(e,t,r){var n="_on".concat(B(r.name),"Changed");return function(a){if(!d()(t[r.name],a)){var o,i=t[r.name];return t[r.name]=a,null===(o=t[n])||void 0===o||o.call(t,e,t,a,i),e.modified(),!0}return!1}}};function H(e){if("object"===(0,a.Z)(e)){var t=j[e.type];if(t)return function(r,n){return t(r,n,e)};throw E("No setter for field ".concat(e)),new TypeError("No setter for field")}return function(t,r){var n="_on".concat(B(e),"Changed");return function(a){if(r.deleted)return E("instance deleted - cannot call any method"),!1;if(r[e]!==a){var o,i=r[e.name];return r[e]=a,null===(o=r[n])||void 0===o||o.call(r,t,r,a,i),t.modified(),!0}return!1}}}function K(e,t,r){r.forEach((function(r){"object"===(0,a.Z)(r)?e["set".concat(B(r.name))]=H(r)(e,t):e["set".concat(B(r))]=H(r)(e,t)}))}function Z(e,t,r){z(e,t,r),K(e,t,r)}function X(e,t,r){r.forEach((function(r){e["get".concat(B(r))]=function(){return t[r]?Array.from(t[r]):t[r]},e["get".concat(B(r),"ByReference")]=function(){return t[r]}}))}function q(e,t,r,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;r.forEach((function(r){if(t[r]&&n&&t[r].length!==n)throw new RangeError("Invalid initial number of values for array (".concat(r,")"));var o="_on".concat(B(r),"Changed");e["set".concat(B(r))]=function(){if(t.deleted)return E("instance deleted - cannot call any method"),!1;for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l];var c,u=s,d=!1;if(1===u.length&&(null==u[0]||u[0].length>=0)&&(u=u[0],d=!0),null==u)c=t[r]!==u;else{if(n&&u.length!==n){if(!(u.length<n&&void 0!==a))throw new RangeError("Invalid number of values for array setter (".concat(r,")"));for(u=Array.from(u),d=!1;u.length<n;)u.push(a)}c=null==t[r]||t[r].length!==u.length;for(var f=0;!c&&f<u.length;++f)c=t[r][f]!==u[f];c&&d&&(u=Array.from(u))}if(c){var p,g=t[r.name];t[r]=u,null===(p=t[o])||void 0===p||p.call(t,e,t,u,g),e.modified()}return c},e["set".concat(B(r),"From")]=function(e){var n=t[r];e.forEach((function(e,t){n[t]=e}))}}))}function Y(e,t,r,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;X(e,t,r),q(e,t,r,n,a)}function $(e,t,r){for(var n=0;n<r.length;n++){var a=r[n];void 0!==t[a]&&(t["_".concat(a)]=t[a],delete t[a])}}function Q(e,t,r,n){function a(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?E("instance deleted - cannot call any method"):n>=t.numberOfInputs?E("algorithm ".concat(e.getClassName()," only has ").concat(t.numberOfInputs," input ports. To add more input ports, use addInputData()")):(t.inputData[n]!==r||t.inputConnection[n])&&(t.inputData[n]=r,t.inputConnection[n]=null,e.modified&&e.modified())}function o(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)E("instance deleted - cannot call any method");else{if(n>=t.numberOfInputs){var a="algorithm ".concat(e.getClassName()," only has ");return a+="".concat(t.numberOfInputs),void E(a+=" input ports. To add more input ports, use addInputConnection()")}t.inputData[n]=null,t.inputConnection[n]=r}}function i(){for(var e=t.numberOfInputs;e&&!t.inputData[e-1]&&!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&&t.numberOfInputs++,e}function s(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(E("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[r])}if(t.inputData?t.inputData=t.inputData.map(f.Z):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(f.Z):t.inputConnection=[],t.output?t.output=t.output.map(f.Z):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(f.Z):t.inputArrayToProcess=[],t.numberOfInputs=r,e.shouldUpdate=function(){for(var r=e.getMTime(),a=1/0,o=n;o--;){if(!t.output[o]||t.output[o].isDeleted())return!0;var i=t.output[o].getMTime();if(i<r)return!0;i<a&&(a=i)}for(o=t.numberOfInputs;o--;){var s,l;if(null!==(s=t.inputConnection[o])&&void 0!==s&&s.filter.shouldUpdate()||(null===(l=e.getInputData(o))||void 0===l?void 0:l.getMTime())>a)return!0}return!1},t.numberOfInputs){for(var l=t.numberOfInputs;l--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=a,e.setInputConnection=o,e.addInputData=function(e){t.deleted?E("instance deleted - cannot call any method"):a(e,i())},e.addInputConnection=function(e){t.deleted?E("instance deleted - cannot call any method"):o(e,i())},e.getInputData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}n&&(e.getOutputData=s,e.getOutputPort=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=function(){return s(t)};return r.filter=e,r}),e.update=function(){var r=[];if(t.numberOfInputs)for(var n=0;n<t.numberOfInputs;)r[n]=e.getInputData(n),n++;e.shouldUpdate()&&e.requestData&&e.requestData(r,t.output)},e.getNumberOfInputPorts=function(){return t.numberOfInputs},e.getNumberOfOutputPorts=function(){return n||t.output.length},e.getInputArrayToProcess=function(e){var r=t.inputArrayToProcess[e],n=t.inputData[e];return r&&n?n["get".concat(r.fieldAssociation)]().getArray(r.arrayName):null},e.setInputArrayToProcess=function(e,r,n){for(var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Scalars";t.inputArrayToProcess.length<e;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[e]={arrayName:r,fieldAssociation:n,attributeType:a}}}var J=Symbol("Event abort");function ee(e,t){var r=function(){var t={};return e(t,{},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Object.freeze(t)};return t&&f.Z.register(t,r),r}function te(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return t.filter((function(e){return!!e})).map((function(e){return e.apply(void 0,r)}))}}function re(e){return e&&e.isA&&e.isA("vtkObject")}function ne(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},r),e.setKey=function(e,r){t.keystore[e]=r},e.getKey=function(e){return t.keystore[e]},e.getAllKeys=function(){return Object.keys(t.keystore)},e.deleteKey=function(e){return delete t.keystore[e]},e.clearKeystore=function(){return e.getAllKeys().forEach((function(e){return delete t.keystore[e]}))}}var ae=1,oe="__root__";var ie={algo:Q,capitalize:N,chain:te,debounce:function(e,t,r){var n,a=this,o=function(){for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];var l=a,c=r&&!n;clearTimeout(n),n=setTimeout((function(){n=null,r||e.apply(l,i)}),t),c&&e.apply(l,i)};return o.cancel=function(){return clearTimeout(n)},o},enumToString:function(e,t){return Object.keys(e).find((function(r){return e[r]===t}))},event:function(e,t,r){var a=[],o=e.delete,i=1;function s(e){for(var t=0;t<a.length;++t){if((0,n.Z)(a[t],1)[0]===e)return void a.splice(t,1)}}e["invoke".concat(B(r))]=function(){var r=arguments;if(t.deleted)E("instance deleted - cannot call any method");else for(var o=a.slice(),i=function(t){var a=(0,n.Z)(o[t],3),i=a[1],s=a[2];if(!i)return"continue";if(s<0)setTimeout((function(){return i.apply(e,r)}),1-s);else if(i.apply(e,r)===J)return"break"},s=0;s<o.length;++s){var l=i(s);if("continue"!==l&&"break"===l)break}},e["on".concat(B(r))]=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error("Invalid callback for event ".concat(r)),null;if(t.deleted)return E("instance deleted - cannot call any method"),null;var o=i++;return a.push([o,e,n]),a.sort((function(e,t){return t[2]-e[2]})),function(e){return Object.freeze({unsubscribe:function(){s(e)}})}(o)},e.delete=function(){o(),a.forEach((function(e){return s((0,n.Z)(e,1)[0])}))}},EVENT_ABORT:J,formatBytesToProperUnit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,n=["TB","GB","MB","KB"],a=Number(e),o="B";a>r;)a/=r,o=n.pop();return"".concat(a.toFixed(t)," ").concat(o)},formatNumbersWithThousandSeparator:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",r=[],n=e;n>1e3;)r.push("000".concat(n%1e3).slice(-3)),n=Math.floor(n/1e3);return n>0&&r.push(n),r.reverse(),r.join(t)},get:z,getArray:X,getCurrentGlobalMTime:function(){return P},getStateArrayMapFunc:U,isVtkObject:re,keystore:ne,measurePromiseExecution:function(e,t){var r=performance.now();e.finally((function(){var e=performance.now()-r;t(e)}))},moveToProtected:$,newInstance:ee,newTypedArray:L,newTypedArrayFrom:_,normalizeWheel:function(e){var t=0,r=0,n=0,a=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=r,r=0),n=10*t,a=10*r,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||a)&&e.deltaMode&&(1===e.deltaMode?(n*=40,a*=40):(n*=800,a*=800)),n&&!t&&(t=n<1?-1:1),a&&!r&&(r=a<1?-1:1),{spinX:t,spinY:r,pixelX:n,pixelY:a}},obj:G,proxy:function(e,t){ne(e,t);var r=e.delete;t.proxyId="".concat(ae++),t.ui=JSON.parse(JSON.stringify(t.ui||[])),z(e,t,["proxyId","proxyGroup","proxyName"]),Z(e,t,["proxyManager"]);var n={},a={};function i(e,t){a[t]||(a[t]=[]);for(var r=a[t],o=0;o<e.length;o++)r.push(e[o].name),n[e[o].name]=e[o],e[o].children&&e[o].children.length&&i(e[o].children,e[o].name)}function s(){for(var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:oe,n=[],o=t.proxyId,i=function(){return a[arguments.length>0&&void 0!==arguments[0]?arguments[0]:oe]}(r)||[],l=0;l<i.length;l++){var c=i[l],u=e["get".concat(B(c))],d={id:o,name:c,value:u?u():void 0},f=s(c);f.length&&(d.children=f),n.push(d)}return n}i(t.ui,oe),e.updateUI=function(r){t.ui=JSON.parse(JSON.stringify(r||[])),Object.keys(n).forEach((function(e){return delete n[e]})),Object.keys(a).forEach((function(e){return delete a[e]})),i(t.ui,oe),e.modified()},e.updateProxyProperty=function(e,t){var r=n[e];r?Object.assign(r,t):n[e]=S({},t)},e.activate=function(){if(t.proxyManager){var r="setActive".concat(B(e.getProxyGroup().slice(0,-1)));t.proxyManager[r]&&t.proxyManager[r](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=function(e,r){r in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[r]=[]),t.propertyLinkSubscribers[r].push(e)},e.gcPropertyLinks=function(r){for(var n=t.propertyLinkSubscribers[r]||[];n.length;)n.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];var n=null,a=[],i=0,s=!1;function l(r){var l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(s)return null;var c=[],u=null;for(i=a.length;i--;){var d=a[i];d.instance===r?u=d:c.push(d)}if(!u)return null;var f=u.instance["get".concat(B(u.propertyName))]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}return!1}(f,n)||l){for(n=f,s=!0;c.length;){var p=c.pop();p.instance.set((0,o.Z)({},p.propertyName,n))}s=!1}return t.propertyLinkMap[e].persistent&&(t.propertyLinkMap[e].value=f),f}function c(e,t){var r=[];for(i=a.length;i--;){var n=a[i];n.instance!==e||n.propertyName!==t&&void 0!==t||(n.subscription.unsubscribe(),r.push(i))}for(;r.length;)a.splice(r.pop(),1)}var u={bind:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=r.onModified(l),u=a[0];return a.push({instance:r,propertyName:n,subscription:s}),i&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?r.set((0,o.Z)({},n,t.propertyLinkMap[e].value)):u&&l(u.instance,!0)),{unsubscribe:function(){return c(r,n)}}},unbind:c,unsubscribe:function(){for(;a.length;)a.pop().subscription.unsubscribe()},persistent:r};return t.propertyLinkMap[e]=u,u},e.listPropertyNames=function(){return s().map((function(e){return e.name}))},e.getPropertyByName=function(e){return s().find((function(t){return t.name===e}))},e.getPropertyDomainByName=function(e){return(n[e]||{}).domain},e.getProxySection=function(){return{id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:s()}},e.delete=function(){for(var n=Object.keys(t.propertyLinkMap),a=n.length;a--;)t.propertyLinkMap[n[a]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),r()},e.getState=function(){return null},k((function(){if(t.links)for(var r=0;r<t.links.length;r++){var n=t.links[r],a=n.link,o=n.property,i=n.persistent,s=n.updateOnBind;if("application"===n.type){var l=t.proxyManager.getPropertyLink(a,i);e.registerPropertyLinkForGC(l,"application"),l.bind(e,o,s)}}}))},proxyPropertyMapping:function(e,t,r){for(var n=e.delete,a=[],o=Object.keys(r),i=o.length;i--;){var s=o[i],l=r[s],c=l.modelKey,u=l.property,d=l.modified,f=void 0===d||d,p=B(u),g=B(s);e["get".concat(g)]=t[c]["get".concat(p)],e["set".concat(g)]=t[c]["set".concat(p)],f&&a.push(t[c].onModified(e.modified))}e.delete=function(){for(;a.length;)a.pop().unsubscribe();n()}},proxyPropertyState:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.this=e;for(var a=Object.keys(n),o=a.length,i=function(){var i=a[o];t[i]=n[i];var s=r[i];e["set".concat(B(i))]=function(r){r!==t[i]&&(t[i]=r,function(e){for(var r=Object.keys(e),n=r.length;n--;){var a=r[n];t[a].set(e[a])}}(s[r]),e.modified())}};o--;)i();a.length&&z(e,t,a)},safeArrays:F,set:K,setArray:q,setGet:Z,setGetArray:Y,setImmediate:k,setLoggerFunction:function(e,t){A[e]&&(A[e]=t||I)},throttle:function(e,t){var r=!1,n=null;function a(){r=!1,null!==n&&(o.apply(void 0,(0,i.Z)(n)),n=null)}function o(){for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];r?n=i:(r=!0,e.apply(void 0,i),setTimeout(a,t))}return o},traverseInstanceTree:function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(re(t)){if(a.indexOf(t)>=0)return n;a.push(t);var o=r(t);void 0!==o&&n.push(o);var i=t.get();Object.keys(i).forEach((function(t){var o=i[t];Array.isArray(o)?o.forEach((function(t){e(t,r,n,a)})):e(o,r,n,a)}))}return n},TYPED_ARRAYS:V,uncapitalize:function(e){return e.charAt(0).toLowerCase()+e.slice(1)},VOID:w,vtkDebugMacro:R,vtkErrorMacro:E,vtkInfoMacro:function(){A.info.apply(A,arguments)},vtkLogMacro:function(){A.log.apply(A,arguments)},vtkOnceErrorMacro:function(e){D[e]||(A.error(e),D[e]=!0)},vtkWarningMacro:M}},99824:(e,t,r)=>{"use strict";r.d(t,{I:()=>s,Z:()=>c});var n=r(79133),a=r(87765),o=r(7218);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var s=r.n(o)()(),l={vtkObject:function(){return null}};function c(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return s.console&&s.console.error&&s.console.error("Invalid VTK object"),null;var t=l[e.vtkClass];if(!t)return s.console&&s.console.error&&s.console.error("No vtk class found for Object of type ".concat(e.vtkClass)),null;var r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e);Object.keys(r).forEach((function(e){r[e]&&"object"===(0,n.Z)(r[e])&&r[e].vtkClass&&(r[e]=c(r[e]))}));var o=t(r);return o&&o.modified&&o.modified(),o}c.register=function(e,t){l[e]=t}},99989:e=>{"use strict";"undefined"!=typeof self?e.exports=self:"undefined"!=typeof window?e.exports=window:e.exports=Function("return this")()},7218:(e,t,r)=>{"use strict";var n=r(35582),a=r(99989),o=r(96370),i=r(7345),s=o(),l=function(){return s};n(l,{getPolyfill:o,implementation:a,shim:i}),e.exports=l},96370:(e,t,r)=>{"use strict";var n=r(99989);e.exports=function(){return"object"==typeof r.g&&r.g&&r.g.Math===Math&&r.g.Array===Array?r.g:n}},7345:(e,t,r)=>{"use strict";var n=r(35582),a=r(96370);e.exports=function(){var e=a();if(n.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,"globalThis");t&&(!t.configurable||!t.enumerable&&t.writable&&globalThis===e)||Object.defineProperty(e,"globalThis",{configurable:!0,enumerable:!1,value:e,writable:!0})}else"object"==typeof globalThis&&globalThis===e||(e.globalThis=e);return e}},20840:e=>{e.exports=function(e){"use strict";var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function r(e,t){var r=e[0],n=e[1],a=e[2],o=e[3];n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&a|~n&o)+t[0]-680876936|0)<<7|r>>>25)+n|0)&n|~r&a)+t[1]-389564586|0)<<12|o>>>20)+r|0)&r|~o&n)+t[2]+606105819|0)<<17|a>>>15)+o|0)&o|~a&r)+t[3]-1044525330|0)<<22|n>>>10)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&a|~n&o)+t[4]-176418897|0)<<7|r>>>25)+n|0)&n|~r&a)+t[5]+1200080426|0)<<12|o>>>20)+r|0)&r|~o&n)+t[6]-1473231341|0)<<17|a>>>15)+o|0)&o|~a&r)+t[7]-45705983|0)<<22|n>>>10)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&a|~n&o)+t[8]+1770035416|0)<<7|r>>>25)+n|0)&n|~r&a)+t[9]-1958414417|0)<<12|o>>>20)+r|0)&r|~o&n)+t[10]-42063|0)<<17|a>>>15)+o|0)&o|~a&r)+t[11]-1990404162|0)<<22|n>>>10)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&a|~n&o)+t[12]+1804603682|0)<<7|r>>>25)+n|0)&n|~r&a)+t[13]-40341101|0)<<12|o>>>20)+r|0)&r|~o&n)+t[14]-1502002290|0)<<17|a>>>15)+o|0)&o|~a&r)+t[15]+1236535329|0)<<22|n>>>10)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&o|a&~o)+t[1]-165796510|0)<<5|r>>>27)+n|0)&a|n&~a)+t[6]-1069501632|0)<<9|o>>>23)+r|0)&n|r&~n)+t[11]+643717713|0)<<14|a>>>18)+o|0)&r|o&~r)+t[0]-373897302|0)<<20|n>>>12)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&o|a&~o)+t[5]-701558691|0)<<5|r>>>27)+n|0)&a|n&~a)+t[10]+38016083|0)<<9|o>>>23)+r|0)&n|r&~n)+t[15]-660478335|0)<<14|a>>>18)+o|0)&r|o&~r)+t[4]-405537848|0)<<20|n>>>12)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&o|a&~o)+t[9]+568446438|0)<<5|r>>>27)+n|0)&a|n&~a)+t[14]-1019803690|0)<<9|o>>>23)+r|0)&n|r&~n)+t[3]-187363961|0)<<14|a>>>18)+o|0)&r|o&~r)+t[8]+1163531501|0)<<20|n>>>12)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n&o|a&~o)+t[13]-1444681467|0)<<5|r>>>27)+n|0)&a|n&~a)+t[2]-51403784|0)<<9|o>>>23)+r|0)&n|r&~n)+t[7]+1735328473|0)<<14|a>>>18)+o|0)&r|o&~r)+t[12]-1926607734|0)<<20|n>>>12)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n^a^o)+t[5]-378558|0)<<4|r>>>28)+n|0)^n^a)+t[8]-2022574463|0)<<11|o>>>21)+r|0)^r^n)+t[11]+1839030562|0)<<16|a>>>16)+o|0)^o^r)+t[14]-35309556|0)<<23|n>>>9)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n^a^o)+t[1]-1530992060|0)<<4|r>>>28)+n|0)^n^a)+t[4]+1272893353|0)<<11|o>>>21)+r|0)^r^n)+t[7]-155497632|0)<<16|a>>>16)+o|0)^o^r)+t[10]-1094730640|0)<<23|n>>>9)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n^a^o)+t[13]+681279174|0)<<4|r>>>28)+n|0)^n^a)+t[0]-358537222|0)<<11|o>>>21)+r|0)^r^n)+t[3]-722521979|0)<<16|a>>>16)+o|0)^o^r)+t[6]+76029189|0)<<23|n>>>9)+a|0,n=((n+=((a=((a+=((o=((o+=((r=((r+=(n^a^o)+t[9]-640364487|0)<<4|r>>>28)+n|0)^n^a)+t[12]-421815835|0)<<11|o>>>21)+r|0)^r^n)+t[15]+530742520|0)<<16|a>>>16)+o|0)^o^r)+t[2]-995338651|0)<<23|n>>>9)+a|0,n=((n+=((o=((o+=(n^((r=((r+=(a^(n|~o))+t[0]-198630844|0)<<6|r>>>26)+n|0)|~a))+t[7]+1126891415|0)<<10|o>>>22)+r|0)^((a=((a+=(r^(o|~n))+t[14]-1416354905|0)<<15|a>>>17)+o|0)|~r))+t[5]-57434055|0)<<21|n>>>11)+a|0,n=((n+=((o=((o+=(n^((r=((r+=(a^(n|~o))+t[12]+1700485571|0)<<6|r>>>26)+n|0)|~a))+t[3]-1894986606|0)<<10|o>>>22)+r|0)^((a=((a+=(r^(o|~n))+t[10]-1051523|0)<<15|a>>>17)+o|0)|~r))+t[1]-2054922799|0)<<21|n>>>11)+a|0,n=((n+=((o=((o+=(n^((r=((r+=(a^(n|~o))+t[8]+1873313359|0)<<6|r>>>26)+n|0)|~a))+t[15]-30611744|0)<<10|o>>>22)+r|0)^((a=((a+=(r^(o|~n))+t[6]-1560198380|0)<<15|a>>>17)+o|0)|~r))+t[13]+1309151649|0)<<21|n>>>11)+a|0,n=((n+=((o=((o+=(n^((r=((r+=(a^(n|~o))+t[4]-145523070|0)<<6|r>>>26)+n|0)|~a))+t[11]-1120210379|0)<<10|o>>>22)+r|0)^((a=((a+=(r^(o|~n))+t[2]+718787259|0)<<15|a>>>17)+o|0)|~r))+t[9]-343485551|0)<<21|n>>>11)+a|0,e[0]=r+e[0]|0,e[1]=n+e[1]|0,e[2]=a+e[2]|0,e[3]=o+e[3]|0}function n(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return r}function a(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return r}function o(e){var t,a,o,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)r(u,n(e.substring(t-64,t)));for(a=(e=e.substring(t-64)).length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<a;t+=1)o[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(o[t>>2]|=128<<(t%4<<3),t>55)for(r(u,o),t=0;t<16;t+=1)o[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,o[14]=s,o[15]=l,r(u,o),u}function i(e){var t,n,o,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)r(u,a(e.subarray(t-64,t)));for(n=(e=t-64<c?e.subarray(t-64):new Uint8Array(0)).length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<n;t+=1)o[t>>2]|=e[t]<<(t%4<<3);if(o[t>>2]|=128<<(t%4<<3),t>55)for(r(u,o),t=0;t<16;t+=1)o[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,o[14]=s,o[15]=l,r(u,o),u}function s(e){var r,n="";for(r=0;r<4;r+=1)n+=t[e>>8*r+4&15]+t[e>>8*r&15];return n}function l(e){var t;for(t=0;t<e.length;t+=1)e[t]=s(e[t]);return e.join("")}function c(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function u(e,t){var r,n=e.length,a=new ArrayBuffer(n),o=new Uint8Array(a);for(r=0;r<n;r+=1)o[r]=e.charCodeAt(r);return t?o:a}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function f(e,t,r){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e)),n.set(new Uint8Array(t),e.byteLength),r?n:n.buffer}function p(e){var t,r=[],n=e.length;for(t=0;t<n-1;t+=2)r.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,r)}function g(){this.reset()}return l(o("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(r,n){var a,o,i,s,l=this.byteLength,c=t(r,l),u=l;return n!==e&&(u=t(n,l)),c>u?new ArrayBuffer(0):(a=u-c,o=new ArrayBuffer(a),i=new Uint8Array(o),s=new Uint8Array(this,c,a),i.set(s),o)}}(),g.prototype.append=function(e){return this.appendBinary(c(e)),this},g.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,a=this._buff.length;for(t=64;t<=a;t+=64)r(this._hash,n(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},g.prototype.end=function(e){var t,r,n=this._buff,a=n.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<a;t+=1)o[t>>2]|=n.charCodeAt(t)<<(t%4<<3);return this._finish(o,a),r=l(this._hash),e&&(r=p(r)),this.reset(),r},g.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},g.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},g.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},g.prototype._finish=function(e,t){var n,a,o,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(r(this._hash,e),i=0;i<16;i+=1)e[i]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(n[2],16),o=parseInt(n[1],16)||0,e[14]=a,e[15]=o,r(this._hash,e)},g.hash=function(e,t){return g.hashBinary(c(e),t)},g.hashBinary=function(e,t){var r=l(o(e));return t?p(r):r},g.ArrayBuffer=function(){this.reset()},g.ArrayBuffer.prototype.append=function(e){var t,n=f(this._buff.buffer,e,!0),o=n.length;for(this._length+=e.byteLength,t=64;t<=o;t+=64)r(this._hash,a(n.subarray(t-64,t)));return this._buff=t-64<o?new Uint8Array(n.buffer.slice(t-64)):new Uint8Array(0),this},g.ArrayBuffer.prototype.end=function(e){var t,r,n=this._buff,a=n.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<a;t+=1)o[t>>2]|=n[t]<<(t%4<<3);return this._finish(o,a),r=l(this._hash),e&&(r=p(r)),this.reset(),r},g.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.ArrayBuffer.prototype.getState=function(){var e=g.prototype.getState.call(this);return e.buff=d(e.buff),e},g.ArrayBuffer.prototype.setState=function(e){return e.buff=u(e.buff,!0),g.prototype.setState.call(this,e)},g.ArrayBuffer.prototype.destroy=g.prototype.destroy,g.ArrayBuffer.prototype._finish=g.prototype._finish,g.ArrayBuffer.hash=function(e,t){var r=l(i(new Uint8Array(e)));return t?p(r):r},g}()},13790:(e,t,r)=>{var n=r(74292).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},r=Object.prototype,o=r.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function d(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,r){return e[t]=r}}function f(e,t,r,n){var a=t&&t.prototype instanceof m?t:m,o=Object.create(a.prototype),s=new A(n||[]);return i(o,"_invoke",{value:P(e,r,s)}),o}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var g={};function m(){}function h(){}function v(){}var y={};d(y,l,(function(){return this}));var b=Object.getPrototypeOf,T=b&&b(b(R([])));T&&T!==r&&o.call(T,l)&&(y=T);var C=v.prototype=m.prototype=Object.create(y);function x(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function r(a,i,s,l){var c=p(e[a],e,i);if("throw"!==c.type){var u=c.arg,d=u.value;return d&&"object"==n(d)&&o.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,s,l)}),(function(e){r("throw",e,s,l)})):t.resolve(d).then((function(e){u.value=e,s(u)}),(function(e){return r("throw",e,s,l)}))}l(c.arg)}var a;i(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,a){r(e,n,t,a)}))}return a=a?a.then(o,o):o()}})}function P(e,t,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return E()}for(r.method=a,r.arg=o;;){var i=r.delegate;if(i){var s=w(i,r);if(s){if(s===g)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=p(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===g)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function w(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var a=p(n,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,g;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,g):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,g)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function R(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(o.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:E}}function E(){return{value:void 0,done:!0}}return h.prototype=v,i(C,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:h,configurable:!0}),h.displayName=d(v,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,d(e,u,"GeneratorFunction")),e.prototype=Object.create(C),e},t.awrap=function(e){return{__await:e}},x(S.prototype),d(S.prototype,c,(function(){return this})),t.AsyncIterator=S,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new S(f(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(C),d(C,u,"Generator"),d(C,l,(function(){return this})),d(C,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=R,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(I),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=o.call(a,"catchLoc"),l=o.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),I(r),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;I(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:R(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),g}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},75882:(e,t,r)=>{var n=r(13790)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},47294:(e,t,r)=>{"use strict";function n(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function a(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function o(e){let t,r,o;function s(e,n,a=0,o=e.length){if(a<o){if(0!==t(n,n))return o;do{const t=a+o>>>1;r(e[t],n)<0?a=t+1:o=t}while(a<o)}return a}return 2!==e.length?(t=n,r=(t,r)=>n(e(t),r),o=(t,r)=>e(t)-r):(t=e===n||e===a?e:i,r=e,o=e),{left:s,center:function(e,t,r=0,n=e.length){const a=s(e,t,r,n-1);return a>r&&o(e[a-1],t)>-o(e[a],t)?a-1:a},right:function(e,n,a=0,o=e.length){if(a<o){if(0!==t(n,n))return o;do{const t=a+o>>>1;r(e[t],n)<=0?a=t+1:o=t}while(a<o)}return a}}}function i(){return 0}r.d(t,{b4:()=>c,YF:()=>o,G9:()=>T,ly:()=>C,sd:()=>b,$R:()=>P});const s=o(n),l=s.right,c=(s.left,o((function(e){return null===e?NaN:+e})).center,l);u(p),u((function(e){const t=p(e);return(e,r,n,a,o)=>{t(e,r,(n<<=2)+0,(a<<=2)+0,o<<=2),t(e,r,n+1,a+1,o),t(e,r,n+2,a+2,o),t(e,r,n+3,a+3,o)}}));function u(e){return function(t,r,n=r){if(!((r=+r)>=0))throw new RangeError("invalid rx");if(!((n=+n)>=0))throw new RangeError("invalid ry");let{data:a,width:o,height:i}=t;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((i=Math.floor(void 0!==i?i:a.length/o))>=0))throw new RangeError("invalid height");if(!o||!i||!r&&!n)return t;const s=r&&e(r),l=n&&e(n),c=a.slice();return s&&l?(d(s,c,a,o,i),d(s,a,c,o,i),d(s,c,a,o,i),f(l,a,c,o,i),f(l,c,a,o,i),f(l,a,c,o,i)):s?(d(s,a,c,o,i),d(s,c,a,o,i),d(s,a,c,o,i)):l&&(f(l,a,c,o,i),f(l,c,a,o,i),f(l,a,c,o,i)),t}}function d(e,t,r,n,a){for(let o=0,i=n*a;o<i;)e(t,r,o,o+=n,1)}function f(e,t,r,n,a){for(let o=0,i=n*a;o<n;++o)e(t,r,o,o+i,n)}function p(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(r,n,a,o,i)=>{if(!((o-=i)>=a))return;let s=e*n[a];const l=i*e;for(let e=a,t=a+l;e<t;e+=i)s+=n[Math.min(o,e)];for(let e=a,c=o;e<=c;e+=i)s+=n[Math.min(o,e+l)],r[e]=s/t,s-=n[Math.max(a,e-l)]}}(e);const r=e-t,n=2*e+1;return(e,a,o,i,s)=>{if(!((i-=s)>=o))return;let l=t*a[o];const c=s*t,u=c+s;for(let e=o,t=o+c;e<t;e+=s)l+=a[Math.min(i,e)];for(let t=o,d=i;t<=d;t+=s)l+=a[Math.min(i,t+c)],e[t]=(l+r*(a[Math.max(o,t-u)]+a[Math.min(i,t+u)]))/n,l-=a[Math.max(o,t-c)]}}var g=Array.prototype;g.slice,g.map;const m=Math.sqrt(50),h=Math.sqrt(10),v=Math.sqrt(2);function y(e,t,r){const n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),o=n/Math.pow(10,a),i=o>=m?10:o>=h?5:o>=v?2:1;let s,l,c;return a<0?(c=Math.pow(10,-a)/i,s=Math.round(e*c),l=Math.round(t*c),s/c<e&&++s,l/c>t&&--l,c=-c):(c=Math.pow(10,a)*i,s=Math.round(e/c),l=Math.round(t/c),s*c<e&&++s,l*c>t&&--l),l<s&&.5<=r&&r<2?y(e,t,2*r):[s,l,c]}function b(e,t,r){if(!((r=+r)>0))return[];if((e=+e)===(t=+t))return[e];const n=t<e,[a,o,i]=n?y(t,e,r):y(e,t,r);if(!(o>=a))return[];const s=o-a+1,l=new Array(s);if(n)if(i<0)for(let e=0;e<s;++e)l[e]=(o-e)/-i;else for(let e=0;e<s;++e)l[e]=(o-e)*i;else if(i<0)for(let e=0;e<s;++e)l[e]=(a+e)/-i;else for(let e=0;e<s;++e)l[e]=(a+e)*i;return l}function T(e,t,r){return y(e=+e,t=+t,r=+r)[2]}function C(e,t,r){r=+r;const n=(t=+t)<(e=+e),a=n?T(t,e,r):T(e,t,r);return(n?-1:1)*(a<0?1/-a:a)}x=Math.random;var x;function S(e){return e.length}function P(){return function(e){if(!(a=e.length))return[];for(var t=-1,r=function(e,t){let r;if(void 0===t)for(const t of e)null!=t&&(r>t||void 0===r&&t>=t)&&(r=t);else{let n=-1;for(let a of e)null!=(a=t(a,++n,e))&&(r>a||void 0===r&&a>=a)&&(r=a)}return r}(e,S),n=new Array(r);++t<r;)for(var a,o=-1,i=n[t]=new Array(a);++o<a;)i[o]=e[o][t];return n}(arguments)}},22791:(e,t,r)=>{"use strict";function n(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function a(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function o(){}r.d(t,{sX:()=>Me,nH:()=>me,k4:()=>Oe,uL:()=>De,q$:()=>We});var i=.7,s=1/i,l="\\s*([+-]?\\d+)\\s*",c="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",d=/^#([0-9a-f]{3,8})$/,f=new RegExp(`^rgb\\(${l},${l},${l}\\)$`),p=new RegExp(`^rgb\\(${u},${u},${u}\\)$`),g=new RegExp(`^rgba\\(${l},${l},${l},${c}\\)$`),m=new RegExp(`^rgba\\(${u},${u},${u},${c}\\)$`),h=new RegExp(`^hsl\\(${c},${u},${u}\\)$`),v=new RegExp(`^hsla\\(${c},${u},${u},${c}\\)$`),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function b(){return this.rgb().formatHex()}function T(){return this.rgb().formatRgb()}function C(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=d.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?x(t):3===r?new O(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?S(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?S(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=f.exec(e))?new O(t[1],t[2],t[3],1):(t=p.exec(e))?new O(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=g.exec(e))?S(t[1],t[2],t[3],t[4]):(t=m.exec(e))?S(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=h.exec(e))?D(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?D(t[1],t[2]/100,t[3]/100,t[4]):y.hasOwnProperty(e)?x(y[e]):"transparent"===e?new O(NaN,NaN,NaN,0):null}function x(e){return new O(e>>16&255,e>>8&255,255&e,1)}function S(e,t,r,n){return n<=0&&(e=t=r=NaN),new O(e,t,r,n)}function P(e){return e instanceof o||(e=C(e)),e?new O((e=e.rgb()).r,e.g,e.b,e.opacity):new O}function w(e,t,r,n){return 1===arguments.length?P(e):new O(e,t,r,null==n?1:n)}function O(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function I(){return`#${M(this.r)}${M(this.g)}${M(this.b)}`}function A(){const e=R(this.opacity);return`${1===e?"rgb(":"rgba("}${E(this.r)}, ${E(this.g)}, ${E(this.b)}${1===e?")":`, ${e})`}`}function R(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function E(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function M(e){return((e=E(e))<16?"0":"")+e.toString(16)}function D(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new _(e,t,r,n)}function V(e){if(e instanceof _)return new _(e.h,e.s,e.l,e.opacity);if(e instanceof o||(e=C(e)),!e)return new _;if(e instanceof _)return e;var t=(e=e.rgb()).r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),i=Math.max(t,r,n),s=NaN,l=i-a,c=(i+a)/2;return l?(s=t===i?(r-n)/l+6*(r<n):r===i?(n-t)/l+2:(t-r)/l+4,l/=c<.5?i+a:2-i-a,s*=60):l=c>0&&c<1?0:s,new _(s,l,c,e.opacity)}function L(e,t,r,n){return 1===arguments.length?V(e):new _(e,t,r,null==n?1:n)}function _(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function N(e){return(e=(e||0)%360)<0?e+360:e}function B(e){return Math.max(0,Math.min(1,e||0))}function F(e,t,r){return 255*(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)}n(o,C,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:b,formatHex:b,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return V(this).formatHsl()},formatRgb:T,toString:T}),n(O,w,a(o,{brighter(e){return e=null==e?s:Math.pow(s,e),new O(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new O(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new O(E(this.r),E(this.g),E(this.b),R(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:I,formatHex:I,formatHex8:function(){return`#${M(this.r)}${M(this.g)}${M(this.b)}${M(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:A,toString:A})),n(_,L,a(o,{brighter(e){return e=null==e?s:Math.pow(s,e),new _(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new _(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new O(F(e>=240?e-240:e+120,a,n),F(e,a,n),F(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new _(N(this.h),B(this.s),B(this.l),R(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=R(this.opacity);return`${1===e?"hsl(":"hsla("}${N(this.h)}, ${100*B(this.s)}%, ${100*B(this.l)}%${1===e?")":`, ${e})`}`}}));const U=Math.PI/180,k=180/Math.PI,G=.96422,W=1,z=.82521,j=4/29,H=6/29,K=3*H*H,Z=H*H*H;function X(e){if(e instanceof q)return new q(e.l,e.a,e.b,e.opacity);if(e instanceof re)return ne(e);e instanceof O||(e=P(e));var t,r,n=J(e.r),a=J(e.g),o=J(e.b),i=Y((.2225045*n+.7168786*a+.0606169*o)/W);return n===a&&a===o?t=r=i:(t=Y((.4360747*n+.3850649*a+.1430804*o)/G),r=Y((.0139322*n+.0971045*a+.7141733*o)/z)),new q(116*i-16,500*(t-i),200*(i-r),e.opacity)}function q(e,t,r,n){this.l=+e,this.a=+t,this.b=+r,this.opacity=+n}function Y(e){return e>Z?Math.pow(e,1/3):e/K+j}function $(e){return e>H?e*e*e:K*(e-j)}function Q(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function J(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function ee(e){if(e instanceof re)return new re(e.h,e.c,e.l,e.opacity);if(e instanceof q||(e=X(e)),0===e.a&&0===e.b)return new re(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*k;return new re(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function te(e,t,r,n){return 1===arguments.length?ee(e):new re(e,t,r,null==n?1:n)}function re(e,t,r,n){this.h=+e,this.c=+t,this.l=+r,this.opacity=+n}function ne(e){if(isNaN(e.h))return new q(e.l,0,0,e.opacity);var t=e.h*U;return new q(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}n(q,(function(e,t,r,n){return 1===arguments.length?X(e):new q(e,t,r,null==n?1:n)}),a(o,{brighter(e){return new q(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new q(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,r=isNaN(this.b)?e:e-this.b/200;return new O(Q(3.1338561*(t=G*$(t))-1.6168667*(e=W*$(e))-.4906146*(r=z*$(r))),Q(-.9787684*t+1.9161415*e+.033454*r),Q(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}})),n(re,te,a(o,{brighter(e){return new re(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new re(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return ne(this).rgb()}}));var ae=-.14861,oe=1.78277,ie=-.29227,se=-.90649,le=1.97294,ce=le*se,ue=le*oe,de=oe*ie-se*ae;function fe(e,t,r,n){return 1===arguments.length?function(e){if(e instanceof pe)return new pe(e.h,e.s,e.l,e.opacity);e instanceof O||(e=P(e));var t=e.r/255,r=e.g/255,n=e.b/255,a=(de*n+ce*t-ue*r)/(de+ce-ue),o=n-a,i=(le*(r-a)-ie*o)/se,s=Math.sqrt(i*i+o*o)/(le*a*(1-a)),l=s?Math.atan2(i,o)*k-120:NaN;return new pe(l<0?l+360:l,s,a,e.opacity)}(e):new pe(e,t,r,null==n?1:n)}function pe(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function ge(e,t,r,n,a){var o=e*e,i=o*e;return((1-3*e+3*o-i)*t+(4-6*o+3*i)*r+(1+3*e+3*o-3*i)*n+i*a)/6}function me(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),a=e[n],o=e[n+1],i=n>0?e[n-1]:2*a-o,s=n<t-1?e[n+2]:2*o-a;return ge((r-n/t)*t,i,a,o,s)}}n(pe,fe,a(o,{brighter(e){return e=null==e?s:Math.pow(s,e),new pe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new pe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*U,t=+this.l,r=isNaN(this.s)?0:this.s*t*(1-t),n=Math.cos(e),a=Math.sin(e);return new O(255*(t+r*(ae*n+oe*a)),255*(t+r*(ie*n+se*a)),255*(t+r*(le*n)),this.opacity)}}));const he=e=>()=>e;function ve(e,t){return function(r){return e+r*t}}function ye(e,t){var r=t-e;return r?ve(e,r>180||r<-180?r-360*Math.round(r/360):r):he(isNaN(e)?t:e)}function be(e){return 1==(e=+e)?Te:function(t,r){return r-t?function(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}(t,r,e):he(isNaN(t)?r:t)}}function Te(e,t){var r=t-e;return r?ve(e,r):he(isNaN(e)?t:e)}const Ce=function e(t){var r=be(t);function n(e,t){var n=r((e=w(e)).r,(t=w(t)).r),a=r(e.g,t.g),o=r(e.b,t.b),i=Te(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=a(t),e.b=o(t),e.opacity=i(t),e+""}}return n.gamma=e,n}(1);function xe(e){return function(t){var r,n,a=t.length,o=new Array(a),i=new Array(a),s=new Array(a);for(r=0;r<a;++r)n=w(t[r]),o[r]=n.r||0,i[r]=n.g||0,s[r]=n.b||0;return o=e(o),i=e(i),s=e(s),n.opacity=1,function(e){return n.r=o(e),n.g=i(e),n.b=s(e),n+""}}}xe(me),xe((function(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),a=e[(n+t-1)%t],o=e[n%t],i=e[(n+1)%t],s=e[(n+2)%t];return ge((r-n/t)*t,a,o,i,s)}}));function Se(e,t){t||(t=[]);var r,n=e?Math.min(t.length,e.length):0,a=t.slice();return function(o){for(r=0;r<n;++r)a[r]=e[r]*(1-o)+t[r]*o;return a}}function Pe(e,t){var r,n=t?t.length:0,a=e?Math.min(n,e.length):0,o=new Array(a),i=new Array(n);for(r=0;r<a;++r)o[r]=Me(e[r],t[r]);for(;r<n;++r)i[r]=t[r];return function(e){for(r=0;r<a;++r)i[r]=o[r](e);return i}}function we(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}function Oe(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function Ie(e,t){var r,n={},a={};for(r in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)r in e?n[r]=Me(e[r],t[r]):a[r]=t[r];return function(e){for(r in n)a[r]=n[r](e);return a}}var Ae=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Re=new RegExp(Ae.source,"g");function Ee(e,t){var r,n,a,o=Ae.lastIndex=Re.lastIndex=0,i=-1,s=[],l=[];for(e+="",t+="";(r=Ae.exec(e))&&(n=Re.exec(t));)(a=n.index)>o&&(a=t.slice(o,a),s[i]?s[i]+=a:s[++i]=a),(r=r[0])===(n=n[0])?s[i]?s[i]+=n:s[++i]=n:(s[++i]=null,l.push({i,x:Oe(r,n)})),o=Re.lastIndex;return o<t.length&&(a=t.slice(o),s[i]?s[i]+=a:s[++i]=a),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var r,n=0;n<t;++n)s[(r=l[n]).i]=r.x(e);return s.join("")})}function Me(e,t){var r,n,a=typeof t;return null==t||"boolean"===a?he(t):("number"===a?Oe:"string"===a?(r=C(t))?(t=r,Ce):Ee:t instanceof C?Ce:t instanceof Date?we:(n=t,!ArrayBuffer.isView(n)||n instanceof DataView?Array.isArray(t)?Pe:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?Ie:Oe:Se))(e,t)}function De(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var Ve,Le=180/Math.PI,_e={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ne(e,t,r,n,a,o){var i,s,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*r+t*n)&&(r-=e*l,n-=t*l),(s=Math.sqrt(r*r+n*n))&&(r/=s,n/=s,l/=s),e*n<t*r&&(e=-e,t=-t,l=-l,i=-i),{translateX:a,translateY:o,rotate:Math.atan2(t,e)*Le,skewX:Math.atan(l)*Le,scaleX:i,scaleY:s}}function Be(e,t,r,n){function a(e){return e.length?e.pop()+" ":""}return function(o,i){var s=[],l=[];return o=e(o),i=e(i),function(e,n,a,o,i,s){if(e!==a||n!==o){var l=i.push("translate(",null,t,null,r);s.push({i:l-4,x:Oe(e,a)},{i:l-2,x:Oe(n,o)})}else(a||o)&&i.push("translate("+a+t+o+r)}(o.translateX,o.translateY,i.translateX,i.translateY,s,l),function(e,t,r,o){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),o.push({i:r.push(a(r)+"rotate(",null,n)-2,x:Oe(e,t)})):t&&r.push(a(r)+"rotate("+t+n)}(o.rotate,i.rotate,s,l),function(e,t,r,o){e!==t?o.push({i:r.push(a(r)+"skewX(",null,n)-2,x:Oe(e,t)}):t&&r.push(a(r)+"skewX("+t+n)}(o.skewX,i.skewX,s,l),function(e,t,r,n,o,i){if(e!==r||t!==n){var s=o.push(a(o)+"scale(",null,",",null,")");i.push({i:s-4,x:Oe(e,r)},{i:s-2,x:Oe(t,n)})}else 1===r&&1===n||o.push(a(o)+"scale("+r+","+n+")")}(o.scaleX,o.scaleY,i.scaleX,i.scaleY,s,l),o=i=null,function(e){for(var t,r=-1,n=l.length;++r<n;)s[(t=l[r]).i]=t.x(e);return s.join("")}}}Be((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?_e:Ne(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Be((function(e){return null==e?_e:(Ve||(Ve=document.createElementNS("http://www.w3.org/2000/svg","g")),Ve.setAttribute("transform",e),(e=Ve.transform.baseVal.consolidate())?Ne((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):_e)}),", ",")",")");function Fe(e){return((e=Math.exp(e))+1/e)/2}(function e(t,r,n){function a(e,a){var o,i,s=e[0],l=e[1],c=e[2],u=a[0],d=a[1],f=a[2],p=u-s,g=d-l,m=p*p+g*g;if(m<1e-12)i=Math.log(f/c)/t,o=function(e){return[s+e*p,l+e*g,c*Math.exp(t*e*i)]};else{var h=Math.sqrt(m),v=(f*f-c*c+n*m)/(2*c*r*h),y=(f*f-c*c-n*m)/(2*f*r*h),b=Math.log(Math.sqrt(v*v+1)-v),T=Math.log(Math.sqrt(y*y+1)-y);i=(T-b)/t,o=function(e){var n,a=e*i,o=Fe(b),u=c/(r*h)*(o*(n=t*a+b,((n=Math.exp(2*n))-1)/(n+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+u*p,l+u*g,c*o/Fe(t*a+b)]}}return o.duration=1e3*i*t/Math.SQRT2,o}return a.rho=function(t){var r=Math.max(.001,+t),n=r*r;return e(r,n,n*n)},a})(Math.SQRT2,2,4);function Ue(e){return function(t,r){var n=e((t=L(t)).h,(r=L(r)).h),a=Te(t.s,r.s),o=Te(t.l,r.l),i=Te(t.opacity,r.opacity);return function(e){return t.h=n(e),t.s=a(e),t.l=o(e),t.opacity=i(e),t+""}}}Ue(ye);Ue(Te);function ke(e){return function(t,r){var n=e((t=te(t)).h,(r=te(r)).h),a=Te(t.c,r.c),o=Te(t.l,r.l),i=Te(t.opacity,r.opacity);return function(e){return t.h=n(e),t.c=a(e),t.l=o(e),t.opacity=i(e),t+""}}}ke(ye);ke(Te);function Ge(e){return function t(r){function n(t,n){var a=e((t=fe(t)).h,(n=fe(n)).h),o=Te(t.s,n.s),i=Te(t.l,n.l),s=Te(t.opacity,n.opacity);return function(e){return t.h=a(e),t.s=o(e),t.l=i(Math.pow(e,r)),t.opacity=s(e),t+""}}return r=+r,n.gamma=t,n}(1)}Ge(ye);Ge(Te);function We(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e(n/(t-1));return r}}}]);
|
||
//# sourceMappingURL=743.bundle.58a76ef98d0f4120f602.js.map |