1 |
- 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<t.primTypes.End;g++){const h=t.primitives[g].getCABO();if(h.getElementCount()){t.drawingEdges=o&&(g===t.primTypes.TrisEdges||g===t.primTypes.TriStripsEdges),t.lastBoundBO=t.primitives[g],t.primitives[g].updateShaders(n,a,e);const u=t.primitives[g].getProgram(),f=t.primitives[g].getOpenGLMode(s),p=u.isUniformUsed("normalMatrix"),d=u.isUniformUsed("MCVCMatrix");if(t.hardwareSupport)t.extension?t.extension.drawArraysInstancedANGLE(f,0,h.getElementCount(),E):i.drawArraysInstanced(f,0,h.getElementCount(),E);else for(let m=0;m<E;++m)c&&t._openGLRenderer.getSelector().renderCompositeIndex(m),e.updateGlyphShaderParameters(p,d,t.primitives[g],w,O,T,m,c?t._openGLRenderer.getSelector():null),i.drawArrays(f,0,h.getElementCount())}}},e.setMapperShaderParameters=(n,a,s)=>{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()<t.renderable.getBuildTime().getMTime()?!0:r.getNeedToRebuildBufferObjects(n,a)),e.getNeedToRebuildShaders=(n,a,s)=>!!(r.getNeedToRebuildShaders(n,a,s)||n.getShaderSourceTime().getMTime()<t.renderable.getMTime()||n.getShaderSourceTime().getMTime()<t.currentInput.getMTime()),e.buildBufferObjects=(n,a)=>{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;O<l;++O){let T=O+1;const w=O*4;v[w]=T%256,T-=v[w],T/=256,v[w+1]=T%256,T-=v[w+1],T/=256,v[w+2]=T%256,v[w+3]=255}t.pickBuffer.upload(v,q.ARRAY_BUFFER),t.glyphBOBuildTime.modified()}}return r.buildBufferObjects(n,a)}}const Ge={normalMatrix:null,mcpcMatrix:null,mcwcMatrix:null};function je(e,t){let r=arguments.length>2&&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<f32>","@builtin(position) Position"),i.hasOutput("vertexVC")||i.addOutput("vec3<f32>","vertexVC");let o=i.getCode();o=j.substitute(o,"//VTK::Position::Impl",[" var vertexSC: vec4<f32> = 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<f32>","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.children.length;a++)t.children[a].setGlyphInstances(t.numInstances)}},e.updateSSBO=()=>{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<f32>"),t.SSBO.addEntry("normal","mat4x4<f32>"),t.carray&&t.SSBO.addEntry("color","vec4<f32>"),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;n<t.representations.length;n++)t.representations[n].updateActorVisibility(r,t.contextVisibility,t.handleVisibility)},e.getViewWidgets=()=>t._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<f.length;p++){const d=f[p],m={widget:u,representation:d},x=d.getActors();for(let S=0;S<x.length;S++){const C=x[S];r.set(C,m)}}}function s(u){return u&&(u.isA("vtkAbstractWidget")?u:u.getWidgetForView({viewId:t.viewId}))}function i(){const{_apiSpecificRenderWindow:u,_camera:f,_renderer:p}=t;if(p&&u&&f){const[d,m]=u.getSize(),[x,S,C,M]=p.getViewport(),D=u.getComputedDevicePixelRatio(),k=[d*(C-x)/D,m*(M-S)/D],F=f.getPosition(),b=f.getDirectionOfProjection(),B=f.getParallelProjection(),U=B?2*f.getParallelScale():2*Math.tan(P.radiansFromDegrees(f.getViewAngle())/2);t.widgets.forEach(z=>{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;k<t.widgets.length;k++){const F=t.widgets[k];F===C&&F.getNestedPickable()?(M(F),t.activeWidget=F,D=!0):(D||(D=!!F.getActiveState()),F.deactivateAllHandles())}D&&t._interactor.render()}const l=async function(u){let f=arguments.length>1&&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;(u<p[0]||u>p[2]||f<p[1]||f>p[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<s.length;i++)r[s[i]].setVisibility(a)},e.setPickable=a=>{const s=Object.keys(r);for(let i=0;i<s.length;i++)r[s[i]].setPickable(a)},e.setDragable=a=>{const s=Object.keys(r);for(let i=0;i<s.length;i++)r[s[i]].setDragable(a)},e.setContextVisibility=a=>{const s=Object.keys(r);for(let i=0;i<s.length;i++)r[s[i]].setContextVisibility(a)},e.setHandleVisibility=a=>{const s=Object.keys(r);for(let i=0;i<s.length;i++)r[s[i]].setHandleVisibility(a)},e.placeWidget=a=>t.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()<n.getMTime()||t.buildTime.getMTime()<r.getMTime()||t.buildTime.getMTime()<e.getMTime()){const a=r.getPoints().getData();let s=e.getScaleArrayData(),i=null,o=0;s&&(i=s.getData(),o=s.getNumberOfComponents()),t.scaling&&s&&t.scaleMode===A.SCALE_BY_COMPONENTS&&s.getNumberOfComponents()!==3&&(pn("Cannot scale by components since scale array does not have 3 components."),s=null);const l=n.getBounds(),v=[];N.getCorners(l,v),t.bounds[0]=N.INIT_BOUNDS[0],t.bounds[1]=N.INIT_BOUNDS[1],t.bounds[2]=N.INIT_BOUNDS[2],t.bounds[3]=N.INIT_BOUNDS[3],t.bounds[4]=N.INIT_BOUNDS[4],t.bounds[5]=N.INIT_BOUNDS[5];const O=new Float64Array(3),T=e.getOrientationArrayData(),w=gt(new Float64Array(16)),E=[],c=[],g=a.length/3;t.matrixArray=new Float32Array(16*g);const h=t.matrixArray.buffer;t.normalArray=new Float32Array(9*g);const u=t.normalArray.buffer,f=[],p=[];for(let x=0;x<g;++x){const S=new Float32Array(h,x*64,16);if(E[0]=a[x*3],E[1]=a[x*3+1],E[2]=a[x*3+2],ve(S,w,E),T)switch(T.getTuple(x,p),t.orientationMode){case $.MATRIX:{const M=[...p.slice(0,3),0,...p.slice(3,6),0,...p.slice(6,9),0,0,0,0,1];ft(S,S,M);break}case $.ROTATION:Ce(S,S,p[2]),Me(S,S,p[0]),xt(S,S,p[1]);break;case $.DIRECTION:if(p[1]===0&&p[2]===0)p[0]<0&&xt(S,S,3.1415926);else{const M=Ct(p),D=[];D[0]=(p[0]+M)/2,D[1]=p[1]/2,D[2]=p[2]/2,xe(S,S,3.1415926,D)}break}if(t.scaling){if(c[0]=t.scaleFactor,c[1]=t.scaleFactor,c[2]=t.scaleFactor,s)switch(t.scaleMode){case A.SCALE_BY_MAGNITUDE:for(let M=0;M<o;++M)f[M]=i[x*o+M];c[0]*=Ct(f,o),c[1]=c[0],c[2]=c[0];break;case A.SCALE_BY_COMPONENTS:for(let M=0;M<o;++M)f[M]=i[x*o+M];c[0]*=f[0],c[1]*=f[1],c[2]*=f[2];break;case A.SCALE_BY_CONSTANT:}c[0]===0&&(c[0]=1e-10),c[1]===0&&(c[1]=1e-10),c[2]===0&&(c[2]=1e-10),me(S,S,c)}for(let M=0;M<8;++M)$t(O,v[M],S),O[0]<t.bounds[0]&&(t.bounds[0]=O[0]),O[1]<t.bounds[2]&&(t.bounds[2]=O[1]),O[2]<t.bounds[4]&&(t.bounds[4]=O[2]),O[0]>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<t;n++)r[n-1]=arguments[n];const a={active:{},inactive:{},static:{}};return xn.forEach(s=>{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;s<n;s++)a[s]=arguments[s];a.length===1?t.labels=[].concat(a[0]):t.labels=a,e.modified()},e.getRepresentationStates=function(){let n=arguments.length>0&&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 a<s.length?s[a]:(Sn(`Representation ${e.getClassName()} should implement getSelectedState(prop, compositeID) method.`),null)},e.updateActorVisibility=function(){let n=arguments.length>0&&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;l<t.actors.length;l++)t.visibilityFlagArray?t.actors[l].setVisibility(o&&t.visibilityFlagArray[l]):t.actors[l].setVisibility(o);if(t.alwaysVisibleActors)for(let l=0;l<t.alwaysVisibleActors.length;l++)t.alwaysVisibleActors[l].setVisibility(!0)},t.actors.push=function(){vn("You should use publicAPI.addActor() to initialize the actor properly");for(var n=arguments.length,a=new Array(n),s=0;s<n;s++)a[s]=arguments[s];a.forEach(i=>e.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<n.length;++i){const o=n[i].getOrigin(t.scaleInPixels&&t.displayScaleParams);a[s++]=o[0],a[s++]=o[1],a[s++]=o[2]}}}function An(e,t){return(r,n)=>{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<n.length;++o){let l=n[o].getColor3();n[o].getActive()&&t.useActiveColor&&(l=t.activeColor),s[i++]=l[0],s[i++]=l[1],s[i++]=l[2],s[i++]=n[o].getOpacity()}a.dataChange()}}function Un(e,t){return(r,n)=>{t._pipeline.mapper.setColorByArrayName("color");const a=L(r,"color",n.length).getData();for(let s=0;s<n.length;++s){let i=n[s].getColor();n[s].getActive()&&t.useActiveColor&&(i=t.activeColor),a[s]=i}}}function $n(e,t){return(r,n)=>{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<n.length;++o){const l=n[o];let v=l.getActive()?t.activeScaleFactor:1;e.getScaleInPixels()&&(v*=nt(l.getOrigin(),t.displayScaleParams));const O=((i=l.getScale3)==null?void 0:i.call(l))??t.defaultScale;a[s++]=v*O[0],a[s++]=v*O[1],a[s++]=v*O[2]}}}function Ln(e,t){return(r,n)=>{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<n.length;++i){const o=n[i];let l=o.getActive()?t.activeScaleFactor:1;e.getScaleInPixels()&&(l*=nt(o.getOrigin(),t.displayScaleParams));const v=((s=o.getScale1)==null?void 0:s.call(o))??t.defaultScale;a[i]=l*v}}}function Gn(e,t){return(r,n)=>{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<n.length;++s){const i=n[s],o=i.getRight?i.getRight():[1,0,0],l=i.getUp?i.getUp():[0,1,0],v=i.getDirection?i.getDirection():[0,0,1];a.set(o,9*s),a.set(l,9*s+3),a.set(v,9*s+6)}}}function Hn(e,t){return(r,n)=>{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<i;l++)o[l-1]=arguments[l];return o.every(v=>{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;g<l.getNumberOfPoints();g+=1){const h=l.getPoint(g);$t(v,h,o);const u=[v[0]*w+w,v[1]*E+E,v[2],0];if(i){const p=(Math.floor(u[1])*O+Math.floor(u[0]))*4,d=i[p]/255,m=i[p+1]/255,x=(d*256+m)/257;u[3]=x*2-1}c.push(u)}t.callback(c,n,a,i,[O,T])}}const In={callback:null,useZValues:!1};function qt(e,t){let r=arguments.length>2&&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<a.length;s++){const i=a[s];t.labels[i]||(t.labels[i]=[]),t.labels[i].push(n)}else{const s=Array.isArray(a)?at:a||at;t.labels[s]||(t.labels[s]=[]),t.labels[s].push(n)}},e.unbindState=n=>{for(;r.length;)r.pop().unsubscribe();kt(t.nestedStates,n);for(let a=0;a<t.nestedStates.length;a++)r.push(t.nestedStates[a].onModified(e.modified));Object.keys(t.labels).forEach(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<t.nestedStates.length;a++)t.nestedStates[a].deactivate(n)},e.activateOnly=n=>{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<e.length;s++){const i=ta[e[s]];i?i.extend(r,n,t):Qr("Invalid mixin name:",e[s])}return y.safeArrays(n),Object.freeze(r)}class ea{constructor(){this.publicAPI={},this.model={},te.extend(this.publicAPI,this.model),ee.extend(this.publicAPI,this.model)}addDynamicMixinState(t){let{labels:r,mixins:n,name:a,initialValues:s}=t;const i=`${a}List`;return this.model[i]=[],this.publicAPI[`add${y.capitalize(a)}`]=o=>{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&&o<this.model[i].length&&(l=o);const v=this.model[i][l];v&&this.publicAPI.unbindState(v),this.model[i].splice(l,1),this.publicAPI.modified()},this.publicAPI[`get${y.capitalize(a)}List`]=()=>this.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;n<t;n++)r[n]=arguments[n];return st(r,{},this.publicAPI,this.model,!0)}}function na(){return new ea}var qa={createBuilder:na};function ra(e,t){return document.createElement(e,t)}function aa(e,t,r){return document.createElementNS(e,t,r)}function ia(){return W(document.createDocumentFragment())}function sa(e){return document.createTextNode(e)}function oa(e){return document.createComment(e)}function ca(e,t,r){if(R(e)){let n=e;for(;n&&R(n);)n=W(n).parent;e=n??e}R(t)&&(t=W(t,e)),r&&R(r)&&(r=W(r).firstChildNode),e.insertBefore(t,r)}function la(e,t){e.removeChild(t)}function ua(e,t){R(t)&&(t=W(t,e)),e.appendChild(t)}function ne(e){if(R(e)){for(;e&&R(e);)e=W(e).parent;return e??null}return e.parentNode}function ga(e){var t;if(R(e)){const r=W(e),n=ne(r);if(n&&r.lastChildNode){const a=Array.from(n.childNodes),s=a.indexOf(r.lastChildNode);return(t=a[s+1])!==null&&t!==void 0?t:null}return null}return e.nextSibling}function fa(e){return e.tagName}function pa(e,t){e.textContent=t}function da(e){return e.textContent}function ha(e){return e.nodeType===1}function ya(e){return e.nodeType===3}function Sa(e){return e.nodeType===8}function R(e){return e.nodeType===11}function W(e,t){var r,n,a;const s=e;return(r=s.parent)!==null&&r!==void 0||(s.parent=t??null),(n=s.firstChildNode)!==null&&n!==void 0||(s.firstChildNode=e.firstChild),(a=s.lastChildNode)!==null&&a!==void 0||(s.lastChildNode=e.lastChild),s}const va={createElement:ra,createElementNS:aa,createTextNode:sa,createDocumentFragment:ia,createComment:oa,insertBefore:ca,removeChild:la,appendChild:ua,parentNode:ne,nextSibling:ga,tagName:fa,setTextContent:pa,getTextContent:da,isElement:ha,isText:ya,isComment:Sa,isDocumentFragment:R};function X(e,t,r,n,a){const s=t===void 0?void 0:t.key;return{sel:e,data:t,children:r,text:n,elm:a,key:s}}const et=Array.isArray;function Q(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}function Z(e){return e===void 0}function V(e){return e!==void 0}const ot=X("",{},[],void 0,void 0);function Y(e,t){var r,n;const a=e.key===t.key,s=((r=e.data)===null||r===void 0?void 0:r.is)===((n=t.data)===null||n===void 0?void 0:n.is),i=e.sel===t.sel,o=!e.sel&&e.sel===t.sel?typeof e.text==typeof t.text:!0;return i&&a&&s&&o}function xa(){throw new Error("The document fragment is not supported on this platform.")}function Ca(e,t){return e.isElement(t)}function Ma(e,t){return e.isDocumentFragment(t)}function ma(e,t,r){var n;const a={};for(let s=t;s<=r;++s){const i=(n=e[s])===null||n===void 0?void 0:n.key;i!==void 0&&(a[i]=s)}return a}const Oa=["create","update","remove","destroy","pre","post"];function Ta(e,t,r){const n={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},a=t!==void 0?t:va;for(const c of Oa)for(const g of e){const h=g[c];h!==void 0&&n[c].push(h)}function s(c){const g=c.id?"#"+c.id:"",h=c.getAttribute("class"),u=h?"."+h.split(" ").join("."):"";return X(a.tagName(c).toLowerCase()+g+u,{},[],void 0,c)}function i(c){return X(void 0,{},[],void 0,c)}function o(c,g){return function(){if(--g===0){const u=a.parentNode(c);u!==null&&a.removeChild(u,c)}}}function l(c,g){var h,u,f,p;let d,m=c.data;if(m!==void 0){const C=(h=m.hook)===null||h===void 0?void 0:h.init;V(C)&&(C(c),m=c.data)}const x=c.children,S=c.sel;if(S==="!")Z(c.text)&&(c.text=""),c.elm=a.createComment(c.text);else if(S==="")c.elm=a.createTextNode(c.text);else if(S!==void 0){const C=S.indexOf("#"),M=S.indexOf(".",C),D=C>0?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(D<k&&b.setAttribute("id",S.slice(D+1,k)),M>0&&b.setAttribute("class",S.slice(k+1).replace(/\./g," ")),d=0;d<n.create.length;++d)n.create[d](ot,c);if(Q(c.text)&&(!et(x)||x.length===0)&&a.appendChild(b,a.createTextNode(c.text)),et(x))for(d=0;d<x.length;++d){const U=x[d];U!=null&&a.appendChild(b,l(U,g))}const B=c.data.hook;V(B)&&((u=B.create)===null||u===void 0||u.call(B,ot,c),B.insert&&g.push(c))}else if(!((f=r==null?void 0:r.experimental)===null||f===void 0)&&f.fragments&&c.children){for(c.elm=((p=a.createDocumentFragment)!==null&&p!==void 0?p:xa)(),d=0;d<n.create.length;++d)n.create[d](ot,c);for(d=0;d<c.children.length;++d){const C=c.children[d];C!=null&&a.appendChild(c.elm,l(C,g))}}else c.elm=a.createTextNode(c.text);return c.elm}function v(c,g,h,u,f,p){for(;u<=f;++u){const d=h[u];d!=null&&a.insertBefore(c,l(d,p),g)}}function O(c){var g,h;const u=c.data;if(u!==void 0){(h=(g=u==null?void 0:u.hook)===null||g===void 0?void 0:g.destroy)===null||h===void 0||h.call(g,c);for(let f=0;f<n.destroy.length;++f)n.destroy[f](c);if(c.children!==void 0)for(let f=0;f<c.children.length;++f){const p=c.children[f];p!=null&&typeof p!="string"&&O(p)}}}function T(c,g,h,u){for(var f,p;h<=u;++h){let d,m;const x=g[h];if(x!=null)if(V(x.sel)){O(x),d=n.remove.length+1,m=o(x.elm,d);for(let C=0;C<n.remove.length;++C)n.remove[C](x,m);const S=(p=(f=x==null?void 0:x.data)===null||f===void 0?void 0:f.hook)===null||p===void 0?void 0:p.remove;V(S)?S(x,m):m()}else x.children?(O(x),T(c,x.children,0,x.children.length-1)):a.removeChild(c,x.elm)}}function w(c,g,h,u){let f=0,p=0,d=g.length-1,m=g[0],x=g[d],S=h.length-1,C=h[0],M=h[S],D,k,F,b;for(;f<=d&&p<=S;)m==null?m=g[++f]:x==null?x=g[--d]:C==null?C=h[++p]:M==null?M=h[--S]:Y(m,C)?(E(m,C,u),m=g[++f],C=h[++p]):Y(x,M)?(E(x,M,u),x=g[--d],M=h[--S]):Y(m,M)?(E(m,M,u),a.insertBefore(c,m.elm,a.nextSibling(x.elm)),m=g[++f],M=h[--S]):Y(x,C)?(E(x,C,u),a.insertBefore(c,x.elm,m.elm),x=g[--d],C=h[++p]):(D===void 0&&(D=ma(g,f,d)),k=D[C.key],Z(k)?(a.insertBefore(c,l(C,u),m.elm),C=h[++p]):Z(D[M.key])?(a.insertBefore(c,l(M,u),a.nextSibling(x.elm)),M=h[--S]):(F=g[k],F.sel!==C.sel?a.insertBefore(c,l(C,u),m.elm):(E(F,C,u),g[k]=void 0,a.insertBefore(c,F.elm,m.elm)),C=h[++p]));p<=S&&(b=h[S+1]==null?null:h[S+1].elm,v(c,b,h,p,S,u)),f<=d&&T(c,g,f,d)}function E(c,g,h){var u,f,p,d,m,x,S,C;const M=(u=g.data)===null||u===void 0?void 0:u.hook;(f=M==null?void 0:M.prepatch)===null||f===void 0||f.call(M,c,g);const D=g.elm=c.elm;if(c===g)return;if(g.data!==void 0||V(g.text)&&g.text!==c.text){(p=g.data)!==null&&p!==void 0||(g.data={}),(d=c.data)!==null&&d!==void 0||(c.data={});for(let b=0;b<n.update.length;++b)n.update[b](c,g);(S=(x=(m=g.data)===null||m===void 0?void 0:m.hook)===null||x===void 0?void 0:x.update)===null||S===void 0||S.call(x,c,g)}const k=c.children,F=g.children;Z(g.text)?V(k)&&V(F)?k!==F&&w(D,k,F,h):V(F)?(V(c.text)&&a.setTextContent(D,""),v(D,null,F,0,F.length-1,h)):V(k)?T(D,k,0,k.length-1):V(c.text)&&a.setTextContent(D,""):c.text!==g.text&&(V(k)&&T(D,k,0,k.length-1),a.setTextContent(D,g.text)),(C=M==null?void 0:M.postpatch)===null||C===void 0||C.call(M,c,g)}return function(g,h){let u,f,p;const d=[];for(u=0;u<n.pre.length;++u)n.pre[u]();for(Ca(a,g)?g=s(g):Ma(a,g)&&(g=i(g)),Y(g,h)?E(g,h,d):(f=g.elm,p=a.parentNode(f),l(h,d),p!==null&&(a.insertBefore(p,h.elm,a.nextSibling(f)),T(p,[g],0,0))),u=0;u<d.length;++u)d[u].data.hook.insert(d[u]);for(u=0;u<n.post.length;++u)n.post[u]();return h}}function re(e,t,r){if(e.ns="http://www.w3.org/2000/svg",r!=="foreignObject"&&t!==void 0)for(let n=0;n<t.length;++n){const a=t[n];if(typeof a=="string")continue;const s=a.data;s!==void 0&&re(s,a.children,a.sel)}}function ct(e,t,r){let n={},a,s,i;if(r!==void 0?(t!==null&&(n=t),et(r)?a=r:Q(r)?s=r.toString():r&&r.sel&&(a=[r])):t!=null&&(et(t)?a=t:Q(t)?s=t.toString():t&&t.sel?a=[t]:n=t),a!==void 0)for(i=0;i<a.length;++i)Q(a[i])&&(a[i]=X(void 0,void 0,void 0,a[i],void 0));return e.startsWith("svg")&&(e.length===3||e[3]==="."||e[3]==="#")&&re(n,a,e),X(e,n,a,s,void 0)}const wa="http://www.w3.org/1999/xlink",Ea="http://www.w3.org/2000/xmlns/",Da="http://www.w3.org/XML/1998/namespace",Ft=58,ka=120,Fa=109;function bt(e,t){let r;const n=t.elm;let a=e.data.attrs,s=t.data.attrs;if(!(!a&&!s)&&a!==s){a=a||{},s=s||{};for(r in s){const i=s[r];a[r]!==i&&(i===!0?n.setAttribute(r,""):i===!1?n.removeAttribute(r):r.charCodeAt(0)!==ka?n.setAttribute(r,i):r.charCodeAt(3)===Ft?n.setAttributeNS(Da,r,i):r.charCodeAt(5)===Ft?r.charCodeAt(1)===Fa?n.setAttributeNS(Ea,r,i):n.setAttributeNS(wa,r,i):n.setAttribute(r,i))}for(r in a)r in s||n.removeAttribute(r)}}const ba={create:bt,update:bt};function _t(e,t){let r,n;const a=t.elm;let s=e.data.class,i=t.data.class;if(!(!s&&!i)&&s!==i){s=s||{},i=i||{};for(n in s)s[n]&&!Object.prototype.hasOwnProperty.call(i,n)&&a.classList.remove(n);for(n in i)r=i[n],r!==s[n]&&a.classList[r?"add":"remove"](n)}}const _a={create:_t,update:_t};function ae(e,t,r){if(typeof e=="function")e.call(t,r,t);else if(typeof e=="object")for(let n=0;n<e.length;n++)ae(e[n],t,r)}function Va(e,t){const r=e.type,n=t.data.on;n&&n[r]&&ae(n[r],t,e)}function Na(){return function e(t){Va(t,e.vnode)}}function lt(e,t){const r=e.data.on,n=e.listener,a=e.elm,s=t&&t.data.on,i=t&&t.elm;let o;if(r!==s){if(r&&n)if(s)for(o in r)s[o]||a.removeEventListener(o,n,!1);else for(o in r)a.removeEventListener(o,n,!1);if(s){const l=t.listener=e.listener||Na();if(l.vnode=t,r)for(o in s)r[o]||i.addEventListener(o,l,!1);else for(o in s)i.addEventListener(o,l,!1)}}}const Ba={create:lt,update:lt,destroy:lt};function Vt(e,t){let r,n,a;const s=t.elm;let i=e.data.props,o=t.data.props;if(!(!i&&!o)&&i!==o){i=i||{},o=o||{};for(r in o)n=o[r],a=i[r],a!==n&&(r!=="value"||s[r]!==n)&&(s[r]=n)}}const Aa={create:Vt,update:Vt},Nt=typeof(window==null?void 0:window.requestAnimationFrame)=="function"?window.requestAnimationFrame.bind(window):setTimeout,Ra=function(e){Nt(function(){Nt(e)})};let dt=!1;function Ua(e,t,r){Ra(function(){e[t]=r})}function Bt(e,t){let r,n;const a=t.elm;let s=e.data.style,i=t.data.style;if(!s&&!i||s===i)return;s=s||{},i=i||{};const o="delayed"in s;for(n in s)n in i||(n[0]==="-"&&n[1]==="-"?a.style.removeProperty(n):a.style[n]="");for(n in i)if(r=i[n],n==="delayed"&&i.delayed)for(const l in i.delayed)r=i.delayed[l],(!o||r!==s.delayed[l])&&Ua(a.style,l,r);else n!=="remove"&&r!==s[n]&&(n[0]==="-"&&n[1]==="-"?a.style.setProperty(n,r):a.style[n]=r)}function $a(e){let t,r;const n=e.elm,a=e.data.style;if(!(!a||!(t=a.destroy)))for(r in t)n.style[r]=t[r]}function Wa(e,t){const r=e.data.style;if(!r||!r.remove){t();return}dt||(e.elm.offsetLeft,dt=!0);let n;const a=e.elm;let s=0;const i=r.remove;let o=0;const l=[];for(n in i)l.push(n),a.style[n]=i[n];const O=getComputedStyle(a)["transition-property"].split(", ");for(;s<O.length;++s)l.indexOf(O[s])!==-1&&o++;a.addEventListener("transitionend",function(T){T.target===a&&--o,o===0&&t()})}function La(){dt=!1}const Ga={pre:La,create:Bt,update:Bt,destroy:$a,remove:Wa},ut=Ta([ba,_a,Aa,Ga,Ba]);function ja(e){const t=e.parentElement,r=document.createElement("div");return t.insertBefore(r,e.nextSibling),window.getComputedStyle(t).position==="static"&&(t.style.position="relative"),r}const J={TOP:1,MIDDLE:2,BOTTOM:3};function Za(e,t,r=J.BOTTOM){const n=[];for(let a=0;a<e;a++)switch(r){case J.TOP:n.push(t*(a+1));break;case J.MIDDLE:n.push(-t*(.5*e-a-1));break;case J.BOTTOM:default:n.push(-t*(e-a-1))}return n}function Ja(e,t,{mapState:r,render:n}){const a=e.getRenderWindow().getViews()[0],s=a.getCanvas(),i=()=>{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};
|