12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import{v as Hn,b as dn}from"./SVGHelpers-c6cd7f31.js";import{g as Xn,D as Wn,t as Se,i as nt,c as re,a as ae,b as Yn,r as qn,d as Zn,e as Kn,s as Jn,f as se,m as ot,h as Qn,j as Nt,k as mn,l as ve,n as An,v as bn,o as In,p as Pn,q as tr,u as er,w as nr,x as rr,y as ar,z as sr,A as or,B as ir}from"./index-6e368050.js";import"./index-28e52b24.js";import{v as fr}from"./LabelWidget-193c836e.js";const d=Xn(),le={vtkObject:()=>null};function Q(e){if(e==null||e.isA)return e;if(!e.vtkClass)return d.console&&d.console.error&&d.console.error("Invalid VTK object"),null;const t=le[e.vtkClass];if(!t)return d.console&&d.console.error&&d.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach(a=>{n[a]&&typeof n[a]=="object"&&n[a].vtkClass&&(n[a]=Q(n[a]))});const r=t(n);return r&&r.modified&&r.modified(),r}function cr(e,t){le[e]=t}Q.register=cr;class Lt extends Array{push(){for(let t=0;t<arguments.length;t++)this.includes(arguments[t])||super.push(arguments[t]);return this.length}}let $t=0;const ke=Symbol("void");function ur(){return $t}const we={};function J(){}const gr=["log","debug","info","warn","error","time","timeEnd","group","groupEnd"];gr.forEach(e=>{we[e]=J});d.console=console.hasOwnProperty("log")?console:we;const K={debug:J,error:d.console.error||J,info:d.console.info||J,log:d.console.log||J,warn:d.console.warn||J};function Ee(e,t){K[e]&&(K[e]=t||J)}function xe(...e){K.log(...e)}function Ne(...e){K.info(...e)}function Ct(...e){K.debug(...e)}function $(...e){K.error(...e)}function Ft(...e){K.warn(...e)}const oe={};function Le(e){oe[e]||(K.error(e),oe[e]=!0)}const B=Object.create(null);B.Float32Array=Float32Array;B.Float64Array=Float64Array;B.Uint8Array=Uint8Array;B.Int8Array=Int8Array;B.Uint16Array=Uint16Array;B.Int16Array=Int16Array;B.Uint32Array=Uint32Array;B.Int32Array=Int32Array;B.Uint8ClampedArray=Uint8ClampedArray;try{B.BigInt64Array=BigInt64Array,B.BigUint64Array=BigUint64Array}catch{}function St(e,...t){return new(B[e]||Float64Array)(...t)}function jt(e,...t){return(B[e]||Float64Array).from(...t)}function vt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function N(e){return vt(e[0]==="_"?e.slice(1):e)}function Ve(e){return e.charAt(0).toLowerCase()+e.slice(1)}function $e(e,t=2,n=1e3){const r=["TB","GB","MB","KB"];let a=Number(e),s="B";for(;a>n;)a/=n,s=r.pop();return`${a.toFixed(t)} ${s}`}function _e(e,t=" "){const n=[];let r=e;for(;r>1e3;)n.push(`000${r%1e3}`.slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)}function Ue(e){Object.keys(e).forEach(t=>{Array.isArray(e[t])&&(e[t]=[].concat(e[t]))})}function hr(e){return Object.values(B).some(t=>e instanceof t)}function pr(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}function yr(e,t){return Object.keys(e).find(n=>e[n]===t)}function Ge(e){return e&&e.isA?e.getState():e}function zt(e){setTimeout(e,0)}function Be(e,t){const n=performance.now();e.finally(()=>{const r=performance.now()-n;t(r)})}function Ht(e={},t={}){Ue(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++$t),!("classHierarchy"in t))t.classHierarchy=new Lt("vtkObject");else if(!(t.classHierarchy instanceof Lt)){const s=new Lt;for(let o=0;o<t.classHierarchy.length;o++)s.push(t.classHierarchy[o]);t.classHierarchy=s}function r(s){n[s]=null}function a(s){function o(){r(s)}return Object.freeze({unsubscribe:o})}return e.isDeleted=()=>!!t.deleted,e.modified=s=>{if(t.deleted){$("instance deleted - cannot call any method");return}s&&s<e.getMTime()||(t.mtime=++$t,n.forEach(o=>o&&o(e)))},e.onModified=s=>{if(t.deleted)return $("instance deleted - cannot call any method"),null;const o=n.length;return n.push(s),a(o)},e.getMTime=()=>t.mtime,e.isA=s=>{let o=t.classHierarchy.length;for(;o--;)if(t.classHierarchy[o]===s)return!0;return!1},e.getClassName=(s=0)=>t.classHierarchy[t.classHierarchy.length-1-s],e.set=(s={},o=!1,i=!1)=>{let c=!1;return Object.keys(s).forEach(f=>{const u=i?null:e[`set${vt(f)}`];u&&Array.isArray(s[f])&&u.length>1?c=u(...s[f])||c:u?c=u(s[f])||c:(["mtime"].indexOf(f)===-1&&!o&&Ft(`Warning: Set value to model directly ${f}, ${s[f]}`),c=t[f]!==s[f]||c,t[f]=s[f])}),c},e.get=(...s)=>{if(!s.length)return t;const o={};return s.forEach(i=>{o[i]=t[i]}),o},e.getReferenceByName=s=>t[s],e.delete=()=>{Object.keys(t).forEach(s=>delete t[s]),n.forEach((s,o)=>r(o)),t.deleted=!0},e.getState=()=>{if(t.deleted)return null;const s={...t,vtkClass:e.getClassName()};Object.keys(s).forEach(i=>{s[i]===null||s[i]===void 0||i[0]==="_"?delete s[i]:s[i].isA?s[i]=s[i].getState():Array.isArray(s[i])?s[i]=s[i].map(Ge):hr(s[i])&&(s[i]=Array.from(s[i]))});const o={};return Object.keys(s).sort().forEach(i=>{o[i]=s[i]}),o.mtime&&delete o.mtime,o},e.shallowCopy=(s,o=!1)=>{if(s.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${s.getClassName()} into ${e.getClassName()}`);const i=s.get(),c=Object.keys(t).sort();Object.keys(i).sort().forEach(u=>{const p=c.indexOf(u);p===-1?o&&Ct(`add ${u} in shallowCopy`):c.splice(p,1),t[u]=i[u]}),c.length&&o&&Ct(`Untouched keys: ${c.join(", ")}`),e.modified()},e.toJSON=function(){return e.getState()},e}const Tr={object(e,t,n){return function(){return{...t[n.name]}}}};function st(e,t,n){n.forEach(r=>{if(typeof r=="object"){const a=Tr[r.type];a?e[`get${N(r.name)}`]=a(e,t,r):e[`get${N(r.name)}`]=()=>t[r.name]}else e[`get${N(r)}`]=()=>t[r]})}const Cr={enum(e,t,n){const r=`_on${N(n.name)}Changed`;return a=>{var s;if(typeof a=="string"){if(n.enum[a]!==void 0)return t[n.name]!==n.enum[a]?(t[n.name]=n.enum[a],e.modified(),!0):!1;throw $(`Set Enum with invalid argument ${n}, ${a}`),new RangeError("Set Enum with invalid string argument")}if(typeof a=="number"){if(t[n.name]!==a){if(Object.keys(n.enum).map(o=>n.enum[o]).indexOf(a)!==-1){const o=t[n.name];return t[n.name]=a,(s=t[r])==null||s.call(t,e,t,a,o),e.modified(),!0}throw $(`Set Enum outside numeric range ${n}, ${a}`),new RangeError("Set Enum outside numeric range")}return!1}throw $(`Set Enum with invalid argument (String/Number) ${n}, ${a}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(e,t,n){const r=`_on${N(n.name)}Changed`;return a=>{var s;if(!Wn(t[n.name],a)){const o=t[n.name];return t[n.name]=a,(s=t[r])==null||s.call(t,e,t,a,o),e.modified(),!0}return!1}}};function ie(e){if(typeof e=="object"){const t=Cr[e.type];if(t)return(n,r)=>t(n,r,e);throw $(`No setter for field ${e}`),new TypeError("No setter for field")}return function(n,r){const a=`_on${N(e)}Changed`;return function(o){var i;if(r.deleted)return $("instance deleted - cannot call any method"),!1;if(r[e]!==o){const c=r[e.name];return r[e]=o,(i=r[a])==null||i.call(r,n,r,o,c),n.modified(),!0}return!1}}}function lt(e,t,n){n.forEach(r=>{typeof r=="object"?e[`set${N(r.name)}`]=ie(r)(e,t):e[`set${N(r)}`]=ie(r)(e,t)})}function dt(e,t,n){st(e,t,n),lt(e,t,n)}function Xt(e,t,n){n.forEach(r=>{e[`get${N(r)}`]=()=>t[r]?Array.from(t[r]):t[r],e[`get${N(r)}ByReference`]=()=>t[r]})}function Wt(e,t,n,r,a=void 0){n.forEach(s=>{if(t[s]&&r&&t[s].length!==r)throw new RangeError(`Invalid initial number of values for array (${s})`);const o=`_on${N(s)}Changed`;e[`set${N(s)}`]=(...i)=>{var p;if(t.deleted)return $("instance deleted - cannot call any method"),!1;let c=i,f,u=!1;if(c.length===1&&(c[0]==null||c[0].length>=0)&&(c=c[0],u=!0),c==null)f=t[s]!==c;else{if(r&&c.length!==r)if(c.length<r&&a!==void 0)for(c=Array.from(c),u=!1;c.length<r;)c.push(a);else throw new RangeError(`Invalid number of values for array setter (${s})`);f=t[s]==null||t[s].length!==c.length;for(let h=0;!f&&h<c.length;++h)f=t[s][h]!==c[h];f&&u&&(c=Array.from(c))}if(f){const h=t[s.name];t[s]=c,(p=t[o])==null||p.call(t,e,t,c,h),e.modified()}return f},e[`set${N(s)}From`]=i=>{const c=t[s];i.forEach((f,u)=>{c[u]=f})}})}function Fe(e,t,n,r,a=void 0){Xt(e,t,n),Wt(e,t,n,r,a)}function je(e,t,n){for(let r=0;r<n.length;r++){const a=n[r];t[a]!==void 0&&(t[`_${a}`]=t[a],delete t[a])}}function ze(e,t,n,r){t.inputData?t.inputData=t.inputData.map(Q):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(Q):t.inputConnection=[],t.output?t.output=t.output.map(Q):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(Q):t.inputArrayToProcess=[],t.numberOfInputs=n;function a(g,y=0){if(t.deleted){$("instance deleted - cannot call any method");return}if(y>=t.numberOfInputs){$(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`);return}(t.inputData[y]!==g||t.inputConnection[y])&&(t.inputData[y]=g,t.inputConnection[y]=null,e.modified&&e.modified())}function s(g=0){return t.inputConnection[g]&&(t.inputData[g]=t.inputConnection[g]()),t.inputData[g]}function o(g,y=0){if(t.deleted){$("instance deleted - cannot call any method");return}if(y>=t.numberOfInputs){let D=`algorithm ${e.getClassName()} only has `;D+=`${t.numberOfInputs}`,D+=" input ports. To add more input ports, use addInputConnection()",$(D);return}t.inputData[y]=null,t.inputConnection[y]=g}function i(g=0){return t.inputConnection[g]}function c(){let g=t.numberOfInputs;for(;g&&!t.inputData[g-1]&&!t.inputConnection[g-1];)g--;return g===t.numberOfInputs&&t.numberOfInputs++,g}function f(g){if(t.deleted){$("instance deleted - cannot call any method");return}o(g,c())}function u(g){if(t.deleted){$("instance deleted - cannot call any method");return}a(g,c())}function p(g=0){return t.deleted?($("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[g])}e.shouldUpdate=()=>{var S,l;const g=e.getMTime();let y=1/0,D=r;for(;D--;){if(!t.output[D]||t.output[D].isDeleted())return!0;const k=t.output[D].getMTime();if(k<g)return!0;k<y&&(y=k)}for(D=t.numberOfInputs;D--;)if((S=t.inputConnection[D])!=null&&S.filter.shouldUpdate()||((l=e.getInputData(D))==null?void 0:l.getMTime())>y)return!0;return!1};function h(g=0){const y=()=>p(g);return y.filter=e,y}if(t.numberOfInputs){let g=t.numberOfInputs;for(;g--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=a,e.setInputConnection=o,e.addInputData=u,e.addInputConnection=f,e.getInputData=s,e.getInputConnection=i}r&&(e.getOutputData=p,e.getOutputPort=h),e.update=()=>{const g=[];if(t.numberOfInputs){let y=0;for(;y<t.numberOfInputs;)g[y]=e.getInputData(y),y++}e.shouldUpdate()&&e.requestData&&e.requestData(g,t.output)},e.getNumberOfInputPorts=()=>t.numberOfInputs,e.getNumberOfOutputPorts=()=>r||t.output.length,e.getInputArrayToProcess=g=>{const y=t.inputArrayToProcess[g],D=t.inputData[g];return y&&D?D[`get${y.fieldAssociation}`]().getArray(y.arrayName):null},e.setInputArrayToProcess=(g,y,D,S="Scalars")=>{for(;t.inputArrayToProcess.length<g;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[g]={arrayName:y,fieldAssociation:D,attributeType:S}}}const Yt=Symbol("Event abort");function He(e,t,n){const r=[],a=e.delete;let s=1;function o(f){for(let u=0;u<r.length;++u){const[p]=r[u];if(p===f){r.splice(u,1);return}}}function i(f){function u(){o(f)}return Object.freeze({unsubscribe:u})}function c(){if(t.deleted){$("instance deleted - cannot call any method");return}const f=r.slice();for(let u=0;u<f.length;++u){const[,p,h]=f[u];if(p){if(h<0)setTimeout(()=>p.apply(e,arguments),1-h);else if(p.apply(e,arguments)===Yt)break}}}e[`invoke${N(n)}`]=c,e[`on${N(n)}`]=(f,u=0)=>{if(!f.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return $("instance deleted - cannot call any method"),null;const p=s++;return r.push([p,f,u]),r.sort((h,g)=>g[2]-h[2]),i(p)},e.delete=()=>{a(),r.forEach(([f])=>o(f))}}function qt(e,t){const n=(r={})=>{const a={},s={};return e(s,a,r),Object.freeze(s)};return t&&Q.register(t,n),n}function de(...e){return(...t)=>e.filter(n=>!!n).map(n=>n(...t))}function Zt(e){return e&&e.isA&&e.isA("vtkObject")}function Mt(e,t,n=[],r=[]){if(Zt(e)){if(r.indexOf(e)>=0)return n;r.push(e);const a=t(e);a!==void 0&&n.push(a);const s=e.get();Object.keys(s).forEach(o=>{const i=s[o];Array.isArray(i)?i.forEach(c=>{Mt(c,t,n,r)}):Mt(i,t,n,r)})}return n}function Xe(e,t,n){let r;const a=(...s)=>{const o=this,i=()=>{r=null,n||e.apply(o,s)},c=n&&!r;clearTimeout(r),r=setTimeout(i,t),c&&e.apply(o,s)};return a.cancel=()=>clearTimeout(r),a}function We(e,t){let n=!1,r=null;function a(){n=!1,r!==null&&(s(...r),r=null)}function s(...o){if(n){r=o;return}n=!0,e(...o),setTimeout(a,t)}return s}function Kt(e,t,n={}){t.keystore=Object.assign(t.keystore||{},n),e.setKey=(r,a)=>{t.keystore[r]=a},e.getKey=r=>t.keystore[r],e.getAllKeys=()=>Object.keys(t.keystore),e.deleteKey=r=>delete t.keystore[r],e.clearKeystore=()=>e.getAllKeys().forEach(r=>delete t.keystore[r])}let Mr=1;const it="__root__";function Ye(e,t){Kt(e,t);const n=e.delete;t.proxyId=`${Mr++}`,t.ui=JSON.parse(JSON.stringify(t.ui||[])),st(e,t,["proxyId","proxyGroup","proxyName"]),dt(e,t,["proxyManager"]);const r={},a={};function s(f,u){a[u]||(a[u]=[]);const p=a[u];for(let h=0;h<f.length;h++)p.push(f[h].name),r[f[h].name]=f[h],f[h].children&&f[h].children.length&&s(f[h].children,f[h].name)}s(t.ui,it),e.updateUI=f=>{t.ui=JSON.parse(JSON.stringify(f||[])),Object.keys(r).forEach(u=>delete r[u]),Object.keys(a).forEach(u=>delete a[u]),s(t.ui,it),e.modified()};function o(f=it){return a[f]}e.updateProxyProperty=(f,u)=>{const p=r[f];p?Object.assign(p,u):r[f]={...u}},e.activate=()=>{if(t.proxyManager){const f=`setActive${N(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[f]&&t.proxyManager[f](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(f,u)=>{u in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[u]=[]),t.propertyLinkSubscribers[u].push(f)},e.gcPropertyLinks=f=>{const u=t.propertyLinkSubscribers[f]||[];for(;u.length;)u.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=(f,u=!1)=>{if(t.propertyLinkMap[f])return t.propertyLinkMap[f];let p=null;const h=[];let g=0,y=!1;function D(C,w=!1){if(y)return null;const L=[];let _=null;for(g=h.length;g--;){const x=h[g];x.instance===C?_=x:L.push(x)}if(!_)return null;const U=_.instance[`get${N(_.propertyName)}`]();if(!pr(U,p)||w){for(p=U,y=!0;L.length;){const x=L.pop();x.instance.set({[x.propertyName]:p})}y=!1}return t.propertyLinkMap[f].persistent&&(t.propertyLinkMap[f].value=U),U}function S(C,w){const L=[];for(g=h.length;g--;){const _=h[g];_.instance===C&&(_.propertyName===w||w===void 0)&&(_.subscription.unsubscribe(),L.push(g))}for(;L.length;)h.splice(L.pop(),1)}function l(C,w,L=!1){const _=C.onModified(D),U=h[0];return h.push({instance:C,propertyName:w,subscription:_}),L&&(t.propertyLinkMap[f].persistent&&t.propertyLinkMap[f].value!==void 0?C.set({[w]:t.propertyLinkMap[f].value}):U&&D(U.instance,!0)),{unsubscribe:()=>S(C,w)}}function k(){for(;h.length;)h.pop().subscription.unsubscribe()}const v={bind:l,unbind:S,unsubscribe:k,persistent:u};return t.propertyLinkMap[f]=v,v};function i(f=it){const u=[],p=t.proxyId,h=o(f)||[];for(let g=0;g<h.length;g++){const y=h[g],D=e[`get${N(y)}`],S=D?D():void 0,l={id:p,name:y,value:S},k=i(y);k.length&&(l.children=k),u.push(l)}return u}e.listPropertyNames=()=>i().map(f=>f.name),e.getPropertyByName=f=>i().find(u=>u.name===f),e.getPropertyDomainByName=f=>(r[f]||{}).domain,e.getProxySection=()=>({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}),e.delete=()=>{const f=Object.keys(t.propertyLinkMap);let u=f.length;for(;u--;)t.propertyLinkMap[f[u]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=>null;function c(){if(t.links)for(let f=0;f<t.links.length;f++){const{link:u,property:p,persistent:h,updateOnBind:g,type:y}=t.links[f];if(y==="application"){const D=t.proxyManager.getPropertyLink(u,h);e.registerPropertyLinkForGC(D,"application"),D.bind(e,p,g)}}}zt(c)}function qe(e,t,n){const r=e.delete,a=[],s=Object.keys(n);let o=s.length;for(;o--;){const i=s[o],{modelKey:c,property:f,modified:u=!0}=n[i],p=N(f),h=N(i);e[`get${h}`]=t[c][`get${p}`],e[`set${h}`]=t[c][`set${p}`],u&&a.push(t[c].onModified(e.modified))}e.delete=()=>{for(;a.length;)a.pop().unsubscribe();r()}}function Ze(e,t,n={},r={}){t.this=e;function a(i){const c=Object.keys(i);let f=c.length;for(;f--;){const u=c[f];t[u].set(i[u])}}const s=Object.keys(r);let o=s.length;for(;o--;){const i=s[o];t[i]=r[i];const c=n[i];e[`set${N(i)}`]=f=>{if(f!==t[i]){t[i]=f;const u=c[f];a(u),e.modified()}}}s.length&&st(e,t,s)}const fe=10,ce=40,ue=800;function Ke(e){let t=0,n=0,r=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*fe,a=n*fe,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(e.deltaMode===1?(r*=ce,a*=ce):(r*=ue,a*=ue)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:a||r}}const O={algo:ze,capitalize:vt,chain:de,debounce:Xe,enumToString:yr,event:He,EVENT_ABORT:Yt,formatBytesToProperUnit:$e,formatNumbersWithThousandSeparator:_e,get:st,getArray:Xt,getCurrentGlobalMTime:ur,getStateArrayMapFunc:Ge,isVtkObject:Zt,keystore:Kt,measurePromiseExecution:Be,moveToProtected:je,newInstance:qt,newTypedArray:St,newTypedArrayFrom:jt,normalizeWheel:Ke,obj:Ht,proxy:Ye,proxyPropertyMapping:qe,proxyPropertyState:Ze,safeArrays:Ue,set:lt,setArray:Wt,setGet:dt,setGetArray:Fe,setImmediate:zt,setLoggerFunction:Ee,throttle:We,traverseInstanceTree:Mt,TYPED_ARRAYS:B,uncapitalize:Ve,VOID:ke,vtkDebugMacro:Ct,vtkErrorMacro:$,vtkInfoMacro:Ne,vtkLogMacro:xe,vtkOnceErrorMacro:Le,vtkWarningMacro:Ft},Or=Object.freeze(Object.defineProperty({__proto__:null,EVENT_ABORT:Yt,TYPED_ARRAYS:B,VOID:ke,_capitalize:N,algo:ze,capitalize:vt,chain:de,debounce:Xe,default:O,event:He,formatBytesToProperUnit:$e,formatNumbersWithThousandSeparator:_e,get:st,getArray:Xt,isVtkObject:Zt,keystore:Kt,measurePromiseExecution:Be,moveToProtected:je,newInstance:qt,newTypedArray:St,newTypedArrayFrom:jt,normalizeWheel:Ke,obj:Ht,proxy:Ye,proxyPropertyMapping:qe,proxyPropertyState:Ze,set:lt,setArray:Wt,setGet:dt,setGetArray:Fe,setImmediateVTK:zt,setLoggerFunction:Ee,throttle:We,traverseInstanceTree:Mt,uncapitalize:Ve,vtkDebugMacro:Ct,vtkErrorMacro:$,vtkInfoMacro:Ne,vtkLogMacro:xe,vtkOnceErrorMacro:Le,vtkWarningMacro:Ft},Symbol.toStringTag,{value:"Module"})),Dr=1e-6;function ft(e){return e/180*Math.PI}function Rr(e){return e*180/Math.PI}const{round:Aa,floor:Sr,ceil:ba,min:Ia,max:Pa}=Math;function vr(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n}function at(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n}function F(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function lr(e,t,n){const r=e[1]*t[2]-e[2]*t[1],a=e[2]*t[0]-e[0]*t[2],s=e[0]*t[1]-e[1]*t[0];return n[0]=r,n[1]=a,n[2]=s,n}function kr(e,t=3){switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r<t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}}function wr(e,t,n=Dr){if(e.length!==t.length)return!1;function r(a,s){return Math.abs(a-t[s])<=n}return e.every(r)}const Er=wr;function ct(e,t){let n,r;const[a,s,o]=e,i=1/3,c=1/6,f=2/3;let u=a,p=a;s>u?u=s:s<p&&(p=s),o>u?u=o:o<p&&(p=o);const h=u;h>0?r=(u-p)/u:r=0,r>0?(a===u?n=c*(s-o)/(u-p):s===u?n=i+c*(o-a)/(u-p):n=f+c*(a-s)/(u-p),n<0&&(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=h}function tt(e,t){const[n,r,a]=e,s=1/3,o=1/6,i=2/3,c=5/6;let f,u,p;n>o&&n<=s?(u=1,f=(s-n)/o,p=0):n>s&&n<=.5?(u=1,p=(n-s)/o,f=0):n>.5&&n<=i?(p=1,u=(i-n)/o,f=0):n>i&&n<=c?(p=1,f=(n-i)/o,u=0):n>c&&n<=1?(f=1,p=(1-n)/o,u=0):(f=1,u=n/o,p=0),f=r*f+(1-r),u=r*u+(1-r),p=r*p+(1-r),f*=a,u*=a,p*=a,t[0]=f,t[1]=u,t[2]=p}function xr(e,t){const[n,r,a]=e;let s=(n+16)/116,o=r/500+s,i=s-a/200;s**3>.008856?s**=3:s=(s-16/116)/7.787,o**3>.008856?o**=3:o=(o-16/116)/7.787,i**3>.008856?i**=3:i=(i-16/116)/7.787;const c=.9505,f=1,u=1.089;t[0]=c*o,t[1]=f*s,t[2]=u*i}function Nr(e,t){const[n,r,a]=e,s=.9505,o=1,i=1.089;let c=n/s,f=r/o,u=a/i;c>.008856?c**=1/3:c=7.787*c+16/116,f>.008856?f**=1/3:f=7.787*f+16/116,u>.008856?u**=1/3:u=7.787*u+16/116,t[0]=116*f-16,t[1]=500*(c-f),t[2]=200*(f-u)}function Lr(e,t){const[n,r,a]=e;let s=n*3.2406+r*-1.5372+a*-.4986,o=n*-.9689+r*1.8758+a*.0415,i=n*.0557+r*-.204+a*1.057;s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92,o>.0031308?o=1.055*o**(1/2.4)-.055:o*=12.92,i>.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92;let c=s;c<o&&(c=o),c<i&&(c=i),c>1&&(s/=c,o/=c,i/=c),s<0&&(s=0),o<0&&(o=0),i<0&&(i=0),t[0]=s,t[1]=o,t[2]=i}function Vr(e,t){let[n,r,a]=e;n>.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r>.04045?r=((r+.055)/1.055)**2.4:r/=12.92,a>.04045?a=((a+.055)/1.055)**2.4:a/=12.92,t[0]=n*.4124+r*.3576+a*.1805,t[1]=n*.2126+r*.7152+a*.0722,t[2]=n*.0193+r*.1192+a*.9505}function b(e,t){const n=[0,0,0];Vr(e,n),Nr(n,t)}function _t(e,t){const n=[0,0,0];xr(e,n),Lr(n,t)}const $r=e=>!Number.isFinite(e),{isFinite:ts,isNaN:_r}=Number,ge=_r,Ut=1e-6,Je="coincide",Qe="disjoint";function Ur(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])}function me(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Ae(e,t,n,r){const a=[];at(e,t,a);const s=F(n,a);r[0]=e[0]-s*n[0],r[1]=e[1]-s*n[1],r[2]=e[2]-s*n[2]}function be(e,t,n){const r=F(e,t);let a=F(t,t);return a===0&&(a=1),n[0]=e[0]-r*t[0]/a,n[1]=e[1]-r*t[1]/a,n[2]=e[2]-r*t[2]/a,n}function Ie(e,t,n,r){const a=[];at(e,t,a);const s=F(n,a),o=F(n,n);o!==0?(r[0]=e[0]-s*n[0]/o,r[1]=e[1]-s*n[1]/o,r[2]=e[2]-s*n[2]/o):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function Pe(e,t,n,r){const a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},s=[],o=[];at(t,e,s),at(n,e,o);const i=F(r,o),c=F(r,s);let f,u;return c<0?f=-c:f=c,i<0?u=-i*Ut:u=i*Ut,f<=u||(a.t=i/c,a.x[0]=e[0]+a.t*s[0],a.x[1]=e[1]+a.t*s[1],a.x[2]=e[2]+a.t*s[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1),a}function tn(e,t,n,r){const a={intersection:!1,l0:[],l1:[],error:null},s=[];lr(t,r,s);const o=s.map(p=>Math.abs(p));if(o[0]+o[1]+o[2]<Ut){const p=[];return at(e,n,p),F(t,p)===0?a.error=Je:a.error=Qe,a}let i;o[0]>o[1]&&o[0]>o[2]?i="x":o[1]>o[2]?i="y":i="z";const c=[],f=-F(t,e),u=-F(r,n);switch(i){case"x":c[0]=0,c[1]=(u*t[2]-f*r[2])/s[0],c[2]=(f*r[1]-u*t[1])/s[0];break;case"y":c[0]=(f*r[2]-u*t[2])/s[1],c[1]=0,c[2]=(u*t[0]-f*r[0])/s[1];break;case"z":c[0]=(u*t[1]-f*r[1])/s[2],c[1]=(f*r[0]-u*t[0])/s[2],c[2]=0;break}return a.l0=c,vr(c,s,a.l1),a.intersection=!0,a}const Gr={evaluate:Ur,distanceToPlane:me,projectPoint:Ae,projectVector:be,generalizedProjectPoint:Ie,intersectWithLine:Pe,intersectWithPlane:tn,DISJOINT:Qe,COINCIDE:Je};function Br(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=n=>me(n,t.origin,t.normal),e.projectPoint=(n,r)=>{Ae(n,t.origin,t.normal,r)},e.projectVector=(n,r)=>be(n,t.normal,r),e.push=n=>{if(n!==0)for(let r=0;r<3;r++)t.origin[r]+=n*t.normal[r]},e.generalizedProjectPoint=(n,r)=>{Ie(n,t.origin,t.normal,r)},e.evaluateFunction=(n,r,a)=>Array.isArray(n)?t.normal[0]*(n[0]-t.origin[0])+t.normal[1]*(n[1]-t.origin[1])+t.normal[2]*(n[2]-t.origin[2]):t.normal[0]*(n-t.origin[0])+t.normal[1]*(r-t.origin[1])+t.normal[2]*(a-t.origin[2]),e.evaluateGradient=n=>[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(n,r)=>Pe(n,r,t.origin,t.normal),e.intersectWithPlane=(n,r)=>tn(n,r,t.origin,t.normal)}const Fr={normal:[0,0,1],origin:[0,0,0]};function en(e,t,n={}){Object.assign(t,Fr,n),O.obj(e,t),O.setGetArray(e,t,["normal","origin"],3),Br(e,t)}const jr=O.newInstance(en,"vtkPlane"),nn={newInstance:jr,extend:en,...Gr},kt=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function rn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function q(e){return(e==null?void 0:e.length)>=6&&e[0]<=e[1]&&e[2]<=e[3]&&e[4]<=e[5]}function Jt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Qt(e){return Jt(e,kt)}function Ot(e,t,n,r){const[a,s,o,i,c,f]=e;return e[0]=a<t?a:t,e[1]=s>t?s:t,e[2]=o<n?o:n,e[3]=i>n?i:n,e[4]=c<r?c:r,e[5]=f>r?f:r,e}function mt(e,t){if(t.length===0)return e;if(Array.isArray(t[0]))for(let n=0;n<t.length;++n)Ot(e,...t[n]);else for(let n=0;n<t.length;n+=3)Ot(e,...t.slice(n,n+3));return e}function an(e,t,n,r,a,s,o){const[i,c,f,u,p,h]=e;return o===void 0?(e[0]=Math.min(t[0],i),e[1]=Math.max(t[1],c),e[2]=Math.min(t[2],f),e[3]=Math.max(t[3],u),e[4]=Math.min(t[4],p),e[5]=Math.max(t[5],h)):(e[0]=Math.min(t,i),e[1]=Math.max(n,c),e[2]=Math.min(r,f),e[3]=Math.max(a,u),e[4]=Math.min(s,p),e[5]=Math.max(o,h)),e}function sn(e,t,n,r){const[a,s,o,i,c,f]=e;return e[0]=t,e[1]=t>s?t:s,e[2]=n,e[3]=n>i?n:i,e[4]=r,e[5]=r>f?r:f,a!==t||o!==n||c!==r}function on(e,t,n,r){const[a,s,o,i,c,f]=e;return e[0]=t<a?t:a,e[1]=t,e[2]=n<o?n:o,e[3]=n,e[4]=r<c?r:c,e[5]=r,s!==t||i!==n||f!==r}function fn(e,t){return e[0]-=t,e[1]+=t,e[2]-=t,e[3]+=t,e[4]-=t,e[5]+=t,e}function At(e,t,n,r){return q(e)?(t>=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0):!1}function bt(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function zr(e,t,n,r){if(!q(e))return!1;const a=bt(e);return e[0]-=a[0],e[1]-=a[0],e[2]-=a[1],e[3]-=a[1],e[4]-=a[2],e[5]-=a[2],At(e,t,n,r),e[0]+=a[0],e[1]+=a[0],e[2]+=a[1],e[3]+=a[1],e[4]+=a[2],e[5]+=a[2],!0}function rt(e,t){return e[t*2+1]-e[t*2]}function wt(e){return[rt(e,0),rt(e,1),rt(e,2)]}function cn(e){return e.slice(0,2)}function un(e){return e.slice(2,4)}function gn(e){return e.slice(4,6)}function hn(e){const t=wt(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function pn(e){if(q(e)){const t=wt(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function It(e){return[e[0],e[2],e[4]]}function Pt(e){return[e[1],e[3],e[5]]}function ut(e,t){return e<=0&&t>=0||e>=0&&t<=0}function te(e,t){let n=0;for(let r=0;r<2;r++)for(let a=2;a<4;a++)for(let s=4;s<6;s++)t[n++]=[e[r],e[a],e[s]];return t}function yn(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function Tn(e,t,n=[]){const r=te(e,[]);for(let a=0;a<r.length;++a)Se(r[a],r[a],t);return Qt(n),mt(n,r)}function Cn(e,t=[]){return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function Mn(e,t,n,r){const a=[].concat(kt),s=e.getData();for(let o=0;o<s.length;o+=3){const i=[s[o],s[o+1],s[o+2]],c=F(i,t);a[0]=Math.min(c,a[0]),a[1]=Math.max(c,a[1]);const f=F(i,n);a[2]=Math.min(f,a[2]),a[3]=Math.max(f,a[3]);const u=F(i,r);a[4]=Math.min(u,a[4]),a[5]=Math.max(u,a[5])}return a}function On(e,t,n,r,a){let s=!0;const o=[];let i=0;const c=[],f=[0,0,0],u=0,p=1,h=2;for(let g=0;g<3;g++)t[g]<e[2*g]?(o[g]=p,f[g]=e[2*g],s=!1):t[g]>e[2*g+1]?(o[g]=u,f[g]=e[2*g+1],s=!1):o[g]=h;if(s)return r[0]=t[0],r[1]=t[1],r[2]=t[2],a[0]=0,1;for(let g=0;g<3;g++)o[g]!==h&&n[g]!==0?c[g]=(f[g]-t[g])/n[g]:c[g]=-1;for(let g=0;g<3;g++)c[i]<c[g]&&(i=g);if(c[i]>1||c[i]<0)return 0;a[0]=c[i];for(let g=0;g<3;g++)if(i!==g){if(r[g]=t[g]+c[i]*n[g],r[g]<e[2*g]||r[g]>e[2*g+1])return 0}else r[g]=f[g];return 1}function Dn(e,t,n){const r=[];let a=0,s=1,o=1;for(let i=4;i<=5;++i){r[2]=e[i];for(let c=2;c<=3;++c){r[1]=e[c];for(let f=0;f<=1;++f)if(r[0]=e[f],a=nn.evaluate(n,t,r),o&&(s=a>=0?1:-1,o=0),a===0||s>0&&a<0||s<0&&a>0)return 1}}return 0}function Rn(e,t){if(!(q(e)&&q(t)))return!1;const n=[0,0,0,0,0,0];let r;for(let a=0;a<3;a++)if(r=!1,t[a*2]>=e[a*2]&&t[a*2]<=e[a*2+1]?(r=!0,n[a*2]=t[a*2]):e[a*2]>=t[a*2]&&e[a*2]<=t[a*2+1]&&(r=!0,n[a*2]=e[a*2]),t[a*2+1]>=e[a*2]&&t[a*2+1]<=e[a*2+1]?(r=!0,n[a*2+1]=t[2*a+1]):e[a*2+1]>=t[a*2]&&e[a*2+1]<=t[a*2+1]&&(r=!0,n[a*2+1]=e[a*2+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function Dt(e,t){if(!(q(e)&&q(t)))return!1;for(let n=0;n<3;n++)if(!(t[n*2]>=e[n*2]&&t[n*2]<=e[n*2+1])&&!(e[n*2]>=t[n*2]&&e[n*2]<=t[n*2+1])&&!(t[n*2+1]>=e[n*2]&&t[n*2+1]<=e[n*2+1])&&!(e[n*2+1]>=t[n*2]&&e[n*2+1]<=t[n*2+1]))return!1;return!0}function Rt(e,t,n,r){return!(t<e[0]||t>e[1]||n<e[2]||n>e[3]||r<e[4]||r>e[5])}function Hr(e,t){return!(!Dt(e,t)||!Rt(e,...It(t))||!Rt(e,...Pt(t)))}function Sn(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],a=[0,0,0,0,0,0,0,0];let s=0;for(let p=0;p<2;p++)for(let h=2;h<4;h++)for(let g=4;g<6;g++){const y=[e[p],e[h],e[g]];a[s++]=nn.evaluate(n,t,y)}let o=2;for(;o--&&!(ut(a[r[o][0]],a[r[o][4]])&&ut(a[r[o][1]],a[r[o][5]])&&ut(a[r[o][2]],a[r[o][6]])&&ut(a[r[o][3]],a[r[o][7]])););if(o<0)return!1;const i=Math.sign(n[o]),c=Math.abs((e[o*2+1]-e[o*2])*n[o]);let f=i>0?1:0;for(let p=0;p<4;p++){if(c===0)continue;const h=Math.abs(a[r[o][p]])/c;i>0&&h<f&&(f=h),i<0&&h>f&&(f=h)}const u=(1-f)*e[o*2]+f*e[o*2+1];return i>0?e[o*2]=u:e[o*2+1]=u,!0}class dr{constructor(t){this.bounds=t,this.bounds||(this.bounds=new Float64Array(kt))}getBounds(){return this.bounds}equals(t){return rn(this.bounds,t)}isValid(){return q(this.bounds)}setBounds(t){return Jt(this.bounds,t)}reset(){return Qt(this.bounds)}addPoint(...t){return Ot(this.bounds,...t)}addPoints(t){return mt(this.bounds,t)}addBounds(t,n,r,a,s,o){return an(this.bounds,t,n,r,a,s,o)}setMinPoint(t,n,r){return sn(this.bounds,t,n,r)}setMaxPoint(t,n,r){return on(this.bounds,t,n,r)}inflate(t){return fn(this.bounds,t)}scale(t,n,r){return At(this.bounds,t,n,r)}getCenter(){return bt(this.bounds)}getLength(t){return rt(this.bounds,t)}getLengths(){return wt(this.bounds)}getMaxLength(){return hn(this.bounds)}getDiagonalLength(){return pn(this.bounds)}getMinPoint(){return It(this.bounds)}getMaxPoint(){return Pt(this.bounds)}getXRange(){return cn(this.bounds)}getYRange(){return un(this.bounds)}getZRange(){return gn(this.bounds)}getCorners(t){return te(this.bounds,t)}computeCornerPoints(t,n){return yn(this.bounds,t,n)}computeLocalBounds(t,n,r){return Mn(this.bounds,t,n,r)}transformBounds(t,n=[]){return Tn(this.bounds,t,n)}computeScale3(t){return Cn(this.bounds,t)}cutWithPlane(t,n){return Sn(this.bounds,t,n)}intersectBox(t,n,r,a){return On(this.bounds,t,n,r,a)}intersectPlane(t,n){return Dn(this.bounds,t,n)}intersect(t){return Rn(this.bounds,t)}intersects(t){return Dt(this.bounds,t)}containsPoint(t,n,r){return Rt(this.bounds,t,n,r)}contains(t){return Dt(this.bounds,t)}}function Xr(e){const t=e&&e.bounds;return new dr(t)}const Wr={equals:rn,isValid:q,setBounds:Jt,reset:Qt,addPoint:Ot,addPoints:mt,addBounds:an,setMinPoint:sn,setMaxPoint:on,inflate:fn,scale:At,scaleAboutCenter:zr,getCenter:bt,getLength:rt,getLengths:wt,getMaxLength:hn,getDiagonalLength:pn,getMinPoint:It,getMaxPoint:Pt,getXRange:cn,getYRange:un,getZRange:gn,getCorners:te,computeCornerPoints:yn,computeLocalBounds:Mn,transformBounds:Tn,computeScale3:Cn,cutWithPlane:Sn,intersectBox:On,intersectPlane:Dn,intersect:Rn,intersects:Dt,containsPoint:Rt,contains:Hr,INIT_BOUNDS:kt},A={newInstance:Xr,...Wr},Yr={DISPLAY:0,WORLD:1},vn={CoordinateSystem:Yr},{CoordinateSystem:Gt}=vn;function he(e){return()=>O.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}function qr(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=()=>{let n=t.mtime;for(let r=0;r<t.textures.length;++r){const a=t.textures[r].getMTime();a>n&&(n=a)}return n},e.processSelectorPixelBuffers=(n,r)=>{},e.getNestedProps=()=>null,e.getActors=()=>[],e.getActors2D=()=>[],e.getVolumes=()=>[],e.pick=he("pick"),e.hasKey=he("hasKey"),e.getNestedVisibility=()=>t.visibility&&(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=>t.pickable&&(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=>t.dragable&&(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=>t.mtime,e.setEstimatedRenderTime=n=>{t.estimatedRenderTime=n,t.savedEstimatedRenderTime=n},e.restoreEstimatedRenderTime=()=>{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=n=>{t.estimatedRenderTime+=n},e.setAllocatedRenderTime=n=>{t.allocatedRenderTime=n,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=>!1,e.getTextures=()=>t.textures,e.hasTexture=n=>t.textures.indexOf(n)!==-1,e.addTexture=n=>{n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=>{const r=t.textures.filter(a=>a!==n);t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=()=>{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=>e.setCoordinateSystem(Gt.WORLD),e.setCoordinateSystemToDisplay=()=>e.setCoordinateSystem(Gt.DISPLAY)}const Zr={allocatedRenderTime:10,coordinateSystem:Gt.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function ln(e,t,n={}){Object.assign(t,Zr,n),O.obj(e,t),O.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),O.setGet(e,t,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),O.moveToProtected(e,t,["parentProp"]),qr(e,t)}const Kr=O.newInstance(ln,"vtkProp"),Jr={newInstance:Kr,extend:ln,...vn},Qr=1e-6;function mr(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=r=>{t.position=t.position.map((a,s)=>a+r[s]),e.modified()},e.getOrientationWXYZ=()=>{const r=re();ae(r,t.rotation);const a=new Float64Array(3),s=Yn(a,r);return[Rr(s),a[0],a[1],a[2]]},e.getOrientationQuaternion=(r=[])=>ae(r,t.rotation),e.rotateX=r=>{r!==0&&(qn(t.rotation,t.rotation,ft(r)),e.modified())},e.rotateY=r=>{r!==0&&(Zn(t.rotation,t.rotation,ft(r)),e.modified())},e.rotateZ=r=>{r!==0&&(Kn(t.rotation,t.rotation,ft(r)),e.modified())},e.rotateWXYZ=(r,a,s,o)=>{if(r===0||a===0&&s===0&&o===0)return;const i=ft(r),c=re();Jn(c,[a,s,o],i);const f=new Float64Array(16);se(f,c),ot(t.rotation,t.rotation,f),e.modified()},e.rotateQuaternion=r=>{if(Math.abs(r[3])>=1-Qr)return;const a=se(new Float64Array(16),r);ot(t.rotation,t.rotation,a),e.modified()},e.setOrientation=(r,a,s)=>r===t.orientation[0]&&a===t.orientation[1]&&s===t.orientation[2]?!1:(t.orientation=[r,a,s],nt(t.rotation),e.rotateZ(s),e.rotateX(r),e.rotateY(a),e.modified(),!0),e.setUserMatrix=r=>Er(t.userMatrix,r)?!1:(Qn(t.userMatrix,r),e.modified(),!0),e.getMatrix=()=>(e.computeMatrix(),t.matrix),e.computeMatrix=()=>{if(e.getMTime()>t.matrixMTime.getMTime()){nt(t.matrix),t.userMatrix&&ot(t.matrix,t.matrix,t.userMatrix),Nt(t.matrix,t.matrix,t.origin),Nt(t.matrix,t.matrix,t.position),ot(t.matrix,t.matrix,t.rotation),mn(t.matrix,t.matrix,t.scale),Nt(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),ve(t.matrix,t.matrix),t.isIdentity=!0;for(let r=0;r<4;++r)for(let a=0;a<4;++a)(r===a?1:0)!==t.matrix[r+a*4]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=()=>A.getCenter(t.bounds),e.getLength=()=>A.getLength(t.bounds),e.getXRange=()=>A.getXRange(t.bounds),e.getYRange=()=>A.getYRange(t.bounds),e.getZRange=()=>A.getZRange(t.bounds),e.getUserMatrix=()=>t.userMatrix;function n(){e.computeMatrix()}e.onModified(n)}const Ar={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function kn(e,t,n={}){Object.assign(t,Ar,n),Jr.extend(e,t,n),t.matrixMTime={},O.obj(t.matrixMTime),O.get(e,t,["bounds","isIdentity"]),O.getArray(e,t,["orientation"]),O.setGetArray(e,t,["origin","position","scale"],3),t.matrix=nt(new Float64Array(16)),t.rotation=nt(new Float64Array(16)),t.userMatrix=nt(new Float64Array(16)),t.transform=null,mr(e,t)}const br=O.newInstance(kn,"vtkProp3D"),Ir={newInstance:br,extend:kn},Pr={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},wn={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},ta=wn.FLOAT,En={DefaultDataType:ta,DataTypeByteSize:Pr,VtkDataTypes:wn},{vtkErrorMacro:ea}=Or,{DefaultDataType:na}=En,ra=1e-6;function Bt(e,t,n){const r=e.length;let a=Number.MAX_VALUE,s=-Number.MAX_VALUE,o,i;for(i=t;i<r;i+=n)if(!Number.isNaN(e[i])){a=e[i],s=a;break}for(;i<r;i+=n)o=e[i],o<a?a=o:o>s&&(s=o);return{min:a,max:s}}function aa(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(a){e>a&&(e=a),t<a&&(t=a),n++,r+=a},get(){return{min:e,max:t,count:n,sum:r,mean:r/n}},getRange(){return{min:e,max:t}}}}function xn(e,t=0,n=1){if(t<0&&n>1){const a=e.length/n,s=new Float64Array(a);for(let o=0,i=0;o<a;++o){for(let c=i+n;i<c;++i)s[o]+=e[i]*e[i];s[o]**=.5}return Bt(s,0,1)}return Bt(e,t<0?0:t,n)}function pe(e,t=0){const n=e||[];for(;n.length<=t;)n.push(null);return n}function ee(e){return Object.prototype.toString.call(e).slice(8,-1)}function sa(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let a=0;a<e.getNumberOfTuples();++a){e.getTuple(a,r);const s=kr(r,t);s>n&&(n=s)}return n}const oa={computeRange:xn,createRangeHelper:aa,fastComputeRange:Bt,getDataType:ee,getMaxNorm:sa};function ia(e,t){t.classHierarchy.push("vtkDataArray");function n(r){if(r<0)return!1;const a=e.getNumberOfComponents(),s=t.values.length/(a>0?a:1);if(r===s)return!0;if(r>s){const o=t.values;return t.values=St(t.dataType,(r+s)*a),t.values.set(o),!0}return t.size>r*a&&(t.size=r*a,e.dataChange()),!0}e.dataChange=()=>{t.ranges=null,e.modified()},e.resize=r=>{n(r);const a=r*e.getNumberOfComponents();return t.size!==a?(t.size=a,e.dataChange(),!0):!1},e.initialize=()=>{e.resize(0)},e.getElementComponentSize=()=>t.values.BYTES_PER_ELEMENT,e.getComponent=(r,a=0)=>t.values[r*t.numberOfComponents+a],e.setComponent=(r,a,s)=>{s!==t.values[r*t.numberOfComponents+a]&&(t.values[r*t.numberOfComponents+a]=s,e.dataChange())},e.getValue=r=>{const a=r/t.numberOfComponents,s=r%t.numberOfComponents;return e.getComponent(a,s)},e.setValue=(r,a)=>{const s=r/t.numberOfComponents,o=r%t.numberOfComponents;e.setComponent(s,o,a)},e.getData=()=>t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=(r=-1)=>{let a=r;a<0&&(a=t.numberOfComponents===1?0:t.numberOfComponents);let s=null;return t.ranges||(t.ranges=pe(t.ranges,t.numberOfComponents)),s=t.ranges[a],s?(t.rangeTuple[0]=s.min,t.rangeTuple[1]=s.max,t.rangeTuple):(s=xn(e.getData(),r,t.numberOfComponents),t.ranges[a]=s,t.rangeTuple[0]=s.min,t.rangeTuple[1]=s.max,t.rangeTuple)},e.setRange=(r,a)=>{t.ranges||(t.ranges=pe(t.ranges,t.numberOfComponents));const s={min:r.min,max:r.max};return t.ranges[a]=s,t.rangeTuple[0]=s.min,t.rangeTuple[1]=s.max,t.rangeTuple},e.setTuple=(r,a)=>{const s=r*t.numberOfComponents;for(let o=0;o<t.numberOfComponents;o++)t.values[s+o]=a[o]},e.setTuples=(r,a)=>{let s=r*t.numberOfComponents;const o=Math.min(a.length,t.size-s);for(let i=0;i<o;)t.values[s++]=a[i++]},e.insertTuple=(r,a)=>(t.size<=r*t.numberOfComponents&&(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,a),r),e.insertTuples=(r,a)=>{const s=r+a.length/t.numberOfComponents;return t.size<s*t.numberOfComponents&&(t.size=s*t.numberOfComponents,n(s)),e.setTuples(r,a),s},e.insertNextTuple=r=>{const a=t.size/t.numberOfComponents;return e.insertTuple(a,r)},e.insertNextTuples=r=>{const a=t.size/t.numberOfComponents;return e.insertTuples(a,r)},e.findTuple=(r,a=ra)=>{for(let s=0;s<t.size;s+=t.numberOfComponents)if(Math.abs(r[0]-t.values[s])<=a){let o=!0;for(let i=1;i<t.numberOfComponents;++i)if(Math.abs(r[i]-t.values[s+i])>a){o=!1;break}if(o)return s/t.numberOfComponents}return-1},e.getTuple=(r,a=[])=>{const s=t.numberOfComponents||1,o=r*s;switch(s){case 4:a[3]=t.values[o+3];case 3:a[2]=t.values[o+2];case 2:a[1]=t.values[o+1];case 1:a[0]=t.values[o];break;default:for(let i=s-1;i>=0;--i)a[i]=t.values[o+i]}return a},e.getTuples=(r,a)=>{const s=(r??0)*t.numberOfComponents,o=(a??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(s,o);return i.length>0?i:null},e.getTupleLocation=(r=1)=>r*t.numberOfComponents,e.getNumberOfComponents=()=>t.numberOfComponents,e.getNumberOfValues=()=>t.size,e.getNumberOfTuples=()=>t.size/t.numberOfComponents,e.getDataType=()=>t.dataType,e.newClone=()=>Ln({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=>(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(r,a)=>{t.values=r,t.size=r.length,t.dataType=ee(r),a&&(t.numberOfComponents=a),t.size%t.numberOfComponents!==0&&(t.numberOfComponents=1),e.dataChange()},e.getState=()=>{if(t.deleted)return null;const r={...t,vtkClass:e.getClassName()};r.values=Array.from(r.values),delete r.buffer,Object.keys(r).forEach(s=>{r[s]||delete r[s]});const a={};return Object.keys(r).sort().forEach(s=>{a[s]=r[s]}),a.mtime&&delete a.mtime,a},e.deepCopy=r=>{const a=e.getDataType(),s=t.values;e.shallowCopy(r),(s==null?void 0:s.length)>=r.getNumberOfValues()&&a===r.getDataType()?(s.set(r.getData()),t.values=s,e.dataChange()):e.setData(r.getData().slice())},e.interpolateTuple=(r,a,s,o,i,c)=>{const f=t.numberOfComponents||1;(f!==a.getNumberOfComponents()||f!==o.getNumberOfComponents())&&ea("numberOfComponents must match");const u=a.getTuple(s),p=o.getTuple(i),h=[];switch(h.length=f,f){case 4:h[3]=u[3]+(p[3]-u[3])*c;case 3:h[2]=u[2]+(p[2]-u[2])*c;case 2:h[1]=u[1]+(p[1]-u[1])*c;case 1:h[0]=u[0]+(p[0]-u[0])*c;break;default:for(let g=0;g<f;g++)h[g]=u[g]+(p[g]-u[g])*c}return e.insertTuple(r,h)}}const fa={name:"",numberOfComponents:1,dataType:na,rangeTuple:[0,0]};function Nn(e,t,n={}){if(Object.assign(t,fa,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(t.values?Array.isArray(t.values)&&(t.values=jt(t.dataType,t.values)):t.values=St(t.dataType,t.size),t.values&&(t.size=t.size??t.values.length,t.dataType=ee(t.values)),Ht(e,t),lt(e,t,["name","numberOfComponents"]),t.size%t.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");ia(e,t)}const Ln=qt(Nn,"vtkDataArray"),yt={newInstance:Ln,extend:Nn,...oa,...En},ca={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ua={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},Vn={VectorMode:ca,ScalarMappingTarget:ua},ga={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},ha={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},pa={BY_ID:0,BY_NAME:1},ya={ColorMode:ga,GetArray:pa,ScalarMode:ha},{ScalarMappingTarget:ye,VectorMode:X}=Vn,{VtkDataTypes:Z}=yt,{ColorMode:gt}=ya,{vtkErrorMacro:Te}=O;function Ta(e){return e}function Ce(e){return Math.floor(e*255+.5)}function Ca(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=()=>e.setVectorMode(X.MAGNITUDE),e.setVectorModeToComponent=()=>e.setVectorMode(X.COMPONENT),e.setVectorModeToRGBColors=()=>e.setVectorMode(X.RGBCOLORS),e.build=()=>{},e.isOpaque=()=>!0,e.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){Te("Values and annotations do not have the same number of tuples so ignoring");return}if(t.annotationArray=[],r&&n){const a=r.length;for(let s=0;s<a;s++)t.annotationArray.push({value:n[s],annotation:String(r[s])})}e.updateAnnotatedValueMap(),e.modified()}},e.setAnnotation=(n,r)=>{let a=e.checkForAnnotatedValue(n),s=!1;return a>=0?t.annotationArray[a].annotation!==r&&(t.annotationArray[a].annotation=r,s=!0):(t.annotationArray.push({value:n,annotation:r}),a=t.annotationArray.length-1,s=!0),s&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=()=>t.annotationArray.length,e.getAnnotatedValue=n=>n<0||n>=t.annotationArray.length?null:t.annotationArray[n].value,e.getAnnotation=n=>t.annotationArray[n]===void 0?null:t.annotationArray[n].annotation,e.getAnnotatedValueIndex=n=>t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=>{const r=e.checkForAnnotatedValue(n),a=r>=0;return a&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=()=>{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=>{if(t.indexedLookup){const a=e.getAnnotatedValueIndex(n);e.getIndexedColor(a,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=n=>e.getAnnotatedValueIndexInternal(n),e.getAnnotatedValueIndexInternal=n=>{if(t.annotatedValueMap[n]!==void 0){const r=t.annotationArray.length;return t.annotatedValueMap[n]%r}return-1},e.getIndexedColor=(n,r)=>{r[0]=0,r[1]=0,r[2]=0,r[3]=0},e.updateAnnotatedValueMap=()=>{t.annotatedValueMap=[];const n=t.annotationArray.length;for(let r=0;r<n;r++)t.annotatedValueMap[t.annotationArray[r].value]=r},e.mapScalars=(n,r,a)=>{const s=n.getNumberOfComponents();let o=null;if(r===gt.DEFAULT&&(n.getDataType()===Z.UNSIGNED_CHAR||n.getDataType()===Z.UNSIGNED_CHAR_CLAMPED)||r===gt.DIRECT_SCALARS&&n)o=e.convertToRGBA(n,s,n.getNumberOfTuples());else{const i={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:Z.UNSIGNED_CHAR},c=O.newTypedArray(i.dataType,4*n.getNumberOfTuples());i.values=c,i.size=c.length,o=yt.newInstance(i);let f=a;f<0&&s>1?e.mapVectorsThroughTable(n,o,ye.RGBA,-1,-1):(f<0&&(f=0),f>=s&&(f=s-1),e.mapScalarsThroughTable(n,o,ye.RGBA,f))}return o},e.mapVectorsToMagnitude=(n,r,a)=>{const s=n.getNumberOfTuples(),o=n.getNumberOfComponents(),i=r.getData(),c=n.getData();for(let f=0;f<s;f++){let u=0;for(let p=0;p<a;p++)u+=c[f*o+p]*c[f*o+p];i[f]=Math.sqrt(u)}},e.mapVectorsThroughTable=(n,r,a,s,o)=>{let i=e.getVectorMode(),c=o,f=s;const u=n.getNumberOfComponents();i===X.COMPONENT?(f===-1&&(f=e.getVectorComponent()),f<0&&(f=0),f>=u&&(f=u-1)):(c===-1&&(c=e.getVectorSize()),c<=0?(f=0,c=u):(f<0&&(f=0),f>=u&&(f=u-1),f+c>u&&(c=u-f)),i===X.MAGNITUDE&&(u===1||c===1)&&(i=X.COMPONENT));let p=0;switch(f>0&&(p=f),i){case X.COMPONENT:{e.mapScalarsThroughTable(n,r,a,p);break}case X.RGBCOLORS:break;case X.MAGNITUDE:default:{const h=yt.newInstance({numberOfComponents:1,values:new Float32Array(n.getNumberOfTuples())});e.mapVectorsToMagnitude(n,h,c),e.mapScalarsThroughTable(h,r,a,0);break}}},e.luminanceToRGBA=(n,r,a,s)=>{const o=s(a),i=r.getData(),c=n.getData(),f=i.length,u=0,p=1;let h=0;for(let g=u;g<f;g+=p){const y=s(i[g]);c[h*4]=y,c[h*4+1]=y,c[h*4+2]=y,c[h*4+3]=o,h++}},e.luminanceAlphaToRGBA=(n,r,a,s)=>{const o=r.getData(),i=n.getData(),c=o.length,f=0,u=2;let p=0;for(let h=f;h<c;h+=u){const g=s(o[h]);i[p]=g,i[p+1]=g,i[p+2]=g,i[p+3]=s(o[h+1])*a,p+=4}},e.rGBToRGBA=(n,r,a,s)=>{const o=Ce(a),i=r.getData(),c=n.getData(),f=i.length,u=0,p=3;let h=0;for(let g=u;g<f;g+=p)c[h*4]=s(i[g]),c[h*4+1]=s(i[g+1]),c[h*4+2]=s(i[g+2]),c[h*4+3]=o,h++},e.rGBAToRGBA=(n,r,a,s)=>{const o=r.getData(),i=n.getData(),c=o.length,f=0,u=4;let p=0;for(let h=f;h<c;h+=u)i[p*4]=s(o[h]),i[p*4+1]=s(o[h+1]),i[p*4+2]=s(o[h+2]),i[p*4+3]=s(o[h+3])*a,p++},e.convertToRGBA=(n,r,a)=>{let{alpha:s}=t;if(r===4&&s>=1&&n.getDataType()===Z.UNSIGNED_CHAR)return n;const o=yt.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:Z.UNSIGNED_CHAR});if(a<=0)return o;s=s>0?s:0,s=s<1?s:1;let i=Ta;switch((n.getDataType()===Z.FLOAT||n.getDataType()===Z.DOUBLE)&&(i=Ce),r){case 1:e.luminanceToRGBA(o,n,s,i);break;case 2:e.luminanceAlphaToRGBA(o,n,i);break;case 3:e.rGBToRGBA(o,n,s,i);break;case 4:e.rGBAToRGBA(o,n,s,i);break;default:return Te("Cannot convert colors"),null}return o},e.usingLogScale=()=>!1,e.getNumberOfAvailableColors=()=>256*256*256,e.setRange=(n,r)=>e.setMappingRange(n,r),e.getRange=()=>e.getMappingRange(),e.areScalarsOpaque=(n,r,a)=>{if(!n)return e.isOpaque();const s=n.getNumberOfComponents();return r===gt.DEFAULT&&n.getDataType()===Z.UNSIGNED_CHAR||r===gt.DIRECT_SCALARS?s===3||s===1?t.alpha>=1:n.getRange(s-1)[0]===255:!0}}const Ma={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:X.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function $n(e,t,n={}){Object.assign(t,Ma,n),O.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],O.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),O.setArray(e,t,["mappingRange"],2),O.getArray(e,t,["mappingRange"]),Ca(e,t)}const Oa=O.newInstance($n,"vtkScalarsToColors"),_n={newInstance:Oa,extend:$n,...Vn},Da={RGB:0,HSV:1,LAB:2,DIVERGING:3},Ra={LINEAR:0,LOG10:1},Un={ColorSpace:Da,Scale:Ra},{ColorSpace:z,Scale:ne}=Un,{ScalarMappingTarget:ht}=_n,{vtkDebugMacro:Sa,vtkErrorMacro:Y,vtkWarningMacro:va}=O;function Me(e,t){const n=e[0],r=e[1],a=e[2],s=Math.sqrt(n*n+r*r+a*a),o=s>.001?Math.acos(n/s):0,i=o>.001?Math.atan2(a,r):0;t[0]=s,t[1]=o,t[2]=i}function la(e,t){const n=e[0],r=e[1],a=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(a),t[2]=n*Math.sin(r)*Math.sin(a)}function Oe(e,t){if(e[0]>=t-.1)return e[2];const n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+n:e[2]-n}function ka(e,t){let n=e-t;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}function De(e,t,n,r){const a=[],s=[];b(t,a),b(n,s);const o=[],i=[];Me(a,o),Me(s,i);let c=e;if(o[1]>.05&&i[1]>.05&&ka(o[2],i[2])>.33*Math.PI){let p=Math.max(o[0],i[0]);p=Math.max(88,p),e<.5?(i[0]=p,i[1]=0,i[2]=0,c*=2):(o[0]=p,o[1]=0,o[2]=0,c=2*c-1)}o[1]<.05&&i[1]>.05?o[2]=Oe(i,o[0]):i[1]<.05&&o[1]>.05&&(i[2]=Oe(o,i[0]));const f=[];f[0]=(1-c)*o[0]+c*i[0],f[1]=(1-c)*o[1]+c*i[1],f[2]=(1-c)*o[2]+c*i[2];const u=[];la(f,u),_t(u,r)}function wa(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=()=>t.nodes.length,e.addRGBPoint=(n,r,a,s)=>e.addRGBPointLong(n,r,a,s,.5,0),e.addRGBPointLong=(n,r,a,s,o=.5,i=0)=>{if(o<0||o>1)return Y("Midpoint outside range [0.0, 1.0]"),-1;if(i<0||i>1)return Y("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);const c={x:n,r,g:a,b:s,midpoint:o,sharpness:i};t.nodes.push(c),e.sortAndUpdateRange();let f=0;for(;f<t.nodes.length&&t.nodes[f].x!==n;f++);return f<t.nodes.length?f:-1},e.addHSVPoint=(n,r,a,s)=>e.addHSVPointLong(n,r,a,s,.5,0),e.addHSVPointLong=(n,r,a,s,o=.5,i=0)=>{const c=[];return tt([r,a,s],c),e.addRGBPoint(n,c[0],c[1],c[2],o,i)},e.setNodes=n=>{if(t.nodes!==n){const r=JSON.stringify(t.nodes);t.nodes=n;const a=JSON.stringify(t.nodes);if(e.sortAndUpdateRange()||r!==a)return e.modified(),!0}return!1},e.sortAndUpdateRange=()=>{const n=JSON.stringify(t.nodes);t.nodes.sort((s,o)=>s.x-o.x);const r=JSON.stringify(t.nodes),a=e.updateRange();return!a&&n!==r?(e.modified(),!0):a},e.updateRange=()=>{const n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];const r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),n[0]===t.mappingRange[0]&&n[1]===t.mappingRange[1]?!1:(e.modified(),!0)},e.removePoint=n=>{let r=0;for(;r<t.nodes.length&&t.nodes[r].x!==n;r++);const a=r;if(r>=t.nodes.length)return-1;let s=!1;return t.nodes.splice(r,1),(r===0||r===t.nodes.length)&&(s=e.updateRange()),s||e.modified(),a},e.movePoint=(n,r)=>{if(n!==r){e.removePoint(r);for(let a=0;a<t.nodes.length;a++)if(t.nodes[a].x===n){t.nodes[a].x=r,e.sortAndUpdateRange();break}}},e.removeAllPoints=()=>{t.nodes=[],e.sortAndUpdateRange()},e.addRGBSegment=(n,r,a,s,o,i,c,f)=>{e.sortAndUpdateRange();for(let u=0;u<t.nodes.length;)t.nodes[u].x>=n&&t.nodes[u].x<=o?t.nodes.splice(u,1):u++;e.addRGBPointLong(n,r,a,s,.5,0),e.addRGBPointLong(o,i,c,f,.5,0),e.modified()},e.addHSVSegment=(n,r,a,s,o,i,c,f)=>{const u=[r,a,s],p=[i,c,f],h=[],g=[];tt(u,h),tt(p,g),e.addRGBSegment(n,h[0],h[1],h[2],o,g[0],g[1],g[2])},e.mapValue=n=>{const r=[];return e.getColor(n,r),[Math.floor(255*r[0]+.5),Math.floor(255*r[1]+.5),Math.floor(255*r[2]+.5),255]},e.getColor=(n,r)=>{if(t.indexedLookup){const a=e.getSize(),s=e.getAnnotatedValueIndexInternal(n);if(s<0||a===0){const o=e.getNanColorByReference();r[0]=o[0],r[1]=o[1],r[2]=o[2]}else{const o=[];e.getNodeValue(s%a,o),r[0]=o[1],r[1]=o[2],r[2]=o[3]}return}e.getTable(n,n,1,r)},e.getRedValue=n=>{const r=[];return e.getColor(n,r),r[0]},e.getGreenValue=n=>{const r=[];return e.getColor(n,r),r[1]},e.getBlueValue=n=>{const r=[];return e.getColor(n,r),r[2]},e.getTable=(n,r,a,s)=>{const o=Number(n),i=Number(r);if(ge(o)||ge(i)){for(let x=0;x<a;x++)s[x*3+0]=t.nanColor[0],s[x*3+1]=t.nanColor[1],s[x*3+2]=t.nanColor[2];return}let c=0;const f=t.nodes.length;let u=0,p=0,h=0;f!==0&&(u=t.nodes[f-1].r,p=t.nodes[f-1].g,h=t.nodes[f-1].b);let g=0,y=0,D=0;const S=[0,0,0],l=[0,0,0];let k=0,v=0;const C=[];let w=t.scale===ne.LOG10;w&&(w=t.mappingRange[0]>0);let L=0,_=0,U=0;w&&(L=Math.log10(o),_=Math.log10(i));for(let x=0;x<a;x++){const T=3*x;if(a>1?w?(U=L+x/(a-1)*(_-L),g=10**U):g=o+x/(a-1)*(i-o):w?(U=.5*(L+_),g=10**U):g=.5*(o+i),t.discretize){const M=t.mappingRange;if(g>=M[0]&&g<=M[1]){const j=t.numberOfValues,H=M[1]-M[0];if(j<=1)g=M[0]+H/2;else{const I=(g-M[0])/H,P=Sr(j*I);g=M[0]+P/(j-1)*H}}}for(;c<f&&g>t.nodes[c].x;)c++,c<f&&(y=t.nodes[c-1].x,D=t.nodes[c].x,w&&(y=Math.log10(y),D=Math.log10(D)),S[0]=t.nodes[c-1].r,l[0]=t.nodes[c].r,S[1]=t.nodes[c-1].g,l[1]=t.nodes[c].g,S[2]=t.nodes[c-1].b,l[2]=t.nodes[c].b,k=t.nodes[c-1].midpoint,v=t.nodes[c-1].sharpness,k<1e-5&&(k=1e-5),k>.99999&&(k=.99999));if(g>t.mappingRange[1])s[T]=0,s[T+1]=0,s[T+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(s[T]=t.aboveRangeColor[0],s[T+1]=t.aboveRangeColor[1],s[T+2]=t.aboveRangeColor[2]):(s[T]=u,s[T+1]=p,s[T+2]=h));else if(g<t.mappingRange[0]||$r(g)&&g<0)s[T]=0,s[T+1]=0,s[T+2]=0,t.clamping&&(e.getUseBelowRangeColor()?(s[T]=t.belowRangeColor[0],s[T+1]=t.belowRangeColor[1],s[T+2]=t.belowRangeColor[2]):f>0&&(s[T]=t.nodes[0].r,s[T+1]=t.nodes[0].g,s[T+2]=t.nodes[0].b));else if(c===0&&(Math.abs(g-o)<1e-6||t.discretize))f>0?(s[T]=t.nodes[0].r,s[T+1]=t.nodes[0].g,s[T+2]=t.nodes[0].b):(s[T]=0,s[T+1]=0,s[T+2]=0);else{let M=0;if(w?M=(U-y)/(D-y):M=(g-y)/(D-y),M<k?M=.5*M/k:M=.5+.5*(M-k)/(1-k),v>.99)if(M<.5){s[T]=S[0],s[T+1]=S[1],s[T+2]=S[2];continue}else{s[T]=l[0],s[T+1]=l[1],s[T+2]=l[2];continue}if(v<.01){if(t.colorSpace===z.RGB)s[T]=(1-M)*S[0]+M*l[0],s[T+1]=(1-M)*S[1]+M*l[1],s[T+2]=(1-M)*S[2]+M*l[2];else if(t.colorSpace===z.HSV){const R=[],E=[];ct(S,R),ct(l,E),t.hSVWrap&&(R[0]-E[0]>.5||E[0]-R[0]>.5)&&(R[0]>E[0]?R[0]-=1:E[0]-=1);const V=[];V[0]=(1-M)*R[0]+M*E[0],V[0]<0&&(V[0]+=1),V[1]=(1-M)*R[1]+M*E[1],V[2]=(1-M)*R[2]+M*E[2],tt(V,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]}else if(t.colorSpace===z.LAB){const R=[],E=[];b(S,R),b(l,E);const V=[];V[0]=(1-M)*R[0]+M*E[0],V[1]=(1-M)*R[1]+M*E[1],V[2]=(1-M)*R[2]+M*E[2],_t(V,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]}else t.colorSpace===z.DIVERGING?(De(M,S,l,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]):Y("ColorSpace set to invalid value.",t.colorSpace);continue}M<.5?M=.5*(M*2)**(1+10*v):M>.5&&(M=1-.5*((1-M)*2)**(1+10*v));const j=M*M,H=j*M,I=2*H-3*j+1,P=-2*H+3*j,Et=H-2*j+M,xt=H-j;let m,W;if(t.colorSpace===z.RGB)for(let R=0;R<3;R++)m=l[R]-S[R],W=(1-v)*m,s[T+R]=I*S[R]+P*l[R]+Et*W+xt*W;else if(t.colorSpace===z.HSV){const R=[],E=[];ct(S,R),ct(l,E),t.hSVWrap&&(R[0]-E[0]>.5||E[0]-R[0]>.5)&&(R[0]>E[0]?R[0]-=1:E[0]-=1);const V=[];for(let G=0;G<3;G++)m=E[G]-R[G],W=(1-v)*m,V[G]=I*R[G]+P*E[G]+Et*W+xt*W,G===0&&V[G]<0&&(V[G]+=1);tt(V,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]}else if(t.colorSpace===z.LAB){const R=[],E=[];b(S,R),b(l,E);const V=[];for(let G=0;G<3;G++)m=E[G]-R[G],W=(1-v)*m,V[G]=I*R[G]+P*E[G]+Et*W+xt*W;_t(V,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]}else t.colorSpace===z.DIVERGING?(De(M,S,l,C),s[T]=C[0],s[T+1]=C[1],s[T+2]=C[2]):Y("ColorSpace set to invalid value.");for(let R=0;R<3;R++)s[T+R]=s[T+R]<0?0:s[T+R],s[T+R]=s[T+R]>1?1:s[T+R]}}},e.getUint8Table=(n,r,a,s=!1)=>{if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==s)return t.table;if(t.nodes.length===0)return Y("Attempting to lookup a value with no points in the function"),t.table;const o=s?4:3;(t.tableSize!==a||t.tableWithAlpha!==s)&&(t.table=new Uint8Array(a*o),t.tableSize=a,t.tableWithAlpha=s);const i=[];e.getTable(n,r,a,i);for(let c=0;c<a;c++)t.table[c*o+0]=Math.floor(i[c*3+0]*255+.5),t.table[c*o+1]=Math.floor(i[c*3+1]*255+.5),t.table[c*o+2]=Math.floor(i[c*3+2]*255+.5),s&&(t.table[c*o+3]=255);return t.buildTime.modified(),t.table},e.buildFunctionFromArray=n=>{e.removeAllPoints();const r=n.getNumberOfComponents();for(let a=0;a<n.getNumberOfTuples();a++)switch(r){case 3:{t.nodes.push({x:a,r:n.getComponent(a,0),g:n.getComponent(a,1),b:n.getComponent(a,2),midpoint:.5,sharpness:0});break}case 4:{t.nodes.push({x:n.getComponent(a,0),r:n.getComponent(a,1),g:n.getComponent(a,2),b:n.getComponent(a,3),midpoint:.5,sharpness:0});break}case 5:{t.nodes.push({x:a,r:n.getComponent(a,0),g:n.getComponent(a,1),b:n.getComponent(a,2),midpoint:n.getComponent(a,4),sharpness:n.getComponent(a,5)});break}case 6:{t.nodes.push({x:n.getComponent(a,0),r:n.getComponent(a,1),g:n.getComponent(a,2),b:n.getComponent(a,3),midpoint:n.getComponent(a,4),sharpness:n.getComponent(a,5)});break}}e.sortAndUpdateRange()},e.buildFunctionFromTable=(n,r,a,s)=>{let o=0;e.removeAllPoints(),a>1&&(o=(r-n)/(a-1));for(let i=0;i<a;i++){const c={x:n+o*i,r:s[i*3],g:s[i*3+1],b:s[i*3+2],sharpness:0,midpoint:.5};t.nodes.push(c)}e.sortAndUpdateRange()},e.getNodeValue=(n,r)=>n<0||n>=t.nodes.length?(Y("Index out of range!"),-1):(r[0]=t.nodes[n].x,r[1]=t.nodes[n].r,r[2]=t.nodes[n].g,r[3]=t.nodes[n].b,r[4]=t.nodes[n].midpoint,r[5]=t.nodes[n].sharpness,1),e.setNodeValue=(n,r)=>{if(n<0||n>=t.nodes.length)return Y("Index out of range!"),-1;const a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=()=>t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216,e.getIndexedColor=(n,r)=>{const a=e.getSize();if(a>0&&n>=0){const o=[];e.getNodeValue(n%a,o);for(let i=0;i<3;++i)r[i]=o[i+1];r[3]=1;return}const s=e.getNanColorByReference();r[0]=s[0],r[1]=s[1],r[2]=s[2],r[3]=1},e.fillFromDataPointer=(n,r)=>{if(!(n<=0||!r)){e.removeAllPoints();for(let a=0;a<n;a++)e.addRGBPoint(r[a*4],r[a*4+1],r[a*4+2],r[a*4+3])}},e.setMappingRange=(n,r)=>{const a=[n,r],s=e.getRange();if(s[1]===a[1]&&s[0]===a[0])return;if(a[1]===a[0]){Y("attempt to set zero width color range");return}const o=(a[1]-a[0])/(s[1]-s[0]),i=a[0]-s[0]*o;for(let c=0;c<t.nodes.length;++c)t.nodes[c].x=t.nodes[c].x*o+i;t.mappingRange[0]=a[0],t.mappingRange[1]=a[1],e.modified()},e.adjustRange=n=>{const r=e.getRange(),a=[];r[0]<n[0]?(e.getColor(n[0],a),e.addRGBPoint(n[0],a[0],a[1],a[2])):(e.getColor(r[0],a),e.addRGBPoint(n[0],a[0],a[1],a[2])),r[1]>n[1]?(e.getColor(n[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])):(e.getColor(r[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(let s=0;s<t.nodes.length;)t.nodes[s].x>=n[0]&&t.nodes[s].x<=n[1]?t.nodes.splice(s,1):++s;return 1},e.estimateMinNumberOfSamples=(n,r)=>{const a=e.findMinimumXDistance();return Math.ceil((r-n)/a)},e.findMinimumXDistance=()=>{if(t.nodes.length<2)return-1;let n=Number.MAX_VALUE;for(let r=0;r<t.nodes.length-1;r++){const a=t.nodes[r+1].x-t.nodes[r].x;a<n&&(n=a)}return n},e.mapScalarsThroughTable=(n,r,a,s)=>{if(e.getSize()===0){Sa("Transfer Function Has No Points!");return}t.indexedLookup?e.mapDataIndexed(n,r,a,s):e.mapData(n,r,a,s)},e.mapData=(n,r,a,s)=>{if(e.getSize()===0){va("Transfer Function Has No Points!");return}const o=Math.floor(e.getAlpha()*255+.5),i=n.getNumberOfTuples(),c=n.getNumberOfComponents(),f=r.getData(),u=n.getData(),p=[];if(a===ht.RGBA)for(let h=0;h<i;h++){const g=u[h*c+s];e.getColor(g,p),f[h*4]=Math.floor(p[0]*255+.5),f[h*4+1]=Math.floor(p[1]*255+.5),f[h*4+2]=Math.floor(p[2]*255+.5),f[h*4+3]=o}if(a===ht.RGB)for(let h=0;h<i;h++){const g=u[h*c+s];e.getColor(g,p),f[h*3]=Math.floor(p[0]*255+.5),f[h*3+1]=Math.floor(p[1]*255+.5),f[h*3+2]=Math.floor(p[2]*255+.5)}if(a===ht.LUMINANCE)for(let h=0;h<i;h++){const g=u[h*c+s];e.getColor(g,p),f[h]=Math.floor(p[0]*76.5+p[1]*150.45+p[2]*28.05+.5)}if(a===ht.LUMINANCE_ALPHA)for(let h=0;h<i;h++){const g=u[h*c+s];e.getColor(g,p),f[h*2]=Math.floor(p[0]*76.5+p[1]*150.45+p[2]*28.05+.5),f[h*2+1]=o}},e.applyColorMap=n=>{const r=JSON.stringify(t.colorSpace);n.ColorSpace&&(t.colorSpace=z[n.ColorSpace.toUpperCase()],t.colorSpace===void 0&&(Y(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),t.colorSpace=z.RGB));let a=r!==JSON.stringify(t.colorSpace);const s=a||JSON.stringify(t.nanColor);if(n.NanColor)for(t.nanColor=[].concat(n.NanColor);t.nanColor.length<4;)t.nanColor.push(1);a=a||s!==JSON.stringify(t.nanColor);const o=a||JSON.stringify(t.nodes);if(n.RGBPoints){const f=n.RGBPoints.length;t.nodes=[];const u=.5,p=0;for(let h=0;h<f;h+=4)t.nodes.push({x:n.RGBPoints[h],r:n.RGBPoints[h+1],g:n.RGBPoints[h+2],b:n.RGBPoints[h+3],midpoint:u,sharpness:p})}const i=e.sortAndUpdateRange(),c=!i&&(a||o!==JSON.stringify(t.nodes));return c&&e.modified(),i||c}}const Ea={clamping:!0,colorSpace:z.RGB,hSVWrap:!0,scale:ne.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function Gn(e,t,n={}){Object.assign(t,Ea,n),_n.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},O.obj(t.buildTime),O.get(e,t,["buildTime","mappingRange"]),O.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","discretize","numberOfValues",{type:"enum",name:"colorSpace",enum:z},{type:"enum",name:"scale",enum:ne}]),O.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),O.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),wa(e,t)}const xa=O.newInstance(Gn,"vtkColorTransferFunction"),Na={newInstance:xa,extend:Gn,...Un},{vtkErrorMacro:pt}=O;function La(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=()=>t.nodes.length,e.getType=()=>{let n,r=0,a=0;t.nodes.length>0&&(r=t.nodes[0].y);for(let s=1;s<t.nodes.length;s++){if(n=t.nodes[s].y,n!==r)if(n>r)switch(a){case 0:case 1:a=1;break;case 2:default:a=3;break}else switch(a){case 0:case 2:a=2;break;case 1:default:a=3;break}if(r=n,a===3)break}switch(a){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";case 3:default:return"Varied"}},e.getDataPointer=()=>{const n=t.nodes.length;if(t.function=null,n>0){t.function=[];for(let r=0;r<n;r++)t.function[2*r]=t.nodes[r].x,t.function[2*r+1]=t.nodes[r].y}return t.function},e.getFirstNonZeroValue=()=>{if(t.nodes.length===0)return 0;let n=1,r=0,a=0;for(;a<t.nodes.length;a++)if(t.nodes[a].y!==0){n=0;break}return n?r=Number.MAX_VALUE:a>0?r=t.nodes[a-1].x:t.clamping?r=-Number.MAX_VALUE:r=t.nodes[0].x,r},e.getNodeValue=(n,r)=>{const a=t.nodes.length;return n<0||n>=a?(pt("Index out of range!"),-1):(r[0]=t.nodes[n].x,r[1]=t.nodes[n].y,r[2]=t.nodes[n].midpoint,r[3]=t.nodes[n].sharpness,1)},e.setNodeValue=(n,r)=>{const a=t.nodes.length;if(n<0||n>=a)return pt("Index out of range!"),-1;const s=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],s!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=(n,r)=>e.addPointLong(n,r,.5,0),e.addPointLong=(n,r,a,s)=>{if(a<0||a>1)return pt("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return pt("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);const o={x:n,y:r,midpoint:a,sharpness:s};t.nodes.push(o),e.sortAndUpdateRange();let i;for(i=0;i<t.nodes.length&&t.nodes[i].x!==n;i++);return i<t.nodes.length?i:-1},e.setNodes=n=>{t.nodes!==n&&(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=()=>{t.nodes.sort((r,a)=>r.x-a.x),e.updateRange()||e.modified()},e.updateRange=()=>{const n=t.range.slice(),r=t.nodes.length;return r?(t.range[0]=t.nodes[0].x,t.range[1]=t.nodes[r-1].x):(t.range[0]=0,t.range[1]=0),n[0]===t.range[0]&&n[1]===t.range[1]?!1:(e.modified(),!0)},e.removePoint=n=>{let r;for(r=0;r<t.nodes.length&&t.nodes[r].x!==n;r++);if(r>=t.nodes.length)return-1;const a=r;let s=!1;return t.nodes.splice(r,1),(r===0||r===t.nodes.length)&&(s=e.updateRange()),s||e.modified(),a},e.removeAllPoints=()=>{t.nodes=[],e.sortAndUpdateRange()},e.addSegment=(n,r,a,s)=>{e.sortAndUpdateRange();for(let o=0;o<t.nodes.length;)t.nodes[o].x>=n&&t.nodes[o].x<=a?t.nodes.splice(o,1):o++;e.addPoint(n,r,.5,0),e.addPoint(a,s,.5,0)},e.getValue=n=>{const r=[];return e.getTable(n,n,1,r),r[0]},e.adjustRange=n=>{if(n.length<2)return 0;const r=e.getRange();r[0]<n[0]?e.addPoint(n[0],e.getValue(n[0])):e.addPoint(n[0],e.getValue(r[0])),r[1]>n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(let a=0;a<t.nodes.length;)t.nodes[a].x>=n[0]&&t.nodes[a].x<=n[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=(n,r)=>{const a=e.findMinimumXDistance();return Math.ceil((r-n)/a)},e.findMinimumXDistance=()=>{const n=t.nodes.length;if(n<2)return-1;let r=t.nodes[1].x-t.nodes[0].x;for(let a=0;a<n-1;a++){const s=t.nodes[a+1].x-t.nodes[a].x;s<r&&(r=s)}return r},e.getTable=(n,r,a,s,o=1)=>{let i,c=0;const f=t.nodes.length;let u=0;f!==0&&(u=t.nodes[f-1].y);let p=0,h=0,g=0,y=0,D=0,S=0,l=0;for(i=0;i<a;i++){const k=o*i;for(a>1?p=n+i/(a-1)*(r-n):p=.5*(n+r);c<f&&p>t.nodes[c].x;)c++,c<f&&(h=t.nodes[c-1].x,g=t.nodes[c].x,y=t.nodes[c-1].y,D=t.nodes[c].y,S=t.nodes[c-1].midpoint,l=t.nodes[c-1].sharpness,S<1e-5&&(S=1e-5),S>.99999&&(S=.99999));if(c>=f)s[k]=t.clamping?u:0;else if(c===0)s[k]=t.clamping?t.nodes[0].y:0;else{let v=(p-h)/(g-h);if(v<S?v=.5*v/S:v=.5+.5*(v-S)/(1-S),l>.99)if(v<.5){s[k]=y;continue}else{s[k]=D;continue}if(l<.01){s[k]=(1-v)*y+v*D;continue}v<.5?v=.5*(v*2)**(1+10*l):v>.5&&(v=1-.5*((1-v)*2)**(1+10*l));const C=v*v,w=C*v,L=2*w-3*C+1,_=-2*w+3*C,U=w-2*C+v,x=w-C,T=D-y,M=(1-l)*T;s[k]=L*y+_*D+U*M+x*M;const j=y<D?y:D,H=y>D?y:D;s[k]=s[k]<j?j:s[k],s[k]=s[k]>H?H:s[k]}}}}const Va={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function Bn(e,t,n={}){Object.assign(t,Va,n),O.obj(e,t),t.nodes=[],O.setGet(e,t,["allowDuplicateScalars","clamping"]),O.setArray(e,t,["range"],2),O.getArray(e,t,["range"]),La(e,t)}const $a=O.newInstance(Bn,"vtkPiecewiseFunction"),Re={newInstance:$a,extend:Bn},_a={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ua={FRACTIONAL:0,PROPORTIONAL:1},Ga={CUSTOM:0,ADDITIVE:1,COLORIZE:2},Fn={InterpolationType:_a,OpacityMode:Ua,ColorMixPreset:Ga},{InterpolationType:et,OpacityMode:Ba}=Fn,{vtkErrorMacro:Vt}=O,Tt=4;function Fa(e,t){t.classHierarchy.push("vtkVolumeProperty"),e.getMTime=()=>{let a=t.mtime,s;for(let o=0;o<Tt;o++)t.componentData[o].colorChannels===1?t.componentData[o].grayTransferFunction&&(s=t.componentData[o].grayTransferFunction.getMTime(),a=a>s?a:s):t.componentData[o].colorChannels===3&&t.componentData[o].rGBTransferFunction&&(s=t.componentData[o].rGBTransferFunction.getMTime(),a=a>s?a:s),t.componentData[o].scalarOpacity&&(s=t.componentData[o].scalarOpacity.getMTime(),a=a>s?a:s),t.componentData[o].gradientOpacity&&(t.componentData[o].disableGradientOpacity||(s=t.componentData[o].gradientOpacity.getMTime(),a=a>s?a:s));return a},e.getColorChannels=a=>a<0||a>3?(Vt("Bad index - must be between 0 and 3"),0):t.componentData[a].colorChannels,e.setGrayTransferFunction=(a=0,s=null)=>{let o=!1;return t.componentData[a].grayTransferFunction!==s&&(t.componentData[a].grayTransferFunction=s,o=!0),t.componentData[a].colorChannels!==1&&(t.componentData[a].colorChannels=1,o=!0),o&&e.modified(),o},e.getGrayTransferFunction=(a=0)=>(t.componentData[a].grayTransferFunction===null&&(t.componentData[a].grayTransferFunction=Re.newInstance(),t.componentData[a].grayTransferFunction.addPoint(0,0),t.componentData[a].grayTransferFunction.addPoint(1024,1),t.componentData[a].colorChannels!==1&&(t.componentData[a].colorChannels=1),e.modified()),t.componentData[a].grayTransferFunction),e.setRGBTransferFunction=(a=0,s=null)=>{let o=!1;return t.componentData[a].rGBTransferFunction!==s&&(t.componentData[a].rGBTransferFunction=s,o=!0),t.componentData[a].colorChannels!==3&&(t.componentData[a].colorChannels=3,o=!0),o&&e.modified(),o},e.getRGBTransferFunction=(a=0)=>(t.componentData[a].rGBTransferFunction===null&&(t.componentData[a].rGBTransferFunction=Na.newInstance(),t.componentData[a].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[a].rGBTransferFunction.addRGBPoint(1024,1,1,1),t.componentData[a].colorChannels!==3&&(t.componentData[a].colorChannels=3),e.modified()),t.componentData[a].rGBTransferFunction),e.setScalarOpacity=(a=0,s=null)=>t.componentData[a].scalarOpacity!==s?(t.componentData[a].scalarOpacity=s,e.modified(),!0):!1,e.getScalarOpacity=(a=0)=>(t.componentData[a].scalarOpacity===null&&(t.componentData[a].scalarOpacity=Re.newInstance(),t.componentData[a].scalarOpacity.addPoint(0,1),t.componentData[a].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[a].scalarOpacity),e.setComponentWeight=(a=0,s=1)=>{if(a<0||a>=Tt)return Vt("Invalid index"),!1;const o=Math.min(1,Math.max(0,s));return t.componentData[a].componentWeight!==o?(t.componentData[a].componentWeight=o,e.modified(),!0):!1},e.getComponentWeight=(a=0)=>a<0||a>=Tt?(Vt("Invalid index"),0):t.componentData[a].componentWeight,e.setInterpolationTypeToNearest=()=>e.setInterpolationType(et.NEAREST),e.setInterpolationTypeToLinear=()=>e.setInterpolationType(et.LINEAR),e.setInterpolationTypeToFastLinear=()=>e.setInterpolationType(et.FAST_LINEAR),e.getInterpolationTypeAsString=()=>O.enumToString(et,t.interpolationType),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(a=>{const s=O.capitalize(a);e[`set${s}`]=(o,i)=>t.componentData[o][`${a}`]!==i?(t.componentData[o][`${a}`]=i,e.modified(),!0):!1}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(a=>{const s=O.capitalize(a);e[`get${s}`]=o=>t.componentData[o][`${a}`]})}const ja={colorMixPreset:null,independentComponents:!0,interpolationType:et.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1};function jn(e,t,n={}){if(Object.assign(t,ja,n),O.obj(e,t),!t.componentData){t.componentData=[];for(let r=0;r<Tt;++r)t.componentData.push({colorChannels:1,grayTransferFunction:null,rGBTransferFunction:null,scalarOpacity:null,scalarOpacityUnitDistance:1,opacityMode:Ba.FRACTIONAL,gradientOpacityMinimumValue:0,gradientOpacityMinimumOpacity:0,gradientOpacityMaximumValue:1,gradientOpacityMaximumOpacity:1,useGradientOpacity:!1,componentWeight:1,forceNearestInterpolation:!1})}O.setGet(e,t,["colorMixPreset","independentComponents","interpolationType","shade","ambient","diffuse","specular","specularPower","useLabelOutline","labelOutlineOpacity"]),O.setGetArray(e,t,["labelOutlineThickness"]),Fa(e,t)}const za=O.newInstance(jn,"vtkVolumeProperty"),Ha={newInstance:za,extend:jn,...Fn},{vtkDebugMacro:da}=O;function Xa(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=()=>e,e.makeProperty=Ha.newInstance,e.getProperty=()=>(t.property===null&&(t.property=e.makeProperty()),t.property),e.getBounds=()=>{if(t.mapper===null)return t.bounds;const n=t.mapper.getBounds();if(!n||n.length!==6)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;const r=a=>a[0].map((s,o)=>a.map(i=>i[o]));if(!t.mapperBounds||!r([n,t.mapperBounds]).reduce((a,s)=>a&&s[0]===s[1],!0)||e.getMTime()>t.boundsMTime.getMTime()){da("Recomputing bounds..."),t.mapperBounds=n.map(o=>o);const a=[];A.getCorners(n,a),e.computeMatrix();const s=new Float64Array(16);ve(s,t.matrix),a.forEach(o=>Se(o,o,s)),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map((o,i)=>i%2===0?a.reduce((c,f)=>c>f[i/2]?f[i/2]:c,o):a.reduce((c,f)=>c<f[(i-1)/2]?f[(i-1)/2]:c,o)),t.boundsMTime.modified()}return t.bounds},e.getMTime=()=>{let n=t.mtime;if(t.property!==null){const r=t.property.getMTime();n=r>n?r:n}return n},e.getRedrawMTime=()=>{let n=t.mtime;if(t.mapper!==null){let r=t.mapper.getMTime();n=r>n?r:n,t.mapper.getInput()!==null&&(t.mapper.getInputAlgorithm().update(),r=t.mapper.getInput().getMTime(),n=r>n?r:n)}return n}}const Wa={mapper:null,property:null,bounds:[1,-1,1,-1,1,-1]};function zn(e,t,n={}){Object.assign(t,Wa,n),Ir.extend(e,t,n),t.boundsMTime={},O.obj(t.boundsMTime),O.set(e,t,["property"]),O.setGet(e,t,["mapper"]),O.getArray(e,t,["bounds"],6),Xa(e,t)}const Ya=O.newInstance(zn,"vtkVolume"),qa={newInstance:Ya,extend:zn},Za=["v-html"],es={__name:"vtk",setup(e){const{computeWorldToDisplay:t}=ir;let n=An(`
- <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>`);const r=bn.newInstance({background:[0,0,0]}),a=r.getRenderer(),s=r.getRenderWindow(),o=In.newInstance(),i=Pn.newInstance(),c=tr.newInstance();c.setMapper(i),i.setInputConnection(o.getOutputPort()),c.getProperty().setOpacity(.5),a.addActor(c);const f=Hn.newInstance();f.setRenderer(a),a.resetCamera();const u=er.newInstance();u.setInterpolate(!0);const p=qa.newInstance();p.setMapper(i);const h=new Image;return h.src="/src/assets/img/t4.png",console.log(h),h.onload=function(){u.setInputData(h),p.setProperty({texture:u})},nr(()=>{var g=n.value;r.addController(g);const y=[];function D(v){y.push(dn(a,v.getWidgetState(),{mapState(C,{size:w}){const L=C.getText(),_=L.getText(),U=L.getOrigin();if(U){const x=t(a,...U),T=[x[0],w[1]-x[1]];return{text:_,position:T}}return null},render(C,w){return C?(console.log(C),console.log(C.text+"12124"),w("text",{key:"lineText",attrs:{x:C.position[0],y:C.position[1],dx:12,dy:-12,fill:"red","font-size":16}},C.text)):[]}}))}function S(){const v=document.getElementById("txtIpt").value;console.log(v),l&&(l.setText(v),s.render())}let l=null;const k=new Map;document.querySelector("#txtIpt").addEventListener("keyup",S),document.querySelector("#addWidget").addEventListener("click",()=>{const v=fr.newInstance(),C=f.addWidget(v),w={fontSize:32,fontColor:"white"};k.set(C,w),k.set(C,D(C)),C.onStartInteractionEvent(()=>{l=C}),f.grabFocus(v)})}),(g,y)=>(rr(),ar("div",null,[sr("div",{"v-html":or(n),ref:"controlPanel1",id:"fullscreen"},null,8,Za)]))}};export{es as default};
|