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-c6cd7f31.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-6e368050.js";import{D as Et}from"./index-28e52b24.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;a2&&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{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{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(;l3&&arguments[3]!==void 0?arguments[3]:null,r=[0,0,1];const l=a;let u=l[0];for(let O=0;O1){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.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(;++p0?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;We.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{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{const Oe=se%3;return e.defaultNormal[Oe]}):W=!0);const z=s.getPointData().getNumberOfArrays();let $=null,j=null;for(let L=0;L1&&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;ue.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('



Distance: 0

Text:


Line position



Visibility


Visibility
',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};