import{al as ht,am as ie,an as se,N as vt,i as gt,ao as At,ap as _,Q as oe,m as ft,aq as I,ar as ce,as as le,at as ue,au as ge,av as fe,aw as pe,ax as de,ay as j,C as y,az as Rt,B as he,aA as P,aB as ye,p as Ut,aC as Se,a1 as N,j as ve,d as xt,Z as Ct,aD as xe,e as Ce,r as Me,k as me,t as $t,M as Oe,O as Te,aE as we,aF as Mt,aG as Ee,U as De,T as ke,W as Fe,G as be,L as _e,aH as Ve,q as Ne,l as Be,aI as Ae,H as mt,X as rt,Y as Ot}from"./index-6e368050.js";const Tt=document.querySelector("head");Tt&&[16,32,96,160,196].forEach(e=>{const t=document.createElement("link");t.setAttribute("rel","icon"),t.setAttribute("href",`https://kitware.github.io/vtk-js/icon/favicon-${e}x${e}.png`),t.setAttribute("sizes",`${e}x${e}`),t.setAttribute("type","image/png"),Tt.appendChild(t)});const{vtkErrorMacro:K}=ce,{Representation:Re}=le,{ObjectType:q}=I,{PassTypes:Ue}=ue,$e={type:"StartEvent"},We={type:"EndEvent"};function Le(e,t){t.classHierarchy.push("vtkOpenGLGlyph3DMapper");const r={...e};e.renderPiece=(n,a)=>{if(e.invokeEvent($e),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(1),e.invokeEvent(We),!t.currentInput){K("No input!");return}if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const s=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);const i=a.getProperty().getBackfaceCulling(),o=a.getProperty().getFrontfaceCulling();!i&&!o?t._openGLRenderWindow.disableCullFace():o?(t._openGLRenderWindow.enableCullFace(),s.cullFace(s.FRONT)):(t._openGLRenderWindow.enableCullFace(),s.cullFace(s.BACK)),e.renderPieceStart(n,a),e.renderPieceDraw(n,a),e.renderPieceFinish(n,a)},e.multiply4x4WithOffset=(n,a,s,i)=>{const o=a[0],l=a[1],v=a[2],O=a[3],T=a[4],w=a[5],E=a[6],c=a[7],g=a[8],h=a[9],u=a[10],f=a[11],p=a[12],d=a[13],m=a[14],x=a[15];let S=s[i],C=s[i+1],M=s[i+2],D=s[i+3];n[0]=S*o+C*T+M*g+D*p,n[1]=S*l+C*w+M*h+D*d,n[2]=S*v+C*E+M*u+D*m,n[3]=S*O+C*c+M*f+D*x,S=s[i+4],C=s[i+5],M=s[i+6],D=s[i+7],n[4]=S*o+C*T+M*g+D*p,n[5]=S*l+C*w+M*h+D*d,n[6]=S*v+C*E+M*u+D*m,n[7]=S*O+C*c+M*f+D*x,S=s[i+8],C=s[i+9],M=s[i+10],D=s[i+11],n[8]=S*o+C*T+M*g+D*p,n[9]=S*l+C*w+M*h+D*d,n[10]=S*v+C*E+M*u+D*m,n[11]=S*O+C*c+M*f+D*x,S=s[i+12],C=s[i+13],M=s[i+14],D=s[i+15],n[12]=S*o+C*T+M*g+D*p,n[13]=S*l+C*w+M*h+D*d,n[14]=S*v+C*E+M*u+D*m,n[15]=S*O+C*c+M*f+D*x},e.replaceShaderNormal=(n,a,s)=>{if(t.hardwareSupport&&t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let o=n.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=_.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),n.Vertex=o}r.replaceShaderNormal(n,a,s)},e.replaceShaderColor=(n,a,s)=>{if(t.hardwareSupport&&t.renderable.getColorArray()){let i=n.Vertex,o=n.Geometry,l=n.Fragment;const v=t.lastBoundBO.getReferenceByName("lastLightComplexity");let O=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];v&&(O=O.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let T=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];v&&(T=T.concat([" vec3 specularColor;"," float specularPower;"])),T=T.concat([" opacity = opacityUniform;"]),v&&(T=T.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(O=O.concat(["varying vec4 vertexColorVSOutput;"]),i=_.substitute(i,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,i=_.substitute(i,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,o=_.substitute(o,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,o=_.substitute(o,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,T=T.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),l=_.substitute(l,"//VTK::Color::Impl",T).result,l=_.substitute(l,"//VTK::Color::Dec",O).result,n.Vertex=i,n.Geometry=o,n.Fragment=l}r.replaceShaderColor(n,a,s)},e.replaceShaderPositionVC=(n,a,s)=>{if(t.hardwareSupport){let i=n.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(i=_.substitute(i,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,i=_.substitute(i,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(i=_.substitute(i,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,i=_.substitute(i,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),n.Vertex=i}r.replaceShaderPositionVC(n,a,s)},e.replaceShaderPicking=(n,a,s)=>{if(t.hardwareSupport){let i=n.Fragment,o=n.Vertex;o=_.substitute(o,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,o=_.substitute(o,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,n.Vertex=o,i=_.substitute(i,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,i=_.substitute(i,"//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,n.Fragment=i}else r.replaceShaderPicking(n,a,s)},e.updateGlyphShaderParameters=(n,a,s,i,o,l,v,O)=>{const T=s.getProgram();if(n){const w=t.normalMatrix,E=l,c=v*9,g=t.tmpMat3,h=w[0],u=w[1],f=w[2],p=w[3],d=w[4],m=w[5],x=w[6],S=w[7],C=w[8],M=E[c],D=E[c+1],k=E[c+2],F=E[c+3],b=E[c+4],B=E[c+5],U=E[c+6],z=E[c+7],G=E[c+8];g[0]=M*h+D*p+k*x,g[1]=M*u+D*d+k*S,g[2]=M*f+D*m+k*C,g[3]=F*h+b*p+B*x,g[4]=F*u+b*d+B*S,g[5]=F*f+b*m+B*C,g[6]=U*h+z*p+G*x,g[7]=U*u+z*d+G*S,g[8]=U*f+z*m+G*C,T.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,o,v*16),T.setUniformMatrix("MCPCMatrix",t.tmpMat4),a&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,o,v*16),T.setUniformMatrix("MCVCMatrix",t.tmpMat4)),i){const w=i.getData();t.tmpColor[0]=w[v*4]/255,t.tmpColor[1]=w[v*4+1]/255,t.tmpColor[2]=w[v*4+2]/255,T.setUniform3fArray("ambientColorUniform",t.tmpColor),T.setUniform3fArray("diffuseColorUniform",t.tmpColor)}O&&T.setUniform3fArray("mapperIndex",O.getPropColorValue())},e.renderPieceDraw=(n,a)=>{const s=a.getProperty().getRepresentation(),i=t.context,o=a.getProperty().getEdgeVisibility()&&s===Re.SURFACE,l=t.openGLCamera.getKeyMatrices(n),v=t.openGLActor.getKeyMatrices();oe(t.normalMatrix,l.normalMatrix,v.normalMatrix),ft(t.mcpcMatrix,l.wcpc,v.mcwc),ft(t.mcvcMatrix,l.wcvc,v.mcwc);const O=t.renderable.getMatrixArray(),T=t.renderable.getNormalArray(),w=t.renderable.getColorArray(),E=O.length/16;let c=!1;t._openGLRenderer.getSelector()&&t._openGLRenderer.getSelector().getCurrentPass()===Ue.COMPOSITE_INDEX_PASS&&(c=!0);for(let g=t.primTypes.Start;g{if(n.getCABO().getElementCount()&&(t.glyphBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){n.getProgram().isAttributeUsed("gMatrix")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||K("Error setting gMatrix in shader VAO."):n.getVAO().removeAttributeArray("gMatrix"),n.getProgram().isAttributeUsed("gNormal")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||K("Error setting gNormal in shader VAO."):n.getVAO().removeAttributeArray("gNormal"),n.getProgram().isAttributeUsed("gColor")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||K("Error setting gColor in shader VAO."):n.getVAO().removeAttributeArray("gColor"),n.getProgram().isAttributeUsed("mapperIndexVS")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||K("Error setting mapperIndexVS in shader VAO."):n.getVAO().removeAttributeArray("mapperIndexVS"),r.setMapperShaderParameters(n,a,s),n.getAttributeUpdateTime().modified();return}r.setMapperShaderParameters(n,a,s)},e.getNeedToRebuildBufferObjects=(n,a)=>(t.renderable.buildArrays(),t.VBOBuildTime.getMTime()!!(r.getNeedToRebuildShaders(n,a,s)||n.getShaderSourceTime().getMTime(){if(t.hardwareSupport){const s=t.renderable.getMatrixArray(),i=t.renderable.getNormalArray(),o=t.renderable.getColorArray();if(t.matrixBuffer||(t.matrixBuffer=I.newInstance(),t.matrixBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.normalBuffer=I.newInstance(),t.normalBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorBuffer=I.newInstance(),t.colorBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.pickBuffer=I.newInstance(),t.pickBuffer.setOpenGLRenderWindow(t._openGLRenderWindow)),t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(s,q.ARRAY_BUFFER),t.normalBuffer.upload(i,q.ARRAY_BUFFER),o?t.colorBuffer.upload(o.getData(),q.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();const l=s.length/16,v=new Uint8Array(4*l);for(let O=0;O2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Ge,r),se.extend(e,t,r),t.tmpMat3=vt(new Float64Array(9)),t.normalMatrix=vt(new Float64Array(9)),t.mcpcMatrix=gt(new Float64Array(16)),t.mcvcMatrix=gt(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},At(t.glyphBOBuildTime,{mtime:0}),Le(e,t)}const He=ht(je,"vtkOpenGLGlyph3DMapper");ie("vtkGlyph3DMapper",He);function ze(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DCellArrayMapper");const r={...e};e.setGlyphInstances=n=>{t.glyphInstances=n},e.updateBuffers=()=>{r.updateBuffers(),e.setNumberOfInstances(t.glyphInstances)},e.replaceShaderPosition=(n,a,s)=>{const i=a.getShaderDescription("vertex");i.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i.addBuiltinOutput("vec4","@builtin(position) Position"),i.hasOutput("vertexVC")||i.addOutput("vec3","vertexVC");let o=i.getCode();o=j.substitute(o,"//VTK::Position::Impl",[" var vertexSC: vec4 = mapperUBO.BCSCMatrix*glyphSSBO.values[input.instanceIndex].matrix*vertexBC;"," output.vertexVC = (rendererUBO.SCVCMatrix*vertexSC).xyz;"," output.Position = rendererUBO.SCPCMatrix*vertexSC;"]).result,i.setCode(o)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderNormal=(n,a,s)=>{if(s.hasAttribute("normalMC")){const i=a.getShaderDescription("vertex");let o=i.getCode();o=j.substitute(o,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals"," * mapperUBO.MCWCNormals"," * glyphSSBO.values[input.instanceIndex].normal*normalMC).xyz);"]).result,i.setCode(o)}r.replaceShaderNormal(n,a,s)},t.shaderReplacements.set("replaceShaderNormal",e.replaceShaderNormal),e.replaceShaderColor=(n,a,s)=>{if(!t.renderable.getColorArray()){r.replaceShaderColor(n,a,s);return}const i=a.getShaderDescription("vertex");i.addOutput("vec4","color");let o=i.getCode();o=j.substitute(o,"//VTK::Color::Impl",[" output.color = glyphSSBO.values[input.instanceIndex].color;"]).result,i.setCode(o);const l=a.getShaderDescription("fragment");o=l.getCode(),o=j.substitute(o,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,l.setCode(o)},t.shaderReplacements.set("replaceShaderColor",e.replaceShaderColor),e.replaceShaderSelect=(n,a,s)=>{if(n.includes("sel")){const i=a.getShaderDescription("vertex");i.addOutput("u32","compositeID","flat");let o=i.getCode();o=j.substitute(o,"//VTK::Select::Impl",[" output.compositeID = input.instanceIndex;"]).result,i.setCode(o);const l=a.getShaderDescription("fragment");o=l.getCode(),o=j.substitute(o,"//VTK::Select::Impl",["var compositeID: u32 = input.compositeID;"]).result,l.setCode(o)}},t.shaderReplacements.set("replaceShaderSelect",e.replaceShaderSelect)}function Ke(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,{},r),fe.extend(e,t,r),ze(e,t)}const Ye=ht(Ke,"vtkWebGPUGlyph3DCellArrayMapper");function Ie(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DMapper"),e.createCellArrayMapper=()=>{const r=Ye();return r.setSSBO(t.SSBO),r.setRenderable(t.renderable),r},e.buildPass=r=>{if(r){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.renderable.getStatic()||t.renderable.update();const n=t.renderable.getInputData(1);t.renderable.mapScalars(n,1),e.updateSSBO(),e.updateCellArrayMappers(n);for(let a=0;a{t.currentInput=t.renderable.getInputData(1),t.renderable.buildArrays();const r=t.renderable.getMatrixArray(),n=t.renderable.getNormalArray();if(t.carray=t.renderable.getColorArray(),t.numInstances=r.length/16,t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){t.WebGPURenderWindow=e.getFirstAncestorOfType("vtkWebGPURenderWindow");const a=t.WebGPURenderWindow.getDevice();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(t.numInstances),t.SSBO.addEntry("matrix","mat4x4"),t.SSBO.addEntry("normal","mat4x4"),t.carray&&t.SSBO.addEntry("color","vec4"),t.SSBO.setAllInstancesFromArray("matrix",r),t.SSBO.setAllInstancesFromArray3x3To4x4("normal",n),t.carray&&t.SSBO.setAllInstancesFromArrayColorToFloat("color",t.carray.getData()),t.SSBO.send(a),t.glyphBOBuildTime.modified()}}}const Pe={};function Xe(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Pe,r),pe.extend(e,t,r),t.glyphBOBuildTime={},At(t.glyphBOBuildTime,{mtime:0}),t.SSBO=de.newInstance({label:"glyphSSBO"}),Ie(e,t)}const qe=ht(Xe,"vtkWebGPUGlyph3DMapper");ge("vtkGlyph3DMapper",qe);const Ze={DEFAULT:0,GEOMETRY:1,SLICE:2,VOLUME:3,YZ_PLANE:4,XZ_PLANE:5,XY_PLANE:6},tt={PICKING_BUFFER:0,FRONT_BUFFER:1},Je={MOUSE_MOVE:0,MOUSE_RELEASE:1};var Wt={ViewTypes:Ze,RenderingTypes:tt,CaptureOn:Je};const Lt=.5;function Qe(e,t){t.classHierarchy.push("vtkAbstractWidget"),t.actorToRepresentationMap=new WeakMap,e.getBounds=t.widgetState.getBounds,e.getNestedProps=()=>t.representations,e.activateHandle=r=>{let{selectedState:n,representation:a}=r;t.widgetState.activateOnly(n),t.activeState=n,n&&n.updateManipulator&&n.updateManipulator(),e.invokeActivateHandle({selectedState:n,representation:a}),e.updateCursor&&e.updateCursor()},e.deactivateAllHandles=()=>{t.widgetState.deactivate()},e.hasActor=r=>t.actorToRepresentationMap.has(r),e.grabFocus=()=>{t.hasFocus=!0},e.loseFocus=()=>{t.hasFocus=!1},e.hasFocus=()=>t.hasFocus,e.placeWidget=r=>t.widgetState.placeWidget(r),e.getPlaceFactor=()=>t.widgetState.getPlaceFactor(),e.setPlaceFactor=r=>t.widgetState.setPlaceFactor(r),e.getRepresentationFromActor=r=>t.actorToRepresentationMap.get(r),e.updateRepresentationForRender=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:tt.FRONT_BUFFER;for(let n=0;nt._factory.getViewWidgets(),e.setPriority(Lt)}const tn={contextVisibility:!0,handleVisibility:!0,hasFocus:!1};function Gt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,tn,r),Rt.extend(e,t,r),he.extend(e,t,r),y.setGet(e,t,["contextVisibility","handleVisibility","_widgetManager"]),y.get(e,t,["representations","widgetState","activeState"]),y.moveToProtected(e,t,["widgetManager"]),y.event(e,t,"ActivateHandle"),Qe(e,t)}const en=y.newInstance(Gt,"vtkAbstractWidget");var nn={newInstance:en,extend:Gt};const{ViewTypes:yt,RenderingTypes:wt,CaptureOn:pt}=Wt,{vtkErrorMacro:rn}=y;let an=1;function jt(e){const t=e.getActiveCamera(),r=e.getRenderWindow(),n=r.getInteractor(),a=n.getView();return{renderer:e,renderWindow:r,interactor:n,apiSpecificRenderWindow:a,camera:t}}function nt(e,t){const{dispHeightFactor:r,cameraPosition:n,cameraDir:a,isParallel:s,rendererPixelDims:i}=t;let o=1;if(s)o=r;else{const v=[...e];P.subtract(v,n,v),o=P.dot(v,a)*r}const l=i[1];return o/l}function sn(e,t){t.viewId||(t.viewId=`view-${an++}`),t.classHierarchy.push("vtkWidgetManager");const r=new WeakMap,n=[];function a(u){const f=u.getRepresentations();for(let p=0;p{z.getNestedProps().forEach(G=>{G.getScaleInPixels()&&G.setDisplayScaleParams({dispHeightFactor:U,cameraPosition:F,cameraDir:b,isParallel:B,rendererPixelDims:k})})})}}async function o(u,f,p){const{position:d}=u,{requestCount:m,selectedState:x,representation:S,widget:C}=await e.getSelectedDataForXY(d.x,d.y);if(m||p!==t._currentUpdateSelectionCallID)return;function M(k){f&&t._interactor.invokeLeftButtonRelease(u),k.activateHandle({selectedState:x,representation:S}),f&&t._interactor.invokeLeftButtonPress(u)}t._apiSpecificRenderWindow.setCursor(C?"pointer":"default"),t.activeWidget=null;let D=!1;if(t.widgetInFocus===C&&C.hasFocus())M(C),t.activeWidget=C,D=!0;else for(let k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;if(!t.isAnimating&&t.pickingEnabled&&u.pokedRenderer===t._renderer){const p=Symbol("UpdateSelection");t._currentUpdateSelectionCallID=p,await o(u,f,p)}};function v(u){u.updateRepresentationForRender(t.renderingType)}function O(){t.renderingType=wt.PICKING_BUFFER,t.widgets.forEach(v)}function T(){t.renderingType=wt.FRONT_BUFFER,t.widgets.forEach(v)}async function w(u,f,p,d){if(t._captureInProgress){await t._captureInProgress;return}O(),t._capturedBuffers=null,t._captureInProgress=t._selector.getSourceDataAsync(t._renderer,u,f,p,d),t._capturedBuffers=await t._captureInProgress,t._captureInProgress=null,t.previousSelectedData=null,T()}e.enablePicking=()=>{t.pickingEnabled=!0,e.renderWidgets()},e.renderWidgets=()=>{if(t.pickingEnabled&&t.captureOn===pt.MOUSE_RELEASE){const[u,f]=t._apiSpecificRenderWindow.getSize();w(0,0,u,f)}T(),e.modified()},e.disablePicking=()=>{t.pickingEnabled=!1},e.setRenderer=u=>{const f=jt(u);for(Object.assign(t,f),y.moveToProtected({},t,Object.keys(f));n.length;)n.pop().unsubscribe();t._selector=t._apiSpecificRenderWindow.createSelector(),t._selector.setFieldAssociation(ye.FIELD_ASSOCIATION_POINTS),n.push(t._apiSpecificRenderWindow.onWindowResizeEvent(i)),n.push(t._camera.onModified(i)),i(),n.push(t._interactor.onStartAnimation(()=>{t.isAnimating=!0})),n.push(t._interactor.onEndAnimation(()=>{t.isAnimating=!1,e.renderWidgets()})),n.push(t._interactor.onMouseMove(p=>(l(p),y.VOID))),n.push(t._interactor.onLeftButtonPress(p=>{const{deviceType:d}=p,m=d==="touch"||d==="pen";return m&&l(p,m),y.VOID},Lt/2)),e.modified(),t.pickingEnabled&&e.enablePicking()};function E(u){u.setWidgetManager(e),a(u),i(),t._renderer.addActor(u)}e.addWidget=(u,f,p)=>{if(!t._renderer)return rn("Widget manager MUST BE link to a view before registering widgets"),null;const{viewId:d,_renderer:m}=t,x=u.getWidgetForView({viewId:d,renderer:m,viewType:f||yt.DEFAULT,initialValues:p});return x!=null&&t.widgets.indexOf(x)===-1&&(t.widgets.push(x),E(x),e.modified()),x};function c(u){t._renderer.removeActor(u),u.delete()}function g(){t._renderer.getRenderWindow().getInteractor().render(),e.renderWidgets()}e.removeWidgets=()=>{t.widgets.forEach(c),t.widgets=[],t.widgetInFocus=null,g()},e.removeWidget=u=>{const f=s(u),p=t.widgets.indexOf(f);p!==-1&&(t.widgets.splice(p,1),t.widgetInFocus===f&&e.releaseFocus(),c(f),g())},e.getSelectedDataForXY=async(u,f)=>{if(t.selections=null,t.pickingEnabled){if(!t._capturedBuffers||t.captureOn===pt.MOUSE_MOVE)await w(u,f,u,f);else{const p=t._capturedBuffers.area;(up[2]||fp[3])&&await w(u,f,u,f)}t.selections=t._capturedBuffers.generateSelection(u,f,u,f)}return e.getSelectedData()},e.getSelectedData=()=>{if(!t.selections||!t.selections.length)return t.previousSelectedData=null,{};const{propID:u,compositeID:f,prop:p}=t.selections[0].getProperties();let{widget:d,representation:m}=t.selections[0].getProperties();if(t.previousSelectedData&&t.previousSelectedData.prop===p&&t.previousSelectedData.widget===d&&t.previousSelectedData.compositeID===f)return t.previousSelectedData.requestCount++,t.previousSelectedData;if(r.has(p)){const x=r.get(p);d=x.widget,m=x.representation}if(d&&m){const x=m.getSelectedState(p,f);return t.previousSelectedData={requestCount:0,propID:u,compositeID:f,prop:p,widget:d,representation:m,selectedState:x},t.previousSelectedData}return t.previousSelectedData=null,{}},e.grabFocus=u=>{const f=s(u);t.widgetInFocus&&t.widgetInFocus!==f&&t.widgetInFocus.loseFocus(),t.widgetInFocus=f,t.widgetInFocus&&t.widgetInFocus.grabFocus()},e.releaseFocus=()=>e.grabFocus(null);const h=e.delete;e.delete=()=>{for(;n.length;)n.pop().unsubscribe();h()}}const on={viewId:null,widgets:[],activeWidget:null,renderer:null,viewType:yt.DEFAULT,isAnimating:!1,pickingEnabled:!0,selections:null,previousSelectedData:null,widgetInFocus:null,captureOn:pt.MOUSE_MOVE};function Ht(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,on,r),y.obj(e,t),y.setGet(e,t,["captureOn",{type:"enum",name:"viewType",enum:yt}]),y.get(e,t,["selections","widgets","viewId","pickingEnabled","activeWidget"]),sn(e,t)}const cn=y.newInstance(Ht,"vtkWidgetManager");var Ka={newInstance:cn,extend:Ht,Constants:Wt,getPixelWorldHeightAtCoord:nt};function ln(){}function un(e,t){t.classHierarchy.push("vtkAbstractWidgetFactory");const r={};e.getWidgetForView=a=>{let{viewId:s,renderer:i,viewType:o,initialValues:l}=a;if(!r[s]){if(!i)return null;const{interactor:v,apiSpecificRenderWindow:O,camera:T}=jt(i),w={},E={};y.obj(E,w),Object.assign(E,{onWidgetChange:e.onWidgetChange}),Object.assign(w,{widgetState:t.widgetState,manipulator:t.manipulator,viewType:o,renderer:i,camera:T,apiSpecificRenderWindow:O,factory:e}),y.moveToProtected(E,w,["renderer","camera","apiSpecificRenderWindow","factory"]),y.get(E,w,["viewType"]),y.safeArrays(w),nn.extend(E,w,l);const c=l;w.representations=e.getRepresentationsForViewType(o).map(h=>{let{builder:u,labels:f,initialValues:p}=h;return u.newInstance({_parentProp:E,labels:f,...p,...c})}),w.representations.forEach(h=>{h.setInputData(w.widgetState),h.getActors().forEach(u=>{w.actorToRepresentationMap.set(u,h)})}),t.behavior(E,w),["coincidentTopologyParameters",...t.methodsToLink||[]].forEach(h=>{const u=`set${y.capitalize(h)}`,f=`get${y.capitalize(h)}`,p={[h]:[],[u]:[],[f]:[]};w.representations.forEach(d=>{d[h]&&p[h].push(d[h]),d[u]&&p[u].push(d[u]),d[f]&&p[f].push(d[f])}),Object.keys(p).forEach(d=>{const m=p[d];m.length===1?E[d]=m[0]:m.length>1&&(E[d]=y.chain(...m))})}),E.delete=y.chain(()=>{delete r[s]},E.delete),E.setInteractor(v);const g=Object.freeze(E);return r[s]=g,g}return r[s]},e.getViewIds=()=>Object.keys(r),e.getViewWidgets=()=>Object.values(r),e.setVisibility=a=>{const s=Object.keys(r);for(let i=0;i{const s=Object.keys(r);for(let i=0;i{const s=Object.keys(r);for(let i=0;i{const s=Object.keys(r);for(let i=0;i{const s=Object.keys(r);for(let i=0;it.widgetState.placeWidget(a),e.getPlaceFactor=()=>t.widgetState.getPlaceFactor(),e.setPlaceFactor=a=>t.widgetState.setPlaceFactor(a);let n=ln;e.delete=y.chain(e.delete,()=>n()),t.widgetState&&(n=t.widgetState.onModified(()=>e.invokeWidgetChange(t.widgetState)).unsubscribe)}function zt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,r),y.obj(e,t),y.get(e,t,["widgetState"]),y.event(e,t,"WidgetChange"),un(e,t)}const gn=y.newInstance(zt,"vtkAbstractWidget");var Ya={newInstance:gn,extend:zt};const Kt={DIRECTION:0,ROTATION:1,MATRIX:2},fn={SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2};var Yt={OrientationModes:Kt,ScaleModes:fn};const{OrientationModes:$,ScaleModes:A}=Yt,{vtkErrorMacro:pn}=y;function dn(e,t){t.classHierarchy.push("vtkGlyph3DMapper"),e.getOrientationModeAsString=()=>y.enumToString($,t.orientationMode),e.setOrientationModeToDirection=()=>e.setOrientationMode($.DIRECTION),e.setOrientationModeToRotation=()=>e.setOrientationMode($.ROTATION),e.setOrientationModeToMatrix=()=>e.setOrientationMode($.MATRIX),e.getOrientationArrayData=()=>{const r=e.getInputData(0);return!r||!r.getPointData()?null:t.orientationArray?r.getPointData().getArray(t.orientationArray):r.getPointData().getVectors()},e.getScaleModeAsString=()=>y.enumToString(A,t.scaleMode),e.setScaleModeToScaleByMagnitude=()=>e.setScaleMode(A.SCALE_BY_MAGNITUDE),e.setScaleModeToScaleByComponents=()=>e.setScaleMode(A.SCALE_BY_COMPONENTS),e.setScaleModeToScaleByConstant=()=>e.setScaleMode(A.SCALE_BY_CONSTANT),e.getScaleArrayData=()=>{const r=e.getInputData(0);return!r||!r.getPointData()?null:t.scaleArray?r.getPointData().getArray(t.scaleArray):r.getPointData().getScalars()},e.getBounds=()=>{const r=e.getInputData(0),n=e.getInputData(1);return!r||!n?Se():(e.buildArrays(),t.bounds)},e.buildArrays=()=>{const r=e.getInputData(0),n=e.getInputData(1);if(t.buildTime.getMTime()t.bounds[1]&&(t.bounds[1]=O[0]),O[1]>t.bounds[3]&&(t.bounds[3]=O[1]),O[2]>t.bounds[5]&&(t.bounds[5]=O[2]);const C=new Float32Array(u,x*36,9);Oe(C,S),Te(C,C),we(C,C)}const d=e.getAbstractScalars(r,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;const m=e.getLookupTable();m&&d&&(m.build(),t.colorArray=m.mapScalars(d,t.colorMode,0)),t.buildTime.modified()}},e.getPrimitiveCount=()=>{const r=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*r.getPoints().getNumberOfValues()/3,verts:n*(r.getVerts().getNumberOfValues()-r.getVerts().getNumberOfCells()),lines:n*(r.getLines().getNumberOfValues()-2*r.getLines().getNumberOfCells()),triangles:n*(r.getPolys().getNumberOfValues()-3*r.getLines().getNumberOfCells())}},e.setSourceConnection=r=>e.setInputConnection(r,1)}const hn={orient:!0,orientationMode:$.DIRECTION,orientationArray:null,scaling:!0,scaleFactor:1,scaleMode:A.SCALE_BY_MAGNITUDE,scaleArray:null,matrixArray:null,normalArray:null,colorArray:null};function It(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,hn,r),Ut.extend(e,t,r),y.algo(e,t,2,0),t.buildTime={},y.obj(t.buildTime,{mtime:0}),t.boundsTime={},y.obj(t.boundsTime,{mtime:0}),y.setGet(e,t,["orient","orientationMode","orientationArray","scaleArray","scaleFactor","scaleMode","scaling"]),y.get(e,t,["colorArray","matrixArray","normalArray","buildTime"]),dn(e,t)}const yn=y.newInstance(It,"vtkGlyph3DMapper");var Pt={newInstance:yn,extend:It,...Yt};const H={HANDLE:0,CONTEXT:1},{vtkErrorMacro:Sn,vtkWarningMacro:vn}=y,xn=["active","inactive","static"];function Et(e,t){e&&e.setResolveCoincidentTopologyToPolygonOffset&&(e.setResolveCoincidentTopologyToPolygonOffset(),Ee.forEach(r=>{if(t[r]){const n=`setRelativeCoincidentTopology${r}OffsetParameters`;if(e[n]){const{factor:a,offset:s}=t[r];e[n](a,s)}}}))}function Cn(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{const i=a[s];e.forEach(o=>{i[o]||(i[o]={}),r.filter(l=>l&&l[s]&&l[s][o]).forEach(l=>Object.assign(i[o],l[s][o]))})}),a}function Mn(e,t,r){r?Object.keys(e).forEach(n=>{const a=e[n].actor===r?t.active[n]:t.inactive[n];a&&e[n].actor.getProperty().set(a)}):(Object.keys(t.static).forEach(n=>{e[n]&&e[n].actor.getProperty().set(t.static[n])}),Object.keys(t.inactive).forEach(n=>{e[n]&&e[n].actor.getProperty().set(t.inactive[n])}))}function mn(e){let t=e.source;e.filter&&(t.isA("vtkDataSet")?e.filter.setInputData(t):e.filter.setInputConnection(t.getOutputPort()),t=e.filter),t&&(t.isA("vtkDataSet")?e.mapper.setInputData(t):e.mapper.setInputConnection(t.getOutputPort())),e.glyph&&e.mapper.setInputConnection(e.glyph.getOutputPort(),1),e.actor.setMapper(e.mapper)}function L(e,t,r,n,a){var i;let s=((i=e[`get${y.capitalize(t)}`])==null?void 0:i.call(e))||e.getPointData().getArrayByName(t);if(!s||n!==void 0&&s.getDataType()!==n||a!==void 0&&s.getNumberOfComponents()!==a){let o=De,l=n,v=a;t==="points"?(o=ke,l=l??"Float32Array",v=a??3):Mt.includes(t)?(o=Fe,l=l??"Uint16Array",v=a??1):(l=l??"Float32Array",v=a??1),s=o.newInstance({name:t,dataType:l,numberOfComponents:v,size:v*r,empty:r===0}),t==="points"||Mt.includes(t)?e[`set${y.capitalize(t)}`](s):e.getPointData().addArray(s)}else s.getNumberOfTuples()!==r&&s.resize(r);return s}function On(e,t){t.classHierarchy.push("vtkWidgetRepresentation");const r={mtimes:{},states:[]};t._onCoincidentTopologyParametersChanged=()=>{e.getActors().forEach(n=>{Et(n.getMapper(),t.coincidentTopologyParameters)})},e.getActors=()=>t.actors,e.getNestedProps=e.getActors,e.setLabels=function(){for(var n=arguments.length,a=new Array(n),s=0;s0&&arguments[0]!==void 0?arguments[0]:t.inputData[0];return r.mtimes.representation===e.getMTime()&&r.mtimes.input===n.getMTime()||(r.mtimes.representation=e.getMTime(),r.mtimes.input=n.getMTime(),r.states=[],t.labels.forEach(a=>{r.states=r.states.concat(n.getStatesWithLabel(a)||[])})),r.states},e.getSelectedState=(n,a)=>{const s=e.getRepresentationStates();return a0&&arguments[0]!==void 0?arguments[0]:tt.FRONT_BUFFER,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=!0;switch(t.behavior){case H.HANDLE:i=n===tt.PICKING_BUFFER||s;break;case H.CONTEXT:i=a;break;default:i=!0;break}const o=i;for(let l=0;le.addActor(i))},e.addActor=n=>{Et(n.getMapper(),t.coincidentTopologyParameters),Array.prototype.push.apply(t.actors,[n])},e.setLabels(t.labels)}function Tn(e){return{activeScaleFactor:1.2,activeColor:1,useActiveColor:!0,actors:[],labels:[],behavior:H.CONTEXT,coincidentTopologyParameters:{Point:{factor:-1,offset:-1},Line:{factor:-1,offset:-1},Polygon:{factor:-1,offset:-1}},scaleInPixels:!1,displayScaleParams:{dispHeightFactor:1,cameraPosition:[0,0,0],cameraDir:[1,0,0],isParallel:!1,rendererPixelDims:[1,1]},_internalArrays:{},...e}}function wn(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Rt.extend(e,t,Tn(r)),y.algo(e,t,1,1),y.get(e,t,["labels","displayScaleParams","coincidentTopologyParameters"]),y.set(e,t,[{type:"object",name:"displayScaleParams"},{type:"object",name:"coincidentTopologyParameters"}]),y.setGet(e,t,["scaleInPixels","activeScaleFactor","activeColor","useActiveColor"]),On(e,t)}var St={extend:wn,mergeStyles:Cn,applyStyles:Mn,connectPipeline:mn};function En(e,t){t.classHierarchy.push("vtkHandleRepresentation")}const Dn={behavior:H.HANDLE,pickable:!0,dragable:!0,scaleInPixels:!0};function kn(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n={...Dn,...r};St.extend(e,t,n),En(e,t)}var Fn={extend:kn};function bn(e,t){t.classHierarchy.push("vtkContextRepresentation")}const _n={behavior:H.CONTEXT,pickable:!1,dragable:!0};function Vn(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n={..._n,...r};St.extend(e,t,n),bn(e,t)}var Nn={extend:Vn};function Bn(e,t){return(r,n)=>{const a=L(r,"points",n.length).getData();let s=0;for(let i=0;i{L(r,"points",0)}}function Rn(e,t){return(r,n)=>{t._pipeline.mapper.setColorByArrayName("color");const a=L(r,"color",n.length,"Uint8Array",4),s=a.getData();let i=0;for(let o=0;o{t._pipeline.mapper.setColorByArrayName("color");const a=L(r,"color",n.length).getData();for(let s=0;s{t._pipeline.mapper.setColorByArrayName(null)}}function Wn(e,t){return(r,n)=>{var i;t._pipeline.mapper.setScaleArray("scale"),t._pipeline.mapper.setScaleFactor(1),t._pipeline.mapper.setScaling(!0),t._pipeline.mapper.setScaleMode(Pt.ScaleModes.SCALE_BY_COMPONENTS);const a=L(r,"scale",n.length,"Float32Array",3).getData();let s=0;for(let o=0;o{var s;t._pipeline.mapper.setScaleArray("scale"),t._pipeline.mapper.setScaleFactor(1),t._pipeline.mapper.setScaling(!0);const a=L(r,"scale",n.length).getData();for(let i=0;i{t._pipeline.mapper.setScaleArray(null),t._pipeline.mapper.setScaleFactor(t.defaultScale),t._pipeline.mapper.setScaling(t.defaultScale!==1)}}function jn(e,t){return(r,n)=>{t._pipeline.mapper.setOrientationArray("orientation"),t._pipeline.mapper.setOrientationMode(Kt.MATRIX);const a=L(r,"orientation",n.length,"Float32Array",9).getData();for(let s=0;s{t._pipeline.mapper.setOrientationArray(null)}}function zn(e,t){t.classHierarchy.push("vtkGlyphRepresentation");const r={...e},n=be.newInstance({mtime:0});function a(s){for(var i=arguments.length,o=new Array(i>1?i-1:0),l=1;l{var O,T;return((T=(O=s[0])==null?void 0:O[`get${y.capitalize(v)}`])==null?void 0:T.call(O))!=null})}e.getRepresentationStates=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:t.inputData[0];return r.getRepresentationStates(s).filter(i=>{var o,l;return((o=i.getOrigin)==null?void 0:o.call(i))&&(((l=i.isVisible)==null?void 0:l.call(i))??!0)})},e.getMixins=s=>{const i={};return a(s,"origin")?i.position=t.applyMixin.origin:i.position=t.applyMixin.noPosition,a(s,"color3")?i.color=t.applyMixin.color3:a(s,"color")?i.color=t.applyMixin.color:i.color=t.applyMixin.noColor,a(s,"scale3")?i.scale=t.applyMixin.scale3:a(s,"scale1")?i.scale=t.applyMixin.scale1:i.scale=t.applyMixin.noScale,a(s,"direction")?i.orientation=t.applyMixin.direction:i.orientation=t.applyMixin.noOrientation,i},e.requestData=(s,i)=>{const o=e.getRepresentationStates(s[0]);i[0]=n;const l=e.getMixins(o);Object.values(l).forEach(v=>v(n,o)),n.getPoints().modified(),n.modified()},St.connectPipeline(t._pipeline),e.addActor(t._pipeline.actor)}function Dt(e,t,r){var n,a,s,i,o,l,v,O,T,w,E,c,g,h;return{defaultScale:1,...r,_pipeline:{source:((n=r._pipeline)==null?void 0:n.source)??e,glyph:((a=r._pipeline)==null?void 0:a.glyph)??_e.newInstance({phiResolution:8,thetaResolution:8}),mapper:((s=r._pipeline)==null?void 0:s.mapper)??Pt.newInstance({scalarMode:Ve.USE_POINT_FIELD_DATA}),actor:((i=r._pipeline)==null?void 0:i.actor)??Ne.newInstance({parentProp:e}),...r._pipeline},applyMixin:{origin:((o=r.applyMixin)==null?void 0:o.origin)??Bn(e,t),noPosition:((l=r.applyMixin)==null?void 0:l.noPosition)??An(),color3:((v=r.applyMixin)==null?void 0:v.color3)??Rn(e,t),color:((O=r.applyMixin)==null?void 0:O.color)??Un(e,t),noColor:((T=r.applyMixin)==null?void 0:T.noColor)??$n(e,t),scale3:((w=r.applyMixin)==null?void 0:w.scale3)??Wn(e,t),scale1:((E=r.applyMixin)==null?void 0:E.scale1)??Ln(e,t),noScale:((c=r.applyMixin)==null?void 0:c.noScale)??Gn(e,t),direction:((g=r.applyMixin)==null?void 0:g.direction)??jn(e,t),noOrientation:((h=r.applyMixin)==null?void 0:h.noOrientation)??Hn(e,t),...r.applyMixin}}}function Xt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};r.behavior===H.CONTEXT?Nn.extend(e,t,Dt(e,t,r)):Fn.extend(e,t,Dt(e,t,r)),"lighting"in r&&t._pipeline.actor.getProperty().setLighting(r.lighting),y.setGet(e,t._pipeline,["defaultScale"]),y.get(e,t._pipeline,["glyph","mapper","actor"]),y.setGet(e,t.applyMixin,Object.keys(t.applyMixin)),zn(e,t)}const Kn=y.newInstance(Xt,"vtkGlyphRepresentation");var Ia={newInstance:Kn,extend:Xt};function Yn(e,t){t.classHierarchy.push("vtkPixelSpaceCallbackMapper"),t.callback||(t.callback=()=>{}),e.invokeCallback=(r,n,a,s,i)=>{if(!t.callback)return;const o=n.getCompositeProjectionMatrix(a,-1,1);Be(o,o);const l=r.getPoints(),v=new Float64Array(3),O=s.usize,T=s.vsize,w=O/2,E=T/2,c=[];for(let g=0;g2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,In,r),Ut.extend(e,t,r),y.setGet(e,t,["callback","useZValues"]),Yn(e,t)}const Pn=y.newInstance(qt,"vtkPixelSpaceCallbackMapper");var Pa={newInstance:Pn,extend:qt};function Xn(e,t){t.classHierarchy.push("vtkAbstractManipulator"),e.getOrigin=r=>t.userOrigin?t.userOrigin:t.useCameraFocalPoint?r.pokedRenderer.getActiveCamera().getFocalPoint():t.handleOrigin?t.handleOrigin:t.widgetOrigin?t.widgetOrigin:[0,0,0],e.getNormal=r=>t.userNormal?t.userNormal:t.useCameraNormal?r.pokedRenderer.getActiveCamera().getDirectionOfProjection():t.handleNormal?t.handleNormal:t.widgetNormal?t.widgetNormal:[0,0,1]}const qn={useCameraFocalPoint:!1,useCameraNormal:!1};function Zt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,qn,r),y.obj(e,t),y.setGet(e,t,["useCameraFocalPoint","useCameraNormal"]),y.setGetArray(e,t,["userOrigin","handleOrigin","widgetOrigin","userNormal","handleNormal","widgetNormal"],3),Xn(e,t)}const Zn=y.newInstance(Zt,"vtkAbstractManipulator");var Jn={extend:Zt,newInstance:Zn};function Jt(e,t,r,n,a,s){const i=s.displayToWorld(e,t,0,a),o=s.displayToWorld(e,t,1,a);return Ae.intersectWithLine(i,o,r,n).x}function Qn(e,t){t.classHierarchy.push("vtkPlaneManipulator"),e.handleEvent=(r,n)=>({worldCoords:Jt(r.position.x,r.position.y,e.getOrigin(r),e.getNormal(r),r.pokedRenderer,n)})}function tr(e){return{...e}}function Qt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Jn.extend(e,t,tr(r)),Qn(e,t)}const er=y.newInstance(Qt,"vtkPlaneManipulator");var Xa={intersectDisplayWithPlane:Jt,extend:Qt,newInstance:er};const at="default";function kt(e,t){const r=e.indexOf(t);r!==-1&&e.splice(r,1)}function nr(e,t){t.classHierarchy.push("vtkWidgetState");const r=[];t.labels={},t.nestedStates=[],e.bindState=function(n){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[at];if(t.nestedStates.push(n),r.push(n.onModified(e.modified)),Array.isArray(a)&&a.length)for(let s=0;s{for(;r.length;)r.pop().unsubscribe();kt(t.nestedStates,n);for(let a=0;a{const s=t.labels[a];kt(s,n)})},e.unbindAll=()=>{for(;r.length;)r.pop().unsubscribe();t.nestedStates=[]},e.activate=()=>e.setActive(!0),e.deactivate=n=>{n!==e&&e.setActive(!1);for(let a=0;a{n&&n.setActive(!0),e.deactivate(n)},e.getStatesWithLabel=n=>t.labels[n],e.getAllNestedStates=()=>t.nestedStates,e.delete=y.chain(e.unbindAll,e.delete)}const rr={active:!1};function ar(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,rr,r),y.obj(e,t),y.setGet(e,t,["active"]),nr(e,t)}var te={extend:ar};function ir(e,t){const r=[],n=[...N.INIT_BOUNDS];e.containsPoint=(a,s,i)=>Array.isArray(a)?N.containsPoint(n,a[0],a[1],a[2]):N.containsPoint(n,a,s,i),e.placeWidget=a=>{t.bounds=[];const s=[(a[0]+a[1])/2,(a[2]+a[3])/2,(a[4]+a[5])/2];for(let i=0;i<6;i++){const o=s[Math.floor(i/2)];r[i]=a[i],t.bounds[i]=(a[i]-o)*t.placeFactor+o}N.setBounds(n,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()},e.setPlaceFactor=a=>{if(t.placeFactor!==a){t.placeFactor=a,t.bounds=[];const s=[(r[0]+r[1])/2,(r[2]+r[3])/2,(r[4]+r[5])/2];for(let i=0;i<6;i++){const o=s[Math.floor(i/2)];t.bounds[i]=(r[i]-o)*t.placeFactor+o}N.setBounds(n,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()}}}const sr={bounds:[-1,1,-1,1,-1,1],placeFactor:1};function or(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,sr,r),y.setGetArray(e,t,["bounds"],6),y.get(e,t,["placeFactor"]),y.event(e,t,"BoundsChange"),t.bounds=t.bounds.slice(),ir(e,t)}var ee={extend:or};const cr={color:.5};function lr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,cr,r),y.setGet(e,t,["color"])}var ur={extend:lr};const gr={color3:[255,255,255],opacity:255};function fr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,gr,r),y.setGetArray(e,t,["color3"],3,255),y.setGet(e,t,["opacity"])}var pr={extend:fr};function dr(e,t){e.translate=(r,n,a)=>{const[s,i,o]=e.getCornerByReference();e.setCorner(s+r,i+n,o+a)}}const hr={corner:[0,0,0]};function yr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,hr,r),y.setGetArray(e,t,["corner"],3),dr(e)}var Sr={extend:yr};function vr(e,t){const r=t.angleUnit==="degree"?mt.buildFromDegree():mt.buildFromRadian();e.rotateFromDirections=(n,a)=>{r.identity().rotateFromDirections(n,a).apply(t.direction),e.modified()},e.rotate=(n,a)=>{r.identity().rotate(n,a).apply(t.direction)},e.rotateX=n=>{r.identity().rotateX(n).apply(t.direction)},e.rotateY=n=>{r.identity().rotateY(n).apply(t.direction)},e.rotateZ=n=>{r.identity().rotateZ(n).apply(t.direction)}}const xr={direction:[1,0,0]};function Cr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,xr,r),y.setGetArray(e,t,["direction"],3),vr(e,t)}var Mr={extend:Cr};function mr(e,t){e.updateManipulator=()=>{if(t.manipulator){const{origin:r,normal:n,direction:a}=t,{setHandleOrigin:s,setHandleCenter:i,setHandleNormal:o,setHandleDirection:l}=t.manipulator;r&&s?s(r):r&&i&&i(r),a&&l?l(a):a&&!n&&o?o(a):n&&l&&l(n)}}}const Or={manipulator:null};function Tr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Or,r),y.setGet(e,t,["manipulator"]),mr(e,t)}var wr={extend:Tr};const Er={name:""};function Dr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Er,r),y.setGet(e,t,["name"])}var kr={extend:Dr};function it(e,t){return e.length===3&&t.length===3&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Fr(e,t,r,n){return it(e,n.o)&&it(t,n.p1)&&it(r,n.p2)}function br(e,t){const r={o:[],p1:[],p2:[]};e.normalize=()=>{rt(t.up),rt(t.right),rt(t.direction),e.modified()},e.updateFromOriginRightUp=(n,a,s)=>{Fr(n,a,s,r)||(r.o=n.slice(),r.p1=a.slice(),r.p2=s.slice(),t.up=[s[0]-n[0],s[1]-n[1],s[2]-n[2]],t.right=[a[0]-n[0],a[1]-n[1],a[2]-n[2]],Ot(t.up,t.right,t.direction),Ot(t.direction,t.up,t.right),e.normalize(),e.modified())}}const _r={up:[0,1,0],right:[1,0,0],direction:[0,0,1]};function Vr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,_r,r),y.setGetArray(e,t,["up","right","direction"],3),br(e,t)}var Nr={extend:Vr};function Br(e,t){const r={...e};e.translate=(n,a,s)=>{const[i,o,l]=e.getOriginByReference();e.setOrigin(i+n,o+a,l+s)},e.getOrigin=n=>{const a=r.getOrigin();if(!t.offset)return a;if(!n)return P.add(a,t.offset,a);const s=nt(a,n),{rendererPixelDims:i}=n,o=Math.min(i[0],i[1]);return P.multiplyAccumulate(a,t.offset,o*s,a)}}const Ar={origin:null,offset:null};function Rr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Ar,r),y.setGetArray(e,t,["origin","offset"],3),Br(e,t)}var Ur={extend:Rr};const $r={scale1:.5};function Wr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,$r,r),y.setGet(e,t,["scale1"])}var Lr={extend:Wr};const Gr={scale3:[1,1,1]};function jr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Gr,r),y.setGetArray(e,t,["scale3"],3)}var Hr={extend:jr};const zr={text:"DefaultText"};function Kr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,zr,r),y.setGet(e,t,["text"])}var Yr={extend:Kr};const Ir={visible:!0};function Pr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,Ir,r),y.setGet(e,t,["visible"]),e.isVisible=e.getVisible}var Xr={extend:Pr};const qr={shape:""};function Zr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(t,qr,r),y.setGet(e,t,["shape"])}var Jr={extend:Zr};const{vtkErrorMacro:Qr}=y,ta={bounds:ee,color:ur,color3:pr,corner:Sr,direction:Mr,manipulator:wr,name:kr,orientation:Nr,origin:Ur,scale1:Lr,scale3:Hr,text:Yr,visible:Xr,shape:Jr};function st(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1)||te.extend(r,n,t);for(let s=0;s{const l=st(n,{...s,...o});return this.publicAPI.bindState(l,r),this.model[i].push(l),this.publicAPI.modified(),l},this.publicAPI[`remove${y.capitalize(a)}`]=o=>{let l=this.model[i].indexOf(o);l===-1&&othis.model[i].slice(),this.publicAPI[`clear${y.capitalize(a)}List`]=()=>{for(;this.model[i].length;){const o=this.model[i].pop();o&&this.publicAPI.unbindState(o)}this.publicAPI.modified()},this}addStateFromMixin(t){let{labels:r,mixins:n,name:a,initialValues:s}=t;const i=st(n,s);return this.model[a]=i,this.publicAPI.bindState(i,r),y.setGet(this.publicAPI,this.model,[a]),this}addStateFromInstance(t){let{labels:r,name:n,instance:a}=t;return this.model[n]=a,this.publicAPI.bindState(a,r),y.setGet(this.publicAPI,this.model,[n]),this}addField(t){let{name:r,initialValue:n}=t;return Array.isArray(n)?y.setGetArray(this.publicAPI,this.model,[r],n.length):y.setGet(this.publicAPI,this.model,[r]),this.model[r]=n,this}build(){for(var t=arguments.length,r=new Array(t),n=0;n0?C:S.length,k=M>0?M:S.length,F=C!==-1||M!==-1?S.slice(0,Math.min(D,k)):S,b=c.elm=V(m)&&V(d=m.ns)?a.createElementNS(d,F,m):a.createElement(F,m);for(D0&&b.setAttribute("class",S.slice(k+1).replace(/\./g," ")),d=0;d{const[c,g]=a.getSize(),h=window.devicePixelRatio||1;return{width:c/h,height:g/h,viewBox:`0 0 ${c} ${g}`}},o=c=>{const g=r(c,{size:a.getSize()}),h=n(g,ct);return ct("svg",{attrs:i(),style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%","pointer-events":"none"}},Array.isArray(h)?h:[h])},l=ja(s);let v=ut(l,o(t));const O=()=>{v=ut(v,o(t))},T=t.onModified(()=>O()),w=e.getActiveCamera().onModified(()=>O()),E=new ResizeObserver(()=>O());return E.observe(s),()=>{T.unsubscribe(),w.unsubscribe(),E.disconnect(),ut(v,ct("!")),v=null}}function Ha(e){let t=!1;return{...e,pointerdown(r){var n;return t=!0,(n=e==null?void 0:e.pointerdown)==null?void 0:n.call(e,r)},pointerenter(r){var n;return t&&(t=!1),(n=e==null?void 0:e.pointerenter)==null?void 0:n.call(e,r)},pointerleave(r){var n;if(!t)return(n=e==null?void 0:e.pointerleave)==null?void 0:n.call(e,r)}}}function Qa(e){return e.data.style={...e.data.style,"pointer-events":"all"},e.data.on=Ha(e.data.on),e}export{H as B,Kt as O,tt as R,J as V,Qa as a,Ja as b,Ia as c,Pa as d,qa as e,Ya as f,Ze as g,Xa as h,L as i,St as j,nt as k,Za as m,Ka as v};