demo-463ef550.js 32 KB

1
  1. import{e as $e,c as ot,d as ct,R as Ge,O as lt,i as ie,j as Ue,k as ut,f as gt,B as dt,g as re,h as ft,v as pt,b as St}from"./SVGHelpers-8bd027b1.js";import{C,G as de,H as be,I as Ie,q as Ee,i as vt,J as oe,K as ht,L as Ve,o as qe,M as Fe,N as Le,O as Ot,P as Ne,Q as yt,R as De,V as Ae,T as wt,U as m,W as Rt,X as G,Y as K,Z as We,_ as ye,$ as ce,p as je,a0 as Ye,a1 as Dt,a2 as He,a3 as Te,a4 as Ht,x as ze,y as Pe,a5 as Tt,a6 as Ct,v as kt,B as bt}from"./index-353566aa.js";import{D as Et}from"./index-f180d8ca.js";const xt=$e.createBuilder().addField({name:"posOnLine",initialValue:.5}).build();function _t(){return $e.createBuilder().addStateFromMixin({labels:["moveHandle"],mixins:["origin","color","scale1","visible","manipulator","shape"],name:"moveHandle",initialValues:{scale1:30,visible:!0}}).addStateFromMixin({labels:["handle1"],mixins:["origin","color","scale1","visible","manipulator","shape"],name:"handle1",initialValues:{scale1:30}}).addStateFromMixin({labels:["handle2"],mixins:["origin","color","scale1","visible","manipulator","shape"],name:"handle2",initialValues:{scale1:30}}).addStateFromMixin({labels:["SVGtext"],mixins:["origin","color","text","visible"],name:"text",initialValues:{text:""}}).addStateFromInstance({name:"positionOnLine",instance:xt}).addField({name:"lineThickness"}).build()}function Mt(t,e){e.classHierarchy.push("vtkCircleSource");function v(h,M){if(e.deleted)return;let o=M[0];const b=C.newTypedArray(e.pointType,e.resolution*3),k=new Uint32Array(e.resolution+2);k[0]=e.resolution+1;const i=2*Math.PI/e.resolution;for(let a=0;a<e.resolution;a++){const n=e.center[0],s=e.radius*Math.cos(a*i)+e.center[1],r=e.radius*Math.sin(a*i)+e.center[2];b.set([n,s,r],a*3),k[a+1]=a}k[k.length-1]=k[1],o=de.newInstance(),o.getPoints().setData(b,3),e.lines&&o.getLines().setData(k,1),e.face&&o.getPolys().setData(k,1),be.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.direction).translate(...Ie([...e.center],-1)).apply(b),M[0]=o}t.requestData=v}function Vt(t){return{face:!0,center:[0,0,0],lines:!1,direction:[1,0,0],pointType:"Float64Array",radius:1,resolution:6,...t}}function Ke(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Vt(v)),C.obj(t,e),C.setGet(t,e,["radius","resolution","lines","face"]),C.setGetArray(t,e,["center","direction"],3),C.algo(t,e,0,1),Mt(t,e)}const Ft=C.newInstance(Ke,"vtkCircleSource");var Be={newInstance:Ft,extend:Ke};function Lt(t,e){t.requestData=(v,h)=>{const M=de.newInstance(),o=C.newTypedArray(e.pointType,3*16);o[0]=e.radius,o[1]=e.radius/e.width,o[2]=0,o[3]=e.radius+e.spacing,o[4]=e.radius/e.width,o[5]=0,o[6]=e.radius,o[7]=e.radius/e.width*-1,o[8]=0,o[9]=e.radius+e.spacing,o[10]=e.radius/e.width*-1,o[11]=0,o[12]=e.radius*-1,o[13]=e.radius/e.width,o[14]=0,o[15]=(e.radius+e.spacing)*-1,o[16]=e.radius/e.width,o[17]=0,o[18]=e.radius*-1,o[19]=e.radius/e.width*-1,o[20]=0,o[21]=(e.radius+e.spacing)*-1,o[22]=e.radius/e.width*-1,o[23]=0,o[24]=e.radius/e.width,o[25]=e.radius,o[26]=0,o[27]=e.radius/e.width,o[28]=e.radius+e.spacing,o[29]=0,o[30]=e.radius/e.width*-1,o[31]=e.radius,o[32]=0,o[33]=e.radius/e.width*-1,o[34]=e.radius+e.spacing,o[35]=0,o[36]=e.radius/e.width,o[37]=e.radius*-1,o[38]=0,o[39]=e.radius/e.width,o[40]=(e.radius+e.spacing)*-1,o[41]=0,o[42]=e.radius/e.width*-1,o[43]=e.radius*-1,o[44]=0,o[45]=e.radius/e.width*-1,o[46]=(e.radius+e.spacing)*-1,o[47]=0;const b=Uint8Array.from([3,0,1,2,3,2,1,3,3,4,6,5,3,6,5,7,3,8,11,9,3,8,10,11,3,12,13,15,3,12,15,14]);be.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.orientation).apply(o),M.getPoints().setData(o,3),M.getPolys().setData(b,1),h[0]=M}}const Nt={radius:1,spacing:2,width:4,pointType:"Float64Array"};function Ze(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};e.center=[0,0,0],e.orientation=[1,0,0],Object.assign(e,Nt,v),C.obj(t,e),C.setGet(t,e,["radius","spacing","width"]),C.setGetArray(t,e,["center","orientation"],3),C.algo(t,e,0,1),Lt(t,e)}const At=C.newInstance(Ze,"vtkArrow2DSource");var Wt={newInstance:At,extend:Ze};const U={NONE:"voidSphere",SPHERE:"sphere",CUBE:"cube",CONE:"cone",ARROWHEAD3:"triangle",ARROWHEAD4:"4pointsArrowHead",ARROWHEAD6:"6pointsArrowHead",STAR:"star",DISK:"disk",CIRCLE:"circle",VIEWFINDER:"viewFinder"},Bt=[U.ARROWHEAD3,U.ARROWHEAD4,U.ARROWHEAD6,U.STAR,U.DISK,U.CIRCLE,U.VIEWFINDER],$t=[U.SPHERE,U.CUBE,U.CONE],Gt=[U.CONE,U.ARROWHEAD3,U.ARROWHEAD4,U.ARROWHEAD6];var Xe={ShapeType:U,Shapes2D:Bt,Shapes3D:$t,ShapesOrientable:Gt};const{ShapeType:Y,Shapes2D:Ut,ShapesOrientable:It}=Xe;function qt(t,e){e.classHierarchy.push("vtkArrowHandleRepresentation");const v={...t};function h(a){const s={[Y.STAR]:{builder:oe,initialValues:{shape:"star",height:.6}},[Y.ARROWHEAD3]:{builder:oe,initialValues:{shape:"triangle"}},[Y.ARROWHEAD4]:{builder:oe,initialValues:{shape:"arrow4points"}},[Y.ARROWHEAD6]:{builder:oe,initialValues:{shape:"arrow6points"}},[Y.CONE]:{builder:ht,initialValues:{direction:[0,1,0]}},[Y.SPHERE]:{builder:Ve},[Y.CUBE]:{builder:qe,initialValues:{xLength:.8,yLength:.8,zLength:.8}},[Y.DISK]:{builder:Be,initialValues:{resolution:30,radius:.5,direction:[0,0,1],lines:!1,face:!0}},[Y.CIRCLE]:{builder:Be,initialValues:{resolution:30,radius:.5,direction:[0,0,1],lines:!0,face:!1}},[Y.VIEWFINDER]:{builder:Wt,initialValues:{radius:.1,spacing:.3,width:1.4}},[Y.NONE]:{builder:Ve}}[a];return s.builder.newInstance(s.initialValues)}e.displayMapper=ct.newInstance(),e.displayActor=Ee.newInstance({parentProp:t}),e.displayActor.setMapper(e.displayMapper),e.displayMapper.setInputConnection(t.getOutputPort()),t.addActor(e.displayActor),e.alwaysVisibleActors=[e.displayActor],t.setGlyphResolution=C.chain(t.setGlyphResolution,a=>e._pipeline.glyph.setPhiResolution(a),a=>e._pipeline.glyph.setThetaResolution(a));function M(a){if(e.displayCallback){const n=[],s=t.getRepresentationStates();for(let r=0;r<s.length;r++)s[r].getActive()&&n.push(a[r]);if(n.length){e.displayCallback(n);return}}e.displayCallback()}t.setDisplayCallback=a=>{e.displayCallback=a,e.displayMapper.setCallback(a?M:null)},t.is2DShape=()=>Ut.includes(e.shape),t.isOrientableShape=()=>It.includes(e.shape);function o(a){const n=new Float64Array(3),s=[0,1,0];Ne(n,e.orientation,a),n[2]=0;const r=be.buildFromDegree().rotateFromDirections(s,n).getMatrix(),l=new Float64Array(9);return Fe(l,r),l}function b(a,n,s){const r=new Float64Array(9);return yt(r,s,n),Ne(a,a,r),r}function k(a){const n=e.faceCamera===!0||e.faceCamera==null&&t.is2DShape(),s=new Float64Array(9);Fe(s,e.viewMatrix);const r=Le(new Float64Array(9));n&&Ot(r,s);let l=null;return t.isOrientableShape()?l=o(r):l=Le(new Float64Array(9)),n&&(l=b(a,l,s)),l}function i(a,n){var l,u;e._pipeline.mapper.setOrientationArray("orientation"),e._pipeline.mapper.setOrientationMode(lt.MATRIX);const s=ie(a,"orientation",n.length,"Float32Array",9).getData(),r=[1,1,1];for(let O=0;O<n.length;++O){const p=((u=(l=n[O]).getScale3)==null?void 0:u.call(l))??r,R=k(p);s.set(R,9*O)}}t.setDirection(i),t.setNoOrientation(i),t.requestData=(a,n)=>{var l;const s=(l=t.getRepresentationStates(a[0])[0])==null?void 0:l.getShape();let r=e._pipeline.glyph==null;return e.shape!==s&&Object.values(Y).includes(s)&&(e.shape=s,r=!0),r&&e.shape&&(e._pipeline.glyph=h(e.shape),e._pipeline.mapper.setInputConnection(e._pipeline.glyph.getOutputPort(),1)),v.requestData(a,n)},t.updateActorVisibility=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ge.FRONT_BUFFER,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const r=t.getRepresentationStates().length>0;v.updateActorVisibility(a,n,s&&r)}}function jt(t){return{faceCamera:null,orientation:[1,0,0],shape:Y.SPHERE,viewMatrix:vt(new Float64Array(16)),...t}}function Je(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jt(v)),ot.extend(t,e,v),C.setGetArray(t,e,["visibilityFlagArray"],2),C.setGetArray(t,e,["orientation"],3),C.setGetArray(t,e,["viewMatrix"],16),C.setGet(t,e,["faceCamera"]),qt(t,e)}const Yt=C.newInstance(Je,"vtkArrowHandleRepresentation");var we={newInstance:Yt,extend:Je};const zt={VARY_RADIUS_OFF:0,VARY_RADIUS_BY_SCALAR:1,VARY_RADIUS_BY_VECTOR:2,VARY_RADIUS_BY_ABSOLUTE_SCALAR:3},Pt={TCOORDS_OFF:0,TCOORDS_FROM_NORMALIZED_LENGTH:1,TCOORDS_FROM_LENGTH:2,TCOORDS_FROM_SCALARS:3};var Kt={VaryRadius:zt,GenerateTCoords:Pt};const{VaryRadius:ae,GenerateTCoords:J}=Kt,{vtkDebugMacro:Zt,vtkErrorMacro:Xt,vtkWarningMacro:ne}=C;function Jt(t,e){e.classHierarchy.push("vtkTubeFilter");function v(i,a){let n=i;return e.sidesShareVertices?n+=e.numberOfSides*a:n+=2*e.numberOfSides*a,e.capping&&(n+=2*e.numberOfSides),n}function h(i,a,n){const s=a[n],r=i.slice(3*s,3*(s+1));let l=n+1;for(;l<a.length;){const u=a[l],O=i.slice(3*u,3*(u+1));if(r!==O)return l-1;++l}return a.length}function M(i,a,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,r=[0,0,1];const l=a;let u=l[0];for(let O=0;O<l.length;O+=u+1)if(u=l[O],u===1)n.setTuple(l[O+1],r);else if(u>1){let p=0,R=[0,0,0];const E=[0,0,0],c=l.slice(O+1,O+1+u);if(p=h(i,c,0),p!==u){let f=c[p],y=i.slice(3*f,3*(f+1)),g=c[p+1],S=i.slice(3*g,3*(g+1));if(R=S.map((H,T)=>H-y[T]),G(R),s)r=s;else{for(;++p<u;)if(p=h(i,c,p),p!==u){f=c[p],y=i.slice(3*f,3*(f+1)),g=c[p+1],S=i.slice(3*g,3*(g+1));for(let T=0;T<3;++T)E[T]=S[T]-y[T];G(E);const H=[0,0,0];if(K(R,E,H),We(H)>.001){r=H,R=E;break}}if(p>=u){for(let H=0;H<3;++H)if(R[H]!==0){r[(H+2)%3]=0,r[(H+1)%3]=1,r[H]=-R[(H+1)%3]/R[H];break}}}G(r);let D=0;for(;++p<u&&(p=h(i,c,p),p!==u);){f=c[p],y=i.slice(3*f,3*(f+1)),g=c[p+1],S=i.slice(3*g,3*(g+1));for(let T=0;T<3;++T)E[T]=S[T]-y[T];G(E);const H=[0,0,0];if(K(R,r,H),G(H)!==0){const T=[0,0,0];if(K(E,R,T),G(T)!==0){const q=ye(T,r);let x=1-q*q;x>0?x=Math.sqrt(x):x=0;const B=[0,0,0];for(let W=0;W<3;++W)B[W]=E[W]+R[W];G(B),K(B,T,H),K(R,T,B),ye(r,B)*ye(H,B)<0&&(x*=-1);for(let W=D;W<p;++W)n.setTuple(c[W],r);D=p,R=E,r=q*T+x*H}}}for(let H=D;H<u;++H)n.setTuple(c[H],r)}else for(let f=0;f<u;++f)n.setTuple(c[f],r)}return 1}function o(i,a,n,s,r,l,u,O,p,R,E,c,f,y){const g=[0,0,0],S=[0,0,0],D=[0,0,0],H=[0,0,0];let T=[0,0,0],q=[0,0,0],x=[0,0,0],B=[0,0,0];const W=[0,0,0],z=[0,0,0],$=[0,0,0];let j=1,N=i;const Se=[];for(let _=0;_<a;++_){if(_===0){T=s.slice(3*n[0],3*(n[0]+1)),q=s.slice(3*n[1],3*(n[1]+1));for(let d=0;d<3;++d)g[d]=q[d]-T[d],S[d]=g[d],D[d]=-S[d];G(D)}else if(_===a-1){for(let d=0;d<3;++d)S[d]=g[d],T[d]=q[d],H[d]=g[d];G(H)}else{for(let d=0;d<3;++d)T[d]=q[d];q=s.slice(3*n[_+1],3*(n[_+1]+1));for(let d=0;d<3;++d)S[d]=g[d],g[d]=q[d]-T[d]}if(G(g)===0)return ne("Coincident points!"),0;for(let d=0;d<3;++d)x[d]=(S[d]+g[d])/2;if(B=f.slice(3*n[_],3*(n[_]+1)),G(x)===0&&(K(S,B,x),G(x)===0&&Zt("Using alternate bevel vector")),K(x,B,W),G(W)===0){let d="Bad normal: s = ";return d+=`${x[0]}, ${x[1]}, ${x[2]}`,d+=` n = ${B[0]}, ${B[1]}, ${B[2]}`,ne(d),0}if(K(W,x,z),G(z),p&&e.varyRadius===ae.VARY_RADIUS_BY_SCALAR)j=1+(e.radiusFactor-1)*(p.getComponent(n[_],0)-R[0])/(R[1]-R[0]);else if(E&&e.varyRadius===ae.VARY_RADIUS_BY_VECTOR)j=Math.sqrt(c/We(E.getTuple(n[_],Se))),j>e.radiusFactor&&(j=e.radiusFactor);else if(p&&e.varyRadius===ae.VARY_RADIUS_BY_ABSOLUTE_SCALAR&&(j=p.getComponent(n[_],0),j<0))return ne("Scalar value less than zero, skipping line"),0;if(e.sidesShareVertices)for(let d=0;d<e.numberOfSides;++d){for(let V=0;V<3;++V)$[V]=W[V]*Math.cos(d*y)+z[V]*Math.sin(d*y),x[V]=T[V]+e.radius*j*$[V],r[3*N+V]=x[V],O[3*N+V]=$[V];u.passData(l,n[_],N),N++}else{const d=[0,0,0],V=[0,0,0];for(let F=0;F<e.numberOfSides;++F){for(let w=0;w<3;++w)$[w]=W[w]*Math.cos(F*y)+z[w]*Math.sin(F*y),d[w]=W[w]*Math.cos((F-.5)*y)+z[w]*Math.sin((F-.5)*y),V[w]=W[w]*Math.cos((F+.5)*y)+z[w]*Math.sin((F+.5)*y),x[w]=T[w]+e.radius*j*$[w],r[3*N+w]=x[w],O[3*N+w]=d[w],r[3*(N+1)+w]=x[w],O[3*(N+1)+w]=V[w];u.passData(l,n[_],N+1),N+=2}}}if(e.capping){let _=e.numberOfSides,d=1;e.sidesShareVertices||(_=2*e.numberOfSides,d=2);for(let F=0;F<_;F+=d){x=r.slice(3*(i+F),3*(i+F+1));for(let w=0;w<3;++w)r[3*N+w]=x[w],O[3*N+w]=D[w];u.passData(l,n[0],N),N++}let V=i+(a-1)*e.numberOfSides;e.sidesShareVertices||(V=i+2*(a-1)*e.numberOfSides);for(let F=0;F<_;F+=d){x=r.slice(3*(V+F),3*(V+F+1));for(let w=0;w<3;++w)r[3*N+w]=x[w],O[3*N+w]=H[w];u.passData(l,n[a-1],N),N++}}return 1}function b(i,a,n,s,r,l,u){let O=0,p=0,R=0,E=s,c=0;const f=u.getData();let y=0;for(;c<f.length&&y!==s;)c+=f[c]+1,y++;if(e.sidesShareVertices)for(let g=i;g<e.numberOfSides+i;g+=e.onRatio){O=g%e.numberOfSides,p=(g+1)%e.numberOfSides,f[c++]=a*2;for(let S=0;S<a;++S)R=S*e.numberOfSides,f[c++]=i+p+R,f[c++]=i+O+R;l.passData(r,n,E++)}else for(let g=i;g<e.numberOfSides+i;g+=e.onRatio){O=2*(g%e.numberOfSides)+1,p=2*((g+1)%e.numberOfSides),f[c]=a*2,c++;for(let S=0;S<a;++S)R=S*2*e.numberOfSides,f[c++]=i+p+R,f[c++]=i+O+R;l.passData(r,n,E++)}if(e.capping){let g=i+a*e.numberOfSides,S=0;e.sidesShareVertices||(g=i+2*a*e.numberOfSides),f[c++]=e.numberOfSides,f[c++]=g,f[c++]=g+1;let D=0;for(O=e.numberOfSides-1,p=2,D=0;D<e.numberOfSides-2;++D)D%2?(S=g+p,f[c++]=S,p++):(S=g+O,f[c++]=S,O--);for(l.passData(r,n,E++),g+=e.numberOfSides,f[c++]=e.numberOfSides,f[c++]=g,f[c++]=g+e.numberOfSides-1,O=e.numberOfSides-2,p=1,D=0;D<e.numberOfSides-2;++D)D%2?(S=g+O,f[c++]=S,O--):(S=g+p,f[c++]=S,p++);l.passData(r,n,E++)}return E}function k(i,a,n,s,r,l){let u=e.numberOfSides;e.sidesShareVertices||(u=2*e.numberOfSides);let O=0,p=0,R=0;const E=r.getData();if(e.generateTCoords===J.TCOORDS_FROM_SCALARS){p=E[n[0]];for(let c=0;c<a;++c){R=E[n[c]],O=(R-p)/e.textureLength;for(let f=0;f<u;++f){const y=f/(u-1),g=2*(i+c*u+f);l[g]=O,l[g+1]=y}}}else if(e.generateTCoords===J.TCOORDS_FROM_LENGTH){let c=0;const f=s.slice(3*n[0],3*(n[0]+1));for(let y=0;y<a;++y){const g=s.slice(3*n[y],3*(n[y]+1));c+=Math.sqrt(ce(g,f)),O=c/e.textureLength;for(let S=0;S<u;++S){const D=S/(u-1),H=2*(i+y*u+S);l[H]=O,l[H+1]=D}for(let S=0;S<3;++S)f[S]=g[S]}}else if(e.generateTCoords===J.TCOORDS_FROM_NORMALIZED_LENGTH){let c=0,f=0,y=s.slice(3*n[0],3*(n[0]+1));for(let g=0;g<a;++g){const S=s.slice(3*n[g],3*(n[g]+1));f+=Math.sqrt(ce(S,y));for(let D=0;D<3;++D)y[D]=S[D]}y=s.slice(3*n[0],3*(n[0]+1));for(let g=0;g<a;++g){const S=s.slice(3*n[g],3*(n[g]+1));c+=Math.sqrt(ce(S,y)),O=c/f;for(let D=0;D<u;++D){const H=D/(u-1),T=2*(i+g*u+D);l[T]=O,l[T+1]=H}for(let D=0;D<3;++D)y[D]=S[D]}}if(e.capping){const c=i+a*u;for(let f=0;f<e.numberOfSides;++f){const y=2*(c+f);l[y]=0,l[y+1]=0}for(let f=0;f<e.numberOfSides;++f){const y=2*(c+e.numberOfSides+f);l[y]=0,l[y+1]=0}}}t.requestData=(i,a)=>{const n=de.newInstance();a[0]=n;const s=i[0];if(!s){Xt("Invalid or missing input");return}const r=s.getPoints();if(!r)return;const l=r.getNumberOfPoints();if(l<1)return;const u=s.getLines();if(!u||u.getNumberOfCells()<1)return;let p=0,R=0;const E=u.getData();let c=E[0];for(let L=0;L<E.length;L+=c+1)c=E[L],p=v(p,c),R+=(2*c+1)*Math.ceil(e.numberOfSides/e.onRatio),e.capping&&(R+=2*(e.numberOfSides+1));let f=r.getDataType();e.outputPointsPrecision===De.SINGLE?f=Ae.FLOAT:e.outputPointsPrecision===De.DOUBLE&&(f=Ae.DOUBLE);const y=wt.newInstance({dataType:f,size:p*3,numberOfComponents:3}),g=3*p,S=new Float32Array(g),D=m.newInstance({numberOfComponents:3,values:S,name:"TubeNormals"}),H=new Uint32Array(R),T=Rt.newInstance({values:H});let q=0,x=s.getPointData().getNormals(),B=null,W=!1;(!x||e.useDefaultNormal)&&(B=new Float32Array(3*l),x=m.newInstance({numberOfComponents:3,values:B,name:"Normals"}),e.useDefaultNormal?B=B.map((L,se)=>{const Oe=se%3;return e.defaultNormal[Oe]}):W=!0);const z=s.getPointData().getNumberOfArrays();let $=null,j=null;for(let L=0;L<z;L++)$=s.getPointData().getArrayByIndex(L),j=m.newInstance({name:$.getName(),dataType:$.getDataType(),numberOfComponents:$.getNumberOfComponents(),size:p*$.getNumberOfComponents()}),n.getPointData().addArray(j);let N=u.getNumberOfCells()*e.numberOfSides;e.capping&&(N+=2);const Se=s.getCellData().getNumberOfArrays();for(let L=0;L<Se;L++)$=s.getCellData().getArrayByIndex(L),j=m.newInstance({name:$.getName(),dataType:$.getDataType(),numberOfComponents:$.getNumberOfComponents(),size:N*$.getNumberOfComponents()}),n.getCellData().addArray(j);const _=t.getInputArrayToProcess(0);let d=null,V=[];_&&(d=m.newInstance({name:_.getName(),dataType:_.getDataType(),numberOfComponents:_.getNumberOfComponents(),size:p*_.getNumberOfComponents()}),V=_.getRange(),V[1]-V[0]===0&&(e.varyRadius===ae.VARY_RADIUS_BY_SCALAR&&ne("Scalar range is zero!"),V[1]=V[0]+1));const F=t.getInputArrayToProcess(1);let w=0;F&&(w=F.getMaxNorm());const ve=n.getCellData();ve.copyNormalsOff(),ve.passData(s.getCellData());const P=n.getPointData();P.getNormals()!==null&&P.copyNormalsOff(),_&&d&&P.setScalars(d);let he=null;if(e.generateTCoords===J.TCOORDS_FROM_SCALARS&&_||e.generateTCoords===J.TCOORDS_FROM_LENGTH||e.generateTCoords===J.TCOORDS_FROM_NORMALIZED_LENGTH){const L=new Float32Array(2*p);he=m.newInstance({numberOfComponents:2,values:L,name:"TCoords"}),P.copyTCoordsOff()}P.passData(s.getPointData());const rt=2*Math.PI/e.numberOfSides;c=E[0];let te=0,Me=s.getVerts().getNumberOfCells();for(let L=0;L<E.length;L+=c+1){c=E[L];const se=E.slice(L+1,L+1+c);if(c>1&&W){const Oe=E.slice(L,L+c+1);M(r.getData(),Oe,x)}o(te,c,se,r.getData(),y.getData(),s.getPointData(),P,S,_,V,F,w,B,rt)?(q=b(te,c,Me,q,s.getCellData(),ve,T),he&&k(te,c,se,r.getData(),_,he.getData())):ne("Could not generate points"),te=v(te,c),Me++}n.setPoints(y),n.setStrips(T),n.setPointData(P),P.setNormals(D),a[0]=n}}const Qt={outputPointsPrecision:De.DEFAULT,radius:.5,varyRadius:ae.VARY_RADIUS_OFF,numberOfSides:3,radiusFactor:10,defaultNormal:[0,0,1],useDefaultNormal:!1,sidesShareVertices:!0,capping:!1,onRatio:1,offset:0,generateTCoords:J.TCOORDS_OFF,textureLength:1};function Qe(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qt,v),C.setGet(t,e,["outputPointsPrecision","radius","varyRadius","numberOfSides","radiusFactor","defaultNormal","useDefaultNormal","sidesShareVertices","capping","onRatio","offset","generateTCoords","textureLength"]),C.obj(t,e),C.algo(t,e,1,1),Jt(t,e)}const mt=C.newInstance(Qe,"vtkTubeFilter");var en={newInstance:mt,extend:Qe};function tn(t,e){e.classHierarchy.push("vtkPolyLineRepresentation");const v={...t},h=de.newInstance({mtime:0});function M(b,k){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,a=null;if(k<2)a=ie(b,"points",1).getData(),a.set([0,0,0]),ie(b,"lines",0).getData();else if(!b.getPoints()||b.getPoints().length!==k*3){a=ie(b,"points",k).getData();const n=k+(i?1:0);if(b.getLines().getNumberOfCells()!==1||b.getLines().getCellSizes()[0]!==n){const s=ie(b,"lines",n+1),r=s.getData();r[0]=n;for(let l=1;l<=n;l++)r[l]=l-1;i&&(r[n]=0),s.setData(r)}}return a}function o(b){let k=b;if(t.getScaleInPixels()&&h){const i=Dt.getCenter(h.getBounds());k*=ut(i,e.displayScaleParams)}e._pipelines.tubes.filter.setRadius(k)}e._pipelines={tubes:{source:t,filter:en.newInstance({radius:e.lineThickness,numberOfSides:12,capping:!1}),mapper:je.newInstance(),actor:Ee.newInstance({parentProp:t})}},Ue.connectPipeline(e._pipelines.tubes),t.addActor(e._pipelines.tubes.actor),t.requestData=(b,k)=>{var l;const i=b[0];k[0]=h;const a=t.getRepresentationStates(i).reduce((u,O)=>{const p=O.getOrigin&&O.getOrigin()?O.getOrigin():null,R=u.length&&u[u.length-1].getOrigin();return!p||R&&Ye(p,R)||u.push(O),u},[]),n=a.length,s=M(k[0],n,e.closePolyLine&&n>2);if(s)for(let u=0;u<n;u++){const O=a[u].getOrigin();s[u*3]=O[0],s[u*3+1]=O[1],s[u*3+2]=O[2]}k[0].getPoints().modified(),k[0].modified();const r=((l=i.getLineThickness)==null?void 0:l.call(i))??e.lineThickness;o(r)},t.getSelectedState=(b,k)=>e.inputData[0],t.updateActorVisibility=(b,k,i)=>{var s;const a=e.inputData[0];let n=((s=a.getLineThickness)==null?void 0:s.call(a))??e.lineThickness;return b===Ge.PICKING_BUFFER&&(n=Math.max(4,n)),o(n),v.updateActorVisibility(b,k,i)}}const nn={threshold:Number.EPSILON,closePolyLine:!1,lineThickness:2,scaleInPixels:!0};function me(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const h={...nn,...v};Ue.extend(t,e,h),C.setGet(t,e,["threshold","closePolyLine","lineThickness"]),tn(t,e)}const an=C.newInstance(me,"vtkPolyLineRepresentation");var sn={newInstance:an,extend:me};function et(t){const e=[0,0,0],v=t.widgetState.getHandle1().getOrigin(),h=t.widgetState.getHandle2().getOrigin();if(!v||!h)return null;let M=t.widgetState.getPositionOnLine().getPosOnLine();return M=1-M,He(v,h,e),Ie(e,M),Te(e,h,e),e}function tt(t){t.widgetState.getText().setOrigin(et(t))}function le(t,e){if(t===2)return e.getMoveHandle().getOrigin()!=null;const v=e.getHandle1().getOrigin();if(t===0)return v!=null;const h=e.getHandle2().getOrigin();return v&&h&&!Ye(v,h,0)}function ue(t,e){return((arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0)&&!le(t,e)?e.getMoveHandle():e[`getHandle${t+1}`]()).getOrigin()||null}function Re(t){let e=0;return le(0,t)&&(e=1+le(1,t)),e}const{ShapeType:rn}=Xe,on=2,cn=["getHandle1","getHandle2","getMoveHandle"];function ln(t,e){e.classHierarchy.push("vtkLineWidgetProp"),e._isDragging=!1,t.getHandle=i=>e.widgetState[cn[i]](),t.getHandleIndex=i=>{switch(i){case e.widgetState.getHandle1():return 0;case e.widgetState.getHandle2():return 1;case e.widgetState.getMoveHandle():return 2;default:return-1}},t.isPlaced=()=>Re(e.widgetState)===on;function v(i){return i.altKey||i.controlKey||i.shiftKey}function h(i){var n,s;e._isDragging=!0;const a=((s=(n=e.activeState)==null?void 0:n.getManipulator)==null?void 0:s.call(n))??e.manipulator;e.previousPosition=a.handleEvent(i,e._apiSpecificRenderWindow).worldCoords,e._apiSpecificRenderWindow.setCursor("grabbing"),e._interactor.requestAnimation(t)}t.setText=i=>{e.widgetState.getText().setText(i),e._interactor.render()};function M(i,a){const n=He(i,a,[]);return G(n),n}function o(i,a){const n=t.computeWorldToDisplay(e._renderer,...i);return t.computeDisplayToWorld(e._renderer,a.position.x,a.position.y,n[2])}function b(i){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const n=ue(i,e.widgetState),s=a?o(n,a):ue(1-i,e.widgetState);return n&&s?M(n,s):null}function k(i){const a=b(Math.min(1,i));e.representations[i].setOrientation(a)}t.updateHandleOrientations=()=>{k(0),k(1),k(2)},t.rotateHandlesToFaceCamera=()=>{e.representations[0].setViewMatrix(Array.from(e._camera.getViewMatrix())),e.representations[1].setViewMatrix(Array.from(e._camera.getViewMatrix()))},t.updateHandleVisibility=i=>{const a=t.getHandle(i),n=a.getVisible()&&le(i,e.widgetState);e.representations[i].setVisibilityFlagArray([n,n&&a.getShape()!==rn.NONE]),e.representations[i].updateActorVisibility(),e._interactor.render()},t.placeHandle=i=>{t.getHandle(i).setOrigin(...e.widgetState.getMoveHandle().getOrigin()),t.updateHandleOrientations(),t.rotateHandlesToFaceCamera(),e.widgetState.getText().setOrigin(et(e)),t.updateHandleVisibility(i),i===0&&(t.getHandle(1).setOrigin(...e.widgetState.getMoveHandle().getOrigin()),t.updateHandleVisibility(1),e.widgetState.getMoveHandle().setShape(t.getHandle(1).getShape())),i===1&&t.loseFocus()},t.handleLeftButtonPress=i=>!e.activeState||!e.activeState.getActive()||!e.pickable||v(i)?C.VOID:(e.activeState===e.widgetState.getMoveHandle()&&Re(e.widgetState)===0?t.placeHandle(0):e.widgetState.getMoveHandle().getActive()&&Re(e.widgetState)===1?t.placeHandle(1):e.dragable&&!e.widgetState.getText().getActive()&&h(i),t.invokeStartInteractionEvent(),C.EVENT_ABORT),t.handleMouseMove=i=>{var n,s;const a=((s=(n=e.activeState)==null?void 0:n.getManipulator)==null?void 0:s.call(n))??e.manipulator;if(a&&e.pickable&&e.dragable&&e.activeState&&e.activeState.getActive()&&!v(i)){const{worldCoords:r}=a.handleEvent(i,e._apiSpecificRenderWindow),l=e.previousPosition?He(r,e.previousPosition,[]):[0,0,0];if(e.previousPosition=r,e.activeState===e.widgetState.getMoveHandle()||e._isDragging)return e.activeState.setOrigin?(e.activeState.setOrigin(r),t.updateHandleVisibility(t.getHandleIndex(e.activeState))):(t.getHandle(0).setOrigin(Te(t.getHandle(0).getOrigin(),l,[])),t.getHandle(1).setOrigin(Te(t.getHandle(1).getOrigin(),l,[]))),t.updateHandleOrientations(),tt(e),t.invokeInteractionEvent(),C.EVENT_ABORT}return C.VOID},t.handleLeftButtonRelease=()=>{if(!e.activeState||!e.activeState.getActive()||!e.pickable)return t.rotateHandlesToFaceCamera(),C.VOID;if(e.hasFocus&&t.isPlaced())return t.loseFocus(),C.VOID;if(e._isDragging&&t.isPlaced()){const i=e.widgetState.getText().getActive();e.widgetState.deactivate(),e.activeState=null,i||e._interactor.cancelAnimation(t),e._apiSpecificRenderWindow.setCursor("pointer"),e.hasFocus=!1,e._isDragging=!1}else e.activeState!==e.widgetState.getMoveHandle()&&e.widgetState.deactivate();return(e.hasFocus&&!e.activeState||e.activeState&&!e.activeState.getActive())&&(e._widgetManager.enablePicking(),e._interactor.render()),t.invokeEndInteractionEvent(),C.EVENT_ABORT},t.grabFocus=()=>{!e.hasFocus&&!t.isPlaced()&&(e.activeState=e.widgetState.getMoveHandle(),e.activeState.setShape(t.getHandle(0).getShape()),e.activeState.activate(),e._interactor.requestAnimation(t),t.invokeStartInteractionEvent()),e.hasFocus=!0},t.loseFocus=()=>{e.hasFocus&&(e._interactor.cancelAnimation(t),t.invokeEndInteractionEvent()),e.widgetState.deactivate(),e.widgetState.getMoveHandle().deactivate(),e.widgetState.getMoveHandle().setOrigin(null),e.activeState=null,e.hasFocus=!1,e._widgetManager.enablePicking(),e._interactor.render()},t.reset=()=>{e.widgetState.deactivate(),e.widgetState.getMoveHandle().deactivate(),e.widgetState.getHandle1().setOrigin(null),e.widgetState.getHandle2().setOrigin(null),e.widgetState.getMoveHandle().setOrigin(null),e.widgetState.getText().setOrigin(null),e.widgetState.getText().setText(""),e.activeState=null}}function un(t,e){e.classHierarchy.push("vtkLineWidget");const v={...t};e.methodsToLink=["activeScaleFactor","activeColor","useActiveColor","glyphResolution","defaultScale","scaleInPixels"],t.getRepresentationsForViewType=h=>{switch(h){case re.DEFAULT:case re.GEOMETRY:case re.SLICE:case re.VOLUME:default:return[{builder:we,labels:["handle1"],initialValues:{visibilityFlagArray:[!1,!1],coincidentTopologyParameters:{Point:{factor:-1,offset:-1},Line:{factor:-1,offset:-1},Polygon:{factor:-3,offset:-3}}}},{builder:we,labels:["handle2"],initialValues:{visibilityFlagArray:[!1,!1],coincidentTopologyParameters:{Point:{factor:-1,offset:-1},Line:{factor:-1,offset:-1},Polygon:{factor:-3,offset:-3}}}},{builder:we,labels:["moveHandle"],initialValues:{visibilityFlagArray:[!1,!1],coincidentTopologyParameters:{Point:{factor:-1,offset:-1},Line:{factor:-1,offset:-1},Polygon:{factor:-3,offset:-3}}}},{builder:sn,labels:["handle1","handle2","moveHandle"],initialValues:{behavior:dt.HANDLE,pickable:!0}}]}},t.getDistance=()=>{const h=ue(0,e.widgetState),M=ue(1,e.widgetState);return h&&M?Math.sqrt(ce(h,M)):0},t.setManipulator=h=>{v.setManipulator(h),e.widgetState.getMoveHandle().setManipulator(h),e.widgetState.getHandle1().setManipulator(h),e.widgetState.getHandle2().setManipulator(h)},e.widgetState.onBoundsChange(h=>{const M=[(h[0]+h[1])*.5,(h[2]+h[3])*.5,(h[4]+h[5])*.5];e.widgetState.getMoveHandle().setOrigin(M)}),e.widgetState.getPositionOnLine().onModified(()=>{tt(e)}),t.setManipulator(e.manipulator||ft.newInstance({useCameraNormal:!0}))}const gn=t=>({behavior:ln,widgetState:_t(),...t});function nt(t,e){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gn(v)),gt.extend(t,e,v),C.setGet(t,e,["manipulator"]),un(t,e)}const dn=C.newInstance(nt,"vtkLineWidget");var fn={newInstance:dn,extend:nt};const pn={},Sn=Ct('<div><button id="addWidget">Add widget</button><br><button id="removeWidget">Remove widget</button><br><br><div>Distance: <span id="distance">0</span></div><br><div>Text:</div><textarea id="txtIpt" name="name"></textarea><br><br><div>Line position</div><input title="Line position" id="linePos" type="range" min="0" max="100" step="1" value="50"><br><br><label for="pet-select">Handle1</label><br><select name="handle1" class="HandleSource" id="idh1"><option value="sphere">Sphere</option><option value="cone">Cone</option><option value="cube">Cube</option><option value="triangle">Triangle</option><option value="4pointsArrowHead">4 points arrow head</option><option value="6pointsArrowHead">6 points arrow head</option><option value="star">Star</option><option value="disk">Disk</option><option value="circle">Circle</option><option value="viewFinder">View Finder</option><option value="voidSphere">None</option></select><div>Visibility <input id="visiH1" type="checkbox"><br></div><br><label for="pet-select">Handle2</label><br><select name="handle2" class="HandleSource" id="idh2"><option value="sphere">Sphere</option><option value="cone">Cone</option><option value="cube">Cube</option><option value="triangle">Triangle</option><option value="4pointsArrowHead">4 points arrow head</option><option value="6pointsArrowHead">6 points arrow head</option><option value="star">Star</option><option value="disk">Disk</option><option value="circle">Circle</option><option value="viewFinder">View Finder</option><option value="voidSphere">None</option></select><div>Visibility <input id="visiH2" type="checkbox"><br></div></div>',1);function vn(t,e){return ze(),Pe("div",null,[Tt(" 试试 "),Sn])}const hn=Ht(pn,[["render",vn]]),{computeWorldToDisplay:On}=bt,fe=kt.newInstance({background:[0,0,0]}),ee=fe.getRenderer(),pe=fe.getRenderWindow(),yn=qe.newInstance(),it=je.newInstance(),xe=Ee.newInstance();xe.setMapper(it);it.setInputConnection(yn.getOutputPort());xe.getProperty().setOpacity(.5);ee.addActor(xe);const I=pt.newInstance();I.setRenderer(ee);let Z=null,A=null,X=null,Q={};ee.resetCamera();fe.addController(hn);const Ce=[];function wn(t){Ce.push(St(ee,t.getWidgetState(),{mapState(e,{size:v}){const h=e.getText(),M=h.getText(),o=h.getOrigin();if(o){const b=On(ee,...o),k=[b[0],v[1]-b[1]];return{text:M,position:k}}return null},render(e,v){return e?v("text",{key:"lineText",attrs:{x:e.position[0],y:e.position[1],dx:12,dy:-12,fill:"white","font-size":32}},e.text):[]}}))}function Rn(){const t=document.getElementById("linePos").value;A.getWidgetState().getPositionOnLine().setPosOnLine(t/100),pe.render()}function Dn(){const t=document.getElementById("txtIpt").value;A&&(A.setText(t),pe.render())}document.querySelector("#txtIpt").addEventListener("keyup",Dn);function at(){A.onInteractionEvent(()=>{document.getElementById("distance").innerHTML=Z.getDistance().toFixed(2)}),A.onEndInteractionEvent(()=>{document.getElementById("distance").innerHTML=Z.getDistance().toFixed(2)})}document.querySelector("#linePos").addEventListener("input",Rn);function Hn(t,e){e==="voidSphere"?document.getElementById(`visiH${t}`).setAttribute("disabled","disabled"):e!=="voidSphere"&&document.getElementById(`visiH${t}`).getAttribute("disabled")==="disabled"&&document.getElementById(`visiH${t}`).removeAttribute("disabled")}function ge(t){const e=document.getElementById(`idh${t}`),v=e.options[e.selectedIndex].value,h=Q[t];h&&(h.setShape(v),A.updateHandleVisibility(t-1),A.getInteractor().render(),Hn(t,v),at())}function _e(t,e){t.getWidgetState().getHandle1().setColor(e),t.getWidgetState().getHandle2().setColor(e),t.setUseActiveColor(!1),t.getWidgetState().getMoveHandle().setColor(.3)}function st(t){if(t!=null){const e=I.getWidgets()[X];_e(e,.5)}t===X&&(X=null)}function ke(t){if(st(X),t!=null){const e=I.getWidgets()[t];_e(e,.2)}X=t}const Tn=document.getElementById("idh1"),Cn=document.getElementById("idh2");Tn.addEventListener("input",ge.bind(null,1));Cn.addEventListener("input",ge.bind(null,2));const kn=["visiH1","visiH2"].map(t=>document.getElementById(t)),bn=t=>{A!=null&&(t.target.id==="visiH1"?(A.getWidgetState().getHandle1().setVisible(t.target.checked),A.updateHandleVisibility(0)):(A.getWidgetState().getHandle2().setVisible(t.target.checked),A.updateHandleVisibility(1)),A.getInteractor().render(),pe.render())};kn.forEach(t=>t.addEventListener("input",bn));document.querySelector("#addWidget").addEventListener("click",()=>{let t=null;I.releaseFocus(Z),Z=fn.newInstance(),t=I.addWidget(Z),A=t,ke(I.getWidgets().length-1),wn(Z),Q={1:A.getWidgetState().getHandle1(),2:A.getWidgetState().getHandle2()},ge(1),ge(2),at(),I.grabFocus(Z),t.onStartInteractionEvent(()=>{const e=I.getWidgets().findIndex(v=>Et(t.getWidgetState(),v.getWidgetState())?1:0);Q={1:t.getWidgetState().getHandle1(),2:t.getWidgetState().getHandle2()},ke(e),A=t,document.getElementById("idh1").value=Q[1].getShape()===""?"sphere":Q[1].getShape(),document.getElementById("idh2").value=Q[1].getShape()===""?"sphere":Q[2].getShape(),document.getElementById("visiH1").checked=A.getWidgetState().getHandle1().getVisible(),document.getElementById("visiH2").checked=A.getWidgetState().getHandle2().getVisible(),document.getElementById("txtIpt").value=A.getWidgetState().getText().getText()})});document.querySelector("#removeWidget").addEventListener("click",()=>{st(X),I.removeWidget(I.getWidgets()[X]),Ce.length&&Ce.pop()(),I.getWidgets().length!==0&&(ke(I.getWidgets().length-1),_e(I.getWidgets()[X],.2))});global.widget=Z;global.renderer=ee;global.fullScreenRenderer=fe;global.renderWindow=pe;global.widgetManager=I;global.line=A;const Mn={__name:"demo",setup(t){return(e,v)=>(ze(),Pe("div",null," 试试 "))}};export{Mn as default};