import{_ as yr,r as $,d as au,e as An,f as J,g as V0,o as Ye,c as Ot,h as D,w as F,b as _,u as L,i as ot,n as Dt,E as Te,j as ae,k as Lt,l as Mt,m as ft,q as br,t as kt,v as yt,s as su,F as ba,x as Ga,y as ye,z as me,p as Kr,a as Pr,A as m0,B as wi,C as vt,D as iu,G as So,H as Co,I as L0,J as B0,K as k0,V as F0}from"./index-5a174fe6.js";function qs(t){let e=new Date(t),n=e.getFullYear(),r=("0"+(e.getMonth()+1)).slice(-2),a=("0"+e.getDate()).slice(-2),s=("0"+e.getHours()).slice(-2),i=("0"+e.getMinutes()).slice(-2),o=("0"+e.getSeconds()).slice(-2);return n+"-"+r+"-"+a+" "+s+":"+i+":"+o}const U0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAABUpJREFUWEfVmW/In1Mcxq+rvJiaWFGEmiJWFmpCWiaTLZYVC1EsW/Ziqy3EolgUMtmKWCgvKMtkilCTyUQhlDJRFPKUlRUv9kJd7mu+53F+9+/+c363nxfPefNsz33u+3zO98/1/Z7zEHNkcI5wYiqgkk4AcA6AUwHMj80fBvALgIMk//yvBhkMKumiCuJGACsCso3lLwBfAngHwG6SXw+BnhhU0s0A7s/gbLlPAsYWTNY7HsCZAM6tIC8GMC8A91U/HyT50STAxaCSzgbwYixqK70C4GUA+0j6/61DkiGvBrAuPOC5fn8LyZkS4CJQSXcA2BFWeQnANpLflyxQnyPpfABPAlgGwJC3kHyv71u9oJIesKsAHAJwG8m3+j5a8jzbvKcb9rWu9zpBM8iDAFaS/LEEonSOpEurGN4D4EQnZhdsK6ik2wE8X+3WLl5aGkulkGmeJMvahyFry9uSrBFUkjP1UwDO6EumbcmGuL3MSRkxu5ik1x0ZbaCGXFJJzmqSb0xqpSHzJd1ZWXW7vUhyfS+opGsB7LV8kLxpyKJD3pF0DIAvQp8X1VVlzKIVaJp8FsmfBy46j+SRtncDCnX9leQQ2G+9Jrk2f38EVJIryMdDrRkAduG94cK7G+LRwm9NPlJl+eKG599ERTspj9U6qIV4M4ArSTq4i4ekBOCy6TFilahsTwFYHs8Pk1zQAJpidR3JF9LzOuh3oWneTWdZzOTFpTUB+B1L2oYEGp2Vi8ZGAI5DNydWlfktoN6oOfaQXDMGKsmi+5s/RHJlnykD4KGASgCbooL9XrnPpdbx5kx2G2g93kjy3ciDhU2gXrfS8J/8s7Lo6U2gKT63kxyLrcyChnIxeDQAXLU2GyAWMZRB07AmPgxgZ/JSAejb0bwcl3rZWddLuiE6mg0kdzVZNLLy2ZCQMYAaqMPA3dZWku4TZkcB6DPhKcuUDfFvhy/p1vjwWpJeYGRkJdW/t1s3NVWQCAlbdExiMq9YArtcn5L6ApJuuicCtca5hzy56qLcnNzV1ERkoFaNVU16WmDRTtDVAF6PeNvZ4no3wE4gZ7D/7WRxfH6VWSuP0cYNFYA+F022i87RvjePUdd21/gdJLd0Zb2khdH8enNJktxMz2QWdVWzkoxtqAD0/Wisj00eyUH9wT8qQT5A8vI+eYrEuSLkx127k8sN9m4Av0a8b8s25FeciP6ds7orRi2Th0guGpOnWDjV+QVdtbqWwd6gE9GQjl+7yqI9m0yS6hs6+okWwU+eHUnGemV6JOr0xO2dJEPeE7Ji+HoJrW+orYQ6B3zKdcdv7/yzqZp1UvnaX+r+BhlzGBh4b75QlmyO2/uiKdna4J0fIq5Pyb3a1OalQF5C8vOSWJ3WnEzLxxK6CTT1hE6qpdOC6PtOnP1tTcvbGfUzWttR5FUA10cT8XTfItN4LimVTd+iWBlGRhvoaaGp3t2KKl4/mAZM2zey8vxZnHjHTgddx2VLintHNxTLqvPTt/8HrKSr4ozmO6sL2068fRcQ10V9t5hbLnqvXibZTCSPi4BHp+dKrnR8KnUz4uEe9LHSYtDhaofU41HP7THrduftXi+oF4s+1K2fa7zbLgf8xOf9OPz52tKNtPPAMbmm5IKjCDRgbQVXLp+HPAxsS/tytvNOStJ5cenri19v1sliWHun6GxWDJpVFlcenxQtX+ly1p2SwX2NmC5yvTFbzfNdjTwc6z78PTHpXdbEoBmwQRy/18T1jy1VH7aWm5QD1R2Wz1RvDo3vwaB1Ikn+I4Mbk/yPDTNDwerfnxroJLI0ZO6cAf0bYrtPSWjc7nQAAAAASUVORK5CYII=",N0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAABQNJREFUWEfVWW/InlMcvq7ywQcfKCtCFMoHy0SxkK0sK8SyQshWk8nK1iYrE4vFYiGEUGQfCNkyRRKyZUUhZGVlivjgg6L4oC7nevvdj/t9nvu+z7nv50m9p97e5+0553eu8/tz/a5zXmKBDC4QnJgJUEnHAjgLwEkAjonD/wngRwCHSPrzVGMwUEnnA7gOwJUBsgvIlwDeTfNeJfnVEMS9gUq6GsDWtPGFseHvCezn8fMzgMp79uypAM4GcHHN0wcBPExybx/AxUAlnQ7gBQDLAPxj7wB4zZ4i6b9bh6SjY91tAK6JiXsAbCTp9MiOIqCSrgXwUnjFG9xF8nDWesMESUsAPARgZQLqaNxE8p2crSxQSfcAeDCMridpL049JN0C4Nlk+6iULltIPtFltBOopPvS4vsBHAGwYqgX2wBIOgeAI3QagA0kn26b2wo0isZGDHI5Sf+e+ZBkkJ8k755gBiH5XtMmjUAluVoPRdGcO2tPjgORdB6A/cEY3u+n8TltQN8Ofrx+VjmZC4WkOwA8FVx7QxZoLeR7Ejmvym0wy+8lOQXMuctIfly3PeFRSZ8GmS8Z2kWGgpd0aQL5EYB9JK9qBSrJXeTrpokdlXtRtEc3g3un7esJ7Ifh1TPrBTzPo5IeSAW0zd2jtMUFH7oZePxqOiP53BReNb/anrl1V2VnHKjD7s6xqNQzNaD7UuVelvq426VFiHnxQF/Ako4H8ItTIK1fMQFUkjvEXxYXicuWlm5QA7o2UsBRWRfrrQe2lvbzas/Usp1+J6dudVwTUOvJ79zWSN4+BCjJuRSIfv5MFOXfSSM8CmAHSX/OjiSAXrEGAHBKxamj0Ety2N53jpLckbUWE+oerYDWPGO9+nh0Heev1VJWK0iyaLGUXErSsvA/hS/J8uutMNYpEOqH6AIa3nXO3h1F6vTaTfLmLkfUNIZbt+nqfwFqHevQ2xHWrY7YzmmAWhCbw0wv26cNfdyj7MmNwQT2jJng25xtSY/FOvd9M8g8j54B4HureJK35ozV8rDivbXO0WCPG33diNy0wHblv9nD5usAVgdN/jYO1PnzR6q2w8no4h5GR0DjoA6z71NW7/68q7Taa4f/wbeJpE8XtRF+1b5OJDl3ktyoFZNloSnOwzTldjoh1wrsWZ8a6DxRNN6ZNocX1pF8MWc0qrryqP80lWyqKKVk/fgcSc5rp80aki+3edSncZ4eJHlJyUZB7k9Gbo8Ml6xtmpNk5hcRGUfV6TM3mmRelcgTmnDo5qXralp4ojs2AbUo+SyEhTtD5529FERuXtz953o8ANOSc3402q4iz4ewMK10knMOQOn3kh6xtHPLJblpfF0bUD96+XS+Ga5M+fpB6YZD5km6wmLd1AhgcROddV2XL4hrgUNvsL21ZQnodPW5PO72nj4R8tZiqhuvGTHY1W137hJALRXup6Ld8Z1vFY13+saqb+C16sTuXOa3Yl3ZdoAoHAts56Rf/7JOyL49ebN4IHgjnl6+CQXU69kw7Piw1gG+l1lbuLJXjVd40wGLgMYm1pUWtOtDDXkTt8q9uY3ijckPvmsCoJW+BfX2Uh1QDLQ6pST38ztjU4P3sC7wY657e/0h153OvOwLm4c7jSOzs+8zUW+gNcCmML8++53TasmgmoYpxxrAheKHhVFb7FOEg4E2FJ2fws271T8bHN4jpaHNgZ4Z0NxG036/YID+C13f/zrMiYL6AAAAAElFTkSuQmCC",b0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAABF9JREFUWEfVmU+oVVUYxdeCBg0MahAINVBSaJDwAoUkI0WjJEEDI8VBDRKFBiolGSolJRUaORAieGFBUNF7lBRUEFSoaFhkECRoqCQkFNjAgYNgudfj24/juefcc+6793Z5e3Lf/XP2/u29vz/r+x4xSwZnCScGAippDoD7ANwFwH97XAfwB4DzJP/t90BmDCppMYCnAKwKyFu6wPwG4EsAn5P8cSbQPYNKejgt9AqA5YWTOw7AMD7Ba/H5rQDuiU0sK5z0GT9P8mgvwK1BJd0N4B0AawD8B+BrAO/6laTf1w5JhvbGtgB4DIDffw/gGZKX2gC3ApX0OIAPAdwegDtInm2zQPk3ku4F8DqAdWHHhv2kaa5GUEnb0rUdjFPcSvKDpknbfC/J9j0eJmFT2Nftua6gkp4DcBjAZQCrSdoOBzYkzQPwHQC/7iG5v27yWlBJj4anXgHwEMmLAyMsTFSCXU9ysmqdSlBJcwH8Eja5jOTPw4DMc0paEOv5o0VVh1IH+hGADQBsk/bsoQ9Jm8JhHUVWlxfsAJU0Frs7RXLp0AlvNoOvInwtJ/lDce0q0M8idIyR/PV/BrUJ/J6y3fEEuqIWNAz7QtpV69OMZ66QdG7vGJKcWueRPN9m05K+iKRiW52OMjedqKTnI2Y6CDfGy4A8B+C1ujhYCHH3k3T67DokrbUmiDn35h+XQbON3EnynxaTZns+RHJHzYm+nD63NlhB0mmzCdTp9WoyvzNFHymD+geXUyxb1DShvy843sBAY95jKVU/AOC2bFLToCE6/kxqZ4LkkyMGtfjZGjF1yk6LoN7ByaRs3iD50ohBXzSHQ1W6/m/KoJZhzruNAiFvYohXvx3A2w6TWbcWT3TWgLq0OO3wRHLniK9+t8MTgEdIflu+eotie73rmidGDHrE6h/AwpwoyuHpL6vuFOznjxjUys3p9I5c5pRBP01F2noA89voz2E4kyTf7N/lfF8GfTrl5fdTJfkCybeaTjVir0XEdpLv1WSmXHIsaVNnScoMu0i+WZdC824uklzYBDqM71Nl4Vhux/atugSaGlUyLxtybVkwDMBInSsB2Ms7HLoKNGtC10iWWpXybdCwIQcdHi10OrRwXSlywHbaS0ztF1xSjp3jJDeX56sDtdRyiHCzYDqN9QtT93xUvNagrnitWzuaat3KZXfnbNhW6IadEgeDHpIejO6L11lF8kTVGk0NCNf23qnHhl4bW02bipOciF7Umm6H0aalY1hP5r6nuyY7+3WwcJxXww/cYGu8sUbQCBuOBC66bLOOBk4IlR2NFqfomsi9LM/pgm8jyZ+anmsFGrB2MNc/1or+28Buck02ZZzohBjQqt2APkXfzl6SuZ/albU1aJ4l2j1W4M8WmrMuBF1hGr7YyDWUndItIg/H5I8B7G9bPud1ewYtANtmfUpujbujbKiqYfhT4dlHZ9rPnzFomSi6yu5KF//ZYM0wkMw2MNAmZ+j3+1kDegOA+wZJIwcZzQAAAABJRU5ErkJggg==",G0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAABWBJREFUWEfVmW/onlMYx7/f8oIiFEW8sBCLxWoLaSFki7JiIYply154sWWL1cSiWCZbEeIFRSwTilCTyUQhZDJRCLUypXjhxerrfH9d53Ge+7n/PfczL3Zq/X7P7nM/53Ouc13f67rOjzhMBg8TThwSUEnHATgbwCkAjo7N/wngNwD7SP49q0EGg0q6IEHcCGBpQDaxHATwJYB3AOwguXcI9NSgkm4GsKmAs+U+CRhbMFvvWABnADg3QV4I4MgA3JV+3k/yo2mAe4NKOgvAc7GorfQygBcB7CLpz41DkiGvBrAqTsBz/f46kvv7APcClXQHgG1hlRcAbCb5Q58FqnMknQ/gMQCXAjDkLSTf6/quTlBJ9/mo4ktXkXyr60v7PC827+mGfbXtvVbQAnIfgGUkf+oD0XeOpIuTD+8EcIIDsw22EVTS7QCeTbv1ES/p60t9IfM8SZa1D0PWrmgKslpQSY7UTwE4oi861Jas8dtLHJThXgtIet2x0QRqyEVJcpaTfGNaKw2ZL+muZNWtPkWSqztBJV0L4HXLB8mbhiw65B1JRwD4IvR5flVVJiyaQPPkM0n+Wi5qPST5TxNI1/OuDUiyC+y2XpNcWc4fA5XkDPJxnTULObGeWkfHgCMovk4u82by7bVpoZ+7wOqeS/o2MtqJpa9WQS3EawFcSdLOPRqS8jP/n4V6PUlnprkhyQL+fnz0Jmo31AVf+OptJJ/P86ug34emeTdjabEAdWa6PrKUiw1/4VcFqI/utPg3saEeoK4PzLGT5IoJUEkW3d9d5ZBcViMh2aILw6L+7OrJw/DOWC+lD85iWwA4il28OM+PNtQFGqfzS3r3YLLovDrQ7J9bSW5oAyXphX3clrBnkko4f+fhymhzPD8p8nq5oQ1dySOVkG9H8XJMrmVHR5+c+IaoaNaQfLoPaOGfzmIPAjDYCLR4Xm7I/murb29SEElPplNbk+pXy5TT938VvqRbo4xbSdLl3NgofHRhtmg5ofDRCdAC2Gs8Hulyb8rtC+pcoW6t0qKzgubaoBZU0umReZbb//w7yY1DQP0Fr4UGbu9r0QqAXxsDjX7KgbU+AsuqcGeK6G+aAkuS/d5FtpPOXN1bWtR+5By/jeS6LtAAuDt015HtL7S0zIFGSnTbYt89NZ5vIrmjK/JThrIeW5ePyn5cgnqxvwDsIXlZC+hiAOck6zwcwWPAewD8EYLvQHGycIFhJXEP5d+3tKXfir9bJg+kTc2fkKeQk5znj69JkVlHs+VcihngUc8tgsn1gS3oYX3dWK0Z2iwakueTHcv31cz0UFhnoryrpFCrwr0lQCWFuit14+afUw1JD0SicMU/cpMqaE5fu6vHH5WN6wAf4QSAJGuog8Cpb5Sjp6GMbvXHCLqTy1OtK/OyIy8i+fk0C806t9DyiYCuA801oYNqyayL932/sKavh+ZV02xTK/JKVEjWuyf6LjbLvCJt1iaMJlBHrSPPu1ua/PWDWSC63i063s+i453oItra5cvjYuuAxTf1T991LTjkuaSrokez3i5u6ni7LiCui4rKmmm56Lx6mQY2guepeKf15Ppc6bgr9YWWh7NR7wzTBB3p95HI5z4x63br7V4naGQsK4FF3i2Gi2Y7/NT9fk3+t0+u6HPB0Qs0YB1YzlwuaD0MbEv7crb1TkrSedG2uNL3Zh0sLlZ8Oq1XlvlUeoPmF+La0GVbbvD8yPnd4G7m8kWuN2b1cJvifszDvu77LNcHve5FB4MWwAax/14T1z+2VHXYWi5i9qQ7rHfd8/etoKpfNLVFWwLEf2Rwvi//2LB/KNj/BjqNLA2Ze8gsOmTxad75F0QPWUncuoGpAAAAAElFTkSuQmCC",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAIpJREFUKFNjzFjz352RgUFiegjjQgYsIGPd/2iGfwxvGMGM/wxL/v9nKJgZwjgRWW36mv/5jIwMExgZGRIYQRIwAWTF6GJgheiKQXyQScga4QqRFYPY6E4hXSGym3BaTZRnMtf8j//PyLAAX/AwMDLEMGZs+O/O8I9BZEYQ41JsAZ657n/8fyaGFwCSUmao4tQfEwAAAABJRU5ErkJggg==";const Ve=t=>(Kr("data-v-4fdaa96c"),t=t(),Pr(),t),$0={class:"l_Dialog tuiy"},W0={class:"my-header"},z0=["id"],A0={class:"my_content"},H0={class:"dialog-footer class_footer l_btn"},j0={class:"footerbtn"},K0={class:"borderimg"},P0={class:"footerbtn"},X0={class:"borderimg"},I0={class:"my-header"},Y0=["id"],q0={class:"my_content1 bgcolor tablefocus scoperadio"},Q0={class:"demo-pagination-block pagination"},Z0={class:"dialog-footer footer_div l_btn"},J0={class:"footerbtn flex1"},ep={class:"borderimg"},tp={class:"footerbtn flex1"},np={class:"borderimg"},rp={class:"footerbtn flex1"},ap={class:"borderimg"},sp={class:"footerbtn flex1"},ip={class:"borderimg"},op={class:"ddd"},cp={class:"header_l"},up={class:"tianjia"},fp={class:"ddd_div",style:{display:"flex"}},lp={class:"demo-input-suffix firsttitle magintop"},gp={class:"l_btn class_btn",style:{width:"auto"}},pp={class:"footerbtn"},hp={class:"borderimg"},dp={class:"my-header"},vp=["id"],yp={class:"delecttitle"},Tp={class:"spanclad"},xp={class:"dialog-footer footer_div l_btn"},Sp={class:"footerbtn flex1"},Cp={class:"borderimg"},wp={class:"footerbtn flex1"},Ep={class:"borderimg"},_p={class:"common-layout",style:{margin:"0"}},Rp={class:"demo-collapse"},Op={class:"asides_content"},Dp={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},Mp={class:"line selecwidth"},Vp={class:"demo-datetime-picker"},mp=Ve(()=>_("span",{class:"inputtext_1"},"选择时间",-1)),Lp={class:"block"},Bp=Ve(()=>_("span",{class:"inputtext_1"},"时间步长",-1)),kp={class:"inputkuang"},Fp=Ve(()=>_("span",{class:"righttext"},"s",-1)),Up=Ve(()=>_("span",{class:"inputtext_1"},"空间步长",-1)),Np={class:"inputkuang"},bp=Ve(()=>_("span",{class:"righttext"},"m",-1)),Gp=Ve(()=>_("span",{class:"inputtext_1"},"模拟时长",-1)),$p={class:"inputkuang"},Wp=Ve(()=>_("span",{class:"righttext"},"s",-1)),zp=Ve(()=>_("span",{class:"inputtext_1"},"输出步长",-1)),Ap={class:"inputkuang"},Hp=Ve(()=>_("span",{class:"righttext"},"s",-1)),jp=Ve(()=>_("span",{class:"inputtext_1"},"交互步长",-1)),Kp={class:"inputkuang"},Pp=Ve(()=>_("span",{class:"righttext"},"s",-1)),Xp={class:"asdis_btn"},Ip={class:"btn"},Yp={class:"btn"},qp={class:"logs"},Qp={class:"logs_pading"},Zp=Ve(()=>_("h4",null,"模拟日志",-1)),Jp={class:"footerTextBox"},eh={class:"common-layout",style:{margin:"0"}},th={class:"demo-collapse"},nh={class:"asides_content"},rh={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},ah={class:"demo-datetime-picker"},sh=Ve(()=>_("span",{class:"inputtext_1"},"选择时间",-1)),ih={class:"block"},oh=Ve(()=>_("span",{class:"inputtext_1"},"时间步长",-1)),ch={class:"inputkuang"},uh=Ve(()=>_("span",{class:"righttext"},"s",-1)),fh=Ve(()=>_("span",{class:"inputtext_1"},"空间步长",-1)),lh={class:"inputkuang"},gh=Ve(()=>_("span",{class:"righttext"},"m",-1)),ph=Ve(()=>_("span",{class:"inputtext_1"},"模拟时长",-1)),hh={class:"inputkuang"},dh=Ve(()=>_("span",{class:"righttext"},"s",-1)),vh=Ve(()=>_("span",{class:"inputtext_1"},"输出步长",-1)),yh={class:"inputkuang"},Th=Ve(()=>_("span",{class:"righttext"},"s",-1)),xh=Ve(()=>_("span",{class:"inputtext_1"},"交互步长",-1)),Sh={class:"inputkuang"},Ch=Ve(()=>_("span",{class:"righttext"},"s",-1)),wh={class:"asdis_btn"},Eh={class:"btn"},_h={class:"btn"},Rh={class:"logs"},Oh={class:"logs_pading"},Dh=Ve(()=>_("h4",null,"模拟日志",-1)),Mh={class:"footerTextBox"},Vh={__name:"InfoDialoges",props:{addselect:{type:Function,required:!0},headerobj:{type:Object}},emits:["headerclick","childfun","moxingclick"],setup(t,{expose:e,emit:n}){const r=t;let a=$(""),s=$(null),i=$({lockReconnect:!1,timeout:28*1e3,timeoutObj:null,serverTimeout0bj:null,timeoutnum:null});$({});let o=$({source:"自荐",type:"预演",sid:"-1"}),u=$({}),c=$({source:"",name:""}),f=$({sgaid:"",name:"",time:""});$("");let l=$(!0),g=$("");$(""),$("");const p=$(1),T=$(3);let h=$(1);const d=$(!0),x=$();let C=$("Fire");const y=$({collfire:!1,collwater:!1}),v=$(!1),w=$({dialogVisible_fire:!1,jianced:!0,monitor:!1,dialogForm:!1,dialogsgdelect:!1});let S=$({value:[""],pickertime:"24-03-06 00:00:00",acctime:"2024-03-06 00:00:00",dt:"",dx:"",reportstep:"",interactionstep:"",totaltime:"",coids:"",cocodes:""}),R=$({value:["SO2"],pickertime:"",acctime:"2024-03-06 00:00:00",dt:"0.1",dx:"10",reportstep:"60",interactionstep:"3600",totaltime:"3600",coids:"1",cocodes:"CO2"}),M=$({value:["SO2"],pickertime:"",acctime:"2024-03-06 00:00:00",dt:"5",dx:"5",reportstep:"60",interactionstep:"3600",totaltime:"3600",coids:"1",cocodes:"CO2"}),m=$({}),O=$(["1","2"]),V=$(""),B=$({top:"50px",logs:"",left:"90px"});$("130px"),$({user:"11",region:"shanghai",date:""}),$([]);const b=$([]);let U=$(1);$("#409eff");const Y=({row:te,rowIndex:W})=>W%2!=0?"evenRow":"oddRow",q=$([]),Z=()=>{d.value=!1,w.value.dialogVisible_fire=!0,x.value=C.value,r.addselect(),Ce()},re=()=>{f.value.name==""?ye.error("请选择项目"):(n("headerclick",u.value),w.value.dialogVisible_fire=!1,n("childfun"),n("moxingclick",!0),we()),sn()},G=()=>{x.value=="Fire"?y.value.collfire=!0:x.value=="Water"&&(y.value.collwater=!0)},k=()=>{const te={transCode:"D00002",source:o.value.source,type:o.value.type,name:c.value.name,stype:x.value,sid:o.value.sid,aid:g.value};me(te).then(W=>{w.value.dialogForm=!1,Ce(),U.value=null}).catch(W=>{ye.error(W.returnMsg)})},j=te=>{u.value=te,console.log(m.value),c.value.name=te.name,g.value=te.aid,f.value.name=te.name,f.value.time=te.time};function K(te){p.value=te,Ce()}const P=te=>{console.log(te),te=="1"?(a.value="事故添加",g.value=0,c.value.name=""):te=="2"&&(a.value="事故修改",c.value.name=f.value.name),w.value.dialogForm=!0},A=()=>{const te={transCode:"D000016",aid:g.value};me(te).then(W=>{Ce(),ye({message:"删除成功",type:"success"})}).catch(W=>{l.value=!1,ye.error(W.returnMsg)})},Ce=()=>{const te={transCode:"D00003",count:T.value,page:p.value,aid:g.value,stype:x.value};me(te).then(W=>{l.value=!1,q.value=W.rows,h.value=W.total}).catch(W=>{l.value=!1,ye.error(W.returnMsg)})},we=()=>{me({transCode:"D10013"}).then(W=>{console.log(W),b.value=W.rows}).catch(W=>{ye.error(W.returnMsg)})},De=()=>{var te=new Date,W=Date.parse(te),lt=qs(W);return lt},ne=()=>{x.value=="Fire"?(b.value.coid=["CO2"],R.value.pickertime=De(),R.value.acctime=De(),S.value=R.value,console.log(S.value)):(M.value.pickertime=De(),M.value.acctime=De(),S.value=M.value)},Q=()=>{var te=Date.parse(S.value.pickertime);S.value.acctime=qs(te)},ue=te=>{let W=[],lt=[];for(let gt=0;gt<=te.length-1;gt++)console.log(te[gt]),W.push(te[gt].coid),lt.push(te[gt].code);S.value.coids=W.join(","),S.value.cocodes=lt.join(",")},de=()=>{const te={transCode:"D00008",aid:g.value,acctime:S.value.acctime,dt:S.value.dt,dx:S.value.dx,reportstep:S.value.reportstep,interactionstep:S.value.interactionstep,totaltime:S.value.totaltime,coids:S.value.coids,cocodes:S.value.cocodes};me(te).then(W=>{Ut()}).catch(W=>{ye.error(W.returnMsg)})},Fe=()=>{};function Ue(te){te.includes("msg=heartCheck")||(V.value=V.value+` `+te,B.value.logs=V.value),m0(()=>{let W=document.getElementById("textarea_id");W.scrollTop=W.scrollHeight})}async function sn(){const te={transCode:"D000015",aid:g.value};await me(te).then(W=>{W.returnCode=="000000000"?Ut():ye({message:W.returnMsg,type:"error"})}).catch(W=>{})}function Ut(){const te="ws://www.adicn.com/diswebsocket?projectId="+g.value;console.log(te),s=new WebSocket(te),s.onopen=on,s.onmessage=Xt,s.onerror=I,s.onclose=Tt}const on=te=>{console.log("WebSocket连接成功",te),Ne()},Xt=te=>{Ue(te.data),Xn()},I=te=>{console.log("连接错误",te),socket.close(),Nt()},Tt=te=>{console.log("断开连接",te)},Nt=()=>{i.value.lockReconnect||(i.value.lockReconnect=!0,i.value.timeoutnum&&clearTimeout(i.value.timeoutnum),i.value.timeoutnum=setTimeout(function(){Ut(),i.value.lockReconnect=!1},1e4))},Xn=()=>{clearTimeout(i.value.timeoutObj),clearTimeout(i.value.serverTimeoutObj),Ne()},Ne=()=>{i.value.timeoutObj&&clearTimeout(i.value.timeoutObj),i.value.serverTimeoutObj&&clearTimeout(i.value.serverTimeoutObj),i.value.timeoutObj=setTimeout(function(){s.readyState==1?s.send("heartCheck"):Nt(),i.value.serverTimeoutObj=setTimeout(function(){s.close()},i.value.timeout)},i.value.timeout)};return au(()=>{s.value=null}),An(()=>{}),e({monitor:v,accident2:G,leftcoll:y,classradio:x,aid:g,dialogVisible:d}),(te,W)=>{const lt=J("el-image"),gt=J("el-radio"),vs=J("el-radio-group"),ee=J("el-table-column"),N=J("el-table"),Ze=J("el-pagination"),oe=J("el-input"),cn=J("el-form-item"),it=J("el-icon"),Jr=J("el-option"),_r=J("el-date-picker"),Rr=J("el-form"),xt=J("el-collapse-item"),pt=J("el-collapse"),ea=J("el-aside"),ys=V0("loading");return Ye(),Ot("div",$0,[D(L(Mt),{modelValue:d.value,"onUpdate:modelValue":W[3]||(W[3]=X=>d.value=X),width:"482","align-center":"",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor"},{header:F(({titleId:X,titleClass:H})=>[_("div",W0,[D(lt,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:X,class:Dt(H)},"灾害类型",10,z0)])]),footer:F(()=>[_("div",H0,[_("div",j0,[_("div",K0,[D(L(Te),{onClick:W[1]||(W[1]=X=>d.value=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",P0,[_("div",X0,[D(L(Te),{onClick:W[2]||(W[2]=X=>Z())},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),default:F(()=>[_("div",A0,[D(vs,{modelValue:L(C),"onUpdate:modelValue":W[0]||(W[0]=X=>Lt(C)?C.value=X:C=X),class:"radio-group"},{default:F(()=>[D(gt,{label:"Fire"},{default:F(()=>[ae("火灾")]),_:1}),D(gt,{label:"Water"},{default:F(()=>[ae("突水")]),_:1}),D(gt,{label:"9"},{default:F(()=>[ae("瓦斯爆炸")]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:w.value.dialogVisible_fire,"onUpdate:modelValue":W[17]||(W[17]=X=>w.value.dialogVisible_fire=X),width:"600",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor tablefocus"},{header:F(({titleId:X,titleClass:H})=>[_("div",I0,[D(lt,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:X,class:Dt(H)}," 事故列表",10,Y0)])]),default:F(()=>[_("div",q0,[ft((Ye(),br(N,{data:q.value,style:{width:"100%"},"element-loading-text":"Loading...","element-loading-background":"rgba(0, 10, 0, 0.1)","row-class-name":Y,"header-cell-style":{background:" #375A88"},onSelect:Fe},{default:F(()=>[D(ee,{width:"50"},{default:F(X=>[D(gt,{modelValue:L(U),"onUpdate:modelValue":W[4]||(W[4]=H=>Lt(U)?U.value=H:U=H),label:X.row.aid,onChange:H=>j(X.row)},null,8,["modelValue","label","onChange"])]),_:1}),D(ee,{type:"index",label:"序号",width:"50"}),D(ee,{prop:"name",label:"名称"}),D(ee,{prop:"name",label:"来源",width:"120"}),D(ee,{prop:"time",label:"时间",width:"180"})]),_:1},8,["data"])),[[ys,L(l)]]),_("div",Q0,[D(Ze,{"current-page":p.value,"onUpdate:currentPage":W[5]||(W[5]=X=>p.value=X),"page-size":T.value,"onUpdate:pageSize":W[6]||(W[6]=X=>T.value=X),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(L(h)),class:"mt-4",onCurrentChange:K},null,8,["current-page","page-size","total"])]),_("div",Z0,[_("div",J0,[_("div",ep,[D(L(Te),{onClick:W[7]||(W[7]=X=>{P("1")})},{default:F(()=>[ae("添加")]),_:1})])]),_("div",tp,[_("div",np,[D(L(Te),{onClick:W[8]||(W[8]=X=>P("2"))},{default:F(()=>[ae(" 修改 ")]),_:1})])]),_("div",rp,[_("div",ap,[D(L(Te),{onClick:W[9]||(W[9]=X=>w.value.dialogsgdelect=!0)},{default:F(()=>[ae(" 删除 ")]),_:1})])]),_("div",sp,[_("div",ip,[D(L(Te),{onClick:W[10]||(W[10]=X=>re())},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),ft(_("div",op,[_("div",cp,[D(lt,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",up,kt(L(a)),1),_("div",{class:"closeimg",onClick:W[11]||(W[11]=X=>w.value.dialogForm=!1)},[D(lt,{src:L(Qs),fit:"contain",style:{"margin-top":"-10px"}},null,8,["src"])]),_("div",fp,[_("div",lp,[D(cn,{label:"事故名称"},{default:F(()=>[D(oe,{modelValue:L(c).name,"onUpdate:modelValue":W[12]||(W[12]=X=>L(c).name=X),class:"w-50 m-2",placeholder:"某次某事件火灾事故"},null,8,["modelValue"])]),_:1}),_("div",gp,[_("div",pp,[_("div",hp,[D(L(Te),{onClick:W[13]||(W[13]=X=>k())},{default:F(()=>[ae(" 确定 ")]),_:1})])])])])])])],512),[[yt,w.value.dialogForm]]),D(L(Mt),{modelValue:w.value.dialogsgdelect,"onUpdate:modelValue":W[16]||(W[16]=X=>w.value.dialogsgdelect=X),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:X,titleClass:H})=>[_("div",dp,[D(lt,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:X,class:Dt(H)},"删除",10,vp)])]),default:F(()=>[_("h4",yp,[ae(" 是否确认删除"),_("span",Tp,kt(L(f).name),1)]),_("div",xp,[_("div",Sp,[_("div",Cp,[D(L(Te),{onClick:W[14]||(W[14]=X=>w.value.dialogsgdelect=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",wp,[_("div",Ep,[D(L(Te),{onClick:W[15]||(W[15]=X=>{A(),w.value.dialogsgdelect=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),ft(_("div",_p,[D(ea,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:F(()=>[_("div",Rp,[D(pt,{modelValue:L(O),"onUpdate:modelValue":W[30]||(W[30]=X=>Lt(O)?O.value=X:O=X),accordion:""},{default:F(()=>[D(xt,{name:"1"},{title:F(()=>[D(it,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),D(it,{class:"header-icon"})]),default:F(()=>[_("div",Op,[D(Rr,{inline:!0,model:L(S),class:"demo-form-inline"},{default:F(()=>[_("div",Dp,[_("div",Mp,[D(cn,{label:"污染物选择:"},{default:F(()=>[D(L(su),{modelValue:b.value.coid,"onUpdate:modelValue":W[18]||(W[18]=X=>b.value.coid=X),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,"value-key":"code",onChange:W[19]||(W[19]=X=>ue(X)),placeholder:"请选择"},{default:F(()=>[(Ye(!0),Ot(ba,null,Ga(b.value,X=>(Ye(),br(Jr,{key:X.coid,label:X.code,value:X},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("ul",null,[_("li",null,[_("div",Vp,[mp,_("div",Lp,[D(_r,{modelValue:L(S).pickertime,"onUpdate:modelValue":W[20]||(W[20]=X=>L(S).pickertime=X),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss",onChange:W[21]||(W[21]=X=>Q())},null,8,["modelValue"])])])]),_("li",null,[Bp,_("div",kp,[D(oe,{modelValue:L(S).dt,"onUpdate:modelValue":W[22]||(W[22]=X=>L(S).dt=X)},null,8,["modelValue"]),Fp])]),_("li",null,[Up,_("div",Np,[D(oe,{modelValue:L(S).dx,"onUpdate:modelValue":W[23]||(W[23]=X=>L(S).dx=X)},null,8,["modelValue"]),bp])]),_("li",null,[Gp,_("div",$p,[D(oe,{modelValue:L(S).totaltime,"onUpdate:modelValue":W[24]||(W[24]=X=>L(S).totaltime=X)},null,8,["modelValue"]),Wp])]),_("li",null,[zp,_("div",Ap,[D(oe,{modelValue:L(S).reportstep,"onUpdate:modelValue":W[25]||(W[25]=X=>L(S).reportstep=X)},null,8,["modelValue"]),Hp])]),_("li",null,[jp,_("div",Kp,[D(oe,{modelValue:L(S).interactionstep,"onUpdate:modelValue":W[26]||(W[26]=X=>L(S).interactionstep=X)},null,8,["modelValue"]),Pp])])])]),_("div",Xp,[_("div",Ip,[_("span",{class:"spantext",onClick:W[27]||(W[27]=X=>{ne()})},"初始数据")]),_("div",Yp,[_("span",{class:"spantext",onClick:W[28]||(W[28]=X=>{de()})},"开始计算")])]),_("div",qp,[_("div",Qp,[Zp,_("div",Jp,[D(oe,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:L(B).logs,"onUpdate:modelValue":W[29]||(W[29]=X=>L(B).logs=X)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[yt,y.value.collfire]]),ft(_("div",eh,[D(ea,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:F(()=>[_("div",th,[D(pt,{modelValue:L(O),"onUpdate:modelValue":W[41]||(W[41]=X=>Lt(O)?O.value=X:O=X),accordion:""},{default:F(()=>[D(xt,{name:"1"},{title:F(()=>[D(it,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),D(it,{class:"header-icon"})]),default:F(()=>[_("div",nh,[D(Rr,{inline:!0,model:L(S),class:"demo-form-inline"},{default:F(()=>[_("div",rh,[_("ul",null,[_("li",null,[_("div",ah,[sh,_("div",ih,[D(_r,{modelValue:L(S).pickertime,"onUpdate:modelValue":W[31]||(W[31]=X=>L(S).pickertime=X),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",onChange:W[32]||(W[32]=X=>Q())},null,8,["modelValue"])])])]),_("li",null,[oh,_("div",ch,[D(oe,{modelValue:L(S).dt,"onUpdate:modelValue":W[33]||(W[33]=X=>L(S).dt=X)},null,8,["modelValue"]),uh])]),_("li",null,[fh,_("div",lh,[D(oe,{modelValue:L(S).dx,"onUpdate:modelValue":W[34]||(W[34]=X=>L(S).dx=X)},null,8,["modelValue"]),gh])]),_("li",null,[ph,_("div",hh,[D(oe,{modelValue:L(S).totaltime,"onUpdate:modelValue":W[35]||(W[35]=X=>L(S).totaltime=X)},null,8,["modelValue"]),dh])]),_("li",null,[vh,_("div",yh,[D(oe,{modelValue:L(S).reportstep,"onUpdate:modelValue":W[36]||(W[36]=X=>L(S).reportstep=X)},null,8,["modelValue"]),Th])]),_("li",null,[xh,_("div",Sh,[D(oe,{modelValue:L(S).interactionstep,"onUpdate:modelValue":W[37]||(W[37]=X=>L(S).interactionstep=X)},null,8,["modelValue"]),Ch])])])]),_("div",wh,[_("div",Eh,[_("span",{class:"spantext",onClick:W[38]||(W[38]=X=>{ne()})},"初始数据")]),_("div",_h,[_("span",{class:"spantext",onClick:W[39]||(W[39]=X=>{de()})},"开始计算")])]),_("div",Rh,[_("div",Oh,[Dh,_("div",Mh,[D(oe,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:L(B).logs,"onUpdate:modelValue":W[40]||(W[40]=X=>L(B).logs=X)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[yt,y.value.collwater]])])}}},mh=yr(Vh,[["__scopeId","data-v-4fdaa96c"]]);var Lh=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,a,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(a=r;a--!==0;)if(!t(e[a],n[a]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(a=r;a--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[a]))return!1;for(a=r;a--!==0;){var i=s[a];if(!t(e[i],n[i]))return!1}return!0}return e!==e&&n!==n};const Bh=wi(Lh);var wo=Object.prototype.toString,ou=function(e){var n=wo.call(e),r=n==="[object Arguments]";return r||(r=n!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&wo.call(e.callee)==="[object Function]"),r},Ts,Eo;function kh(){if(Eo)return Ts;Eo=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=ou,a=Object.prototype.propertyIsEnumerable,s=!a.call({toString:null},"toString"),i=a.call(function(){},"prototype"),o=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(g){var p=g.constructor;return p&&p.prototype===g},c={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if(typeof window>"u")return!1;for(var g in window)try{if(!c["$"+g]&&e.call(window,g)&&window[g]!==null&&typeof window[g]=="object")try{u(window[g])}catch{return!0}}catch{return!0}return!1}(),l=function(g){if(typeof window>"u"||!f)return u(g);try{return u(g)}catch{return!1}};t=function(p){var T=p!==null&&typeof p=="object",h=n.call(p)==="[object Function]",d=r(p),x=T&&n.call(p)==="[object String]",C=[];if(!T&&!h&&!d)throw new TypeError("Object.keys called on a non-object");var y=i&&h;if(x&&p.length>0&&!e.call(p,0))for(var v=0;v0)for(var w=0;w"u"||!je?fe:je(Uint8Array),Gn={"%AggregateError%":typeof AggregateError>"u"?fe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?fe:ArrayBuffer,"%ArrayIteratorPrototype%":In&&je?je([][Symbol.iterator]()):fe,"%AsyncFromSyncIteratorPrototype%":fe,"%AsyncFunction%":tr,"%AsyncGenerator%":tr,"%AsyncGeneratorFunction%":tr,"%AsyncIteratorPrototype%":tr,"%Atomics%":typeof Atomics>"u"?fe:Atomics,"%BigInt%":typeof BigInt>"u"?fe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?fe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?fe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?fe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?fe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?fe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?fe:FinalizationRegistry,"%Function%":uu,"%GeneratorFunction%":tr,"%Int8Array%":typeof Int8Array>"u"?fe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?fe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?fe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":In&&je?je(je([][Symbol.iterator]())):fe,"%JSON%":typeof JSON=="object"?JSON:fe,"%Map%":typeof Map>"u"?fe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!In||!je?fe:je(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?fe:Promise,"%Proxy%":typeof Proxy>"u"?fe:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?fe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?fe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!In||!je?fe:je(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?fe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":In&&je?je(""[Symbol.iterator]()):fe,"%Symbol%":In?Symbol:fe,"%SyntaxError%":fr,"%ThrowTypeError%":Yh,"%TypedArray%":Qh,"%TypeError%":cr,"%Uint8Array%":typeof Uint8Array>"u"?fe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?fe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?fe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?fe:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?fe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?fe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?fe:WeakSet};if(je)try{null.error}catch(t){var Zh=je(je(t));Gn["%Error.prototype%"]=Zh}var Jh=function t(e){var n;if(e==="%AsyncFunction%")n=Ss("async function () {}");else if(e==="%GeneratorFunction%")n=Ss("function* () {}");else if(e==="%AsyncGeneratorFunction%")n=Ss("async function* () {}");else if(e==="%AsyncGenerator%"){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(e==="%AsyncIteratorPrototype%"){var a=t("%AsyncGenerator%");a&&je&&(n=je(a.prototype))}return Gn[e]=n,n},Mo={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Xr=cu,$a=Ih,ed=Xr.call(Function.call,Array.prototype.concat),td=Xr.call(Function.apply,Array.prototype.splice),Vo=Xr.call(Function.call,String.prototype.replace),Wa=Xr.call(Function.call,String.prototype.slice),nd=Xr.call(Function.call,RegExp.prototype.exec),rd=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,ad=/\\(\\)?/g,sd=function(e){var n=Wa(e,0,1),r=Wa(e,-1);if(n==="%"&&r!=="%")throw new fr("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new fr("invalid intrinsic syntax, expected opening `%`");var a=[];return Vo(e,rd,function(s,i,o,u){a[a.length]=o?Vo(u,ad,"$1"):i||s}),a},id=function(e,n){var r=e,a;if($a(Mo,r)&&(a=Mo[r],r="%"+a[0]+"%"),$a(Gn,r)){var s=Gn[r];if(s===tr&&(s=Jh(r)),typeof s>"u"&&!n)throw new cr("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:a,name:r,value:s}}throw new fr("intrinsic "+e+" does not exist!")},Ei=function(e,n){if(typeof e!="string"||e.length===0)throw new cr("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new cr('"allowMissing" argument must be a boolean');if(nd(/^%?[^%]*%?$/,e)===null)throw new fr("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=sd(e),a=r.length>0?r[0]:"",s=id("%"+a+"%",n),i=s.name,o=s.value,u=!1,c=s.alias;c&&(a=c[0],td(r,ed([0,1],c)));for(var f=1,l=!0;f=r.length){var h=bn(o,g);l=!!h,l&&"get"in h&&!("originalValue"in h.get)?o=h.get:o=o[g]}else l=$a(o,g),o=o[g];l&&!u&&(Gn[i]=o)}}return o},od=Ei,Zs=od("%Object.defineProperty%",!0),Js=function(){if(Zs)try{return Zs({},"a",{value:1}),!0}catch{return!1}return!1};Js.hasArrayLengthDefineBug=function(){if(!Js())return null;try{return Zs([],"length",{value:1}).length!==1}catch{return!0}};var fu=Js,ws,mo;function cd(){if(mo)return ws;mo=1;var t=Ei,e=t("%Object.getOwnPropertyDescriptor%",!0);if(e)try{e([],"length")}catch{e=null}return ws=e,ws}var ud=fu(),_i=Ei,Lo=ud&&_i("%Object.defineProperty%",!0),fd=_i("%SyntaxError%"),Yn=_i("%TypeError%"),Bo=cd(),ld=function(e,n,r){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new Yn("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Yn("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Yn("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Yn("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Yn("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,i=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,u=!!Bo&&Bo(e,n);if(Lo)Lo(e,n,{configurable:i===null&&u?u.configurable:!i,enumerable:a===null&&u?u.enumerable:!a,value:r,writable:s===null&&u?u.writable:!s});else if(o||!a&&!s&&!i)e[n]=r;else throw new fd("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},gd=Nh,pd=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",hd=Object.prototype.toString,dd=Array.prototype.concat,ko=ld,vd=function(t){return typeof t=="function"&&hd.call(t)==="[object Function]"},lu=fu(),yd=function(t,e,n,r){if(e in t){if(r===!0){if(t[e]===n)return}else if(!vd(r)||!r())return}lu?ko(t,e,n,!0):ko(t,e,n)},gu=function(t,e){var n=arguments.length>2?arguments[2]:{},r=gd(e);pd&&(r=dd.call(r,Object.getOwnPropertySymbols(e)));for(var a=0;anull};function Bt(t){if(t==null||t.isA)return t;if(!t.vtkClass)return _t.console&&_t.console.error&&_t.console.error("Invalid VTK object"),null;const e=Tu[t.vtkClass];if(!e)return _t.console&&_t.console.error&&_t.console.error(`No vtk class found for Object of type ${t.vtkClass}`),null;const n={...t};Object.keys(n).forEach(a=>{n[a]&&typeof n[a]=="object"&&n[a].vtkClass&&(n[a]=Bt(n[a]))});const r=e(n);return r&&r.modified&&r.modified(),r}function Md(t,e){Tu[t]=e}Bt.register=Md;class Es extends Array{push(){for(let e=0;e{Su[t]=kn});_t.console=console.hasOwnProperty("log")?console:Su;const Sn={debug:kn,error:_t.console.error||kn,info:_t.console.info||kn,log:_t.console.log||kn,warn:_t.console.warn||kn};function Cu(t,e){Sn[t]&&(Sn[t]=e||kn)}function wu(){Sn.log(...arguments)}function Eu(){Sn.info(...arguments)}function za(){Sn.debug(...arguments)}function ce(){Sn.error(...arguments)}function Ri(){Sn.warn(...arguments)}const Fo={};function _u(t){Fo[t]||(Sn.error(t),Fo[t]=!0)}const Qe=Object.create(null);Qe.Float32Array=Float32Array;Qe.Float64Array=Float64Array;Qe.Uint8Array=Uint8Array;Qe.Int8Array=Int8Array;Qe.Uint16Array=Uint16Array;Qe.Int16Array=Int16Array;Qe.Uint32Array=Uint32Array;Qe.Int32Array=Int32Array;Qe.Uint8ClampedArray=Uint8ClampedArray;try{Qe.BigInt64Array=BigInt64Array,Qe.BigUint64Array=BigUint64Array}catch{}function Tr(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;r1&&arguments[1]!==void 0?arguments[1]:2,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e3;const r=["TB","GB","MB","KB"];let a=Number(t),s="B";for(;a>n;)a/=n,s=r.pop();return`${a.toFixed(e)} ${s}`}function Du(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ";const n=[];let r=t;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(e)}function Mu(t){Object.keys(t).forEach(e=>{Array.isArray(t[e])&&(t[e]=[].concat(t[e]))})}function Ld(t){return Object.values(Qe).some(e=>t instanceof e)}function Bd(t,e){if(t===e)return!0;if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let n=0;nt[n]===e)}function Vu(t){return t&&t.isA?t.getState():t}function Di(t){setTimeout(t,0)}function mu(t,e){const n=performance.now();t.finally(()=>{const r=performance.now()-n;e(r)})}function Pe(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Mu(e);const n=[];if(Number.isInteger(e.mtime)||(e.mtime=++ei),!("classHierarchy"in e))e.classHierarchy=new Es("vtkObject");else if(!(e.classHierarchy instanceof Es)){const s=new Es;for(let i=0;i!!e.deleted,t.modified=s=>{if(e.deleted){ce("instance deleted - cannot call any method");return}s&&si&&i(t)))},t.onModified=s=>{if(e.deleted)return ce("instance deleted - cannot call any method"),null;const i=n.length;return n.push(s),a(i)},t.getMTime=()=>e.mtime,t.isA=s=>{let i=e.classHierarchy.length;for(;i--;)if(e.classHierarchy[i]===s)return!0;return!1},t.getClassName=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.classHierarchy[e.classHierarchy.length-1-s]},t.set=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,u=!1;return Object.keys(s).forEach(c=>{const f=o?null:t[`set${is(c)}`];f&&Array.isArray(s[c])&&f.length>1?u=f(...s[c])||u:f?u=f(s[c])||u:(["mtime"].indexOf(c)===-1&&!i&&Ri(`Warning: Set value to model directly ${c}, ${s[c]}`),u=e[c]!==s[c]||u,e[c]=s[c])}),u},t.get=function(){for(var s=arguments.length,i=new Array(s),o=0;o{u[c]=e[c]}),u},t.getReferenceByName=s=>e[s],t.delete=()=>{Object.keys(e).forEach(s=>delete e[s]),n.forEach((s,i)=>r(i)),e.deleted=!0},t.getState=()=>{if(e.deleted)return null;const s={...e,vtkClass:t.getClassName()};Object.keys(s).forEach(o=>{s[o]===null||s[o]===void 0||o[0]==="_"?delete s[o]:s[o].isA?s[o]=s[o].getState():Array.isArray(s[o])?s[o]=s[o].map(Vu):Ld(s[o])&&(s[o]=Array.from(s[o]))});const i={};return Object.keys(s).sort().forEach(o=>{i[o]=s[o]}),i.mtime&&delete i.mtime,i},t.shallowCopy=function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(s.getClassName()!==t.getClassName())throw new Error(`Cannot ShallowCopy ${s.getClassName()} into ${t.getClassName()}`);const o=s.get(),u=Object.keys(e).sort();Object.keys(o).sort().forEach(f=>{const l=u.indexOf(f);l===-1?i&&za(`add ${f} in shallowCopy`):u.splice(l,1),e[f]=o[f]}),u.length&&i&&za(`Untouched keys: ${u.join(", ")}`),t.modified()},t.toJSON=function(){return t.getState()},t}const Fd={object(t,e,n){return function(){return{...e[n.name]}}}};function st(t,e,n){n.forEach(r=>{if(typeof r=="object"){const a=Fd[r.type];a?t[`get${Le(r.name)}`]=a(t,e,r):t[`get${Le(r.name)}`]=()=>e[r.name]}else t[`get${Le(r)}`]=()=>e[r]})}const Ud={enum(t,e,n){const r=`_on${Le(n.name)}Changed`;return a=>{var s;if(typeof a=="string"){if(n.enum[a]!==void 0)return e[n.name]!==n.enum[a]?(e[n.name]=n.enum[a],t.modified(),!0):!1;throw ce(`Set Enum with invalid argument ${n}, ${a}`),new RangeError("Set Enum with invalid string argument")}if(typeof a=="number"){if(e[n.name]!==a){if(Object.keys(n.enum).map(i=>n.enum[i]).indexOf(a)!==-1){const i=e[n.name];return e[n.name]=a,(s=e[r])==null||s.call(e,t,e,a,i),t.modified(),!0}throw ce(`Set Enum outside numeric range ${n}, ${a}`),new RangeError("Set Enum outside numeric range")}return!1}throw ce(`Set Enum with invalid argument (String/Number) ${n}, ${a}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(t,e,n){const r=`_on${Le(n.name)}Changed`;return a=>{var s;if(!Bh(e[n.name],a)){const i=e[n.name];return e[n.name]=a,(s=e[r])==null||s.call(e,t,e,a,i),t.modified(),!0}return!1}}};function Uo(t){if(typeof t=="object"){const e=Ud[t.type];if(e)return(n,r)=>e(n,r,t);throw ce(`No setter for field ${t}`),new TypeError("No setter for field")}return function(n,r){const a=`_on${Le(t)}Changed`;return function(i){var o;if(r.deleted)return ce("instance deleted - cannot call any method"),!1;if(r[t]!==i){const u=r[t.name];return r[t]=i,(o=r[a])==null||o.call(r,n,r,i,u),n.modified(),!0}return!1}}}function Ir(t,e,n){n.forEach(r=>{typeof r=="object"?t[`set${Le(r.name)}`]=Uo(r)(t,e):t[`set${Le(r)}`]=Uo(r)(t,e)})}function ze(t,e,n){st(t,e,n),Ir(t,e,n)}function xr(t,e,n){n.forEach(r=>{t[`get${Le(r)}`]=()=>e[r]?Array.from(e[r]):e[r],t[`get${Le(r)}ByReference`]=()=>e[r]})}function Mi(t,e,n,r){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;n.forEach(s=>{if(e[s]&&r&&e[s].length!==r)throw new RangeError(`Invalid initial number of values for array (${s})`);const i=`_on${Le(s)}Changed`;t[`set${Le(s)}`]=function(){var p;if(e.deleted)return ce("instance deleted - cannot call any method"),!1;for(var o=arguments.length,u=new Array(o),c=0;c=0)&&(f=f[0],g=!0),f==null)l=e[s]!==f;else{if(r&&f.length!==r)if(f.length{const u=e[s];o.forEach((c,f)=>{u[f]=c})}})}function Vi(t,e,n,r){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;xr(t,e,n),Mi(t,e,n,r,a)}function Yr(t,e,n){for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){ce("instance deleted - cannot call any method");return}if(T>=e.numberOfInputs){ce(`algorithm ${t.getClassName()} only has ${e.numberOfInputs} input ports. To add more input ports, use addInputData()`);return}(e.inputData[T]!==p||e.inputConnection[T])&&(e.inputData[T]=p,e.inputConnection[T]=null,t.modified&&t.modified())}function s(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[p]&&(e.inputData[p]=e.inputConnection[p]()),e.inputData[p]}function i(p){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){ce("instance deleted - cannot call any method");return}if(T>=e.numberOfInputs){let h=`algorithm ${t.getClassName()} only has `;h+=`${e.numberOfInputs}`,h+=" input ports. To add more input ports, use addInputConnection()",ce(h);return}e.inputData[T]=null,e.inputConnection[T]=p}function o(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[p]}function u(){let p=e.numberOfInputs;for(;p&&!e.inputData[p-1]&&!e.inputConnection[p-1];)p--;return p===e.numberOfInputs&&e.numberOfInputs++,p}function c(p){if(e.deleted){ce("instance deleted - cannot call any method");return}i(p,u())}function f(p){if(e.deleted){ce("instance deleted - cannot call any method");return}a(p,u())}function l(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.deleted?(ce("instance deleted - cannot call any method"),null):(t.shouldUpdate()&&t.update(),e.output[p])}t.shouldUpdate=()=>{var d,x;const p=t.getMTime();let T=1/0,h=r;for(;h--;){if(!e.output[h]||e.output[h].isDeleted())return!0;const C=e.output[h].getMTime();if(CT)return!0;return!1};function g(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const T=()=>l(p);return T.filter=t,T}if(e.numberOfInputs){let p=e.numberOfInputs;for(;p--;)e.inputData.push(null),e.inputConnection.push(null);t.setInputData=a,t.setInputConnection=i,t.addInputData=f,t.addInputConnection=c,t.getInputData=s,t.getInputConnection=o}r&&(t.getOutputData=l,t.getOutputPort=g),t.update=()=>{const p=[];if(e.numberOfInputs){let T=0;for(;Te.numberOfInputs,t.getNumberOfOutputPorts=()=>r||e.output.length,t.getInputArrayToProcess=p=>{const T=e.inputArrayToProcess[p],h=e.inputData[p];return T&&h?h[`get${T.fieldAssociation}`]().getArray(T.arrayName):null},t.setInputArrayToProcess=function(p,T,h){let d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"Scalars";for(;e.inputArrayToProcess.lengthl.apply(t,arguments),1-g);else if(l.apply(t,arguments)===mi)break}}}t[`invoke${Le(n)}`]=u,t[`on${Le(n)}`]=function(c){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!c.apply)return console.error(`Invalid callback for event ${n}`),null;if(e.deleted)return ce("instance deleted - cannot call any method"),null;const l=s++;return r.push([l,c,f]),r.sort((g,p)=>p[2]-g[2]),o(l)},t.delete=()=>{a(),r.forEach(c=>{let[f]=c;return i(f)})}}function Ee(t,e){const n=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const a={},s={};return t(s,a,r),Object.freeze(s)};return e&&Bt.register(e,n),n}function ku(){for(var t=arguments.length,e=new Array(t),n=0;n!!i).map(i=>i(...a))}}function Li(t){return t&&t.isA&&t.isA("vtkObject")}function Aa(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];if(Li(t)){if(r.indexOf(t)>=0)return n;r.push(t);const a=e(t);a!==void 0&&n.push(a);const s=t.get();Object.keys(s).forEach(i=>{const o=s[i];Array.isArray(o)?o.forEach(u=>{Aa(u,e,n,r)}):Aa(o,e,n,r)})}return n}function Fu(t,e,n){var r=this;let a;const s=function(){for(var i=arguments.length,o=new Array(i),u=0;u{a=null,n||t.apply(c,o)},l=n&&!a;clearTimeout(a),a=setTimeout(f,e),l&&t.apply(c,o)};return s.cancel=()=>clearTimeout(a),s}function Uu(t,e){let n=!1,r=null;function a(){n=!1,r!==null&&(s(...r),r=null)}function s(){for(var i=arguments.length,o=new Array(i),u=0;u2&&arguments[2]!==void 0?arguments[2]:{};e.keystore=Object.assign(e.keystore||{},n),t.setKey=(r,a)=>{e.keystore[r]=a},t.getKey=r=>e.keystore[r],t.getAllKeys=()=>Object.keys(e.keystore),t.deleteKey=r=>delete e.keystore[r],t.clearKeystore=()=>t.getAllKeys().forEach(r=>delete e.keystore[r])}let Nd=1;const ta="__root__";function Nu(t,e){Bi(t,e);const n=t.delete;e.proxyId=`${Nd++}`,e.ui=JSON.parse(JSON.stringify(e.ui||[])),st(t,e,["proxyId","proxyGroup","proxyName"]),ze(t,e,["proxyManager"]);const r={},a={};function s(c,f){a[f]||(a[f]=[]);const l=a[f];for(let g=0;g{e.ui=JSON.parse(JSON.stringify(c||[])),Object.keys(r).forEach(f=>delete r[f]),Object.keys(a).forEach(f=>delete a[f]),s(e.ui,ta),t.modified()};function i(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ta;return a[c]}t.updateProxyProperty=(c,f)=>{const l=r[c];l?Object.assign(l,f):r[c]={...f}},t.activate=()=>{if(e.proxyManager){const c=`setActive${Le(t.getProxyGroup().slice(0,-1))}`;e.proxyManager[c]&&e.proxyManager[c](t)}},e.propertyLinkSubscribers={},t.registerPropertyLinkForGC=(c,f)=>{f in e.propertyLinkSubscribers||(e.propertyLinkSubscribers[f]=[]),e.propertyLinkSubscribers[f].push(c)},t.gcPropertyLinks=c=>{const f=e.propertyLinkSubscribers[c]||[];for(;f.length;)f.pop().unbind(t)},e.propertyLinkMap={},t.getPropertyLink=function(c){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.propertyLinkMap[c])return e.propertyLinkMap[c];let l=null;const g=[];let p=0,T=!1;function h(v){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(T)return null;const S=[];let R=null;for(p=g.length;p--;){const m=g[p];m.instance===v?R=m:S.push(m)}if(!R)return null;const M=R.instance[`get${Le(R.propertyName)}`]();if(!Bd(M,l)||w){for(l=M,T=!0;S.length;){const m=S.pop();m.instance.set({[m.propertyName]:l})}T=!1}return e.propertyLinkMap[c].persistent&&(e.propertyLinkMap[c].value=M),M}function d(v,w){const S=[];for(p=g.length;p--;){const R=g[p];R.instance===v&&(R.propertyName===w||w===void 0)&&(R.subscription.unsubscribe(),S.push(p))}for(;S.length;)g.splice(S.pop(),1)}function x(v,w){let S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const R=v.onModified(h),M=g[0];return g.push({instance:v,propertyName:w,subscription:R}),S&&(e.propertyLinkMap[c].persistent&&e.propertyLinkMap[c].value!==void 0?v.set({[w]:e.propertyLinkMap[c].value}):M&&h(M.instance,!0)),{unsubscribe:()=>d(v,w)}}function C(){for(;g.length;)g.pop().subscription.unsubscribe()}const y={bind:x,unbind:d,unsubscribe:C,persistent:f};return e.propertyLinkMap[c]=y,y};function o(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ta;const f=[],l=e.proxyId,g=i(c)||[];for(let p=0;po().map(c=>c.name),t.getPropertyByName=c=>o().find(f=>f.name===c),t.getPropertyDomainByName=c=>(r[c]||{}).domain,t.getProxySection=()=>({id:e.proxyId,name:e.proxyGroup,ui:e.ui,properties:o()}),t.delete=()=>{const c=Object.keys(e.propertyLinkMap);let f=c.length;for(;f--;)e.propertyLinkMap[c[f]].unsubscribe();Object.keys(e.propertyLinkSubscribers).forEach(t.gcPropertyLinks),n()},t.getState=()=>null;function u(){if(e.links)for(let c=0;c{for(;a.length;)a.pop().unsubscribe();r()}}function Gu(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};e.this=t;function a(o){const u=Object.keys(o);let c=u.length;for(;c--;){const f=u[c];e[f].set(o[f])}}const s=Object.keys(r);let i=s.length;for(;i--;){const o=s[i];e[o]=r[o];const u=n[o];t[`set${Le(o)}`]=c=>{if(c!==e[o]){e[o]=c;const f=u[c];a(f),t.modified()}}}s.length&&st(t,e,s)}const No=10,bo=40,Go=800;function $u(t){let e=0,n=0,r=0,a=0;return"detail"in t&&(n=t.detail),"wheelDelta"in t&&(n=-t.wheelDelta/120),"wheelDeltaY"in t&&(n=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=n,n=0),r=e*No,a=n*No,"deltaY"in t&&(a=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||a)&&t.deltaMode&&(t.deltaMode===1?(r*=bo,a*=bo):(r*=Go,a*=Go)),r&&!e&&(e=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:e,spinY:n||e,pixelX:r,pixelY:a||r}}var E={algo:Lu,capitalize:is,chain:ku,debounce:Fu,enumToString:kd,event:Bu,EVENT_ABORT:mi,formatBytesToProperUnit:Ou,formatNumbersWithThousandSeparator:Du,get:st,getArray:xr,getCurrentGlobalMTime:Vd,getStateArrayMapFunc:Vu,isVtkObject:Li,keystore:Bi,measurePromiseExecution:mu,moveToProtected:Yr,newInstance:Ee,newTypedArray:Tr,newTypedArrayFrom:Oi,normalizeWheel:$u,obj:Pe,proxy:Nu,proxyPropertyMapping:bu,proxyPropertyState:Gu,safeArrays:Mu,set:Ir,setArray:Mi,setGet:ze,setGetArray:Vi,setImmediate:Di,setLoggerFunction:Cu,throttle:Uu,traverseInstanceTree:Aa,TYPED_ARRAYS:Qe,uncapitalize:Ru,VOID:xu,vtkDebugMacro:za,vtkErrorMacro:ce,vtkInfoMacro:Eu,vtkLogMacro:wu,vtkOnceErrorMacro:_u,vtkWarningMacro:Ri},Pt=Object.freeze({__proto__:null,VOID:xu,setLoggerFunction:Cu,vtkLogMacro:wu,vtkInfoMacro:Eu,vtkDebugMacro:za,vtkErrorMacro:ce,vtkWarningMacro:Ri,vtkOnceErrorMacro:_u,TYPED_ARRAYS:Qe,newTypedArray:Tr,newTypedArrayFrom:Oi,capitalize:is,_capitalize:Le,uncapitalize:Ru,formatBytesToProperUnit:Ou,formatNumbersWithThousandSeparator:Du,setImmediateVTK:Di,measurePromiseExecution:mu,obj:Pe,get:st,set:Ir,setGet:ze,getArray:xr,setArray:Mi,setGetArray:Vi,moveToProtected:Yr,algo:Lu,EVENT_ABORT:mi,event:Bu,newInstance:Ee,chain:ku,isVtkObject:Li,traverseInstanceTree:Aa,debounce:Fu,throttle:Uu,keystore:Bi,proxy:Nu,proxyPropertyMapping:bu,proxyPropertyState:Gu,normalizeWheel:$u,default:E});const $e=t=>(Kr("data-v-70823765"),t=t(),Pr(),t),bd={class:"l_Dialog bbb"},Gd={class:"common-layout",style:{margin:"0"}},$d={class:"demo-collapse"},Wd={class:"asides_content"},zd={class:"jc_content tablecolor"},Ad={class:"jc_padding"},Hd={class:"xian btncolor tablefocus"},jd={class:"asdis_btn"},Kd=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),Pd=[Kd],Xd=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"修改")],-1)),Id=[Xd],Yd=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),qd=[Yd],Qd={class:"xian tablefocus",style:{"margin-top":"20px"}},Zd={class:"header_l header_z"},Jd=$e(()=>_("h4",{class:"tianjia"}," 灾害源表",-1)),e1={class:"asdis_btn"},t1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),n1=[t1],r1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"}," 修改")],-1)),a1=[r1],s1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),i1=[s1],o1={class:"flex_a"},c1=$e(()=>_("span",{class:"spantext"},"确定",-1)),u1=[c1],f1=$e(()=>_("div",{style:{height:"200px"}},null,-1)),l1={class:"common-layout",style:{margin:"0"}},g1={class:"demo-collapse"},p1={class:"asides_content"},h1={class:"jc_content tablecolor"},d1={class:"jc_padding"},v1={class:"xian btncolor tablefocus"},y1={class:"asdis_btn"},T1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),x1=[T1],S1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"修改")],-1)),C1=[S1],w1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),E1=[w1],_1=$e(()=>_("div",{class:"flex_a"},[_("div",{class:"btns"},[_("span",{class:"spantext"},"确定")])],-1)),R1={class:"xian tablefocus",style:{"margin-top":"20px"}},O1={class:"header_l header_z"},D1=$e(()=>_("h4",{class:"tianjia"},"灾害源表",-1)),M1={class:"asdis_btn"},V1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),m1=[V1],L1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"}," 修改")],-1)),B1=[L1],k1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),F1=[k1],U1=$e(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"确定")],-1)),N1=[U1],b1=$e(()=>_("div",{style:{height:"200px"}},null,-1)),G1={class:"my-header"},$1=["id"],W1={class:"demo-input-suffix firsttitle magintop"},z1={class:"btn2"},A1={class:"input"},H1={class:"dialog-footer footer_div l_btn"},j1={class:"footerbtn flex1"},K1={class:"borderimg"},P1={class:"footerbtn flex1"},X1={class:"borderimg"},I1={class:"my-header"},Y1=["id"],q1={class:"demo-input-suffix firsttitle leftbgimg2"},Q1={class:"guand_1"},Z1=$e(()=>_("span",{class:"spantext"},"搜索",-1)),J1=[Z1],ev={class:"demo-pagination-block",style:{"margin-top":"20px"}},tv={class:"dialog-footer footer_div l_btn"},nv={class:"footerbtn flex1"},rv={class:"borderimg"},av={class:"footerbtn flex1"},sv={class:"borderimg"},iv={class:"my-header"},ov=["id"],cv={class:"dialog-footer footer_div l_btn"},uv={class:"footerbtn flex1"},fv={class:"borderimg"},lv={class:"footerbtn flex1"},gv={class:"borderimg"},pv={class:"my-header"},hv=["id"],dv={class:"dialog-footer footer_div l_btn"},vv={class:"footerbtn flex1"},yv={class:"borderimg"},Tv={class:"footerbtn flex1"},xv={class:"borderimg"},Sv={class:"my-header"},Cv=["id"],wv={class:"delecttitle"},Ev={class:"spanclad"},_v={class:"dialog-footer footer_div l_btn"},Rv={class:"footerbtn flex1"},Ov={class:"borderimg"},Dv={class:"footerbtn flex1"},Mv={class:"borderimg"},Vv={__name:"InfoDisaster",props:{classradio:{type:String},aid:{type:String}},setup(t,{expose:e}){const n=t;let r=$({addEied:""}),a=$("");const s=$({adddialog:!1,dialogsgdelect:!1,dianadddialog:!1,dialogVisiblenode:!1,isDisasterfire:!1,isDisasterwter:!1,adddwater:!1});let i=$("");const o=$(1),u=$(5),c=$([]),f=$([]);$(!0);const l=$({collfire:!1,collwater:!1});let g=$({}),p=$(""),T=$(""),h=$(""),d=$(""),x=$(1),C=$("0");$();let y=$(300);const v=$(),w=$([]),S=$(77),R=$(120);let M=iu({pname:"",site:.1}),m=$({svid:0,timeline:"",val1:"",val2:"",val3:"",val4:""}),O=$({});const V=$([]);let B=$(),b=$(),U=$(["1","2"]),Y=$("");const q=({row:ee,rowIndex:N})=>N%2!=0?"evenRow":"oddRow";$([]);const Z=$([]),re=$([]),G=()=>{console.log(n.classradio),n.classradio=="Fire"?l.value.collfire=!0:n.classradio=="Water"&&(l.value.collwater=!0)},k=ee=>{B.value=ee;const N={transCode:"D00005",aid:B.value};me(N).then(Ze=>{n.classradio=="Fire"?Z.value=Ze.rows:c.value=Ze.rows}).catch(Ze=>{ye.error(Ze.returnMsg)})},j=()=>{const ee={transCode:"D00004",pid:p.value,aid:B.value,stype:n.classradio,site:M.site};me(ee).then(N=>{ye({message:N.returnMsg,type:"success"}),k(B.value)}).catch(N=>{ye.error(N.returnMsg)})},K=()=>{C.value=="1"?(j(),s.value.dianadddialog=!1):C.value=="2"?n.classradio=="Fire"&&(s.value.dianadddialog=!1):(C.value="3")&&Fe(),k(B.value)},P=ee=>{console.log(ee),O.value=ee,h.value=ee.sid,Y.value=ee.pname},A=ee=>{b.value=ee},Ce=()=>{b.value=="1"?we():vs()},we=()=>{const ee={transCode:"D000011",sid:h.value};console.log(ee),me(ee).then(N=>{ye({message:"删除成功",type:"success"}),k(B.value)}).catch(N=>{ye.error(N.returnMsg)})};function De(){Xt(d.value)}function ne(ee){}const Q=ee=>{Xt(d.value)},ue=()=>{i.value="",p.value="",M.site=0,ue.value="1",C.value="1",a.value="添加"},de=()=>{C.value="3",a.value="修改",JSON.stringify(O.value)=="{}"?ye.error("你还没有选中修改的项目"):(s.value.dianadddialog=!0,B.value=O.value.aid,p.value=O.value.pid,M.site=O.value.site,i.value=O.value.pname)},Fe=()=>{const ee={transCode:"D000010",pid:p.value,site:M.site,sid:O.value.sid};me(ee).then(N=>{ye({message:N.returnMsg,type:"success"})}).catch(N=>{})},Ue=()=>{Xt("")},sn=()=>{Ut()},Ut=()=>{i.value="",o.value=1,console.log(),w.value.length!=0&&(p.value=w.value[0].id,i.value=w.value[0].name)},on=(ee,N)=>{if(ee.length>1){v.value.clearSelection(),v.value.toggleRowSelection(N,!0),w.value=ee[1];return}ee.length==1?w.value=ee:ee.length==0},Xt=ee=>{const N={transCode:"D00001",count:u.value,page:o.value,searchtag:ee};me(N).then(Ze=>{V.value=Ze.rows,x.value=Ze.total}).catch(Ze=>{})},I=(ee,N)=>{s.value.isDisasterfire=!0,h.value=N.sid,Nt()},Tt=(ee,N)=>{s.value.disDisasterwter=!0,h.value=N.sid,Nt()},Nt=()=>{const ee={transCode:"D00007",sid:h.value};me(ee).then(N=>{console.log(N.rows),n.classradio=="Fire"?f.value=N.rows:re.value=N.rows}).catch(N=>{})},Xn=()=>{if(r.value.addEied=="a"){const ee={transCode:"D00006",sid:h.value,timeline:m.value.timeline,val1:m.value.val1,val2:m.value.val2,val3:m.value.val3,val4:m.value.val4};me(ee).then(N=>{ye({message:N.returnMsg,type:"success"}),Nt()}).catch(N=>{ye.error(N.returnMsg)})}else W()},Ne=()=>{r.value.addEied="a",m.value.timeline="",m.value.val1="",m.value.val2="",m.value.val3="",m.value.val4="",a.value="添加"},te=()=>{r.value.addEied="x",a.value="修改",JSON.stringify(g.value)=="{}"?ye.error("你还没有选中修改的项目"):(n.classradio=="Fire"?s.value.adddialog=!0:s.value.adddwater=!0,m.value.timeline=g.value.timeline,m.value.val1=g.value.val1,m.value.val2=g.value.val2,m.value.val3=g.value.val3,m.value.val4=g.value.val4)},W=()=>{const ee={transCode:"D000012",svid:g.value.svid,timeline:m.value.timeline,val1:m.value.val1,val2:m.value.val2,val3:m.value.val3,val4:m.value.val4};me(ee).then(N=>{ye({message:N.returnMsg,type:"success"}),Nt()}).catch(N=>{ye.error(N.returnMsg)})},lt=ee=>{console.log(ee),g.value=ee,h.value=ee.sid,Y.value="检测表的一条信息",T.value=ee.svid},gt=ee=>{console.log(ee),g.value=ee,h.value=ee.sid,Y.value="检测表的一条信息",T.value=ee.svid},vs=()=>{const ee={transCode:"D000013",svid:T.value};me(ee).then(N=>{ye({message:"删除成功",type:"success"}),Nt()}).catch(N=>{ye.error(N.returnMsg)})};return An(()=>{}),e({sour:l,accident3:G,handledisaster:k}),(ee,N)=>{const Ze=J("el-icon"),oe=J("el-table-column"),cn=J("el-table"),it=J("el-image"),Jr=J("el-collapse-item"),_r=J("el-collapse"),Rr=J("el-aside"),xt=J("el-input"),pt=J("el-form-item"),ea=J("el-input-number"),ys=J("el-pagination"),X=J("el-form");return Ye(),Ot("div",bd,[ft(_("div",Gd,[D(Rr,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:F(()=>[_("div",$d,[D(_r,{modelValue:L(U),"onUpdate:modelValue":N[10]||(N[10]=H=>Lt(U)?U.value=H:U=H),accordion:""},{default:F(()=>[D(Jr,{name:"1"},{title:F(()=>[D(Ze,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),D(Ze,{class:"header-icon"})]),default:F(()=>[_("div",Wd,[_("div",zd,[_("div",Ad,[_("div",Hd,[D(cn,{data:Z.value,style:{width:"100%"},onRowClick:N[0]||(N[0]=H=>P(H)),"row-class-name":q,"max-height":"350px","header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"highlight-current-row":!0},{default:F(()=>[D(oe,{prop:"pname",label:"选择巷道",width:"130"}),D(oe,{prop:"site",label:"位置",width:"70"}),D(oe,{label:"操作",width:"100"},{default:F(H=>[D(L(Te),{size:"small",type:"success",onClick:So(St=>I(H.$index,H.row),["stop"])},{default:F(()=>[ae("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style"]),_("div",jd,[_("div",{class:"flex_a",onClick:N[1]||(N[1]=H=>{ue(),s.value.dianadddialog=!0})},Pd),_("div",{class:"flex_a",onClick:N[2]||(N[2]=H=>{de()})},Id),_("div",{class:"flex_a",onClick:N[3]||(N[3]=H=>{A("1"),s.value.dialogsgdelect=!0})},qd)])]),ft(_("div",Qd,[_("div",Zd,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),Jd,_("div",{class:"closeimg",onClick:N[4]||(N[4]=H=>s.value.isDisasterfire=!1)},[D(it,{src:L(Qs),fit:"contain"},null,8,["src"])])]),D(cn,{data:f.value,style:{width:"100%"},"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"max-height":L(y),onRowClick:N[5]||(N[5]=H=>lt(H)),"highlight-current-row":!0},{default:F(()=>[D(oe,{prop:"timeline",label:"时间",width:"70"}),D(oe,{prop:"val1",label:"温度℃",width:"70"}),D(oe,{prop:"val2",label:"污染物1浓度",width:"100"}),D(oe,{prop:"val2",label:"污染物2浓度",width:"100"})]),_:1},8,["data","header-cell-style","max-height"]),_("div",e1,[_("div",{class:"flex_a",onClick:N[6]||(N[6]=H=>{Ne(),s.value.adddialog=!0})},n1),_("div",{class:"flex_a",onClick:N[7]||(N[7]=H=>{te()})},a1),_("div",{class:"flex_a",onClick:N[8]||(N[8]=H=>{A("2"),s.value.dialogsgdelect=!0})},i1),_("div",o1,[_("div",{class:"btns",onClick:N[9]||(N[9]=H=>s.value.isDisasterfire=!1)},u1)])])],512),[[yt,s.value.isDisasterfire]])]),f1])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[yt,l.value.collfire]]),ft(_("div",l1,[D(Rr,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:F(()=>[_("div",g1,[D(_r,{modelValue:L(U),"onUpdate:modelValue":N[21]||(N[21]=H=>Lt(U)?U.value=H:U=H),accordion:""},{default:F(()=>[D(Jr,{name:"1"},{title:F(()=>[D(Ze,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),D(Ze,{class:"header-icon"})]),default:F(()=>[_("div",p1,[_("div",h1,[_("div",d1,[_("div",v1,[D(cn,{data:c.value,style:{width:"100%"},"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:N[11]||(N[11]=H=>P(H)),"max-height":"350px","highlight-current-row":!0},{default:F(()=>[D(oe,{prop:"pname",label:"选择巷道",width:"130"}),D(oe,{prop:"site",label:"位置",width:"70"}),D(oe,{label:"操作",width:"100"},{default:F(H=>[D(L(Te),{size:"small",type:"success",onClick:So(St=>Tt(H.$index,H.row),["stop"])},{default:F(()=>[ae("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style"]),_("div",y1,[_("div",{class:"flex_a",onClick:N[12]||(N[12]=H=>{ue(),s.value.dianadddialog=!0})},x1),_("div",{class:"flex_a",onClick:N[13]||(N[13]=H=>{de()})},C1),_("div",{class:"flex_a",onClick:N[14]||(N[14]=H=>{A("1"),s.value.dialogsgdelect=!0})},E1),_1])]),ft(_("div",R1,[_("div",O1,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),D1,_("div",{class:"closeimg",onClick:N[15]||(N[15]=H=>s.value.disDisasterwter=!1)},[D(it,{src:L(Qs),fit:"contain"},null,8,["src"])])]),D(cn,{data:re.value,style:{width:"100%"},"max-height":L(y),"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:N[16]||(N[16]=H=>gt(H)),"highlight-current-row":!0},{default:F(()=>[D(oe,{prop:"timeline",label:"时间"}),D(oe,{prop:"val1",label:"突水量(m³/s)"})]),_:1},8,["data","max-height","header-cell-style"]),_("div",M1,[_("div",{class:"flex_a",onClick:N[17]||(N[17]=H=>{Ne(),s.value.adddwater=!0})},m1),_("div",{class:"flex_a",onClick:N[18]||(N[18]=H=>{te()})},B1),_("div",{class:"flex_a",onClick:N[19]||(N[19]=H=>{A("2"),s.value.dialogsgdelect=!0})},F1),_("div",{class:"flex_a",onClick:N[20]||(N[20]=H=>s.value.disDisasterwter=!1)},N1)])],512),[[yt,s.value.disDisasterwter]])]),b1])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[yt,l.value.collwater]]),D(L(Mt),{modelValue:s.value.dianadddialog,"onUpdate:modelValue":N[27]||(N[27]=H=>s.value.dianadddialog=H),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:H,titleClass:St})=>[_("div",G1,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:H,class:Dt(St)},kt(L(a)),11,$1)])]),default:F(()=>[_("div",W1,[D(pt,{label:"管道名称","label-width":S.value},{default:F(()=>[D(xt,{modelValue:L(i),"onUpdate:modelValue":N[22]||(N[22]=H=>Lt(i)?i.value=H:i=H),class:"w-50 m-2",placeholder:"管道名称","prefix-icon":L(Co)},null,8,["modelValue","prefix-icon"])]),_:1},8,["label-width"]),_("div",z1,[D(L(Te),{type:"primary",onClick:N[23]||(N[23]=H=>{Ue(),s.value.dialogVisiblenode=!0})},{default:F(()=>[ae("选择管道")]),_:1})])]),_("div",A1,[D(pt,{label:"位置","label-width":S.value},{default:F(()=>[D(ea,{modelValue:L(M).site,"onUpdate:modelValue":N[24]||(N[24]=H=>L(M).site=H),min:0,max:1,precision:2,step:.1,"controls-position":"right",class:"w-50 m-2",placeholder:"位置"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_("div",H1,[_("div",j1,[_("div",K1,[D(L(Te),{onClick:N[25]||(N[25]=H=>s.value.dianadddialog=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",P1,[_("div",X1,[D(L(Te),{onClick:N[26]||(N[26]=H=>{K(),s.value.dianadddialog=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:s.value.dialogVisiblenode,"onUpdate:modelValue":N[33]||(N[33]=H=>s.value.dialogVisiblenode=H),width:"50%",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:F(({titleId:H,titleClass:St})=>[_("div",I1,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:H,class:Dt(St)}," 选择管道",10,Y1)])]),default:F(()=>[_("div",q1,[_("div",Q1,[D(pt,{label:"节点选择","label-width":S.value},{default:F(()=>[D(xt,{modelValue:L(d),"onUpdate:modelValue":N[28]||(N[28]=H=>Lt(d)?d.value=H:d=H),class:"w-50 m-2",placeholder:"管道名称","prefix-icon":L(Co)},null,8,["modelValue","prefix-icon"])]),_:1},8,["label-width"]),_("div",{class:"asdis_btn"},[_("div",{class:"flex_a"},[_("div",{class:"btns",onClick:De},J1)])])]),D(cn,{"row-class-name":q,"max-height":L(y),ref_key:"multipleTableRef",ref:v,data:V.value,style:{width:"100%"},onSelect:on,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:F(()=>[D(oe,{type:"selection",width:"55"}),D(oe,{property:"snId",label:"开始节点"}),D(oe,{property:"enId",label:"结束节点"}),D(oe,{property:"id",label:"编号",width:"70"}),D(oe,{property:"name",label:"名称",width:"70"}),D(oe,{property:"sectionType",label:"截面类型",width:"120"}),D(oe,{property:"roughCoe",label:"粗糙系数"}),D(oe,{property:"sectionPara1",label:"截面参数1",width:"90"}),D(oe,{property:"sectionPara2",label:"截面参数2",width:"90"}),D(oe,{property:"sectionPara3",label:"截面参数3",width:"90"}),D(oe,{property:"sectionPara4",label:"截面参数4",width:"90"}),D(oe,{property:"sectionPara5",label:"截面参数5",width:"90"})]),_:1},8,["max-height","data","header-cell-style"]),_("div",ev,[D(ys,{"current-page":o.value,"onUpdate:currentPage":N[29]||(N[29]=H=>o.value=H),"page-size":u.value,"onUpdate:pageSize":N[30]||(N[30]=H=>u.value=H),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(L(x)),class:"mt-4",onSizeChange:ne,onCurrentChange:Q},null,8,["current-page","page-size","total"])]),_("div",tv,[_("div",nv,[_("div",rv,[D(L(Te),{onClick:N[31]||(N[31]=H=>s.value.dialogVisiblenode=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",av,[_("div",sv,[D(L(Te),{onClick:N[32]||(N[32]=H=>{sn(),s.value.dialogVisiblenode=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:s.value.adddialog,"onUpdate:modelValue":N[40]||(N[40]=H=>s.value.adddialog=H),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:H,titleClass:St})=>[_("div",iv,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:H,class:Dt(St)},kt(L(a)),11,ov)])]),default:F(()=>[_("div",null,[D(X,null,{default:F(()=>[D(pt,{label:"时间","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).timeline,"onUpdate:modelValue":N[34]||(N[34]=H=>L(m).timeline=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(pt,{label:"温度℃","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).val1,"onUpdate:modelValue":N[35]||(N[35]=H=>L(m).val1=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(pt,{label:"污染物1浓度","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).val2,"onUpdate:modelValue":N[36]||(N[36]=H=>L(m).val2=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(pt,{label:"污染物2浓度","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).val3,"onUpdate:modelValue":N[37]||(N[37]=H=>L(m).val3=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),_("div",cv,[_("div",uv,[_("div",fv,[D(L(Te),{onClick:N[38]||(N[38]=H=>s.value.adddialog=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",lv,[_("div",gv,[D(L(Te),{onClick:N[39]||(N[39]=H=>{Xn(),s.value.adddialog=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:s.value.adddwater,"onUpdate:modelValue":N[45]||(N[45]=H=>s.value.adddwater=H),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:H,titleClass:St})=>[_("div",pv,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:H,class:Dt(St)},"添加",10,hv)])]),default:F(()=>[_("div",null,[D(X,null,{default:F(()=>[D(pt,{label:"时间","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).timeline,"onUpdate:modelValue":N[41]||(N[41]=H=>L(m).timeline=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(pt,{label:"突水量(m³/s)","label-width":R.value},{default:F(()=>[D(xt,{modelValue:L(m).val1,"onUpdate:modelValue":N[42]||(N[42]=H=>L(m).val1=H),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),_("div",dv,[_("div",vv,[_("div",yv,[D(L(Te),{onClick:N[43]||(N[43]=H=>s.value.adddwater=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",Tv,[_("div",xv,[D(L(Te),{onClick:N[44]||(N[44]=H=>{Xn(),s.value.adddwater=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:s.value.dialogsgdelect,"onUpdate:modelValue":N[48]||(N[48]=H=>s.value.dialogsgdelect=H),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:H,titleClass:St})=>[_("div",Sv,[D(it,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:H,class:Dt(St)},"删除框",10,Cv)])]),default:F(()=>[_("h4",wv,[ae(" 是否确认删除 "),_("span",Ev,kt(L(Y)),1)]),_("div",_v,[_("div",Rv,[_("div",Ov,[D(L(Te),{onClick:N[46]||(N[46]=H=>s.value.dialogsgdelect=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",Dv,[_("div",Mv,[D(L(Te),{onClick:N[47]||(N[47]=H=>{Ce(),s.value.dialogsgdelect=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])])}}},mv=yr(Vv,[["__scopeId","data-v-70823765"]]);const jn=t=>(Kr("data-v-cb0d93df"),t=t(),Pr(),t),Lv={class:"l_Dialog bou"},Bv={class:"common-layout",style:{margin:"0"}},kv={class:"demo-collapse"},Fv={class:"asides_content"},Uv={class:"jc_content tablecolor"},Nv={class:"jc_padding font12"},bv={class:"xian btncolor tablefocus bmar"},Gv={class:"asdis_btn"},$v={class:"flex_a"},Wv=jn(()=>_("span",{class:"spantext"},"添加",-1)),zv=[Wv],Av={class:"flex_a"},Hv=jn(()=>_("span",{class:"spantext"},"修改",-1)),jv=[Hv],Kv={class:"flex_a"},Pv=jn(()=>_("span",{class:"spantext"},"删除",-1)),Xv=[Pv],Iv={class:"common-layout",style:{margin:"0"}},Yv={class:"demo-collapse"},qv={class:"asides_content"},Qv={class:"jc_content tablecolor"},Zv={class:"jc_padding font12"},Jv={class:"xian btncolor tablefocus bmar"},ey={class:"asdis_btn padingcla"},ty={class:"flex_a"},ny=jn(()=>_("span",{class:"spantext"},"添加",-1)),ry=[ny],ay={class:"flex_a"},sy=jn(()=>_("span",{class:"spantext"},"修改",-1)),iy=[sy],oy={class:"flex_a"},cy=jn(()=>_("span",{class:"spantext"},"删除",-1)),uy=[cy],fy={class:"my-header"},ly=["id"],gy={class:"addye"},py={key:0,class:"fireclass"},hy={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},dy={class:"demo-input-suffix firsttitle magintop"},vy={class:"btn2"},yy={key:1,class:"Waterclass"},Ty={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},xy={class:"demo-input-suffix firsttitle magintop"},Sy={class:"btn2"},Cy={class:"dialog-footer footer_div l_btn"},wy={class:"footerbtn flex1"},Ey={class:"borderimg"},_y={class:"footerbtn flex1"},Ry={class:"borderimg"},Oy={class:"my-header"},Dy=["id"],My={class:"demo-input-suffix firsttitle leftbgimg2"},Vy={class:"guand_1"},my=jn(()=>_("span",{class:"spantext"},"搜索",-1)),Ly=[my],By={class:"demo-pagination-block",style:{"margin-top":"20px"}},ky={class:"dialog-footer footer_div l_btn"},Fy={class:"footerbtn flex1"},Uy={class:"borderimg"},Ny={class:"footerbtn flex1"},by={class:"borderimg"},Gy={class:"my-header"},$y=["id"],Wy={class:"delecttitle"},zy={class:"spanclad"},Ay={class:"dialog-footer footer_div l_btn"},Hy={class:"footerbtn flex1"},jy={class:"borderimg"},Ky={class:"footerbtn flex1"},Py={class:"borderimg"},Xy={__name:"InfoBoundary",props:{classradio:String},setup(t,{expose:e}){const n=t;let r=$({dialogVisiblenode:!1,dialogsgdelect:!1}),a=$("");iu({id:0,name:"灾情演化",value:".vtk"});let s=$({}),i=$(""),o=$(400);const u=$(),c=$([]),f=$(77),l=$(120);let g=$([]),p=$(""),T=$(1);const h=$(1),d=$(5);let x=$(),C=$(),y=$(),v=$({nname:"",type:"Pressure",flow:"",pressure:"",temperature:"",polcon1:"",polcon2:"",user:"11",nodesel:"1",nodesselect:[{value:"1",label:"1"},{value:"2",label:"2"}],region:"massflow",options:[{value:"massflow",label:"流量边界"},{value:"Pressure",label:" 压力边界"}],region:"边界出口",options2:[{value:"边界出口"}]}),w=$(["1","2"]);const S=$([]);$("");const R=$({dialogVisible:!1}),M=$({collfire:!1,collwater:!1}),m=()=>{B("")};function O(){B(p.value)}const V=P=>{B(p.value)},B=P=>{const A={transCode:"D00000",count:d.value,page:h.value,searchtag:P};me(A).then(Ce=>{g.value=Ce.rows,T.value=Ce.total}).catch(Ce=>{ye.error(Ce.returnMsg)})},b=()=>{r.value.dialogVisiblenode=!1,v.value.nname="",h.value=1,console.log(),c.value.length!=0?(x.value=c.value[0].id,v.value.nname=c.value[0].name):v.value.nname=""},U=(P,A)=>{if(P.length>1){u.value.clearSelection(),u.value.toggleRowSelection(A,!0),c.value=P[1];return}P.length==1?c.value=P:P.length==0},Y=()=>{C.value="",v.value.nname="",v.value.type="Pressure",v.value.flow="",v.value.pressure="",v.value.temperature="",v.value.polcon1="",v.value.polcon2="",a.value="添加",n.classradio=="Fire"?v.value.type="Pressure":n.classradio=="Water"&&(v.value.type="边界出口")},q=()=>{a.value="修改",JSON.stringify(s.value)=="{}"?ye.error("你还没有选中修改的项目"):(n.classradio=="Fire"?v.value.type="Pressure":n.classradio=="Water"&&(v.value.type="边界出口"),console.log(s.value),C.value=s.value.bid,x.value=s.value.nid,y.value=s.value.aid,R.value.dialogVisible=!0,v.value.nname=s.value.nname,v.value.type=s.value.type,v.value.flow=s.value.flow,v.value.pressure=s.value.pressure,v.value.temperature=s.value.temperature,v.value.polcon1=s.value.polcon1,v.value.polcon2=s.value.polcon2)},Z=()=>{const P={transCode:"D10008",bid:C.value,nid:x.value,nname:v.value.nname,type:v.value.type,aid:y.value,flow:v.value.flow,pressure:v.value.pressure,temperature:v.value.temperature,polcon1:v.value.polcon1,polcon2:v.value.polcon2};me(P).then(A=>{re(y.value)}).catch(A=>{ye.error(A.returnMsg)})},re=P=>{y.value=P;const A={transCode:"D10007",aid:y.value};me(A).then(Ce=>{S.value=Ce.rows}).catch(Ce=>{ye.error(Ce.returnMsg)})},G=P=>{console.log(P),s.value=P,C.value=P.bid,i.value=P.nname},k=()=>{const P={transCode:"D10009",bid:C.value};console.log(P),me(P).then(A=>{ye({message:"删除成功",type:"success"}),re(y.value)}).catch(A=>{ye.error(A.returnMsg)})},j=({row:P,rowIndex:A})=>A%2!=0?"evenRow":"oddRow",K=P=>{P=="2"?n.classradio=="Fire"?M.value.collfire=!0:n.classradio=="Water"&&(M.value.collwater=!0):(M.value.collfire=!1,M.value.collwater=!1)};return An(()=>{}),e({boun:M,accident4:K,addboundary:re}),(P,A)=>{const Ce=J("el-icon"),we=J("el-table-column"),De=J("el-table"),ne=J("el-collapse-item"),Q=J("el-collapse"),ue=J("el-aside"),de=J("el-image"),Fe=J("el-input"),Ue=J("el-form-item"),sn=J("el-option"),Ut=J("el-select"),on=J("el-form"),Xt=J("el-pagination");return Ye(),Ot("div",Lv,[_("div",Bv,[ft(D(ue,{width:"591px",class:"L_aside L_aside1 asideg asidegbg leftbgimg2"},{default:F(()=>[_("div",kv,[D(Q,{modelValue:L(w),"onUpdate:modelValue":A[4]||(A[4]=I=>Lt(w)?w.value=I:w=I),accordion:""},{default:F(()=>[D(ne,{name:"1"},{title:F(()=>[D(Ce,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),D(Ce,{class:"header-icon"})]),default:F(()=>[_("div",Fv,[_("div",Uv,[_("div",Nv,[_("div",bv,[D(De,{data:S.value,style:{width:"100%"},"max-height":L(o),"highlight-current-row":!0,"row-class-name":j,onRowClick:A[0]||(A[0]=I=>G(I)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:F(()=>[D(we,{prop:"nid",label:"节点选择"}),D(we,{prop:"type",label:"边界类型"}),D(we,{prop:"flow",label:"流量(m³/s)",width:"80"}),D(we,{prop:"pressure",label:"压强(pa)",width:"70"}),D(we,{prop:"temperature",label:"温度(℃)"}),D(we,{prop:"polcon1",label:"污染物1浓度",width:"95"}),D(we,{prop:"polcon2",label:"污染物2浓度",width:"95"})]),_:1},8,["data","max-height","header-cell-style"]),_("div",Gv,[_("div",$v,[_("div",{class:"btns",onClick:A[1]||(A[1]=I=>{Y(),R.value.dialogVisible=!0})},zv)]),_("div",Av,[_("div",{class:"btns",onClick:A[2]||(A[2]=I=>{q()})},jv)]),_("div",Kv,[_("div",{class:"btns",onClick:A[3]||(A[3]=I=>L(r).dialogsgdelect=!0)},Xv)])])])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[yt,M.value.collfire]])]),_("div",Iv,[ft(D(ue,{width:"231px",class:"L_aside L_aside1 asideg asidegbg leftbgimg0"},{default:F(()=>[_("div",Yv,[D(Q,{modelValue:L(w),"onUpdate:modelValue":A[9]||(A[9]=I=>Lt(w)?w.value=I:w=I),accordion:""},{default:F(()=>[D(ne,{name:"2"},{title:F(()=>[D(Ce,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),D(Ce,{class:"header-icon"})]),default:F(()=>[_("div",qv,[_("div",Qv,[_("div",Zv,[_("div",Jv,[D(De,{data:S.value,style:{width:"100%"},"max-height":L(o),"highlight-current-row":!0,"row-class-name":j,onRowClick:A[5]||(A[5]=I=>G(I)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:F(()=>[D(we,{prop:"nid",label:"节点选择"}),D(we,{prop:"type",label:"边界类型"})]),_:1},8,["data","max-height","header-cell-style"])])]),_("div",ey,[_("div",ty,[_("div",{class:"btns",onClick:A[6]||(A[6]=I=>{Y(),R.value.dialogVisible=!0})},ry)]),_("div",ay,[_("div",{class:"btns",onClick:A[7]||(A[7]=I=>{q()})},iy)]),_("div",oy,[_("div",{class:"btns",onClick:A[8]||(A[8]=I=>L(r).dialogsgdelect=!0)},uy)])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[yt,M.value.collwater]])]),D(L(Mt),{modelValue:R.value.dialogVisible,"onUpdate:modelValue":A[29]||(A[29]=I=>R.value.dialogVisible=I),width:"482",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor foter_l"},{header:F(({titleId:I,titleClass:Tt})=>[_("div",fy,[D(de,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:Dt(Tt)},kt(L(a)),11,ly)])]),default:F(()=>[_("div",gy,[n.classradio=="Fire"?(Ye(),Ot("div",py,[D(on,{class:"demo-form-inline",inline:!0,model:L(v)},{default:F(()=>[_("div",hy,[_("div",dy,[D(Ue,{label:"节点名称","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).nname,"onUpdate:modelValue":A[10]||(A[10]=I=>L(v).nname=I),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",vy,[D(L(Te),{type:"primary",onClick:A[11]||(A[11]=I=>{m(),L(r).dialogVisiblenode=!0})},{default:F(()=>[ae("选择节点")]),_:1})])]),D(Ue,{label:"边界类型","label-width":l.value},{default:F(()=>[D(Ut,{modelValue:L(v).type,"onUpdate:modelValue":A[12]||(A[12]=I=>L(v).type=I),placeholder:"请选择"},{default:F(()=>[(Ye(!0),Ot(ba,null,Ga(L(v).options,I=>(Ye(),br(sn,{key:I.id,label:I.label,value:I.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"]),D(Ue,{label:"流量(m³/s)","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).flow,"onUpdate:modelValue":A[13]||(A[13]=I=>L(v).flow=I),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Ue,{label:"压强(pa)","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).pressure,"onUpdate:modelValue":A[14]||(A[14]=I=>L(v).pressure=I),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Ue,{label:"温度(℃)","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).temperature,"onUpdate:modelValue":A[15]||(A[15]=I=>L(v).temperature=I),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Ue,{label:"污染物1浓度","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).polcon1,"onUpdate:modelValue":A[16]||(A[16]=I=>L(v).polcon1=I),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Ue,{label:"污染物2浓度","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).polcon2,"onUpdate:modelValue":A[17]||(A[17]=I=>L(v).polcon2=I),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])):(Ye(),Ot("div",yy,[D(on,{class:"demo-form-inline",inline:!0,model:L(v)},{default:F(()=>[_("div",Ty,[_("div",xy,[D(Ue,{label:"节点名称","label-width":l.value},{default:F(()=>[D(Fe,{modelValue:L(v).nname,"onUpdate:modelValue":A[18]||(A[18]=I=>L(v).nname=I),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",Sy,[D(L(Te),{type:"primary",onClick:A[19]||(A[19]=I=>{m(),L(r).dialogVisiblenode=!0})},{default:F(()=>[ae("选择节点")]),_:1})])]),D(Ue,{label:"边界类型","label-width":l.value},{default:F(()=>[D(Ut,{modelValue:L(v).type,"onUpdate:modelValue":A[20]||(A[20]=I=>L(v).type=I),placeholder:"请选择"},{default:F(()=>[(Ye(!0),Ot(ba,null,Ga(L(v).options2,I=>(Ye(),br(sn,{key:I.id,label:I.label,value:I.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])),_("div",Cy,[_("div",wy,[_("div",Ey,[D(L(Te),{onClick:A[21]||(A[21]=I=>R.value.dialogVisible=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",_y,[_("div",Ry,[D(L(Te),{onClick:A[22]||(A[22]=I=>{Z(),R.value.dialogVisible=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),D(L(Mt),{modelValue:L(r).dialogVisiblenode,"onUpdate:modelValue":A[28]||(A[28]=I=>L(r).dialogVisiblenode=I),width:"50%",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:F(({titleId:I,titleClass:Tt})=>[_("div",Oy,[D(de,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:Dt(Tt)}," 选择节点",10,Dy)])]),default:F(()=>[_("div",My,[_("div",Vy,[D(Ue,{label:"节点选择","label-width":f.value},{default:F(()=>[D(Fe,{modelValue:L(p),"onUpdate:modelValue":A[23]||(A[23]=I=>Lt(p)?p.value=I:p=I),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",{class:"asdis_btn"},[_("div",{class:"flex_a"},[_("div",{class:"btns",onClick:O},Ly)])])]),ae(" > "),D(De,{"row-class-name":j,"max-height":L(o),ref_key:"multipleTableRef",ref:u,data:L(g),style:{width:"100%"},onSelect:U,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:F(()=>[D(we,{type:"selection",width:"55"}),D(we,{property:"id",label:"节点编号"}),D(we,{property:"name",label:"名称"}),D(we,{property:"ntype",label:"类型"}),D(we,{property:"x",label:"x"}),D(we,{property:"y",label:"y"}),D(we,{property:"z",label:"z"})]),_:1},8,["max-height","data","header-cell-style"]),_("div",By,[D(Xt,{"current-page":h.value,"onUpdate:currentPage":A[24]||(A[24]=I=>h.value=I),"page-size":d.value,"onUpdate:pageSize":A[25]||(A[25]=I=>d.value=I),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(L(T)),class:"mt-4",onCurrentChange:V},null,8,["current-page","page-size","total"])]),_("div",ky,[_("div",Fy,[_("div",Uy,[D(L(Te),{onClick:A[26]||(A[26]=I=>L(r).dialogVisiblenode=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",Ny,[_("div",by,[D(L(Te),{onClick:A[27]||(A[27]=I=>{b()})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),D(L(Mt),{modelValue:L(r).dialogsgdelect,"onUpdate:modelValue":A[32]||(A[32]=I=>L(r).dialogsgdelect=I),width:"400",class:"dialog_class bgcolor tianjia"},{header:F(({titleId:I,titleClass:Tt})=>[_("div",Gy,[D(de,{src:L(ot),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:Dt(Tt)},"删除框",10,$y)])]),default:F(()=>[_("h4",Wy,[ae(" 是否确认删除 "),_("span",zy,kt(L(i)),1)]),_("div",Ay,[_("div",Hy,[_("div",jy,[D(L(Te),{onClick:A[30]||(A[30]=I=>L(r).dialogsgdelect=!1)},{default:F(()=>[ae("取消")]),_:1})])]),_("div",Ky,[_("div",Py,[D(L(Te),{onClick:A[31]||(A[31]=I=>{k(),L(r).dialogsgdelect=!1})},{default:F(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])])}}},Iy=yr(Xy,[["__scopeId","data-v-cb0d93df"]]);function La(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Yy(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function Wu(t){let e,n,r;t.length!==2?(e=La,n=(o,u)=>La(t(o),u),r=(o,u)=>t(o)-u):(e=t===La||t===Yy?t:qy,n=t,r=t);function a(o,u,c=0,f=o.length){if(c>>1;n(o[l],u)<0?c=l+1:f=l}while(c>>1;n(o[l],u)<=0?c=l+1:f=l}while(cc&&r(o[l-1],u)>-r(o[l],u)?l-1:l}return{left:a,center:i,right:s}}function qy(){return 0}function Qy(t){return t===null?NaN:+t}const Zy=Wu(La),Jy=Zy.right;Wu(Qy).center;const eT=Jy,tT=Math.sqrt(50),nT=Math.sqrt(10),rT=Math.sqrt(2);function Ha(t,e,n){const r=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),i=s>=tT?10:s>=nT?5:s>=rT?2:1;let o,u,c;return a<0?(c=Math.pow(10,-a)/i,o=Math.round(t*c),u=Math.round(e*c),o/ce&&--u,c=-c):(c=Math.pow(10,a)*i,o=Math.round(t/c),u=Math.round(e/c),o*ce&&--u),u0))return[];if(t===e)return[t];const r=e=a))return[];const o=s-a+1,u=new Array(o);if(r)if(i<0)for(let c=0;c>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?na(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?na(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=cT.exec(t))?new ct(e[1],e[2],e[3],1):(e=uT.exec(t))?new ct(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=fT.exec(t))?na(e[1],e[2],e[3],e[4]):(e=lT.exec(t))?na(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=gT.exec(t))?Ko(e[1],e[2]/100,e[3]/100,1):(e=pT.exec(t))?Ko(e[1],e[2]/100,e[3]/100,e[4]):$o.hasOwnProperty(t)?Ao($o[t]):t==="transparent"?new ct(NaN,NaN,NaN,0):null}function Ao(t){return new ct(t>>16&255,t>>8&255,t&255,1)}function na(t,e,n,r){return r<=0&&(t=e=n=NaN),new ct(t,e,n,r)}function vT(t){return t instanceof qr||(t=Wr(t)),t?(t=t.rgb(),new ct(t.r,t.g,t.b,t.opacity)):new ct}function ni(t,e,n,r){return arguments.length===1?vT(t):new ct(t,e,n,r??1)}function ct(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}ki(ct,ni,zu(qr,{brighter(t){return t=t==null?ja:Math.pow(ja,t),new ct(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Gr:Math.pow(Gr,t),new ct(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ct($n(this.r),$n(this.g),$n(this.b),Ka(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ho,formatHex:Ho,formatHex8:yT,formatRgb:jo,toString:jo}));function Ho(){return`#${Nn(this.r)}${Nn(this.g)}${Nn(this.b)}`}function yT(){return`#${Nn(this.r)}${Nn(this.g)}${Nn(this.b)}${Nn((isNaN(this.opacity)?1:this.opacity)*255)}`}function jo(){const t=Ka(this.opacity);return`${t===1?"rgb(":"rgba("}${$n(this.r)}, ${$n(this.g)}, ${$n(this.b)}${t===1?")":`, ${t})`}`}function Ka(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function $n(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Nn(t){return t=$n(t),(t<16?"0":"")+t.toString(16)}function Ko(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Vt(t,e,n,r)}function Au(t){if(t instanceof Vt)return new Vt(t.h,t.s,t.l,t.opacity);if(t instanceof qr||(t=Wr(t)),!t)return new Vt;if(t instanceof Vt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),s=Math.max(e,n,r),i=NaN,o=s-a,u=(s+a)/2;return o?(e===s?i=(n-r)/o+(n0&&u<1?0:i,new Vt(i,o,u,t.opacity)}function TT(t,e,n,r){return arguments.length===1?Au(t):new Vt(t,e,n,r??1)}function Vt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}ki(Vt,TT,zu(qr,{brighter(t){return t=t==null?ja:Math.pow(ja,t),new Vt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Gr:Math.pow(Gr,t),new Vt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new ct(_s(t>=240?t-240:t+120,a,r),_s(t,a,r),_s(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new Vt(Po(this.h),ra(this.s),ra(this.l),Ka(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ka(this.opacity);return`${t===1?"hsl(":"hsla("}${Po(this.h)}, ${ra(this.s)*100}%, ${ra(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Po(t){return t=(t||0)%360,t<0?t+360:t}function ra(t){return Math.max(0,Math.min(1,t||0))}function _s(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Fi=t=>()=>t;function xT(t,e){return function(n){return t+n*e}}function ST(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function CT(t){return(t=+t)==1?Hu:function(e,n){return n-e?ST(e,n,t):Fi(isNaN(e)?n:e)}}function Hu(t,e){var n=e-t;return n?xT(t,n):Fi(isNaN(t)?e:t)}const Xo=function t(e){var n=CT(e);function r(a,s){var i=n((a=ni(a)).r,(s=ni(s)).r),o=n(a.g,s.g),u=n(a.b,s.b),c=Hu(a.opacity,s.opacity);return function(f){return a.r=i(f),a.g=o(f),a.b=u(f),a.opacity=c(f),a+""}}return r.gamma=t,r}(1);function wT(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;an&&(s=e.slice(n,s),o[i]?o[i]+=s:o[++i]=s),(r=r[0])===(a=a[0])?o[i]?o[i]+=a:o[++i]=a:(o[++i]=null,u.push({i,x:Pa(r,a)})),n=Rs.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function FT(t,e,n){var r=t[0],a=t[1],s=e[0],i=e[1];return a2?UT:FT,u=c=null,l}function l(g){return g==null||isNaN(g=+g)?s:(u||(u=o(t.map(r),e,n)))(r(i(g)))}return l.invert=function(g){return i(a((c||(c=o(e,t.map(r),Pa)))(g)))},l.domain=function(g){return arguments.length?(t=Array.from(g,BT),f()):t.slice()},l.range=function(g){return arguments.length?(e=Array.from(g),f()):e.slice()},l.rangeRound=function(g){return e=Array.from(g),n=mT,f()},l.clamp=function(g){return arguments.length?(i=g?!0:sr,f()):i!==sr},l.interpolate=function(g){return arguments.length?(n=g,f()):n},l.unknown=function(g){return arguments.length?(s=g,l):s},function(g,p){return r=g,a=p,f()}}function GT(){return bT()(sr,sr)}function $T(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Xa(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function lr(t){return t=Xa(Math.abs(t)),t?t[1]:NaN}function WT(t,e){return function(n,r){for(var a=n.length,s=[],i=0,o=t[0],u=0;a>0&&o>0&&(u+o+1>r&&(o=Math.max(1,r-u)),s.push(n.substring(a-=o,a+o)),!((u+=o+1)>r));)o=t[i=(i+1)%t.length];return s.reverse().join(e)}}function zT(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var AT=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ia(t){if(!(e=AT.exec(t)))throw new Error("invalid format: "+t);var e;return new Ni({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Ia.prototype=Ni.prototype;function Ni(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Ni.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function HT(t){e:for(var e=t.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var ju;function jT(t,e){var n=Xa(t,e);if(!n)return t+"";var r=n[0],a=n[1],s=a-(ju=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,i=r.length;return s===i?r:s>i?r+new Array(s-i+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Xa(t,Math.max(0,e+s-1))[0]}function Yo(t,e){var n=Xa(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const qo={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:$T,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Yo(t*100,e),r:Yo,s:jT,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Qo(t){return t}var Zo=Array.prototype.map,Jo=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function KT(t){var e=t.grouping===void 0||t.thousands===void 0?Qo:WT(Zo.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",a=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?Qo:zT(Zo.call(t.numerals,String)),i=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"−":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function c(l){l=Ia(l);var g=l.fill,p=l.align,T=l.sign,h=l.symbol,d=l.zero,x=l.width,C=l.comma,y=l.precision,v=l.trim,w=l.type;w==="n"?(C=!0,w="g"):qo[w]||(y===void 0&&(y=12),v=!0,w="g"),(d||g==="0"&&p==="=")&&(d=!0,g="0",p="=");var S=h==="$"?n:h==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",R=h==="$"?r:/[%p]/.test(w)?i:"",M=qo[w],m=/[defgprs%]/.test(w);y=y===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function O(V){var B=S,b=R,U,Y,q;if(w==="c")b=M(V)+b,V="";else{V=+V;var Z=V<0||1/V<0;if(V=isNaN(V)?u:M(Math.abs(V),y),v&&(V=HT(V)),Z&&+V==0&&T!=="+"&&(Z=!1),B=(Z?T==="("?T:o:T==="-"||T==="("?"":T)+B,b=(w==="s"?Jo[8+ju/3]:"")+b+(Z&&T==="("?")":""),m){for(U=-1,Y=V.length;++Uq||q>57){b=(q===46?a+V.slice(U+1):V.slice(U))+b,V=V.slice(0,U);break}}}C&&!d&&(V=e(V,1/0));var re=B.length+V.length+b.length,G=re>1)+B+V+b+G.slice(re);break;default:V=G+B+V+b;break}return s(V)}return O.toString=function(){return l+""},O}function f(l,g){var p=c((l=Ia(l),l.type="f",l)),T=Math.max(-8,Math.min(8,Math.floor(lr(g)/3)))*3,h=Math.pow(10,-T),d=Jo[8+T/3];return function(x){return p(h*x)+d}}return{format:c,formatPrefix:f}}var aa,Ku,Pu;Xu({thousands:",",grouping:[3],currency:["$",""]});function Xu(t){return aa=KT(t),Ku=aa.format,Pu=aa.formatPrefix,aa}function PT(t){return Math.max(0,-lr(Math.abs(t)))}function XT(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(lr(e)/3)))*3-lr(Math.abs(t)))}function IT(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,lr(e)-lr(t))+1}function YT(t,e,n,r){var a=sT(t,e,n),s;switch(r=Ia(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=XT(a,i))&&(r.precision=s),Pu(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=IT(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=PT(a))&&(r.precision=s-(r.type==="%")*2);break}}return Ku(r)}function qT(t){var e=t.domain;return t.ticks=function(n){var r=e();return aT(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return YT(a[0],a[a.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),a=0,s=r.length-1,i=r[a],o=r[s],u,c,f=10;for(o0;){if(c=ti(i,o,n),c===u)return r[a]=i,r[s]=o,e(r);if(c>0)i=Math.floor(i/c)*c,o=Math.ceil(o/c)*c;else if(c<0)i=Math.ceil(i*c)/c,o=Math.floor(o*c)/c;else break;u=c}return t},t}function os(){var t=GT();return t.copy=function(){return NT(t,os())},iT.apply(t,arguments),qT(t)}var he=1e-6,Xe=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});function Iu(){var t=new Xe(9);return Xe!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function bi(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function QT(t){var e=new Xe(9);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[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ZT(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function JT(t,e,n,r,a,s,i,o,u){var c=new Xe(9);return c[0]=t,c[1]=e,c[2]=n,c[3]=r,c[4]=a,c[5]=s,c[6]=i,c[7]=o,c[8]=u,c}function ex(t,e,n,r,a,s,i,o,u,c){return t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s,t[5]=i,t[6]=o,t[7]=u,t[8]=c,t}function Kn(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function Yu(t,e){if(t===e){var n=e[1],r=e[2],a=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=a}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function Gi(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=e[4],o=e[5],u=e[6],c=e[7],f=e[8],l=f*i-o*c,g=-f*s+o*u,p=c*s-i*u,T=n*l+r*g+a*p;return T?(T=1/T,t[0]=l*T,t[1]=(-f*r+a*c)*T,t[2]=(o*r-a*i)*T,t[3]=g*T,t[4]=(f*n-a*u)*T,t[5]=(-o*n+a*s)*T,t[6]=p*T,t[7]=(-c*n+r*u)*T,t[8]=(i*n-r*s)*T,t):null}function tx(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=e[4],o=e[5],u=e[6],c=e[7],f=e[8];return t[0]=i*f-o*c,t[1]=a*c-r*f,t[2]=r*o-a*i,t[3]=o*u-s*f,t[4]=n*f-a*u,t[5]=a*s-n*o,t[6]=s*c-i*u,t[7]=r*u-n*c,t[8]=n*i-r*s,t}function nx(t){var e=t[0],n=t[1],r=t[2],a=t[3],s=t[4],i=t[5],o=t[6],u=t[7],c=t[8];return e*(c*s-i*u)+n*(-c*a+i*o)+r*(u*a-s*o)}function qu(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=e[4],u=e[5],c=e[6],f=e[7],l=e[8],g=n[0],p=n[1],T=n[2],h=n[3],d=n[4],x=n[5],C=n[6],y=n[7],v=n[8];return t[0]=g*r+p*i+T*c,t[1]=g*a+p*o+T*f,t[2]=g*s+p*u+T*l,t[3]=h*r+d*i+x*c,t[4]=h*a+d*o+x*f,t[5]=h*s+d*u+x*l,t[6]=C*r+y*i+v*c,t[7]=C*a+y*o+v*f,t[8]=C*s+y*u+v*l,t}function rx(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=e[4],u=e[5],c=e[6],f=e[7],l=e[8],g=n[0],p=n[1];return t[0]=r,t[1]=a,t[2]=s,t[3]=i,t[4]=o,t[5]=u,t[6]=g*r+p*i+c,t[7]=g*a+p*o+f,t[8]=g*s+p*u+l,t}function ax(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=e[4],u=e[5],c=e[6],f=e[7],l=e[8],g=Math.sin(n),p=Math.cos(n);return t[0]=p*r+g*i,t[1]=p*a+g*o,t[2]=p*s+g*u,t[3]=p*i-g*r,t[4]=p*o-g*a,t[5]=p*u-g*s,t[6]=c,t[7]=f,t[8]=l,t}function sx(t,e,n){var r=n[0],a=n[1];return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=a*e[3],t[4]=a*e[4],t[5]=a*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function ix(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t}function ox(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function cx(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function ux(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t}function fx(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=n+n,o=r+r,u=a+a,c=n*i,f=r*i,l=r*o,g=a*i,p=a*o,T=a*u,h=s*i,d=s*o,x=s*u;return t[0]=1-l-T,t[3]=f-x,t[6]=g+d,t[1]=f+x,t[4]=1-c-T,t[7]=p-h,t[2]=g-d,t[5]=p+h,t[8]=1-c-l,t}function lx(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=e[4],o=e[5],u=e[6],c=e[7],f=e[8],l=e[9],g=e[10],p=e[11],T=e[12],h=e[13],d=e[14],x=e[15],C=n*o-r*i,y=n*u-a*i,v=n*c-s*i,w=r*u-a*o,S=r*c-s*o,R=a*c-s*u,M=f*h-l*T,m=f*d-g*T,O=f*x-p*T,V=l*d-g*h,B=l*x-p*h,b=g*x-p*d,U=C*b-y*B+v*V+w*O-S*m+R*M;return U?(U=1/U,t[0]=(o*b-u*B+c*V)*U,t[1]=(u*O-i*b-c*m)*U,t[2]=(i*B-o*O+c*M)*U,t[3]=(a*B-r*b-s*V)*U,t[4]=(n*b-a*O+s*m)*U,t[5]=(r*O-n*B-s*M)*U,t[6]=(h*R-d*S+x*w)*U,t[7]=(d*v-T*R-x*y)*U,t[8]=(T*S-h*v+x*C)*U,t):null}function gx(t,e,n){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function px(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function hx(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function dx(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t}function Qu(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t}function vx(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t}function yx(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t}function Tx(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]}function xx(t,e){var n=t[0],r=t[1],a=t[2],s=t[3],i=t[4],o=t[5],u=t[6],c=t[7],f=t[8],l=e[0],g=e[1],p=e[2],T=e[3],h=e[4],d=e[5],x=e[6],C=e[7],y=e[8];return Math.abs(n-l)<=he*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(r-g)<=he*Math.max(1,Math.abs(r),Math.abs(g))&&Math.abs(a-p)<=he*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-T)<=he*Math.max(1,Math.abs(s),Math.abs(T))&&Math.abs(i-h)<=he*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-d)<=he*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-x)<=he*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-C)<=he*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(f-y)<=he*Math.max(1,Math.abs(f),Math.abs(y))}var Sx=qu,Cx=Qu;const wx=Object.freeze(Object.defineProperty({__proto__:null,add:dx,adjoint:tx,clone:QT,copy:ZT,create:Iu,determinant:nx,equals:xx,exactEquals:Tx,frob:hx,fromMat2d:ux,fromMat4:bi,fromQuat:fx,fromRotation:ox,fromScaling:cx,fromTranslation:ix,fromValues:JT,identity:Kn,invert:Gi,mul:Sx,multiply:qu,multiplyScalar:vx,multiplyScalarAndAdd:yx,normalFromMat4:lx,projection:gx,rotate:ax,scale:sx,set:ex,str:px,sub:Cx,subtract:Qu,translate:rx,transpose:Yu},Symbol.toStringTag,{value:"Module"}));function $i(){var t=new Xe(16);return Xe!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Ex(t){var e=new Xe(16);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[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function qe(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function _x(t,e,n,r,a,s,i,o,u,c,f,l,g,p,T,h){var d=new Xe(16);return d[0]=t,d[1]=e,d[2]=n,d[3]=r,d[4]=a,d[5]=s,d[6]=i,d[7]=o,d[8]=u,d[9]=c,d[10]=f,d[11]=l,d[12]=g,d[13]=p,d[14]=T,d[15]=h,d}function Rx(t,e,n,r,a,s,i,o,u,c,f,l,g,p,T,h,d){return t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s,t[5]=i,t[6]=o,t[7]=u,t[8]=c,t[9]=f,t[10]=l,t[11]=g,t[12]=p,t[13]=T,t[14]=h,t[15]=d,t}function le(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Oe(t,e){if(t===e){var n=e[1],r=e[2],a=e[3],s=e[6],i=e[7],o=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=s,t[11]=e[14],t[12]=a,t[13]=i,t[14]=o}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function ut(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=e[4],o=e[5],u=e[6],c=e[7],f=e[8],l=e[9],g=e[10],p=e[11],T=e[12],h=e[13],d=e[14],x=e[15],C=n*o-r*i,y=n*u-a*i,v=n*c-s*i,w=r*u-a*o,S=r*c-s*o,R=a*c-s*u,M=f*h-l*T,m=f*d-g*T,O=f*x-p*T,V=l*d-g*h,B=l*x-p*h,b=g*x-p*d,U=C*b-y*B+v*V+w*O-S*m+R*M;return U?(U=1/U,t[0]=(o*b-u*B+c*V)*U,t[1]=(a*B-r*b-s*V)*U,t[2]=(h*R-d*S+x*w)*U,t[3]=(g*S-l*R-p*w)*U,t[4]=(u*O-i*b-c*m)*U,t[5]=(n*b-a*O+s*m)*U,t[6]=(d*v-T*R-x*y)*U,t[7]=(f*R-g*v+p*y)*U,t[8]=(i*B-o*O+c*M)*U,t[9]=(r*O-n*B-s*M)*U,t[10]=(T*S-h*v+x*C)*U,t[11]=(l*v-f*S-p*C)*U,t[12]=(o*m-i*V-u*M)*U,t[13]=(n*V-r*m+a*M)*U,t[14]=(h*y-T*w-d*C)*U,t[15]=(f*w-l*y+g*C)*U,t):null}function Ox(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=e[4],o=e[5],u=e[6],c=e[7],f=e[8],l=e[9],g=e[10],p=e[11],T=e[12],h=e[13],d=e[14],x=e[15];return t[0]=o*(g*x-p*d)-l*(u*x-c*d)+h*(u*p-c*g),t[1]=-(r*(g*x-p*d)-l*(a*x-s*d)+h*(a*p-s*g)),t[2]=r*(u*x-c*d)-o*(a*x-s*d)+h*(a*c-s*u),t[3]=-(r*(u*p-c*g)-o*(a*p-s*g)+l*(a*c-s*u)),t[4]=-(i*(g*x-p*d)-f*(u*x-c*d)+T*(u*p-c*g)),t[5]=n*(g*x-p*d)-f*(a*x-s*d)+T*(a*p-s*g),t[6]=-(n*(u*x-c*d)-i*(a*x-s*d)+T*(a*c-s*u)),t[7]=n*(u*p-c*g)-i*(a*p-s*g)+f*(a*c-s*u),t[8]=i*(l*x-p*h)-f*(o*x-c*h)+T*(o*p-c*l),t[9]=-(n*(l*x-p*h)-f*(r*x-s*h)+T*(r*p-s*l)),t[10]=n*(o*x-c*h)-i*(r*x-s*h)+T*(r*c-s*o),t[11]=-(n*(o*p-c*l)-i*(r*p-s*l)+f*(r*c-s*o)),t[12]=-(i*(l*d-g*h)-f*(o*d-u*h)+T*(o*g-u*l)),t[13]=n*(l*d-g*h)-f*(r*d-a*h)+T*(r*g-a*l),t[14]=-(n*(o*d-u*h)-i*(r*d-a*h)+T*(r*u-a*o)),t[15]=n*(o*g-u*l)-i*(r*g-a*l)+f*(r*u-a*o),t}function Dx(t){var e=t[0],n=t[1],r=t[2],a=t[3],s=t[4],i=t[5],o=t[6],u=t[7],c=t[8],f=t[9],l=t[10],g=t[11],p=t[12],T=t[13],h=t[14],d=t[15],x=e*i-n*s,C=e*o-r*s,y=e*u-a*s,v=n*o-r*i,w=n*u-a*i,S=r*u-a*o,R=c*T-f*p,M=c*h-l*p,m=c*d-g*p,O=f*h-l*T,V=f*d-g*T,B=l*d-g*h;return x*B-C*V+y*O+v*m-w*M+S*R}function at(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=e[4],u=e[5],c=e[6],f=e[7],l=e[8],g=e[9],p=e[10],T=e[11],h=e[12],d=e[13],x=e[14],C=e[15],y=n[0],v=n[1],w=n[2],S=n[3];return t[0]=y*r+v*o+w*l+S*h,t[1]=y*a+v*u+w*g+S*d,t[2]=y*s+v*c+w*p+S*x,t[3]=y*i+v*f+w*T+S*C,y=n[4],v=n[5],w=n[6],S=n[7],t[4]=y*r+v*o+w*l+S*h,t[5]=y*a+v*u+w*g+S*d,t[6]=y*s+v*c+w*p+S*x,t[7]=y*i+v*f+w*T+S*C,y=n[8],v=n[9],w=n[10],S=n[11],t[8]=y*r+v*o+w*l+S*h,t[9]=y*a+v*u+w*g+S*d,t[10]=y*s+v*c+w*p+S*x,t[11]=y*i+v*f+w*T+S*C,y=n[12],v=n[13],w=n[14],S=n[15],t[12]=y*r+v*o+w*l+S*h,t[13]=y*a+v*u+w*g+S*d,t[14]=y*s+v*c+w*p+S*x,t[15]=y*i+v*f+w*T+S*C,t}function Ge(t,e,n){var r=n[0],a=n[1],s=n[2],i,o,u,c,f,l,g,p,T,h,d,x;return e===t?(t[12]=e[0]*r+e[4]*a+e[8]*s+e[12],t[13]=e[1]*r+e[5]*a+e[9]*s+e[13],t[14]=e[2]*r+e[6]*a+e[10]*s+e[14],t[15]=e[3]*r+e[7]*a+e[11]*s+e[15]):(i=e[0],o=e[1],u=e[2],c=e[3],f=e[4],l=e[5],g=e[6],p=e[7],T=e[8],h=e[9],d=e[10],x=e[11],t[0]=i,t[1]=o,t[2]=u,t[3]=c,t[4]=f,t[5]=l,t[6]=g,t[7]=p,t[8]=T,t[9]=h,t[10]=d,t[11]=x,t[12]=i*r+f*a+T*s+e[12],t[13]=o*r+l*a+h*s+e[13],t[14]=u*r+g*a+d*s+e[14],t[15]=c*r+p*a+x*s+e[15]),t}function gr(t,e,n){var r=n[0],a=n[1],s=n[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*a,t[5]=e[5]*a,t[6]=e[6]*a,t[7]=e[7]*a,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function $t(t,e,n,r){var a=r[0],s=r[1],i=r[2],o=Math.hypot(a,s,i),u,c,f,l,g,p,T,h,d,x,C,y,v,w,S,R,M,m,O,V,B,b,U,Y;return o0?(n[0]=(o*i+f*r+u*s-c*a)*2/l,n[1]=(u*i+f*a+c*r-o*s)*2/l,n[2]=(c*i+f*s+o*a-u*r)*2/l):(n[0]=(o*i+f*r+u*s-c*a)*2,n[1]=(u*i+f*a+c*r-o*s)*2,n[2]=(c*i+f*s+o*a-u*r)*2),rf(t,e,n),t}function kx(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function af(t,e){var n=e[0],r=e[1],a=e[2],s=e[4],i=e[5],o=e[6],u=e[8],c=e[9],f=e[10];return t[0]=Math.hypot(n,r,a),t[1]=Math.hypot(s,i,o),t[2]=Math.hypot(u,c,f),t}function sf(t,e){var n=new Xe(3);af(n,e);var r=1/n[0],a=1/n[1],s=1/n[2],i=e[0]*r,o=e[1]*a,u=e[2]*s,c=e[4]*r,f=e[5]*a,l=e[6]*s,g=e[8]*r,p=e[9]*a,T=e[10]*s,h=i+f+T,d=0;return h>0?(d=Math.sqrt(h+1)*2,t[3]=.25*d,t[0]=(l-p)/d,t[1]=(g-u)/d,t[2]=(o-c)/d):i>f&&i>T?(d=Math.sqrt(1+i-f-T)*2,t[3]=(l-p)/d,t[0]=.25*d,t[1]=(o+c)/d,t[2]=(g+u)/d):f>T?(d=Math.sqrt(1+f-i-T)*2,t[3]=(g-u)/d,t[0]=(o+c)/d,t[1]=.25*d,t[2]=(l+p)/d):(d=Math.sqrt(1+T-i-f)*2,t[3]=(o-c)/d,t[0]=(g+u)/d,t[1]=(l+p)/d,t[2]=.25*d),t}function of(t,e,n,r){var a=e[0],s=e[1],i=e[2],o=e[3],u=a+a,c=s+s,f=i+i,l=a*u,g=a*c,p=a*f,T=s*c,h=s*f,d=i*f,x=o*u,C=o*c,y=o*f,v=r[0],w=r[1],S=r[2];return t[0]=(1-(T+d))*v,t[1]=(g+y)*v,t[2]=(p-C)*v,t[3]=0,t[4]=(g-y)*w,t[5]=(1-(l+d))*w,t[6]=(h+x)*w,t[7]=0,t[8]=(p+C)*S,t[9]=(h-x)*S,t[10]=(1-(l+T))*S,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function Fx(t,e,n,r,a){var s=e[0],i=e[1],o=e[2],u=e[3],c=s+s,f=i+i,l=o+o,g=s*c,p=s*f,T=s*l,h=i*f,d=i*l,x=o*l,C=u*c,y=u*f,v=u*l,w=r[0],S=r[1],R=r[2],M=a[0],m=a[1],O=a[2],V=(1-(h+x))*w,B=(p+v)*w,b=(T-y)*w,U=(p-v)*S,Y=(1-(g+x))*S,q=(d+C)*S,Z=(T+y)*R,re=(d-C)*R,G=(1-(g+h))*R;return t[0]=V,t[1]=B,t[2]=b,t[3]=0,t[4]=U,t[5]=Y,t[6]=q,t[7]=0,t[8]=Z,t[9]=re,t[10]=G,t[11]=0,t[12]=n[0]+M-(V*M+U*m+Z*O),t[13]=n[1]+m-(B*M+Y*m+re*O),t[14]=n[2]+O-(b*M+q*m+G*O),t[15]=1,t}function Wi(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=n+n,o=r+r,u=a+a,c=n*i,f=r*i,l=r*o,g=a*i,p=a*o,T=a*u,h=s*i,d=s*o,x=s*u;return t[0]=1-l-T,t[1]=f+x,t[2]=g-d,t[3]=0,t[4]=f-x,t[5]=1-c-T,t[6]=p+h,t[7]=0,t[8]=g+d,t[9]=p-h,t[10]=1-c-l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Ux(t,e,n,r,a,s,i){var o=1/(n-e),u=1/(a-r),c=1/(s-i);return t[0]=s*2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*u,t[6]=0,t[7]=0,t[8]=(n+e)*o,t[9]=(a+r)*u,t[10]=(i+s)*c,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*c,t[15]=0,t}function cf(t,e,n,r,a){var s=1/Math.tan(e/2),i;return t[0]=s/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,a!=null&&a!==1/0?(i=1/(r-a),t[10]=(a+r)*i,t[14]=2*a*r*i):(t[10]=-1,t[14]=-2*r),t}var Nx=cf;function bx(t,e,n,r,a){var s=1/Math.tan(e/2),i;return t[0]=s/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,a!=null&&a!==1/0?(i=1/(r-a),t[10]=a*i,t[14]=a*r*i):(t[10]=-1,t[14]=-r),t}function Gx(t,e,n,r){var a=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),u=2/(i+o),c=2/(a+s);return t[0]=u,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=c,t[6]=0,t[7]=0,t[8]=-((i-o)*u*.5),t[9]=(a-s)*c*.5,t[10]=r/(n-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*n/(n-r),t[15]=0,t}function uf(t,e,n,r,a,s,i){var o=1/(e-n),u=1/(r-a),c=1/(s-i);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+n)*o,t[13]=(a+r)*u,t[14]=(i+s)*c,t[15]=1,t}var ff=uf;function $x(t,e,n,r,a,s,i){var o=1/(e-n),u=1/(r-a),c=1/(s-i);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=c,t[11]=0,t[12]=(e+n)*o,t[13]=(a+r)*u,t[14]=s*c,t[15]=1,t}function lf(t,e,n,r){var a,s,i,o,u,c,f,l,g,p,T=e[0],h=e[1],d=e[2],x=r[0],C=r[1],y=r[2],v=n[0],w=n[1],S=n[2];return Math.abs(T-v)0&&(p=1/Math.sqrt(p),f*=p,l*=p,g*=p);var T=u*g-c*l,h=c*f-o*g,d=o*l-u*f;return p=T*T+h*h+d*d,p>0&&(p=1/Math.sqrt(p),T*=p,h*=p,d*=p),t[0]=T,t[1]=h,t[2]=d,t[3]=0,t[4]=l*d-g*h,t[5]=g*T-f*d,t[6]=f*h-l*T,t[7]=0,t[8]=f,t[9]=l,t[10]=g,t[11]=0,t[12]=a,t[13]=s,t[14]=i,t[15]=1,t}function zx(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}function Ax(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}function Hx(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t[9]=e[9]+n[9],t[10]=e[10]+n[10],t[11]=e[11]+n[11],t[12]=e[12]+n[12],t[13]=e[13]+n[13],t[14]=e[14]+n[14],t[15]=e[15]+n[15],t}function gf(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t[9]=e[9]-n[9],t[10]=e[10]-n[10],t[11]=e[11]-n[11],t[12]=e[12]-n[12],t[13]=e[13]-n[13],t[14]=e[14]-n[14],t[15]=e[15]-n[15],t}function jx(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t[9]=e[9]*n,t[10]=e[10]*n,t[11]=e[11]*n,t[12]=e[12]*n,t[13]=e[13]*n,t[14]=e[14]*n,t[15]=e[15]*n,t}function Kx(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t[9]=e[9]+n[9]*r,t[10]=e[10]+n[10]*r,t[11]=e[11]+n[11]*r,t[12]=e[12]+n[12]*r,t[13]=e[13]+n[13]*r,t[14]=e[14]+n[14]*r,t[15]=e[15]+n[15]*r,t}function Px(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function Xx(t,e){var n=t[0],r=t[1],a=t[2],s=t[3],i=t[4],o=t[5],u=t[6],c=t[7],f=t[8],l=t[9],g=t[10],p=t[11],T=t[12],h=t[13],d=t[14],x=t[15],C=e[0],y=e[1],v=e[2],w=e[3],S=e[4],R=e[5],M=e[6],m=e[7],O=e[8],V=e[9],B=e[10],b=e[11],U=e[12],Y=e[13],q=e[14],Z=e[15];return Math.abs(n-C)<=he*Math.max(1,Math.abs(n),Math.abs(C))&&Math.abs(r-y)<=he*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(a-v)<=he*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-w)<=he*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(i-S)<=he*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(o-R)<=he*Math.max(1,Math.abs(o),Math.abs(R))&&Math.abs(u-M)<=he*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(c-m)<=he*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(f-O)<=he*Math.max(1,Math.abs(f),Math.abs(O))&&Math.abs(l-V)<=he*Math.max(1,Math.abs(l),Math.abs(V))&&Math.abs(g-B)<=he*Math.max(1,Math.abs(g),Math.abs(B))&&Math.abs(p-b)<=he*Math.max(1,Math.abs(p),Math.abs(b))&&Math.abs(T-U)<=he*Math.max(1,Math.abs(T),Math.abs(U))&&Math.abs(h-Y)<=he*Math.max(1,Math.abs(h),Math.abs(Y))&&Math.abs(d-q)<=he*Math.max(1,Math.abs(d),Math.abs(q))&&Math.abs(x-Z)<=he*Math.max(1,Math.abs(x),Math.abs(Z))}var si=at,Ix=gf;const ii=Object.freeze(Object.defineProperty({__proto__:null,add:Hx,adjoint:Ox,clone:Ex,copy:qe,create:$i,determinant:Dx,equals:Xx,exactEquals:Px,frob:Ax,fromQuat:Wi,fromQuat2:Bx,fromRotation:Mx,fromRotationTranslation:rf,fromRotationTranslationScale:of,fromRotationTranslationScaleOrigin:Fx,fromScaling:nf,fromTranslation:tf,fromValues:_x,fromXRotation:Vx,fromYRotation:mx,fromZRotation:Lx,frustum:Ux,getRotation:sf,getScaling:af,getTranslation:kx,identity:le,invert:ut,lookAt:lf,mul:si,multiply:at,multiplyScalar:jx,multiplyScalarAndAdd:Kx,ortho:ff,orthoNO:uf,orthoZO:$x,perspective:Nx,perspectiveFromFieldOfView:Gx,perspectiveNO:cf,perspectiveZO:bx,rotate:$t,rotateX:Zu,rotateY:Ju,rotateZ:ef,scale:gr,set:Rx,str:zx,sub:Ix,subtract:gf,targetTo:Wx,translate:Ge,transpose:Oe},Symbol.toStringTag,{value:"Module"}));function pf(){var t=new Xe(3);return Xe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Yx(t){var e=t[0],n=t[1],r=t[2];return Math.hypot(e,n,r)}function ec(t,e,n){var r=new Xe(3);return r[0]=t,r[1]=e,r[2]=n,r}function Ya(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function Vr(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function Tn(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function pn(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}function qx(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function zr(t,e){var n=e[0],r=e[1],a=e[2],s=n*n+r*r+a*a;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function hf(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Os(t,e,n){var r=e[0],a=e[1],s=e[2],i=n[0],o=n[1],u=n[2];return t[0]=a*u-s*o,t[1]=s*i-r*u,t[2]=r*o-a*i,t}function xe(t,e,n){var r=e[0],a=e[1],s=e[2],i=n[3]*r+n[7]*a+n[11]*s+n[15];return i=i||1,t[0]=(n[0]*r+n[4]*a+n[8]*s+n[12])/i,t[1]=(n[1]*r+n[5]*a+n[9]*s+n[13])/i,t[2]=(n[2]*r+n[6]*a+n[10]*s+n[14])/i,t}function tc(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function nc(t,e){var n=t[0],r=t[1],a=t[2],s=e[0],i=e[1],o=e[2];return Math.abs(n-s)<=he*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(r-i)<=he*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-o)<=he*Math.max(1,Math.abs(a),Math.abs(o))}var oi=Tn,df=Yx;(function(){var t=pf();return function(e,n,r,a,s,i){var o,u;for(n||(n=3),r||(r=0),a?u=Math.min(a*n+r,e.length):u=e.length,o=r;o0&&(i=1/Math.sqrt(i)),t[0]=n*i,t[1]=r*i,t[2]=a*i,t[3]=s*i,t}function sa(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3];return t[0]=n[0]*r+n[4]*a+n[8]*s+n[12]*i,t[1]=n[1]*r+n[5]*a+n[9]*s+n[13]*i,t[2]=n[2]*r+n[6]*a+n[10]*s+n[14]*i,t[3]=n[3]*r+n[7]*a+n[11]*s+n[15]*i,t}(function(){var t=Qx();return function(e,n,r,a,s,i){var o,u;for(n||(n=4),r||(r=0),a?u=Math.min(a*n+r,e.length):u=e.length,o=r;ohe?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),n}function rc(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*f+i*o+a*c-s*u,t[1]=a*f+i*u+s*o-r*c,t[2]=s*f+i*c+r*u-a*o,t[3]=i*f-r*o-a*u-s*c,t}function Ba(t,e,n,r){var a=e[0],s=e[1],i=e[2],o=e[3],u=n[0],c=n[1],f=n[2],l=n[3],g,p,T,h,d;return p=a*u+s*c+i*f+o*l,p<0&&(p=-p,u=-u,c=-c,f=-f,l=-l),1-p>he?(g=Math.acos(p),T=Math.sin(g),h=Math.sin((1-r)*g)/T,d=Math.sin(r*g)/T):(h=1-r,d=r),t[0]=h*a+d*u,t[1]=h*s+d*c,t[2]=h*i+d*f,t[3]=h*o+d*l,t}function t2(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function n2(t,e){var n=e[0]+e[4]+e[8],r;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var a=0;e[4]>e[0]&&(a=1),e[8]>e[a*3+a]&&(a=2);var s=(a+1)%3,i=(a+2)%3;r=Math.sqrt(e[a*3+a]-e[s*3+s]-e[i*3+i]+1),t[a]=.5*r,r=.5/r,t[3]=(e[s*3+i]-e[i*3+s])*r,t[s]=(e[s*3+a]+e[a*3+s])*r,t[i]=(e[i*3+a]+e[a*3+i])*r}return t}var ac=Zx,vf=Jx;(function(){var t=pf(),e=ec(1,0,0),n=ec(0,1,0);return function(r,a,s){var i=hf(a,s);return i<-.999999?(Os(t,e,a),df(t)<1e-6&&Os(t,n,a),zr(t,t),zi(r,t,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Os(t,a,s),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+i,vf(r,r))}})();(function(){var t=Hn(),e=Hn();return function(n,r,a,s,i,o){return Ba(t,r,i,o),Ba(e,a,s,o),Ba(n,t,e,2*o*(1-o)),n}})();(function(){var t=Iu();return function(e,n,r,a){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=a[0],t[4]=a[1],t[7]=a[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],vf(e,n2(e,t))}})();const{vtkErrorMacro:r2}=E,a2=["Build","Render"];function s2(t,e){e.classHierarchy.push("vtkViewNode"),t.build=r=>{},t.render=r=>{},t.traverse=r=>{const a=r.getTraverseOperation(),s=t[a];if(s){s(r);return}t.apply(r,!0);for(let i=0;i{const s=t[r.getOperation()];s&&s(a,r)},t.getViewNodeFor=r=>{if(e.renderable===r)return t;for(let a=0;ae._parent?e._parent.isA(r)?e._parent:e._parent.getFirstAncestorOfType(r):null,t.addMissingNode=r=>{if(!r)return;const a=e._renderableChildMap.get(r);if(a!==void 0)a.setVisited(!0);else{const s=t.createViewNode(r);s&&(s.setParent(t),s.setVisited(!0),e._renderableChildMap.set(r,s),e.children.push(s))}},t.addMissingNodes=r=>{if(!(!r||!r.length))for(let a=0;a{if(!(!r||!r.length))for(let a=0;a{for(let r=0;r{e.visited=r},t.removeUnusedNodes=()=>{let r=0;for(let a=0;a{if(!e.myFactory)return r2("Cannot create view nodes without my own factory"),null;const a=e.myFactory.createNode(r);return a&&a.setRenderable(r),a};const n=t.delete;t.delete=()=>{for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,i2,n),E.obj(t,e),E.event(t,e,"event"),e._renderableChildMap=new Map,E.get(t,e,["visited"]),E.setGet(t,e,["_parent","renderable","myFactory"]),E.getArray(t,e,["children"]),E.moveToProtected(t,e,["parent"]),s2(t,e)}const o2=E.newInstance(yf,"vtkViewNode");var Be={newInstance:o2,extend:yf,PASS_TYPES:a2};function c2(t,e){e.overrides||(e.overrides={}),e.classHierarchy.push("vtkViewNodeFactory"),t.createNode=n=>{if(n.isDeleted())return null;let r=0,a=n.getClassName(r++),s=!1;const i=Object.keys(e.overrides);for(;a&&!s;)i.indexOf(a)!==-1?s=!0:a=n.getClassName(r++);if(!s)return null;const o=e.overrides[a]();return o.setMyFactory(t),o},t.registerOverride=(n,r)=>{e.overrides[n]=r}}const u2={};function Tf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,u2,n),E.obj(t,e),c2(t,e)}const f2=E.newInstance(Tf,"vtkViewNodeFactory");var xf={newInstance:f2,extend:Tf};const Sf=Object.create(null);function Ft(t,e){Sf[t]=e}function l2(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}const g2={};function Cf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,g2,n),e.overrides=Sf,xf.extend(t,e,n),l2(t,e)}const p2=E.newInstance(Cf,"vtkOpenGLViewNodeFactory");var h2={newInstance:p2,extend:Cf};function d2(t,e){e.classHierarchy.push("vtkOpenGLCamera"),t.buildPass=n=>{n&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext())},t.opaquePass=n=>{if(n){const r=e._openGLRenderer.getTiledSizeAndOrigin();e.context.viewport(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize),e.context.scissor(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize)}},t.translucentPass=t.opaquePass,t.zBufferPass=t.opaquePass,t.opaqueZBufferPass=t.opaquePass,t.volumePass=t.opaquePass,t.getKeyMatrices=n=>{if(n!==e.lastRenderer||e._openGLRenderWindow.getMTime()>e.keyMatrixTime.getMTime()||t.getMTime()>e.keyMatrixTime.getMTime()||n.getMTime()>e.keyMatrixTime.getMTime()||e.renderable.getMTime()>e.keyMatrixTime.getMTime()){qe(e.keyMatrices.wcvc,e.renderable.getViewMatrix()),bi(e.keyMatrices.normalMatrix,e.keyMatrices.wcvc),Gi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Oe(e.keyMatrices.wcvc,e.keyMatrices.wcvc);const r=e._openGLRenderer.getAspectRatio();qe(e.keyMatrices.vcpc,e.renderable.getProjectionMatrix(r,-1,1)),Oe(e.keyMatrices.vcpc,e.keyMatrices.vcpc),at(e.keyMatrices.wcpc,e.keyMatrices.vcpc,e.keyMatrices.wcvc),e.keyMatrixTime.modified(),e.lastRenderer=n}return e.keyMatrices}}const v2={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function y2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,v2,n),Be.extend(t,e,n),e.keyMatrixTime={},Pe(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},ze(t,e,["context","keyMatrixTime"]),d2(t,e)}const T2=Ee(y2);Ft("vtkCamera",T2);const{vtkDebugMacro:x2}=Pt;function S2(t,e){e.classHierarchy.push("vtkOpenGLRenderer"),t.buildPass=n=>{if(n){if(!e.renderable)return;t.updateLights(),t.prepareNodes(),t.addMissingNode(e.renderable.getActiveCamera()),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes()}},t.updateLights=()=>{let n=0;const r=e.renderable.getLightsByReference();for(let a=0;a0&&n++;return n||(x2("No lights are on, creating one."),e.renderable.createLight()),n},t.zBufferPass=n=>{if(n){let r=0;const a=e.context;e.renderable.getTransparent()||(e.context.clearColor(1,0,0,1),r|=a.COLOR_BUFFER_BIT),e.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),r|=a.DEPTH_BUFFER_BIT,e.context.depthMask(!0));const s=t.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize),a.viewport(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize),a.colorMask(!0,!0,!0,!0),r&&a.clear(r),a.enable(a.DEPTH_TEST)}},t.opaqueZBufferPass=n=>t.zBufferPass(n),t.cameraPass=n=>{n&&t.clear()},t.getAspectRatio=()=>{const n=e._parent.getSizeByReference(),r=e.renderable.getViewportByReference();return n[0]*(r[2]-r[0])/((r[3]-r[1])*n[1])},t.getTiledSizeAndOrigin=()=>{const n=e.renderable.getViewportByReference(),r=[0,0,1,1],a=n[0]-r[0],s=n[1]-r[1],i=e._parent.normalizedDisplayToDisplay(a,s),o=Math.round(i[0]),u=Math.round(i[1]),c=n[2]-r[0],f=n[3]-r[1],l=e._parent.normalizedDisplayToDisplay(c,f);let g=Math.round(l[0])-o,p=Math.round(l[1])-u;return g<0&&(g=0),p<0&&(p=0),{usize:g,vsize:p,lowerLeftU:o,lowerLeftV:u}},t.clear=()=>{let n=0;const r=e.context;if(!e.renderable.getTransparent()){const s=e.renderable.getBackgroundByReference();e.context.clearColor(s[0],s[1],s[2],s[3]),n|=r.COLOR_BUFFER_BIT}e.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,e.context.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const a=t.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(a.lowerLeftU,a.lowerLeftV,a.usize,a.vsize),r.viewport(a.lowerLeftU,a.lowerLeftV,a.usize,a.vsize),n&&r.clear(n),r.enable(r.DEPTH_TEST)},t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources(),e.renderable&&e.renderable.getViewProps().forEach(n=>{n.modified()})},t.setOpenGLRenderWindow=n=>{e._openGLRenderWindow!==n&&(t.releaseGraphicsResources(),e._openGLRenderWindow=n,e.context=null,n&&(e.context=e._openGLRenderWindow.getContext()))}}const C2={context:null,_openGLRenderWindow:null,selector:null};function w2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,C2,n),Be.extend(t,e,n),st(t,e,["shaderCache"]),ze(t,e,["selector"]),Yr(t,e,["openGLRenderWindow"]),S2(t,e)}const E2=Ee(w2,"vtkOpenGLRenderer");Ft("vtkRenderer",E2);function _2(t,e){e.classHierarchy.push("vtkOpenGLActor"),t.buildPass=n=>{if(n){e._openGLRenderWindow=t.getFirstAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let r=0;r{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.traverseOpaqueZBufferPass=n=>t.traverseOpaquePass(n),t.traverseOpaquePass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.traverseTranslucentPass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let n=0;n{if(n){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},t.zBufferPass=(n,r)=>t.opaquePass(n,r),t.opaqueZBufferPass=(n,r)=>t.opaquePass(n,r),t.opaquePass=(n,r)=>{if(n)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let a=0;a{if(n)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let a=0;a(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),qe(e.keyMatrices.mcwc,e.renderable.getMatrix()),Oe(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.renderable.getIsIdentity()?Kn(e.keyMatrices.normalMatrix):(bi(e.keyMatrices.normalMatrix,e.keyMatrices.mcwc),Gi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Yu(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),e.keyMatrixTime.modified()),e.keyMatrices)}const R2={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function O2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,R2,n),Be.extend(t,e,n),e.keyMatrixTime={},Pe(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:Kn(new Float64Array(9)),mcwc:le(new Float64Array(16))},ze(t,e,["context"]),st(t,e,["activeTextures"]),_2(t,e)}const D2=Ee(O2);Ft("vtkActor",D2);function M2(t,e){e.classHierarchy.push("vtkOpenGLActor2D"),t.buildPass=n=>{if(n){if(!e.renderable)return;e._openGLRenderWindow=t.getFirstAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let r=0;r{if(n){if(!e.renderable||!e.renderable.getVisibility())return;r.incrementOverlayActorCount()}},t.traverseOpaquePass=n=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.traverseTranslucentPass=n=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.traverseOverlayPass=n=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable||(t.apply(n,!0),e.oglmapper.traverse(n),t.apply(n,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let n=0;n{if(n)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let a=0;a{if(n)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let a=0;a{if(n)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let a=0;a2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,V2,n),Be.extend(t,e,n),ze(t,e,["context"]),st(t,e,["activeTextures"]),M2(t,e)}const L2=Ee(m2);Ft("vtkActor2D",L2);var Ai={exports:{}};Ai.exports;(function(t){(function(e,n,r){function a(u){var c=this,f=o();c.next=function(){var l=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=l-(c.c=l|0)},c.c=1,c.s0=f(" "),c.s1=f(" "),c.s2=f(" "),c.s0-=f(u),c.s0<0&&(c.s0+=1),c.s1-=f(u),c.s1<0&&(c.s1+=1),c.s2-=f(u),c.s2<0&&(c.s2+=1),f=null}function s(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function i(u,c){var f=new a(u),l=c&&c.state,g=f.next;return g.int32=function(){return f.next()*4294967296|0},g.double=function(){return g()+(g()*2097152|0)*11102230246251565e-32},g.quick=g,l&&(typeof l=="object"&&s(l,f),g.state=function(){return s(f,{})}),g}function o(){var u=4022871197,c=function(f){f=String(f);for(var l=0;l>>0,g-=u,g*=u,u=g>>>0,g-=u,u+=g*4294967296}return(u>>>0)*23283064365386963e-26};return c}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.alea=i})(vt,t,!1)})(Ai);var B2=Ai.exports,Hi={exports:{}};Hi.exports;(function(t){(function(e,n,r){function a(o){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var l=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^l^l>>>8},o===(o|0)?u.x=o:c+=o;for(var f=0;f>>0)/4294967296};return l.double=function(){do var g=c.next()>>>11,p=(c.next()>>>0)/4294967296,T=(g+p)/(1<<21);while(T===0);return T},l.int32=c.next,l.quick=l,f&&(typeof f=="object"&&s(f,c),l.state=function(){return s(c,{})}),l}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.xor128=i})(vt,t,!1)})(Hi);var k2=Hi.exports,ji={exports:{}};ji.exports;(function(t){(function(e,n,r){function a(o){var u=this,c="";u.next=function(){var l=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(l^l<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,o===(o|0)?u.x=o:c+=o;for(var f=0;f>>4),u.next()}function s(o,u){return u.x=o.x,u.y=o.y,u.z=o.z,u.w=o.w,u.v=o.v,u.d=o.d,u}function i(o,u){var c=new a(o),f=u&&u.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var g=c.next()>>>11,p=(c.next()>>>0)/4294967296,T=(g+p)/(1<<21);while(T===0);return T},l.int32=c.next,l.quick=l,f&&(typeof f=="object"&&s(f,c),l.state=function(){return s(c,{})}),l}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.xorwow=i})(vt,t,!1)})(ji);var F2=ji.exports,Ki={exports:{}};Ki.exports;(function(t){(function(e,n,r){function a(o){var u=this;u.next=function(){var f=u.x,l=u.i,g,p;return g=f[l],g^=g>>>7,p=g^g<<24,g=f[l+1&7],p^=g^g>>>10,g=f[l+3&7],p^=g^g>>>3,g=f[l+4&7],p^=g^g<<7,g=f[l+7&7],g=g^g<<13,p^=g^g<<9,f[l]=p,u.i=l+1&7,p};function c(f,l){var g,p=[];if(l===(l|0))p[0]=l;else for(l=""+l,g=0;g0;--g)f.next()}c(u,o)}function s(o,u){return u.x=o.x.slice(),u.i=o.i,u}function i(o,u){o==null&&(o=+new Date);var c=new a(o),f=u&&u.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var g=c.next()>>>11,p=(c.next()>>>0)/4294967296,T=(g+p)/(1<<21);while(T===0);return T},l.int32=c.next,l.quick=l,f&&(f.x&&s(f,c),l.state=function(){return s(c,{})}),l}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.xorshift7=i})(vt,t,!1)})(Ki);var U2=Ki.exports,Pi={exports:{}};Pi.exports;(function(t){(function(e,n,r){function a(o){var u=this;u.next=function(){var f=u.w,l=u.X,g=u.i,p,T;return u.w=f=f+1640531527|0,T=l[g+34&127],p=l[g=g+1&127],T^=T<<13,p^=p<<17,T^=T>>>15,p^=p>>>12,T=l[g]=T^p,u.i=g,T+(f^f>>>16)|0};function c(f,l){var g,p,T,h,d,x=[],C=128;for(l===(l|0)?(p=l,l=null):(l=l+"\0",p=0,C=Math.max(C,l.length)),T=0,h=-32;h>>15,p^=p<<4,p^=p>>>13,h>=0&&(d=d+1640531527|0,g=x[h&127]^=p+d,T=g==0?T+1:0);for(T>=128&&(x[(l&&l.length||0)&127]=-1),T=127,h=4*128;h>0;--h)p=x[T+34&127],g=x[T=T+1&127],p^=p<<13,g^=g<<17,p^=p>>>15,g^=g>>>12,x[T]=p^g;f.w=d,f.X=x,f.i=T}c(u,o)}function s(o,u){return u.i=o.i,u.w=o.w,u.X=o.X.slice(),u}function i(o,u){o==null&&(o=+new Date);var c=new a(o),f=u&&u.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var g=c.next()>>>11,p=(c.next()>>>0)/4294967296,T=(g+p)/(1<<21);while(T===0);return T},l.int32=c.next,l.quick=l,f&&(f.X&&s(f,c),l.state=function(){return s(c,{})}),l}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.xor4096=i})(vt,t,!1)})(Pi);var N2=Pi.exports,Xi={exports:{}};Xi.exports;(function(t){(function(e,n,r){function a(o){var u=this,c="";u.next=function(){var l=u.b,g=u.c,p=u.d,T=u.a;return l=l<<25^l>>>7^g,g=g-p|0,p=p<<24^p>>>8^T,T=T-l|0,u.b=l=l<<20^l>>>12^g,u.c=g=g-p|0,u.d=p<<16^g>>>16^T,u.a=T-l|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,o===Math.floor(o)?(u.a=o/4294967296|0,u.b=o|0):c+=o;for(var f=0;f>>0)/4294967296};return l.double=function(){do var g=c.next()>>>11,p=(c.next()>>>0)/4294967296,T=(g+p)/(1<<21);while(T===0);return T},l.int32=c.next,l.quick=l,f&&(typeof f=="object"&&s(f,c),l.state=function(){return s(c,{})}),l}n&&n.exports?n.exports=i:r&&r.amd?r(function(){return i}):this.tychei=i})(vt,t,!1)})(Xi);var b2=Xi.exports,wf={exports:{}};const G2={},$2=Object.freeze(Object.defineProperty({__proto__:null,default:G2},Symbol.toStringTag,{value:"Module"})),W2=L0($2);(function(t){(function(e,n,r){var a=256,s=6,i=52,o="random",u=r.pow(a,s),c=r.pow(2,i),f=c*2,l=a-1,g;function p(v,w,S){var R=[];w=w==!0?{entropy:!0}:w||{};var M=x(d(w.entropy?[v,y(n)]:v??C(),3),R),m=new T(R),O=function(){for(var V=m.g(s),B=u,b=0;V=f;)V/=2,B/=2,b>>>=1;return(V+b)/B};return O.int32=function(){return m.g(4)|0},O.quick=function(){return m.g(4)/4294967296},O.double=O,x(y(m.S),n),(w.pass||S||function(V,B,b,U){return U&&(U.S&&h(U,m),V.state=function(){return h(m,{})}),b?(r[o]=V,B):V})(O,M,"global"in w?w.global:this==r,w.state)}function T(v){var w,S=v.length,R=this,M=0,m=R.i=R.j=0,O=R.S=[];for(S||(v=[S++]);M0&&arguments[0]!==void 0?arguments[0]:3;const e=Array(t);for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:3;switch(e){case 1:return Math.abs(t);case 2:return Math.sqrt(t[0]*t[0]+t[1]*t[1]);case 3:return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);default:{let n=0;for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:I2;if(t.length!==e.length)return!1;function r(a,s){return Math.abs(a-e[s])<=n}return t.every(r)}const eS=J2;function Ds(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!`${t}`.includes("e"))return+`${Math.round(`${t}e+${e}`)}e-${e}`;const n=`${t}`.split("e");let r="";return+n[1]+e>0&&(r="+"),+`${Math.round(`${+n[0]}e${r}${+n[1]+e}`)}e-${e}`}function oc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return e[0]=Ds(t[0],n),e[1]=Ds(t[1],n),e[2]=Ds(t[2],n),e}function tS(t,e,n){let r,a,s,i,o=0,u,c,f;const l=ci(n);for(r=0;ri&&(i=f);if(i===0)return sc("Unable to factor linear system"),0;l[r]=1/i}for(a=0;a=i&&(i=c,o=r)}if(a!==o){for(s=0;s=0)for(s=i;s<=a-1;s++)u-=t[a*r+s]*n[s];else u!==0&&(i=a);n[a]=u}for(a=r-1;a>=0;a--){for(u=n[a],s=a+1;sf?f=s:sf?f=i:i0?r=(f-l)/f:r=0,r>0?(a===f?n=u*(s-i)/(f-l):s===f?n=o+u*(i-a)/(f-l):n=c+u*(a-s)/(f-l),n<0&&(n+=1)):n=0,e[0]=n,e[1]=r,e[2]=g}function nr(t,e){const[n,r,a]=t,s=1/3,i=1/6,o=2/3,u=5/6;let c,f,l;n>i&&n<=s?(f=1,c=(s-n)/i,l=0):n>s&&n<=.5?(f=1,l=(n-s)/i,c=0):n>.5&&n<=o?(l=1,f=(o-n)/i,c=0):n>o&&n<=u?(l=1,c=(n-o)/i,f=0):n>u&&n<=1?(c=1,l=(1-n)/i,f=0):(c=1,f=n/i,l=0),c=r*c+(1-r),f=r*f+(1-r),l=r*l+(1-r),c*=a,f*=a,l*=a,e[0]=c,e[1]=f,e[2]=l}function aS(t,e){const[n,r,a]=t;let s=(n+16)/116,i=r/500+s,o=s-a/200;s**3>.008856?s**=3:s=(s-16/116)/7.787,i**3>.008856?i**=3:i=(i-16/116)/7.787,o**3>.008856?o**=3:o=(o-16/116)/7.787;const u=.9505,c=1,f=1.089;e[0]=u*i,e[1]=c*s,e[2]=f*o}function sS(t,e){const[n,r,a]=t,s=.9505,i=1,o=1.089;let u=n/s,c=r/i,f=a/o;u>.008856?u**=1/3:u=7.787*u+16/116,c>.008856?c**=1/3:c=7.787*c+16/116,f>.008856?f**=1/3:f=7.787*f+16/116,e[0]=116*c-16,e[1]=500*(u-c),e[2]=200*(c-f)}function iS(t,e){const[n,r,a]=t;let s=n*3.2406+r*-1.5372+a*-.4986,i=n*-.9689+r*1.8758+a*.0415,o=n*.0557+r*-.204+a*1.057;s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92,i>.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,o>.0031308?o=1.055*o**(1/2.4)-.055:o*=12.92;let u=s;u1&&(s/=u,i/=u,o/=u),s<0&&(s=0),i<0&&(i=0),o<0&&(o=0),e[0]=s,e[1]=i,e[2]=o}function oS(t,e){let[n,r,a]=t;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,e[0]=n*.4124+r*.3576+a*.1805,e[1]=n*.2126+r*.7152+a*.0722,e[2]=n*.0193+r*.1192+a*.9505}function ir(t,e){const n=[0,0,0];oS(t,n),sS(n,e)}function fi(t,e){const n=[0,0,0];aS(t,n),iS(n,e)}function Ii(t){return t[0]=1,t[1]=-1,t[2]=1,t[3]=-1,t[4]=1,t[5]=-1,t}function Ms(t){return!(t[1]-t[0]<0)}function Vs(t,e,n){return tn?n:t}function cc(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[0,0,0];return r[0]=Vs(t[0],e[0],n[0]),r[1]=Vs(t[1],e[1],n[1]),r[2]=Vs(t[2],e[2],n[2]),r}const cS=t=>!Number.isFinite(t),{isFinite:x3,isNaN:uS}=Number,qa=uS;function Yi(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}const li=1e-6,_f="coincide",Rf="disjoint";function fS(t,e,n){return t[0]*(n[0]-e[0])+t[1]*(n[1]-e[1])+t[2]*(n[2]-e[2])}function Of(t,e,n){const r=n[0]*(t[0]-e[0])+n[1]*(t[1]-e[1])+n[2]*(t[2]-e[2]);return Math.abs(r)}function Df(t,e,n,r){const a=[];xn(t,e,a);const s=ge(n,a);r[0]=t[0]-s*n[0],r[1]=t[1]-s*n[1],r[2]=t[2]-s*n[2]}function Mf(t,e,n){const r=ge(t,e);let a=ge(e,e);return a===0&&(a=1),n[0]=t[0]-r*e[0]/a,n[1]=t[1]-r*e[1]/a,n[2]=t[2]-r*e[2]/a,n}function Vf(t,e,n,r){const a=[];xn(t,e,a);const s=ge(n,a),i=ge(n,n);i!==0?(r[0]=t[0]-s*n[0]/i,r[1]=t[1]-s*n[1]/i,r[2]=t[2]-s*n[2]/i):(r[0]=t[0],r[1]=t[1],r[2]=t[2])}function mf(t,e,n,r){const a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},s=[],i=[];xn(e,t,s),xn(n,t,i);const o=ge(r,i),u=ge(r,s);let c,f;return u<0?c=-u:c=u,o<0?f=-o*li:f=o*li,c<=f||(a.t=o/u,a.x[0]=t[0]+a.t*s[0],a.x[1]=t[1]+a.t*s[1],a.x[2]=t[2]+a.t*s[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1),a}function Lf(t,e,n,r){const a={intersection:!1,l0:[],l1:[],error:null},s=[];Hr(e,r,s);const i=s.map(l=>Math.abs(l));if(i[0]+i[1]+i[2]i[1]&&i[0]>i[2]?o="x":i[1]>i[2]?o="y":o="z";const u=[],c=-ge(e,t),f=-ge(r,n);switch(o){case"x":u[0]=0,u[1]=(f*e[2]-c*r[2])/s[0],u[2]=(c*r[1]-f*e[1])/s[0];break;case"y":u[0]=(c*r[2]-f*e[2])/s[1],u[1]=0,u[2]=(f*e[0]-c*r[0])/s[1];break;case"z":u[0]=(f*e[1]-c*r[1])/s[2],u[1]=(c*r[0]-f*e[0])/s[2],u[2]=0;break}return a.l0=u,ui(u,s,a.l1),a.intersection=!0,a}const lS={evaluate:fS,distanceToPlane:Of,projectPoint:Df,projectVector:Mf,generalizedProjectPoint:Vf,intersectWithLine:mf,intersectWithPlane:Lf,DISJOINT:Rf,COINCIDE:_f};function gS(t,e){e.classHierarchy.push("vtkPlane"),t.distanceToPlane=n=>Of(n,e.origin,e.normal),t.projectPoint=(n,r)=>{Df(n,e.origin,e.normal,r)},t.projectVector=(n,r)=>Mf(n,e.normal,r),t.push=n=>{if(n!==0)for(let r=0;r<3;r++)e.origin[r]+=n*e.normal[r]},t.generalizedProjectPoint=(n,r)=>{Vf(n,e.origin,e.normal,r)},t.evaluateFunction=(n,r,a)=>Array.isArray(n)?e.normal[0]*(n[0]-e.origin[0])+e.normal[1]*(n[1]-e.origin[1])+e.normal[2]*(n[2]-e.origin[2]):e.normal[0]*(n-e.origin[0])+e.normal[1]*(r-e.origin[1])+e.normal[2]*(a-e.origin[2]),t.evaluateGradient=n=>[e.normal[0],e.normal[1],e.normal[2]],t.intersectWithLine=(n,r)=>mf(n,r,e.origin,e.normal),t.intersectWithPlane=(n,r)=>Lf(n,r,e.origin,e.normal)}const pS={normal:[0,0,1],origin:[0,0,0]};function Bf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pS,n),E.obj(t,e),E.setGetArray(t,e,["normal","origin"],3),gS(t,e)}const hS=E.newInstance(Bf,"vtkPlane");var pr={newInstance:hS,extend:Bf,...lS};const cs=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function kf(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]}function tn(t){return(t==null?void 0:t.length)>=6&&t[0]<=t[1]&&t[2]<=t[3]&&t[4]<=t[5]}function qi(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Qi(t){return qi(t,cs)}function Qa(t,e,n,r){const[a,s,i,o,u,c]=t;return t[0]=ae?s:e,t[2]=in?o:n,t[4]=ur?c:r,t}function Zi(t,e){if(e.length===0)return t;if(Array.isArray(e[0]))for(let n=0;ns?e:s,t[2]=n,t[3]=n>o?n:o,t[4]=r,t[5]=r>c?r:c,a!==e||i!==n||u!==r}function Nf(t,e,n,r){const[a,s,i,o,u,c]=t;return t[0]=e=0?(t[0]*=e,t[1]*=e):(t[0]=e*t[1],t[1]=e*t[0]),n>=0?(t[2]*=n,t[3]*=n):(t[2]=n*t[3],t[3]=n*t[2]),r>=0?(t[4]*=r,t[5]*=r):(t[4]=r*t[5],t[5]=r*t[4]),!0):!1}function eo(t){return[.5*(t[0]+t[1]),.5*(t[2]+t[3]),.5*(t[4]+t[5])]}function dS(t,e,n,r){if(!tn(t))return!1;const a=eo(t);return t[0]-=a[0],t[1]-=a[0],t[2]-=a[1],t[3]-=a[1],t[4]-=a[2],t[5]-=a[2],Ji(t,e,n,r),t[0]+=a[0],t[1]+=a[0],t[2]+=a[1],t[3]+=a[1],t[4]+=a[2],t[5]+=a[2],!0}function Fr(t,e){return t[e*2+1]-t[e*2]}function us(t){return[Fr(t,0),Fr(t,1),Fr(t,2)]}function Gf(t){return t.slice(0,2)}function $f(t){return t.slice(2,4)}function Wf(t){return t.slice(4,6)}function zf(t){const e=us(t);return e[0]>e[1]?e[0]>e[2]?e[0]:e[2]:e[1]>e[2]?e[1]:e[2]}function Af(t){if(tn(t)){const e=us(t);return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}return null}function to(t){return[t[0],t[2],t[4]]}function no(t){return[t[1],t[3],t[5]]}function ua(t,e){return t<=0&&e>=0||t>=0&&e<=0}function ro(t,e){let n=0;for(let r=0;r<2;r++)for(let a=2;a<4;a++)for(let s=4;s<6;s++)e[n++]=[t[r],t[a],t[s]];return e}function Hf(t,e,n){return e[0]=t[0],e[1]=t[2],e[2]=t[4],n[0]=t[1],n[1]=t[3],n[2]=t[5],e}function jf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];const r=ro(t,[]);for(let a=0;a1&&arguments[1]!==void 0?arguments[1]:[];return e[0]=.5*(t[1]-t[0]),e[1]=.5*(t[3]-t[2]),e[2]=.5*(t[5]-t[4]),e}function Pf(t,e,n,r){const a=[].concat(cs),s=t.getData();for(let i=0;it[2*p+1]?(i[p]=f,c[p]=t[2*p+1],s=!1):i[p]=g;if(s)return r[0]=e[0],r[1]=e[1],r[2]=e[2],a[0]=0,1;for(let p=0;p<3;p++)i[p]!==g&&n[p]!==0?u[p]=(c[p]-e[p])/n[p]:u[p]=-1;for(let p=0;p<3;p++)u[o]1||u[o]<0)return 0;a[0]=u[o];for(let p=0;p<3;p++)if(o!==p){if(r[p]=e[p]+u[o]*n[p],r[p]t[2*p+1])return 0}else r[p]=c[p];return 1}function If(t,e,n){const r=[];let a=0,s=1,i=1;for(let o=4;o<=5;++o){r[2]=t[o];for(let u=2;u<=3;++u){r[1]=t[u];for(let c=0;c<=1;++c)if(r[0]=t[c],a=pr.evaluate(n,e,r),i&&(s=a>=0?1:-1,i=0),a===0||s>0&&a<0||s<0&&a>0)return 1}}return 0}function Yf(t,e){if(!(tn(t)&&tn(e)))return!1;const n=[0,0,0,0,0,0];let r;for(let a=0;a<3;a++)if(r=!1,e[a*2]>=t[a*2]&&e[a*2]<=t[a*2+1]?(r=!0,n[a*2]=e[a*2]):t[a*2]>=e[a*2]&&t[a*2]<=e[a*2+1]&&(r=!0,n[a*2]=t[a*2]),e[a*2+1]>=t[a*2]&&e[a*2+1]<=t[a*2+1]?(r=!0,n[a*2+1]=e[2*a+1]):t[a*2+1]>=e[a*2]&&t[a*2+1]<=e[a*2+1]&&(r=!0,n[a*2+1]=t[a*2+1]),!r)return!1;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],!0}function Za(t,e){if(!(tn(t)&&tn(e)))return!1;for(let n=0;n<3;n++)if(!(e[n*2]>=t[n*2]&&e[n*2]<=t[n*2+1])&&!(t[n*2]>=e[n*2]&&t[n*2]<=e[n*2+1])&&!(e[n*2+1]>=t[n*2]&&e[n*2+1]<=t[n*2+1])&&!(t[n*2+1]>=e[n*2]&&t[n*2+1]<=e[n*2+1]))return!1;return!0}function Ja(t,e,n,r){return!(et[1]||nt[3]||rt[5])}function vS(t,e){return!(!Za(t,e)||!Ja(t,...to(e))||!Ja(t,...no(e)))}function qf(t,e,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 l=0;l<2;l++)for(let g=2;g<4;g++)for(let p=4;p<6;p++){const T=[t[l],t[g],t[p]];a[s++]=pr.evaluate(n,e,T)}let i=2;for(;i--&&!(ua(a[r[i][0]],a[r[i][4]])&&ua(a[r[i][1]],a[r[i][5]])&&ua(a[r[i][2]],a[r[i][6]])&&ua(a[r[i][3]],a[r[i][7]])););if(i<0)return!1;const o=Math.sign(n[i]),u=Math.abs((t[i*2+1]-t[i*2])*n[i]);let c=o>0?1:0;for(let l=0;l<4;l++){if(u===0)continue;const g=Math.abs(a[r[i][l]])/u;o>0&&gc&&(c=g)}const f=(1-c)*t[i*2]+c*t[i*2+1];return o>0?t[i*2]=f:t[i*2+1]=f,!0}class yS{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(cs))}getBounds(){return this.bounds}equals(e){return kf(this.bounds,e)}isValid(){return tn(this.bounds)}setBounds(e){return qi(this.bounds,e)}reset(){return Qi(this.bounds)}addPoint(){for(var e=arguments.length,n=new Array(e),r=0;r1&&arguments[1]!==void 0?arguments[1]:[];return jf(this.bounds,e,n)}computeScale3(e){return Kf(this.bounds,e)}cutWithPlane(e,n){return qf(this.bounds,e,n)}intersectBox(e,n,r,a){return Xf(this.bounds,e,n,r,a)}intersectPlane(e,n){return If(this.bounds,e,n)}intersect(e){return Yf(this.bounds,e)}intersects(e){return Za(this.bounds,e)}containsPoint(e,n,r){return Ja(this.bounds,e,n,r)}contains(e){return Za(this.bounds,e)}}function TS(t){const e=t&&t.bounds;return new yS(e)}const xS={equals:kf,isValid:tn,setBounds:qi,reset:Qi,addPoint:Qa,addPoints:Zi,addBounds:Ff,setMinPoint:Uf,setMaxPoint:Nf,inflate:bf,scale:Ji,scaleAboutCenter:dS,getCenter:eo,getLength:Fr,getLengths:us,getMaxLength:zf,getDiagonalLength:Af,getMinPoint:to,getMaxPoint:no,getXRange:Gf,getYRange:$f,getZRange:Wf,getCorners:ro,computeCornerPoints:Hf,computeLocalBounds:Pf,transformBounds:jf,computeScale3:Kf,cutWithPlane:qf,intersectBox:Xf,intersectPlane:If,intersect:Yf,intersects:Za,containsPoint:Ja,contains:vS,INIT_BOUNDS:cs};var Re={newInstance:TS,...xS};const SS={DISPLAY:0,WORLD:1};var Qf={CoordinateSystem:SS};const{CoordinateSystem:gi}=Qf;function uc(t){return()=>E.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function CS(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let n=e.mtime;for(let r=0;rn&&(n=a)}return n},t.processSelectorPixelBuffers=(n,r)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=uc("pick"),t.hasKey=uc("hasKey"),t.getNestedVisibility=()=>e.visibility&&(!e._parentProp||e._parentProp.getNestedVisibility()),t.getNestedPickable=()=>e.pickable&&(!e._parentProp||e._parentProp.getNestedPickable()),t.getNestedDragable=()=>e.dragable&&(!e._parentProp||e._parentProp.getNestedDragable()),t.getRedrawMTime=()=>e.mtime,t.setEstimatedRenderTime=n=>{e.estimatedRenderTime=n,e.savedEstimatedRenderTime=n},t.restoreEstimatedRenderTime=()=>{e.estimatedRenderTime=e.savedEstimatedRenderTime},t.addEstimatedRenderTime=n=>{e.estimatedRenderTime+=n},t.setAllocatedRenderTime=n=>{e.allocatedRenderTime=n,e.savedEstimatedRenderTime=e.estimatedRenderTime,e.estimatedRenderTime=0},t.getSupportsSelection=()=>!1,t.getTextures=()=>e.textures,t.hasTexture=n=>e.textures.indexOf(n)!==-1,t.addTexture=n=>{n&&!t.hasTexture(n)&&(e.textures=e.textures.concat(n),t.modified())},t.removeTexture=n=>{const r=e.textures.filter(a=>a!==n);e.textures.length!==r.length&&(e.textures=r,t.modified())},t.removeAllTextures=()=>{e.textures=[],t.modified()},t.setCoordinateSystemToWorld=()=>t.setCoordinateSystem(gi.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(gi.DISPLAY)}const wS={allocatedRenderTime:10,coordinateSystem:gi.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Zf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wS,n),E.obj(t,e),E.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),E.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),E.moveToProtected(t,e,["parentProp"]),CS(t,e)}const ES=E.newInstance(Zf,"vtkProp");var Qr={newInstance:ES,extend:Zf,...Qf};function _S(t,e){e.classHierarchy.push("vtkProp3D"),t.addPosition=r=>{e.position=e.position.map((a,s)=>a+r[s]),t.modified()},t.getOrientationWXYZ=()=>{const r=Hn();sf(r,e.rotation);const a=new Float64Array(3),s=e2(a,r);return[Ar(s),a[0],a[1],a[2]]},t.rotateX=r=>{r!==0&&(Zu(e.rotation,e.rotation,ke(r)),t.modified())},t.rotateY=r=>{r!==0&&(Ju(e.rotation,e.rotation,ke(r)),t.modified())},t.rotateZ=r=>{r!==0&&(ef(e.rotation,e.rotation,ke(r)),t.modified())},t.rotateWXYZ=(r,a,s,i)=>{if(r===0||a===0&&s===0&&i===0)return;const o=ke(r),u=Hn();zi(u,[a,s,i],o);const c=new Float64Array(16);Wi(c,u),at(e.rotation,e.rotation,c),t.modified()},t.setOrientation=(r,a,s)=>r===e.orientation[0]&&a===e.orientation[1]&&s===e.orientation[2]?!1:(e.orientation=[r,a,s],le(e.rotation),t.rotateZ(s),t.rotateX(r),t.rotateY(a),t.modified(),!0),t.setUserMatrix=r=>eS(e.userMatrix,r)?!1:(qe(e.userMatrix,r),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){le(e.matrix),e.userMatrix&&at(e.matrix,e.matrix,e.userMatrix),Ge(e.matrix,e.matrix,e.origin),Ge(e.matrix,e.matrix,e.position),at(e.matrix,e.matrix,e.rotation),gr(e.matrix,e.matrix,e.scale),Ge(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),Oe(e.matrix,e.matrix),e.isIdentity=!0;for(let r=0;r<4;++r)for(let a=0;a<4;++a)(r===a?1:0)!==e.matrix[r+a*4]&&(e.isIdentity=!1);e.matrixMTime.modified()}},t.getCenter=()=>Re.getCenter(e.bounds),t.getLength=()=>Re.getLength(e.bounds),t.getXRange=()=>Re.getXRange(e.bounds),t.getYRange=()=>Re.getYRange(e.bounds),t.getZRange=()=>Re.getZRange(e.bounds),t.getUserMatrix=()=>e.userMatrix;function n(){t.computeMatrix()}t.onModified(n)}const RS={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 Jf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RS,n),Qr.extend(t,e,n),e.matrixMTime={},E.obj(e.matrixMTime),E.get(t,e,["bounds","isIdentity"]),E.getArray(t,e,["orientation"]),E.setGetArray(t,e,["origin","position","scale"],3),e.matrix=le(new Float64Array(16)),e.rotation=le(new Float64Array(16)),e.userMatrix=le(new Float64Array(16)),e.transform=null,_S(t,e)}const OS=E.newInstance(Jf,"vtkProp3D");var DS={newInstance:OS,extend:Jf};const el={FLAT:0,GOURAUD:1,PHONG:2},rt={POINTS:0,WIREFRAME:1,SURFACE:2},MS=el;var tl={Shading:el,Representation:rt,Interpolation:MS};const{Representation:mr,Interpolation:Lr}=tl;function fc(t){return()=>E.vtkErrorMacro(`vtkProperty::${t} - NOT IMPLEMENTED`)}function VS(t,e){e.classHierarchy.push("vtkProperty"),t.setColor=(n,r,a)=>{Array.isArray(n)?(e.color[0]!==n[0]||e.color[1]!==n[1]||e.color[2]!==n[2])&&(e.color[0]=n[0],e.color[1]=n[1],e.color[2]=n[2],t.modified()):(e.color[0]!==n||e.color[1]!==r||e.color[2]!==a)&&(e.color[0]=n,e.color[1]=r,e.color[2]=a,t.modified()),t.setDiffuseColor(e.color),t.setAmbientColor(e.color),t.setSpecularColor(e.color)},t.computeCompositeColor=fc("ComputeCompositeColor"),t.getColor=()=>{let n=0;e.ambient+e.diffuse+e.specular>0&&(n=1/(e.ambient+e.diffuse+e.specular));for(let r=0;r<3;r++)e.color[r]=n*(e.ambient*e.ambientColor[r]+e.diffuse*e.diffuseColor[r]+e.specular*e.specularColor[r]);return[].concat(e.color)},t.setSpecularPower=n=>{const r=1/Math.max(1,n);(e.roughness!==r||e.specularPower!==n)&&(e.specularPower=n,e.roughness=r,t.modified())},t.addShaderVariable=fc("AddShaderVariable"),t.setInterpolationToFlat=()=>t.setInterpolation(Lr.FLAT),t.setInterpolationToGouraud=()=>t.setInterpolation(Lr.GOURAUD),t.setInterpolationToPhong=()=>t.setInterpolation(Lr.PHONG),t.getInterpolationAsString=()=>E.enumToString(Lr,e.interpolation),t.setRepresentationToWireframe=()=>t.setRepresentation(mr.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(mr.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(mr.POINTS),t.getRepresentationAsString=()=>E.enumToString(mr,e.representation)}const mS={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:Lr.GOURAUD,representation:mr.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function nl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mS,n),E.obj(t,e),E.setGet(t,e,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),E.setGetArray(t,e,["ambientColor","specularColor","diffuseColor","edgeColor"],3),VS(t,e)}const LS=E.newInstance(nl,"vtkProperty");var Cr={newInstance:LS,extend:nl,...tl};const{vtkDebugMacro:BS}=E;function kS(t,e){e.classHierarchy.push("vtkActor");const n={...t};t.getActors=()=>[t],t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.property||t.getProperty();let r=e.property.getOpacity()>=1;return r=r&&(!e.texture||!e.texture.isTranslucent()),r=r&&(!e.mapper||e.mapper.getIsOpaque()),r},t.hasTranslucentPolygonalGeometry=()=>e.mapper===null?!1:(e.property===null&&t.setProperty(t.makeProperty()),!t.getIsOpaque()),t.makeProperty=Cr.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const r=e.mapper.getBounds();if(!r||r.length!==6)return r;if(r[0]>r[1])return e.mapperBounds=r.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),r;if(!e.mapperBounds||r[0]!==e.mapperBounds[0]||r[1]!==e.mapperBounds[1]||r[2]!==e.mapperBounds[2]||r[3]!==e.mapperBounds[3]||r[4]!==e.mapperBounds[4]||r[5]!==e.mapperBounds[5]||t.getMTime()>e.boundsMTime.getMTime()){BS("Recomputing bounds..."),e.mapperBounds=r.concat();const a=[];Re.getCorners(r,a),t.computeMatrix();const s=new Float64Array(16);Oe(s,e.matrix),a.forEach(i=>xe(i,i,s)),e.bounds[0]=e.bounds[2]=e.bounds[4]=Number.MAX_VALUE,e.bounds[1]=e.bounds[3]=e.bounds[5]=-Number.MAX_VALUE,e.bounds=e.bounds.map((i,o)=>o%2===0?a.reduce((u,c)=>u>c[o/2]?c[o/2]:u,i):a.reduce((u,c)=>u{let r=n.getMTime();if(e.property!==null){const a=e.property.getMTime();r=a>r?a:r}if(e.backfaceProperty!==null){const a=e.backfaceProperty.getMTime();r=a>r?a:r}return r},t.getRedrawMTime=()=>{let r=e.mtime;if(e.mapper!==null){let a=e.mapper.getMTime();r=a>r?a:r,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),a=e.mapper.getInput().getMTime(),r=a>r?a:r)}return r},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1,t.processSelectorPixelBuffers=(r,a)=>{e.mapper&&e.mapper.processSelectorPixelBuffers&&e.mapper.processSelectorPixelBuffers(r,a)}}const FS={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function rl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FS,n),DS.extend(t,e,n),e.boundsMTime={},E.obj(e.boundsMTime),E.set(t,e,["property"]),E.setGet(t,e,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),kS(t,e)}const US=E.newInstance(rl,"vtkActor");var en={newInstance:US,extend:rl};const al={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},He={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},NS=He.FLOAT;var sl={DefaultDataType:NS,DataTypeByteSize:al,VtkDataTypes:He};const{vtkErrorMacro:bS}=Pt,{DefaultDataType:GS}=sl,$S=1e-6;function pi(t,e,n){const r=t.length;let a=Number.MAX_VALUE,s=-Number.MAX_VALUE,i,o;for(o=e;os&&(s=i);return{min:a,max:s}}function WS(){let t=Number.MAX_VALUE,e=-Number.MAX_VALUE,n=0,r=0;return{add(a){t>a&&(t=a),e1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;if(e<0&&n>1){const a=t.length/n,s=new Float64Array(a);for(let i=0,o=0;i1&&arguments[1]!==void 0?arguments[1]:0;const n=t||[];for(;n.length<=e;)n.push(null);return n}function ao(t){return Object.prototype.toString.call(t).slice(8,-1)}function zS(t){const e=t.getNumberOfComponents();let n=0;const r=new Array(e);for(let a=0;an&&(n=s)}return n}const AS={computeRange:il,createRangeHelper:WS,fastComputeRange:pi,getDataType:ao,getMaxNorm:zS};function HS(t,e){e.classHierarchy.push("vtkDataArray");function n(r){if(r<0)return!1;const a=t.getNumberOfComponents(),s=e.values.length/(a>0?a:1);if(r===s)return!0;if(r>s){const i=e.values;return e.values=Tr(e.dataType,(r+s)*a),e.values.set(i),!0}return e.size>r*a&&(e.size=r*a,t.dataChange()),!0}t.dataChange=()=>{e.ranges=null,t.modified()},t.resize=r=>{n(r);const a=r*t.getNumberOfComponents();return e.size!==a?(e.size=a,t.dataChange(),!0):!1},t.initialize=()=>{t.resize(0)},t.getElementComponentSize=()=>e.values.BYTES_PER_ELEMENT,t.getComponent=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.values[r*e.numberOfComponents+a]},t.setComponent=(r,a,s)=>{s!==e.values[r*e.numberOfComponents+a]&&(e.values[r*e.numberOfComponents+a]=s,t.dataChange())},t.getValue=r=>{const a=r/e.numberOfComponents,s=r%e.numberOfComponents;return t.getComponent(a,s)},t.setValue=(r,a)=>{const s=r/e.numberOfComponents,i=r%e.numberOfComponents;t.setComponent(s,i,a)},t.getData=()=>e.size===e.values.length?e.values:e.values.subarray(0,e.size),t.getRange=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,a=r;a<0&&(a=e.numberOfComponents===1?0:e.numberOfComponents);let s=null;return e.ranges||(e.ranges=lc(e.ranges,e.numberOfComponents)),s=e.ranges[a],s?(e.rangeTuple[0]=s.min,e.rangeTuple[1]=s.max,e.rangeTuple):(s=il(t.getData(),r,e.numberOfComponents),e.ranges[a]=s,e.rangeTuple[0]=s.min,e.rangeTuple[1]=s.max,e.rangeTuple)},t.setRange=(r,a)=>{e.ranges||(e.ranges=lc(e.ranges,e.numberOfComponents));const s={min:r.min,max:r.max};return e.ranges[a]=s,e.rangeTuple[0]=s.min,e.rangeTuple[1]=s.max,e.rangeTuple},t.setTuple=(r,a)=>{const s=r*e.numberOfComponents;for(let i=0;i{let s=r*e.numberOfComponents;const i=Math.min(a.length,e.size-s);for(let o=0;o(e.size<=r*e.numberOfComponents&&(e.size=(r+1)*e.numberOfComponents,n(r+1)),t.setTuple(r,a),r),t.insertTuples=(r,a)=>{const s=r+a.length/e.numberOfComponents;return e.size{const a=e.size/e.numberOfComponents;return t.insertTuple(a,r)},t.insertNextTuples=r=>{const a=e.size/e.numberOfComponents;return t.insertTuples(a,r)},t.findTuple=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$S;for(let s=0;sa){i=!1;break}if(i)return s/e.numberOfComponents}return-1},t.getTuple=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const s=e.numberOfComponents||1,i=r*s;switch(s){case 4:a[3]=e.values[i+3];case 3:a[2]=e.values[i+2];case 2:a[1]=e.values[i+1];case 1:a[0]=e.values[i];break;default:for(let o=s-1;o>=0;--o)a[o]=e.values[i+o]}return a},t.getTuples=(r,a)=>{const s=(r??0)*e.numberOfComponents,i=(a??t.getNumberOfTuples())*e.numberOfComponents,o=t.getData().subarray(s,i);return o.length>0?o:null},t.getTupleLocation=function(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:1)*e.numberOfComponents},t.getNumberOfComponents=()=>e.numberOfComponents,t.getNumberOfValues=()=>e.size,t.getNumberOfTuples=()=>e.size/e.numberOfComponents,t.getDataType=()=>e.dataType,t.newClone=()=>cl({empty:!0,name:e.name,dataType:e.dataType,numberOfComponents:e.numberOfComponents}),t.getName=()=>(e.name||(t.modified(),e.name=`vtkDataArray${t.getMTime()}`),e.name),t.setData=(r,a)=>{e.values=r,e.size=r.length,e.dataType=ao(r),a&&(e.numberOfComponents=a),e.size%e.numberOfComponents!==0&&(e.numberOfComponents=1),t.dataChange()},t.getState=()=>{if(e.deleted)return null;const r={...e,vtkClass:t.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},t.deepCopy=r=>{const a=t.getDataType(),s=e.values;t.shallowCopy(r),(s==null?void 0:s.length)>=r.getNumberOfValues()&&a===r.getDataType()?(s.set(r.getData()),e.values=s,t.dataChange()):t.setData(r.getData().slice())},t.interpolateTuple=(r,a,s,i,o,u)=>{const c=e.numberOfComponents||1;(c!==a.getNumberOfComponents()||c!==i.getNumberOfComponents())&&bS("numberOfComponents must match");const f=a.getTuple(s),l=i.getTuple(o),g=[];switch(g.length=c,c){case 4:g[3]=f[3]+(l[3]-f[3])*u;case 3:g[2]=f[2]+(l[2]-f[2])*u;case 2:g[1]=f[1]+(l[1]-f[1])*u;case 1:g[0]=f[0]+(l[0]-f[0])*u;break;default:for(let p=0;p2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,jS,n),!e.empty&&!e.values&&!e.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(e.values?Array.isArray(e.values)&&(e.values=Oi(e.dataType,e.values)):e.values=Tr(e.dataType,e.size),e.values&&(e.size=e.size??e.values.length,e.dataType=ao(e.values)),Pe(t,e),Ir(t,e,["name","numberOfComponents"]),e.size%e.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");HS(t,e)}const cl=Ee(ol,"vtkDataArray");var Se={newInstance:cl,extend:ol,...AS,...sl};function KS(t,e){e.classHierarchy.push("vtkAbstractMapper"),t.update=()=>{t.getInputData()},t.addClippingPlane=n=>n.isA("vtkPlane")?e.clippingPlanes.includes(n)?!1:(e.clippingPlanes.push(n),t.modified(),!0):!1,t.getNumberOfClippingPlanes=()=>e.clippingPlanes.length,t.removeAllClippingPlanes=()=>e.clippingPlanes.length===0?!1:(e.clippingPlanes.length=0,t.modified(),!0),t.removeClippingPlane=n=>{const r=e.clippingPlanes.indexOf(n);return r===-1?!1:(e.clippingPlanes.splice(r,1),t.modified(),!0)},t.getClippingPlanes=()=>e.clippingPlanes,t.setClippingPlanes=n=>{if(n)if(!Array.isArray(n))t.addClippingPlane(n);else{const r=n.length;for(let a=0;a{const s=e.clippingPlanes,i=n;if(s){const o=s.length;if(r>=0&&r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,PS,n),E.obj(t,e),E.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),KS(t,e)}var ul={extend:XS};function IS(t,e){t.getBounds=()=>(E.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),Yi()),t.getCenter=()=>{var r;const n=t.getBounds();return e.center=Re.isValid(n)?Re.getCenter(n):null,(r=e.center)==null?void 0:r.slice()},t.getLength=()=>{const n=t.getBounds();return Re.getDiagonalLength(n)}}const YS=t=>({bounds:[...Re.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function qS(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YS(n)),ul.extend(t,e,n),E.setGet(t,e,["viewSpecificProperties"]),IS(t,e)}var QS={extend:qS};const{vtkErrorMacro:gc,vtkWarningMacro:ZS}=E;function JS(t,e){e.classHierarchy.push("vtkFieldData");const n=t.getState;e.arrays&&(e.arrays=e.arrays.map(r=>({data:Bt(r.data)}))),t.initialize=()=>{t.initializeFields(),t.copyAllOn(),t.clearFieldFlags()},t.initializeFields=()=>{e.arrays=[],e.copyFieldFlags={},t.modified()},t.copyStructure=r=>{t.initializeFields(),e.copyFieldFlags=r.getCopyFieldFlags().map(a=>a),e.arrays=r.arrays().map(a=>({array:a}))},t.getNumberOfArrays=()=>e.arrays.length,t.getNumberOfActiveArrays=()=>e.arrays.length,t.addArray=r=>{const a=r.getName(),{array:s,index:i}=t.getArrayWithIndex(a);return s!=null?(e.arrays[i]={data:r},i):(e.arrays=[].concat(e.arrays,{data:r}),e.arrays.length-1)},t.removeAllArrays=()=>{e.arrays=[]},t.removeArray=r=>{const a=e.arrays.findIndex(s=>s.data.getName()===r);return t.removeArrayByIndex(a)},t.removeArrayByIndex=r=>r!==-1&&re.arrays.map(r=>r.data),t.getArray=r=>typeof r=="number"?t.getArrayByIndex(r):t.getArrayByName(r),t.getArrayByName=r=>e.arrays.reduce((a,s,i)=>s.data.getName()===r?s.data:a,null),t.getArrayWithIndex=r=>{const a=e.arrays.findIndex(s=>s.data.getName()===r);return{array:a!==-1?e.arrays[a].data:null,index:a}},t.getArrayByIndex=r=>r>=0&&rt.getArrayWithIndex(r).index>=0,t.getArrayName=r=>{const a=e.arrays[r];return a?a.data.getName():""},t.getCopyFieldFlags=()=>e.copyFieldFlags,t.getFlag=r=>e.copyFieldFlags[r],t.passData=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;r.getArrays().forEach(i=>{const o=t.getFlag(i.getName());if(o!==!1&&!(e.doCopyAllOff&&o!==!0)&&i){let u=t.getArrayByName(i.getName());if(u)if(i.getNumberOfComponents()===u.getNumberOfComponents())if(a>-1&&a-1?s:a;u.insertTuple(c,i.getTuple(a))}else u.insertTuples(0,i.getTuples());else gc("Unhandled case in passData");else if(a<0||a>i.getNumberOfTuples())t.addArray(i),r.getAttributes(i).forEach(c=>{t.setAttribute(i,c)});else{const c=i.getNumberOfComponents();let f=i.getNumberOfValues();const l=s>-1?s:a;f<=l*c&&(f=(l+1)*c),u=Se.newInstance({name:i.getName(),dataType:i.getDataType(),numberOfComponents:c,values:E.newTypedArray(i.getDataType(),f),size:0}),u.insertTuple(l,i.getTuple(a)),t.addArray(u),r.getAttributes(i).forEach(g=>{t.setAttribute(u,g)})}}})},t.interpolateData=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5;r.getArrays().forEach(u=>{const c=t.getFlag(u.getName());if(c!==!1&&!(e.doCopyAllOff&&c!==!0)&&u){let f=t.getArrayByName(u.getName());if(f)if(u.getNumberOfComponents()===f.getNumberOfComponents())if(a>-1&&a-1?i:a;f.interpolateTuple(l,u,a,u,s,o),ZS("Unexpected case in interpolateData")}else f.insertTuples(u.getTuples());else gc("Unhandled case in interpolateData");else if(a<0||s<0||a>u.getNumberOfTuples())t.addArray(u),r.getAttributes(u).forEach(l=>{t.setAttribute(u,l)});else{const l=u.getNumberOfComponents();let g=u.getNumberOfValues();const p=i>-1?i:a;g<=p*l&&(g=(p+1)*l),f=Se.newInstance({name:u.getName(),dataType:u.getDataType(),numberOfComponents:l,values:E.newTypedArray(u.getDataType(),g),size:0}),f.interpolateTuple(p,u,a,u,s,o),t.addArray(f),r.getAttributes(u).forEach(T=>{t.setAttribute(f,T)})}}})},t.copyFieldOn=r=>{e.copyFieldFlags[r]=!0},t.copyFieldOff=r=>{e.copyFieldFlags[r]=!1},t.copyAllOn=()=>{(!e.doCopyAllOn||e.doCopyAllOff)&&(e.doCopyAllOn=!0,e.doCopyAllOff=!1,t.modified())},t.copyAllOff=()=>{(e.doCopyAllOn||!e.doCopyAllOff)&&(e.doCopyAllOn=!1,e.doCopyAllOff=!0,t.modified())},t.clearFieldFlags=()=>{e.copyFieldFlags={}},t.deepCopy=r=>{e.arrays=r.getArrays().map(a=>{const s=a.newClone();return s.deepCopy(a),{data:s}})},t.copyFlags=r=>r.getCopyFieldFlags().map(a=>a),t.reset=()=>e.arrays.forEach(r=>r.data.reset()),t.getMTime=()=>e.arrays.reduce((r,a)=>a.data.getMTime()>r?a.data.getMTime():r,e.mtime),t.getNumberOfComponents=()=>e.arrays.reduce((r,a)=>r+a.data.getNumberOfComponents(),0),t.getNumberOfTuples=()=>e.arrays.length>0?e.arrays[0].getNumberOfTuples():0,t.getState=()=>{const r=n();return r&&(r.arrays=e.arrays.map(a=>({data:a.data.getState()}))),r}}const eC={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function fl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eC,n),E.obj(t,e),JS(t,e)}const tC=E.newInstance(fl,"vtkFieldData");var nC={newInstance:tC,extend:fl};const rC={SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},aC={MAX:0,EXACT:1,NOLIMIT:2},sC={DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},iC={DUPLICATEPOINT:1,HIDDENPOINT:2},oC={COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},cC="vtkGhostType",uC={DEFAULT:0,SINGLE:1,DOUBLE:2};var ll={AttributeCopyOperations:oC,AttributeLimitTypes:aC,AttributeTypes:rC,CellGhostTypes:sC,DesiredOutputPrecision:uC,PointGhostTypes:iC,ghostArrayName:cC};const{AttributeTypes:un,AttributeCopyOperations:En}=ll,{vtkWarningMacro:fa}=E;function fC(t,e){const n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(i){let o=n.find(u=>un[u.toUpperCase()]===i||typeof i!="number"&&u.toLowerCase()===i.toLowerCase());return typeof o>"u"&&(o=null),o}e.classHierarchy.push("vtkDataSetAttributes");const a={...t};t.checkNumberOfComponents=i=>!0,t.setAttribute=(i,o)=>{const u=r(o);if(i&&u.toUpperCase()==="PEDIGREEIDS"&&!i.isA("vtkDataArray"))return fa(`Cannot set attribute ${u}. The attribute must be a vtkDataArray.`),-1;if(i&&!t.checkNumberOfComponents(i,u))return fa(`Cannot set attribute ${u}. Incorrect number of components.`),-1;let c=e[`active${u}`];if(c>=0&&cn.filter(o=>t[`get${o}`]()===i),t.setActiveAttributeByName=(i,o)=>t.setActiveAttributeByIndex(t.getArrayWithIndex(i).index,o),t.setActiveAttributeByIndex=(i,o)=>{const u=r(o);if(i>=0&&i{const o=r(i);return t[`get${o}`]()},t.removeAllArrays=()=>{n.forEach(i=>{e[`active${i}`]=-1}),a.removeAllArrays()},t.removeArrayByIndex=i=>(i!==-1&&n.forEach(o=>{i===e[`active${o}`]?e[`active${o}`]=-1:i{const o=`active${i}`;t[`get${i}`]=()=>t.getArrayByIndex(e[o]),t[`set${i}`]=u=>t.setAttribute(u,i),t[`setActive${i}`]=u=>t.setActiveAttributeByIndex(t.getArrayWithIndex(u).index,i),t[`copy${i}Off`]=()=>{const u=i.toUpperCase();e.copyAttributeFlags[En.PASSDATA][un[u]]=!1},t[`copy${i}On`]=()=>{const u=i.toUpperCase();e.copyAttributeFlags[En.PASSDATA][un[u]]=!0}}),t.initializeAttributeCopyFlags=()=>{e.copyAttributeFlags=[],Object.keys(En).filter(i=>i!=="ALLCOPY").forEach(i=>{e.copyAttributeFlags[En[i]]=Object.keys(un).filter(o=>o!=="NUM_ATTRIBUTES").reduce((o,u)=>(o[un[u]]=!0,o),[])}),e.copyAttributeFlags[En.COPYTUPLE][un.GLOBALIDS]=!1,e.copyAttributeFlags[En.INTERPOLATE][un.GLOBALIDS]=!1,e.copyAttributeFlags[En.COPYTUPLE][un.PEDIGREEIDS]=!1},t.initialize=E.chain(t.initialize,t.initializeAttributeCopyFlags),e.dataArrays&&Object.keys(e.dataArrays).length&&Object.keys(e.dataArrays).forEach(i=>{!e.dataArrays[i].ref&&e.dataArrays[i].type==="vtkDataArray"&&t.addArray(Se.newInstance(e.dataArrays[i]))});const s=t.shallowCopy;t.shallowCopy=(i,o)=>{s(i,o),e.arrays=i.getArrays().map(u=>{const c=u.newClone();return c.shallowCopy(u,o),{data:c}})},t.initializeAttributeCopyFlags()}const lC={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function gl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lC,n),nC.extend(t,e,n),E.setGet(t,e,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),e.arrays||(e.arrays={}),fC(t,e)}const gC=E.newInstance(gl,"vtkDataSetAttributes");var pc={newInstance:gC,extend:gl,...ll};const pC={UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},pl={FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7};var hC={FieldDataTypes:pC,FieldAssociations:pl};const hi=["pointData","cellData","fieldData"];function dC(t,e){e.classHierarchy.push("vtkDataSet"),hi.forEach(r=>{e[r]?e[r]=Bt(e[r]):e[r]=pc.newInstance()});const n=t.shallowCopy;t.shallowCopy=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n(r,a),hi.forEach(s=>{e[s]=pc.newInstance(),e[s].shallowCopy(r.getReferenceByName(s))})}}const vC={};function hl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vC,n),E.obj(t,e),E.setGet(t,e,hi),dC(t,e)}const yC=E.newInstance(hl,"vtkDataSet");var Pn={newInstance:yC,extend:hl,...hC};const wt={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var dl={StructuredType:wt};const{StructuredType:It}=dl;function TC(t){let e=0;for(let n=0;n<3;++n)t[n*2]t[1]||t[2]>t[3]||t[4]>t[5]?It.EMPTY:e===3?It.XYZ_GRID:e===2?t[0]===t[1]?It.YZ_PLANE:t[2]===t[3]?It.XZ_PLANE:It.XY_PLANE:e===1?t[0]o!==s[u]);return i&&(e.extent=s.slice(),e.dataDescription=xC.getDataDescriptionFromExtent(e.extent),t.modified()),i},t.setDimensions=function(){let n,r,a;if(e.deleted){_n("instance deleted - cannot call any method");return}if(arguments.length===1){const s=arguments.length<=0?void 0:arguments[0];n=s[0],r=s[1],a=s[2]}else if(arguments.length===3)n=arguments.length<=0?void 0:arguments[0],r=arguments.length<=1?void 0:arguments[1],a=arguments.length<=2?void 0:arguments[2];else{_n("Bad dimension specification");return}t.setExtent(0,n-1,0,r-1,0,a-1)},t.getDimensions=()=>[e.extent[1]-e.extent[0]+1,e.extent[3]-e.extent[2]+1,e.extent[5]-e.extent[4]+1],t.getNumberOfCells=()=>{const n=t.getDimensions();let r=1;for(let a=0;a<3;a++){if(n[a]===0)return 0;n[a]>1&&(r*=n[a]-1)}return r},t.getNumberOfPoints=()=>{const n=t.getDimensions();return n[0]*n[1]*n[2]},t.getPoint=n=>{const r=t.getDimensions();if(r[0]===0||r[1]===0||r[2]===0)return _n("Requesting a point from an empty image."),null;const a=new Float64Array(3);switch(e.dataDescription){case wt.EMPTY:return null;case wt.SINGLE_POINT:break;case wt.X_LINE:a[0]=n;break;case wt.Y_LINE:a[1]=n;break;case wt.Z_LINE:a[2]=n;break;case wt.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case wt.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case wt.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case wt.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:_n("Invalid dataDescription");break}const s=[0,0,0];return t.indexToWorld(a,s),s},t.getBounds=()=>t.extentToBounds(t.getSpatialExtent()),t.extentToBounds=n=>Re.transformBounds(n,e.indexToWorld),t.getSpatialExtent=()=>Re.inflate([...e.extent],.5),t.computeTransforms=()=>{tf(e.indexToWorld,e.origin),e.indexToWorld[0]=e.direction[0],e.indexToWorld[1]=e.direction[1],e.indexToWorld[2]=e.direction[2],e.indexToWorld[4]=e.direction[3],e.indexToWorld[5]=e.direction[4],e.indexToWorld[6]=e.direction[5],e.indexToWorld[8]=e.direction[6],e.indexToWorld[9]=e.direction[7],e.indexToWorld[10]=e.direction[8],gr(e.indexToWorld,e.indexToWorld,e.spacing),ut(e.worldToIndex,e.indexToWorld)},t.indexToWorld=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return xe(r,n,e.indexToWorld),r},t.indexToWorldVec3=t.indexToWorld,t.worldToIndex=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return xe(r,n,e.worldToIndex),r},t.worldToIndexVec3=t.worldToIndex,t.indexToWorldBounds=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Re.transformBounds(n,e.indexToWorld,r)},t.worldToIndexBounds=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Re.transformBounds(n,e.worldToIndex,r)},t.onModified(t.computeTransforms),t.computeTransforms(),t.getCenter=()=>Re.getCenter(t.getBounds()),t.computeHistogram=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const a=[0,0,0,0,0,0];t.worldToIndexBounds(n,a);const s=[0,0,0],i=[0,0,0];Re.computeCornerPoints(a,s,i),oc(s,s),oc(i,i);const o=t.getDimensions();cc(s,[0,0,0],[o[0]-1,o[1]-1,o[2]-1],s),cc(i,[0,0,0],[o[0]-1,o[1]-1,o[2]-1],i);const u=o[0],c=o[0]*o[1],f=t.getPointData().getScalars().getData();let l=-1/0,g=1/0,p=0,T=0,h=0;for(let y=s[2];y<=i[2];y++)for(let v=s[1];v<=i[1];v++){let w=s[0]+v*u+y*c;for(let S=s[0];S<=i[0];S++){if(!r||r([S,v,y],a)){const R=f[w];R>l&&(l=R),R0?T/h:0,x=h?Math.abs(p/h-d*d):0,C=Math.sqrt(x);return{minimum:g,maximum:l,average:d,variance:x,sigma:C,count:h}},t.computeIncrements=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const a=[];let s=r;for(let i=0;i<3;++i)a[i]=s,s*=n[i*2+1]-n[i*2]+1;return a},t.computeOffsetIndex=n=>{let[r,a,s]=n;const i=t.getExtent(),o=t.getPointData().getScalars().getNumberOfComponents(),u=t.computeIncrements(i,o);return Math.floor((Math.round(r)-i[0])*u[0]+(Math.round(a)-i[2])*u[1]+(Math.round(s)-i[4])*u[2])},t.getOffsetIndexFromWorld=n=>{const r=t.getExtent(),a=t.worldToIndex(n);for(let s=0;s<3;++s)if(a[s]r[s*2+1])return _n(`GetScalarPointer: Pixel ${a} is not in memory. Current extent = ${r}`),NaN;return t.computeOffsetIndex(a)},t.getScalarValueFromWorld=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const a=t.getPointData().getScalars().getNumberOfComponents();if(r<0||r>=a)return _n(`GetScalarPointer: Scalar Component ${r} is not within bounds. Current Scalar numberOfComponents: ${a}`),NaN;const s=t.getOffsetIndexFromWorld(n);return Number.isNaN(s)?s:t.getPointData().getScalars().getComponent(s,r)}}const CC={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:wt.EMPTY};function vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CC,n),Pn.extend(t,e,n),e.direction?Array.isArray(e.direction)&&(e.direction=new Float64Array(e.direction.slice(0,9))):e.direction=Kn(new Float64Array(9)),e.indexToWorld=new Float64Array(16),e.worldToIndex=new Float64Array(16),E.get(t,e,["indexToWorld","worldToIndex"]),E.setGetArray(t,e,["origin","spacing"],3),E.setGetArray(t,e,["direction"],9),E.getArray(t,e,["extent"],6),SC(t,e)}const wC=E.newInstance(vl,"vtkImageData");var EC={newInstance:wC,extend:vl};const _C={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},di={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var so={VectorMode:_C,ScalarMappingTarget:di};const RC={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},OC={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},DC={BY_ID:0,BY_NAME:1};var fs={ColorMode:RC,GetArray:DC,ScalarMode:OC};const{ScalarMappingTarget:hc,VectorMode:Wt}=so,{VtkDataTypes:Rn}=Se,{ColorMode:la}=fs,{vtkErrorMacro:dc}=E;function MC(t){return t}function vc(t){return Math.floor(t*255+.5)}function VC(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(Wt.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(Wt.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(Wt.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){dc("Values and annotations do not have the same number of tuples so ignoring");return}if(e.annotationArray=[],r&&n){const a=r.length;for(let s=0;s{let a=t.checkForAnnotatedValue(n),s=!1;return a>=0?e.annotationArray[a].annotation!==r&&(e.annotationArray[a].annotation=r,s=!0):(e.annotationArray.push({value:n,annotation:r}),a=e.annotationArray.length-1,s=!0),s&&(t.updateAnnotatedValueMap(),t.modified()),a},t.getNumberOfAnnotatedValues=()=>e.annotationArray.length,t.getAnnotatedValue=n=>n<0||n>=e.annotationArray.length?null:e.annotationArray[n].value,t.getAnnotation=n=>e.annotationArray[n]===void 0?null:e.annotationArray[n].annotation,t.getAnnotatedValueIndex=n=>e.annotationArray.length?t.checkForAnnotatedValue(n):-1,t.removeAnnotation=n=>{const r=t.checkForAnnotatedValue(n),a=r>=0;return a&&(e.annotationArray.splice(r,1),t.updateAnnotatedValueMap(),t.modified()),a},t.resetAnnotations=()=>{e.annotationArray=[],e.annotatedValueMap=[],t.modified()},t.getAnnotationColor=(n,r)=>{if(e.indexedLookup){const a=t.getAnnotatedValueIndex(n);t.getIndexedColor(a,r)}else t.getColor(parseFloat(n),r),r[3]=1},t.checkForAnnotatedValue=n=>t.getAnnotatedValueIndexInternal(n),t.getAnnotatedValueIndexInternal=n=>{if(e.annotatedValueMap[n]!==void 0){const r=e.annotationArray.length;return e.annotatedValueMap[n]%r}return-1},t.getIndexedColor=(n,r)=>{r[0]=0,r[1]=0,r[2]=0,r[3]=0},t.updateAnnotatedValueMap=()=>{e.annotatedValueMap=[];const n=e.annotationArray.length;for(let r=0;r{const s=n.getNumberOfComponents();let i=null;if(r===la.DEFAULT&&n.getDataType()===Rn.UNSIGNED_CHAR||r===la.DIRECT_SCALARS&&n)i=t.convertToRGBA(n,s,n.getNumberOfTuples());else{const o={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:Rn.UNSIGNED_CHAR},u=E.newTypedArray(o.dataType,4*n.getNumberOfTuples());o.values=u,o.size=u.length,i=Se.newInstance(o);let c=a;c<0&&s>1?t.mapVectorsThroughTable(n,i,hc.RGBA,-1,-1):(c<0&&(c=0),c>=s&&(c=s-1),t.mapScalarsThroughTable(n,i,hc.RGBA,c))}return i},t.mapVectorsToMagnitude=(n,r,a)=>{const s=n.getNumberOfTuples(),i=n.getNumberOfComponents(),o=r.getData(),u=n.getData();for(let c=0;c{let o=t.getVectorMode(),u=i,c=s;const f=n.getNumberOfComponents();o===Wt.COMPONENT?(c===-1&&(c=t.getVectorComponent()),c<0&&(c=0),c>=f&&(c=f-1)):(u===-1&&(u=t.getVectorSize()),u<=0?(c=0,u=f):(c<0&&(c=0),c>=f&&(c=f-1),c+u>f&&(u=f-c)),o===Wt.MAGNITUDE&&(f===1||u===1)&&(o=Wt.COMPONENT));let l=0;switch(c>0&&(l=c),o){case Wt.COMPONENT:{t.mapScalarsThroughTable(n,r,a,l);break}case Wt.RGBCOLORS:break;case Wt.MAGNITUDE:default:{const g=Se.newInstance({numberOfComponents:1,values:new Float32Array(n.getNumberOfTuples())});t.mapVectorsToMagnitude(n,g,u),t.mapScalarsThroughTable(g,r,a,0);break}}},t.luminanceToRGBA=(n,r,a,s)=>{const i=s(a),o=r.getData(),u=n.getData(),c=o.length,f=0,l=1;let g=0;for(let p=f;p{const i=r.getData(),o=n.getData(),u=i.length,c=0,f=2;let l=0;for(let g=c;g{const i=vc(a),o=r.getData(),u=n.getData(),c=o.length,f=0,l=3;let g=0;for(let p=f;p{const i=r.getData(),o=n.getData(),u=i.length,c=0,f=4;let l=0;for(let g=c;g{let{alpha:s}=e;if(r===4&&s>=1&&n.getDataType()===Rn.UNSIGNED_CHAR)return n;const i=Se.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:Rn.UNSIGNED_CHAR});if(a<=0)return i;s=s>0?s:0,s=s<1?s:1;let o=MC;switch((n.getDataType()===Rn.FLOAT||n.getDataType()===Rn.DOUBLE)&&(o=vc),r){case 1:t.luminanceToRGBA(i,n,s,o);break;case 2:t.luminanceAlphaToRGBA(i,n,o);break;case 3:t.rGBToRGBA(i,n,s,o);break;case 4:t.rGBAToRGBA(i,n,s,o);break;default:return dc("Cannot convert colors"),null}return i},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>256*256*256,t.setRange=(n,r)=>t.setMappingRange(n,r),t.getRange=()=>t.getMappingRange(),t.areScalarsOpaque=(n,r,a)=>{if(!n)return t.isOpaque();const s=n.getNumberOfComponents();return r===la.DEFAULT&&n.getDataType()===Rn.UNSIGNED_CHAR||r===la.DIRECT_SCALARS?s===3||s===1?e.alpha>=1:n.getRange(s-1)[0]===255:!0}}const mC={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Wt.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function yl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mC,n),E.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],E.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),E.setArray(t,e,["mappingRange"],2),E.getArray(t,e,["mappingRange"]),VC(t,e)}const LC=E.newInstance(yl,"vtkScalarsToColors");var ls={newInstance:LC,extend:yl,...so};const{vtkErrorMacro:yc}=E,Tc=0,xc=1,ms=2;function BC(t,e){e.classHierarchy.push("vtkLookupTable"),t.isOpaque=()=>{if(e.opaqueFlagBuildTime.getMTime()!1,t.getNumberOfAvailableColors=()=>e.table.length/4,t.linearIndexLookup=(n,r)=>{let a=0;const s=Number(n);return sr.range[1]?a=r.maxIndex+xc+1.5:(a=(s+r.shift)*r.scale,a=a{let s=0;qa(n)?s=Math.floor(a.maxIndex+1.5+ms):s=t.linearIndexLookup(n,a);const i=4*s;return r.slice(i,i+4)},t.indexedLookupFunction=(n,r,a)=>{let s=t.getAnnotatedValueIndexInternal(n);s===-1&&(s=e.numberOfColors+ms);const i=4*s;return[r[i],r[i+1],r[i+2],r[i+3]]},t.lookupShiftAndScale=(n,r)=>{r.shift=-n[0],r.scale=Number.MAX_VALUE,n[1]>n[0]&&(r.scale=(r.maxIndex+1)/(n[1]-n[0]))},t.mapScalarsThroughTable=(n,r,a,s)=>{let i=t.linearLookup;e.indexedLookup&&(i=t.indexedLookupFunction);const o=t.getMappingRange(),u={maxIndex:t.getNumberOfColors()-1,range:o,shift:0,scale:0};t.lookupShiftAndScale(o,u);const c=t.getAlpha(),f=n.getNumberOfTuples(),l=n.getNumberOfComponents(),g=r.getData(),p=n.getData();if(c>=1){if(a===di.RGBA)for(let T=0;T{let n=0,r=0,a=0,s=0;const i=e.numberOfColors-1;i&&(n=(e.hueRange[1]-e.hueRange[0])/i,r=(e.saturationRange[1]-e.saturationRange[0])/i,a=(e.valueRange[1]-e.valueRange[0])/i,s=(e.alphaRange[1]-e.alphaRange[0])/i),e.table.length=4*i+16;const o=[],u=[];for(let c=0;c<=i;c++)o[0]=e.hueRange[0]+c*n,o[1]=e.saturationRange[0]+c*r,o[2]=e.valueRange[0]+c*a,nr(o,u),u[3]=e.alphaRange[0]+c*s,e.table[c*4]=u[0]*255+.5,e.table[c*4+1]=u[1]*255+.5,e.table[c*4+2]=u[2]*255+.5,e.table[c*4+3]=u[3]*255+.5;t.buildSpecialColors(),e.buildTime.modified()},t.setTable=n=>{if(Array.isArray(n)){const a=n[0].length;e.numberOfColors=n.length;const s=4-a;let i=0;for(let o=0;o{const{numberOfColors:n}=e,r=e.table;let a=(n+Tc)*4;e.useBelowRangeColor||n===0?(r[a]=e.belowRangeColor[0]*255+.5,r[a+1]=e.belowRangeColor[1]*255+.5,r[a+2]=e.belowRangeColor[2]*255+.5,r[a+3]=e.belowRangeColor[3]*255+.5):(r[a]=r[0],r[a+1]=r[1],r[a+2]=r[2],r[a+3]=r[3]),a=(n+xc)*4,e.useAboveRangeColor||n===0?(r[a]=e.aboveRangeColor[0]*255+.5,r[a+1]=e.aboveRangeColor[1]*255+.5,r[a+2]=e.aboveRangeColor[2]*255+.5,r[a+3]=e.aboveRangeColor[3]*255+.5):(r[a]=r[4*(n-1)+0],r[a+1]=r[4*(n-1)+1],r[a+2]=r[4*(n-1)+2],r[a+3]=r[4*(n-1)+3]),a=(n+ms)*4,r[a]=e.nanColor[0]*255+.5,r[a+1]=e.nanColor[1]*255+.5,r[a+2]=e.nanColor[2]*255+.5,r[a+3]=e.nanColor[3]*255+.5},t.build=()=>{(e.table.length<1||t.getMTime()>e.buildTime.getMTime()&&e.insertTime.getMTime()<=e.buildTime.getMTime())&&t.forceBuild()},e.table.length>0&&(t.buildSpecialColors(),e.insertTime.modified())}const kC={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Tl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kC,n),ls.extend(t,e,n),e.table||(e.table=[]),e.buildTime={},E.obj(e.buildTime),e.opaqueFlagBuildTime={},E.obj(e.opaqueFlagBuildTime,{mtime:0}),e.insertTime={},E.obj(e.insertTime,{mtime:0}),E.get(t,e,["buildTime"]),E.setGet(t,e,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),E.setArray(t,e,["alphaRange","hueRange","saturationRange","valueRange"],2),E.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),E.getArray(t,e,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),BC(t,e)}const FC=E.newInstance(Tl,"vtkLookupTable");var Br={newInstance:FC,extend:Tl};let xl=1,io=0;const UC=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function NC(){return xl}function bC(t){xl=t}function GC(){return io}function gs(){io=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0}function $C(){gs(0)}function WC(){gs(0)}function zC(){gs(1)}function AC(){return UC[io]}var vi={getResolveCoincidentTopologyAsString:AC,getResolveCoincidentTopologyPolygonOffsetFaces:NC,getResolveCoincidentTopology:GC,setResolveCoincidentTopology:gs,setResolveCoincidentTopologyPolygonOffsetFaces:bC,setResolveCoincidentTopologyToDefault:$C,setResolveCoincidentTopologyToOff:WC,setResolveCoincidentTopologyToPolygonOffset:zC};function Sl(t,e,n){n.forEach(r=>{t[`get${r.method}`]=()=>e[r.key],t[`set${r.method}`]=(a,s)=>{e[r.key]={factor:a,offset:s}}})}const oo=["Polygon","Line","Point"],HC={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Fn={};Sl(Fn,HC,oo.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function jC(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),E.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(vi).forEach(n=>{t[n]=vi[n]}),Object.keys(Fn).forEach(n=>{t[n]=Fn[n]}),Sl(t,e.topologyOffset,oo.map(n=>({key:n,method:`RelativeCoincidentTopology${n}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const n=Fn.getResolveCoincidentTopologyPolygonOffsetParameters(),r=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const n=Fn.getResolveCoincidentTopologyLineOffsetParameters(),r=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const n=Fn.getResolveCoincidentTopologyPointOffsetParameters(),r=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}}}var Cl={implementCoincidentTopologyMethods:jC,staticOffsetAPI:Fn,otherStaticMethods:vi,CATEGORIES:oo};const nt={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var wl={PassTypes:nt};const{FieldAssociations:Sc}=Pn,{staticOffsetAPI:KC,otherStaticMethods:PC}=Cl,{ColorMode:Ls,ScalarMode:On,GetArray:Bs}=fs,{VectorMode:XC}=so,{VtkDataTypes:IC}=Se;function Or(t){return()=>E.vtkErrorMacro(`vtkMapper::${t} - NOT IMPLEMENTED`)}function YC(t,e){e.classHierarchy.push("vtkMapper"),t.getBounds=()=>{const n=t.getInputData();return n?(e.static||t.update(),e.bounds=n.getBounds()):e.bounds=Yi(),e.bounds},t.setForceCompileOnly=n=>{e.forceCompileOnly=n},t.setSelectionWebGLIdsToVTKIds=n=>{e.selectionWebGLIdsToVTKIds=n},t.createDefaultLookupTable=()=>{e.lookupTable=Br.newInstance()},t.getColorModeAsString=()=>E.enumToString(Ls,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>E.enumToString(On,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(n,r,a,s,i)=>{if(!n||!e.scalarVisibility)return{scalars:null,cellFLag:!1};let o=null,u=!1;if(r===On.DEFAULT)o=n.getPointData().getScalars(),o||(o=n.getCellData().getScalars(),u=!0);else if(r===On.USE_POINT_DATA)o=n.getPointData().getScalars();else if(r===On.USE_CELL_DATA)o=n.getCellData().getScalars(),u=!0;else if(r===On.USE_POINT_FIELD_DATA){const c=n.getPointData();a===Bs.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===On.USE_CELL_FIELD_DATA){const c=n.getCellData();u=!0,a===Bs.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===On.USE_FIELD_DATA){const c=n.getFieldData();a===Bs.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}return{scalars:o,cellFlag:u}},t.mapScalars=(n,r)=>{const a=t.getAbstractScalars(n,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!a){e.colorCoordinates=null,e.colorTextureMap=null,e.colorMapColors=null;return}const s=`${t.getMTime()}${a.getMTime()}${r}`;if(e.colorBuildString!==s){if(e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]),t.canUseTextureMapForColoring(n))t.mapScalarsToTexture(a,r);else{e.colorCoordinates=null,e.colorTextureMap=null;const i=t.getLookupTable();i&&(i.build(),e.colorMapColors=i.mapScalars(a,e.colorMode,e.fieldDataTupleId))}e.colorBuildString=`${t.getMTime()}${a.getMTime()}${r}`}},t.scalarToTextureCoordinate=(n,r,a)=>{let s=.5,i=1;return qa(n)||(i=.49,s=(n-r)*a,s>1e3?s=1e3:s<-1e3&&(s=-1e3)),{texCoordS:s,texCoordT:i}},t.createColorTextureCoordinates=(n,r,a,s,i,o,u,c,f)=>{const l=(o[1]-o[0])/c,g=[];g[0]=o[0]-l,g[1]=o[1]+l;const p=1/(g[1]-g[0]),T=r.getData(),h=n.getData();let d=0,x=0;if(i<0||i>=s)for(let C=0;C{const a=e.lookupTable.getRange(),s=e.lookupTable.usingLogScale();s&&Br.getLogRange(a,a);const i=e.lookupTable.getAlpha();if(e.colorMapColors=null,e.colorTextureMap==null||t.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getAlpha()!==r){e.lookupTable.setAlpha(r),e.colorTextureMap=null,e.lookupTable.build();let o=e.lookupTable.getNumberOfAvailableColors();o>4094&&(o=4094),o<64&&(o=64),o+=2;const u=(a[1]-a[0])/(o-2),c=new Float64Array(o*2);for(let l=0;le.colorCoordinates.getMTime()||t.getInputData(0).getMTime()>e.colorCoordinates.getMTime()||e.lookupTable.getMTime()>e.colorCoordinates.getMTime()){e.colorCoordinates=null;const o=n.getNumberOfComponents(),u=n.getNumberOfTuples();e.colorCoordinates=Se.newInstance({numberOfComponents:2,values:new Float32Array(u*2)});let c=e.lookupTable.getVectorComponent();e.lookupTable.getVectorMode()===XC.MAGNITUDE&&n.getNumberOfComponents()>1&&(c=-1),t.createColorTextureCoordinates(n,e.colorCoordinates,u,o,c,a,e.lookupTable.getRange(),e.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,s)}},t.getIsOpaque=()=>{const n=t.getInputData(),a=t.getAbstractScalars(n,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!e.scalarVisibility||a==null)return!0;const s=t.getLookupTable();return s?(s.build(),s.areScalarsOpaque(a,e.colorMode,-1)):!0},t.canUseTextureMapForColoring=n=>{if(!e.interpolateScalarsBeforeMapping||e.lookupTable&&e.lookupTable.getIndexedLookup())return!1;const r=t.getAbstractScalars(n,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName),a=r.scalars;return!(!a||r.cellFlag||e.colorMode===Ls.DEFAULT&&a.getDataType()===IC.UNSIGNED_CHAR||e.colorMode===Ls.DIRECT_SCALARS)},t.clearColorArrays=()=>{e.colorMapColors=null,e.colorCoordinates=null,e.colorTextureMap=null},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let n=e.mtime;if(e.lookupTable!==null){const r=e.lookupTable.getMTime();n=r>n?r:n}return n},t.getPrimitiveCount=()=>{const n=t.getInputData();return{points:n.getPoints().getNumberOfValues()/3,verts:n.getVerts().getNumberOfValues()-n.getVerts().getNumberOfCells(),lines:n.getLines().getNumberOfValues()-2*n.getLines().getNumberOfCells(),triangles:n.getPolys().getNumberOfValues()-3*n.getPolys().getNumberOfCells()}},t.acquireInvertibleLookupTable=Or("AcquireInvertibleLookupTable"),t.valueToColor=Or("ValueToColor"),t.colorToValue=Or("ColorToValue"),t.useInvertibleColorFor=Or("UseInvertibleColorFor"),t.clearInvertibleColor=Or("ClearInvertibleColor"),t.processSelectorPixelBuffers=(n,r)=>{if(!n||!e.selectionWebGLIdsToVTKIds||!e.populateSelectionSettings)return;const a=n.getRawPixelBuffer(nt.ID_LOW24),s=n.getRawPixelBuffer(nt.ID_HIGH24),i=n.getCurrentPass(),o=n.getFieldAssociation();let u=null;o===Sc.FIELD_ASSOCIATION_POINTS?u=e.selectionWebGLIdsToVTKIds.points:o===Sc.FIELD_ASSOCIATION_CELLS&&(u=e.selectionWebGLIdsToVTKIds.cells),u&&r.forEach(c=>{if(i===nt.ID_LOW24){let f=0;s&&(f+=s[c],f*=256),f+=a[c+2],f*=256,f+=a[c+1],f*=256,f+=a[c];const l=u[f],g=n.getPixelBuffer(nt.ID_LOW24);g[c]=l&255,g[c+1]=(l&65280)>>8,g[c+2]=(l&16711680)>>16}else if(i===nt.ID_HIGH24&&s){let f=0;f+=s[c],f*=256,f+=a[c],f*=256,f+=a[c+1],f*=256,f+=a[c+2];const l=u[f],g=n.getPixelBuffer(nt.ID_HIGH24);g[c]=(l&4278190080)>>24}})}}const qC={colorMapColors:null,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function El(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qC,n),QS.extend(t,e,n),E.get(t,e,["colorCoordinates","colorMapColors","colorTextureMap","selectionWebGLIdsToVTKIds"]),E.setGet(t,e,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),E.setGetArray(t,e,["scalarRange"],2),Cl.implementCoincidentTopologyMethods(t,e),YC(t,e)}const QC=E.newInstance(El,"vtkMapper");var Cn={newInstance:QC,extend:El,...KC,...PC,...fs};function _l(t){let e=0;return t.filter((n,r)=>r===e?(e+=n+1,!0):!1)}function Rl(t){let e=0;for(let n=0;n(e.numberOfCells!==void 0&&!r||(e.cellSizes?e.numberOfCells=e.cellSizes.length:e.numberOfCells=Rl(t.getData())),e.numberOfCells),t.getCellSizes=r=>(e.cellSizes!==void 0&&!r||(e.cellSizes=_l(t.getData())),e.cellSizes),t.resize=r=>{const a=t.getNumberOfTuples();n.resize(r);const s=t.getNumberOfTuples();s{n.setData(r,1),e.numberOfCells=void 0,e.cellSizes=void 0},t.getCell=r=>{let a=r;const s=e.values[a++];return e.values.subarray(a,a+s)},t.insertNextCell=r=>{const a=t.getNumberOfCells();return t.insertNextTuples([r.length,...r]),++e.numberOfCells,e.cellSizes!=null&&e.cellSizes.push(r.length),a}}function ew(t){return{empty:!0,numberOfComponents:1,dataType:He.UNSIGNED_INT,...t}}function Ol(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Se.extend(t,e,ew(n)),JC(t,e)}const tw=E.newInstance(Ol,"vtkCellArray");var Cc={newInstance:tw,extend:Ol,...ZC};const{vtkErrorMacro:nw}=E,rw=[1,-1,1,-1,1,-1];function aw(t,e){e.classHierarchy.push("vtkPoints"),t.getNumberOfPoints=t.getNumberOfTuples,t.setNumberOfPoints=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;t.getNumberOfPoints()!==n&&(e.size=n*r,e.values=E.newTypedArray(e.dataType,e.size),t.setNumberOfComponents(r),t.modified())},t.setPoint=function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;st.insertNextTuple([n,r,a]),t.getBounds=()=>{if(t.getNumberOfComponents()===3){const a=t.getRange(0);e.bounds[0]=a[0],e.bounds[1]=a[1];const s=t.getRange(1);e.bounds[2]=s[0],e.bounds[3]=s[1];const i=t.getRange(2);return e.bounds[4]=i[0],e.bounds[5]=i[1],e.bounds}if(t.getNumberOfComponents()!==2)return nw(`getBounds called on an array with components of ${t.getNumberOfComponents()}`),rw;const n=t.getRange(0);e.bounds[0]=n[0],e.bounds[1]=n[1];const r=t.getRange(1);return e.bounds[2]=r[0],e.bounds[3]=r[1],e.bounds[4]=0,e.bounds[5]=0,e.bounds},t.computeBounds=t.getBounds,t.setNumberOfComponents(e.numberOfComponents<2?3:e.numberOfComponents)}const sw={empty:!0,numberOfComponents:3,dataType:He.FLOAT,bounds:[1,-1,1,-1,1,-1]};function Dl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sw,n),Se.extend(t,e,n),aw(t,e)}const iw=E.newInstance(Dl,"vtkPoints");var es={newInstance:iw,extend:Dl};function ow(t,e){e.classHierarchy.push("vtkCell"),t.initialize=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(r){e.pointsIds=r;let a=e.points.getData();a.length!==3*e.pointsIds.length&&(a=E.newTypedArray(n.getDataType(),3*e.pointsIds.length));const s=n.getData();e.pointsIds.forEach((i,o)=>{let u=3*i,c=3*o;a[c]=s[u],a[++c]=s[++u],a[++c]=s[++u]}),e.points.setData(a)}else{e.points=n,e.pointsIds=new Array(n.getNumberOfPoints());for(let a=n.getNumberOfPoints()-1;a>=0;--a)e.pointsIds[a]=a}},t.getBounds=()=>{const n=e.points.getNumberOfPoints(),r=[];if(n){e.points.getPoint(0,r),e.bounds[0]=r[0],e.bounds[1]=r[0],e.bounds[2]=r[1],e.bounds[3]=r[1],e.bounds[4]=r[2],e.bounds[5]=r[2];for(let a=1;ae.bounds[1]?r[0]:e.bounds[1],e.bounds[2]=r[1]e.bounds[3]?r[1]:e.bounds[3],e.bounds[4]=r[2]e.bounds[5]?r[2]:e.bounds[5]}else Ii(e.bounds);return e.bounds},t.getLength2=()=>{t.getBounds();let n=0,r=0;for(let a=0;a<3;a++)r=e.bounds[2*a+1]-e.bounds[2*a],n+=r*r;return n},t.getParametricDistance=n=>{let r,a=0;for(let s=0;s<3;s++)n[s]<0?r=-n[s]:n[s]>1?r=n[s]-1:r=0,r>a&&(a=r);return a},t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.deepCopy=n=>{n.initialize(e.points,e.pointsIds)},t.getCellDimension=()=>{},t.intersectWithLine=(n,r,a,s,i,o,u)=>{},t.evaluatePosition=(n,r,a,s,i,o)=>{E.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const cw={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function Ml(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cw,n),E.obj(t,e),e.points||(e.points=es.newInstance()),E.get(t,e,["points","pointsIds"]),ow(t,e)}const uw=E.newInstance(Ml,"vtkCell");var ts={newInstance:uw,extend:Ml};function fw(t,e){let n=e;for(e>=t.array.length&&(n+=t.array.length);n>t.array.length;)t.array.push({ncells:0,cells:null});t.array.length=n}function lw(t,e){e.classHierarchy.push("vtkCellLinks"),t.buildLinks=n=>{const r=n.getPoints().getNumberOfPoints(),a=n.getNumberOfCells(),s=new Uint32Array(r);if(n.isA("vtkPolyData")){for(let i=0;i{t.incrementLinkCount(u)})}t.allocateLinks(r),e.maxId=r-1;for(let i=0;i{t.insertCellReference(u,s[u]++,i)})}}else{for(let i=0;i{t.incrementLinkCount(u)});t.allocateLinks(r),e.maxId=r-1;for(let i=0;i{t.insertCellReference(u,s[u]++,i)})}},t.allocate=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.array=Array(n).fill().map(()=>({ncells:0,cells:null})),e.extend=r,e.maxId=-1},t.initialize=()=>{e.array=null},t.getLink=n=>e.array[n],t.getNcells=n=>e.array[n].ncells,t.getCells=n=>e.array[n].cells,t.insertNextPoint=n=>{e.array.push({ncells:n,cells:Array(n)}),++e.maxId},t.insertNextCellReference=(n,r)=>{e.array[n].cells[e.array[n].ncells++]=r},t.deletePoint=n=>{e.array[n].ncells=0,e.array[n].cells=null},t.removeCellReference=(n,r)=>{e.array[r].cells=e.array[r].cells.filter(a=>a!==n),e.array[r].ncells=e.array[r].cells.length},t.addCellReference=(n,r)=>{e.array[r].cells[e.array[r].ncells++]=n},t.resizeCellList=(n,r)=>{e.array[n].cells.length=r},t.squeeze=()=>{fw(e,e.maxId+1)},t.reset=()=>{e.maxId=-1},t.deepCopy=n=>{e.array=[...n.array],e.extend=n.extend,e.maxId=n.maxId},t.incrementLinkCount=n=>{++e.array[n].ncells},t.allocateLinks=n=>{for(let r=0;r{e.array[n].cells[r]=a}}const gw={array:null,maxId:0,extend:0};function Vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gw,n),E.obj(t,e),lw(t,e)}const pw=E.newInstance(Vl,"vtkCellLinks");var hw={newInstance:pw,extend:Vl};const _e={VTK_EMPTY_CELL:0,VTK_VERTEX:1,VTK_POLY_VERTEX:2,VTK_LINE:3,VTK_POLY_LINE:4,VTK_TRIANGLE:5,VTK_TRIANGLE_STRIP:6,VTK_POLYGON:7,VTK_PIXEL:8,VTK_QUAD:9,VTK_TETRA:10,VTK_VOXEL:11,VTK_HEXAHEDRON:12,VTK_WEDGE:13,VTK_PYRAMID:14,VTK_PENTAGONAL_PRISM:15,VTK_HEXAGONAL_PRISM:16,VTK_QUADRATIC_EDGE:21,VTK_QUADRATIC_TRIANGLE:22,VTK_QUADRATIC_QUAD:23,VTK_QUADRATIC_POLYGON:36,VTK_QUADRATIC_TETRA:24,VTK_QUADRATIC_HEXAHEDRON:25,VTK_QUADRATIC_WEDGE:26,VTK_QUADRATIC_PYRAMID:27,VTK_BIQUADRATIC_QUAD:28,VTK_TRIQUADRATIC_HEXAHEDRON:29,VTK_QUADRATIC_LINEAR_QUAD:30,VTK_QUADRATIC_LINEAR_WEDGE:31,VTK_BIQUADRATIC_QUADRATIC_WEDGE:32,VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:33,VTK_BIQUADRATIC_TRIANGLE:34,VTK_CUBIC_LINE:35,VTK_CONVEX_POINT_SET:41,VTK_POLYHEDRON:42,VTK_PARAMETRIC_CURVE:51,VTK_PARAMETRIC_SURFACE:52,VTK_PARAMETRIC_TRI_SURFACE:53,VTK_PARAMETRIC_QUAD_SURFACE:54,VTK_PARAMETRIC_TETRA_REGION:55,VTK_PARAMETRIC_HEX_REGION:56,VTK_HIGHER_ORDER_EDGE:60,VTK_HIGHER_ORDER_TRIANGLE:61,VTK_HIGHER_ORDER_QUAD:62,VTK_HIGHER_ORDER_POLYGON:63,VTK_HIGHER_ORDER_TETRAHEDRON:64,VTK_HIGHER_ORDER_WEDGE:65,VTK_HIGHER_ORDER_PYRAMID:66,VTK_HIGHER_ORDER_HEXAHEDRON:67,VTK_LAGRANGE_CURVE:68,VTK_LAGRANGE_TRIANGLE:69,VTK_LAGRANGE_QUADRILATERAL:70,VTK_LAGRANGE_TETRAHEDRON:71,VTK_LAGRANGE_HEXAHEDRON:72,VTK_LAGRANGE_WEDGE:73,VTK_LAGRANGE_PYRAMID:74,VTK_NUMBER_OF_CELL_TYPES:75},yi=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"];function dw(t){return t0&&arguments[0]!==void 0?arguments[0]:512,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.size=n>0?n:1,e.extend=r>0?r:1,e.maxId=-1,e.typeArray=new Uint8Array(n),e.locationArray=new Uint32Array(n)},t.insertCell=(n,r,a)=>{e.typeArray[n]=r,e.locationArray[n]=a,n>e.maxId&&(e.maxId=n)},t.insertNextCell=(n,r)=>(t.insertCell(++e.maxId,n,r),e.maxId),t.setCellTypes=(n,r,a)=>{e.size=n,e.typeArray=r,e.locationArray=a,e.maxId=n-1},t.getCellLocation=n=>e.locationArray[n],t.deleteCell=n=>{e.typeArray[n]=_e.VTK_EMPTY_CELL},t.getNumberOfTypes=()=>e.maxId+1,t.isType=n=>{const r=t.getNumberOfTypes();for(let a=0;at.insertNextCell(n,-1),t.getCellType=n=>e.typeArray[n],t.reset=()=>{e.maxId=-1},t.deepCopy=n=>{t.allocate(n.getSize(),n.getExtend()),e.typeArray.set(n.getTypeArray()),e.locationArray.set(n.getLocationArray()),e.maxId=n.getMaxId()}}const Cw={size:0,maxId:-1,extend:1e3};function ml(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Cw,n),E.obj(t,e),E.get(t,e,["size","maxId","extend"]),E.getArray(t,e,["typeArray","locationArray"]),Sw(t,e)}const ww=E.newInstance(ml,"vtkCellTypes");var Ew={newInstance:ww,extend:ml,...xw};const _w={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var Ll={IntersectionState:_w};const{IntersectionState:Fa}=Ll;function or(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;const a={t:Number.MIN_VALUE,distance:0},s=[];let i;s[0]=n[0]-e[0],s[1]=n[1]-e[1],s[2]=n[2]-e[2];const o=s[0]*(t[0]-e[0])+s[1]*(t[1]-e[1])+s[2]*(t[2]-e[2]),u=ge(s,s);let c=1e-5*o;return u!==0&&(a.t=o/u),c<0&&(c=-c),-c1?i=n:(i=s,s[0]=e[0]+a.t*s[0],s[1]=e[1]+a.t*s[1],s[2]=e[2]+a.t*s[2]),r&&(r[0]=i[0],r[1]=i[1],r[2]=i[2]),a.distance=zt(i,t),a}function Bl(t,e,n,r,a,s){const i=[],o=[],u=[];a[0]=0,s[0]=0,xn(e,t,i),xn(r,n,o),xn(n,t,u);const c=[ge(i,i),-ge(i,o),-ge(i,o),ge(o,o)],f=[];if(f[0]=ge(i,u),f[1]=-ge(o,u),rS(c,f,2)===0){let l=Number.MAX_VALUE;const g=[t,e,n,r],p=[n,n,t,t],T=[r,r,e,e];s[0],s[0],a[0],a[0],a[0],a[0],s[0],s[0];let h;for(let d=0;d<4;d++)h=or(g[d],p[d],T[d]),h.distance=0&&a[0]<=1&&s[0]>=0&&s[0]<=1?Fa.YES_INTERSECTION:Fa.NO_INTERSECTION}const Rw={distanceToLine:or,intersection:Bl};function Ow(t,e){e.classHierarchy.push("vtkLine");function n(r){return r>=0&&r<=1}t.getCellDimension=()=>1,t.intersectWithLine=(r,a,s,i,o)=>{const u={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;const c=[],f=[],l=[];e.points.getPoint(0,f),e.points.getPoint(1,l);const g=[],p=[],T=Bl(r,a,f,l,g,p);if(u.t=g[0],u.betweenPoints=n(u.t),o[0]=p[0],T===Fa.YES_INTERSECTION){for(let h=0;h<3;h++)i[h]=f[h]+o[0]*(l[h]-f[h]),c[h]=r[h]+u.t*(a[h]-r[h]);if(zt(i,c)<=s*s)return u.intersect=1,u}else{let h;if(u.t<0)return h=or(r,f,l,i),h.distance<=s*s&&(u.t=0,u.intersect=1,u.betweenPoints=!0),u;if(u.t>1)return h=or(a,f,l,i),h.distance<=s*s&&(u.t=1,u.intersect=1,u.betweenPoints=!0),u;if(o[0]<0)return o[0]=0,h=or(f,r,a,i),u.t=h.t,h.distance<=s*s&&(u.intersect=1),u;if(o[0]>1)return o[0]=1,h=or(l,r,a,i),u.t=h.t,h.distance<=s*s&&(u.intersect=1),u}return u},t.evaluateLocation=(r,a,s)=>{const i=[],o=[];e.points.getPoint(0,i),e.points.getPoint(1,o);for(let u=0;u<3;u++)a[u]=i[u]+r[0]*(o[u]-i[u]);s[0]=1-r[0],s[1]=r[0]},t.evaluateOrientation=(r,a,s)=>e.orientations?(Ba(a,e.orientations[0],e.orientations[1],r[0]),s[0]=1-r[0],s[1]=r[0],!0):!1}const Dw={orientations:null};function kl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Dw,n),ts.extend(t,e,n),E.setGet(t,e,["orientations"]),Ow(t,e)}const Mw=E.newInstance(kl,"vtkLine");var dt={newInstance:Mw,extend:kl,...Rw,...Ll};function Vw(t,e){e.classHierarchy.push("vtkPointSet"),e.points?e.points=Bt(e.points):e.points=es.newInstance(),t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.getBounds=()=>e.points.getBounds(),t.computeBounds=()=>{t.getBounds()};const n=t.shallowCopy;t.shallowCopy=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n(r,a),e.points=es.newInstance(),e.points.shallowCopy(r.getPoints())}}const mw={};function Fl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mw,n),Pn.extend(t,e,n),E.setGet(t,e,["points"]),Vw(t,e)}const Lw=E.newInstance(Fl,"vtkPointSet");var Bw={newInstance:Lw,extend:Fl};function co(t,e,n,r){const a=n[0]-e[0],s=n[1]-e[1],i=n[2]-e[2],o=t[0]-e[0],u=t[1]-e[1],c=t[2]-e[2];r[0]=s*c-i*u,r[1]=i*o-a*c,r[2]=a*u-s*o}function ns(t,e,n,r){co(t,e,n,r);const a=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);a!==0&&(r[0]/=a,r[1]/=a,r[2]/=a)}function kw(t,e,n,r,a,s){let i=arguments.length>6&&arguments[6]!==void 0?arguments[6]:1e-6,o=!1;const u=[],c=[],f=[],l=[],g=[];ns(t,e,n,l),ns(r,a,s,g);const p=-ge(l,t),T=-ge(g,r),h=[ge(g,t)+T,ge(g,e)+T,ge(g,n)+T];if(h[0]*h[1]>i&&h[0]*h[2]>i)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};const d=[ge(l,r)+p,ge(l,a)+p,ge(l,s)+p];if(d[0]*d[1]>i&&d[0]*d[2]>i)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(Math.abs(l[0]-g[0])<1e-9&&Math.abs(l[1]-g[1])<1e-9&&Math.abs(l[2]-g[2])<1e-9&&Math.abs(p-T)<1e-9)return o=!0,{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};const x=[t,e,n],C=[r,a,s],y=ge(l,g),v=(p-T*y)/(y*y-1),w=(T-p*y)/(y*y-1),S=[v*l[0]+w*g[0],v*l[1]+w*g[1],v*l[2]+w*g[2]],R=Hr(l,g,[]);jr(R);let M=0,m=0;const O=[],V=[];let B=50,b=50;for(let q=0;q<3;q++){const Z=q,re=(q+1)%3,G=pr.intersectWithLine(x[Z],x[re],r,g);G.intersection&&G.t>0-i&&G.t<1+i&&(G.t<1+i&&G.t>1-i&&(B=M),O[M++]=ge(G.x,R)-ge(S,R));const k=pr.intersectWithLine(C[Z],C[re],t,l);k.intersection&&k.t>0-i&&k.t<1+i&&(k.t<1+i&&k.t>1-i&&(b=m),V[m++]=ge(k.x,R)-ge(S,R))}if(M>2){M--;const q=O[2];O[2]=O[B],O[B]=q}if(m>2){m--;const q=V[2];V[2]=V[b],V[b]=q}if(M!==2||m!==2)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(Number.isNaN(O[0])||Number.isNaN(O[1])||Number.isNaN(V[0])||Number.isNaN(V[1]))return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(O[0]>O[1]){const q=O[1];O[1]=O[0],O[0]=q}if(V[0]>V[1]){const q=V[1];V[1]=V[0],V[0]=q}let U,Y;return O[1]2,t.intersectWithLine=(n,r,a,s,i)=>{const o={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const u=[],c=a*a,f=[],l=[],g=[];e.points.getPoint(0,f),e.points.getPoint(1,l),e.points.getPoint(2,g);const p=[],T=[];if(ns(f,l,g,p),p[0]!==0||p[1]!==0||p[2]!==0){const y=pr.intersectWithLine(n,r,f,p);if(o.betweenPoints=y.betweenPoints,o.t=y.t,s[0]=y.x[0],s[1]=y.x[1],s[2]=y.x[2],!y.intersection)return i[0]=0,i[1]=0,o.intersect=0,o;const v=t.evaluatePosition(s,u,i,T);if(v.evaluation>=0)return v.dist2<=c?(o.intersect=1,o):(o.intersect=v.evaluation,o)}const h=zt(f,l),d=zt(l,g),x=zt(g,f);e.line||(e.line=dt.newInstance()),h>d&&h>x?(e.line.getPoints().setPoint(0,f),e.line.getPoints().setPoint(1,l)):d>x&&d>h?(e.line.getPoints().setPoint(0,l),e.line.getPoints().setPoint(1,g)):(e.line.getPoints().setPoint(0,g),e.line.getPoints().setPoint(1,f));const C=e.line.intersectWithLine(n,r,a,s,i);if(o.betweenPoints=C.betweenPoints,o.t=C.t,C.intersect){const y=[],v=[],w=[];for(let S=0;S<3;S++)y[S]=f[S]-g[S],v[S]=l[S]-g[S],w[S]=s[S]-g[S];return i[0]=ge(w,y)/x,i[1]=ge(w,v)/d,o.intersect=1,o}return i[0]=0,i[1]=0,o.intersect=0,o},t.evaluatePosition=(n,r,a,s)=>{const i={subId:0,dist2:0,evaluation:-1};let o,u;const c=[],f=[],l=[],g=[];let p;const T=[],h=[],d=[];let x=0,C=0;const y=[];let v,w,S,R=[];const M=[],m=[],O=[];i.subId=0,a[2]=0,e.points.getPoint(1,c),e.points.getPoint(2,f),e.points.getPoint(0,l),co(c,f,l,g),pr.generalizedProjectPoint(n,c,g,O);let V=0;for(o=0;o<3;o++)g[o]<0?p=-g[o]:p=g[o],p>V&&(V=p,C=o);for(u=0,o=0;o<3;o++)o!==C&&(y[u++]=o);for(o=0;o<2;o++)T[o]=O[y[o]]-l[y[o]],h[o]=c[y[o]]-l[y[o]],d[o]=f[y[o]]-l[y[o]];if(x=ka(h,d),x===0)return a[0]=0,a[1]=0,i.evaluation=-1,i;if(a[0]=ka(T,d)/x,a[1]=ka(h,T)/x,s[0]=1-(a[0]+a[1]),s[1]=a[0],s[2]=a[1],s[0]>=0&&s[0]<=1&&s[1]>=0&&s[1]<=1&&s[2]>=0&&s[2]<=1)r&&(i.dist2=zt(O,n),r[0]=O[0],r[1]=O[1],r[2]=O[2]),i.evaluation=1;else{let B;if(r){if(s[1]<0&&s[2]<0)for(v=zt(n,l),w=dt.distanceToLine(n,c,l,B,M),S=dt.distanceToLine(n,l,f,B,m),v{const s=[],i=[],o=[];e.points.getPoint(0,s),e.points.getPoint(1,i),e.points.getPoint(2,o);const u=1-n[0]-n[1];for(let c=0;c<3;c++)r[c]=s[c]*u+i[c]*n[0]+o[c]*n[1];a[0]=u,a[1]=n[0],a[2]=n[1]},t.getParametricDistance=n=>{let r,a=0;const s=[];s[0]=n[0],s[1]=n[1],s[2]=1-n[0]-n[1];for(let i=0;i<3;i++)s[i]<0?r=-s[i]:s[i]>1?r=s[i]-1:r=0,r>a&&(a=r);return a}}const Nw={};function Ul(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nw,n),ts.extend(t,e,n),Uw(t,e)}const bw=E.newInstance(Ul,"vtkTriangle");var Gw={newInstance:bw,extend:Ul,...Fw};const ks=["verts","lines","polys","strips"],{vtkWarningMacro:wc}=E,$w={[_e.VTK_LINE]:dt,[_e.VTK_POLY_LINE]:dt,[_e.VTK_TRIANGLE]:Gw};function Ww(t,e){e.classHierarchy.push("vtkPolyData");function n(a){return a.replace(/(?:^\w|[A-Z]|\b\w)/g,s=>s.toUpperCase()).replace(/\s+/g,"")}ks.forEach(a=>{t[`getNumberOf${n(a)}`]=()=>e[a].getNumberOfCells(),e[a]?e[a]=Bt(e[a]):e[a]=Cc.newInstance()}),t.getNumberOfCells=()=>ks.reduce((a,s)=>a+e[s].getNumberOfCells(),0);const r=t.shallowCopy;t.shallowCopy=function(a){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;r(a,s),ks.forEach(i=>{e[i]=Cc.newInstance(),e[i].shallowCopy(a.getReferenceByName(i))})},t.buildCells=()=>{const a=t.getNumberOfVerts(),s=t.getNumberOfLines(),i=t.getNumberOfPolys(),o=t.getNumberOfStrips(),u=a+s+i+o,c=new Uint8Array(u);let f=c;const l=new Uint32Array(u);let g=l;if(a){let p=0;e.verts.getCellSizes().forEach((T,h)=>{g[h]=p,f[h]=T>1?_e.VTK_POLY_VERTEX:_e.VTK_VERTEX,p+=T+1}),g=g.subarray(a),f=f.subarray(a)}if(s){let p=0;e.lines.getCellSizes().forEach((T,h)=>{g[h]=p,f[h]=T>2?_e.VTK_POLY_LINE:_e.VTK_LINE,T===1&&wc("Building VTK_LINE ",h," with only one point, but VTK_LINE needs at least two points. Check the input."),p+=T+1}),g=g.subarray(s),f=f.subarray(s)}if(i){let p=0;e.polys.getCellSizes().forEach((T,h)=>{switch(g[h]=p,T){case 3:f[h]=_e.VTK_TRIANGLE;break;case 4:f[h]=_e.VTK_QUAD;break;default:f[h]=_e.VTK_POLYGON;break}T<3&&wc("Building VTK_TRIANGLE ",h," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=T+1}),g+=g.subarray(i),f+=f.subarray(i)}if(o){let p=0;f.fill(_e.VTK_TRIANGLE_STRIP,0,o),e.strips.getCellSizes().forEach((T,h)=>{g[h]=p,p+=T+1})}e.cells=Ew.newInstance(),e.cells.setCellTypes(u,c,l)},t.buildLinks=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;e.cells===void 0&&t.buildCells(),e.links=hw.newInstance(),a>0?e.links.allocate(a):e.links.allocate(t.getPoints().getNumberOfPoints()),e.links.buildLinks(t)},t.getCellType=a=>e.cells.getCellType(a),t.getCellPoints=a=>{const s=t.getCellType(a);let i=null;switch(s){case _e.VTK_VERTEX:case _e.VTK_POLY_VERTEX:i=e.verts;break;case _e.VTK_LINE:case _e.VTK_POLY_LINE:i=e.lines;break;case _e.VTK_TRIANGLE:case _e.VTK_QUAD:case _e.VTK_POLYGON:i=e.polys;break;case _e.VTK_TRIANGLE_STRIP:i=e.strips;break;default:return i=null,{type:0,cellPointIds:null}}const o=e.cells.getCellLocation(a),u=i.getCell(o);return{cellType:s,cellPointIds:u}},t.getPointCells=a=>e.links.getCells(a),t.getCellEdgeNeighbors=(a,s,i)=>{const o=e.links.getLink(s),u=e.links.getLink(i);return o.cells.filter(c=>c!==a&&u.cells.indexOf(c)!==-1)},t.getCell=function(a){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const i=t.getCellPoints(a),o=s||$w[i.cellType].newInstance();return o.initialize(t.getPoints(),i.cellPointIds),o}}const zw={};function Nl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zw,n),Bw.extend(t,e,n),E.get(t,e,["cells","links"]),E.setGet(t,e,["verts","lines","polys","strips"]),Ww(t,e)}const Aw=E.newInstance(Nl,"vtkPolyData");var nn={newInstance:Aw,extend:Nl};function Hw(t,e){e.classHierarchy.push("vtkTexture"),t.imageLoaded=()=>{e.image.removeEventListener("load",t.imageLoaded),e.imageLoaded=!0,t.modified()},t.setJsImageData=n=>{e.jsImageData!==n&&(n!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.canvas=null),e.jsImageData=n,e.imageLoaded=!0,t.modified())},t.setCanvas=n=>{e.canvas!==n&&(n!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.jsImageData=null),e.canvas=n,t.modified())},t.setImage=n=>{e.image!==n&&(n!==null&&(t.setInputData(null),t.setInputConnection(null),e.canvas=null,e.jsImageData=null),e.image=n,e.imageLoaded=!1,n.complete?t.imageLoaded():n.addEventListener("load",t.imageLoaded),t.modified())},t.getDimensionality=()=>{let n=0,r=0,a=1;if(t.getInputData()){const i=t.getInputData();n=i.getDimensions()[0],r=i.getDimensions()[1],a=i.getDimensions()[2]}return e.jsImageData&&(n=e.jsImageData.width,r=e.jsImageData.height),e.canvas&&(n=e.canvas.width,r=e.canvas.height),e.image&&(n=e.image.width,r=e.image.height),(n>1)+(r>1)+(a>1)},t.getInputAsJsImageData=()=>{if(!e.imageLoaded||t.getInputData())return null;if(e.jsImageData)return e.jsImageData();if(e.canvas)return e.canvas.getContext("2d").getImageData(0,0,e.canvas.width,e.canvas.height);if(e.image){const n=document.createElement("canvas");n.width=e.image.width,n.height=e.image.height;const r=n.getContext("2d");return r.translate(0,n.height),r.scale(1,-1),r.drawImage(e.image,0,0,e.image.width,e.image.height),r.getImageData(0,0,n.width,n.height)}return null}}const jw=(t,e,n,r)=>{const a=[1,2,1],s=4,i=a,o=s,u=t.length/(e*n);let c=e,f=n,l=t;const g=[l];for(let p=0;pu&&(M+=h),m<-u&&(M-=h),x[M]?S+=x[M]*i[R]:w-=i[R],v+=1}l[C+y]=S/w}x=[...l];for(let C=0;C2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Kw,n),E.obj(t,e),E.algo(t,e,6,0),E.get(t,e,["canvas","image","jsImageData","imageLoaded","resizable"]),E.setGet(t,e,["repeat","edgeClamp","interpolate","mipLevel"]),Hw(t,e)}const Pw=E.newInstance(bl,"vtkTexture"),Xw={generateMipmaps:jw};var ps={newInstance:Pw,extend:bl,...Xw};const Iw=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Ec=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],ga=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],_c=[0,1,0,1,0,1,0,1,2,2,2,2],Me=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],se=new Float64Array(3),pa=new Float64Array(3),ve=new Float64Array(3),Un=new Float64Array(3),Dn=new Float64Array(3),ha=new Float64Array(3),Fs=new Float64Array(16);function Us(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function Yw(t,e){e.classHierarchy.push("vtkCubeAxesActorHelper"),t.setRenderable=n=>{e.renderable!==n&&(e.renderable=n,e.tmActor.addTexture(e.renderable.getTmTexture()),e.tmActor.setProperty(n.getProperty()),e.tmActor.setParentProp(n),t.modified())},t.createPolyDataForOneLabel=(n,r,a,s,i,o,u)=>{const c=e.renderable.get_tmAtlas().get(n);if(!c)return;const f=e.renderable.getTextPolyData().getPoints().getData(),l=e.lastSize;se[0]=f[r*3],se[1]=f[r*3+1],se[2]=f[r*3+2],xe(ve,se,a),ve[0]+=.1,xe(pa,ve,s),Tn(Dn,pa,se),ve[0]-=.1,ve[1]+=.1,xe(pa,ve,s),Tn(ha,pa,se);for(let T=0;T<3;T++)Dn[T]/=.5*.1*l[0],ha[T]/=.5*.1*l[1];let g=u.ptIdx,p=u.cellIdx;se[0]=f[r*3],se[1]=f[r*3+1],se[2]=f[r*3+2],i[0]<-.5?pn(ve,Dn,i[0]*o-c.width):i[0]>.5?pn(ve,Dn,i[0]*o):pn(ve,Dn,i[0]*o-c.width/2),Vr(se,se,ve),pn(ve,ha,i[1]*o-c.height/2),Vr(se,se,ve),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[0],u.tcoords[g*2+1]=c.tcoords[1],g++,pn(ve,Dn,c.width),Vr(se,se,ve),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[2],u.tcoords[g*2+1]=c.tcoords[3],g++,pn(ve,ha,c.height),Vr(se,se,ve),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[4],u.tcoords[g*2+1]=c.tcoords[5],g++,pn(ve,Dn,c.width),Tn(se,se,ve),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[6],u.tcoords[g*2+1]=c.tcoords[7],g++,u.polys[p*4]=3,u.polys[p*4+1]=g-4,u.polys[p*4+2]=g-3,u.polys[p*4+3]=g-2,p++,u.polys[p*4]=3,u.polys[p*4+1]=g-4,u.polys[p*4+2]=g-2,u.polys[p*4+3]=g-1,u.ptIdx+=4,u.cellIdx+=2},t.updateTexturePolyData=()=>{const n=e.camera.getCompositeProjectionMatrix(e.lastAspectRatio,-1,1);Oe(n,n);const r=e.renderable.getTextValues().length,a=r*4,s=r*2,i=new Float64Array(a*3),o=new Uint16Array(s*4),u=new Float32Array(a*2);ut(Fs,n);const c={ptIdx:0,cellIdx:0,polys:o,points:i,tcoords:u};let f=0,l=0,g=0;const p=e.renderable.getTextPolyData().getPoints().getData(),T=e.renderable.getTextValues();for(;f{(e.lastSize[0]!==n[0]||e.lastSize[1]!==n[1])&&(e.lastSize[0]=n[0],e.lastSize[1]=n[1],e.lastAspectRatio=n[0]/n[1],e.forceUpdate=!0),e.camera=r,t.updateTexturePolyData()}}const qw=E.newInstance(function(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),E.obj(t,e),e.tmPolyData=nn.newInstance(),e.tmMapper=Cn.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmActor=en.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),E.setGet(t,e,["renderable"]),E.get(t,e,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),e.forceUpdate=!1,e.lastRedrawTime={},E.obj(e.lastRedrawTime,{mtime:0}),e.lastRebuildTime={},E.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.lastTickBounds=[],Yw(t,e)},"vtkCubeAxesActorHelper");function Qw(t,e){e.classHierarchy.push("vtkCubeAxesActor"),t.setCamera=r=>{e.camera!==r&&(e.cameraModifiedSub&&(e.cameraModifiedSub.unsubscribe(),e.cameraModifiedSub=null),e.camera=r,r&&(e.cameraModifiedSub=r.onModified(t.update)),t.update(),t.modified())},t.computeFacesToDraw=()=>{const r=e.camera.getViewMatrix();Oe(r,r);let a=!1;const s=Re.getDiagonalLength(e.dataBounds),i=Math.sin(e.faceVisibilityAngle*Math.PI/180);for(let o=0;o<6;o++){let u=!1;const c=Math.floor(o/2),f=(c+1)%3,l=(c+2)%3;e.dataBounds[f*2]!==e.dataBounds[f*2+1]&&e.dataBounds[l*2]!==e.dataBounds[l*2+1]&&(se[c]=e.dataBounds[o]-.1*s*Iw[o][c],se[f]=.5*(e.dataBounds[f*2]+e.dataBounds[f*2+1]),se[l]=.5*(e.dataBounds[l*2]+e.dataBounds[l*2+1]),xe(ve,se,r),se[c]=e.dataBounds[o],xe(Un,se,r),Tn(ve,Un,ve),zr(ve,ve),u=ve[2]>i,e.camera.getParallelProjection()||(zr(Un,Un),u=hf(Un,ve)>i)),u!==e.lastFacesToDraw[o]&&(e.lastFacesToDraw[o]=u,a=!0)}return a},t.updatePolyData=(r,a,s)=>{let i=0,o=0;i+=8;let u=0;for(let p=0;p<12;p++)a[p]>0&&u++;if(o+=u,e.gridLines)for(let p=0;p<6;p++)r[p]&&(i+=s[Me[p][0]].length*2+s[Me[p][1]].length*2,o+=s[Me[p][0]].length+s[Me[p][1]].length);const c=new Float64Array(i*3),f=new Uint32Array(o*3);let l=0,g=0;for(let p=0;p<2;p++)for(let T=0;T<2;T++)for(let h=0;h<2;h++)c[l*3]=e.dataBounds[h],c[l*3+1]=e.dataBounds[2+T],c[l*3+2]=e.dataBounds[4+p],l++;for(let p=0;p<12;p++)a[p]>0&&(f[g*3]=2,f[g*3+1]=ga[p][0],f[g*3+2]=ga[p][1],g++);if(e.gridLines){for(let p=0;p<6;p++)if(r[p]){const T=Math.floor(p/2);let h=s[Me[p][0]];for(let d=0;d{let o=0;for(let p=0;p<12;p++)a[p]===1&&(o+=2,o+=s[_c[p]].length);const u=e.polyData.getPoints().getData(),c=new Float64Array(o*3);let f=0,l=0,g=0;for(let p=0;p<6;p++)if(r[p])for(let T=0;T<4;T++){const h=Ec[p][T];if(a[h]===1){const d=_c[h],x=ga[h][0]*3,C=ga[h][1]*3;c[f*3]=.5*(u[x]+u[C]),c[f*3+1]=.5*(u[x+1]+u[C+1]),c[f*3+2]=.5*(u[x+2]+u[C+2]),f++;const y=Math.floor(p/2);c[f*3+y]=e.dataBounds[p],c[f*3+Me[p][0]]=.5*(e.dataBounds[Me[p][0]*2]+e.dataBounds[Me[p][0]*2+1]),c[f*3+Me[p][1]]=.5*(e.dataBounds[Me[p][1]*2]+e.dataBounds[Me[p][1]*2+1]),f++,e.textValues[l]=e.axisLabels[d],l++;const v=(d+1)%3,w=(d+2)%3,S=s[d],R=i[d];e.tickCounts[g]=S.length;for(let M=0;M{if(!e.camera)return;const r=t.computeFacesToDraw(),a=e.lastFacesToDraw;let s=!1;for(let i=0;i<6;i++)e.dataBounds[i]!==e.lastTickBounds[i]&&(s=!0,e.lastTickBounds[i]=e.dataBounds[i]);if(r||s||e.forceUpdate){const i=new Array(12).fill(0);for(let c=0;c<6;c++)if(a[c])for(let f=0;f<4;f++)i[Ec[c][f]]++;const o=[],u=[];for(let c=0;c<3;c++){const f=os().domain([e.dataBounds[c*2],e.dataBounds[c*2+1]]);o[c]=f.ticks(5);const l=f.tickFormat(5);u[c]=o[c].map(l)}t.updatePolyData(a,i,o),t.updateTextData(a,i,o,u),(s||e.forceUpdate)&&t.updateTextureAtlas(u)}e.forceUpdate=!1},t.updateTextureAtlas=r=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e._tmAtlas.clear();let a=0,s=1;for(let i=0;i<3;i++){if(!e._tmAtlas.has(e.axisLabels[i])){Us(e.tmContext,e.axisTextStyle);const o=e.tmContext.measureText(e.axisLabels[i]),u={height:o.actualBoundingBoxAscent+2,startingHeight:s,width:o.width+2,textStyle:e.axisTextStyle};e._tmAtlas.set(e.axisLabels[i],u),s+=u.height,a{i.tcoords=[0,(s-i.startingHeight-i.height)/s,i.width/a,(s-i.startingHeight-i.height)/s,i.width/a,(s-i.startingHeight)/s,0,(s-i.startingHeight)/s]}),e.tmCanvas.width=a,e.tmCanvas.height=s,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,a,s),e._tmAtlas.forEach((i,o)=>{Us(e.tmContext,i.textStyle),e.tmContext.fillText(o,1,i.startingHeight+i.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified()},t.onModified(()=>{e.forceUpdate=!0,t.update()}),t.setTickTextStyle=r=>{e.tickTextStyle={...e.tickTextStyle,...r},t.modified()},t.setAxisTextStyle=r=>{e.axisTextStyle={...e.axisTextStyle,...r},t.modified()},t.get_tmAtlas=()=>e._tmAtlas,t.getBounds=()=>(t.update(),Re.setBounds(e.bounds,e.gridActor.getBounds()),Re.scaleAboutCenter(e.bounds,e.boundsScaleFactor,e.boundsScaleFactor,e.boundsScaleFactor),e.bounds);const n=E.chain(t.setProperty,e.gridActor.setProperty);t.setProperty=r=>n(r)[0]}function Zw(t){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Re.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:12,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},...t}}function Gl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Zw(n)),en.extend(t,e,n),e.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],e.axisLabels=["X-Axis","Y-Axis","Z-Axis"],e.tickCounts=[],e.textValues=[],e.lastTickBounds=[],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.tmTexture=ps.newInstance(),e.tmTexture.setInterpolate(!1),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),e.gridMapper=Cn.newInstance(),e.polyData=nn.newInstance(),e.gridMapper.setInputData(e.polyData),e.gridActor=en.newInstance(),e.gridActor.setMapper(e.gridMapper),e.gridActor.setProperty(t.getProperty()),e.gridActor.setParentProp(t),e.textPolyData=nn.newInstance(),E.setGet(t,e,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset"]),E.setGetArray(t,e,["dataBounds"],6),E.setGetArray(t,e,["axisLabels"],3),E.get(t,e,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),Qw(t,e)}const Jw=E.newInstance(Gl,"vtkCubeAxesActor");var $l={newInstance:Jw,extend:Gl,newCubeAxesActorHelper:qw};function eE(t,e){e.classHierarchy.push("vtkOpenGLCubeAxesActor"),t.buildPass=n=>{n&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(n,r)=>{if(n){const a=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,s=e._openGLRenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([s.usize,s.vsize],a,e._openGLRenderWindow.getRenderable())}}}const tE={};function nE(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tE,n),Be.extend(t,e,n),e.CubeAxesActorHelper=$l.newCubeAxesActorHelper(),eE(t,e)}const rE=Ee(nE,"vtkOpenGLCubeAxesActor");Ft("vtkCubeAxesActor",rE);const Ur={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Wl={ObjectType:Ur};const{ObjectType:Ua}=Wl,aE={};function sE(t,e){e.classHierarchy.push("vtkOpenGLBufferObject");function n(o){switch(o){case Ua.ELEMENT_ARRAY_BUFFER:return e.context.ELEMENT_ARRAY_BUFFER;case Ua.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in e.context)return e.context.TEXTURE_BUFFER;case Ua.ARRAY_BUFFER:default:return e.context.ARRAY_BUFFER}}let r=null,a=null,s=!0,i="";t.getType=()=>r,t.setType=o=>{r=o},t.getHandle=()=>a,t.isReady=()=>s===!1,t.generateBuffer=o=>{const u=n(o);return a===null&&(a=e.context.createBuffer(),r=o),n(r)===u},t.upload=(o,u)=>t.generateBuffer(u)?(e.context.bindBuffer(n(r),a),e.context.bufferData(n(r),o,e.context.STATIC_DRAW),e.allocatedGPUMemoryInBytes=o.length*o.BYTES_PER_ELEMENT,s=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1),t.bind=()=>a?(e.context.bindBuffer(n(r),a),!0):!1,t.release=()=>a?(e.context.bindBuffer(n(r),null),!0):!1,t.releaseGraphicsResources=()=>{a!==null&&(e.context.bindBuffer(n(r),null),e.context.deleteBuffer(a),a=null,e.allocatedGPUMemoryInBytes=0)},t.setOpenGLRenderWindow=o=>{e._openGLRenderWindow!==o&&(t.releaseGraphicsResources(),e._openGLRenderWindow=o,e.context=null,o&&(e.context=e._openGLRenderWindow.getContext()))},t.getError=()=>i}const iE={objectType:Ua.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function zl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iE,n),E.obj(t,e),E.get(t,e,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),E.moveToProtected(t,e,["openGLRenderWindow"]),sE(t,e)}const oE=E.newInstance(zl);var Al={newInstance:oE,extend:zl,...aE,...Wl};const{vtkErrorMacro:Rc}=E;function cE(t,e){const n=new Float64Array(3);qx(n,e);const r=new Float64Array(16);return of(r,Hn(),t,n),r}function uE(t,e){return t===null||e===null?!1:!(tc(t,[0,0,0])&&tc(e,[1,1,1]))}function fE(t,e){e.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),t.setType(Ur.ARRAY_BUFFER),t.createVBO=function(n,r,a,s){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;if(!n.getData()||!n.getData().length)return e.elementCount=0,0;e.blockSize=3,e.vertexOffset=0,e.normalOffset=0,e.tCoordOffset=0,e.tCoordComponents=0,e.colorComponents=0,e.colorOffset=0,e.customData=[];const o=s.points.getData();let u=null,c=null,f=null;const l=s.colors?s.colors.getNumberOfComponents():0,g=s.tcoords?s.tcoords.getNumberOfComponents():0;s.normals&&(e.normalOffset=4*e.blockSize,e.blockSize+=3,u=s.normals.getData()),s.customAttributes&&s.customAttributes.forEach(G=>{G&&(e.customData.push({data:G.getData(),offset:4*e.blockSize,components:G.getNumberOfComponents(),name:G.getName()}),e.blockSize+=G.getNumberOfComponents())}),s.tcoords&&(e.tCoordOffset=4*e.blockSize,e.tCoordComponents=g,e.blockSize+=g,c=s.tcoords.getData()),s.colors?(e.colorComponents=s.colors.getNumberOfComponents(),e.colorOffset=0,f=s.colors.getData(),e.colorBO||(e.colorBO=Al.newInstance()),e.colorBO.setOpenGLRenderWindow(e._openGLRenderWindow)):e.colorBO=null,e.stride=4*e.blockSize;let p=0,T=0,h=0,d=0,x=0,C=0,y;const v={anythingToPoints(G,k,j){for(let K=0;K2)for(let K=0;K2){for(let K=0;K1?(G-1)*2:0},polysToWireframe(G,k){return G>2?G*2:0},stripsToWireframe(G,k){return G>2?G*4-6:0},polysToSurface(G,k){return G>2?(G-2)*3:0},stripsToSurface(G,k,j){return G>2?(G-2)*3:0}};let S=null,R=null;a===rt.POINTS||r==="verts"?(S=v.anythingToPoints,R=w.anythingToPoints):a===rt.WIREFRAME||r==="lines"?(S=v[`${r}ToWireframe`],R=w[`${r}ToWireframe`]):(S=v[`${r}ToSurface`],R=w[`${r}ToSurface`]);const M=n.getData(),m=M.length;let O=0;for(let G=0;G0&&(Math.abs(q)/Y>1e6||Math.abs(Math.log10(Y))>3||Y===0&&q>1e6)){const G=new Float64Array(3),k=new Float64Array(3);for(let j=0;j<3;++j){const K=s.points.getRange(j),P=K[1]-K[0];G[j]=.5*(K[1]+K[0]),k[j]=P>0?1/P:1}t.setCoordShiftAndScale(G,k)}else e.coordShiftAndScaleEnabled===!0&&t.setCoordShiftAndScale(null,null);if(i)if(!i.points&&!i.cells)i.points=new Int32Array(O),i.cells=new Int32Array(O);else{const G=new Int32Array(O+i.points.length);G.set(i.points),i.points=G;const k=new Int32Array(O+i.cells.length);k.set(i.cells),i.cells=k}let re=s.vertexOffset;y=function(k){if(i&&(i.points[re]=k,i.cells[re]=C+s.cellOffset),++re,p=k*3,e.coordShiftAndScaleEnabled?(B[b++]=(o[p++]-e.coordShift[0])*e.coordScale[0],B[b++]=(o[p++]-e.coordShift[1])*e.coordScale[1],B[b++]=(o[p++]-e.coordShift[2])*e.coordScale[2]):(B[b++]=o[p++],B[b++]=o[p++],B[b++]=o[p++]),u!==null&&(s.haveCellNormals?T=(C+s.cellOffset)*3:T=k*3,B[b++]=u[T++],B[b++]=u[T++],B[b++]=u[T++]),e.customData.forEach(j=>{x=k*j.components;for(let K=0;K{if(n!==null&&(n.constructor!==Float64Array||n.length!==3)){Rc("Wrong type for coordShift, expected vec3 or null");return}if(r!==null&&(r.constructor!==Float64Array||r.length!==3)){Rc("Wrong type for coordScale, expected vec3 or null");return}(e.coordShift===null||n===null||!nc(n,e.coordShift))&&(e.coordShift=n),(e.coordScale===null||r===null||!nc(r,e.coordScale))&&(e.coordScale=r),e.coordShiftAndScaleEnabled=uE(e.coordShift,e.coordScale),e.coordShiftAndScaleEnabled?e.inverseShiftAndScaleMatrix=cE(e.coordShift,e.coordScale):e.inverseShiftAndScaleMatrix=null}}const lE={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function Hl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lE,n),Al.extend(t,e,n),E.setGet(t,e,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),E.get(t,e,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),fE(t,e)}const gE=E.newInstance(Hl);var pE={newInstance:gE,extend:Hl};const{vtkErrorMacro:hE}=E;function dE(t,e){e.classHierarchy.push("vtkShader"),t.compile=()=>{let n=e.context.VERTEX_SHADER;if(!e.source||!e.source.length||e.shaderType==="Unknown")return!1;switch(e.handle!==0&&(e.context.deleteShader(e.handle),e.handle=0),e.shaderType){case"Fragment":n=e.context.FRAGMENT_SHADER;break;case"Vertex":default:n=e.context.VERTEX_SHADER;break}if(e.handle=e.context.createShader(n),e.context.shaderSource(e.handle,e.source),e.context.compileShader(e.handle),!e.context.getShaderParameter(e.handle,e.context.COMPILE_STATUS)){const a=e.context.getShaderInfoLog(e.handle);return hE(`Error compiling shader '${e.source}': ${a}`),e.context.deleteShader(e.handle),e.handle=0,!1}return!0},t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(e.context.deleteShader(e.handle),e.handle=0,e.dirty=!0)}}const vE={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function jl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vE,n),E.obj(t,e),E.setGet(t,e,["shaderType","source","error","handle","context"]),dE(t,e)}const yE=E.newInstance(jl,"vtkShader");var Ns={newInstance:yE,extend:jl};const{vtkErrorMacro:bt}=E;function TE(t,e,n,r){const a=typeof n=="string"?n:n.join(` `),s=r===!1?e:new RegExp(e,"g"),i=t.replace(s,a);return{replace:i!==a,result:i}}function xE(t,e){e.classHierarchy.push("vtkShaderProgram"),t.compileShader=()=>e.vertexShader.compile()?e.fragmentShader.compile()?!t.attachShader(e.vertexShader)||!t.attachShader(e.fragmentShader)?(bt(e.error),0):t.link()?(t.setCompiled(!0),1):(bt(`Links failed: ${e.error}`),0):(bt(e.fragmentShader.getSource().split(` `).map((n,r)=>`${r}: ${n}`).join(` `)),bt(e.fragmentShader.getError()),0):(bt(e.vertexShader.getSource().split(` `).map((n,r)=>`${r}: ${n}`).join(` `)),bt(e.vertexShader.getError()),0),t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(t.release(),e.vertexShaderHandle!==0&&(e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=0),e.fragmentShaderHandle!==0&&(e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=0),e.context.deleteProgram(e.handle),e.handle=0,t.setCompiled(!1))},t.bind=()=>!e.linked&&!t.link()?!1:(e.context.useProgram(e.handle),t.setBound(!0),!0),t.isBound=()=>!!e.bound,t.release=()=>{e.context.useProgram(null),t.setBound(!1)},t.setContext=n=>{e.vertexShader.setContext(n),e.fragmentShader.setContext(n),e.geometryShader.setContext(n)},t.link=()=>{if(e.linked)return!0;if(e.handle===0)return e.error="Program has not been initialized, and/or does not have shaders.",!1;if(e.uniformLocs={},e.context.linkProgram(e.handle),!e.context.getProgramParameter(e.handle,e.context.LINK_STATUS)){const r=e.context.getProgramInfoLog(e.handle);return bt(`Error linking shader ${r}`),e.handle=0,!1}return t.setLinked(!0),e.attributeLocs={},!0},t.setUniformMatrix=(n,r)=>{const a=t.findUniform(n);if(a===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;const s=new Float32Array(r);return e.context.uniformMatrix4fv(a,!1,s),!0},t.setUniformMatrix3x3=(n,r)=>{const a=t.findUniform(n);if(a===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;const s=new Float32Array(r);return e.context.uniformMatrix3fv(a,!1,s),!0},t.setUniformf=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform1f(a,r),!0)},t.setUniformfv=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform1fv(a,r),!0)},t.setUniformi=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform1i(a,r),!0)},t.setUniformiv=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform1iv(a,r),!0)},t.setUniform2f=(n,r,a)=>{const s=t.findUniform(n);if(s===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;if(a===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2f(s,r,a),!0},t.setUniform2fv=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform2fv(a,r),!0)},t.setUniform2i=(n,r,a)=>{const s=t.findUniform(n);if(s===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;if(a===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2i(s,r,a),!0},t.setUniform2iv=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform2iv(a,r),!0)},t.setUniform3f=(n,r,a,s)=>{const i=t.findUniform(n);if(i===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;if(s===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(i,r,a,s),!0},t.setUniform3fArray=(n,r)=>{const a=t.findUniform(n);if(a===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||r.length!==3)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(a,r[0],r[1],r[2]),!0},t.setUniform3fv=(n,r)=>{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform3fv(a,r),!0)},t.setUniform3i=function(n){const r=t.findUniform(n);if(r===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var a=arguments.length,s=new Array(a>1?a-1:0),i=1;i{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform3iv(a,r),!0)},t.setUniform4f=function(n){const r=t.findUniform(n);if(r===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var a=arguments.length,s=new Array(a>1?a-1:0),i=1;i{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform4fv(a,r),!0)},t.setUniform4i=function(n){const r=t.findUniform(n);if(r===-1)return e.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var a=arguments.length,s=new Array(a>1?a-1:0),i=1;i{const a=t.findUniform(n);return a===-1?(e.error=`Could not set uniform ${n} . No such uniform.`,!1):(e.context.uniform4iv(a,r),!0)},t.findUniform=n=>{if(!n||!e.linked)return-1;let r=e.uniformLocs[n];return r!==void 0?r:(r=e.context.getUniformLocation(e.handle,n),r===null?(e.error=`Uniform ${n} not found in current shader program.`,e.uniformLocs[n]=-1,-1):(e.uniformLocs[n]=r,r))},t.isUniformUsed=n=>{if(!n)return!1;let r=e.uniformLocs[n];return r!==void 0?r!==null:e.linked?(r=e.context.getUniformLocation(e.handle,n),e.uniformLocs[n]=r,r!==null):(bt("attempt to find uniform when the shader program is not linked"),!1)},t.isAttributeUsed=n=>{if(!n)return!1;if(n in e.attributeLocs)return!0;if(!e.linked)return bt("attempt to find uniform when the shader program is not linked"),!1;const r=e.context.getAttribLocation(e.handle,n);return r===-1?!1:(e.attributeLocs[n]=r,!0)},t.attachShader=n=>{if(n.getHandle()===0)return e.error="Shader object was not initialized, cannot attach it.",!1;if(n.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;if(e.handle===0){const r=e.context.createProgram();if(r===0)return e.error="Could not create shader program.",!1;e.handle=r,e.linked=!1}return n.getShaderType()==="Vertex"&&(e.vertexShaderHandle!==0&&e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=n.getHandle()),n.getShaderType()==="Fragment"&&(e.fragmentShaderHandle!==0&&e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=n.getHandle()),e.context.attachShader(e.handle,n.getHandle()),t.setLinked(!1),!0},t.detachShader=n=>{if(n.getHandle()===0)return e.error="shader object was not initialized, cannot attach it.",!1;if(n.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;switch(e.handle===0&&(e.error="This shader program has not been initialized yet."),n.getShaderType()){case"Vertex":return e.vertexShaderHandle!==n.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,n.getHandle()),e.vertexShaderHandle=0,e.linked=!1,!0);case"Fragment":return e.fragmentShaderHandle!==n.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,n.getHandle()),e.fragmentShaderHandle=0,e.linked=!1,!0);default:return!1}},t.setContext=n=>{e.context=n,e.vertexShader.setContext(n),e.fragmentShader.setContext(n),e.geometryShader.setContext(n)},t.setLastCameraMTime=n=>{e.lastCameraMTime=n}}const SE={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function Kl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SE,n),e.attributesLocs={},e.uniformLocs={},e.vertexShader=Ns.newInstance(),e.vertexShader.setShaderType("Vertex"),e.fragmentShader=Ns.newInstance(),e.fragmentShader.setShaderType("Fragment"),e.geometryShader=Ns.newInstance(),e.geometryShader.setShaderType("Geometry"),E.obj(t,e),E.get(t,e,["lastCameraMTime"]),E.setGet(t,e,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),xE(t,e)}const CE=E.newInstance(Kl,"vtkShaderProgram");var z={newInstance:CE,extend:Kl,substitute:TE};function wE(t,e){e.classHierarchy.push("vtkOpenGLVertexArrayObject"),t.exposedMethod=()=>{},t.initialize=()=>{e.instancingExtension=null,e._openGLRenderWindow.getWebgl2()||(e.instancingExtension=e.context.getExtension("ANGLE_instanced_arrays")),!e.forceEmulation&&e._openGLRenderWindow&&e._openGLRenderWindow.getWebgl2()?(e.extension=null,e.supported=!0,e.handleVAO=e.context.createVertexArray()):(e.extension=e.context.getExtension("OES_vertex_array_object"),!e.forceEmulation&&e.extension?(e.supported=!0,e.handleVAO=e.extension.createVertexArrayOES()):e.supported=!1)},t.isReady=()=>e.handleVAO!==0||e.supported===!1,t.bind=()=>{if(t.isReady()||t.initialize(),t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(e.handleVAO):e.context.bindVertexArray(e.handleVAO);else if(t.isReady()){const n=e.context;for(let r=0;r0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(i.index+u,1):n.vertexAttribDivisor(i.index+u,1))}}}},t.release=()=>{if(t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(null):e.context.bindVertexArray(null);else if(t.isReady()){const n=e.context;for(let r=0;r0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(i.index+u,0):n.vertexAttribDivisor(i.index+u,0)),n.disableVertexAttribArray(i.index+u)}}}},t.shaderProgramChanged=()=>{t.release(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.handleProgram=0},t.releaseGraphicsResources=()=>{t.shaderProgramChanged(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.supported=!0,e.handleProgram=0},t.addAttributeArray=(n,r,a,s,i,o,u,c)=>t.addAttributeArrayWithDivisor(n,r,a,s,i,o,u,c,0,!1),t.addAttributeArrayWithDivisor=(n,r,a,s,i,o,u,c,f,l)=>{if(!n||!n.isBound()||r.getHandle()===0||r.getType()!==Ur.ARRAY_BUFFER||(e.handleProgram===0&&(e.handleProgram=n.getHandle()),t.isReady()||t.initialize(),!t.isReady()||e.handleProgram!==n.getHandle()))return!1;const g=e.context,p={};if(p.name=a,p.index=g.getAttribLocation(e.handleProgram,a),p.offset=s,p.stride=i,p.type=o,p.size=u,p.normalize=c,p.isMatrix=l,p.divisor=f,p.Index===-1)return!1;if(r.bind(),g.enableVertexAttribArray(p.index),g.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),f>0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(p.index,1):g.vertexAttribDivisor(p.index,1)),p.buffer=r.getHandle(),!e.supported){let T=!1;for(let h=0;h{const l=t.addAttributeArrayWithDivisor(n,r,a,s,i,o,u,c,f,!0);if(!l)return l;const g=e.context,p=g.getAttribLocation(e.handleProgram,a);for(let T=1;T0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(p+T,1):g.vertexAttribDivisor(p+T,1));return!0},t.removeAttributeArray=n=>{if(!t.isReady()||e.handleProgram===0)return!1;if(!e.supported)for(let r=0;r{e._openGLRenderWindow!==n&&(t.releaseGraphicsResources(),e._openGLRenderWindow=n,e.context=null,n&&(e.context=e._openGLRenderWindow.getContext()))}}const EE={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function Pl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,EE,n),e.buffers=[],E.obj(t,e),E.get(t,e,["supported"]),E.setGet(t,e,["forceEmulation"]),wE(t,e)}const _E=E.newInstance(Pl,"vtkOpenGLVertexArrayObject");var Xl={newInstance:_E,extend:Pl};const hn={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function RE(t,e){e.classHierarchy.push("vtkOpenGLHelper"),t.setOpenGLRenderWindow=n=>{e.context=n.getContext(),e.program.setContext(e.context),e.VAO.setOpenGLRenderWindow(n),e.CABO.setOpenGLRenderWindow(n)},t.releaseGraphicsResources=n=>{e.VAO.releaseGraphicsResources(),e.CABO.releaseGraphicsResources(),e.CABO.setElementCount(0)},t.drawArrays=(n,r,a,s)=>{if(e.CABO.getElementCount()){const i=t.getOpenGLMode(a),o=t.haveWideLines(n,r),u=e.context,c=u.getParameter(u.DEPTH_WRITEMASK);e.pointPicking&&u.depthMask(!1),i===u.LINES&&o?(t.updateShaders(n,r,s),u.drawArraysInstanced(i,0,e.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(u.lineWidth(r.getProperty().getLineWidth()),t.updateShaders(n,r,s),u.drawArrays(i,0,e.CABO.getElementCount()),u.lineWidth(1));const l=(i===u.POINTS?1:0)||(i===u.LINES?2:3);return e.pointPicking&&u.depthMask(c),e.CABO.getElementCount()/l}return 0},t.getOpenGLMode=n=>{if(e.pointPicking)return e.context.POINTS;const r=e.primitiveType;return n===rt.POINTS||r===hn.Points?e.context.POINTS:n===rt.WIREFRAME||r===hn.Lines||r===hn.TrisEdges||r===hn.TriStripsEdges?e.context.LINES:e.context.TRIANGLES},t.haveWideLines=(n,r)=>r.getProperty().getLineWidth()>1?!(e.CABO.getOpenGLRenderWindow()&&e.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=r.getProperty().getLineWidth()):!1,t.getNeedToRebuildShaders=(n,r,a)=>!!(a.getNeedToRebuildShaders(t,n,r)||t.getProgram()===0||t.getShaderSourceTime().getMTime(){if(t.getNeedToRebuildShaders(n,r,a)){const s={Vertex:null,Fragment:null,Geometry:null};a.buildShaders(s,n,r);const i=e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(s.Vertex,s.Fragment,s.Geometry);i!==t.getProgram()&&(t.setProgram(i),t.getVAO().releaseGraphicsResources()),t.getShaderSourceTime().modified()}else e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(t.getProgram());t.getVAO().bind(),a.setMapperShaderParameters(t,n,r),a.setPropertyShaderParameters(t,n,r),a.setCameraShaderParameters(t,n,r),a.setLightingShaderParameters(t,n,r),a.invokeShaderCallbacks(t,n,r)},t.setMapperShaderParameters=(n,r,a)=>{if(t.haveWideLines(n,r)){t.getProgram().setUniform2f("viewportSize",a.usize,a.vsize);const s=parseFloat(r.getProperty().getLineWidth()),i=s/2;t.getProgram().setUniformf("lineWidthStepSize",s/Math.ceil(s)),t.getProgram().setUniformf("halfLineWidth",i)}e.primitiveType===hn.Points||r.getProperty().getRepresentation()===rt.POINTS?t.getProgram().setUniformf("pointSize",r.getProperty().getPointSize()):e.pointPicking&&t.getProgram().setUniformf("pointSize",t.getPointPickingPrimitiveSize())},t.replaceShaderPositionVC=(n,r,a)=>{let s=n.Vertex;s=z.substitute(s,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,s=z.substitute(s,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,t.getOpenGLMode(a.getProperty().getRepresentation())===e.context.LINES&&t.haveWideLines(r,a)&&(s=z.substitute(s,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,s=z.substitute(s,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),n.Vertex=s},t.getPointPickingPrimitiveSize=()=>e.primitiveType===hn.Points?2:e.primitiveType===hn.Lines?4:6,t.getAllocatedGPUMemoryInBytes=()=>t.getCABO().getAllocatedGPUMemoryInBytes()}const OE={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function Il(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OE,n),E.obj(t,e),e.shaderSourceTime={},E.obj(e.shaderSourceTime),e.attributeUpdateTime={},E.obj(e.attributeUpdateTime),E.setGet(t,e,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),e.program=z.newInstance(),e.VAO=Xl.newInstance(),e.CABO=pE.newInstance(),RE(t,e)}const DE=E.newInstance(Il);var wr={newInstance:DE,extend:Il,primTypes:hn};const ME={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Ti={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var Yl={Wrap:ME,Filter:Ti};const ql=new Float32Array(1),VE=new Int32Array(ql.buffer);function mE(t){ql[0]=t;const e=VE[0];let n=e>>16&32768,r=e>>12&2047;const a=e>>23&255;return a<103?n:a>142?(n|=31744,n|=(a===255?0:1)&&e&8388607,n):a<113?(r|=2048,n|=(r>>114-a)+(r>>113-a&1),n):(n|=a-112<<10|r>>1,n+=r&1,n)}function LE(t){const e=(t&32768)>>15,n=(t&31744)>>10,r=t&1023;return n===0?(e?-1:1)*2**-14*(r/2**10):n===31?r?NaN:(e?-1:1)*(1/0):(e?-1:1)*2**(n-15)*(1+r/2**10)}var mt={fromHalf:LE,toHalf:mE};const{Wrap:Qt,Filter:Ie}=Yl,{VtkDataTypes:pe}=Se,{vtkDebugMacro:bs,vtkErrorMacro:qn,vtkWarningMacro:Oc}=Pt,{toHalf:BE}=mt;function kE(t,e){e.classHierarchy.push("vtkOpenGLTexture"),t.render=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(c?e._openGLRenderWindow=c:(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent()),e.context=e._openGLRenderWindow.getContext(),e.renderable.getInterpolate()?(e.generateMipmap?t.setMinificationFilter(Ie.LINEAR_MIPMAP_LINEAR):t.setMinificationFilter(Ie.LINEAR),t.setMagnificationFilter(Ie.LINEAR)):(t.setMinificationFilter(Ie.NEAREST),t.setMagnificationFilter(Ie.NEAREST)),e.renderable.getRepeat()&&(t.setWrapR(Qt.REPEAT),t.setWrapS(Qt.REPEAT),t.setWrapT(Qt.REPEAT)),e.renderable.getInputData()&&e.renderable.setImage(null),!e.handle||e.renderable.getMTime()>e.textureBuildTime.getMTime()){if(e.renderable.getImage()!==null&&(e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Ie.LINEAR_MIPMAP_LINEAR)),e.renderable.getImage()&&e.renderable.getImageLoaded()&&(t.create2DFromImage(e.renderable.getImage()),t.activate(),t.sendParameters(),e.textureBuildTime.modified())),e.renderable.getCanvas()!==null){e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Ie.LINEAR_MIPMAP_LINEAR));const l=e.renderable.getCanvas();t.create2DFromRaw(l.width,l.height,4,pe.UNSIGNED_CHAR,l,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}if(e.renderable.getJsImageData()!==null){const l=e.renderable.getJsImageData();e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Ie.LINEAR_MIPMAP_LINEAR)),t.create2DFromRaw(l.width,l.height,4,pe.UNSIGNED_CHAR,l.data,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}const f=e.renderable.getInputData(0);if(f&&f.getPointData().getScalars()){const l=f.getExtent(),g=f.getPointData().getScalars(),p=[];for(let T=0;T{t.deactivate(),e.context&&e.handle&&e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.components=0,e.width=0,e.height=0,e.depth=0,t.resetFormatAndType()},t.createTexture=()=>{e.handle||(e.handle=e.context.createTexture(),e.target&&(e.context.bindTexture(e.target,e.handle),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.bindTexture(e.target,null)))},t.getTextureUnit=()=>e._openGLRenderWindow?e._openGLRenderWindow.getTextureUnitForTexture(t):-1,t.activate=()=>{e._openGLRenderWindow.activateTexture(t),t.bind()},t.deactivate=()=>{e._openGLRenderWindow&&e._openGLRenderWindow.deactivateTexture(t)},t.releaseGraphicsResources=c=>{c&&e.handle&&(c.activateTexture(t),c.deactivateTexture(t),e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.internalFormat=0,e.format=0,e.openGLDataType=0,e.components=0,e.width=0,e.height=0,e.depth=0,e.allocatedGPUMemoryInBytes=0),e.shaderProgram&&(e.shaderProgram.releaseGraphicsResources(c),e.shaderProgram=null)},t.bind=()=>{e.context.bindTexture(e.target,e.handle),e.autoParameters&&t.getMTime()>e.sendParametersTime.getMTime()&&t.sendParameters()},t.isBound=()=>{let c=!1;if(e.context&&e.handle){let f=0;switch(e.target){case e.context.TEXTURE_2D:f=e.context.TEXTURE_BINDING_2D;break;default:Oc("impossible case");break}c=e.context.getIntegerv(f)===e.handle}return c},t.sendParameters=()=>{e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e._openGLRenderWindow.getWebgl2()&&(e.context.texParameteri(e.target,e.context.TEXTURE_BASE_LEVEL,e.baseLevel),e.context.texParameteri(e.target,e.context.TEXTURE_MAX_LEVEL,e.maxLevel)),e.sendParametersTime.modified()},t.getInternalFormat=(c,f)=>(e._forceInternalFormat||(e.internalFormat=t.getDefaultInternalFormat(c,f)),e.internalFormat||bs(`Unable to find suitable internal format for T=${c} NC= ${f}`),[e.context.R32F,e.context.RG32F,e.context.RGB32F,e.context.RGBA32F].includes(e.internalFormat)&&!e.context.getExtension("OES_texture_float_linear")&&Oc("Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats."),e.internalFormat),t.getDefaultInternalFormat=(c,f)=>{let l=0;return l=e._openGLRenderWindow.getDefaultTextureInternalFormat(c,f,e.oglNorm16Ext,e.useHalfFloat),l||(l||(bs("Unsupported internal texture type!"),bs(`Unable to find suitable internal format for T=${c} NC= ${f}`)),l)},t.setInternalFormat=c=>{e._forceInternalFormat=!0,c!==e.internalFormat&&(e.internalFormat=c,t.modified())},t.getFormat=(c,f)=>(e.format=t.getDefaultFormat(c,f),e.format),t.getDefaultFormat=(c,f)=>{if(e._openGLRenderWindow.getWebgl2())switch(f){case 1:return e.context.RED;case 2:return e.context.RG;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}else switch(f){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}},t.resetFormatAndType=()=>{e.format=0,e.internalFormat=0,e._forceInternalFormat=!1,e.openGLDataType=0},t.getDefaultDataType=c=>{if(e._openGLRenderWindow.getWebgl2())switch(c){case pe.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case(e.oglNorm16Ext&&!e.useHalfFloat&&pe.SHORT):return e.context.SHORT;case(e.oglNorm16Ext&&!e.useHalfFloat&&pe.UNSIGNED_SHORT):return e.context.UNSIGNED_SHORT;case(e.useHalfFloat&&pe.SHORT):return e.context.HALF_FLOAT;case(e.useHalfFloat&&pe.UNSIGNED_SHORT):return e.context.HALF_FLOAT;case pe.FLOAT:case pe.VOID:default:return e.context.FLOAT}switch(c){case pe.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case pe.FLOAT:case pe.VOID:default:if(e.context.getExtension("OES_texture_float")&&e.context.getExtension("OES_texture_float_linear"))return e.context.FLOAT;{const f=e.context.getExtension("OES_texture_half_float");if(f&&e.context.getExtension("OES_texture_half_float_linear"))return f.HALF_FLOAT_OES}return e.context.UNSIGNED_BYTE}},t.getOpenGLDataType=function(c){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return(!e.openGLDataType||f)&&(e.openGLDataType=t.getDefaultDataType(c)),e.openGLDataType},t.getShiftAndScale=()=>{let c=0,f=1;switch(e.openGLDataType){case e.context.BYTE:f=127.5,c=f-128;break;case e.context.UNSIGNED_BYTE:f=255,c=0;break;case e.context.SHORT:f=32767.5,c=f-32768;break;case e.context.UNSIGNED_SHORT:f=65536,c=0;break;case e.context.INT:f=21474836475e-1,c=f-2147483648;break;case e.context.UNSIGNED_INT:f=4294967295,c=0;break;case e.context.FLOAT:}return{shift:c,scale:f}},t.getOpenGLFilterMode=c=>{switch(c){case Ie.NEAREST:return e.context.NEAREST;case Ie.LINEAR:return e.context.LINEAR;case Ie.NEAREST_MIPMAP_NEAREST:return e.context.NEAREST_MIPMAP_NEAREST;case Ie.NEAREST_MIPMAP_LINEAR:return e.context.NEAREST_MIPMAP_LINEAR;case Ie.LINEAR_MIPMAP_NEAREST:return e.context.LINEAR_MIPMAP_NEAREST;case Ie.LINEAR_MIPMAP_LINEAR:return e.context.LINEAR_MIPMAP_LINEAR;default:return e.context.NEAREST}},t.getOpenGLWrapMode=c=>{switch(c){case Qt.CLAMP_TO_EDGE:return e.context.CLAMP_TO_EDGE;case Qt.REPEAT:return e.context.REPEAT;case Qt.MIRRORED_REPEAT:return e.context.MIRRORED_REPEAT;default:return e.context.CLAMP_TO_EDGE}};function n(c,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const g=[];let p=e.width*e.height*e.components;if(l&&(p*=e.depth),c!==pe.FLOAT&&e.openGLDataType===e.context.FLOAT)for(let h=0;hp?f[h].subarray(0,p):f[h];g.push(new Float32Array(d))}else g.push(null);if(c!==pe.UNSIGNED_CHAR&&e.openGLDataType===e.context.UNSIGNED_BYTE)for(let h=0;hp?f[h].subarray(0,p):f[h];g.push(new Uint8Array(d))}else g.push(null);let T=!1;if(e._openGLRenderWindow.getWebgl2())T=e.openGLDataType===e.context.HALF_FLOAT;else{const h=e.context.getExtension("OES_texture_half_float");T=h&&e.openGLDataType===h.HALF_FLOAT_OES}if(T)for(let h=0;h=g&&(V=g-1);const B=m-O,b=1-B;O=O*l*p,V=V*l*p;for(let U=0;U=l&&(re=l-1);const G=q-Z;Z*=p,re*=p;for(let k=0;k5&&arguments[5]!==void 0?arguments[5]:!1;if(t.getOpenGLDataType(g,!0),t.getInternalFormat(g,l),t.getFormat(g,l),!e.internalFormat||!e.format||!e.openGLDataType)return qn("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=l,e.width=c,e.height=f,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind();const d=n(g,[p]),x=r(d);return e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,T),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(g)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),x[0]!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,x[0])):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,x[0]),e.generateMipmap&&e.context.generateMipmap(e.target),T&&e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,!1),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*l*e._openGLRenderWindow.getDefaultTextureByteSize(g,e.oglNorm16Ext,e.useHalfFloat),t.deactivate(),!0},t.createCubeFromRaw=(c,f,l,g,p)=>{if(t.getOpenGLDataType(g),t.getInternalFormat(g,l),t.getFormat(g,l),!e.internalFormat||!e.format||!e.openGLDataType)return qn("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_CUBE_MAP,e.components=l,e.width=c,e.height=f,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),e.maxLevel=p.length/6-1,t.createTexture(),t.bind();const T=n(g,p),h=r(T),d=[];let x=e.width,C=e.height;for(let y=0;y=1&&S>=1;){let R=null;v<=e.maxLevel&&(R=d[6*v+y]),a(g)?R!=null&&e.context.texSubImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,v,0,0,w,S,e.format,e.openGLDataType,R):e.context.texImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,v,e.internalFormat,w,S,0,e.format,e.openGLDataType,R),v++,w/=2,S/=2}}return e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*l*e._openGLRenderWindow.getDefaultTextureByteSize(g,e.oglNorm16Ext,e.useHalfFloat),t.deactivate(),!0},t.createDepthFromRaw=(c,f,l,g)=>(t.getOpenGLDataType(l),e.format=e.context.DEPTH_COMPONENT,e._openGLRenderWindow.getWebgl2()?l===pe.FLOAT?e.internalFormat=e.context.DEPTH_COMPONENT32F:e.internalFormat=e.context.DEPTH_COMPONENT16:e.internalFormat=e.context.DEPTH_COMPONENT,!e.internalFormat||!e.format||!e.openGLDataType?(qn("Failed to determine texture parameters."),!1):(e.target=e.context.TEXTURE_2D,e.components=1,e.width=c,e.height=f,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(l)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),g!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,g)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,g),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(l,e.oglNorm16Ext,e.useHalfFloat),t.deactivate(),!0)),t.create2DFromImage=c=>{if(t.getOpenGLDataType(pe.UNSIGNED_CHAR),t.getInternalFormat(pe.UNSIGNED_CHAR,4),t.getFormat(pe.UNSIGNED_CHAR,4),!e.internalFormat||!e.format||!e.openGLDataType)return qn("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=4,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1);const f=!e._openGLRenderWindow.getWebgl2()&&(!oa(c.width)||!oa(c.height)),l=document.createElement("canvas");l.width=f?Rt(c.width):c.width,l.height=f?Rt(c.height):c.height,e.width=l.width,e.height=l.height;const g=l.getContext("2d");g.translate(0,l.height),g.scale(1,-1),g.drawImage(c,0,0,c.width,c.height,0,0,l.width,l.height);const p=l;return a(pe.UNSIGNED_CHAR)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),p!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,p)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,p),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(pe.UNSIGNED_CHAR,e.oglNorm16Ext,e.useHalfFloat),t.deactivate(),!0};function s(c,f,l){const g=new Array(l),p=new Array(l);for(let T=0;T2048||p<-2048||p>2048)return!1}return!0}function o(c,f,l,g){t.getOpenGLDataType(c);let p=!1;if(e._openGLRenderWindow.getWebgl2())p=e.openGLDataType===e.context.HALF_FLOAT;else{const h=e.context.getExtension("OES_texture_half_float");p=h&&e.openGLDataType===h.HALF_FLOAT_OES}const T=p&&(i(f,l)||g);e.useHalfFloat=T}function u(c,f){const l=c.getNumberOfComponents(),g=c.getDataType(),p=c.getData(),T=new Array(l),h=new Array(l);for(let x=0;x5&&arguments[5]!==void 0?arguments[5]:!1;return t.create2DFilterableFromDataArray(c,f,Se.newInstance({numberOfComponents:l,dataType:g,values:p}),T)},t.create2DFilterableFromDataArray=function(c,f,l){let g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const{numComps:p,dataType:T,data:h}=u(l,g);t.create2DFromRaw(c,f,p,T,h)},t.create3DFromRaw=(c,f,l,g,p,T)=>{if(t.getOpenGLDataType(p),t.getInternalFormat(p,g),t.getFormat(p,g),!e.internalFormat||!e.format||!e.openGLDataType)return qn("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_3D,e.components=g,e.width=c,e.height=f,e.depth=l,e.numberOfDimensions=3,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind();const x=n(p,[T],!0),C=r(x);return e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(p)?(e.context.texStorage3D(e.target,1,e.internalFormat,e.width,e.height,e.depth),C[0]!=null&&e.context.texSubImage3D(e.target,0,0,0,0,e.width,e.height,e.depth,e.format,e.openGLDataType,C[0])):e.context.texImage3D(e.target,0,e.internalFormat,e.width,e.height,e.depth,0,e.format,e.openGLDataType,C[0]),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(p,e.oglNorm16Ext,e.useHalfFloat),t.deactivate(),!0},t.create3DFilterableFromRaw=function(c,f,l,g,p,T){let h=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;return t.create3DFilterableFromDataArray(c,f,l,Se.newInstance({numberOfComponents:g,dataType:p,values:T}),h)},t.create3DFilterableFromDataArray=function(c,f,l,g){let p=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const{numComps:T,dataType:h,data:d,scaleOffsets:x}=u(g,p),C=c*f*l,y=[],v=[];for(let k=0;k1/P);for(let P=0;P{k[j]=K},R=pe.UNSIGNED_CHAR;if(h===pe.UNSIGNED_CHAR)for(let k=0;k{k[j]=(K-P)/A}):(R=pe.UNSIGNED_CHAR,S=(k,j,K,P,A)=>{k[j]=255*(K-P)/A});if(t.getOpenGLDataType(R),t.getInternalFormat(R,T),t.getFormat(R,T),!e.internalFormat||!e.format||!e.openGLDataType)return qn("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=T,e.depth=1,e.numberOfDimensions=2;let M=e.context.getParameter(e.context.MAX_TEXTURE_SIZE);M>4096&&(R===pe.FLOAT||T>=3)&&(M=4096);let m=1,O=1;C>M*M&&(m=Math.ceil(Math.sqrt(C/(M*M))),O=m);let V=Math.sqrt(C)/m;V=Rt(V);const B=Math.floor(V*m/c),b=Math.ceil(l/B),U=Rt(f*b/O);e.width=V,e.height=U,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.volumeInfo.xreps=B,e.volumeInfo.yreps=b,e.volumeInfo.xstride=m,e.volumeInfo.ystride=O,e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let Y;const q=V*U*T;R===pe.FLOAT?Y=new Float32Array(q):Y=new Uint8Array(q);let Z=0;const re=Math.floor(c/m),G=Math.floor(f/O);for(let k=0;k{e._openGLRenderWindow!==c&&(t.releaseGraphicsResources(),e._openGLRenderWindow=c,e.context=null,c&&(e.context=e._openGLRenderWindow.getContext()))},t.getMaximumTextureSize=c=>c&&c.isCurrent()?c.getIntegerv(c.MAX_TEXTURE_SIZE):-1}const FE={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Qt.CLAMP_TO_EDGE,wrapT:Qt.CLAMP_TO_EDGE,wrapR:Qt.CLAMP_TO_EDGE,minificationFilter:Ie.NEAREST,magnificationFilter:Ie.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,useHalfFloat:!0,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0};function Ql(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FE,n),Be.extend(t,e,n),e.sendParametersTime={},Pe(e.sendParametersTime,{mtime:0}),e.textureBuildTime={},Pe(e.textureBuildTime,{mtime:0}),Ir(t,e,["format","openGLDataType"]),ze(t,e,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),st(t,e,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),Yr(t,e,["openGLRenderWindow"]),kE(t,e)}const Zl=Ee(Ql,"vtkOpenGLTexture");var Wn={newInstance:Zl,extend:Ql,...Yl};Ft("vtkTexture",Zl);var UE=`//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit Module: vtkPolyDataVS.glsl Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ attribute vec4 vertexMC; // frag position in VC //VTK::PositionVC::Dec // optional normal declaration //VTK::Normal::Dec // extra lighting parameters //VTK::Light::Dec // Texture coordinates //VTK::TCoord::Dec // material property values //VTK::Color::Dec // clipping plane vars //VTK::Clip::Dec // camera and actor matrix values //VTK::Camera::Dec // Apple Bug //VTK::PrimID::Dec // picking support //VTK::Picking::Dec void main() { //VTK::Color::Impl //VTK::Normal::Impl //VTK::TCoord::Impl //VTK::Clip::Impl //VTK::PrimID::Impl //VTK::PositionVC::Impl //VTK::Light::Impl //VTK::Picking::Impl } `,NE=`//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit Module: vtkPolyDataFS.glsl Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // Template for the polydata mappers fragment shader uniform int PrimitiveIDOffset; // VC position of this fragment //VTK::PositionVC::Dec // optional color passed in from the vertex shader, vertexColor //VTK::Color::Dec // optional surface normal declaration //VTK::Normal::Dec // extra lighting parameters //VTK::Light::Dec // define vtkImageLabelOutlineOn //VTK::ImageLabelOutlineOn // Texture coordinates //VTK::TCoord::Dec // picking support //VTK::Picking::Dec // Depth Peeling Support //VTK::DepthPeeling::Dec // clipping plane vars //VTK::Clip::Dec // label outline //VTK::LabelOutline::Dec // the output of this shader //VTK::Output::Dec // Apple Bug //VTK::PrimID::Dec // handle coincident offsets //VTK::Coincident::Dec //VTK::ZBuffer::Dec //VTK::LabelOutlineHelperFunction void main() { // VC position of this fragment. This should not branch/return/discard. //VTK::PositionVC::Impl // Place any calls that require uniform flow (e.g. dFdx) here. //VTK::UniformFlow::Impl // Set gl_FragDepth here (gl_FragCoord.z by default) //VTK::Depth::Impl // Early depth peeling abort: //VTK::DepthPeeling::PreColor // Apple Bug //VTK::PrimID::Impl //VTK::Clip::Impl //VTK::Color::Impl // Generate the normal if we are not passed in one //VTK::Normal::Impl //VTK::TCoord::Impl //VTK::Light::Impl if (gl_FragData[0].a <= 0.0) { discard; } //VTK::DepthPeeling::Impl //VTK::Picking::Impl // handle coincident offsets //VTK::Coincident::Impl //VTK::ZBuffer::Impl //VTK::RenderPassFragmentShader::Impl } `;function bE(t,e){t.replaceShaderCoincidentOffset=(n,r,a)=>{const s=t.getCoincidentParameters(r,a);if(s&&(s.factor!==0||s.offset!==0)){let i=n.Fragment;i=z.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,e.context.getExtension("EXT_frag_depth")&&(s.factor!==0?(i=z.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=z.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=z.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),e._openGLRenderWindow.getWebgl2()&&(s.factor!==0?(i=z.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=z.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=z.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}function GE(t,e){t.applyShaderReplacements=(n,r,a)=>{let s=null;if(r&&(s=r.ShaderReplacements),s)for(let i=0;i{t.getReplacedShaderTemplate(n,r,a),e.lastRenderPassShaderReplacement=e.currentRenderPass?e.currentRenderPass.getShaderReplacement():null,e.lastRenderPassShaderReplacement&&e.lastRenderPassShaderReplacement(n);const s=e.renderable.getViewSpecificProperties().OpenGL;t.applyShaderReplacements(n,s,!0),t.replaceShaderValues(n,r,a),t.applyShaderReplacements(n,s)},t.getReplacedShaderTemplate=(n,r,a)=>{const s=e.renderable.getViewSpecificProperties().OpenGL;t.getShaderTemplate(n,r,a);let i=n.Vertex;if(s){const c=s.VertexShaderCode;c!==void 0&&c!==""&&(i=c)}n.Vertex=i;let o=n.Fragment;if(s){const c=s.FragmentShaderCode;c!==void 0&&c!==""&&(o=c)}n.Fragment=o;let u=n.Geometry;if(s){const c=s.GeometryShaderCode;c!==void 0&&(u=c)}n.Geometry=u}}var rs={implementReplaceShaderCoincidentOffset:bE,implementBuildShadersWithReplacements:GE};const{FieldAssociations:Gs}=Pn,{primTypes:We}=wr,{Representation:Qn,Shading:Dc}=Cr,{ScalarMode:da}=Cn,{Filter:Mc,Wrap:Vc}=Wn,{vtkErrorMacro:Mn}=Pt,$E={type:"StartEvent"},WE={type:"EndEvent"},{CoordinateSystem:zE}=Qr;function AE(t){const e=t.getSelector();return e?e.getCurrentPass():nt.MIN_KNOWN_PASS-1}function HE(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper"),t.buildPass=r=>{r&&(e.currentRenderPass=null,e.openGLActor=t.getFirstAncestorOfType("vtkOpenGLActor"),e._openGLRenderer=e.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.translucentPass=(r,a)=>{r&&(e.currentRenderPass=a,t.render())},t.zBufferPass=r=>{r&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=r=>t.zBufferPass(r),t.opaquePass=r=>{r&&t.render()},t.render=()=>{const r=e._openGLRenderWindow.getContext();if(e.context!==r){e.context=r;for(let i=We.Start;i{r.Vertex=UE,r.Fragment=NE,r.Geometry=""},t.replaceShaderColor=(r,a,s)=>{let i=r.Vertex,o=r.Geometry,u=r.Fragment;const c=e.lastBoundBO.getReferenceByName("lastLightComplexity");let f=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];c&&(f=f.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let l=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];c&&(l=l.concat([" vec3 specularColor;"," float specularPower;"])),l=l.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),c&&(l=l.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges&&(f=f.concat(["varying vec4 vertexColorVSOutput;"]),i=z.substitute(i,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,i=z.substitute(i,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,o=z.substitute(o,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,o=z.substitute(o,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges?u=z.substitute(u,"//VTK::Color::Impl",l.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result:e.renderable.getInterpolateScalarsBeforeMapping()&&e.renderable.getColorCoordinates()&&!e.drawingEdges?u=z.substitute(u,"//VTK::Color::Impl",l.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(s.getBackfaceProperty()&&!e.drawingEdges&&(f=f.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),c?(f=f.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),l=l.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):l=l.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),e.haveCellScalars&&!e.drawingEdges&&(f=f.concat(["uniform samplerBuffer texture1;"])),u=z.substitute(u,"//VTK::Color::Impl",l).result),u=z.substitute(u,"//VTK::Color::Dec",f).result,r.Vertex=i,r.Geometry=o,r.Fragment=u},t.replaceShaderLight=(r,a,s)=>{let i=r.Fragment;const o="",u=e.lastBoundBO.getReferenceByName("lastLightComplexity"),c=e.lastBoundBO.getReferenceByName("lastLightCount");let f=[];switch(u){case 0:i=z.substitute(i,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:i=z.substitute(i,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(let l=0;l= cos(radians(lightConeAngle${l})))`," {",` attenuation = attenuation * pow(coneDot, lightExponent${l});`," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));",` diffuseL += ((df${o}) * lightColor${l});`," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {",` float sf = sign(df)*attenuation*pow(max(1e-5, dot(reflect(lightDirectionVC${l}, normalVCVSOutput), normalize(-vertexVC.xyz))), specularPower);`,` specularL += ((sf${o}) * lightColor${l});`," }"]);f=f.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),i=z.substitute(i,"//VTK::Light::Impl",f,!1).result;break;default:Mn("bad light complexity")}r.Fragment=i},t.replaceShaderNormal=(r,a,s)=>{if(e.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let o=r.Vertex,u=r.Geometry,c=r.Fragment;e.lastBoundBO.getCABO().getNormalOffset()?(o=z.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=z.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,u=z.substitute(u,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,u=z.substitute(u,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,c=z.substitute(c,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,c=z.substitute(c,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.haveCellNormals?(c=z.substitute(c,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,c=z.substitute(c,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.lastBoundBO.getOpenGLMode(s.getProperty().getRepresentation())===e.context.LINES?(c=z.substitute(c,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,c=z.substitute(c,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(c=z.substitute(c,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,c=z.substitute(c,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,c=z.substitute(c,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),r.Vertex=o,r.Geometry=u,r.Fragment=c}},t.replaceShaderPositionVC=(r,a,s)=>{e.lastBoundBO.replaceShaderPositionVC(r,a,s);let i=r.Vertex,o=r.Geometry,u=r.Fragment;e.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(i=z.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=z.substitute(i,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,i=z.substitute(i,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=z.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=z.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,u=z.substitute(u,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,u=z.substitute(u,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(i=z.substitute(i,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,i=z.substitute(i,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),r.Vertex=i,r.Geometry=o,r.Fragment=u},t.replaceShaderTCoord=(r,a,s)=>{if(e.lastBoundBO.getCABO().getTCoordOffset()){let i=r.Vertex,o=r.Geometry,u=r.Fragment;if(e.drawingEdges)return;i=z.substitute(i,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;const c=e.openGLActor.getActiveTextures();let f=2,l=2;if(c&&c.length>0&&(f=c[0].getComponents(),c[0].getTarget()===e.context.TEXTURE_CUBE_MAP&&(l=3)),e.renderable.getColorTextureMap()&&(f=e.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),l=2),l===2){if(i=z.substitute(i,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=z.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=z.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,u=z.substitute(u,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,c&&c.length>=1)switch(f){case 1:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(i=z.substitute(i,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=z.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=z.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,u=z.substitute(u,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,f){case 1:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:u=z.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}r.Vertex=i,r.Geometry=o,r.Fragment=u}},t.replaceShaderClip=(r,a,s)=>{let i=r.Vertex,o=r.Fragment;if(e.renderable.getNumberOfClippingPlanes()){const u=e.renderable.getNumberOfClippingPlanes();i=z.substitute(i,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${u}];`,`varying float clipDistancesVSOutput[${u}];`]).result,i=z.substitute(i,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${u}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=z.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${u}];`]).result,o=z.substitute(o,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${u}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}r.Vertex=i,r.Fragment=o},t.getCoincidentParameters=(r,a)=>{let s={factor:0,offset:0};const i=a.getProperty();if(e.renderable.getResolveCoincidentTopology()||i.getEdgeVisibility()&&i.getRepresentation()===Qn.SURFACE){const u=e.lastBoundBO.getPrimitiveType();u===We.Points||i.getRepresentation()===Qn.POINTS?s=e.renderable.getCoincidentTopologyPointOffsetParameter():u===We.Lines||i.getRepresentation()===Qn.WIREFRAME?s=e.renderable.getCoincidentTopologyLineOffsetParameters():(u===We.Tris||u===We.TriStrips)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters()),(u===We.TrisEdges||u===We.TriStripsEdges)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters(),s.factor/=2,s.offset/=2)}const o=e._openGLRenderer.getSelector();return o&&o.getFieldAssociation()===Gs.FIELD_ASSOCIATION_POINTS&&(s.offset-=2),s},t.replaceShaderPicking=(r,a,s)=>{let i=r.Fragment,o=r.Vertex;if(i=z.substitute(i,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,!!e._openGLRenderer.getSelector()){switch((e.lastSelectionState===nt.ID_LOW24||e.lastSelectionState===nt.ID_HIGH24)&&(o=z.substitute(o,"//VTK::Picking::Dec",[`flat out int vertexIDVSOutput; `,`uniform int VertexIDOffset; `]).result,o=z.substitute(o,"//VTK::Picking::Impl",` vertexIDVSOutput = gl_VertexID + VertexIDOffset; `).result,i=z.substitute(i,"//VTK::Picking::Dec",`flat in int vertexIDVSOutput; `).result,i=z.substitute(i,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),e.lastSelectionState){case nt.ID_LOW24:i=z.substitute(i,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);").result;break;case nt.ID_HIGH24:i=z.substitute(i,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx)/255.0, 0.0, 0.0, 1.0);").result;break;default:i=z.substitute(i,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,i=z.substitute(i,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result}r.Fragment=i,r.Vertex=o}},t.replaceShaderValues=(r,a,s)=>{if(t.replaceShaderColor(r,a,s),t.replaceShaderNormal(r,a,s),t.replaceShaderLight(r,a,s),t.replaceShaderTCoord(r,a,s),t.replaceShaderPicking(r,a,s),t.replaceShaderClip(r,a,s),t.replaceShaderCoincidentOffset(r,a,s),t.replaceShaderPositionVC(r,a,s),e.haveSeenDepthRequest){let i=r.Fragment;i=z.substitute(i,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,i=z.substitute(i,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,r.Fragment=i}},t.getNeedToRebuildShaders=(r,a,s)=>{let i=0,o=0;const u=r.getPrimitiveType(),c=e.currentInput;let f=!1;const l=c.getPointData().getNormals(),g=c.getCellData().getNormals(),p=s.getProperty().getInterpolation()===Dc.FLAT,T=s.getProperty().getRepresentation(),h=r.getOpenGLMode(T,u);if((h===e.context.TRIANGLES||g&&!l||!p&&l||!p&&h===e.context.LINES)&&(f=!0),s.getProperty().getLighting()&&f){i=0;const y=a.getLightsByReference();for(let v=0;v0&&(o++,i===0&&(i=1)),i===1&&(o>1||w.getIntensity()!==1||!w.lightTypeIsHeadLight())&&(i=2),i<3&&w.getPositional()&&(i=3)}}let d=!1;const x=e.lastBoundBO.getReferenceByName("lastLightComplexity"),C=e.lastBoundBO.getReferenceByName("lastLightCount");return(x!==i||C!==o)&&(e.lastBoundBO.set({lastLightComplexity:i},!0),e.lastBoundBO.set({lastLightCount:o},!0),d=!0),(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(d=!0),e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||r.getShaderSourceTime().getMTime(){const i=e.renderable.getViewSpecificProperties().ShadersCallbacks;i&&i.forEach(o=>{o.callback(o.userData,r,a,s)})},t.setMapperShaderParameters=(r,a,s)=>{if(r.getProgram().isUniformUsed("PrimitiveIDOffset")&&r.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),r.getProgram().isUniformUsed("VertexIDOffset")&&r.getProgram().setUniformi("VertexIDOffset",e.vertexIDOffset),r.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>r.getAttributeUpdateTime().getMTime()||r.getShaderSourceTime().getMTime()>r.getAttributeUpdateTime().getMTime())){const u=e.lastBoundBO.getReferenceByName("lastLightComplexity");r.getProgram().isAttributeUsed("vertexMC")&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"vertexMC",r.getCABO().getVertexOffset(),r.getCABO().getStride(),e.context.FLOAT,3,!1)||Mn("Error setting vertexMC in shader VAO.")),r.getProgram().isAttributeUsed("normalMC")&&r.getCABO().getNormalOffset()&&u>0?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"normalMC",r.getCABO().getNormalOffset(),r.getCABO().getStride(),e.context.FLOAT,3,!1)||Mn("Error setting normalMC in shader VAO."):r.getVAO().removeAttributeArray("normalMC"),e.renderable.getCustomShaderAttributes().forEach((c,f)=>{r.getProgram().isAttributeUsed(`${c}MC`)&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),`${c}MC`,r.getCABO().getCustomData()[f].offset,r.getCABO().getStride(),e.context.FLOAT,r.getCABO().getCustomData()[f].components,!1)||Mn(`Error setting ${c}MC in shader VAO.`))}),r.getProgram().isAttributeUsed("tcoordMC")&&r.getCABO().getTCoordOffset()?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"tcoordMC",r.getCABO().getTCoordOffset(),r.getCABO().getStride(),e.context.FLOAT,r.getCABO().getTCoordComponents(),!1)||Mn("Error setting tcoordMC in shader VAO."):r.getVAO().removeAttributeArray("tcoordMC"),r.getProgram().isAttributeUsed("scalarColor")&&r.getCABO().getColorComponents()?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO().getColorBO(),"scalarColor",r.getCABO().getColorOffset(),r.getCABO().getColorBOStride(),e.context.UNSIGNED_BYTE,4,!0)||Mn("Error setting scalarColor in shader VAO."):r.getVAO().removeAttributeArray("scalarColor"),r.getAttributeUpdateTime().modified()}if(e.renderable.getNumberOfClippingPlanes()){const u=e.renderable.getNumberOfClippingPlanes(),c=[],l=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null,g=l?qe(e.tmpMat4,s.getMatrix()):s.getMatrix();l&&(Oe(g,g),at(g,g,l),Oe(g,g));for(let p=0;p{const i=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(i<2)return;const o=r.getProgram();let u=0;const c=a.getLightsByReference();for(let g=0;g0){const h=p.getColorByReference(),d=p.getIntensity();e.lightColor[0]=h[0]*d,e.lightColor[1]=h[1]*d,e.lightColor[2]=h[2]*d;const x=p.getDirection(),C=a.getActiveCamera().getViewMatrix(),y=[...x];p.lightTypeIsSceneLight()&&(y[0]=C[0]*x[0]+C[1]*x[1]+C[2]*x[2],y[1]=C[4]*x[0]+C[5]*x[1]+C[6]*x[2],y[2]=C[8]*x[0]+C[9]*x[1]+C[10]*x[2],jr(y)),e.lightDirection[0]=y[0],e.lightDirection[1]=y[1],e.lightDirection[2]=y[2],jr(e.lightDirection),o.setUniform3fArray(`lightColor${u}`,e.lightColor),o.setUniform3fArray(`lightDirectionVC${u}`,e.lightDirection),u++}}if(i<3)return;const l=a.getActiveCamera().getViewMatrix();Oe(l,l),u=0;for(let g=0;g0){const h=p.getTransformedPosition(),d=new Float64Array(3);xe(d,h,l),o.setUniform3fArray(`lightAttenuation${u}`,p.getAttenuationValuesByReference()),o.setUniformi(`lightPositional${u}`,p.getPositional()),o.setUniformf(`lightExponent${u}`,p.getExponent()),o.setUniformf(`lightConeAngle${u}`,p.getConeAngle()),o.setUniform3fArray(`lightPositionVC${u}`,[d[0],d[1],d[2]]),u++}}};function n(r,a,s){return a.identity(s),r.reduce((i,o,u)=>u===0?o?a.copy(i,o):a.identity(i):o?a.multiply(i,i,o):i,s)}t.setCameraShaderParameters=(r,a,s)=>{const i=r.getProgram(),o=e.openGLCamera.getKeyMatrices(a),u=a.getActiveCamera(),c=e.openGLCamera.getKeyMatrixTime().getMTime(),f=i.getLastCameraMTime(),g=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null,p=s.getIsIdentity(),T=p?{mcwc:null,normalMatrix:null}:e.openGLActor.getKeyMatrices();if(s.getCoordinateSystem()===zE.DISPLAY){const h=e._openGLRenderer.getTiledSizeAndOrigin();le(e.tmpMat4),e.tmpMat4[0]=2/h.usize,e.tmpMat4[12]=-1,e.tmpMat4[5]=2/h.vsize,e.tmpMat4[13]=-1,at(e.tmpMat4,e.tmpMat4,g),i.setUniformMatrix("MCPCMatrix",e.tmpMat4)}else i.setUniformMatrix("MCPCMatrix",n([o.wcpc,T.mcwc,g],ii,e.tmpMat4));i.isUniformUsed("MCVCMatrix")&&i.setUniformMatrix("MCVCMatrix",n([o.wcvc,T.mcwc,g],ii,e.tmpMat4)),i.isUniformUsed("normalMatrix")&&i.setUniformMatrix3x3("normalMatrix",n([o.normalMatrix,T.normalMatrix],wx,e.tmpMat3)),f!==c&&(i.isUniformUsed("cameraParallel")&&i.setUniformi("cameraParallel",u.getParallelProjection()),i.setLastCameraMTime(c)),p||i.setLastCameraMTime(0)},t.setPropertyShaderParameters=(r,a,s)=>{const i=r.getProgram();let o=s.getProperty(),u=o.getOpacity(),c=e.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),f=e.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),l=e.drawingEdges?1:o.getAmbient(),g=e.drawingEdges?0:o.getDiffuse(),p=e.drawingEdges?0:o.getSpecular();const T=o.getSpecularPower();i.setUniformf("opacityUniform",u),i.setUniform3fArray("ambientColorUniform",c),i.setUniform3fArray("diffuseColorUniform",f),i.setUniformf("ambient",l),i.setUniformf("diffuse",g);const h=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(h<1)return;let d=o.getSpecularColorByReference();if(i.setUniform3fArray("specularColorUniform",d),i.setUniformf("specularPowerUniform",T),i.setUniformf("specular",p),i.isUniformUsed("ambientIntensityBF")){if(o=s.getBackfaceProperty(),u=o.getOpacity(),c=o.getAmbientColor(),l=o.getAmbient(),f=o.getDiffuseColor(),g=o.getDiffuse(),d=o.getSpecularColor(),p=o.getSpecular(),i.setUniformf("ambientIntensityBF",l),i.setUniformf("diffuseIntensityBF",g),i.setUniformf("opacityUniformBF",u),i.setUniform3fArray("ambientColorUniformBF",c),i.setUniform3fArray("diffuseColorUniformBF",f),h<1)return;i.setUniformf("specularIntensityBF",p),i.setUniform3fArray("specularColorUniformBF",d),i.setUniformf("specularPowerUniformBF",T)}},t.updateMaximumPointCellIds=(r,a)=>{var o,u,c,f;const s=e._openGLRenderer.getSelector();if(!s)return;if((u=(o=e.selectionWebGLIdsToVTKIds)==null?void 0:o.points)!=null&&u.length){const l=e.selectionWebGLIdsToVTKIds.points.length;s.setMaximumPointId(l-1)}if((f=(c=e.selectionWebGLIdsToVTKIds)==null?void 0:c.cells)!=null&&f.length){const l=e.selectionWebGLIdsToVTKIds.cells.length;s.setMaximumCellId(l-1)}s.getFieldAssociation()===Gs.FIELD_ASSOCIATION_POINTS&&(e.pointPicking=!0)},t.renderPieceStart=(r,a)=>{e.primitiveIDOffset=0,e.vertexIDOffset=0;const s=AE(e._openGLRenderer);if(e.lastSelectionState!==s&&(e.selectionStateChanged.modified(),e.lastSelectionState=s),e._openGLRenderer.getSelector())switch(s){default:e._openGLRenderer.getSelector().renderProp(a)}t.updateBufferObjects(r,a),e.renderable.getColorTextureMap()&&e.internalColorTexture.activate(),e.lastBoundBO=null},t.renderPieceDraw=(r,a)=>{const s=a.getProperty().getRepresentation(),i=a.getProperty().getEdgeVisibility()&&s===Qn.SURFACE,o=e._openGLRenderer.getSelector(),u=o&&o.getFieldAssociation()===Gs.FIELD_ASSOCIATION_POINTS&&(e.lastSelectionState===nt.ID_LOW24||e.lastSelectionState===nt.ID_HIGH24);for(let c=We.Start;c=0))&&(e.lastBoundBO=e.primitives[c],e.primitiveIDOffset+=e.primitives[c].drawArrays(r,a,s,t),e.vertexIDOffset+=e.primitives[c].getCABO().getElementCount()))},t.renderPieceFinish=(r,a)=>{e.LastBoundBO&&e.LastBoundBO.getVAO().release(),e.renderable.getColorTextureMap()&&e.internalColorTexture.deactivate()},t.renderPiece=(r,a)=>{if(t.invokeEvent($E),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(WE),!e.currentInput){Mn("No input!");return}if(!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues())return;const s=e.context,i=a.getProperty().getBackfaceCulling(),o=a.getProperty().getFrontfaceCulling();!i&&!o?e._openGLRenderWindow.disableCullFace():o?(e._openGLRenderWindow.enableCullFace(),s.cullFace(s.FRONT)):(e._openGLRenderWindow.enableCullFace(),s.cullFace(s.BACK)),t.renderPieceStart(r,a),t.renderPieceDraw(r,a),t.renderPieceFinish(r,a)},t.computeBounds=(r,a)=>{if(!t.getInput()){Ii(e.bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(r,a)=>{t.getNeedToRebuildBufferObjects(r,a)&&t.buildBufferObjects(r,a)},t.getNeedToRebuildBufferObjects=(r,a)=>{const s=e.VBOBuildTime.getMTime();return s{const s=e.currentInput;if(s===null)return;e.renderable.mapScalars(s,1);const i=e.renderable.getColorMapColors();e.haveCellScalars=!1;const o=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(o===da.USE_CELL_DATA||o===da.USE_CELL_FIELD_DATA||o===da.USE_FIELD_DATA||!s.getPointData().getScalars())&&o!==da.USE_POINT_FIELD_DATA&&i&&(e.haveCellScalars=!0);let u=a.getProperty().getInterpolation()!==Dc.FLAT?s.getPointData().getNormals():null;u===null&&s.getCellData().getNormals()&&(e.haveCellNormals=!0,u=s.getCellData().getNormals());const c=a.getProperty().getRepresentation();let f=s.getPointData().getTCoords();if(e.openGLActor.getActiveTextures()||(f=null),e.renderable.getColorCoordinates()){f=e.renderable.getColorCoordinates(),e.internalColorTexture||(e.internalColorTexture=Wn.newInstance({resizable:!0}));const g=e.internalColorTexture;g.setMinificationFilter(Mc.NEAREST),g.setMagnificationFilter(Mc.NEAREST),g.setWrapS(Vc.CLAMP_TO_EDGE),g.setWrapT(Vc.CLAMP_TO_EDGE),g.setOpenGLRenderWindow(e._openGLRenderWindow);const p=e.renderable.getColorTextureMap(),T=p.getExtent(),h=p.getPointData().getScalars();g.create2DFromRaw(T[1]-T[0]+1,T[3]-T[2]+1,h.getNumberOfComponents(),h.getDataType(),h.getData()),g.activate(),g.sendParameters(),g.deactivate()}const l=`${s.getMTime()}A${c}B${s.getMTime()}C${u?u.getMTime():1}D${i?i.getMTime():1}E${a.getProperty().getEdgeVisibility()}F${f?f.getMTime():1}`;if(e.VBOBuildString!==l){const p={points:s.getPoints(),normals:u,tcoords:f,colors:i,cellOffset:0,vertexOffset:0,haveCellScalars:e.haveCellScalars,haveCellNormals:e.haveCellNormals,customAttributes:e.renderable.getCustomShaderAttributes().map(d=>s.getPointData().getArrayByName(d))};e.renderable.getPopulateSelectionSettings()&&(e.selectionWebGLIdsToVTKIds={points:null,cells:null});const T=[{inRep:"verts",cells:s.getVerts()},{inRep:"lines",cells:s.getLines()},{inRep:"polys",cells:s.getPolys()},{inRep:"strips",cells:s.getStrips()},{inRep:"polys",cells:s.getPolys()},{inRep:"strips",cells:s.getStrips()}],h=a.getProperty().getEdgeVisibility()&&c===Qn.SURFACE;for(let d=We.Start;d{let r=0;return e.primitives.forEach(a=>{r+=a.getAllocatedGPUMemoryInBytes()}),r}}const jE={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:nt.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function KE(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jE,n),Be.extend(t,e,n),rs.implementReplaceShaderCoincidentOffset(t,e,n),rs.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=We,e.tmpMat3=Kn(new Float64Array(9)),e.tmpMat4=le(new Float64Array(16));for(let r=We.Start;r{e.lookupTable=Br.newInstance()},t.getColorModeAsString=()=>E.enumToString(XE,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>E.enumToString(Vn,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(n,r,a,s,i)=>{if(!n||!e.scalarVisibility)return{scalars:null,cellFLag:!1};let o=null,u=!1;if(r===Vn.DEFAULT)o=n.getPointData().getScalars(),o||(o=n.getCellData().getScalars(),u=!0);else if(r===Vn.USE_POINT_DATA)o=n.getPointData().getScalars();else if(r===Vn.USE_CELL_DATA)o=n.getCellData().getScalars(),u=!0;else if(r===Vn.USE_POINT_FIELD_DATA){const c=n.getPointData();a===$s.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===Vn.USE_CELL_FIELD_DATA){const c=n.getCellData();u=!0,a===$s.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===Vn.USE_FIELD_DATA){const c=n.getFieldData();a===$s.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}return{scalars:o,cellFlag:u}},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let n=e.mtime;if(e.lookupTable!==null){const r=e.lookupTable.getMTime();n=r>n?r:n}return n},t.mapScalars=(n,r)=>{const a=t.getAbstractScalars(n,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!a){e.colorMapColors=null;return}const s=`${t.getMTime()}${a.getMTime()}${r}`;if(e.colorBuildString===s)return;e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]);const i=t.getLookupTable();i&&(i.build(),e.colorMapColors=i.mapScalars(a,e.colorMode,e.fieldDataTupleId)),e.colorBuildString=`${t.getMTime()}${a.getMTime()}${r}`},t.getPrimitiveCount=()=>{const n=t.getInputData();return{points:n.getPoints().getNumberOfValues()/3,verts:n.getVerts().getNumberOfValues()-n.getVerts().getNumberOfCells(),lines:n.getLines().getNumberOfValues()-2*n.getLines().getNumberOfCells(),triangles:n.getPolys().getNumberOfValues()-3*n.getPolys().getNumberOfCells()}}}const YE={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function Jl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YE,n),ul.extend(t,e,n),E.get(t,e,["colorMapColors"]),E.setGet(t,e,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),E.setGetArray(t,e,["scalarRange"],2),e.viewSpecificProperties||(e.viewSpecificProperties={}),IE(t,e)}const qE=E.newInstance(Jl,"vtkMapper2D");var QE={newInstance:qE,extend:Jl},ZE=`//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit Module: vtkPolyData2DFS.glsl Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ uniform int PrimitiveIDOffset; // Texture coordinates //VTK::TCoord::Dec // Scalar coloring //VTK::Color::Dec // Depth Peeling //VTK::DepthPeeling::Dec // picking support //VTK::Picking::Dec // the output of this shader //VTK::Output::Dec // Apple Bug //VTK::PrimID::Dec void main() { // Apple Bug //VTK::PrimID::Impl //VTK::Color::Impl //VTK::TCoord::Impl //VTK::DepthPeeling::Impl //VTK::Picking::Impl if (gl_FragData[0].a <= 0.0) { discard; } } `,JE=`//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit Module: vtkPolyData2DVS.glsl Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // all variables that represent positions or directions have a suffix // indicating the coordinate system they are in. The possible values are // MC - Model Coordinates // WC - WC world coordinates // VC - View Coordinates // DC - Display Coordinates in vec4 vertexWC; // frag position in VC //VTK::PositionVC::Dec // material property values //VTK::Color::Dec // Texture coordinates //VTK::TCoord::Dec // Apple Bug //VTK::PrimID::Dec uniform mat4 WCVCMatrix; // World to view matrix void main() { // Apple Bug //VTK::PrimID::Impl gl_Position = WCVCMatrix*vertexWC; //VTK::TCoord::Impl //VTK::Color::Impl //VTK::PositionVC::Impl } `;const eg={BACKGROUND:0,FOREGROUND:1};var tg={DisplayLocation:eg};const{primTypes:Et}=wr,{ScalarMode:va}=QE,{vtkErrorMacro:ya}=Pt,e_={type:"StartEvent"},t_={type:"EndEvent"};function n_(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),t.buildPass=r=>{r&&(e.openGLActor2D=t.getFirstAncestorOfType("vtkOpenGLActor2D"),e._openGLRenderer=e.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.overlayPass=r=>{r&&t.render()},t.getShaderTemplate=(r,a,s)=>{r.Vertex=JE,r.Fragment=ZE,r.Geometry=""},t.render=()=>{const r=e._openGLRenderWindow.getContext();if(e.context!==r){e.context=r;for(let i=Et.Start;i{if(t.invokeEvent(e_),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(t_),!e.currentInput){ya("No input!");return}!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues()||(t.renderPieceStart(r,a),t.renderPieceDraw(r,a),t.renderPieceFinish(r,a))},t.renderPieceStart=(r,a)=>{if(e.primitiveIDOffset=0,e._openGLRenderer.getSelector())switch(e._openGLRenderer.getSelector().getCurrentPass()){default:e._openGLRenderer.getSelector().renderProp(a)}t.updateBufferObjects(r,a),e.lastBoundBO=null},t.getNeedToRebuildShaders=(r,a,s)=>r.getShaderSourceTime().getMTime(){t.getNeedToRebuildBufferObjects(r,a)&&t.buildBufferObjects(r,a)},t.getNeedToRebuildBufferObjects=(r,a)=>{const s=e.VBOBuildTime.getMTime();return!!(s{const s=e.currentInput;if(s===null)return;e.renderable.mapScalars(s,a.getProperty().getOpacity());const i=e.renderable.getColorMapColors();e.haveCellScalars=!1;const o=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(o===va.USE_CELL_DATA||o===va.USE_CELL_FIELD_DATA||o===va.USE_FIELD_DATA||!s.getPointData().getScalars())&&o!==va.USE_POINT_FIELD_DATA&&i&&(e.haveCellScalars=!0);const u=a.getProperty().getRepresentation();let c=s.getPointData().getTCoords();e.openGLActor2D.getActiveTextures()||(c=null);const f=e.renderable.getTransformCoordinate(),g=r.getRenderWindow().getViews()[0].getViewportSize(r),p=`${s.getMTime()}A${u}B${s.getMTime()}C${i?i.getMTime():1}D${c?c.getMTime():1}E${f?r.getMTime():1}F${g}`;if(e.VBOBuildString!==p){let T=s.getPoints();if(f){const d=es.newInstance(),x=T.getNumberOfPoints();d.setNumberOfPoints(x);const C=[];for(let y=0;ys.getPointData().getArrayByName(d))};h.cellOffset+=e.primitives[Et.Points].getCABO().createVBO(s.getVerts(),"verts",u,h),h.cellOffset+=e.primitives[Et.Lines].getCABO().createVBO(s.getLines(),"lines",u,h),h.cellOffset+=e.primitives[Et.Tris].getCABO().createVBO(s.getPolys(),"polys",u,h),h.cellOffset+=e.primitives[Et.TriStrips].getCABO().createVBO(s.getStrips(),"strips",u,h),e.VBOBuildTime.modified(),e.VBOBuildString=p}},t.renderPieceDraw=(r,a)=>{const s=a.getProperty().getRepresentation();e.context.depthMask(!0);for(let o=Et.Start;o{e.lastBoundBO&&e.lastBoundBO.getVAO().release()},t.replaceShaderValues=(r,a,s)=>{t.replaceShaderColor(r,a,s),t.replaceShaderTCoord(r,a,s),t.replaceShaderPicking(r,a,s),t.replaceShaderPositionVC(r,a,s)},t.replaceShaderColor=(r,a,s)=>{let i=r.Vertex,o=r.Geometry,u=r.Fragment;e.haveCellScalars&&(u=z.substitute(u,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,u=z.substitute(u,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0?(i=z.substitute(i,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,i=z.substitute(i,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,o=z.substitute(o,"//VTK::Color::Dec",[`in vec4 fcolorVSOutput[]; `,"out vec4 fcolorGSOutput;"]).result,o=z.substitute(o,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,u=z.substitute(u,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,u=z.substitute(u,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(u=z.substitute(u,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,u=z.substitute(u,"//VTK::Color::Impl",["gl_FragData[0] = diffuseColor;"]).result),r.Vertex=i,r.Geometry=o,r.Fragment=u},t.replaceShaderTCoord=(r,a,s)=>{if(e.lastBoundBO.getCABO().getTCoordOffset()){let i=r.Vertex,o=r.Geometry,u=r.Fragment;const c=e.lastBoundBO.getCABO().getTCoordComponents();c===1?(i=z.substitute(i,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,i=z.substitute(i,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=z.substitute(o,"//VTK::TCoord::Dec",[`in float tcoordVCVSOutput[]; `,"out float tcoordVCGSOutput;"]).result,o=z.substitute(o,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,u=z.substitute(u,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,u=z.substitute(u,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):c===2&&(i=z.substitute(i,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,i=z.substitute(i,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=z.substitute(o,"//VTK::TCoord::Dec",[`in vec2 tcoordVCVSOutput[]; `,"out vec2 tcoordVCGSOutput;"]).result,o=z.substitute(o,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,u=z.substitute(u,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,u=z.substitute(u,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),e.haveCellScalars&&(o=z.substitute(o,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),r.Vertex=i,r.Geometry=o,r.Fragment=u}},t.replaceShaderPicking=(r,a,s)=>{let i=r.Fragment;i=z.substitute(i,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,i=z.substitute(i,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,r.Fragment=i},t.replaceShaderPositionVC=(r,a,s)=>{e.lastBoundBO.replaceShaderPositionVC(r,a,s)},t.invokeShaderCallbacks=(r,a,s)=>{const i=e.renderable.getViewSpecificProperties().ShadersCallbacks;i&&i.forEach(o=>{o.callback(o.userData,r,a,s)})},t.setMapperShaderParameters=(r,a,s)=>{if(r.getProgram().isUniformUsed("PrimitiveIDOffset")&&r.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),r.getProgram().isAttributeUsed("vertexWC")&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"vertexWC",r.getCABO().getVertexOffset(),r.getCABO().getStride(),e.context.FLOAT,3,!1)||ya("Error setting vertexWC in shader VAO.")),r.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>r.getAttributeUpdateTime().getMTime()||r.getShaderSourceTime().getMTime()>r.getAttributeUpdateTime().getMTime())){e.renderable.getCustomShaderAttributes().forEach((u,c)=>{r.getProgram().isAttributeUsed(`${u}MC`)&&(r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),`${u}MC`,r.getCABO().getCustomData()[c].offset,r.getCABO().getStride(),e.context.FLOAT,r.getCABO().getCustomData()[c].components,!1)||ya(`Error setting ${u}MC in shader VAO.`))}),r.getProgram().isAttributeUsed("tcoordMC")&&r.getCABO().getTCoordOffset()?r.getVAO().addAttributeArray(r.getProgram(),r.getCABO(),"tcoordMC",r.getCABO().getTCoordOffset(),r.getCABO().getStride(),e.context.FLOAT,r.getCABO().getTCoordComponents(),!1)||ya("Error setting tcoordMC in shader VAO."):r.getVAO().removeAttributeArray("tcoordMC"),e.internalColorTexture&&r.getProgram().isUniformUsed("texture1")&&r.getProgram().setUniformi("texture1",e.internalColorTexture.getTextureUnit());const i=e.openGLActor2D.getActiveTextures();if(i)for(let u=0;u{const i=e.renderable.getColorMapColors();if(!i||i.getNumberOfComponents()===0){const o=r.getProgram(),u=s.getProperty(),c=u.getOpacity(),f=u.getColor(),l=[f[0],f[1],f[2],c];o.setUniform4f("diffuseColor",l)}},t.setLightingShaderParameters=(r,a,s)=>{};function n(r,a,s){return a.identity(s),r.reduce((i,o,u)=>u===0?o?a.copy(i,o):a.identity(i):o?a.multiply(i,i,o):i,s)}t.setCameraShaderParameters=(r,a,s)=>{const i=r.getProgram(),u=r.getCABO().getCoordShiftAndScaleEnabled()?r.getCABO().getInverseShiftAndScaleMatrix():null,f=a.getRenderWindow().getViews()[0].getViewportSize(a),l=a.getViewport(),g=s.getActualPositionCoordinate().getComputedDoubleViewportValue(a),p=[0,0,1,1],T=[0,0,1,1];if(T[0]=l[0]>=p[0]?l[0]:p[0],T[1]=l[1]>=p[1]?l[1]:p[1],T[2]=l[2]<=p[2]?l[2]:p[2],T[3]=l[3]<=p[3]?l[3]:p[3],T[0]>=T[2]||T[1]>=T[3])return;f[0]=ia(f[0]*(T[2]-T[0])/(l[2]-l[0])),f[1]=ia(f[1]*(T[3]-T[1])/(l[3]-l[1]));const h=e._openGLRenderer.getParent().getSize(),d=ia(g[0]-(T[0]-l[0])*h[0]),x=ia(g[1]-(T[1]-l[1])*h[1]),C=-d;let y=-d+f[0];const v=-x;let w=-x+f[1];C===y&&(y=C+1),v===w&&(w=v+1);const S=le(new Float64Array(16));S[0]=2/(y-C),S[1*4+1]=2/(w-v),S[0*4+3]=-1*(y+C)/(y-C),S[1*4+3]=-1*(w+v)/(w-v),S[2*4+2]=0,S[2*4+3]=s.getProperty().getDisplayLocation()===eg.FOREGROUND?-1:1,S[3*4+3]=1,Oe(S,S),i.setUniformMatrix("WCVCMatrix",n([S,u],ii,e.tmpMat4))},t.getAllocatedGPUMemoryInBytes=()=>{let r=0;return e.primitives.forEach(a=>{r+=a.getAllocatedGPUMemoryInBytes()}),r}}const r_={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function a_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,r_,n),Be.extend(t,e,n),rs.implementReplaceShaderCoincidentOffset(t,e,n),rs.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=Et,e.tmpMat4=le(new Float64Array(16));for(let r=Et.Start;r{const r=n.getLastSize(),a=(r[0]/700)**.8,s=(r[1]/700)**.8,i=Math.min(a,s),o=n.getAxisTextStyle(),u=n.getTickTextStyle();Object.assign(o,e.axisTextStyle),Object.assign(u,e.tickTextStyle),o.fontSize=Math.max(24*i,12),n.getLastAspectRatio()>1?u.fontSize=Math.max(20*i,10):u.fontSize=Math.max(16*i,10);const c=n.updateTextureAtlas();n.setTopTitle(!1);const f=n.getBoxSizeByReference();if(n.getLastAspectRatio()>1)n.setTickLabelPixelOffset(.3*u.fontSize),c.titleWidth<=c.tickWidth+n.getTickLabelPixelOffset()+.8*u.fontSize?(n.setTopTitle(!0),n.setAxisTitlePixelOffset(.2*u.fontSize),f[0]=2*(c.tickWidth+n.getTickLabelPixelOffset()+.8*u.fontSize)/r[0],n.setBoxPosition([.98-f[0],-.92])):(n.setAxisTitlePixelOffset(.2*u.fontSize),f[0]=2*(c.titleHeight+n.getAxisTitlePixelOffset()+c.tickWidth+n.getTickLabelPixelOffset()+.8*u.fontSize)/r[0],n.setBoxPosition([.99-f[0],-.92])),f[1]=Math.max(1.2,Math.min(1.84/s,1.84));else{n.setAxisTitlePixelOffset(1.2*u.fontSize),n.setTickLabelPixelOffset(.1*u.fontSize);const l=2*(.8*u.fontSize+c.titleHeight+n.getAxisTitlePixelOffset())/r[1],g=2*c.tickWidth/r[0];f[0]=Math.min(1.9,Math.max(1.4,1.4*g*(n.getTicks().length+3))),f[1]=l,n.setBoxPosition([-.5*f[0],-.97])}n.recomputeBarSegments(c)}}function rg(t,e){return n=>{const r=n.getLastTickBounds(),a=os().domain([r[0],r[1]]),s=a.ticks(5),i=a.tickFormat(5);n.setTicks(s),n.setTickStrings(s.map(i))}}function o_(t,e){e.classHierarchy.push("vtkScalarBarActorHelper"),t.setRenderable=a=>{e.renderable!==a&&(e.renderable=a,e.barActor.setProperty(a.getProperty()),e.barActor.setParentProp(a),e.barActor.setCoordinateSystemToDisplay(),e.tmActor.setProperty(a.getProperty()),e.tmActor.setParentProp(a),e.tmActor.setCoordinateSystemToDisplay(),e.generateTicks=a.generateTicks,e.axisTextStyle={...a.getAxisTextStyle()},e.tickTextStyle={...a.getTickTextStyle()},t.modified())},t.updateAPISpecificData=(a,s,i)=>{(e.lastSize[0]!==a[0]||e.lastSize[1]!==a[1])&&(e.lastSize[0]=a[0],e.lastSize[1]=a[1],e.lastAspectRatio=a[0]/a[1],e.forceUpdate=!0);const o=e.renderable.getScalarsToColors();if(!(!o||!e.renderable.getVisibility())&&(e.barMapper.setLookupTable(o),e.camera=s,e.renderWindow=i,e.forceUpdate||Math.max(o.getMTime(),t.getMTime(),e.renderable.getMTime())>e.lastRebuildTime.getMTime())){const u=o.getMappingRange();if(e.lastTickBounds=[...u],e.renderable.getGenerateTicks()(t),e.renderable.getAutomated())e.renderable.getAutoLayout()(t);else{e.axisTextStyle={...e.renderable.getAxisTextStyle()},e.tickTextStyle={...e.renderable.getTickTextStyle()},e.barPosition=[...e.renderable.getBarPosition()],e.barSize=[...e.renderable.getBarSize()],e.boxPosition=[...e.renderable.getBoxPosition()],e.boxSize=[...e.renderable.getBoxSize()],e.axisTitlePixelOffset=e.renderable.getAxisTitlePixelOffset(),e.tickLabelPixelOffset=e.renderable.getTickLabelPixelOffset();const c=t.updateTextureAtlas();t.recomputeBarSegments(c)}t.updatePolyDataForLabels(),t.updatePolyDataForBarSegments(),e.lastRebuildTime.modified(),e.forceUpdate=!1}},t.updateTextureAtlas=()=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left";const a={},s=new Map;let i=0,o=1;Ws(e.tmContext,e.axisTextStyle);let u=e.tmContext.measureText(e.renderable.getAxisLabel()),c={height:u.actualBoundingBoxAscent+2,startingHeight:o,width:u.width+2,textStyle:e.axisTextStyle};s.set(e.renderable.getAxisLabel(),c),o+=c.height,i=c.width,a.titleWidth=c.width,a.titleHeight=c.height,a.tickWidth=0,a.tickHeight=0,Ws(e.tmContext,e.tickTextStyle);const f=[...t.getTickStrings(),"NaN","Below","Above"];for(let l=0;l{l.tcoords=[0,(o-l.startingHeight-l.height)/o,l.width/i,(o-l.startingHeight-l.height)/o,l.width/i,(o-l.startingHeight)/o,0,(o-l.startingHeight)/o]}),e.tmCanvas.width=i,e.tmCanvas.height=o,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,i,o),s.forEach((l,g)=>{Ws(e.tmContext,l.textStyle),e.tmContext.fillText(g,1,l.startingHeight+l.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified(),e._tmAtlas=s,a},t.computeBarSize=a=>{e.vertical=e.boxSize[1]>e.boxSize[0];const s=2*a.tickHeight/e.lastSize[1],i=[1,1];if(e.vertical){const o=2*(a.tickWidth+e.tickLabelPixelOffset)/e.lastSize[0];if(e.topTitle){const u=2*(a.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0]-o,e.barSize[1]=e.boxSize[1]-u}else{const u=2*(a.titleHeight+e.axisTitlePixelOffset)/e.lastSize[0];e.barSize[0]=e.boxSize[0]-u-o,e.barSize[1]=e.boxSize[1]}e.barPosition[0]=e.boxPosition[0]+o,e.barPosition[1]=e.boxPosition[1],i[1]=s}else{const o=(2*a.tickWidth-8)/e.lastSize[0],u=2*(a.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0],e.barPosition[0]=e.boxPosition[0],e.barSize[1]=e.boxSize[1]-u,e.barPosition[1]=e.boxPosition[1],i[0]=o}return i},t.recomputeBarSegments=a=>{var g,p,T,h;const s=t.computeBarSize(a);e.barSegments=[];const i=[0,0],o=e.vertical?1:0,u=e.vertical?.01:.02;function c(d,x){e.barSegments.push({corners:[[...i],[i[0]+s[0],i[1]],[i[0]+s[0],i[1]+s[1]],[i[0],i[1]+s[1]]],scalars:x,title:d}),i[o]+=s[o]+u}e.renderable.getDrawNanAnnotation()&&e.renderable.getScalarsToColors().getNanColor()&&c("NaN",[NaN,NaN,NaN,NaN]),e.renderable.getDrawBelowRangeSwatch()&&((p=(g=e.renderable.getScalarsToColors()).getUseBelowRangeColor)!=null&&p.call(g))&&c("Below",[-.1,-.1,-.1,-.1]);const f=(h=(T=e.renderable.getScalarsToColors()).getUseAboveRangeColor)==null?void 0:h.call(T);i[o]+=u;const l=s[o];s[o]=f?1-2*u-s[o]-i[o]:1-u-i[o],c("ticks",e.vertical?[0,0,.995,.995]:[0,.995,.995,0]),e.renderable.getDrawAboveRangeSwatch()&&f&&(s[o]=l,i[o]+=u,c("Above",[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);t.createPolyDataForOneLabel=(a,s,i,o,u,c)=>{const f=e._tmAtlas.get(a);if(!f)return;let l=c.ptIdx,g=c.cellIdx;n[0]=(.5*s[0]+.5)*e.lastSize[0],n[1]=(.5*s[1]+.5)*e.lastSize[1],n[2]=s[2],n[0]+=u[0],n[1]+=u[1];const p=[],T=o==="vertical"?[1,0]:[0,1];o==="vertical"?(p[0]=f.width,p[1]=-f.height,i[0]==="middle"?n[1]-=f.width/2:i[0]==="right"&&(n[1]-=f.width),i[1]==="middle"?n[0]+=f.height/2:i[1]==="top"&&(n[0]+=f.height)):(p[0]=f.width,p[1]=f.height,i[0]==="middle"?n[0]-=f.width/2:i[0]==="right"&&(n[0]-=f.width),i[1]==="middle"?n[1]-=f.height/2:i[1]==="top"&&(n[1]-=f.height)),c.points[l*3]=n[0],c.points[l*3+1]=n[1],c.points[l*3+2]=n[2],c.tcoords[l*2]=f.tcoords[0],c.tcoords[l*2+1]=f.tcoords[1],l++,n[T[0]]+=p[0],c.points[l*3]=n[0],c.points[l*3+1]=n[1],c.points[l*3+2]=n[2],c.tcoords[l*2]=f.tcoords[2],c.tcoords[l*2+1]=f.tcoords[3],l++,n[T[1]]+=p[1],c.points[l*3]=n[0],c.points[l*3+1]=n[1],c.points[l*3+2]=n[2],c.tcoords[l*2]=f.tcoords[4],c.tcoords[l*2+1]=f.tcoords[5],l++,n[T[0]]-=p[0],c.points[l*3]=n[0],c.points[l*3+1]=n[1],c.points[l*3+2]=n[2],c.tcoords[l*2]=f.tcoords[6],c.tcoords[l*2+1]=f.tcoords[7],l++,c.polys[g*4]=3,c.polys[g*4+1]=l-4,c.polys[g*4+2]=l-3,c.polys[g*4+3]=l-2,g++,c.polys[g*4]=3,c.polys[g*4+1]=l-4,c.polys[g*4+2]=l-2,c.polys[g*4+3]=l-1,c.ptIdx+=4,c.cellIdx+=2};const r=new Float64Array(3);t.updatePolyDataForLabels=()=>{const a=t.getTickStrings().length+e.barSegments.length,s=a*4,i=a*2,o=new Float64Array(s*3),u=new Uint16Array(i*4),c=new Float32Array(s*2),f={ptIdx:0,cellIdx:0,polys:u,points:o,tcoords:c},l=e.vertical?0:1,g=e.vertical?1:0;r[2]=-.99;const p=e.vertical?["right","middle"]:["middle","bottom"];let T=[0,1];const h=[0,0];e.vertical?(h[0]=-e.tickLabelPixelOffset,e.topTitle?(r[0]=e.boxPosition[0]+.5*e.boxSize[0],r[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)):(r[0]=e.barPosition[0]+e.barSize[0],r[1]=e.barPosition[1]+.5*e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),r,["middle","top"],"vertical",[e.axisTitlePixelOffset,0],f)),T=[-1,0]):(h[1]=e.tickLabelPixelOffset,r[0]=e.barPosition[0]+.5*e.barSize[0],r[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)),r[l]=e.barPosition[l]+(.5*T[l]+.5)*e.barSize[l],r[g]=e.barPosition[g]+e.barSize[g]*.5;let d=null;for(let S=0;S{var h,d;const a=e.renderable.getScalarsToColors();let s=0;e.renderable.getDrawNanAnnotation()&&a.getNanColor()&&(s+=1),e.renderable.getDrawBelowRangeSwatch()&&((h=a.getUseBelowRangeColor)!=null&&h.call(a))&&(s+=1),e.renderable.getDrawAboveRangeSwatch()&&((d=a.getUseAboveRangeColor)!=null&&d.call(a))&&(s+=1);const i=4*(1+s),o=i;let u=1;a.getVectorMode()===i_.COMPONENT&&(u=a.getVectorComponent()+1);const c=new Float64Array(i*3),f=new Uint16Array(o*5),l=new Float32Array(i*u);let g=0,p=0;for(let x=0;x2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),E.obj(t,e),E.setGet(t,e,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),E.get(t,e,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),E.getArray(t,e,["boxPosition","boxSize"]),E.setArray(t,e,["boxPosition","boxSize"],2),e.forceUpdate=!1,e.lastRebuildTime={},E.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.barMapper=Cn.newInstance(),e.barMapper.setInterpolateScalarsBeforeMapping(!0),e.barMapper.setUseLookupTableScalarRange(!0),e.polyData=nn.newInstance(),e.barMapper.setInputData(e.polyData),e.barActor=en.newInstance(),e.barActor.setMapper(e.barMapper),e.tmPolyData=nn.newInstance(),e.tmMapper=Cn.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmTexture=ps.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),e.tmActor=en.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),e.tmActor.addTexture(e.tmTexture),e.barPosition=[0,0],e.barSize=[0,0],e.boxPosition=[.88,-.92],e.boxSize=[.1,1.1],e.lastTickBounds=[],o_(t,e)},"vtkScalarBarActorHelper");function u_(t,e){e.classHierarchy.push("vtkScalarBarActor"),t.setTickTextStyle=n=>{e.tickTextStyle={...e.tickTextStyle,...n},t.modified()},t.setAxisTextStyle=n=>{e.axisTextStyle={...e.axisTextStyle,...n},t.modified()},t.resetAutoLayoutToDefault=()=>{t.setAutoLayout(ng(t,e))},t.resetGenerateTicksToDefault=()=>{t.setGenerateTicks(rg())}}function f_(t){return{automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,...t}}function ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,f_(n)),e.autoLayout||(e.autoLayout=ng(t,e)),e.generateTicks||(e.generateTicks=rg()),en.extend(t,e,n),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),E.setGet(t,e,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),E.get(t,e,["axisTextStyle","tickTextStyle"]),E.getArray(t,e,["barPosition","barSize","boxPosition","boxSize"]),E.setArray(t,e,["barPosition","barSize","boxPosition","boxSize"],2),u_(t,e)}const l_=E.newInstance(ag,"vtkScalarBarActor");var uo={newInstance:l_,extend:ag,newScalarBarActorHelper:c_};function g_(t,e){e.classHierarchy.push("vtkOpenGLScalarBarActor"),t.buildPass=n=>{n&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(n,r)=>{if(n){const a=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,s=e._openGLRenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([s.usize,s.vsize],a,e._openGLRenderWindow.getRenderable())}}}const p_={};function h_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,p_,n),Be.extend(t,e,n),e.scalarBarActorHelper=uo.newScalarBarActorHelper(),g_(t,e)}const d_=Ee(h_,"vtkOpenGLScalarBarActor");Ft("vtkScalarBarActor",d_);const{vtkErrorMacro:mc}=Pt;function v_(t,e){e.classHierarchy.push("vtkOpenGLSkybox"),t.buildPass=n=>{if(n){e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow),e.openGLTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const r=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(r.getActiveCamera())}},t.queryPass=(n,r)=>{if(n){if(!e.renderable||!e.renderable.getVisibility())return;r.incrementOpaqueActorCount()}},t.opaquePass=(n,r)=>{if(n&&!e._openGLRenderer.getSelector()){t.updateBufferObjects(),e.context.depthMask(!0),e._openGLRenderWindow.getShaderCache().readyShaderProgram(e.tris.getProgram()),e.openGLTexture.render(e._openGLRenderWindow);const a=e.openGLTexture.getTextureUnit();e.tris.getProgram().setUniformi("sbtexture",a);const s=e._openGLRenderer.getRenderable(),i=e.openGLCamera.getKeyMatrices(s),o=new Float64Array(16);if(ut(o,i.wcpc),e.tris.getProgram().setUniformMatrix("IMCPCMatrix",o),e.lastFormat==="box"){const u=s.getActiveCamera().getPosition();e.tris.getProgram().setUniform3f("camPos",u[0],u[1],u[2])}e.tris.getVAO().bind(),e.context.drawArrays(e.context.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.openGLTexture.deactivate()}},t.updateBufferObjects=()=>{if(!e.tris.getCABO().getElementCount()){const r=new Float32Array(12);for(let o=0;o<4;o++)r[o*3]=o%2*2-1,r[o*3+1]=o>1?1:-1,r[o*3+2]=1;const a=Se.newInstance({numberOfComponents:3,values:r});a.setName("points");const s=new Uint16Array(8);s[0]=3,s[1]=0,s[2]=1,s[3]=3,s[4]=3,s[5]=0,s[6]=3,s[7]=2;const i=Se.newInstance({numberOfComponents:1,values:s});e.tris.getCABO().createVBO(i,"polys",rt.SURFACE,{points:a,cellOffset:0})}e.renderable.getFormat()!==e.lastFormat&&(e.lastFormat=e.renderable.getFormat(),e.lastFormat==="box"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec attribute vec3 vertexMC; uniform mat4 IMCPCMatrix; varying vec3 TexCoords; void main () { gl_Position = vec4(vertexMC.xyz, 1.0); vec4 wpos = IMCPCMatrix * gl_Position; TexCoords = wpos.xyz/wpos.w; }`,`//VTK::System::Dec //VTK::Output::Dec varying vec3 TexCoords; uniform samplerCube sbtexture; uniform vec3 camPos; void main () { // skybox looks from inside out // which means we have to adjust // our tcoords. Otherwise text would // be flipped vec3 tc = normalize(TexCoords - camPos); if (abs(tc.z) < max(abs(tc.x),abs(tc.y))) { tc = vec3(1.0, 1.0, -1.0) * tc; } else { tc = vec3(-1.0, 1.0, 1.0) * tc; } gl_FragData[0] = textureCube(sbtexture, tc); }`,"")),e.lastFormat==="background"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec attribute vec3 vertexMC; uniform mat4 IMCPCMatrix; varying vec2 TexCoords; void main () { gl_Position = vec4(vertexMC.xyz, 1.0); vec4 wpos = IMCPCMatrix * gl_Position; TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5; }`,`//VTK::System::Dec //VTK::Output::Dec varying vec2 TexCoords; uniform sampler2D sbtexture; void main () { gl_FragData[0] = texture2D(sbtexture, TexCoords); }`,"")),e.tris.getShaderSourceTime().modified(),e.tris.getVAO().bind(),e.tris.getVAO().addAttributeArray(e.tris.getProgram(),e.tris.getCABO(),"vertexMC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||mc("Error setting vertexMC in shader VAO."));const n=e.renderable.getTextures();n.length||mc("vtkSkybox requires a texture map"),e.openGLTexture.getRenderable()!==n[0]&&(e.openGLTexture.releaseGraphicsResources(e._openGLRenderWindow),e.openGLTexture.setRenderable(n[0]))}}const y_={context:null};function T_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,y_,n),Be.extend(t,e,n),e.openGLTexture=Wn.newInstance(),e.tris=wr.newInstance(),e.keyMatrixTime={},Pe(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:Kn(new Float64Array(9)),mcwc:le(new Float64Array(16))},ze(t,e,["context"]),st(t,e,["activeTextures"]),v_(t,e)}const x_=Ee(T_);Ft("vtkSkybox",x_);const{vtkDebugMacro:S_}=Pt;function C_(t,e){e.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),t.opaquePass=(n,r)=>{e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent();const a=e._openGLRenderer.getAspectRatio(),s=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,i=e._openGLRenderer.getTiledSizeAndOrigin();let o=null;if(e.renderable.getUseZValues()){const u=r.getZBufferTexture(),c=Math.floor(u.getWidth()),f=Math.floor(u.getHeight()),l=e._openGLRenderWindow.getContext();u.bind();const g=r.getFramebuffer();g?g.saveCurrentBindingsAndBuffers():S_("No framebuffer to save/restore");const p=l.createFramebuffer();l.bindFramebuffer(l.FRAMEBUFFER,p),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,u.getHandle(),0),l.checkFramebufferStatus(l.FRAMEBUFFER)===l.FRAMEBUFFER_COMPLETE&&(o=new Uint8Array(c*f*4),l.viewport(0,0,c,f),l.readPixels(0,0,c,f,l.RGBA,l.UNSIGNED_BYTE,o)),g&&g.restorePreviousBindingsAndBuffers(),l.deleteFramebuffer(p)}e.renderable.invokeCallback(e.renderable.getInputData(),s,a,i,o)},t.queryPass=(n,r)=>{n&&e.renderable.getUseZValues()&&r.requestDepth()}}const w_={};function E_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,w_,n),Be.extend(t,e,n),C_(t,e)}const __=Ee(E_,"vtkOpenGLPixelSpaceCallbackMapper");Ft("vtkPixelSpaceCallbackMapper",__);const sg=Object.create(null);function rn(t,e){sg[t]=e}function R_(t,e){e.classHierarchy.push("vtkWebGPUViewNodeFactory")}const O_={};function ig(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,O_,n),e.overrides=sg,xf.extend(t,e,n),R_(t,e)}const D_=E.newInstance(ig,"vtkWebGPUViewNodeFactory");var M_={newInstance:D_,extend:ig};function V_(t,e){e.classHierarchy.push("vtkWebGPUCamera"),t.getProjectionMatrix=(n,r,a,s)=>{if(le(n),e.renderable.getParallelProjection()){const i=e.renderable.getParallelScale(),o=i*r,u=i,c=(s[0]-1)*o,f=(s[0]+1)*o,l=(s[1]-1)*u,g=(s[1]+1)*u,p=1/(f-c),T=1/(g-l);n[0]=2*p,n[5]=2*T,n[10]=1/(a[1]-a[0]),n[12]=(f+c)*p,n[13]=(g+l)*T,n[14]=a[1]/(a[1]-a[0])}else{const i=Math.tan(Math.PI*e.renderable.getViewAngle()/360);let o,u;e.renderable.getUseHorizontalViewAngle()===!0?(o=a[0]*i,u=a[0]*i/r):(o=a[0]*i*r,u=a[0]*i);const c=(s[0]-1)*o,f=(s[0]+1)*o,l=(s[1]-1)*u,g=(s[1]+1)*u;n[0]=2*a[0]/(f-c),n[5]=2*a[0]/(g-l),n[12]=(c+f)/(f-c),n[13]=(l+g)/(g-l),n[10]=0,n[14]=a[0],n[11]=-1,n[15]=0}},t.convertToOpenGLDepth=n=>{if(e.renderable.getParallelProjection())return 1-n;const r=e.renderable.getClippingRangeByReference();let a=-r[0]/n;return a=(r[0]+r[1])/(r[1]-r[0])+2*r[0]*r[1]/(a*(r[1]-r[0])),.5*a+.5},t.getKeyMatrices=n=>{const r=n.getRenderable(),a=n.getParent();if(Math.max(a.getMTime(),t.getMTime(),r.getMTime(),e.renderable.getMTime(),n.getStabilizedTime())>e.keyMatrixTime.getMTime()){const s=e.renderable.getViewMatrix();qe(e.keyMatrices.normalMatrix,s),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,ut(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Oe(e.keyMatrices.wcvc,s);const i=n.getStabilizedCenterByReference();Ge(e.keyMatrices.scvc,e.keyMatrices.wcvc,i);const o=n.getAspectRatio(),u=e.renderable.getClippingRangeByReference();t.getProjectionMatrix(e.keyMatrices.vcpc,o,u,e.renderable.getWindowCenterByReference()),at(e.keyMatrices.scpc,e.keyMatrices.vcpc,e.keyMatrices.scvc),ut(e.keyMatrices.pcsc,e.keyMatrices.scpc),e.keyMatrixTime.modified()}return e.keyMatrices}}const m_={keyMatrixTime:null,keyMatrices:null};function L_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,m_,n),Be.extend(t,e,n),e.keyMatrixTime={},E.obj(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},E.setGet(t,e,["keyMatrixTime"]),V_(t,e)}const B_=E.newInstance(L_);rn("vtkCamera",B_);function k_(t,e){e.classHierarchy.push("vtkWebGPUBindGroup"),t.setBindables=n=>{if(e.bindables.length===n.length){let r=!0;for(let a=0;a{const r=[];for(let a=0;a{let r=t.getMTime();for(let s=0;sr?i:r}if(r{const r=[],a=n.getBindGroupLayoutCount(e.label);for(let s=0;s2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,F_,n),E.obj(t,e),e.bindables=[],e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","handle","sizeInBytes","usage"]),E.setGet(t,e,["label","device","arrayInformation"]),k_(t,e)}const U_=E.newInstance(og);var cg={newInstance:U_,extend:og};function N_(t,e){e.classHierarchy.push("vtkWebGPUShaderModule"),t.initialize=(n,r)=>{e.device=n,e.handle=e.device.getHandle().createShaderModule({code:r.getCode()})}}const b_={device:null,handle:null};function ug(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,b_,n),E.obj(t,e),E.get(t,e,["lastCameraMTime"]),E.setGet(t,e,["device","handle"]),N_(t,e)}const G_=E.newInstance(ug,"vtkWebGPUShaderModule");var $_={newInstance:G_,extend:ug};function W_(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const a=Array.isArray(n)?n.join(` `):n;let s=!1;t.search(e)!==-1&&(s=!0);let i="";r&&(i="g");const o=new RegExp(e,i),u=t.replace(o,a);return{replace:s,result:u}}function z_(t,e){e.classHierarchy.push("vtkWebGPUShaderCache"),t.getShaderModule=n=>{const r=n.getType(),a=n.getHash(),s=e._shaderModules.keys();for(let o=0;o2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,A_,n),e._shaderModules=new Map,E.obj(t,e),E.setGet(t,e,["device","window"]),z_(t,e)}const H_=E.newInstance(fg,"vtkWebGPUShaderCache");var ie={newInstance:H_,extend:fg,substitute:W_};function j_(t,e){e.classHierarchy.push("vtkWebGPUPipeline"),t.getShaderDescriptions=()=>e.shaderDescriptions,t.initialize=(n,r)=>{e.pipelineDescription=e.renderEncoder.getPipelineSettings(),e.pipelineDescription.primitive.topology=e.topology,e.pipelineDescription.vertex=e.vertexState,e.pipelineDescription.label=r;const a=[];for(let s=0;s{for(let r=0;r{n&&e.layouts.push({layout:n.getBindGroupLayout(e.device),label:n.getLabel()})},t.getBindGroupLayout=n=>e.layouts[n].layout,t.getBindGroupLayoutCount=n=>{for(let r=0;r{r.bindBuffers(n)}}const K_={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function lg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,K_,n),Pe(t,e),e.layouts=[],e.shaderDescriptions=[],st(t,e,["handle","pipelineDescription"]),ze(t,e,["device","renderEncoder","topology","vertexState"]),j_(t,e)}const P_=Ee(lg,"vtkWebGPUPipeline");var X_={newInstance:P_,extend:lg};function I_(t,e){e.classHierarchy.push("vtkWebGPUShaderDescription"),t.hasOutput=n=>e.outputNames.includes(n),t.addOutput=function(n,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;e.outputTypes.push(n),e.outputNames.push(r),e.outputInterpolations.push(a)},t.addBuiltinOutput=(n,r)=>{e.builtinOutputTypes.push(n),e.builtinOutputNames.push(r)},t.addBuiltinInput=(n,r)=>{e.builtinInputTypes.push(n),e.builtinInputNames.push(r)},t.replaceShaderCode=(n,r)=>{const a=[];let s=[];if(r&&a.push(r.getShaderCode()),n||e.builtinInputNames.length){const i=[];if(i.push(`struct ${e.type}Input {`),n){const o=n.getOutputNamesByReference(),u=n.getOutputTypesByReference(),c=n.getOutputInterpolationsByReference();for(let f=0;f1&&(i.push("};"),s=i,a[a.length-1]+=",",a.push(`input: ${e.type}Input`))}if(a.length&&(e.code=ie.substitute(e.code,"//VTK::IOStructs::Input",a).result),e.outputNames.length+e.builtinOutputNames.length){const i=[`struct ${e.type}Output {`];for(let o=0;o ${e.type}Output`]).result}e.code=ie.substitute(e.code,"//VTK::IOStructs::Dec",s).result}}const Y_={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function gg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Y_,n),e.outputNames=[],e.outputTypes=[],e.outputInterpolations=[],e.builtinOutputNames=[],e.builtinOutputTypes=[],e.builtinInputNames=[],e.builtinInputTypes=[],E.obj(t,e),E.setGet(t,e,["type","hash","code"]),E.getArray(t,e,["outputTypes","outputNames","outputInterpolations"]),I_(t,e)}const q_=E.newInstance(gg,"vtkWebGPUShaderDescription");var Lc={newInstance:q_,extend:gg};const Bc={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};function Q_(t){return!t||t.length<6?0:t in Bc?Bc[t]:(ce(`unknown format ${t}`),null)}function Z_(t){if(!t||t.length<5)return 0;let e=1;t[t.length-2]==="x"&&(e=Number(t[t.length-1]));const n=e===1?t.length-1:t.length-3,r=Number(t[n]);if(Number.isNaN(r))return ce(`unknown format ${t}`),0;const a=5-r/2;return e*a}function J_(t){if(!t||t.length<5)return 0;let e=1;return t[t.length-2]==="x"&&(e=Number(t[t.length-1])),e}function eR(t){if(!t||t.length<5)return 0;let e;if(t[0]==="f")e="Float";else if(t[0]==="s")e="Int";else if(t[0]==="u")e="Uint";else{ce(`unknown format ${t}`);return}const n=t.split("x")[0],r=Number(n[n.length-1]);if(Number.isNaN(r)){ce(`unknown format ${t}`);return}return e+=8*(5-r/2),e+="Array",e}function tR(t){let e;if(t[0]==="f"||t[1]==="n")e="f32";else if(t[0]==="s"&&t[1]==="i")e="i32";else if(t[0]==="u"&&t[1]==="i")e="u32";else{ce(`unknown format ${t}`);return}let n=1;return t[t.length-2]==="x"&&(n=Number(t[t.length-1])),n===4?`vec4<${e}>`:n===3?`vec3<${e}>`:n===2?`vec2<${e}>`:e}function nR(t){if(!t)return 0;let e=1;return t.substring(0,3)==="vec"?e=Number(t[3]):t.substring(0,3)==="mat"&&(e=t[3]*t[5]),e*4}function rR(t){if(t){if(t.includes("f32"))return"Float32Array";if(t.includes("i32"))return"Int32Array";if(t.includes("u32"))return"Uint32Array";ce(`unknown format ${t}`)}}var Ke={getDetailsFromTextureFormat:Q_,getByteStrideFromBufferFormat:Z_,getNumberOfComponentsFromBufferFormat:J_,getNativeTypeFromBufferFormat:eR,getShaderTypeFromBufferFormat:tR,getByteStrideFromShaderFormat:nR,getNativeTypeFromShaderFormat:rR};function aR(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n2&&arguments[2]!==void 0?arguments[2]:"vertex",s=r;Array.isArray(s)||(s=[s]);for(let i=0;ii.names[0]o.names[0]?1:0)},t.removeBufferIfPresent=n=>{for(let r=0;r{for(let r=0;r{for(let r=0;r{for(let r=0;r{let n="",r=0;for(let a=0;a0&&(n+=`, `),n=`${n} @location(${r}) ${e.inputs[a].names[s]} : ${o}`,r++}return n},t.getVertexInputInformation=()=>{const n={};if(e.inputs.length){const r=[];let a=0;for(let s=0;s{for(let r=0;r{},t.releaseGraphicsResources=()=>{e.created&&(e.inputs=[],e.bindingDescriptions=[],e.attributeDescriptions=[])}}const iR={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function pg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iR,n),Pe(t,e),e.bindingDescriptions=[],e.attributeDescriptions=[],e.inputs=[],ze(t,e,["created","device","handle","indexBuffer"]),sR(t,e)}const oR=Ee(pg,"vtkWebGPUVertexInput");var cR={newInstance:oR,extend:pg};const uR=` //VTK::Renderer::Dec //VTK::Color::Dec //VTK::Normal::Dec //VTK::TCoord::Dec //VTK::Select::Dec //VTK::Mapper::Dec //VTK::IOStructs::Dec @vertex fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output : vertexOutput; // var vertex: vec4 = vertexBC; //VTK::Color::Impl //VTK::Normal::Impl //VTK::TCoord::Impl //VTK::Select::Impl //VTK::Position::Impl return output; } `,fR=` //VTK::Renderer::Dec //VTK::Color::Dec //VTK::Normal::Dec //VTK::TCoord::Dec //VTK::Select::Dec //VTK::RenderEncoder::Dec //VTK::Mapper::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output : fragmentOutput; //VTK::Color::Impl //VTK::Normal::Impl //VTK::Light::Impl //VTK::TCoord::Impl //VTK::Select::Impl // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0); //VTK::RenderEncoder::Impl return output; } `;function lR(t,e){e.classHierarchy.push("vtkWebGPUSimpleMapper"),t.generateShaderDescriptions=(n,r,a)=>{const s=Lc.newInstance({type:"vertex",hash:n,code:e.vertexShaderTemplate}),i=Lc.newInstance({type:"fragment",hash:n,code:e.fragmentShaderTemplate}),o=r.getShaderDescriptions();o.push(s),o.push(i);const u=e.vertexShaderTemplate+e.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),l=u.match(c).filter((g,p,T)=>T.indexOf(g)===p).map(g=>`replaceShader${g.substring(7,g.length-2)}`);for(let g=0;g{const s=r.getShaderDescription("vertex");s.replaceShaderCode(null,a),r.getShaderDescription("fragment").replaceShaderCode(s)},t.replaceShaderRenderEncoder=(n,r,a)=>{e.renderEncoder.replaceShaderCode(r)},e.shaderReplacements.set("replaceShaderRenderEncoder",t.replaceShaderRenderEncoder),t.replaceShaderRenderer=(n,r,a)=>{if(!e.WebGPURenderer)return;const s=e.WebGPURenderer.getBindGroup().getShaderCode(r),i=r.getShaderDescription("vertex");let o=i.getCode();o=ie.substitute(o,"//VTK::Renderer::Dec",[s]).result,i.setCode(o);const u=r.getShaderDescription("fragment");o=u.getCode(),o=ie.substitute(o,"//VTK::Renderer::Dec",[s]).result,u.setCode(o)},e.shaderReplacements.set("replaceShaderRenderer",t.replaceShaderRenderer),t.replaceShaderMapper=(n,r,a)=>{const s=e.bindGroup.getShaderCode(r),i=r.getShaderDescription("vertex");let o=i.getCode();o=ie.substitute(o,"//VTK::Mapper::Dec",[s]).result,i.setCode(o);const u=r.getShaderDescription("fragment");u.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),o=u.getCode(),o=ie.substitute(o,"//VTK::Mapper::Dec",[s]).result,u.setCode(o)},e.shaderReplacements.set("replaceShaderMapper",t.replaceShaderMapper),t.replaceShaderPosition=(n,r,a)=>{const s=r.getShaderDescription("vertex");s.addBuiltinOutput("vec4","@builtin(position) Position");let i=s.getCode();i=ie.substitute(i,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,s.setCode(i)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderTCoord=(n,r,a)=>{r.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.addTextureView=n=>{e.textureViews.includes(n)||e.textureViews.push(n)},t.prepareToDraw=n=>{e.renderEncoder=n,t.updateInput(),t.updateBuffers(),t.updateBindings(),t.updatePipeline()},t.updateInput=()=>{},t.updateBuffers=()=>{},t.updateBindings=()=>{e.bindGroup.setBindables(t.getBindables())},t.computePipelineHash=()=>{},t.registerDrawCallback=n=>{n.registerDrawCallback(e.pipeline,t.draw)},t.prepareAndDraw=n=>{t.prepareToDraw(n),n.setPipeline(e.pipeline),t.draw(n)},t.draw=n=>{const r=n.getBoundPipeline();n.activateBindGroup(e.bindGroup),e.WebGPURenderer&&e.WebGPURenderer.bindUBO(n),r.bindVertexInput(n,e.vertexInput);const a=e.vertexInput.getIndexBuffer();a?n.drawIndexed(a.getIndexCount(),e.numberOfInstances,0,0,0):n.draw(e.numberOfVertices,e.numberOfInstances,0,0)},t.getBindables=()=>{const n=[...e.additionalBindables];e.UBO&&n.push(e.UBO),e.SSBO&&n.push(e.SSBO);for(let r=0;r{t.computePipelineHash(),e.pipeline=e.device.getPipeline(e.pipelineHash),e.pipeline||(e.pipeline=X_.newInstance(),e.pipeline.setDevice(e.device),e.WebGPURenderer&&e.pipeline.addBindGroupLayout(e.WebGPURenderer.getBindGroup()),e.pipeline.addBindGroupLayout(e.bindGroup),t.generateShaderDescriptions(e.pipelineHash,e.pipeline,e.vertexInput),e.pipeline.setTopology(e.topology),e.pipeline.setRenderEncoder(e.renderEncoder),e.pipeline.setVertexState(e.vertexInput.getVertexInputInformation()),e.device.createPipeline(e.pipelineHash,e.pipeline))}}const gR={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function hg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gR,n),Be.extend(t,e,n),e.textureViews=[],e.vertexInput=cR.newInstance(),e.bindGroup=cg.newInstance({label:"mapperBG"}),e.additionalBindables=[],e.fragmentShaderTemplate=e.fragmentShaderTemplate||fR,e.vertexShaderTemplate=e.vertexShaderTemplate||uR,e.shaderReplacements=new Map,E.get(t,e,["pipeline","vertexInput"]),E.setGet(t,e,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),lR(t,e)}const pR=E.newInstance(hg,"vtkWebGPUSimpleMapper");var fo={newInstance:pR,extend:hg};function hR(t,e){e.classHierarchy.push("vtkWebGPUFullScreenQuad"),t.replaceShaderPosition=(n,r,a)=>{const s=r.getShaderDescription("vertex");s.addBuiltinOutput("vec4","@builtin(position) Position"),s.addOutput("vec4","vertexVC");let i=s.getCode();i=ie.substitute(i,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);","output.vertexVC = vec4(vertexBC, 1);"]).result,s.setCode(i)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.updateBuffers=()=>{const n=e.device.getBufferManager().getFullScreenQuadBuffer();e.vertexInput.addBuffer(n,["vertexBC"]),e.numberOfVertices=6}}const dR={};function dg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dR,n),fo.extend(t,e,n),hR(t,e)}const vR=E.newInstance(dg,"vtkWebGPUFullScreenQuad");var hr={newInstance:vR,extend:dg};const yR={Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},TR={Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6};var Zr={BufferUsage:yR,PrimitiveTypes:TR};const zs=["getMappedRange","mapAsync","unmap"];function xR(t,e,n,r){const a=r.byteLength,s=t.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=s.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(r)),s.unmap();const o=t.createCommandEncoder();o.copyBufferToBuffer(s,0,e,n,a);const u=o.finish();t.queue.submit([u]),s.destroy()}function SR(t,e){e.classHierarchy.push("vtkWebGPUBuffer"),t.create=(n,r)=>{e.handle=e.device.getHandle().createBuffer({size:n,usage:r,label:e.label}),e.sizeInBytes=n,e.usage=r},t.write=n=>{xR(e.device.getHandle(),e.handle,0,n.buffer)},t.createAndWrite=(n,r)=>{e.handle=e.device.getHandle().createBuffer({size:n.byteLength,usage:r,mappedAtCreation:!0,label:e.label}),e.sizeInBytes=n.byteLength,e.usage=r,new Uint8Array(e.handle.getMappedRange()).set(new Uint8Array(n.buffer)),e.handle.unmap()};for(let n=0;n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CR,n),E.obj(t,e),E.get(t,e,["handle","sizeInBytes","usage"]),E.setGet(t,e,["strideInBytes","device","arrayInformation","label","sourceTime"]),SR(t,e)}const wR=E.newInstance(vg);var dr={newInstance:wR,extend:vg,...Zr};const{Representation:kc}=Cr,{PrimitiveTypes:vn}=Zr;class ER{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let n=0;n2)for(let s=0;s2){for(let s=0;s{const r=n.cells,a=n.primitiveType,s=n.representation,i=n.cellOffset,o=r.getData(),u=o.length,c=_R(a),f=n.numberOfPoints,l={provokedPointIds:new Uint8Array(f),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ER};let g=null;s===kc.POINTS||a===vn.Points?g=As.anythingToPoints:s===kc.WIREFRAME||a===vn.Lines?g=As[`${c}ToWireframe`]:g=As[`${c}ToSurface`],qt=OR;let p=i||0;for(let T=0;T2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,MR,n),dr.extend(t,e,n),E.setGet(t,e,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),DR(t,e)}const VR=E.newInstance(yg);var mR={newInstance:VR,extend:yg,...Zr};const{BufferUsage:ln}=Zr,{vtkErrorMacro:LR}=Pt,{VtkDataTypes:mn}=Se,BR={};function kR(t){let e;switch(t.getDataType()){case mn.UNSIGNED_CHAR:e="uint8";break;case mn.FLOAT:e="float32";break;case mn.UNSIGNED_INT:e="uint32";break;case mn.INT:e="sint32";break;case mn.DOUBLE:e="float32";break;case mn.UNSIGNED_SHORT:e="uint16";break;case mn.SHORT:e="sin16";break;default:e="float32";break}switch(t.getNumberOfComponents()){case 2:e+="x2";break;case 3:e.includes("32")||LR(`unsupported x3 type for ${e}`),e+="x3";break;case 4:e+="x4";break}return e}function Uc(t,e,n,r,a){const s={},i=t.getFlatSize();if(!i)return s;let o=[0,0,0,0];a.shift&&(a.shift.length?o=a.shift:o.fill(a.shift));let u=[1,1,1,1];a.scale&&(a.scale.length?u=a.scale:u.fill(a.scale));const c=Object.prototype.hasOwnProperty.call(a,"packExtra")?a.packExtra:!1;let f,l=0;const g=n+(c?1:0),p=Tr(r,i*g);let T=t.getFlatIdToPointId();a.cellData&&(T=t.getFlatIdToCellId()),n===1?f=function(d){p[l++]=u[0]*e[d]+o[0]}:n===2?f=function(d){p[l++]=u[0]*e[d]+o[0],p[l++]=u[1]*e[d+1]+o[1]}:n===3&&!c?f=function(d){p[l++]=u[0]*e[d]+o[0],p[l++]=u[1]*e[d+1]+o[1],p[l++]=u[2]*e[d+2]+o[2]}:n===3&&c?f=function(d){p[l++]=u[0]*e[d]+o[0],p[l++]=u[1]*e[d+1]+o[1],p[l++]=u[2]*e[d+2]+o[2],p[l++]=u[3]*1+o[3]}:n===4&&(f=function(d){p[l++]=u[0]*e[d]+o[0],p[l++]=u[1]*e[d+1]+o[1],p[l++]=u[2]*e[d+2]+o[2],p[l++]=u[3]*e[d+3]+o[3]});for(let h=0;he.device.hasCachedObject(r),t.getBuffer=r=>r.hash?e.device.getCachedObject(r.hash,n,r):n(r),t.getBufferForPointArray=(r,a)=>{const s=kR(r),i={hash:`${r.getMTime()}I${a.getMTime()}${s}`,usage:ln.PointArray,format:s,dataArray:r,indexBuffer:a};return t.getBuffer(i)},t.getFullScreenQuadBuffer=()=>{if(e.fullScreenQuadBuffer)return e.fullScreenQuadBuffer;e.fullScreenQuadBuffer=dr.newInstance(),e.fullScreenQuadBuffer.setDevice(e.device);const r=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return e.fullScreenQuadBuffer.createAndWrite(r,GPUBufferUsage.VERTEX),e.fullScreenQuadBuffer.setStrideInBytes(12),e.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),e.fullScreenQuadBuffer}}const bR={device:null,fullScreenQuadBuffer:null};function Tg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bR,n),Pe(t,e),ze(t,e,["device"]),NR(t,e)}const GR=Ee(Tg);var wn={newInstance:GR,extend:Tg,...BR,...Zr};const{BufferUsage:$R}=wn,{vtkErrorMacro:Zn}=E;function WR(t,e){e.classHierarchy.push("vtkWebGPUStorageBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){Zn(`entry named ${n} already exists`);return}e._bufferEntryNames.set(n,e.bufferEntries.length);const a=Ke.getByteStrideFromShaderFormat(r);e.bufferEntries.push({name:n,type:r,sizeInBytes:a,offset:e.sizeInBytes,nativeType:Ke.getNativeTypeFromShaderFormat(r)}),e.sizeInBytes+=a},t.send=n=>{if(!e._buffer){const r={nativeArray:e.Float32Array,usage:$R.Storage,label:e.label};e._buffer=n.getBufferManager().getBuffer(r),e.bindGroupTime.modified(),e._sendTime.modified();return}n.getHandle().queue.writeBuffer(e._buffer.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes*e.numberOfInstances),e._sendTime.modified()},t.createView=n=>{n in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes*e.numberOfInstances)),e[n]=E.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r,a)=>{const s=e._bufferEntryNames.get(n);if(s===void 0){Zn(`entry named ${n} not found in UBO`);return}const i=e.bufferEntries[s];t.createView(i.nativeType);const o=e[i.nativeType];o[(i.offset+r*e.sizeInBytes)/o.BYTES_PER_ELEMENT]=a},t.setArray=(n,r,a)=>{const s=e._bufferEntryNames.get(n);if(s===void 0){Zn(`entry named ${n} not found in UBO`);return}const i=e.bufferEntries[s];t.createView(i.nativeType);const o=e[i.nativeType],u=(i.offset+r*e.sizeInBytes)/o.BYTES_PER_ELEMENT;for(let c=0;c{const a=e._bufferEntryNames.get(n);if(a===void 0){Zn(`entry named ${n} not found in UBO`);return}const s=e.bufferEntries[a];t.createView(s.nativeType);const i=e[s.nativeType],o=r.length/e.numberOfInstances;for(let u=0;u{const a=e._bufferEntryNames.get(n);if(a===void 0){Zn(`entry named ${n} not found in UBO`);return}const s=e.bufferEntries[a];t.createView(s.nativeType);const i=e[s.nativeType],o=r.length/e.numberOfInstances;for(let u=0;u{const a=e._bufferEntryNames.get(n);if(a===void 0){Zn(`entry named ${n} not found in UBO`);return}const s=e.bufferEntries[a];t.createView(s.nativeType);const i=e[s.nativeType],o=9;for(let u=0;ue._sendTime.getMTime(),t.getShaderCode=(n,r)=>{const a=[`struct ${e.label}StructEntry {`];for(let s=0;s, }; @binding(${n}) @group(${r}) var ${e.label}: ${e.label}Struct; `),a.join(` `)},t.getBindGroupEntry=()=>({resource:{buffer:e._buffer.getHandle()}}),t.clearData=()=>{e.numberOfInstances=0,e.sizeInBytes=0,e.bufferEntries=[],e._bufferEntryNames=new Map,e._buffer=null,delete e.arrayBuffer,delete e.Float32Array}}const zR={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function xg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zR,n),E.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e._sendTime={},E.obj(e._sendTime,{mtime:0}),e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},E.get(t,e,["bindGroupTime"]),E.setGet(t,e,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),WR(t,e)}const AR=E.newInstance(xg,"vtkWebGPUStorageBuffer");var xi={newInstance:AR,extend:xg};const{BufferUsage:HR}=wn,{vtkErrorMacro:Hs}=E;function jR(t,e){e.classHierarchy.push("vtkWebGPUUniformBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){Hs(`entry named ${n} already exists`);return}e.sortDirty=!0,e._bufferEntryNames.set(n,e.bufferEntries.length),e.bufferEntries.push({name:n,type:r,sizeInBytes:Ke.getByteStrideFromShaderFormat(r),offset:-1,nativeType:Ke.getNativeTypeFromShaderFormat(r),packed:!1})},t.sortBufferEntries=()=>{if(!e.sortDirty)return;let n=0;const r=[];let a=4;for(let s=0;s4&&(i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes)}for(let s=0;s{if(!e.UBO){const r={nativeArray:e.Float32Array,usage:HR.UniformArray,label:e.label};e.UBO=n.getBufferManager().getBuffer(r),e.bindGroupTime.modified(),e.sendDirty=!1}e.sendDirty&&(n.getHandle().queue.writeBuffer(e.UBO.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes),e.sendDirty=!1),e.sendTime.modified()},t.createView=n=>{n in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes)),e[n]=E.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r)=>{t.sortBufferEntries();const a=e._bufferEntryNames.get(n);if(a===void 0){Hs(`entry named ${n} not found in UBO`);return}const s=e.bufferEntries[a];t.createView(s.nativeType);const i=e[s.nativeType];s.lastValue!==r&&(i[s.offset/i.BYTES_PER_ELEMENT]=r,e.sendDirty=!0),s.lastValue=r},t.setArray=(n,r)=>{t.sortBufferEntries();const a=e._bufferEntryNames.get(n);if(a===void 0){Hs(`entry named ${n} not found in UBO`);return}const s=e.bufferEntries[a];t.createView(s.nativeType);const i=e[s.nativeType];let o=!1;for(let u=0;u({resource:{buffer:e.UBO.getHandle()}}),t.getSendTime=()=>e.sendTime.getMTime(),t.getShaderCode=(n,r)=>{t.sortBufferEntries();const a=[`struct ${e.label}Struct {`];for(let s=0;s ${e.label}: ${e.label}Struct;`),a.join(` `)}}const KR={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function Sg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KR,n),E.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"uniform"}},e.sendTime={},E.obj(e.sendTime,{mtime:0}),e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),e.sendDirty=!0,e.sortDirty=!0,E.get(t,e,["binding","bindGroupTime"]),E.setGet(t,e,["bindGroupLayoutEntry","device","label","sizeInBytes"]),jR(t,e)}const PR=E.newInstance(Sg,"vtkWebGPUUniformBuffer");var zn={newInstance:PR,extend:Sg};const{vtkDebugMacro:XR}=Pt,Nc=` //VTK::Renderer::Dec //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var computedColor: vec4 = mapperUBO.BackgroundColor; //VTK::RenderEncoder::Impl return output; } `,IR=` fn vecToRectCoord(dir: vec3) -> vec2 { var tau: f32 = 6.28318530718; var pi: f32 = 3.14159265359; var out: vec2 = vec2(0.0); out.x = atan2(dir.z, dir.x) / tau; out.x += 0.5; var phix: f32 = length(vec2(dir.x, dir.z)); out.y = atan2(dir.y, phix) / pi + 0.5; return out; } //VTK::Renderer::Dec //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var tcoord: vec4 = vec4(input.vertexVC.xy, -1, 1); var V: vec4 = normalize(mapperUBO.FSQMatrix * tcoord); // vec2((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2); // textureSampleLevel gets rid of some ugly artifacts var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0.0); var computedColor: vec4 = vec4(background.rgb, 1); //VTK::RenderEncoder::Impl return output; } `,xa=new Float64Array(16),bc=new Float64Array(16);function YR(t){return t.getPositional()?t.getConeAngle()>=90?0:2:1}function qR(t,e){e.classHierarchy.push("vtkWebGPURenderer"),t.buildPass=n=>{if(n){if(!e.renderable)return;e.camera=e.renderable.getActiveCamera(),t.updateLights(),t.prepareNodes(),t.addMissingNode(e.camera),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes(),e.webgpuCamera=t.getViewNodeFor(e.camera),t.updateStabilizedMatrix()}},t.updateStabilizedMatrix=()=>{const n=e.camera.getClippingRange(),r=e.camera.getPositionByReference(),a=e.camera.getDirectionOfProjectionByReference(),s=[],i=[];pn(i,a,.5*(n[0]+n[1])),Vr(s,r,i),oi(i,s,e.stabilizedCenter),df(i)/(n[1]-n[0])>e.recenterThreshold&&(e.stabilizedCenter=s,e.stabilizedTime.modified())},t.updateLights=()=>{let n=0;const r=e.renderable.getLightsByReference();for(let a=0;a0&&n++;return n||(XR("No lights are on, creating one."),e.renderable.createLight()),n},t.updateUBO=()=>{var r;const n=e.UBO.getSendTime();if(e._parent.getMTime()>n||t.getMTime()>n||e.camera.getMTime()>n||e.renderable.getMTime()>n){const a=e.webgpuCamera.getKeyMatrices(t);e.UBO.setArray("WCVCMatrix",a.wcvc),e.UBO.setArray("SCPCMatrix",a.scpc),e.UBO.setArray("PCSCMatrix",a.pcsc),e.UBO.setArray("SCVCMatrix",a.scvc),e.UBO.setArray("VCPCMatrix",a.vcpc),e.UBO.setArray("WCVCNormals",a.normalMatrix),e.UBO.setValue("LightCount",e.renderable.getLights().length),e.UBO.setValue("MaxEnvironmentMipLevel",(r=e.renderable.getEnvironmentTexture())==null?void 0:r.getMipLevel()),e.UBO.setValue("BackgroundDiffuseStrength",e.renderable.getEnvironmentTextureDiffuseStrength()),e.UBO.setValue("BackgroundSpecularStrength",e.renderable.getEnvironmentTextureSpecularStrength());const s=t.getYInvertedTiledSizeAndOrigin();e.UBO.setArray("viewportSize",[s.usize,s.vsize]),e.UBO.setValue("cameraParallel",e.camera.getParallelProjection());const i=e._parent.getDevice();e.UBO.sendIfNeeded(i)}},t.updateSSBO=()=>{const n=e.renderable.getLights(),r=e.webgpuCamera.getKeyMatrices(t);let a=`${e.renderable.getMTime()}`;for(let s=0;s"),e.SSBO.addEntry("LightDir","vec4"),e.SSBO.addEntry("LightColor","vec4"),e.SSBO.addEntry("LightData","vec4"),e.SSBO.setAllInstancesFromArray("LightPos",s),e.SSBO.setAllInstancesFromArray("LightDir",i),e.SSBO.setAllInstancesFromArray("LightColor",o),e.SSBO.setAllInstancesFromArray("LightData",u);const c=e._parent.getDevice();e.SSBO.send(c)}e.lightTimeString=a},t.scissorAndViewport=n=>{const r=t.getYInvertedTiledSizeAndOrigin();n.getHandle().setViewport(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize,0,1),n.getHandle().setScissorRect(r.lowerLeftU,r.lowerLeftV,r.usize,r.vsize)},t.bindUBO=n=>{n.activateBindGroup(e.bindGroup)},t.opaquePass=n=>{n?(e.renderEncoder.begin(e._parent.getCommandEncoder()),t.updateUBO(),t.updateSSBO()):(t.scissorAndViewport(e.renderEncoder),t.clear(),e.renderEncoder.end())},t.clear=()=>{var s;if(e.renderable.getTransparent()||e.suppressClear)return;const n=e._parent.getDevice();if(!e.clearFSQ){e.clearFSQ=hr.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Nc);const i=zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4"),i.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(i),e.backgroundTex=e.renderable.getEnvironmentTexture()}if(e.clearFSQ.getPipelineHash()!=="clearfsqwithtexture"&&e.renderable.getUseEnvironmentTextureAsBackground()&&((s=e.backgroundTex)!=null&&s.getImageLoaded())){e.clearFSQ.setFragmentShaderTemplate(IR);const i=zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4"),i.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(i);const o=n.getTextureManager().getTextureForVTKTexture(e.backgroundTex);if(o.getReady()){const u=o.createView("EnvironmentTexture");e.clearFSQ.setTextureViews([u]),e.backgroundTexLoaded=!0;const c=e.backgroundTex.getInterpolate()?"linear":"nearest";u.addSampler(n,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:c,magFilter:c,mipmapFilter:"linear"})}e.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if(e.clearFSQ.getPipelineHash()==="clearfsqwithtexture"&&!e.renderable.getUseEnvironmentTextureAsBackground()){e.clearFSQ=hr.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Nc);const i=zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4"),i.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(i)}const r=e.webgpuCamera.getKeyMatrices(t),a=e.renderable.getBackgroundByReference();e.clearFSQ.getUBO().setArray("BackgroundColor",a),Oe(bc,r.normalMatrix),si(xa,r.scvc,r.pcsc),si(xa,bc,xa),e.clearFSQ.getUBO().setArray("FSQMatrix",xa),e.clearFSQ.getUBO().sendIfNeeded(n),e.clearFSQ.prepareAndDraw(e.renderEncoder)},t.translucentPass=n=>{n?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.volumeDepthRangePass=n=>{n?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.getAspectRatio=()=>{const n=e._parent.getSizeByReference(),r=e.renderable.getViewportByReference();return n[0]*(r[2]-r[0])/((r[3]-r[1])*n[1])},t.convertToOpenGLDepth=n=>e.webgpuCamera.convertToOpenGLDepth(n),t.getYInvertedTiledSizeAndOrigin=()=>{const n=t.getTiledSizeAndOrigin(),r=e._parent.getSizeByReference();return n.lowerLeftV=r[1]-n.vsize-n.lowerLeftV,n},t.getTiledSizeAndOrigin=()=>{const n=e.renderable.getViewportByReference(),r=[0,0,1,1],a=n[0]-r[0],s=n[1]-r[1],i=e._parent.normalizedDisplayToDisplay(a,s),o=Math.round(i[0]),u=Math.round(i[1]),c=n[2]-r[0],f=n[3]-r[1],l=e._parent.normalizedDisplayToDisplay(c,f);let g=Math.round(l[0])-o,p=Math.round(l[1])-u;return g<0&&(g=0),p<0&&(p=0),{usize:g,vsize:p,lowerLeftU:o,lowerLeftV:u}},t.getPropFromID=n=>{for(let r=0;re.stabilizedTime.getMTime(),t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources()}}const QR={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function ZR(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QR,n),Be.extend(t,e,n),e.UBO=zn.newInstance({label:"rendererUBO"}),e.UBO.addEntry("WCVCMatrix","mat4x4"),e.UBO.addEntry("SCPCMatrix","mat4x4"),e.UBO.addEntry("PCSCMatrix","mat4x4"),e.UBO.addEntry("SCVCMatrix","mat4x4"),e.UBO.addEntry("VCPCMatrix","mat4x4"),e.UBO.addEntry("WCVCNormals","mat4x4"),e.UBO.addEntry("viewportSize","vec2"),e.UBO.addEntry("LightCount","i32"),e.UBO.addEntry("MaxEnvironmentMipLevel","f32"),e.UBO.addEntry("BackgroundDiffuseStrength","f32"),e.UBO.addEntry("BackgroundSpecularStrength","f32"),e.UBO.addEntry("cameraParallel","u32"),e.SSBO=xi.newInstance({label:"rendererLightSSBO"}),e.lightTimeString="",e.bindGroup=cg.newInstance({label:"rendererBG"}),e.bindGroup.setBindables([e.UBO,e.SSBO]),e.tmpMat4=le(new Float64Array(16)),e.stabilizedTime={},Pe(e.stabilizedTime,{mtime:0}),st(t,e,["bindGroup","stabilizedTime"]),xr(t,e,["stabilizedCenter"]),ze(t,e,["renderEncoder","selector","suppressClear","UBO"]),qR(t,e)}const JR=Ee(ZR,"vtkWebGPURenderer");rn("vtkRenderer",JR);const{CoordinateSystem:Gc}=Qr;function eO(t,e){e.classHierarchy.push("vtkWebGPUActor"),t.buildPass=n=>{n&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.children[0]&&e.children[0].traverse(n),t.apply(n,!1))},t.traverseTranslucentPass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.children[0]&&e.children[0].traverse(n),t.apply(n,!1))},t.queryPass=(n,r)=>{if(n){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},t.getBufferShift=n=>(t.getKeyMatrices(n),e.bufferShift),t.getKeyMatrices=n=>{if(Math.max(e.renderable.getMTime(),n.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const r=e.renderable.getMatrix();e.bufferShift[0]=r[3],e.bufferShift[1]=r[7],e.bufferShift[2]=r[11];const a=n.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===Gc.WORLD&&(e.bufferShift[0]-=a[0],e.bufferShift[1]-=a[1],e.bufferShift[2]-=a[2]),Oe(e.keyMatrices.bcwc,r),e.renderable.getIsIdentity()?le(e.keyMatrices.normalMatrix):(qe(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,ut(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Oe(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),Ge(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===Gc.WORLD?Ge(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-a[0],-a[1],-a[2]]):qe(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const tO={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function nO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tO,n),Be.extend(t,e,n),e.keyMatricesTime={},E.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},E.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],eO(t,e)}const rO=E.newInstance(nO);rn("vtkActor",rO);const{CoordinateSystem:$c}=Qr;function aO(t,e){e.classHierarchy.push("vtkWebGPUActor2D"),t.buildPass=n=>{n&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.children[0]&&e.children[0].traverse(n),t.apply(n,!1))},t.traverseTranslucentPass=n=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(n,!0),e.children[0]&&e.children[0].traverse(n),t.apply(n,!1))},t.queryPass=(n,r)=>{if(n){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?r.incrementOpaqueActorCount():r.incrementTranslucentActorCount()}},t.getBufferShift=n=>(t.getKeyMatrices(n),e.bufferShift),t.getKeyMatrices=n=>{if(Math.max(e.renderable.getMTime(),n.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.bufferShift[0]=0,e.bufferShift[1]=0,e.bufferShift[2]=0;const r=n.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===$c.WORLD&&(e.bufferShift[0]-=r[0],e.bufferShift[1]-=r[1],e.bufferShift[2]-=r[2]),le(e.keyMatrices.bcwc),le(e.keyMatrices.normalMatrix),Ge(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===$c.WORLD?Ge(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):qe(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const sO={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function iO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sO,n),Be.extend(t,e,n),e.keyMatricesTime={},E.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},E.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],aO(t,e)}const oO=E.newInstance(iO);rn("vtkActor2D",oO);function cO(t,e){e.classHierarchy.push("vtkWebGPUCubeAxesActor"),t.buildPass=n=>{n&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(n,r)=>{if(n){const a=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,s=e.WebGPURenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([s.usize,s.vsize],a,e.WebGPURenderWindow.getRenderable())}}}const uO={};function fO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uO,n),Be.extend(t,e,n),e.CubeAxesActorHelper=$l.newCubeAxesActorHelper(),cO(t,e)}const lO=Ee(fO,"vtkWebGPUCubeAxesActor");rn("vtkCubeAxesActor",lO);const{DisplayLocation:Si}=tg;function gO(t,e){e.classHierarchy.push("vtkProperty2D"),t.setDisplayLocationToBackground=()=>t.setDisplayLocation(Si.BACKGROUND),t.setDisplayLocationToForeground=()=>t.setDisplayLocation(Si.FOREGROUND),t.setRepresentationToWireframe=()=>t.setRepresentation(rt.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(rt.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(rt.POINTS),t.getRepresentationAsString=()=>E.enumToString(rt,e.representation)}const pO={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:rt.SURFACE,displayLocation:Si.FOREGROUND};function Cg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pO,n),E.obj(t,e),E.setGet(t,e,["opacity","lineWidth","pointSize","displayLocation","representation"]),E.setGetArray(t,e,["color"],3),gO(t,e)}const hO=E.newInstance(Cg,"vtkProperty2D");var dO={newInstance:hO,extend:Cg,...tg};const{BufferUsage:Ae,PrimitiveTypes:Je}=wn,{Representation:Sa}=Cr,{ScalarMode:Ca}=Cn,{CoordinateSystem:vO}=Qr,{DisplayLocation:yO}=dO,TO=` //VTK::Renderer::Dec //VTK::Color::Dec //VTK::Normal::Dec //VTK::TCoord::Dec //VTK::Select::Dec //VTK::Mapper::Dec //VTK::IOStructs::Dec @vertex fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output : vertexOutput; var vertex: vec4 = vertexBC; //VTK::Color::Impl //VTK::Normal::Impl //VTK::TCoord::Impl //VTK::Select::Impl //VTK::Position::Impl return output; } `,xO=` struct PBRData { diffuse: vec3, specular: vec3, } // Dot product with the max already in it fn mdot(a: vec3, b: vec3) -> f32 { return max(0.0, dot(a, b)); } // Dot product with a max in it that does not allow for negative values // Physically based rendering is accurate as long as normals are accurate, // however this is pretty often not the case. In order to prevent negative // values from ruining light calculations and creating zones of zero light, // this remapping is used, which smoothly clamps the dot product between // zero and one while still maintaining a good amount of accuracy. fn cdot(a: vec3, b: vec3) -> f32 { var d: f32 = max(0.0, dot(a, b)); d = pow((d + 1.0) / 2.0, 2.6); return d; } // Lambertian diffuse model fn lambertDiffuse(base: vec3, N: vec3, L: vec3) -> vec3 { var pi: f32 = 3.14159265359; var NdotL: f32 = mdot(N, L); NdotL = pow(NdotL, 1.5); return (base/pi)*NdotL; } // Yasuhiro Fujii improvement on the Oren-Nayar model // https://mimosa-pudica.net/improved-oren-nayar.html // p is surface color, o is roughness fn fujiiOrenNayar(p: vec3, o: f32, N: vec3, L: vec3, V: vec3) -> vec3 { var invpi: f32 = 0.31830988618; // 1/pi var o2 = o*o; var NdotL: f32 = mdot(N, L); NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better var NdotV: f32 = mdot(N, V); var LdotV: f32 = mdot(L, V); var s: f32 = LdotV - NdotL*NdotV; var t: f32 = mix(1.0, max(NdotL, NdotV), step(0.0, s)); // Mix with step is the equivalent of an if statement var A: vec3 = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13)); A = invpi*(1 - A); var B: f32 = 0.45*(o2 / (o2 + 0.09)); B = invpi*B; return p*NdotL*(A + B*(s/t)); } // Fresnel portion of BRDF (IOR only, simplified) fn schlickFresnelIOR(V: vec3, N: vec3, ior: f32, k: f32) -> f32 { var NdotV: f32 = mdot(V, N); var F0: f32 = (pow((ior - 1.0), 2.0) + k*k) / (pow((ior + 1.0), 2.0) + k*k); // This takes into account the roughness, which the other one does not return F0 + (1.0 - F0) * pow((1.0-NdotV), 5.0); } // Fresnel portion of BRDF (Color ior, better) fn schlickFresnelRGB(V: vec3, N: vec3, F0: vec3) -> vec3 { var NdotV: f32 = mdot(V, N); return F0 + (1.0 - F0) * pow((1-NdotV), 5.0); } // Normal portion of BRDF // https://learnopengl.com/PBR/Theory // Trowbridge-Reitz GGX functions: normal, halfway, roughness^2 fn trGGX(N: vec3, H: vec3, a: f32) -> f32 { var pi: f32 = 3.14159265359; var a2: f32 = a*a; var NdotH = mdot(N, H); var NdotH2 = NdotH*NdotH; var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0; return a2 / max((pi*denom*denom), 0.000001); } // A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent fn anisotrophicTrGGX(N: vec3, H: vec3, O: vec3, s: f32, a: f32) -> f32 { var Op: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(O) * s, 0.)).xyz; var ggx1: f32 = trGGX(N + Op*s, H, a); var ggx2: f32 = trGGX(N - Op*s, H, a); return (0.5 * ggx1 + 0.5 * ggx2); } // Geometry portion of BRDF fn schlickGGX(N: vec3, X: vec3, k: f32) -> f32 { var NdotX = cdot(N, X); return NdotX / max(0.000001, (NdotX*(1.0-k) + k)); } fn smithSurfaceRoughness(N: vec3, V: vec3, L: vec3, k: f32) -> f32 { var ggx1: f32 = min(1.0, schlickGGX(N, V, k)); var ggx2: f32 = min(1.0, schlickGGX(N, L, k)); return ggx1*ggx2; } // BRDF Combination fn cookTorrance(D: f32, F: f32, G: f32, N: vec3, V: vec3, L: vec3) -> f32 { var num: f32 = D*F*G; var denom: f32 = 4*cdot(V, N)*cdot(L, N); return num / max(denom, 0.000001); } // Different lighting calculations for different light sources fn calcDirectionalLight(N: vec3, V: vec3, ior: f32, roughness: f32, metallic: f32, direction: vec3, color: vec3, base: vec3) -> PBRData { var L: vec3 = normalize(direction); // Light Vector var H: vec3 = normalize(L + V); // Halfway Vector var alpha = roughness*roughness; var k: f32 = alpha*alpha / 2; var D: f32 = trGGX(N, H, alpha); // Distribution // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Fresnel term is replaced with 1 because it is added later var incoming: vec3 = color; var angle: f32 = mdot(L, N); angle = pow(angle, 1.5); var specular: vec3 = brdf*incoming*angle; // Oren-Nayar gives a clay-like effect when fully rough which some people may not want, so it might be better to give a separate // control property for the diffuse vs specular roughness var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V); // Stores the specular and diffuse separately to allow for finer post processing var out = PBRData(diffuse, specular); return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas) } // TODO: find some way to reduce the number of arguments going in here fn calcPointLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, color: vec3, base: vec3) -> PBRData { var L: vec3 = normalize(position - fragPos); // Light Vector var H: vec3 = normalize(L + V); // Halfway Vector var dist = distance(position, fragPos); var alpha = roughness*roughness; var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8 var D: f32 = trGGX(N, H, alpha); // Distribution // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); var incoming: vec3 = color * (1.0 / (dist*dist)); var angle: f32 = mdot(L, N); angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources var specular: vec3 = brdf*incoming*angle; var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V); // Stores the specular and diffuse separately to allow for finer post processing // Could also be done (propably more properly) with a struct var out = PBRData(diffuse, specular); return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas) } // For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights fn calcSpotLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, direction: vec3, cones: vec2, color: vec3, base: vec3) -> PBRData { var L: vec3 = normalize(position - fragPos); var H: vec3 = normalize(L + V); // Halfway Vector var dist = distance(position, fragPos); var alpha = roughness*roughness; var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8 var D: f32 = trGGX(N, H, alpha); // Distribution // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Cones.x is the inner phi and cones.y is the outer phi var theta: f32 = mdot(normalize(direction), L); var epsilon: f32 = cones.x - cones.y; var intensity: f32 = (theta - cones.y) / epsilon; intensity = clamp(intensity, 0.0, 1.0); intensity /= dist*dist; var incoming: vec3 = color * intensity; var angle: f32 = mdot(L, N); angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources var specular: vec3 = brdf*incoming*angle; var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V); // Stores the specular and diffuse separately to allow for finer post processing // Could also be done (propably more properly) with a struct var out = PBRData(diffuse, specular); return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas) } // Environment mapping stuff // Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point fn vecToRectCoord(dir: vec3) -> vec2 { var tau: f32 = 6.28318530718; var pi: f32 = 3.14159265359; var out: vec2 = vec2(0.0); out.x = atan2(dir.z, dir.x) / tau; out.x += 0.5; var phix: f32 = length(vec2(dir.x, dir.z)); out.y = atan2(dir.y, phix) / pi + 0.5; return out; } //VTK::Renderer::Dec //VTK::Color::Dec //VTK::TCoord::Dec // optional surface normal declaration //VTK::Normal::Dec //VTK::Select::Dec //VTK::RenderEncoder::Dec //VTK::Mapper::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output : fragmentOutput; // Temporary ambient, diffuse, and opacity var ambientColor: vec4 = mapperUBO.AmbientColor; var diffuseColor: vec4 = mapperUBO.DiffuseColor; var opacity: f32 = mapperUBO.Opacity; // This should be declared somewhere else var _diffuseMap: vec4 = vec4(1.0); var _roughnessMap: vec4 = vec4(1.0); var _metallicMap: vec4 = vec4(1.0); var _normalMap: vec4 = vec4(0.0, 0.0, 1.0, 0.0); // normal map was setting off the normal vector detection in fragment var _ambientOcclusionMap: vec4 = vec4(1.); var _emissionMap: vec4 = vec4(0.); //VTK::Color::Impl //VTK::TCoord::Impl //VTK::Normal::Impl var computedColor: vec4 = vec4(diffuseColor.rgb, 1.0); //VTK::Light::Impl //VTK::Select::Impl if (computedColor.a == 0.0) { discard; }; //VTK::Position::Impl //VTK::RenderEncoder::Impl return output; } `;function Wc(t){return t.indexOf("edge")>=0}function SO(t,e){e.classHierarchy.push("vtkWebGPUCellArrayMapper"),t.buildPass=n=>{n&&(e.is2D?(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.forceZValue=!0):(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.forceZValue=!1),e.coordinateSystem=e.WebGPUActor.getRenderable().getCoordinateSystem(),e.useRendererMatrix=e.coordinateSystem!==vO.DISPLAY,e.WebGPURenderer=e.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.device=e.WebGPURenderWindow.getDevice())},t.translucentPass=n=>{n&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.opaquePass=n=>{n&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.updateUBO=()=>{var s;const r=e.WebGPUActor.getRenderable().getProperty(),a=e.UBO.getSendTime();if(t.getMTime()>a||r.getMTime()>a||e.renderable.getMTime()>a){const i=e.WebGPUActor.getKeyMatrices(e.WebGPURenderer);if(e.UBO.setArray("BCWCMatrix",i.bcwc),e.UBO.setArray("BCSCMatrix",i.bcsc),e.UBO.setArray("MCWCNormals",i.normalMatrix),e.is2D){e.UBO.setValue("ZValue",e.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===yO.FOREGROUND?1:0);const c=r.getColorByReference();e.UBO.setValue("AmbientIntensity",1),e.UBO.setArray("DiffuseColor",[c[0],c[1],c[2],1]),e.UBO.setValue("DiffuseIntensity",0),e.UBO.setValue("SpecularIntensity",0)}else{let c=r.getAmbientColorByReference();e.UBO.setValue("AmbientIntensity",r.getAmbient()),e.UBO.setArray("AmbientColor",[c[0],c[1],c[2],1]),e.UBO.setValue("DiffuseIntensity",r.getDiffuse()),c=r.getDiffuseColorByReference(),e.UBO.setArray("DiffuseColor",[c[0],c[1],c[2],1]),e.UBO.setValue("Roughness",r.getRoughness()),e.UBO.setValue("BaseIOR",r.getBaseIOR()),e.UBO.setValue("Metallic",r.getMetallic()),e.UBO.setValue("NormalStrength",r.getNormalStrength()),e.UBO.setValue("Emission",r.getEmission()),e.UBO.setValue("SpecularIntensity",r.getSpecular()),c=r.getSpecularColorByReference(),e.UBO.setArray("SpecularColor",[c[0],c[1],c[2],1])}const o=(s=r.getEdgeColorByReference)==null?void 0:s.call(r);o&&e.UBO.setArray("EdgeColor",[o[0],o[1],o[2],1]),e.UBO.setValue("LineWidth",r.getLineWidth()),e.UBO.setValue("Opacity",r.getOpacity()),e.UBO.setValue("PropID",e.WebGPUActor.getPropID());const u=e.WebGPURenderWindow.getDevice();e.UBO.sendIfNeeded(u)}},t.haveWideLines=()=>{const n=e.WebGPUActor.getRenderable(),r=n.getProperty().getRepresentation();return n.getProperty().getLineWidth()<=1||e.primitiveType===Je.Verts?!1:e.primitiveType===Je.Triangles||e.primitiveType===Je.TriangleStrips?r===Sa.WIREFRAME:!0},t.replaceShaderPosition=(n,r,a)=>{const s=r.getShaderDescription("vertex");s.addBuiltinOutput("vec4","@builtin(position) Position"),s.hasOutput("vertexVC")||s.addOutput("vec4","vertexVC");let i=s.getCode();e.useRendererMatrix?(i=ie.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,e.forceZValue&&(i=ie.substitute(i,"//VTK::Position::Impl",["pCoord = vec4(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(i=ie.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,e.forceZValue&&(i=ie.substitute(i,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),t.haveWideLines()&&(s.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i=ie.substitute(i,"//VTK::Position::Impl",[" var tmpPos: vec4 = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),i=ie.substitute(i,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,s.setCode(i)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderNormal=(n,r,a)=>{const s=a.getBuffer("normalMC"),i=e.WebGPUActor.getRenderable();if(s){const o=r.getShaderDescription("vertex");o.hasOutput("normalVC")||o.addOutput("vec3","normalVC",s.getArrayInformation()[0].interpolation),o.hasOutput("tangentVC")||o.addOutput("vec3","tangentVC",s.getArrayInformation()[0].interpolation),o.hasOutput("bitangentVC")||o.addOutput("vec3","bitangentVC",s.getArrayInformation()[0].interpolation);let u=o.getCode();u=ie.substitute(u,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3 = cross(output.normalVC, vec3(0, 0, 1));"," var c2: vec3 = cross(output.normalVC, vec3(0, 1, 0));"," var tangent: vec3 = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,o.setCode(u);const c=r.getShaderDescription("fragment");u=c.getCode(),i.getProperty().getNormalTexture()?u=ie.substitute(u,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3 = input.tangentVC;"," var bitangent: vec3 = input.bitangentVC;"," var TCVCMatrix: mat3x3 = mat3x3("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3 = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:u=ie.substitute(u,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,c.setCode(u)}},e.shaderReplacements.set("replaceShaderNormal",t.replaceShaderNormal),t.replaceShaderLight=(n,r,a)=>{var c;if(n.includes("sel"))return;const s=r.getShaderDescription("vertex");s.hasOutput("vertexVC")||s.addOutput("vec4","vertexVC");const i=e.WebGPURenderer.getRenderable(),o=r.getShaderDescription("fragment");let u=o.getCode();if(u.includes("var normal:")&&e.useRendererMatrix&&!Wc(n)&&!e.is2D&&!n.includes("sel")){const f=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3 = vec3(input.vertexVC.xyz);"," var V: vec3 = mix(normalize(-fragPos), vec3(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3 = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3 = vec3(0.);"," var specular: vec3 = vec3(0.);"," var emission: vec3 = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2 = vec2(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1.0, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3 = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3 = mix(vec3(fresnel), fresnelMetallic, metallic);"," kS = min(vec3(1.0), kS);"," var kD: vec3 = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3 = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4(PBR, mapperUBO.Opacity);"];(c=i.getEnvironmentTexture())!=null&&c.getImageLoaded()&&f.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3 = (transpose(rendererUBO.WCVCNormals) * vec4(normal, 1.)).xyz;"," var diffuseCoords: vec2 = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3 = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4(VreflN, 1.)).xyz;"," var specularCoords: vec2 = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3 = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3 = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4(diffuseIBLContribution*kD, 0);"),u=ie.substitute(u,"//VTK::Light::Impl",f).result,o.setCode(u)}else u=ie.substitute(u,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,o.setCode(u)},e.shaderReplacements.set("replaceShaderLight",t.replaceShaderLight),t.replaceShaderColor=(n,r,a)=>{if(Wc(n)){const c=r.getShaderDescription("fragment");let f=c.getCode();f=ie.substitute(f,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,c.setCode(f);return}const s=a.getBuffer("colorVI");if(!s)return;const i=r.getShaderDescription("vertex");i.addOutput("vec4","color",s.getArrayInformation()[0].interpolation);let o=i.getCode();o=ie.substitute(o,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,i.setCode(o);const u=r.getShaderDescription("fragment");o=u.getCode(),o=ie.substitute(o,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,u.setCode(o)},e.shaderReplacements.set("replaceShaderColor",t.replaceShaderColor),t.replaceShaderTCoord=(n,r,a)=>{var p,T,h,d,x,C,y,v,w,S,R,M,m,O,V,B,b,U,Y,q;if(!a.hasAttribute("tcoord"))return;const s=r.getShaderDescription("vertex"),i=a.getBuffer("tcoord"),o=Ke.getNumberOfComponentsFromBufferFormat(i.getArrayInformation()[0].format);let u=s.getCode();s.addOutput(`vec${o}`,"tcoordVS"),u=ie.substitute(u,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,s.setCode(u);const c=r.getShaderDescription("fragment");u=c.getCode();const f=e.WebGPUActor.getRenderable(),l=Z=>Z?Z.getDimensionality()===o:!1,g=[];((h=(T=(p=f.getProperty()).getDiffuseTexture)==null?void 0:T.call(p))!=null&&h.getImageLoaded()||f.getTextures()[0]||e.colorTexture)&&(l((x=(d=f.getProperty()).getDiffuseTexture)==null?void 0:x.call(d))||l(f.getTextures()[0])||l(e.colorTexture))&&g.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),(v=(y=(C=f.getProperty()).getRoughnessTexture)==null?void 0:y.call(C))!=null&&v.getImageLoaded()&&l(f.getProperty().getRoughnessTexture())&&g.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),(R=(S=(w=f.getProperty()).getMetallicTexture)==null?void 0:S.call(w))!=null&&R.getImageLoaded()&&l(f.getProperty().getMetallicTexture())&&g.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),(O=(m=(M=f.getProperty()).getNormalTexture)==null?void 0:m.call(M))!=null&&O.getImageLoaded()&&l(f.getProperty().getNormalTexture())&&g.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),(b=(B=(V=f.getProperty()).getAmbientOcclusionTexture)==null?void 0:B.call(V))!=null&&b.getImageLoaded()&&l(f.getProperty().getAmbientOcclusionTexture())&&g.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),(q=(Y=(U=f.getProperty()).getEmissionTexture)==null?void 0:Y.call(U))!=null&&q.getImageLoaded()&&l(f.getProperty().getEmissionTexture())&&g.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),u=ie.substitute(u,"//VTK::TCoord::Impl",g).result,c.setCode(u)},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.replaceShaderSelect=(n,r,a)=>{if(n.includes("sel")){const s=r.getShaderDescription("fragment");let i=s.getCode();i=ie.substitute(i,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,s.setCode(i)}},e.shaderReplacements.set("replaceShaderSelect",t.replaceShaderSelect),t.getUsage=(n,r)=>n===Sa.POINTS||r===Je.Points?Ae.Verts:r===Je.Lines?Ae.Lines:n===Sa.WIREFRAME?r===Je.Triangles?Ae.LinesFromTriangles:Ae.LinesFromStrips:r===Je.Triangles?Ae.Triangles:r===Je.TriangleStrips?Ae.Strips:r===Je.TriangleEdges?Ae.LinesFromTriangles:Ae.LinesFromStrips,t.getHashFromUsage=n=>`pt${n}`,t.getTopologyFromUsage=n=>{switch(n){case Ae.Triangles:return"triangle-list";case Ae.Verts:return"point-list";case Ae.Lines:default:return"line-list"}},t.buildVertexInput=()=>{var h,d;const n=e.currentInput,r=e.cellArray,a=e.primitiveType;let i=e.WebGPUActor.getRenderable().getProperty().getRepresentation();const o=e.WebGPURenderWindow.getDevice();let u=!1;a===Je.TriangleEdges&&(u=!0,i=Sa.WIREFRAME);const c=e.vertexInput,f=n.getPoints();let l;if(r){const x={hash:`R${i}P${a}${r.getMTime()}`,usage:Ae.Index,cells:r,numberOfPoints:f.getNumberOfPoints(),primitiveType:a,representation:i};l=o.getBufferManager().getBuffer(x),c.setIndexBuffer(l)}else c.setIndexBuffer(null);if(f){const x=e.WebGPUActor.getBufferShift(e.WebGPURenderer),C={hash:`${f.getMTime()}I${l.getMTime()}${x.join()}float32x4`,usage:Ae.PointArray,format:"float32x4",dataArray:f,indexBuffer:l,shift:x,packExtra:!0},y=o.getBufferManager().getBuffer(C);c.addBuffer(y,["vertexBC"])}else c.removeBufferIfPresent("vertexBC");const g=t.getUsage(i,a);if(e._usesCellNormals=!1,!e.is2D&&(g===Ae.Triangles||g===Ae.Strips)){const x=n.getPointData().getNormals(),C={format:"snorm8x4",indexBuffer:l,packExtra:!0,shift:0,scale:127};if(x){C.hash=`${x.getMTime()}I${l.getMTime()}snorm8x4`,C.dataArray=x,C.usage=Ae.PointArray;const y=o.getBufferManager().getBuffer(C);c.addBuffer(y,["normalMC"])}else if(a===Je.Triangles){e._usesCellNormals=!0,C.hash=`PFN${f.getMTime()}I${l.getMTime()}snorm8x4`,C.dataArray=f,C.cells=r,C.usage=Ae.NormalsFromPoints;const y=o.getBufferManager().getBuffer(C);c.addBuffer(y,["normalMC"])}else c.removeBufferIfPresent("normalMC")}else c.removeBufferIfPresent("normalMC");let p=!1;if(e.renderable.getScalarVisibility()){const x=e.renderable.getColorMapColors();if(x&&!u){const C=e.renderable.getScalarMode();let y=!1;(C===Ca.USE_CELL_DATA||C===Ca.USE_CELL_FIELD_DATA||C===Ca.USE_FIELD_DATA||!n.getPointData().getScalars())&&C!==Ca.USE_POINT_FIELD_DATA&&x&&(y=!0);const v={usage:Ae.PointArray,format:"unorm8x4",hash:`${y}${x.getMTime()}I${l.getMTime()}unorm8x4`,dataArray:x,indexBuffer:l,cellData:y,cellOffset:0},w=o.getBufferManager().getBuffer(v);c.addBuffer(w,["colorVI"]),p=!0}}p||c.removeBufferIfPresent("colorVI");let T=null;if((d=(h=e.renderable).getInterpolateScalarsBeforeMapping)!=null&&d.call(h)&&e.renderable.getColorCoordinates()?T=e.renderable.getColorCoordinates():T=n.getPointData().getTCoords(),T&&!u){const x=o.getBufferManager().getBufferForPointArray(T,c.getIndexBuffer());c.addBuffer(x,["tcoord"])}else c.removeBufferIfPresent("tcoord")},t.updateTextures=()=>{var u,c,f,l,g,p,T,h,d,x,C,y,v,w,S;const n=[],r=[],a=(c=(u=e.renderable).getColorTextureMap)==null?void 0:c.call(u);a&&(e.colorTexture||(e.colorTexture=ps.newInstance({label:"polyDataColor"})),e.colorTexture.setInputData(a),r.push(["Diffuse",e.colorTexture]));const s=e.WebGPUActor.getRenderable(),i=e.WebGPURenderer.getRenderable(),o=[];if((l=(f=s.getProperty()).getDiffuseTexture)!=null&&l.call(f)){const R=["Diffuse",s.getProperty().getDiffuseTexture()];o.push(R)}if(s.getTextures()[0]){const R=["Diffuse",s.getTextures()[0]];o.push(R)}if(e.colorTexture){const R=["Diffuse",e.colorTexture];o.push(R)}if((p=(g=s.getProperty()).getRoughnessTexture)!=null&&p.call(g)){const R=["Roughness",s.getProperty().getRoughnessTexture()];o.push(R)}if((h=(T=s.getProperty()).getMetallicTexture)!=null&&h.call(T)){const R=["Metallic",s.getProperty().getMetallicTexture()];o.push(R)}if((x=(d=s.getProperty()).getNormalTexture)!=null&&x.call(d)){const R=["Normal",s.getProperty().getNormalTexture()];o.push(R)}if((y=(C=s.getProperty()).getAmbientOcclusionTexture)!=null&&y.call(C)){const R=["AmbientOcclusion",s.getProperty().getAmbientOcclusionTexture()];o.push(R)}if((w=(v=s.getProperty()).getEmissionTexture)!=null&&w.call(v)){const R=["Emission",s.getProperty().getEmissionTexture()];o.push(R)}if((S=i.getEnvironmentTexture)!=null&&S.call(i)){const R=["Environment",i.getEnvironmentTexture()];o.push(R)}for(let R=0;R=0;R--)n[R]||(e.textures.splice(R,1),e.textureViews.splice(R,1))},t.computePipelineHash=()=>{let n=`pd${e.useRendererMatrix?"r":""}${e.forceZValue?"z":""}`;if(e.primitiveType===Je.TriangleEdges||e.primitiveType===Je.TriangleStripEdges)n+="edge";else{if(e.vertexInput.hasAttribute("normalMC")&&(n+="n"),e.vertexInput.hasAttribute("colorVI")&&(n+="c"),e.vertexInput.hasAttribute("tcoord")){const a=e.vertexInput.getBuffer("tcoord"),s=Ke.getNumberOfComponentsFromBufferFormat(a.getArrayInformation()[0].format);n+=`t${s}`}e.textures.length&&(n+=`tx${e.textures.length}`)}e._usesCellNormals&&(n+="cn"),e.SSBO&&(n+="ssbo");const r=t.getHashFromUsage(e.usage);n+=r,n+=e.renderEncoder.getPipelineHash(),e.pipelineHash=n},t.updateBuffers=()=>{e.primitiveType!==Je.TriangleEdges&&e.primitiveType!==Je.TriangleStripEdges&&t.updateTextures();const n=e.WebGPUActor.getRenderable(),r=n.getProperty().getRepresentation();e.usage=t.getUsage(r,e.primitiveType),t.buildVertexInput();const a=e.vertexInput.getBuffer("vertexBC");if(t.setNumberOfVertices(a.getSizeInBytes()/a.getStrideInBytes()),t.setTopology(t.getTopologyFromUsage(e.usage)),t.updateUBO(),t.haveWideLines()){const s=n.getProperty();t.setNumberOfInstances(Math.ceil(s.getLineWidth()*2))}else t.setNumberOfInstances(1)}}const CO={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function wg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CO,n),fo.extend(t,e,n),e.fragmentShaderTemplate=xO,e.vertexShaderTemplate=TO,e._tmpMat3=Kn(new Float64Array(9)),e._tmpMat4=le(new Float64Array(16)),e.UBO=zn.newInstance({label:"mapperUBO"}),e.UBO.addEntry("BCWCMatrix","mat4x4"),e.UBO.addEntry("BCSCMatrix","mat4x4"),e.UBO.addEntry("MCWCNormals","mat4x4"),e.UBO.addEntry("AmbientColor","vec4"),e.UBO.addEntry("DiffuseColor","vec4"),e.UBO.addEntry("EdgeColor","vec4"),e.UBO.addEntry("SpecularColor","vec4"),e.UBO.addEntry("AmbientIntensity","f32"),e.UBO.addEntry("DiffuseIntensity","f32"),e.UBO.addEntry("Roughness","f32"),e.UBO.addEntry("Metallic","f32"),e.UBO.addEntry("Ambient","f32"),e.UBO.addEntry("Normal","f32"),e.UBO.addEntry("Emission","f32"),e.UBO.addEntry("NormalStrength","f32"),e.UBO.addEntry("BaseIOR","f32"),e.UBO.addEntry("SpecularIntensity","f32"),e.UBO.addEntry("LineWidth","f32"),e.UBO.addEntry("Opacity","f32"),e.UBO.addEntry("ZValue","f32"),e.UBO.addEntry("PropID","u32"),e.UBO.addEntry("ClipNear","f32"),e.UBO.addEntry("ClipFar","f32"),e.UBO.addEntry("Time","u32"),ze(t,e,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),e.textures=[],SO(t,e)}const wO=Ee(wg,"vtkWebGPUCellArrayMapper");var Eg={newInstance:wO,extend:wg};const{PrimitiveTypes:wa}=wn;function EO(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper"),t.createCellArrayMapper=()=>Eg.newInstance(),t.buildPass=n=>{if(n){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.renderable.getStatic()||e.renderable.update();const r=e.renderable.getInputData();e.renderable.mapScalars(r,1),t.updateCellArrayMappers(r)}},t.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=[];let s=0;for(let i=wa.Points;i<=wa.Triangles;i++)if(r[i].getNumberOfValues()>0){e.primitives[i]||(e.primitives[i]=t.createCellArrayMapper());const o=e.primitives[i];o.setCellArray(r[i]),o.setCurrentInput(n),o.setCellOffset(s),o.setPrimitiveType(i),o.setRenderable(e.renderable),s+=r[i].getNumberOfCells(),a.push(o)}else e.primitives[i]=null;if(e.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(let i=wa.TriangleEdges;i<=wa.TriangleStripEdges;i++)if(r[i-2].getNumberOfValues()>0){e.primitives[i]||(e.primitives[i]=t.createCellArrayMapper());const o=e.primitives[i];o.setCellArray(r[i-2]),o.setCurrentInput(n),o.setCellOffset(e.primitives[i-2].getCellOffset()),o.setPrimitiveType(i),o.setRenderable(e.renderable),a.push(o)}else e.primitives[i]=null;t.prepareNodes(),t.addMissingChildren(a),t.removeUnusedNodes()}}const _O={primitives:null};function RO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_O,n),Be.extend(t,e,n),e.primitives=[],EO(t,e)}const OO=Ee(RO,"vtkWebGPUPolyDataMapper");rn("vtkMapper",OO);const{PrimitiveTypes:zc}=wn;function DO(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),t.createCellArrayMapper=()=>Eg.newInstance(),t.buildPass=n=>{if(n){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.renderable.getStatic()||e.renderable.update();const r=e.renderable.getInputData();e.renderable.mapScalars(r,1),t.updateCellArrayMappers(r)}},t.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=[];let s=0;for(let i=zc.Points;i<=zc.Triangles;i++)if(r[i].getNumberOfValues()>0){e.primitives[i]||(e.primitives[i]=t.createCellArrayMapper());const o=e.primitives[i];o.setCellArray(r[i]),o.setCurrentInput(n),o.setCellOffset(s),o.setPrimitiveType(i),o.setRenderable(e.renderable),o.setIs2D(!0),s+=r[i].getNumberOfCells(),a.push(o)}else e.primitives[i]=null;t.prepareNodes(),t.addMissingChildren(a),t.removeUnusedNodes()}}function MO(t){return{primitives:[],...t}}function VO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,MO(n)),Be.extend(t,e,n),e.primitives=[],DO(t,e)}const mO=Ee(VO,"vtkWebGPUPolyDataMapper2D");rn("vtkMapper2D",mO);function LO(t,e){e.classHierarchy.push("vtkWebGPUScalarBarActor"),t.buildPass=n=>{n&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(n,r)=>{if(n){const a=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,s=e.WebGPURenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([s.usize,s.vsize],a,e.WebGPURenderWindow.getRenderable())}}}const BO={};function kO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BO,n),Be.extend(t,e,n),e.scalarBarActorHelper=uo.newScalarBarActorHelper(),LO(t,e)}const FO=Ee(kO,"vtkWebGPUScalarBarActor");rn("vtkScalarBarActor",FO);function UO(t,e){e.classHierarchy.push("vtkWebGPUSampler"),t.create=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.device=n,e.options.addressModeU=r.addressModeU?r.addressModeU:"clamp-to-edge",e.options.addressModeV=r.addressModeV?r.addressModeV:"clamp-to-edge",e.options.addressModeW=r.addressModeW?r.addressModeW:"clamp-to-edge",e.options.magFilter=r.magFilter?r.magFilter:"nearest",e.options.minFilter=r.minFilter?r.minFilter:"nearest",e.options.mipmapFilter=r.mipmapFilter?r.mipmapFilter:"nearest",e.options.label=e.label,e.handle=e.device.getHandle().createSampler(e.options),e.bindGroupTime.modified()},t.getShaderCode=(n,r)=>`@binding(${n}) @group(${r}) var ${e.label}: sampler;`,t.getBindGroupEntry=()=>({resource:e.handle})}const NO={device:null,handle:null,label:null,options:null};function _g(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,NO,n),E.obj(t,e),e.options={},e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","handle","options"]),E.setGet(t,e,["bindGroupLayoutEntry","device","label"]),UO(t,e)}const bO=E.newInstance(_g);var lo={newInstance:bO,extend:_g};function GO(t,e){e.classHierarchy.push("vtkWebGPUTextureView"),t.create=(n,r)=>{e.texture=n,e.options=r,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=n.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const a=Ke.getDetailsFromTextureFormat(e.texture.getFormat());e.bindGroupLayoutEntry.texture.sampleType=a.sampleType},t.createFromTextureHandle=(n,r)=>{e.texture=null,e.options=r,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=n,e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const a=Ke.getDetailsFromTextureFormat(r.format);e.bindGroupLayoutEntry.texture.sampleType=a.sampleType,e.bindGroupTime.modified()},t.getBindGroupEntry=()=>({resource:t.getHandle()}),t.getShaderCode=(n,r)=>{let a="f32";e.bindGroupLayoutEntry.texture.sampleType==="sint"?a="i32":e.bindGroupLayoutEntry.texture.sampleType==="uint"&&(a="u32");let s=`@binding(${n}) @group(${r}) var ${e.label}: texture_${e.options.dimension}<${a}>;`;return e.bindGroupLayoutEntry.texture.sampleType==="depth"&&(s=`@binding(${n}) @group(${r}) var ${e.label}: texture_depth_${e.options.dimension};`),s},t.addSampler=(n,r)=>{const a=lo.newInstance({label:`${e.label}Sampler`});a.create(n,r),t.setSampler(a)},t.getBindGroupTime=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.bindGroupTime),t.getHandle=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.handle)}const $O={texture:null,handle:null,sampler:null,label:null};function Rg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$O,n),E.obj(t,e),e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","texture"]),E.setGet(t,e,["bindGroupLayoutEntry","label","sampler"]),GO(t,e)}const WO=E.newInstance(Rg);var Og={newInstance:WO,extend:Rg};const{BufferUsage:Ac}=wn;function zO(t,e){e.classHierarchy.push("vtkWebGPUTexture"),t.create=(n,r)=>{e.device=n,e.width=r.width,e.height=r.height,e.depth=r.depth?r.depth:1;const a=e.depth===1?"2d":"3d";e.format=r.format?r.format:"rgba8unorm",e.mipLevel=r.mipLevel?r.mipLevel:0,e.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label,dimension:a,mipLevelCount:e.mipLevel+1})},t.assignFromHandle=(n,r,a)=>{e.device=n,e.handle=r,e.width=a.width,e.height=a.height,e.depth=a.depth?a.depth:1,e.format=a.format?a.format:"rgba8unorm",e.usage=a.usage?a.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},t.writeImageData=n=>{let r=[];if(n.canvas){e.device.getHandle().queue.copyExternalImageToTexture({source:n.canvas,flipY:n.flip},{texture:e.handle,premultipliedAlpha:!0},[e.width,e.height,e.depth]),e.ready=!0;return}n.jsImageData&&!n.nativeArray&&(n.width=n.jsImageData.width,n.height=n.jsImageData.height,n.depth=1,n.format="rgba8unorm",n.flip=!0,n.nativeArray=n.jsImageData.data);const a=Ke.getDetailsFromTextureFormat(e.format);let s=e.width*a.stride;const i=(u,c,f)=>{const l=u.length/(c*f)*u.BYTES_PER_ELEMENT,g=a.elementSize===2&&a.sampleType==="float";if(g||l%256){const p=u,T=l/p.BYTES_PER_ELEMENT,h=a.elementSize,d=256*Math.floor((T*h+255)/256),x=d/h,C=E.newTypedArray(g?"Uint16Array":p.constructor.name,x*c*f);for(let y=0;y{const n=Ke.getDetailsFromTextureFormat(e.format);return n.elementSize===2&&n.sampleType==="float"?1:255},t.getNumberOfComponents=()=>Ke.getDetailsFromTextureFormat(e.format).numComponents,t.getDimensionality=()=>{let n=0;return e.width>1&&n++,e.height>1&&n++,e.depth>1&&n++,n},t.resizeToMatch=n=>{(n.getWidth()!==e.width||n.getHeight()!==e.height||n.getDepth()!==e.depth)&&(e.width=n.getWidth(),e.height=n.getHeight(),e.depth=n.getDepth(),e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.resize=function(n,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;(n!==e.width||r!==e.height||a!==e.depth)&&(e.width=n,e.height=r,e.depth=a,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.createView=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};r.dimension||(r.dimension=e.depth===1?"2d":"3d");const a=Og.newInstance({label:n});return a.create(t,r),a}}const AO={device:null,handle:null,buffer:null,ready:!1,label:null};function Dg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AO,n),E.obj(t,e),E.get(t,e,["handle","ready","width","height","depth","format","usage"]),E.setGet(t,e,["device","label"]),zO(t,e)}const HO=E.newInstance(Dg);var Kt={newInstance:HO,extend:Dg};function jO(t,e){e.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),t.opaquePass=(n,r)=>{e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent();const a=e.WebGPURenderer.getAspectRatio(),s=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,i=e.WebGPURenderer.getTiledSizeAndOrigin(),o=null;e.renderable.getUseZValues(),e.renderable.invokeCallback(e.renderable.getInputData(),s,a,i,o)}}const KO={};function PO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KO,n),Be.extend(t,e,n),jO(t,e)}const XO=E.newInstance(PO,"vtkWebGPUPixelSpaceCallbackMapper");rn("vtkPixelSpaceCallbackMapper",XO);const{vtkDebugMacro:Ea}=E;function IO(t,e){e.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),s=le(new Float64Array(16)),i=le(new Float64Array(16)),o=new Float64Array(3),u=new Float64Array(3),c=new Float64Array(3),f=le(new Float64Array(16)),l=le(new Float64Array(16)),g=new Float64Array(3),p=new Float64Array(3);function T(){e.viewPlaneNormal[0]=-e.directionOfProjection[0],e.viewPlaneNormal[1]=-e.directionOfProjection[1],e.viewPlaneNormal[2]=-e.directionOfProjection[2]}t.orthogonalizeViewUp=()=>{const h=t.getViewMatrix();e.viewUp[0]=h[4],e.viewUp[1]=h[5],e.viewUp[2]=h[6],t.modified()},t.setPosition=(h,d,x)=>{h===e.position[0]&&d===e.position[1]&&x===e.position[2]||(e.position[0]=h,e.position[1]=d,e.position[2]=x,t.computeDistance(),t.modified())},t.setFocalPoint=(h,d,x)=>{h===e.focalPoint[0]&&d===e.focalPoint[1]&&x===e.focalPoint[2]||(e.focalPoint[0]=h,e.focalPoint[1]=d,e.focalPoint[2]=x,t.computeDistance(),t.modified())},t.setDistance=h=>{if(e.distance===h)return;e.distance=h,e.distance<1e-20&&(e.distance=1e-20,Ea("Distance is set to minimum."));const d=e.directionOfProjection;e.focalPoint[0]=e.position[0]+d[0]*e.distance,e.focalPoint[1]=e.position[1]+d[1]*e.distance,e.focalPoint[2]=e.position[2]+d[2]*e.distance,t.modified()},t.computeDistance=()=>{const h=e.focalPoint[0]-e.position[0],d=e.focalPoint[1]-e.position[1],x=e.focalPoint[2]-e.position[2];if(e.distance=Math.sqrt(h*h+d*d+x*x),e.distance<1e-20){e.distance=1e-20,Ea("Distance is set to minimum.");const C=e.directionOfProjection;e.focalPoint[0]=e.position[0]+C[0]*e.distance,e.focalPoint[1]=e.position[1]+C[1]*e.distance,e.focalPoint[2]=e.position[2]+C[2]*e.distance}e.directionOfProjection[0]=h/e.distance,e.directionOfProjection[1]=d/e.distance,e.directionOfProjection[2]=x/e.distance,T()},t.dolly=h=>{if(h<=0)return;const d=e.distance/h;t.setPosition(e.focalPoint[0]-d*e.directionOfProjection[0],e.focalPoint[1]-d*e.directionOfProjection[1],e.focalPoint[2]-d*e.directionOfProjection[2])},t.roll=h=>{const d=e.position,x=e.focalPoint,C=e.viewUp,y=new Float64Array([C[0],C[1],C[2],0]);le(f);const v=new Float64Array([x[0]-d[0],x[1]-d[1],x[2]-d[2]]);$t(f,f,ke(h),v),sa(y,y,f),e.viewUp[0]=y[0],e.viewUp[1]=y[1],e.viewUp[2]=y[2],t.modified()},t.azimuth=h=>{const d=e.focalPoint;le(l),Ge(l,l,d),$t(l,l,ke(h),e.viewUp),Ge(l,l,[-d[0],-d[1],-d[2]]),xe(g,e.position,l),t.setPosition(g[0],g[1],g[2])},t.yaw=h=>{const d=e.position;le(l),Ge(l,l,d),$t(l,l,ke(h),e.viewUp),Ge(l,l,[-d[0],-d[1],-d[2]]),xe(p,e.focalPoint,l),t.setFocalPoint(p[0],p[1],p[2])},t.elevation=h=>{const d=e.focalPoint,x=t.getViewMatrix(),C=[-x[0],-x[1],-x[2]];le(l),Ge(l,l,d),$t(l,l,ke(h),C),Ge(l,l,[-d[0],-d[1],-d[2]]),xe(g,e.position,l),t.setPosition(g[0],g[1],g[2])},t.pitch=h=>{const d=e.position,x=t.getViewMatrix(),C=[x[0],x[1],x[2]];le(l),Ge(l,l,d),$t(l,l,ke(h),C),Ge(l,l,[-d[0],-d[1],-d[2]]),xe(p,e.focalPoint,l),t.setFocalPoint(...p)},t.zoom=h=>{h<=0||(e.parallelProjection?e.parallelScale/=h:e.viewAngle/=h,t.modified())},t.translate=(h,d,x)=>{const C=[h,d,x];ui(e.position,C,e.position),ui(e.focalPoint,C,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=h=>{const d=[...e.viewUp,1],x=[],C=[],y=[];d[0]+=e.position[0],d[1]+=e.position[1],d[2]+=e.position[2],sa(x,[...e.position,1],h),sa(C,[...e.focalPoint,1],h),sa(y,d,h),y[0]-=x[0],y[1]-=x[1],y[2]-=x[2],t.setPosition(...x.slice(0,3)),t.setFocalPoint(...C.slice(0,3)),t.setViewUp(...y.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=h=>{let d=h;d<1e-20&&(d=1e-20,Ea("Thickness is set to minimum.")),t.setClippingRange(e.clippingRange[0],e.clippingRange[0]+d)},t.setThicknessFromFocalPoint=h=>{let d=h;d<1e-20&&(d=1e-20,Ea("Thickness is set to minimum.")),t.setClippingRange(e.distance-d/2,e.distance+d/2)},t.setRoll=h=>{},t.getRoll=()=>{},t.setObliqueAngles=(h,d)=>{},t.getOrientation=()=>{},t.getOrientationWXYZ=()=>{},t.getFrustumPlanes=h=>{},t.getCameraLightTransformMatrix=h=>(qe(h,e.cameraLightTransform),h),t.computeCameraLightTransform=()=>{qe(s,t.getViewMatrix()),ut(s,s),nf(i,[e.distance,e.distance,e.distance]),at(s,s,i),le(e.cameraLightTransform),Ge(e.cameraLightTransform,s,[0,0,-1])},t.deepCopy=h=>{},t.physicalOrientationToWorldDirection=h=>{const d=ac(h[0],h[1],h[2],h[3]),x=Hn(),C=ac(0,0,1,0);return t2(x,d),rc(C,d,C),rc(C,C,x),[C[0],C[1],C[2]]},t.getPhysicalToWorldMatrix=h=>{t.getWorldToPhysicalMatrix(h),ut(h,h)},t.getWorldToPhysicalMatrix=h=>{le(h);const d=[3];Hr(e.physicalViewNorth,e.physicalViewUp,d),h[0]=d[0],h[1]=d[1],h[2]=d[2],h[4]=e.physicalViewUp[0],h[5]=e.physicalViewUp[1],h[6]=e.physicalViewUp[2],h[8]=-e.physicalViewNorth[0],h[9]=-e.physicalViewNorth[1],h[10]=-e.physicalViewNorth[2],Oe(h,h),Ya(o,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),gr(h,h,o),Ge(h,h,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=h=>{ut(s,h),xe(o,n,s),t.computeDistance();const d=e.distance;t.setPosition(o[0],o[1],o[2]),xe(u,r,s),Tn(u,u,o),zr(u,u),t.setDirectionOfProjection(u[0],u[1],u[2]),xe(c,a,s),Tn(c,c,o),zr(c,c),t.setViewUp(c[0],c[1],c[2]),t.setDistance(d)},t.computeViewParametersFromPhysicalMatrix=h=>{t.getWorldToPhysicalMatrix(s),at(s,h,s),t.computeViewParametersFromViewMatrix(s)},t.setViewMatrix=h=>{e.viewMatrix=h,e.viewMatrix&&(qe(s,e.viewMatrix),t.computeViewParametersFromViewMatrix(s),Oe(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=()=>{if(e.viewMatrix)return e.viewMatrix;lf(s,e.position,e.focalPoint,e.viewUp),Oe(s,s);const h=new Float64Array(16);return qe(h,s),h},t.setProjectionMatrix=h=>{e.projectionMatrix=h},t.getProjectionMatrix=(h,d,x)=>{const C=new Float64Array(16);if(le(C),e.projectionMatrix){const w=1/e.physicalScale;return Ya(o,w,w,w),qe(C,e.projectionMatrix),gr(C,C,o),Oe(C,C),C}le(s);const y=e.clippingRange[1]-e.clippingRange[0],v=[e.clippingRange[0]+(d+1)*y/2,e.clippingRange[0]+(x+1)*y/2];if(e.parallelProjection){const w=e.parallelScale*h,S=e.parallelScale,R=(e.windowCenter[0]-1)*w,M=(e.windowCenter[0]+1)*w,m=(e.windowCenter[1]-1)*S,O=(e.windowCenter[1]+1)*S;ff(s,R,M,m,O,v[0],v[1]),Oe(s,s)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const w=Math.tan(ke(e.viewAngle)/2);let S,R;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*w,R=e.clippingRange[0]*w/h):(S=e.clippingRange[0]*w*h,R=e.clippingRange[0]*w);const M=(e.windowCenter[0]-1)*S,m=(e.windowCenter[0]+1)*S,O=(e.windowCenter[1]-1)*R,V=(e.windowCenter[1]+1)*R,B=v[0],b=v[1];s[0]=2*B/(m-M),s[5]=2*B/(V-O),s[2]=(M+m)/(m-M),s[6]=(O+V)/(V-O),s[10]=-(B+b)/(b-B),s[14]=-1,s[11]=-2*B*b/(b-B),s[15]=0}}return qe(C,s),C},t.getCompositeProjectionMatrix=(h,d,x)=>{const C=t.getViewMatrix(),y=t.getProjectionMatrix(h,d,x);return at(y,C,y),y},t.setDirectionOfProjection=(h,d,x)=>{if(e.directionOfProjection[0]===h&&e.directionOfProjection[1]===d&&e.directionOfProjection[2]===x)return;e.directionOfProjection[0]=h,e.directionOfProjection[1]=d,e.directionOfProjection[2]=x;const C=e.directionOfProjection;e.focalPoint[0]=e.position[0]+C[0]*e.distance,e.focalPoint[1]=e.position[1]+C[1]*e.distance,e.focalPoint[2]=e.position[2]+C[2]*e.distance,T()},t.setDeviceAngles=(h,d,x,C)=>{const y=[3];Hr(e.physicalViewNorth,e.physicalViewUp,y);const v=le(new Float64Array(16));$t(v,v,ke(h),e.physicalViewUp),$t(v,v,ke(d),y),$t(v,v,ke(x),e.physicalViewNorth),$t(v,v,ke(-C),e.physicalViewUp);const w=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);xe(w,w,v),xe(S,S,v),t.setDirectionOfProjection(w[0],w[1],w[2]),t.setViewUp(S[0],S[1],S[2]),t.modified()},t.setOrientationWXYZ=(h,d,x,C)=>{const y=le(new Float64Array(16));if(h!==0&&(d!==0||x!==0||C!==0)){const S=ke(h),R=Hn();zi(R,[d,x,C],S),Wi(y,R)}const v=new Float64Array(3);xe(v,[0,0,-1],y);const w=new Float64Array(3);xe(w,[0,1,0],y),t.setDirectionOfProjection(...v),t.setViewUp(...w),t.modified()},t.computeClippingRange=h=>{let d=null,x=null;d=e.viewPlaneNormal,x=e.position;const C=-d[0],y=-d[1],v=-d[2],w=-(C*x[0]+y*x[1]+v*x[2]),S=[C*h[0]+y*h[2]+v*h[4]+w,1e-18];for(let R=0;R<2;R++)for(let M=0;M<2;M++)for(let m=0;m<2;m++){const O=C*h[m]+y*h[2+M]+v*h[4+R]+w;S[0]=OS[1]?O:S[1]}return S}}const YO={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,cameraLightTransform:$i(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function Mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YO,n),E.obj(t,e),E.get(t,e,["distance"]),E.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),E.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),E.setGetArray(t,e,["clippingRange","windowCenter"],2),E.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),IO(t,e)}const qO=E.newInstance(Mg,"vtkCamera");var QO={newInstance:qO,extend:Mg};const ZO=["HeadLight","CameraLight","SceneLight"];function JO(t,e){e.classHierarchy.push("vtkLight");const n=new Float64Array(3);t.getTransformedPosition=()=>(e.transformMatrix?xe(n,e.position,e.transformMatrix):Ya(n,e.position[0],e.position[1],e.position[2]),n),t.getTransformedFocalPoint=()=>(e.transformMatrix?xe(n,e.focalPoint,e.transformMatrix):Ya(n,e.focalPoint[0],e.focalPoint[1],e.focalPoint[2]),n),t.getDirection=()=>(e.directionMTime{const a=new Float64Array(3);oi(a,e.position,r),e.focalPoint=a},t.setDirectionAngle=(r,a)=>{const s=ke(r),i=ke(a);t.setPosition(Math.cos(s)*Math.sin(i),Math.sin(s),Math.cos(s)*Math.cos(i)),t.setFocalPoint(0,0,0),t.setPositional(0)},t.setLightTypeToHeadLight=()=>{t.setLightType("HeadLight")},t.setLightTypeToCameraLight=()=>{t.setLightType("CameraLight")},t.setLightTypeToSceneLight=()=>{t.setTransformMatrix(null),t.setLightType("SceneLight")},t.lightTypeIsHeadLight=()=>e.lightType==="HeadLight",t.lightTypeIsSceneLight=()=>e.lightType==="SceneLight",t.lightTypeIsCameraLight=()=>e.lightType==="CameraLight"}const eD={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function Vg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eD,n),E.obj(t,e),E.setGet(t,e,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),E.setGetArray(t,e,["color","position","focalPoint","attenuationValues"],3),JO(t,e)}const tD=E.newInstance(Vg,"vtkLight");var nD={newInstance:tD,extend:Vg,LIGHT_TYPES:ZO};const{vtkErrorMacro:Na}=E;function rD(t){return()=>Na(`vtkViewport::${t} - NOT IMPLEMENTED`)}function aD(t,e){e.classHierarchy.push("vtkViewport"),t.getViewProps=()=>e.props,t.hasViewProp=r=>e.props.includes(r),t.addViewProp=r=>{r&&!t.hasViewProp(r)&&e.props.push(r)},t.removeViewProp=r=>{const a=e.props.filter(s=>s!==r);e.props.length!==a.length&&(e.props=a)},t.removeAllViewProps=()=>{e.props=[]};function n(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];a.push(r);const s=r.getNestedProps();if(s&&s.length)for(let i=0;i{const r=[];for(let a=0;a{t.removeViewProp(r)},t.getActors2D=()=>(e.actors2D=[],e.props.forEach(r=>{e.actors2D=e.actors2D.concat(r.getActors2D())}),e.actors2D),t.displayToView=()=>Na("call displayToView on your view instead"),t.viewToDisplay=()=>Na("callviewtodisplay on your view instead"),t.getSize=()=>Na("call getSize on your View instead"),t.normalizedDisplayToProjection=(r,a,s)=>{const i=t.normalizedDisplayToNormalizedViewport(r,a,s);return t.normalizedViewportToProjection(i[0],i[1],i[2])},t.normalizedDisplayToNormalizedViewport=(r,a,s)=>{const i=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[(r-e.viewport[0])/i[0],(a-e.viewport[1])/i[1],s]},t.normalizedViewportToProjection=(r,a,s)=>[r*2-1,a*2-1,s*2-1],t.projectionToNormalizedDisplay=(r,a,s)=>{const i=t.projectionToNormalizedViewport(r,a,s);return t.normalizedViewportToNormalizedDisplay(i[0],i[1],i[2])},t.normalizedViewportToNormalizedDisplay=(r,a,s)=>{const i=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[r*i[0]+e.viewport[0],a*i[1]+e.viewport[1],s]},t.projectionToNormalizedViewport=(r,a,s)=>[(r+1)*.5,(a+1)*.5,(s+1)*.5],t.PickPropFrom=rD("PickPropFrom")}const sD={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sD,n),E.obj(t,e),E.event(t,e,"event"),E.setGetArray(t,e,["viewport"],4),E.setGetArray(t,e,["background","background2"],3),aD(t,e)}const iD=E.newInstance(mg,"vtkViewport");var oD={newInstance:iD,extend:mg};const{vtkDebugMacro:Dr,vtkErrorMacro:dn,vtkWarningMacro:cD}=Pt;function Hc(t){return()=>dn(`vtkRenderer::${t} - NOT IMPLEMENTED`)}function uD(t,e){e.classHierarchy.push("vtkRenderer");const n={type:"ComputeVisiblePropBoundsEvent",renderer:t},r={type:"ResetCameraClippingRangeEvent",renderer:t},a={type:"ResetCameraEvent",renderer:t};t.updateCamera=()=>(e.activeCamera||(Dr("No cameras are on, creating one."),t.getActiveCameraAndResetIfCreated()),e.activeCamera.render(t),!0),t.updateLightsGeometryToFollowCamera=()=>{const s=t.getActiveCameraAndResetIfCreated();e.lights.forEach(i=>{i.lightTypeIsSceneLight()||(i.lightTypeIsHeadLight()?(i.setPositionFrom(s.getPositionByReference()),i.setFocalPointFrom(s.getFocalPointByReference()),i.modified(s.getMTime())):i.lightTypeIsCameraLight()?i.setTransformMatrix(s.getCameraLightTransformMatrix($i())):dn("light has unknown light type",i.get()))})},t.updateLightGeometry=()=>e.lightFollowCamera?t.updateLightsGeometryToFollowCamera():!0,t.allocateTime=Hc("allocateTime"),t.updateGeometry=Hc("updateGeometry"),t.getVTKWindow=()=>e._renderWindow,t.setLayer=s=>{Dr(t.getClassName(),t,"setting Layer to ",s),e.layer!==s&&(e.layer=s,t.modified()),t.setPreserveColorBuffer(!!s)},t.setActiveCamera=s=>e.activeCamera===s?!1:(e.activeCamera=s,t.modified(),t.invokeEvent({type:"ActiveCameraEvent",camera:s}),!0),t.makeCamera=()=>{const s=QO.newInstance();return t.invokeEvent({type:"CreateCameraEvent",camera:s}),s},t.getActiveCamera=()=>(e.activeCamera||(e.activeCamera=t.makeCamera()),e.activeCamera),t.getActiveCameraAndResetIfCreated=()=>(e.activeCamera||(t.getActiveCamera(),t.resetCamera()),e.activeCamera),t.getActors=()=>(e.actors=[],e.props.forEach(s=>{e.actors=e.actors.concat(s.getActors())}),e.actors),t.addActor=t.addViewProp,t.removeActor=s=>{e.actors=e.actors.filter(i=>i!==s),t.removeViewProp(s),t.modified()},t.removeAllActors=()=>{t.getActors().forEach(i=>{t.removeViewProp(i)}),e.actors=[],t.modified()},t.getVolumes=()=>(e.volumes=[],e.props.forEach(s=>{e.volumes=e.volumes.concat(s.getVolumes())}),e.volumes),t.addVolume=t.addViewProp,t.removeVolume=s=>{e.volumes=e.volumes.filter(i=>i!==s),t.removeViewProp(s),t.modified()},t.removeAllVolumes=()=>{t.getVolumes().forEach(i=>{t.removeViewProp(i)}),e.volumes=[],t.modified()},t.hasLight=s=>e.lights.includes(s),t.addLight=s=>{s&&!t.hasLight(s)&&(e.lights.push(s),t.modified())},t.removeLight=s=>{e.lights=e.lights.filter(i=>i!==s),t.modified()},t.removeAllLights=()=>{e.lights=[],t.modified()},t.setLightCollection=s=>{e.lights=s,t.modified()},t.makeLight=nD.newInstance,t.createLight=()=>{e.automaticLightCreation&&(e._createdLight&&(t.removeLight(e._createdLight),e._createdLight.delete(),e._createdLight=null),e._createdLight=t.makeLight(),t.addLight(e._createdLight),e._createdLight.setLightTypeToHeadLight(),e._createdLight.setPosition(t.getActiveCamera().getPosition()),e._createdLight.setFocalPoint(t.getActiveCamera().getFocalPoint()))},t.normalizedDisplayToWorld=(s,i,o,u)=>{let c=t.normalizedDisplayToProjection(s,i,o);return c=t.projectionToView(c[0],c[1],c[2],u),t.viewToWorld(c[0],c[1],c[2])},t.worldToNormalizedDisplay=(s,i,o,u)=>{let c=t.worldToView(s,i,o);return c=t.viewToProjection(c[0],c[1],c[2],u),t.projectionToNormalizedDisplay(c[0],c[1],c[2])},t.viewToWorld=(s,i,o)=>{if(e.activeCamera===null)return dn("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();ut(u,u),Oe(u,u);const c=new Float64Array([s,i,o]);return xe(c,c,u),c},t.projectionToView=(s,i,o,u)=>{if(e.activeCamera===null)return dn("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);ut(c,c),Oe(c,c);const f=new Float64Array([s,i,o]);return xe(f,f,c),f},t.worldToView=(s,i,o)=>{if(e.activeCamera===null)return dn("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();Oe(u,u);const c=new Float64Array([s,i,o]);return xe(c,c,u),c},t.viewToProjection=(s,i,o,u)=>{if(e.activeCamera===null)return dn("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);Oe(c,c);const f=new Float64Array([s,i,o]);return xe(f,f,c),f},t.computeVisiblePropBounds=()=>{e.allBounds[0]=Re.INIT_BOUNDS[0],e.allBounds[1]=Re.INIT_BOUNDS[1],e.allBounds[2]=Re.INIT_BOUNDS[2],e.allBounds[3]=Re.INIT_BOUNDS[3],e.allBounds[4]=Re.INIT_BOUNDS[4],e.allBounds[5]=Re.INIT_BOUNDS[5];let s=!0;t.invokeEvent(n);for(let i=0;ie.allBounds[1]&&(e.allBounds[1]=u[1]),u[2]e.allBounds[3]&&(e.allBounds[3]=u[3]),u[4]e.allBounds[5]&&(e.allBounds[5]=u[5]))}}return s&&(Ii(e.allBounds),Dr("Can't compute bounds, no 3D props are visible")),e.allBounds},t.resetCamera=function(){const i=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds(),o=[0,0,0];if(!Ms(i))return Dr("Cannot reset camera!"),!1;let u=null;if(t.getActiveCamera())u=e.activeCamera.getViewPlaneNormal();else return dn("Trying to reset non-existent camera"),!1;e.activeCamera.setViewAngle(30),o[0]=(i[0]+i[1])/2,o[1]=(i[2]+i[3])/2,o[2]=(i[4]+i[5])/2;let c=i[1]-i[0],f=i[3]-i[2],l=i[5]-i[4];c*=c,f*=f,l*=l;let g=c+f+l;g=g===0?1:g,g=Math.sqrt(g)*.5;const p=ke(e.activeCamera.getViewAngle()),T=g,h=g/Math.sin(p*.5),d=e.activeCamera.getViewUp();return Math.abs(ge(d,u))>.999&&(cD("Resetting view-up since view plane normal is parallel"),e.activeCamera.setViewUp(-d[2],d[0],d[1])),e.activeCamera.setFocalPoint(o[0],o[1],o[2]),e.activeCamera.setPosition(o[0]+h*u[0],o[1]+h*u[1],o[2]+h*u[2]),t.resetCameraClippingRange(i),e.activeCamera.setParallelScale(T),e.activeCamera.setPhysicalScale(g),e.activeCamera.setPhysicalTranslation(-o[0],-o[1],-o[2]),t.invokeEvent(a),!0},t.resetCameraClippingRange=function(){const i=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds();if(!Ms(i))return Dr("Cannot reset camera clipping range!"),!1;if(t.getActiveCameraAndResetIfCreated(),!e.activeCamera)return dn("Trying to reset clipping range of non-existent camera"),!1;const o=e.activeCamera.computeClippingRange(i);let u=0;if(e.activeCamera.getParallelProjection())u=.2*e.activeCamera.getParallelScale();else{const c=ke(e.activeCamera.getViewAngle());u=.2*Math.tan(c/2)*o[1]}return o[1]-o[0]=o[1]?.01*o[1]:o[0],e.nearClippingPlaneTolerance||(e.nearClippingPlaneTolerance=.01),o[0]{s!==e._renderWindow&&(e._vtkWindow=s,e._renderWindow=s)},t.visibleActorCount=()=>e.props.filter(s=>s.getVisibility()).length,t.visibleVolumeCount=t.visibleActorCount,t.getMTime=()=>{let s=e.mtime;const i=e.activeCamera?e.activeCamera.getMTime():0;i>s&&(s=i);const o=e._createdLight?e._createdLight.getMTime():0;return o>s&&(s=o),s},t.getTransparent=()=>!!e.preserveColorBuffer,t.isActiveCameraCreated=()=>!!e.activeCamera}const fD={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Yi(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function Lg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};for(Object.assign(e,fD,n),oD.extend(t,e,n),e.background||(e.background=[0,0,0,1]);e.background.length<3;)e.background.push(0);e.background.length===3&&e.background.push(1),st(t,e,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),ze(t,e,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),xr(t,e,["actors","volumes","lights"]),Vi(t,e,["background"],4,1),Yr(t,e,["renderWindow"]),uD(t,e)}const lD=Ee(Lg,"vtkRenderer");var gD={newInstance:lD,extend:Lg};const pD="WebGL",as=Object.create(null);function go(t,e){as[t]=e}function hD(){return Object.keys(as)}function Bg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return as[t]&&as[t](e)}function dD(t,e){e.classHierarchy.push("vtkRenderWindow"),t.addRenderer=n=>{t.hasRenderer(n)||(n.setRenderWindow(t),e.renderers.push(n),t.modified())},t.removeRenderer=n=>{e.renderers=e.renderers.filter(r=>r!==n),t.modified()},t.hasRenderer=n=>e.renderers.indexOf(n)!==-1,t.newAPISpecificView=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Bg(n||e.defaultViewAPI,r)},t.addView=n=>{t.hasView(n)||(n.setRenderable(t),e._views.push(n),t.modified())},t.removeView=n=>{e._views=e._views.filter(r=>r!==n),t.modified()},t.hasView=n=>e._views.indexOf(n)!==-1,t.preRender=()=>{e.renderers.forEach(n=>{n.isActiveCameraCreated()||n.resetCamera()})},t.render=()=>{t.preRender(),e.interactor?e.interactor.render():e._views.forEach(n=>n.traverseAllPasses())},t.getStatistics=()=>{const n={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return e._views.forEach(r=>{r.getGraphicsMemoryInfo&&(n.gpuMemoryMB+=r.getGraphicsMemoryInfo()/1e6)}),e.renderers.forEach(r=>{const a=r.getViewProps(),s=e._views[0].getViewNodeFor(r);a.forEach(i=>{if(i.getVisibility()){n.propCount+=1;const o=i.getMapper&&i.getMapper();if(o&&o.getPrimitiveCount){const u=s.getViewNodeFor(o);if(u){u.getAllocatedGPUMemoryInBytes&&(n.gpuMemoryMB+=u.getAllocatedGPUMemoryInBytes()/1e6);const c=o.getPrimitiveCount();Object.keys(c).forEach(f=>{n[f]||(n[f]=0),n[f]+=c[f]})}}}else n.invisiblePropCount+=1})}),n.str=Object.keys(n).map(r=>`${r}: ${n[r]}`).join(` `),n},t.captureImages=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"image/png",r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return E.setImmediate(t.render),e._views.map(a=>a.captureNextImage?a.captureNextImage(n,r):void 0).filter(a=>!!a)}}const vD={defaultViewAPI:pD,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function kg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vD,n),E.obj(t,e),E.setGet(t,e,["interactor","numberOfLayers","_views","defaultViewAPI"]),E.get(t,e,["neverRendered"]),E.getArray(t,e,["renderers"]),E.moveToProtected(t,e,["views"]),E.event(t,e,"completion"),dD(t,e)}const yD=E.newInstance(kg,"vtkRenderWindow");var TD={newInstance:yD,extend:kg,registerViewConstructor:go,listViewAPIs:hD,newAPISpecificView:Bg};const Ci={Unknown:0,LeftController:1,RightController:2},kr={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},xD={Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4};var Fg={Device:Ci,Input:kr,Axis:xD};const{Device:_a,Input:Bn}=Fg,{vtkWarningMacro:Ra,vtkErrorMacro:Oa,normalizeWheel:SD,vtkOnceErrorMacro:CD}=E,Jn={ctrlKey:!1,altKey:!1,shiftKey:!1},js={"xr-standard":[Bn.Trigger,Bn.Grip,Bn.TrackPad,Bn.Thumbstick,Bn.A,Bn.B]},po=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function Mr(t){t.cancelable&&t.preventDefault()}function Da(t){const e=Object.create(null);return t.forEach(n=>{let{pointerId:r,position:a}=n;e[r]=a}),e}function wD(t,e){e.classHierarchy.push("vtkRenderWindowInteractor");const n={...t},r=new Set,a=new Map;let s=1;t.start=()=>{!e.initialized&&(t.initialize(),!e.initialized)||t.startEventLoop()},t.setRenderWindow=h=>{Oa("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},t.setInteractorStyle=h=>{e.interactorStyle!==h&&(e.interactorStyle!=null&&e.interactorStyle.setInteractor(null),e.interactorStyle=h,e.interactorStyle!=null&&e.interactorStyle.getInteractor()!==t&&e.interactorStyle.setInteractor(t))},t.initialize=()=>{e.initialized=!0,t.enable(),t.render()},t.enable=()=>t.setEnabled(!0),t.disable=()=>t.setEnabled(!1),t.startEventLoop=()=>Ra("empty event loop");function i(h,d){e._forcedRenderer||(e.currentRenderer=t.findPokedRenderer(h,d))}t.getCurrentRenderer=()=>(e.currentRenderer||i(0,0),e.currentRenderer);function o(h){const d=e._view.getCanvas(),x=d.getBoundingClientRect(),C=d.width/x.width,y=d.height/x.height,v={x:C*(h.clientX-x.left),y:y*(x.height-h.clientY+x.top),z:0};return(a.size<=1||!e.currentRenderer)&&i(v.x,v.y),v}const u=e._getScreenEventPositionFor||o;function c(h){return{controlKey:h.ctrlKey,altKey:h.altKey,shiftKey:h.shiftKey}}function f(h){const d=c(h);return{key:h.key,keyCode:h.charCode,...d}}function l(h){return h.pointerType||""}const g=()=>{if(e.container===null)return;const{container:h}=e;h.addEventListener("contextmenu",Mr),h.addEventListener("wheel",t.handleWheel),h.addEventListener("DOMMouseScroll",t.handleWheel),h.addEventListener("pointerenter",t.handlePointerEnter),h.addEventListener("pointerleave",t.handlePointerLeave),h.addEventListener("pointermove",t.handlePointerMove,{passive:!1}),h.addEventListener("pointerdown",t.handlePointerDown,{passive:!1}),h.addEventListener("pointerup",t.handlePointerUp),h.addEventListener("pointercancel",t.handlePointerCancel),document.addEventListener("keypress",t.handleKeyPress),document.addEventListener("keydown",t.handleKeyDown),document.addEventListener("keyup",t.handleKeyUp),document.addEventListener("pointerlockchange",t.handlePointerLockChange),h.style.touchAction="none",h.style.userSelect="none",h.style.webkitTapHighlightColor="rgba(0,0,0,0)"};t.bindEvents=h=>{if(h===null)return;n.setContainer(h)&&g()};const p=()=>{clearTimeout(e.moveTimeoutID),clearTimeout(e.wheelTimeoutID),e.moveTimeoutID=0,e.wheelTimeoutID=0,s=1;const{container:h}=e;h&&(h.removeEventListener("contextmenu",Mr),h.removeEventListener("wheel",t.handleWheel),h.removeEventListener("DOMMouseScroll",t.handleWheel),h.removeEventListener("pointerenter",t.handlePointerEnter),h.removeEventListener("pointerleave",t.handlePointerLeave),h.removeEventListener("pointermove",t.handlePointerMove,{passive:!1}),h.removeEventListener("pointerdown",t.handlePointerDown,{passive:!1}),h.removeEventListener("pointerup",t.handlePointerUp),h.removeEventListener("pointercancel",t.handlePointerCancel)),document.removeEventListener("keypress",t.handleKeyPress),document.removeEventListener("keydown",t.handleKeyDown),document.removeEventListener("keyup",t.handleKeyUp),document.removeEventListener("pointerlockchange",t.handlePointerLockChange),a.clear()};t.unbindEvents=()=>{p(),n.setContainer(null)},t.handleKeyPress=h=>{const d=f(h);t.keyPressEvent(d)},t.handleKeyDown=h=>{const d=f(h);t.keyDownEvent(d)},t.handleKeyUp=h=>{const d=f(h);t.keyUpEvent(d)},t.handlePointerEnter=h=>{const d={...c(h),position:u(h),deviceType:l(h)};t.pointerEnterEvent(d),d.deviceType==="mouse"&&t.mouseEnterEvent(d)},t.handlePointerLeave=h=>{const d={...c(h),position:u(h),deviceType:l(h)};t.pointerLeaveEvent(d),d.deviceType==="mouse"&&t.mouseLeaveEvent(d)},t.handlePointerDown=h=>{if(!(h.button>2||t.isPointerLocked()))switch(e.preventDefaultOnPointerDown&&Mr(h),h.target.hasPointerCapture(h.pointerId)&&h.target.releasePointerCapture(h.pointerId),e.container.setPointerCapture(h.pointerId),a.has(h.pointerId)&&Ra("[RenderWindowInteractor] duplicate pointerId detected"),a.set(h.pointerId,{pointerId:h.pointerId,position:u(h)}),h.pointerType){case"pen":case"touch":t.handleTouchStart(h);break;case"mouse":default:t.handleMouseDown(h);break}},t.handlePointerUp=h=>{if(a.has(h.pointerId))switch(e.preventDefaultOnPointerUp&&Mr(h),a.delete(h.pointerId),e.container.releasePointerCapture(h.pointerId),h.pointerType){case"pen":case"touch":t.handleTouchEnd(h);break;case"mouse":default:t.handleMouseUp(h);break}},t.handlePointerCancel=h=>{if(a.has(h.pointerId))switch(a.delete(h.pointerId),h.pointerType){case"pen":case"touch":t.handleTouchEnd(h);break;case"mouse":default:t.handleMouseUp(h);break}},t.handlePointerMove=h=>{if(a.has(h.pointerId)){const d=a.get(h.pointerId);d.position=u(h)}switch(h.pointerType){case"pen":case"touch":t.handleTouchMove(h);break;case"mouse":default:t.handleMouseMove(h);break}},t.handleMouseDown=h=>{const d={...c(h),position:u(h),deviceType:l(h)};switch(h.button){case 0:t.leftButtonPressEvent(d);break;case 1:t.middleButtonPressEvent(d);break;case 2:t.rightButtonPressEvent(d);break;default:Oa(`Unknown mouse button pressed: ${h.button}`);break}},t.requestPointerLock=()=>{e.container&&e.container.requestPointerLock()},t.exitPointerLock=()=>{var h;return(h=document.exitPointerLock)==null?void 0:h.call(document)},t.isPointerLocked=()=>!!e.container&&document.pointerLockElement===e.container,t.handlePointerLockChange=()=>{t.isPointerLocked()?t.startPointerLockEvent():t.endPointerLockEvent()};function T(){e._view&&e.enabled&&e.enableRender&&(e.inRender=!0,e._view.traverseAllPasses(),e.inRender=!1),t.invokeRenderEvent()}t.requestAnimation=h=>{if(h===void 0){Oa("undefined requester, can not start animating");return}if(r.has(h)){Ra("requester is already registered for animating");return}r.add(h),!e.animationRequest&&r.size===1&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.extendAnimation=h=>{const d=Date.now()+h;e._animationExtendedEnd=Math.max(e._animationExtendedEnd,d),!e.animationRequest&&r.size===0&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.isAnimating=()=>e.xrAnimation||e.animationRequest!==null,t.cancelAnimation=function(h){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!r.has(h)){if(!d){const x=h&&h.getClassName?h.getClassName():h;Ra(`${x} did not request an animation`)}return}r.delete(h),e.animationRequest&&r.size===0&&Date.now()>e._animationExtendedEnd&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null,t.endAnimationEvent(),t.render())},t.switchToXRAnimation=()=>{e.animationRequest&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null),e.xrAnimation=!0},t.returnFromXRAnimation=()=>{e.xrAnimation=!1,r.size!==0&&(e.recentAnimationFrameRate=10,e.animationRequest=requestAnimationFrame(t.handleAnimation))},t.updateXRGamepads=(h,d,x)=>{h.inputSources.forEach(C=>{const y=C.gripSpace==null?null:d.getPose(C.gripSpace,x),v=C.gamepad,w=C.handedness;if(v){v.index in e.lastGamepadValues||(e.lastGamepadValues[v.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let S=0;S{const d={...c(h),position:u(h),deviceType:l(h)};e.moveTimeoutID===0?t.startMouseMoveEvent(d):(t.mouseMoveEvent(d),clearTimeout(e.moveTimeoutID)),e.moveTimeoutID=setTimeout(()=>{t.endMouseMoveEvent(),e.moveTimeoutID=0},200)},t.handleAnimation=()=>{const h=Date.now();e._animationFrameCount++,h-e._animationStartTime>1e3&&e._animationFrameCount>1&&(e.recentAnimationFrameRate=1e3*(e._animationFrameCount-1)/(h-e._animationStartTime),e.lastFrameTime=1/e.recentAnimationFrameRate,t.animationFrameRateUpdateEvent(),e._animationStartTime=h,e._animationFrameCount=1),t.animationEvent(),T(),r.size>0||Date.now(){Mr(h);const d={...SD(h),...c(h),position:u(h),deviceType:l(h)};e.wheelTimeoutID===0&&(Math.abs(d.spinY)>=.3?s=Math.abs(d.spinY):s=1),d.spinY/=s,e.wheelTimeoutID===0?(t.startMouseWheelEvent(d),t.mouseWheelEvent(d)):(t.mouseWheelEvent(d),clearTimeout(e.wheelTimeoutID)),e.mouseScrollDebounceByPass?(t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0):e.wheelTimeoutID=setTimeout(()=>{t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0},200)},t.handleMouseUp=h=>{const d={...c(h),position:u(h),deviceType:l(h)};switch(h.button){case 0:t.leftButtonReleaseEvent(d);break;case 1:t.middleButtonReleaseEvent(d);break;case 2:t.rightButtonReleaseEvent(d);break;default:Oa(`Unknown mouse button released: ${h.button}`);break}},t.handleTouchStart=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=Da(a);if(d.length===2){const C={...c(Jn),position:d[0].position,deviceType:l(h)};t.leftButtonReleaseEvent(C)}t.recognizeGesture("TouchStart",x)}else if(d.length===1){const x={...c(Jn),position:u(h),deviceType:l(h)};t.leftButtonPressEvent(x)}},t.handleTouchMove=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=Da(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(Jn),position:d[0].position,deviceType:l(h)};t.mouseMoveEvent(x)}},t.handleTouchEnd=h=>{const d=[...a.values()];if(e.recognizeGestures)if(d.length===0){const x={...c(Jn),position:u(h),deviceType:l(h)};t.leftButtonReleaseEvent(x)}else if(d.length===1){const x=Da(a);t.recognizeGesture("TouchEnd",x);const C={...c(Jn),position:d[0].position,deviceType:l(h)};t.leftButtonPressEvent(C)}else{const x=Da(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(Jn),position:d[0].position,deviceType:l(h)};t.leftButtonReleaseEvent(x)}},t.setView=h=>{e._view!==h&&(e._view=h,e._view.getRenderable().setInteractor(t),t.modified())},t.getFirstRenderer=()=>{var h,d,x;return(x=(d=(h=e._view)==null?void 0:h.getRenderable())==null?void 0:d.getRenderersByReference())==null?void 0:x[0]},t.findPokedRenderer=function(){var S,R;let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e._view)return null;const x=(R=(S=e._view)==null?void 0:S.getRenderable())==null?void 0:R.getRenderers();if(!x||x.length===0)return null;x.sort((M,m)=>M.getLayer()-m.getLayer());let C=null,y=null,v=null,w=x.length;for(;w--;){const M=x[w];if(e._view.isInViewport(h,d,M)&&M.getInteractive()){v=M;break}C===null&&M.getInteractive()&&(C=M),y===null&&e._view.isInViewport(h,d,M)&&(y=M)}return v===null&&(v=C),v===null&&(v=y),v==null&&(v=x[0]),v},t.render=()=>{!t.isAnimating()&&!e.inRender&&T()},po.forEach(h=>{const d=h.charAt(0).toLowerCase()+h.slice(1);t[`${d}Event`]=x=>{if(!e.enabled)return;if(!t.getCurrentRenderer()){CD(` Can not forward events without a current renderer on the interactor. `);return}const y={type:h,pokedRenderer:e.currentRenderer,firstRenderer:t.getFirstRenderer(),...x};t[`invoke${h}`](y)}}),t.recognizeGesture=(h,d)=>{if(Object.keys(d).length>2)return;if(e.startingEventPositions||(e.startingEventPositions={}),h==="TouchStart"){Object.keys(d).forEach(O=>{e.startingEventPositions[O]=d[O]}),e.currentGesture="Start";return}if(h==="TouchEnd"){e.currentGesture==="Pinch"&&(t.render(),t.endPinchEvent()),e.currentGesture==="Rotate"&&(t.render(),t.endRotateEvent()),e.currentGesture==="Pan"&&(t.render(),t.endPanEvent()),e.currentGesture="Start",e.startingEventPositions={};return}let x=0;const C=[],y=[];Object.keys(d).forEach(O=>{C[x]=d[O],y[x]=e.startingEventPositions[O],x++});const v=Math.sqrt((y[0].x-y[1].x)*(y[0].x-y[1].x)+(y[0].y-y[1].y)*(y[0].y-y[1].y)),w=Math.sqrt((C[0].x-C[1].x)*(C[0].x-C[1].x)+(C[0].y-C[1].y)*(C[0].y-C[1].y));let S=Ar(Math.atan2(y[1].y-y[0].y,y[1].x-y[0].x)),R=Ar(Math.atan2(C[1].y-C[0].y,C[1].x-C[0].x)),M=R-S;R=R+180>=360?R-180:R+180,S=S+180>=360?S-180:S+180,Math.abs(R-S)O&&V>B&&V>b){e.currentGesture="Pinch";const U={scale:1,touches:d};t.startPinchEvent(U)}else if(B>O&&B>b){e.currentGesture="Rotate";const U={rotation:0,touches:d};t.startRotateEvent(U)}else if(b>O){e.currentGesture="Pan";const U={translation:[0,0],touches:d};t.startPanEvent(U)}}else{if(e.currentGesture==="Rotate"){const O={rotation:M,touches:d};t.rotateEvent(O)}if(e.currentGesture==="Pinch"){const O={scale:w/v,touches:d};t.pinchEvent(O)}if(e.currentGesture==="Pan"){const O={translation:m,touches:d};t.panEvent(O)}}},t.handleVisibilityChange=()=>{e._animationStartTime=Date.now(),e._animationFrameCount=0},t.setCurrentRenderer=h=>{e._forcedRenderer=!!h,e.currentRenderer=h},t.setContainer=h=>{p();const d=n.setContainer(h??null);return d&&g(),d},t.delete=()=>{for(;r.size;)t.cancelAnimation(r.values().next().value);typeof document.hidden<"u"&&document.removeEventListener("visibilitychange",t.handleVisibilityChange),e.container&&t.setContainer(null),n.delete()},typeof document.hidden<"u"&&document.addEventListener("visibilitychange",t.handleVisibilityChange,!1)}const ED={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function Ug(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ED,n),E.obj(t,e),e._animationExtendedEnd=0,E.event(t,e,"RenderEvent"),po.forEach(r=>E.event(t,e,r)),E.get(t,e,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),E.setGet(t,e,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),E.moveToProtected(t,e,["view"]),wD(t,e)}const _D=E.newInstance(Ug,"vtkRenderWindowInteractor");var Ng={newInstance:_D,extend:Ug,handledEvents:po,...Fg};const{vtkErrorMacro:RD,VOID:OD}=E;function DD(t,e,n,r){return t.getRenderWindow().getViews()[0].worldToDisplay(e,n,r,t)}function MD(t,e,n,r){return t.getRenderWindow().getViews()[0].displayToWorld(e,n,r,t)}const VD={computeWorldToDisplay:DD,computeDisplayToWorld:MD};function mD(t,e){e.classHierarchy.push("vtkInteractorObserver");const n={...t};function r(){for(;e.subscribedEvents.length;)e.subscribedEvents.pop().unsubscribe()}function a(){Ng.handledEvents.forEach(s=>{t[`handle${s}`]&&e.subscribedEvents.push(e._interactor[`on${s}`](i=>e.processEvents?t[`handle${s}`](i):OD,e.priority))})}t.setInteractor=s=>{s!==e._interactor&&(r(),e._interactor=s,s&&e.enabled&&a(),t.modified())},t.setEnabled=s=>{s!==e.enabled&&(r(),s&&(e._interactor?a():RD(` The interactor must be set before subscribing to events `)),e.enabled=s,t.modified())},t.computeDisplayToWorld=(s,i,o,u)=>s?e._interactor.getView().displayToWorld(i,o,u,s):null,t.computeWorldToDisplay=(s,i,o,u)=>s?e._interactor.getView().worldToDisplay(i,o,u,s):null,t.setPriority=s=>{n.setPriority(s)&&e._interactor&&(r(),a())}}const LD={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function bg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,LD,n),E.obj(t,e),E.event(t,e,"InteractionEvent"),E.event(t,e,"StartInteractionEvent"),E.event(t,e,"EndInteractionEvent"),E.get(t,e,["_interactor","enabled"]),E.setGet(t,e,["priority","processEvents"]),E.moveToProtected(t,e,["interactor"]),mD(t,e)}const BD=E.newInstance(bg,"vtkInteractorObserver");var kD={newInstance:BD,extend:bg,...VD};const FD={IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025};var ho={States:FD};const{States:At}=ho,Ks={Rotate:At.IS_ROTATE,Pan:At.IS_PAN,Spin:At.IS_SPIN,Dolly:At.IS_DOLLY,CameraPose:At.IS_CAMERA_POSE,WindowLevel:At.IS_WINDOW_LEVEL,Slice:At.IS_SLICE};function UD(t,e){e.classHierarchy.push("vtkInteractorStyle"),Object.keys(Ks).forEach(n=>{E.event(t,e,`Start${n}Event`),t[`start${n}`]=()=>{e.state===At.IS_NONE&&(e.state=Ks[n],e._interactor.requestAnimation(t),t.invokeStartInteractionEvent({type:"StartInteractionEvent"}),t[`invokeStart${n}Event`]({type:`Start${n}Event`}))},E.event(t,e,`End${n}Event`),t[`end${n}`]=()=>{e.state===Ks[n]&&(e.state=At.IS_NONE,e._interactor.cancelAnimation(t),t.invokeEndInteractionEvent({type:"EndInteractionEvent"}),t[`invokeEnd${n}Event`]({type:`End${n}Event`}),e._interactor.render())}}),t.handleKeyPress=n=>{const r=e._interactor;let a=null;switch(n.key){case"r":case"R":n.pokedRenderer.resetCamera(),r.render();break;case"w":case"W":a=n.pokedRenderer.getActors(),a.forEach(s=>{const i=s.getProperty();i.setRepresentationToWireframe&&i.setRepresentationToWireframe()}),r.render();break;case"s":case"S":a=n.pokedRenderer.getActors(),a.forEach(s=>{const i=s.getProperty();i.setRepresentationToSurface&&i.setRepresentationToSurface()}),r.render();break;case"v":case"V":a=n.pokedRenderer.getActors(),a.forEach(s=>{const i=s.getProperty();i.setRepresentationToPoints&&i.setRepresentationToPoints()}),r.render();break}}}const ND={state:At.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Gg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ND,n),kD.extend(t,e,n),UD(t,e)}const bD=E.newInstance(Gg,"vtkInteractorStyle");var GD={newInstance:bD,extend:Gg,...ho};const{States:Gt}=ho;function $D(t,e){e.classHierarchy.push("vtkInteractorStyleTrackballCamera"),t.handleMouseMove=n=>{const r=n.position,a=n.pokedRenderer;switch(e.state){case Gt.IS_ROTATE:t.handleMouseRotate(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Gt.IS_PAN:t.handleMousePan(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Gt.IS_DOLLY:t.handleMouseDolly(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Gt.IS_SPIN:t.handleMouseSpin(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break}e.previousPosition=r},t.handleButton3D=n=>{if(n&&n.pressed&&n.device===Ci.RightController&&(n.input===kr.Trigger||n.input===kr.TrackPad)){t.startCameraPose();return}n&&!n.pressed&&n.device===Ci.RightController&&(n.input===kr.Trigger||n.input===kr.TrackPad)&&e.state===Gt.IS_CAMERA_POSE&&t.endCameraPose()},t.handleMove3D=n=>{switch(e.state){case Gt.IS_CAMERA_POSE:t.updateCameraPose(n);break}},t.updateCameraPose=n=>{const r=n.pokedRenderer.getActiveCamera(),a=r.getPhysicalTranslation(),i=.5*.05*r.getPhysicalScale(),o=r.physicalOrientationToWorldDirection([n.orientation.x,n.orientation.y,n.orientation.z,n.orientation.w]);r.setPhysicalTranslation(a[0]+o[0]*i,a[1]+o[1]*i,a[2]+o[2]*i)},t.handleLeftButtonPress=n=>{const r=n.position;e.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?t.startDolly():t.startPan():n.controlKey||n.altKey?t.startSpin():t.startRotate()},t.handleLeftButtonRelease=()=>{switch(e.state){case Gt.IS_DOLLY:t.endDolly();break;case Gt.IS_PAN:t.endPan();break;case Gt.IS_SPIN:t.endSpin();break;case Gt.IS_ROTATE:t.endRotate();break}},t.handleStartMouseWheel=()=>{t.startDolly()},t.handleEndMouseWheel=()=>{t.endDolly()},t.handleStartPinch=n=>{e.previousScale=n.scale,t.startDolly()},t.handleEndPinch=()=>{t.endDolly()},t.handleStartRotate=n=>{e.previousRotation=n.rotation,t.startRotate()},t.handleEndRotate=()=>{t.endRotate()},t.handleStartPan=n=>{e.previousTranslation=n.translation,t.startPan()},t.handleEndPan=()=>{t.endPan()},t.handlePinch=n=>{t.dollyByFactor(n.pokedRenderer,n.scale/e.previousScale),e.previousScale=n.scale},t.handlePan=n=>{const r=n.pokedRenderer.getActiveCamera();let a=r.getFocalPoint();a=t.computeWorldToDisplay(n.pokedRenderer,a[0],a[1],a[2]);const s=a[2],i=n.translation,o=e.previousTranslation,u=t.computeDisplayToWorld(n.pokedRenderer,a[0]+i[0]-o[0],a[1]+i[1]-o[1],s),c=t.computeDisplayToWorld(n.pokedRenderer,a[0],a[1],s),f=[];f[0]=c[0]-u[0],f[1]=c[1]-u[1],f[2]=c[2]-u[2],a=r.getFocalPoint();const l=r.getPosition();r.setFocalPoint(f[0]+a[0],f[1]+a[1],f[2]+a[2]),r.setPosition(f[0]+l[0],f[1]+l[1],f[2]+l[2]),e._interactor.getLightFollowCamera()&&n.pokedRenderer.updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),e.previousTranslation=n.translation},t.handleRotate=n=>{const r=n.pokedRenderer.getActiveCamera();r.roll(n.rotation-e.previousRotation),r.orthogonalizeViewUp(),e.previousRotation=n.rotation},t.handleMouseRotate=(n,r)=>{if(!e.previousPosition)return;const a=e._interactor,s=r.x-e.previousPosition.x,i=r.y-e.previousPosition.y,o=a.getView().getViewportSize(n);let u=-.1,c=-.1;o[0]&&o[1]&&(u=-20/o[1],c=-20/o[0]);const f=s*c*e.motionFactor,l=i*u*e.motionFactor,g=n.getActiveCamera();!Number.isNaN(f)&&!Number.isNaN(l)&&(g.azimuth(f),g.elevation(l),g.orthogonalizeViewUp()),e.autoAdjustCameraClippingRange&&n.resetCameraClippingRange(),a.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},t.handleMouseSpin=(n,r)=>{if(!e.previousPosition)return;const a=e._interactor,s=n.getActiveCamera(),i=a.getView().getViewportCenter(n),o=Ar(Math.atan2(e.previousPosition.y-i[1],e.previousPosition.x-i[0])),u=Ar(Math.atan2(r.y-i[1],r.x-i[0]))-o;Number.isNaN(u)||(s.roll(u),s.orthogonalizeViewUp())},t.handleMousePan=(n,r)=>{if(!e.previousPosition)return;const a=n.getActiveCamera();let s=a.getFocalPoint();s=t.computeWorldToDisplay(n,s[0],s[1],s[2]);const i=s[2],o=t.computeDisplayToWorld(n,r.x,r.y,i),u=t.computeDisplayToWorld(n,e.previousPosition.x,e.previousPosition.y,i),c=[];c[0]=u[0]-o[0],c[1]=u[1]-o[1],c[2]=u[2]-o[2],s=a.getFocalPoint();const f=a.getPosition();a.setFocalPoint(c[0]+s[0],c[1]+s[1],c[2]+s[2]),a.setPosition(c[0]+f[0],c[1]+f[1],c[2]+f[2]),e._interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},t.handleMouseDolly=(n,r)=>{if(!e.previousPosition)return;const a=r.y-e.previousPosition.y,i=e._interactor.getView().getViewportCenter(n),o=e.motionFactor*a/i[1];t.dollyByFactor(n,1.1**o)},t.handleMouseWheel=n=>{const r=1-n.spinY/e.zoomFactor;t.dollyByFactor(n.pokedRenderer,r)},t.dollyByFactor=(n,r)=>{if(Number.isNaN(r))return;const a=n.getActiveCamera();a.getParallelProjection()?a.setParallelScale(a.getParallelScale()/r):(a.dolly(r),e.autoAdjustCameraClippingRange&&n.resetCameraClippingRange()),e._interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()}}const WD={motionFactor:10,zoomFactor:10};function $g(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,WD,n),GD.extend(t,e,n),E.setGet(t,e,["motionFactor","zoomFactor"]),$D(t,e)}const zD=E.newInstance($g,"vtkInteractorStyleTrackballCamera");var AD={newInstance:zD,extend:$g};function HD(t){return t}function vo(t){if(t===null||t==="null")return null;if(t==="true")return!0;if(t==="false")return!1;if(!(t===void 0||t==="undefined"))return t[0]==="["&&t[t.length-1]==="]"?t.substring(1,t.length-1).split(",").map(e=>vo(e.trim())):t===""||Number.isNaN(Number(t))?t:Number(t)}function jD(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:window.location.search;const n={},r=t?vo:HD;return(e||"").replace(/#.*/,"").replace("?","").split("&").forEach(s=>{const[i,o]=s.split("=").map(u=>decodeURIComponent(u));i&&(n[i]=o?r(o):!0)}),n}var KD={toNativeType:vo,extractURLParameters:jD};function PD(t,e){e.classHierarchy.push("vtkFramebuffer"),t.getBothMode=()=>e.context.FRAMEBUFFER,t.saveCurrentBindingsAndBuffers=n=>{const r=typeof n<"u"?n:t.getBothMode();t.saveCurrentBindings(r),t.saveCurrentBuffers(r)},t.saveCurrentBindings=n=>{if(!e.context){ce("you must set the OpenGLRenderWindow before calling saveCurrentBindings");return}const r=e.context;e.previousDrawBinding=r.getParameter(e.context.FRAMEBUFFER_BINDING),e.previousActiveFramebuffer=e._openGLRenderWindow.getActiveFramebuffer()},t.saveCurrentBuffers=n=>{},t.restorePreviousBindingsAndBuffers=n=>{const r=typeof n<"u"?n:t.getBothMode();t.restorePreviousBindings(r),t.restorePreviousBuffers(r)},t.restorePreviousBindings=n=>{if(!e.context){ce("you must set the OpenGLRenderWindow before calling restorePreviousBindings");return}const r=e.context;r.bindFramebuffer(r.FRAMEBUFFER,e.previousDrawBinding),e._openGLRenderWindow.setActiveFramebuffer(e.previousActiveFramebuffer)},t.restorePreviousBuffers=n=>{},t.bind=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;r===null&&(r=e.context.FRAMEBUFFER),e.context.bindFramebuffer(r,e.glFramebuffer);for(let a=0;a{if(!e.context){ce("you must set the OpenGLRenderWindow before calling create");return}e.glFramebuffer=e.context.createFramebuffer(),e.glFramebuffer.width=n,e.glFramebuffer.height=r},t.setColorBuffer=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const a=e.context;if(!a){ce("you must set the OpenGLRenderWindow before calling setColorBuffer");return}let s=a.COLOR_ATTACHMENT0;if(r>0)if(e._openGLRenderWindow.getWebgl2())s+=r;else{ce("Using multiple framebuffer attachments requires WebGL 2");return}e.colorBuffers[r]=n,a.framebufferTexture2D(a.FRAMEBUFFER,s,a.TEXTURE_2D,n.getHandle(),0)},t.removeColorBuffer=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const r=e.context;if(!r){ce("you must set the OpenGLRenderWindow before calling removeColorBuffer");return}let a=r.COLOR_ATTACHMENT0;if(n>0)if(e._openGLRenderWindow.getWebgl2())a+=n;else{ce("Using multiple framebuffer attachments requires WebGL 2");return}r.framebufferTexture2D(r.FRAMEBUFFER,a,r.TEXTURE_2D,null,0),e.colorBuffers=e.colorBuffers.splice(n,1)},t.setDepthBuffer=n=>{if(!e.context){ce("you must set the OpenGLRenderWindow before calling setDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const r=e.context;r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,n.getHandle(),0)}else ce("Attaching depth buffer textures to fbo requires WebGL 2")},t.removeDepthBuffer=()=>{if(!e.context){ce("you must set the OpenGLRenderWindow before calling removeDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const n=e.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,null,0)}else ce("Attaching depth buffer textures to framebuffers requires WebGL 2")},t.getGLFramebuffer=()=>e.glFramebuffer,t.setOpenGLRenderWindow=n=>{e._openGLRenderWindow!==n&&(t.releaseGraphicsResources(),e._openGLRenderWindow=n,e.context=null,n&&(e.context=e._openGLRenderWindow.getContext()))},t.releaseGraphicsResources=()=>{e.glFramebuffer&&e.context.deleteFramebuffer(e.glFramebuffer)},t.getSize=()=>e.glFramebuffer==null?null:[e.glFramebuffer.width,e.glFramebuffer.height],t.populateFramebuffer=()=>{if(!e.context){ce("you must set the OpenGLRenderWindow before calling populateFrameBuffer");return}t.bind();const n=e.context,r=Wn.newInstance();r.setOpenGLRenderWindow(e._openGLRenderWindow),r.setMinificationFilter(Ti.LINEAR),r.setMagnificationFilter(Ti.LINEAR),r.create2DFromRaw(e.glFramebuffer.width,e.glFramebuffer.height,4,He.UNSIGNED_CHAR,null),t.setColorBuffer(r),e.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,e.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,e.glFramebuffer.width,e.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,e.depthTexture)},t.getColorTexture=()=>e.colorBuffers[0]}const XD={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Wg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,XD,n),Pe(t,e),e.colorBuffers&&ce("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),e.colorBuffers=[],xr(t,e,["colorBuffers"]),PD(t,e)}const ID=Ee(Wg,"vtkFramebuffer");var yo={newInstance:ID,extend:Wg};function YD(t,e){e.classHierarchy.push("vtkRenderPass"),t.getOperation=()=>e.currentOperation,t.setCurrentOperation=n=>{e.currentOperation=n,e.currentTraverseOperation=`traverse${E.capitalize(e.currentOperation)}`},t.getTraverseOperation=()=>e.currentTraverseOperation,t.traverse=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e.deleted||(e._currentParent=r,e.preDelegateOperations.forEach(a=>{t.setCurrentOperation(a),n.traverse(t)}),e.delegates.forEach(a=>{a.traverse(n,t)}),e.postDelegateOperations.forEach(a=>{t.setCurrentOperation(a),n.traverse(t)}))}}const qD={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function zg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qD,n),E.obj(t,e),E.get(t,e,["currentOperation"]),E.setGet(t,e,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),E.moveToProtected(t,e,["currentParent"]),YD(t,e)}const QD=E.newInstance(zg,"vtkRenderPass");var an={newInstance:QD,extend:zg};const{Representation:ZD}=Cr,{vtkErrorMacro:jc}=E;function JD(t){const e=z.substitute(t.Fragment,"//VTK::RenderPassFragmentShader::Impl",` float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0); gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a); gl_FragData[1].r = weight; `,!1);t.Fragment=e.result}const eM=`//VTK::System::Dec in vec2 tcoord; uniform sampler2D translucentRTexture; uniform sampler2D translucentRGBATexture; // the output of this shader //VTK::Output::Dec void main() { vec4 t1Color = texture(translucentRGBATexture, tcoord); float t2Color = texture(translucentRTexture, tcoord).r; gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a); } `;function tM(t,e){e.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),t.createVertexBuffer=()=>{const n=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),r=new Float32Array([0,0,1,0,0,1,1,1]),a=new Uint16Array([4,0,1,3,2]),s=Se.newInstance({numberOfComponents:3,values:n});s.setName("points");const i=Se.newInstance({numberOfComponents:2,values:r});i.setName("tcoords");const o=Se.newInstance({numberOfComponents:1,values:a});e.tris.getCABO().createVBO(o,"polys",ZD.SURFACE,{points:s,tcoords:i,cellOffset:0}),e.VBOBuildTime.modified()},t.createFramebuffer=n=>{const r=n.getSize(),a=n.getContext();e.framebuffer=yo.newInstance(),e.framebuffer.setOpenGLRenderWindow(n),e.framebuffer.create(...r),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind(),e.translucentRGBATexture=Wn.newInstance(),e.translucentRGBATexture.setInternalFormat(a.RGBA16F),e.translucentRGBATexture.setFormat(a.RGBA),e.translucentRGBATexture.setOpenGLDataType(a.HALF_FLOAT),e.translucentRGBATexture.setOpenGLRenderWindow(n),e.translucentRGBATexture.create2DFromRaw(r[0],r[1],4,"Float32Array",null),e.translucentRTexture=Wn.newInstance(),e.translucentRTexture.setInternalFormat(a.R16F),e.translucentRTexture.setFormat(a.RED),e.translucentRTexture.setOpenGLDataType(a.HALF_FLOAT),e.translucentRTexture.setOpenGLRenderWindow(n),e.translucentRTexture.create2DFromRaw(r[0],r[1],1,"Float32Array",null),e.translucentZTexture=Wn.newInstance(),e.translucentZTexture.setOpenGLRenderWindow(n),e.translucentZTexture.createDepthFromRaw(r[0],r[1],"Float32Array",null),e.framebuffer.setColorBuffer(e.translucentRGBATexture,0),e.framebuffer.setColorBuffer(e.translucentRTexture,1),e.framebuffer.setDepthBuffer(e.translucentZTexture)},t.createCopyShader=n=>{e.copyShader=n.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join(` `),eM,"")},t.createVBO=n=>{const r=n.getContext();e.tris.setOpenGLRenderWindow(n),t.createVertexBuffer();const a=e.copyShader;e.tris.getCABO().bind(),e.copyVAO.addAttributeArray(a,e.tris.getCABO(),"vertexDC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||jc("Error setting vertexDC in copy shader VAO."),e.copyVAO.addAttributeArray(a,e.tris.getCABO(),"tcoordTC",e.tris.getCABO().getTCoordOffset(),e.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||jc("Error setting vertexDC in copy shader VAO.")},t.traverse=(n,r,a)=>{if(e.deleted)return;const s=n.getSize(),i=n.getContext();if(e._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension("EXT_color_buffer_half_float")&&!i.getExtension("EXT_color_buffer_float")){t.setCurrentOperation("translucentPass"),r.traverse(t);return}if(e._supported=!0,e.framebuffer===null)t.createFramebuffer(n);else{const o=e.framebuffer.getSize();o===null||o[0]!==s[0]||o[1]!==s[1]?(e.framebuffer.releaseGraphicsResources(),e.translucentRGBATexture.releaseGraphicsResources(n),e.translucentRTexture.releaseGraphicsResources(n),e.translucentZTexture.releaseGraphicsResources(n),t.createFramebuffer(n)):(e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),a.getOpaqueActorCount()>0&&(a.setCurrentOperation("opaqueZBufferPass"),r.traverse(a)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,s[0],s[1]),i.scissor(0,0,s[0],s[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),t.setCurrentOperation("translucentPass"),r.traverse(t),i.drawBuffers([i.NONE]),e.framebuffer.restorePreviousBindingsAndBuffers(),e.copyShader===null?t.createCopyShader(n):n.getShaderCache().readyShaderProgram(e.copyShader),e.copyVAO||(e.copyVAO=Xl.newInstance(),e.copyVAO.setOpenGLRenderWindow(n)),e.copyVAO.bind(),e.VBOBuildTime.getMTime()e._supported?JD:null,t.releaseGraphicsResources=n=>{e.framebuffer&&(e.framebuffer.releaseGraphicsResources(n),e.framebuffer=null),e.translucentRGBATexture&&(e.translucentRGBATexture.releaseGraphicsResources(n),e.translucentRGBATexture=null),e.translucentRTexture&&(e.translucentRTexture.releaseGraphicsResources(n),e.translucentRTexture=null),e.translucentZTexture&&(e.translucentZTexture.releaseGraphicsResources(n),e.translucentZTexture=null),e.copyVAO&&(e.copyVAO.releaseGraphicsResources(n),e.copyVAO=null),e.copyShader&&(e.copyShader.releaseGraphicsResources(n),e.copyShader=null),e.tris&&(e.tris.releaseGraphicsResources(n),e.tris=null),t.modified()}}const nM={framebuffer:null,copyShader:null,tris:null};function Ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nM,n),an.extend(t,e,n),e.VBOBuildTime={},E.obj(e.VBOBuildTime,{mtime:0}),e.tris=wr.newInstance(),E.get(t,e,["framebuffer"]),tM(t,e)}const rM=E.newInstance(Ag,"vtkOpenGLOrderIndependentTranslucentPass");var aM={newInstance:rM,extend:Ag};function sM(t,e){e.classHierarchy.push("vtkForwardPass"),t.traverse=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(e.deleted)return;e._currentParent=r,t.setCurrentOperation("buildPass"),n.traverse(t);const a=n.getRenderable().getNumberOfLayers(),s=n.getChildren();for(let i=0;i0||e.translucentActorCount>0)&&e.volumeCount>0||e.depthRequested){const f=n.getFramebufferSize();e.framebuffer===null&&(e.framebuffer=yo.newInstance()),e.framebuffer.setOpenGLRenderWindow(n),e.framebuffer.saveCurrentBindingsAndBuffers();const l=e.framebuffer.getSize();(l===null||l[0]!==f[0]||l[1]!==f[1])&&(e.framebuffer.create(f[0],f[1]),e.framebuffer.populateFramebuffer()),e.framebuffer.bind(),t.setCurrentOperation("zBufferPass"),u.traverse(t),e.framebuffer.restorePreviousBindingsAndBuffers(),e.depthRequested=!1}t.setCurrentOperation("cameraPass"),u.traverse(t),e.opaqueActorCount>0&&(t.setCurrentOperation("opaquePass"),u.traverse(t)),e.translucentActorCount>0&&(e.translucentPass||(e.translucentPass=aM.newInstance()),e.translucentPass.traverse(n,u,t)),e.volumeCount>0&&(t.setCurrentOperation("volumePass"),u.traverse(t)),e.overlayActorCount>0&&(t.setCurrentOperation("overlayPass"),u.traverse(t))}}},t.getZBufferTexture=()=>e.framebuffer?e.framebuffer.getColorTexture():null,t.requestDepth=()=>{e.depthRequested=!0},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.incrementVolumeCount=()=>e.volumeCount++,t.incrementOverlayActorCount=()=>e.overlayActorCount++}const iM={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function Hg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iM,n),an.extend(t,e,n),E.get(t,e,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),sM(t,e)}const oM=E.newInstance(Hg,"vtkForwardPass");var cM={newInstance:oM,extend:Hg};const{FieldAssociations:uM}=Pn;function fM(t,e){e.classHierarchy.push("vtkHardwareSelector"),t.getSourceDataAsync=async(n,r,a,s,i)=>{},t.selectAsync=async(n,r,a,s,i)=>{const o=await t.getSourceDataAsync(n,r,a,s,i);return o?o.generateSelection(r,a,s,i):[]}}const lM={fieldAssociation:uM.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function jg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lM,n),E.obj(t,e),E.setGet(t,e,["fieldAssociation","captureZValues"]),fM(t,e)}const gM=E.newInstance(jg,"vtkHardwareSelector");var Kg={newInstance:gM,extend:jg};const pM={GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},hM={CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5};var dM={SelectionContent:pM,SelectionField:hM};function vM(t,e){e.classHierarchy.push("vtkSelectionNode"),t.getBounds=()=>e.points.getBounds()}const yM={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Pg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,yM,n),E.obj(t,e),e.properties={},E.setGet(t,e,["contentType","fieldType","properties","selectionList"]),vM(t,e)}const TM=E.newInstance(Pg,"vtkSelectionNode");var hs={newInstance:TM,extend:Pg,...dM};const{PassTypes:be}=wl,{SelectionContent:xM,SelectionField:Kc}=hs,{FieldAssociations:Nr}=Pn,{vtkErrorMacro:Xg}=E,yn=1;function Ig(t){return`${t.propID} ${t.compositeID}`}function Yg(t,e,n,r){if(!n)return 0;const a=(e*(r[2]-r[0]+1)+t)*4;return n[a+3]}function Zt(t,e,n,r){if(!n)return 0;const a=(e*(r[2]-r[0]+1)+t)*4,s=n[a],i=n[a+1];return(n[a+2]*256+i)*256+s}function qg(t,e){let n=e;return n<<=24,n|=t,n}function rr(t,e,n,r){const a=n<0?0:n;if(a===0){if(r[0]=e[0],r[1]=e[1],e[0]t.area[2]||e[1]t.area[3])return null;const u=[e[0]-t.area[0],e[1]-t.area[1]],c=Zt(u[0],u[1],t.pixBuffer[be.ACTOR_PASS],t.area);if(c<=0||c-yn>=t.props.length)return null;const f={};f.valid=!0,f.propID=c-yn,f.prop=t.props[f.propID];let l=Zt(u[0],u[1],t.pixBuffer[be.COMPOSITE_INDEX_PASS],t.area);if((l<0||l>16777215)&&(l=0),f.compositeID=l-yn,t.captureZValues){const T=(u[1]*(t.area[2]-t.area[0]+1)+u[0])*4;f.zValue=(256*t.zBuffer[T]+t.zBuffer[T+1])/65535,f.displayPosition=e}if(t.pixBuffer[be.ID_LOW24]&&Yg(u[0],u[1],t.pixBuffer[be.ID_LOW24],t.area)===0)return f;const g=Zt(u[0],u[1],t.pixBuffer[be.ID_LOW24],t.area),p=Zt(u[0],u[1],t.pixBuffer[be.ID_HIGH24],t.area);return f.attributeID=qg(g,p),f}const s=[e[0],e[1]],i=[0,0];let o=rr(t,e,0,r);if(o&&o.valid)return o;for(let u=1;uu?s[1]-u:0;c<=s[1]+u;++c)if(i[1]=c,s[0]>=u&&(i[0]=s[0]-u,o=rr(t,i,0,r),o&&o.valid)||(i[0]=s[0]+u,o=rr(t,i,0,r),o&&o.valid))return o;for(let c=s[0]>=u?s[0]-(u-1):0;c<=s[0]+(u-1);++c)if(i[0]=c,s[1]>=u&&(i[1]=s[1]-u,o=rr(t,i,0,r),o&&o.valid)||(i[1]=s[1]+u,o=rr(t,i,0,r),o&&o.valid))return o}return r[0]=e[0],r[1]=e[1],null}function Qg(t,e,n,r,a){const s=[];let i=0;return e.forEach((o,u)=>{const c=hs.newInstance();switch(c.setContentType(xM.INDICES),t){case Nr.FIELD_ASSOCIATION_CELLS:c.setFieldType(Kc.CELL);break;case Nr.FIELD_ASSOCIATION_POINTS:c.setFieldType(Kc.POINT);break;default:Xg("Unknown field association")}c.getProperties().propID=o.info.propID,c.getProperties().prop=o.info.prop,c.getProperties().compositeID=o.info.compositeID,c.getProperties().attributeID=o.info.attributeID,c.getProperties().pixelCount=o.pixelCount,n&&(c.getProperties().displayPosition=[o.info.displayPosition[0],o.info.displayPosition[1],o.info.zValue],c.getProperties().worldPosition=a.displayToWorld(o.info.displayPosition[0],o.info.displayPosition[1],o.info.zValue,r)),c.setSelectionList(o.attributeIDs),s[i]=c,i++}),s}function SM(t,e,n,r,a){const s=Math.floor(e),i=Math.floor(n),o=Math.floor(r),u=Math.floor(a),c=new Map,f=[0,0];for(let l=i;l<=u;l++)for(let g=s;g<=o;g++){const T=rr(t,[g,l],0,f);if(T&&T.valid){const h=Ig(T);if(!c.has(h))c.set(h,{info:T,pixelCount:1,attributeIDs:[T.attributeID]});else{const d=c.get(h);d.pixelCount++,t.captureZValues&&T.zValue{e.rawPixBuffer=[],e.pixBuffer=[],e.zBuffer=null},t.beginSelection=()=>{e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e.maxAttributeId=0;const r=e._openGLRenderWindow.getSize();if(!e.framebuffer)e.framebuffer=yo.newInstance(),e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.create(r[0],r[1]),e.framebuffer.populateFramebuffer();else{e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers();const a=e.framebuffer.getSize();!a||a[0]!==r[0]||a[1]!==r[1]?(e.framebuffer.create(r[0],r[1]),e.framebuffer.populateFramebuffer()):e.framebuffer.bind()}if(e._openGLRenderer.clear(),e._openGLRenderer.setSelector(t),e.hitProps={},e.propPixels={},e.props=[],t.releasePixBuffers(),e.fieldAssociation===Nr.FIELD_ASSOCIATION_POINTS){const a=e._openGLRenderWindow.getContext(),s=a.isEnabled(a.BLEND);a.disable(a.BLEND),e._openGLRenderWindow.traverseAllPasses(),s&&a.enable(a.BLEND)}},t.endSelection=()=>{e.hitProps={},e._openGLRenderer.setSelector(null),e.framebuffer.restorePreviousBindingsAndBuffers()},t.preCapturePass=()=>{const r=e._openGLRenderWindow.getContext();e.originalBlending=r.isEnabled(r.BLEND),r.disable(r.BLEND)},t.postCapturePass=()=>{const r=e._openGLRenderWindow.getContext();e.originalBlending&&r.enable(r.BLEND)},t.select=()=>{let r=null;return t.captureBuffers()&&(r=t.generateSelection(e.area[0],e.area[1],e.area[2],e.area[3]),t.releasePixBuffers()),r},t.getSourceDataAsync=async(r,a,s,i,o)=>{if(e._renderer=r,a===void 0){const c=e._openGLRenderWindow.getSize();t.setArea(0,0,c[0]-1,c[1]-1)}else t.setArea(a,s,i,o);if(!t.captureBuffers())return!1;const u={area:[...e.area],pixBuffer:[...e.pixBuffer],captureZValues:e.captureZValues,zBuffer:e.zBuffer,props:[...e.props],fieldAssociation:e.fieldAssociation,renderer:r,openGLRenderWindow:e._openGLRenderWindow};return u.generateSelection=function(){for(var c=arguments.length,f=new Array(c),l=0;l{if(!e._renderer||!e._openGLRenderWindow)return Xg("Renderer and view must be set before calling Select."),!1;e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e._openGLRenderWindow.getRenderable().preRender(),t.invokeEvent({type:"StartEvent"}),e.originalBackground=e._renderer.getBackgroundByReference(),e._renderer.setBackground(0,0,0,0);const r=e._openGLRenderWindow.getRenderPasses();for(t.beginSelection(),e.currentPass=be.MIN_KNOWN_PASS;e.currentPass<=be.MAX_KNOWN_PASS;e.currentPass++)t.passRequired(e.currentPass)&&(t.preCapturePass(e.currentPass),e.captureZValues&&e.currentPass===be.ACTOR_PASS&&typeof r[0].requestDepth=="function"&&typeof r[0].getFramebuffer=="function"&&r[0].requestDepth(),e._openGLRenderWindow.traverseAllPasses(),t.postCapturePass(e.currentPass),t.savePixelBuffer(e.currentPass),t.processPixelBuffers());return t.endSelection(),e._renderer.setBackground(e.originalBackground),t.invokeEvent({type:"EndEvent"}),!0},t.processPixelBuffers=()=>{e.props.forEach((r,a)=>{t.isPropHit(a)&&r.processSelectorPixelBuffers(t,e.propPixels[a])})},t.passRequired=r=>{if(r===be.ID_HIGH24){if(e.fieldAssociation===Nr.FIELD_ASSOCIATION_POINTS)return e.maximumPointId>16777215;if(e.fieldAssociation===Nr.FIELD_ASSOCIATION_CELLS)return e.maximumCellId>16777215}return!0},t.savePixelBuffer=r=>{if(e.pixBuffer[r]=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),!e.rawPixBuffer[r]){const a=(e.area[2]-e.area[0]+1)*(e.area[3]-e.area[1]+1)*4;e.rawPixBuffer[r]=new Uint8Array(a),e.rawPixBuffer[r].set(e.pixBuffer[r])}if(r===be.ACTOR_PASS){if(e.captureZValues){const a=e._openGLRenderWindow.getRenderPasses();if(typeof a[0].requestDepth=="function"&&typeof a[0].getFramebuffer=="function"){const s=a[0].getFramebuffer();s.saveCurrentBindingsAndBuffers(),s.bind(),e.zBuffer=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),s.restorePreviousBindingsAndBuffers()}}t.buildPropHitList(e.rawPixBuffer[r])}},t.buildPropHitList=r=>{let a=0;for(let s=0;s<=e.area[3]-e.area[1];s++)for(let i=0;i<=e.area[2]-e.area[0];i++){let o=Zt(i,s,r,e.area);o>0&&(o--,o in e.hitProps||(e.hitProps[o]=!0,e.propPixels[o]=[]),e.propPixels[o].push(a*4)),++a}},t.renderProp=r=>{e.currentPass===be.ACTOR_PASS&&(t.setPropColorValueFromInt(e.props.length+yn),e.props.push(r))},t.renderCompositeIndex=r=>{e.currentPass===be.COMPOSITE_INDEX_PASS&&t.setPropColorValueFromInt(r+yn)},t.renderAttributeId=r=>{r<0||(e.maxAttributeId=r>e.maxAttributeId?r:e.maxAttributeId)},t.passTypeToString=r=>E.enumToString(be,r),t.isPropHit=r=>!!e.hitProps[r],t.setPropColorValueFromInt=r=>{e.propColorValue[0]=r%256/255,e.propColorValue[1]=Math.floor(r/256)%256/255,e.propColorValue[2]=Math.floor(r/65536)%256/255},t.getPixelInformation=(r,a,s)=>{const i=a<0?0:a;if(i===0){if(s[0]=r[0],s[1]=r[1],r[0]e.area[2]||r[1]e.area[3])return null;const f=[r[0]-e.area[0],r[1]-e.area[1]],l=Zt(f[0],f[1],e.pixBuffer[be.ACTOR_PASS],e.area);if(l<=0||l-yn>=e.props.length)return null;const g={};g.valid=!0,g.propID=l-yn,g.prop=e.props[g.propID];let p=Zt(f[0],f[1],e.pixBuffer[be.COMPOSITE_INDEX_PASS],e.area);if((p<0||p>16777215)&&(p=0),g.compositeID=p-yn,e.captureZValues){const d=(f[1]*(e.area[2]-e.area[0]+1)+f[0])*4;g.zValue=(256*e.zBuffer[d]+e.zBuffer[d+1])/65535,g.displayPosition=r}if(e.pixBuffer[be.ID_LOW24]&&Yg(f[0],f[1],e.pixBuffer[be.ID_LOW24],e.area)===0)return g;const T=Zt(f[0],f[1],e.pixBuffer[be.ID_LOW24],e.area),h=Zt(f[0],f[1],e.pixBuffer[be.ID_HIGH24],e.area);return g.attributeID=qg(T,h),g}const o=[r[0],r[1]],u=[0,0];let c=t.getPixelInformation(r,0,s);if(c&&c.valid)return c;for(let f=1;ff?o[1]-f:0;l<=o[1]+f;++l)if(u[1]=l,o[0]>=f&&(u[0]=o[0]-f,c=t.getPixelInformation(u,0,s),c&&c.valid)||(u[0]=o[0]+f,c=t.getPixelInformation(u,0,s),c&&c.valid))return c;for(let l=o[0]>=f?o[0]-(f-1):0;l<=o[0]+(f-1);++l)if(u[0]=l,o[1]>=f&&(u[1]=o[1]-f,c=t.getPixelInformation(u,0,s),c&&c.valid)||(u[1]=o[1]+f,c=t.getPixelInformation(u,0,s),c&&c.valid))return c}return s[0]=r[0],s[1]=r[1],null},t.generateSelection=(r,a,s,i)=>{const o=Math.floor(r),u=Math.floor(a),c=Math.floor(s),f=Math.floor(i),l=new Map,g=[0,0];for(let p=u;p<=f;p++)for(let T=o;T<=c;T++){const h=[T,p],d=t.getPixelInformation(h,0,g);if(d&&d.valid){const x=Ig(d);if(!l.has(x))l.set(x,{info:d,pixelCount:1,attributeIDs:[d.attributeID]});else{const C=l.get(x);C.pixelCount++,e.captureZValues&&d.zValuee.rawPixBuffer[r],t.getPixelBuffer=r=>e.pixBuffer[r],t.attach=(r,a)=>{e._openGLRenderWindow=r,e._renderer=a};const n=t.setArea;t.setArea=function(){return n(...arguments)?(e.area[0]=Math.floor(e.area[0]),e.area[1]=Math.floor(e.area[1]),e.area[2]=Math.floor(e.area[2]),e.area[3]=Math.floor(e.area[3]),!0):!1}}const wM={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function Zg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wM,n),Kg.extend(t,e,n),e.propColorValue=[0,0,0],e.props=[],e.area||(e.area=[0,0,0,0]),E.setGetArray(t,e,["area"],4),E.setGet(t,e,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),E.setGetArray(t,e,["propColorValue"],3),E.moveToProtected(t,e,["renderer","openGLRenderWindow"]),E.event(t,e,"event"),CM(t,e)}const EM=E.newInstance(Zg,"vtkOpenGLHardwareSelector");var Jg={newInstance:EM,extend:Zg,...wl},e0={exports:{}};(function(t,e){(function(n){t.exports=n()})(function(n){var r=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function a(x,C){var y=x[0],v=x[1],w=x[2],S=x[3];y+=(v&w|~v&S)+C[0]-680876936|0,y=(y<<7|y>>>25)+v|0,S+=(y&v|~y&w)+C[1]-389564586|0,S=(S<<12|S>>>20)+y|0,w+=(S&y|~S&v)+C[2]+606105819|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&y)+C[3]-1044525330|0,v=(v<<22|v>>>10)+w|0,y+=(v&w|~v&S)+C[4]-176418897|0,y=(y<<7|y>>>25)+v|0,S+=(y&v|~y&w)+C[5]+1200080426|0,S=(S<<12|S>>>20)+y|0,w+=(S&y|~S&v)+C[6]-1473231341|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&y)+C[7]-45705983|0,v=(v<<22|v>>>10)+w|0,y+=(v&w|~v&S)+C[8]+1770035416|0,y=(y<<7|y>>>25)+v|0,S+=(y&v|~y&w)+C[9]-1958414417|0,S=(S<<12|S>>>20)+y|0,w+=(S&y|~S&v)+C[10]-42063|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&y)+C[11]-1990404162|0,v=(v<<22|v>>>10)+w|0,y+=(v&w|~v&S)+C[12]+1804603682|0,y=(y<<7|y>>>25)+v|0,S+=(y&v|~y&w)+C[13]-40341101|0,S=(S<<12|S>>>20)+y|0,w+=(S&y|~S&v)+C[14]-1502002290|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&y)+C[15]+1236535329|0,v=(v<<22|v>>>10)+w|0,y+=(v&S|w&~S)+C[1]-165796510|0,y=(y<<5|y>>>27)+v|0,S+=(y&w|v&~w)+C[6]-1069501632|0,S=(S<<9|S>>>23)+y|0,w+=(S&v|y&~v)+C[11]+643717713|0,w=(w<<14|w>>>18)+S|0,v+=(w&y|S&~y)+C[0]-373897302|0,v=(v<<20|v>>>12)+w|0,y+=(v&S|w&~S)+C[5]-701558691|0,y=(y<<5|y>>>27)+v|0,S+=(y&w|v&~w)+C[10]+38016083|0,S=(S<<9|S>>>23)+y|0,w+=(S&v|y&~v)+C[15]-660478335|0,w=(w<<14|w>>>18)+S|0,v+=(w&y|S&~y)+C[4]-405537848|0,v=(v<<20|v>>>12)+w|0,y+=(v&S|w&~S)+C[9]+568446438|0,y=(y<<5|y>>>27)+v|0,S+=(y&w|v&~w)+C[14]-1019803690|0,S=(S<<9|S>>>23)+y|0,w+=(S&v|y&~v)+C[3]-187363961|0,w=(w<<14|w>>>18)+S|0,v+=(w&y|S&~y)+C[8]+1163531501|0,v=(v<<20|v>>>12)+w|0,y+=(v&S|w&~S)+C[13]-1444681467|0,y=(y<<5|y>>>27)+v|0,S+=(y&w|v&~w)+C[2]-51403784|0,S=(S<<9|S>>>23)+y|0,w+=(S&v|y&~v)+C[7]+1735328473|0,w=(w<<14|w>>>18)+S|0,v+=(w&y|S&~y)+C[12]-1926607734|0,v=(v<<20|v>>>12)+w|0,y+=(v^w^S)+C[5]-378558|0,y=(y<<4|y>>>28)+v|0,S+=(y^v^w)+C[8]-2022574463|0,S=(S<<11|S>>>21)+y|0,w+=(S^y^v)+C[11]+1839030562|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^y)+C[14]-35309556|0,v=(v<<23|v>>>9)+w|0,y+=(v^w^S)+C[1]-1530992060|0,y=(y<<4|y>>>28)+v|0,S+=(y^v^w)+C[4]+1272893353|0,S=(S<<11|S>>>21)+y|0,w+=(S^y^v)+C[7]-155497632|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^y)+C[10]-1094730640|0,v=(v<<23|v>>>9)+w|0,y+=(v^w^S)+C[13]+681279174|0,y=(y<<4|y>>>28)+v|0,S+=(y^v^w)+C[0]-358537222|0,S=(S<<11|S>>>21)+y|0,w+=(S^y^v)+C[3]-722521979|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^y)+C[6]+76029189|0,v=(v<<23|v>>>9)+w|0,y+=(v^w^S)+C[9]-640364487|0,y=(y<<4|y>>>28)+v|0,S+=(y^v^w)+C[12]-421815835|0,S=(S<<11|S>>>21)+y|0,w+=(S^y^v)+C[15]+530742520|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^y)+C[2]-995338651|0,v=(v<<23|v>>>9)+w|0,y+=(w^(v|~S))+C[0]-198630844|0,y=(y<<6|y>>>26)+v|0,S+=(v^(y|~w))+C[7]+1126891415|0,S=(S<<10|S>>>22)+y|0,w+=(y^(S|~v))+C[14]-1416354905|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~y))+C[5]-57434055|0,v=(v<<21|v>>>11)+w|0,y+=(w^(v|~S))+C[12]+1700485571|0,y=(y<<6|y>>>26)+v|0,S+=(v^(y|~w))+C[3]-1894986606|0,S=(S<<10|S>>>22)+y|0,w+=(y^(S|~v))+C[10]-1051523|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~y))+C[1]-2054922799|0,v=(v<<21|v>>>11)+w|0,y+=(w^(v|~S))+C[8]+1873313359|0,y=(y<<6|y>>>26)+v|0,S+=(v^(y|~w))+C[15]-30611744|0,S=(S<<10|S>>>22)+y|0,w+=(y^(S|~v))+C[6]-1560198380|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~y))+C[13]+1309151649|0,v=(v<<21|v>>>11)+w|0,y+=(w^(v|~S))+C[4]-145523070|0,y=(y<<6|y>>>26)+v|0,S+=(v^(y|~w))+C[11]-1120210379|0,S=(S<<10|S>>>22)+y|0,w+=(y^(S|~v))+C[2]+718787259|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~y))+C[9]-343485551|0,v=(v<<21|v>>>11)+w|0,x[0]=y+x[0]|0,x[1]=v+x[1]|0,x[2]=w+x[2]|0,x[3]=S+x[3]|0}function s(x){var C=[],y;for(y=0;y<64;y+=4)C[y>>2]=x.charCodeAt(y)+(x.charCodeAt(y+1)<<8)+(x.charCodeAt(y+2)<<16)+(x.charCodeAt(y+3)<<24);return C}function i(x){var C=[],y;for(y=0;y<64;y+=4)C[y>>2]=x[y]+(x[y+1]<<8)+(x[y+2]<<16)+(x[y+3]<<24);return C}function o(x){var C=x.length,y=[1732584193,-271733879,-1732584194,271733878],v,w,S,R,M,m;for(v=64;v<=C;v+=64)a(y,s(x.substring(v-64,v)));for(x=x.substring(v-64),w=x.length,S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],v=0;v>2]|=x.charCodeAt(v)<<(v%4<<3);if(S[v>>2]|=128<<(v%4<<3),v>55)for(a(y,S),v=0;v<16;v+=1)S[v]=0;return R=C*8,R=R.toString(16).match(/(.*?)(.{0,8})$/),M=parseInt(R[2],16),m=parseInt(R[1],16)||0,S[14]=M,S[15]=m,a(y,S),y}function u(x){var C=x.length,y=[1732584193,-271733879,-1732584194,271733878],v,w,S,R,M,m;for(v=64;v<=C;v+=64)a(y,i(x.subarray(v-64,v)));for(x=v-64>2]|=x[v]<<(v%4<<3);if(S[v>>2]|=128<<(v%4<<3),v>55)for(a(y,S),v=0;v<16;v+=1)S[v]=0;return R=C*8,R=R.toString(16).match(/(.*?)(.{0,8})$/),M=parseInt(R[2],16),m=parseInt(R[1],16)||0,S[14]=M,S[15]=m,a(y,S),y}function c(x){var C="",y;for(y=0;y<4;y+=1)C+=r[x>>y*8+4&15]+r[x>>y*8&15];return C}function f(x){var C;for(C=0;CS?new ArrayBuffer(0):(R=S-w,M=new ArrayBuffer(R),m=new Uint8Array(M),O=new Uint8Array(this,w,R),m.set(O),M)}}();function l(x){return/[\u0080-\uFFFF]/.test(x)&&(x=unescape(encodeURIComponent(x))),x}function g(x,C){var y=x.length,v=new ArrayBuffer(y),w=new Uint8Array(v),S;for(S=0;S>2]|=C.charCodeAt(v)<<(v%4<<3);return this._finish(w,y),S=f(this._hash),x&&(S=h(S)),this.reset(),S},d.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},d.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},d.prototype.setState=function(x){return this._buff=x.buff,this._length=x.length,this._hash=x.hash,this},d.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},d.prototype._finish=function(x,C){var y=C,v,w,S;if(x[y>>2]|=128<<(y%4<<3),y>55)for(a(this._hash,x),y=0;y<16;y+=1)x[y]=0;v=this._length*8,v=v.toString(16).match(/(.*?)(.{0,8})$/),w=parseInt(v[2],16),S=parseInt(v[1],16)||0,x[14]=w,x[15]=S,a(this._hash,x)},d.hash=function(x,C){return d.hashBinary(l(x),C)},d.hashBinary=function(x,C){var y=o(x),v=f(y);return C?h(v):v},d.ArrayBuffer=function(){this.reset()},d.ArrayBuffer.prototype.append=function(x){var C=T(this._buff.buffer,x,!0),y=C.length,v;for(this._length+=x.byteLength,v=64;v<=y;v+=64)a(this._hash,i(C.subarray(v-64,v)));return this._buff=v-64>2]|=C[w]<<(w%4<<3);return this._finish(v,y),S=f(this._hash),x&&(S=h(S)),this.reset(),S},d.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},d.ArrayBuffer.prototype.getState=function(){var x=d.prototype.getState.call(this);return x.buff=p(x.buff),x},d.ArrayBuffer.prototype.setState=function(x){return x.buff=g(x.buff,!0),d.prototype.setState.call(this,x)},d.ArrayBuffer.prototype.destroy=d.prototype.destroy,d.ArrayBuffer.prototype._finish=d.prototype._finish,d.ArrayBuffer.hash=function(x,C){var y=u(new Uint8Array(x)),v=f(y);return C?h(v):v},d})})(e0);var _M=e0.exports;const RM=wi(_M),OM=["lastShaderProgramBound","context","_openGLRenderWindow"];function DM(t,e){e.classHierarchy.push("vtkShaderCache"),t.replaceShaderValues=(n,r,a)=>{let s=r;a.length>0&&(s=z.substitute(s,"VSOut","GSOut").result);const i=e._openGLRenderWindow.getWebgl2();let o=` `,u=`#version 100 `;i?u=`#version 300 es #define attribute in #define textureCube texture #define texture2D texture #define textureCubeLod textureLod #define texture2DLod textureLod `:(e.context.getExtension("OES_standard_derivatives"),e.context.getExtension("EXT_frag_depth")&&(o=`#extension GL_EXT_frag_depth : enable `),e.context.getExtension("EXT_shader_texture_lod")&&(o+=`#extension GL_EXT_shader_texture_lod : enable #define textureCubeLod textureCubeLodEXT #define texture2DLod texture2DLodEXT`)),s=z.substitute(s,"//VTK::System::Dec",[`${u} `,i?"":`#extension GL_OES_standard_derivatives : enable `,o,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;let c=z.substitute(n,"//VTK::System::Dec",[`${u} `,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(i){c=z.substitute(c,"varying","out").result,s=z.substitute(s,"varying","in").result;let l="",g=0;for(;s.includes(`gl_FragData[${g}]`);)s=z.substitute(s,`gl_FragData\\[${g}\\]`,`fragOutput${g}`).result,l+=`layout(location = ${g}) out vec4 fragOutput${g}; `,g++;s=z.substitute(s,"//VTK::Output::Dec",l).result}const f=z.substitute(a,"//VTK::System::Dec",u).result;return{VSSource:c,FSSource:s,GSSource:f}},t.readyShaderProgramArray=(n,r,a)=>{const s=t.replaceShaderValues(n,r,a),i=t.getShaderProgram(s.VSSource,s.FSSource,s.GSSource);return t.readyShaderProgram(i)},t.readyShaderProgram=n=>!n||!n.getCompiled()&&!n.compileShader()||!t.bindShaderProgram(n)?null:n,t.getShaderProgram=(n,r,a)=>{const s=`${n}${r}${a}`,i=RM.hash(s);if(!(i in e.shaderPrograms)){const o=z.newInstance();return o.setContext(e.context),o.getVertexShader().setSource(n),o.getFragmentShader().setSource(r),a&&o.getGeometryShader().setSource(a),o.setMd5Hash(i),e.shaderPrograms[i]=o,o}return e.shaderPrograms[i]},t.releaseGraphicsResources=n=>{t.releaseCurrentShaderProgram(),Object.keys(e.shaderPrograms).map(r=>e.shaderPrograms[r]).forEach(r=>r.cleanup()),e.shaderPrograms={}},t.releaseCurrentShaderProgram=()=>{e.lastShaderProgramBound&&(e.lastShaderProgramBound.cleanup(),e.lastShaderProgramBound=null)},t.bindShaderProgram=n=>(e.lastShaderProgramBound===n||(e.lastShaderProgramBound&&e.lastShaderProgramBound.release(),n.bind(),e.lastShaderProgramBound=n),1)}const MM={lastShaderProgramBound:null,shaderPrograms:null,context:null};function t0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,MM,n),e.shaderPrograms={},E.obj(t,e),E.setGet(t,e,OM),E.moveToProtected(t,e,["openGLRenderWindow"]),DM(t,e)}const VM=E.newInstance(t0,"vtkShaderCache");var mM={newInstance:VM,extend:t0};const{vtkErrorMacro:LM}=E;function BM(t,e){e.classHierarchy.push("vtkOpenGLTextureUnitManager"),t.deleteTable=()=>{for(let n=0;n{if(e.context!==n){if(e.context!==0&&t.deleteTable(),e.context=n,e.context){e.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let r=0;r{for(let n=0;nt.isAllocated(n)?-1:(e.textureUnits[n]=!0,n),t.isAllocated=n=>e.textureUnits[n],t.free=n=>{e.textureUnits[n]=!1},t.freeAll=()=>{for(let n=0;n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kM,n),E.obj(t,e),e.textureUnits=[],E.get(t,e,["numberOfTextureUnits"]),E.setGet(t,e,["context"]),BM(t,e)}const FM=E.newInstance(n0,"vtkOpenGLTextureUnitManager");var UM={newInstance:FM,extend:n0};function NM(t,e){e.classHierarchy.push("vtkRenderWindowViewNode"),t.getViewNodeFactory=()=>null,t.getAspectRatio=()=>e.size[0]/e.size[1],t.getAspectRatioForRenderer=n=>{const r=n.getViewportByReference();return e.size[0]*(r[2]-r[0])/((r[3]-r[1])*e.size[1])},t.isInViewport=(n,r,a)=>{const s=a.getViewportByReference(),i=t.getFramebufferSize();return s[0]*i[0]<=n&&s[2]*i[0]>=n&&s[1]*i[1]<=r&&s[3]*i[1]>=r},t.getViewportSize=n=>{const r=n.getViewportByReference(),a=t.getFramebufferSize();return[(r[2]-r[0])*a[0],(r[3]-r[1])*a[1]]},t.getViewportCenter=n=>{const r=t.getViewportSize(n);return[r[0]*.5,r[1]*.5]},t.displayToNormalizedDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n/s[0],r/s[1],a]},t.normalizedDisplayToDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n*s[0],r*s[1],a]},t.worldToView=(n,r,a,s)=>s.worldToView(n,r,a),t.viewToWorld=(n,r,a,s)=>s.viewToWorld(n,r,a),t.worldToDisplay=(n,r,a,s)=>{const i=s.worldToView(n,r,a),o=t.getViewportSize(s),u=s.viewToProjection(i[0],i[1],i[2],o[0]/o[1]),c=s.projectionToNormalizedDisplay(u[0],u[1],u[2]);return t.normalizedDisplayToDisplay(c[0],c[1],c[2])},t.displayToWorld=(n,r,a,s)=>{const i=t.displayToNormalizedDisplay(n,r,a),o=s.normalizedDisplayToProjection(i[0],i[1],i[2]),u=t.getViewportSize(s),c=s.projectionToView(o[0],o[1],o[2],u[0]/u[1]);return s.viewToWorld(c[0],c[1],c[2])},t.normalizedDisplayToViewport=(n,r,a,s)=>{let i=s.getViewportByReference();i=t.normalizedDisplayToDisplay(i[0],i[1],0);const o=t.normalizedDisplayToDisplay(n,r,a);return[o[0]-i[0]-.5,o[1]-i[1]-.5,a]},t.viewportToNormalizedViewport=(n,r,a,s)=>{const i=t.getViewportSize(s);return i&&i[0]!==0&&i[1]!==0?[n/(i[0]-1),r/(i[1]-1),a]:[n,r,a]},t.normalizedViewportToViewport=(n,r,a,s)=>{const i=t.getViewportSize(s);return[n*(i[0]-1),r*(i[1]-1),a]},t.displayToLocalDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n,s[1]-r-1,a]},t.viewportToNormalizedDisplay=(n,r,a,s)=>{let i=s.getViewportByReference();i=t.normalizedDisplayToDisplay(i[0],i[1],0);const o=n+i[0]+.5,u=r+i[1]+.5;return t.displayToNormalizedDisplay(o,u,a)},t.getComputedDevicePixelRatio=()=>e.size[0]/t.getContainerSize()[0],t.getContainerSize=()=>{E.vtkErrorMacro("not implemented")},t.getPixelData=(n,r,a,s)=>{E.vtkErrorMacro("not implemented")},t.createSelector=()=>{E.vtkErrorMacro("not implemented")}}const bM={size:void 0,selector:void 0};function r0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bM,n),e.size||(e.size=[300,300]),E.getArray(t,e,["size"],2),E.get(t,e,["selector"]),Be.extend(t,e,n),NM(t,e)}const GM=E.newInstance(r0,"vtkRenderWindowViewNode");var a0={newInstance:GM,extend:r0};const $M="__getUnderlyingContext";function WM(){const t=new Map,e={apply(a,s,i){return t.has(i[0])?t.get(i[0]):a.apply(s,i)}};function n(a){return{apply(s,i,o){return t.set(a,o[0]),s.apply(i,o)}}}const r=Object.create(null);return r.getParameter=(a,s,i,o)=>new Proxy(o.bind(a),e),r.depthMask=(a,s,i,o)=>new Proxy(o.bind(a),n(a.DEPTH_WRITEMASK)),{get(a,s,i){if(s===$M)return()=>a;let o=Reflect.get(a,s,a);o instanceof Function&&(o=o.bind(a));const u=r[s];return u?u(a,s,i,o):o}}}const{vtkDebugMacro:Pc,vtkErrorMacro:Xc}=E,zM={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function et(t,e,n){const r=t.createFramebuffer(),a=t.createTexture();t.bindTexture(t.TEXTURE_2D,a),t.texImage2D(t.TEXTURE_2D,0,e,2,2,0,e,n,null),t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,a,0);const s=t.checkFramebufferStatus(t.FRAMEBUFFER);return t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindTexture(t.TEXTURE_2D,null),s===t.FRAMEBUFFER_COMPLETE}let ss=0;const s0=[];function AM(){ss++,s0.forEach(t=>t(ss))}function HM(){ss--,s0.forEach(t=>t(ss))}function Ic(t){t.preventDefault()}function jM(t,e){e.classHierarchy.push("vtkOpenGLRenderWindow");const n=WM();t.getViewNodeFactory=()=>e.myFactory,e.canvas.addEventListener("webglcontextlost",Ic,!1),e.canvas.addEventListener("webglcontextrestored",t.restoreContext,!1);const r=[0,0];function a(){e.renderable&&(e.size[0]!==r[0]||e.size[1]!==r[1])&&(r[0]=e.size[0],r[1]=e.size[1],e.canvas.setAttribute("width",e.size[0]),e.canvas.setAttribute("height",e.size[1])),e.viewStream&&e.viewStream.setSize(e.size[0],e.size[1]),e.canvas.style.display=e.useOffScreen?"none":"block",e.el&&(e.el.style.cursor=e.cursorVisibility?e.cursor:"none"),e.containerSize=null}t.onModified(a),t.buildPass=c=>{if(c){if(!e.renderable)return;t.prepareNodes(),t.addMissingNodes(e.renderable.getRenderersByReference()),t.removeUnusedNodes(),t.initialize(),e.children.forEach(f=>{f.setOpenGLRenderWindow(t)})}},t.initialize=()=>{if(!e.initialized){e.context=t.get3DContext(),e.textureUnitManager=UM.newInstance(),e.textureUnitManager.setContext(e.context),e.shaderCache.setContext(e.context);const c=e.context;c.blendFuncSeparate(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA),c.depthFunc(c.LEQUAL),c.enable(c.BLEND),e.initialized=!0}},t.makeCurrent=()=>{e.context.makeCurrent()},t.setContainer=c=>{e.el&&e.el!==c&&(e.canvas.parentNode!==e.el&&Xc("Error: canvas parent node does not match container"),e.el.removeChild(e.canvas),e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)),e.el!==c&&(e.el=c,e.el&&(e.el.appendChild(e.canvas),e.useBackgroundImage&&e.el.appendChild(e.bgImage)),t.modified())},t.getContainer=()=>e.el,t.getContainerSize=()=>{if(!e.containerSize&&e.el){const{width:c,height:f}=e.el.getBoundingClientRect();e.containerSize=[c,f]}return e.containerSize||e.size},t.getFramebufferSize=()=>{var f;return((f=e.activeFramebuffer)==null?void 0:f.getSize())||e.size},t.getPixelData=(c,f,l,g)=>{const p=new Uint8Array((l-c+1)*(g-f+1)*4);return e.context.readPixels(c,f,l-c+1,g-f+1,e.context.RGBA,e.context.UNSIGNED_BYTE,p),p},t.get3DContext=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},f=null;const l=typeof WebGL2RenderingContext<"u";return e.webgl2=!1,e.defaultToWebgl2&&l&&(f=e.canvas.getContext("webgl2",c),f&&(e.webgl2=!0,Pc("using webgl2"))),f||(Pc("using webgl1"),f=e.canvas.getContext("webgl",c)||e.canvas.getContext("experimental-webgl",c)),new Proxy(f,n)},t.restoreContext=()=>{const c=an.newInstance();c.setCurrentOperation("Release"),c.traverse(t,null)},t.activateTexture=c=>{const f=e._textureResourceIds.get(c);if(f!==void 0){e.context.activeTexture(e.context.TEXTURE0+f);return}const l=t.getTextureUnitManager().allocate();if(l<0){Xc("Hardware does not support the number of textures defined.");return}e._textureResourceIds.set(c,l),e.context.activeTexture(e.context.TEXTURE0+l)},t.deactivateTexture=c=>{const f=e._textureResourceIds.get(c);f!==void 0&&(t.getTextureUnitManager().free(f),e._textureResourceIds.delete(c))},t.getTextureUnitForTexture=c=>{const f=e._textureResourceIds.get(c);return f!==void 0?f:-1},t.getDefaultTextureByteSize=function(c){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(e.webgl2)switch(c){case He.CHAR:case He.SIGNED_CHAR:case He.UNSIGNED_CHAR:return 1;case f:case l:case He.UNSIGNED_SHORT:case He.SHORT:case He.VOID:return 2;default:return 4}return 1},t.getDefaultTextureInternalFormat=function(c,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e.webgl2)switch(c){case He.UNSIGNED_CHAR:switch(f){case 1:return e.context.R8;case 2:return e.context.RG8;case 3:return e.context.RGB8;case 4:default:return e.context.RGBA8}case(l&&!g&&He.UNSIGNED_SHORT):switch(f){case 1:return l.R16_EXT;case 2:return l.RG16_EXT;case 3:return l.RGB16_EXT;case 4:default:return l.RGBA16_EXT}case(l&&!g&&He.SHORT):switch(f){case 1:return l.R16_SNORM_EXT;case 2:return l.RG16_SNORM_EXT;case 3:return l.RGB16_SNORM_EXT;case 4:default:return l.RGBA16_SNORM_EXT}case He.UNSIGNED_SHORT:case He.SHORT:case He.FLOAT:default:switch(f){case 1:return g?e.context.R16F:e.context.R32F;case 2:return g?e.context.RG16F:e.context.RG32F;case 3:return g?e.context.RGB16F:e.context.RGB32F;case 4:default:return g?e.context.RGBA16F:e.context.RGBA32F}}switch(f){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:default:return e.context.RGBA}},t.setBackgroundImage=c=>{e.bgImage.src=c.src},t.setUseBackgroundImage=c=>{e.useBackgroundImage=c,e.useBackgroundImage&&!e.el.contains(e.bgImage)?e.el.appendChild(e.bgImage):!e.useBackgroundImage&&e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)};function s(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.imageFormat;const f=document.createElement("canvas"),l=f.getContext("2d");f.width=e.canvas.width,f.height=e.canvas.height,l.drawImage(e.canvas,0,0);const g=e.canvas.getBoundingClientRect();e.renderable.getRenderers().forEach(d=>{d.getViewProps().forEach(C=>{if(C.getContainer){const v=C.getContainer().getElementsByTagName("canvas");for(let w=0;w0&&arguments[0]!==void 0?arguments[0]:"image/png",{resetCamera:f=!1,size:l=null,scale:g=1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.deleted)return null;e.imageFormat=c;const p=e.notifyStartCaptureImage;return e.notifyStartCaptureImage=!0,e._screenshot={size:l||g!==1?l||e.size.map(T=>T*g):null},new Promise((T,h)=>{const d=t.onImageReady(x=>{if(e._screenshot.size===null)e.notifyStartCaptureImage=p,d.unsubscribe(),e._screenshot.placeHolder&&(e.size=e._screenshot.originalSize,t.modified(),e._screenshot.cameras&&e._screenshot.cameras.forEach(C=>{let{restoreParamsFn:y,arg:v}=C;return y(v)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),T(x);else{const C=document.createElement("img");if(C.style=zM,C.src=x,e._screenshot.placeHolder=e.el.appendChild(C),e.canvas.style.display="none",e._screenshot.originalSize=e.size,e.size=e._screenshot.size,e._screenshot.size=null,t.modified(),f){const y=f!==!0;e._screenshot.cameras=e.renderable.getRenderers().map(v=>{const w=v.getActiveCamera(),S=w.get("focalPoint","position","parallelScale");return{resetCameraArgs:y?{renderer:v}:void 0,resetCameraFn:y?f:v.resetCamera,restoreParamsFn:w.set,arg:JSON.parse(JSON.stringify(S))}}),e._screenshot.cameras.forEach(v=>{let{resetCameraFn:w,resetCameraArgs:S}=v;return w(S)})}t.traverseAllPasses()}})})};let i;t.getHardwareMaximumLineWidth=()=>{if(i!=null)return i;const c=t.get3DContext(),f=c.getParameter(c.ALIASED_LINE_WIDTH_RANGE);return i=f[1],f[1]},t.getGLInformations=()=>{if(e._glInformation)return e._glInformation;const c=t.get3DContext(),f=c.getExtension("OES_texture_float"),l=c.getExtension("OES_texture_half_float"),g=c.getExtension("WEBGL_debug_renderer_info"),p=c.getExtension("WEBGL_draw_buffers"),T=c.getExtension("EXT_texture_filter_anisotropic")||c.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),h=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",c.getParameter(c.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",c.getParameter(c.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",c.getParameter(c.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",c.getParameter(c.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",c.getParameter(c.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",c.getParameter(c.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",c.getParameter(c.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",c.getParameter(c.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",c.getParameter(c.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",T&&c.getParameter(T.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",c.getParameter(c.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",c.getParameter(c.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",c.getParameter(c.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",c.getParameter(c.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",c.getParameter(c.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",c.getParameter(c.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",c.getParameter(c.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",c.getParameter(c.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",c.getParameter(c.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",c.getParameter(c.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",c.getParameter(c.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",c.getParameter(c.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",c.getParameter(c.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[f&&et(c,c.RGBA,c.UNSIGNED_BYTE)?"RGBA":"",f&&et(c,c.RGB,c.UNSIGNED_BYTE)?"RGB":"",f&&et(c,c.LUMINANCE,c.UNSIGNED_BYTE)?"LUMINANCE":"",f&&et(c,c.ALPHA,c.UNSIGNED_BYTE)?"ALPHA":"",f&&et(c,c.LUMINANCE_ALPHA,c.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[l&&et(c,c.RGBA,l.HALF_FLOAT_OES)?"RGBA":"",l&&et(c,c.RGB,l.HALF_FLOAT_OES)?"RGB":"",l&&et(c,c.LUMINANCE,l.HALF_FLOAT_OES)?"LUMINANCE":"",l&&et(c,c.ALPHA,l.HALF_FLOAT_OES)?"ALPHA":"",l&&et(c,c.LUMINANCE_ALPHA,l.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[f&&et(c,c.RGBA,c.FLOAT)?"RGBA":"",f&&et(c,c.RGB,c.FLOAT)?"RGB":"",f&&et(c,c.LUMINANCE,c.FLOAT)?"LUMINANCE":"",f&&et(c,c.ALPHA,c.FLOAT)?"ALPHA":"",f&&et(c,c.LUMINANCE_ALPHA,c.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",p?c.getParameter(p.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).precision," (-2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).precision," (-2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).rangeMin," - 2",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",c.getSupportedExtensions().join("
")],["WebGL Renderer","RENDERER",c.getParameter(c.RENDERER)],["WebGL Vendor","VENDOR",c.getParameter(c.VENDOR)],["WebGL Version","VERSION",c.getParameter(c.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",c.getParameter(c.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",g&&c.getParameter(g.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",g&&c.getParameter(g.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",e.webgl2?2:1]],d={};for(;h.length;){const[x,C,y]=h.pop();C&&(d[C]={label:x,value:y})}return e._glInformation=d,d},t.traverseAllPasses=()=>{if(e.renderPasses)for(let c=0;c{e.cullFaceEnabled&&(e.context.disable(e.context.CULL_FACE),e.cullFaceEnabled=!1)},t.enableCullFace=()=>{e.cullFaceEnabled||(e.context.enable(e.context.CULL_FACE),e.cullFaceEnabled=!0)},t.setViewStream=c=>{if(e.viewStream===c)return!1;if(e.subscription&&(e.subscription.unsubscribe(),e.subscription=null),e.viewStream=c,e.viewStream){const f=e.renderable.getRenderers()[0];f.getBackgroundByReference()[3]=0,t.setUseBackgroundImage(!0),e.subscription=e.viewStream.onImageReady(l=>t.setBackgroundImage(l.image)),e.viewStream.setSize(e.size[0],e.size[1]),e.viewStream.invalidateCache(),e.viewStream.render(),t.modified()}return!0},t.createSelector=()=>{const c=Jg.newInstance();return c.setOpenGLRenderWindow(t),c};function o(){e.canvas.removeEventListener("webglcontextlost",Ic),e.canvas.removeEventListener("webglcontextrestored",t.restoreContext)}t.delete=E.chain(o,t.delete,t.setViewStream,HM),t.setActiveFramebuffer=c=>{e.activeFramebuffer=c};const u=t.setSize;t.setSize=(c,f)=>{const l=u(c,f);return l&&t.invokeWindowResizeEvent({width:c,height:f}),l},t.getGraphicsResourceForObject=c=>{if(!c)return null;const f=e._graphicsResources.get(c),l=e._graphicsResourceHash.get(c);return{vtkObj:f,hash:l}},t.setGraphicsResourceForObject=(c,f,l)=>{c&&(e._graphicsResources.set(c,f),e._graphicsResourceHash.set(c,l))},t.getGraphicsMemoryInfo=()=>{let c=0;return e._graphicsResources.forEach((f,l)=>{c+=f.getAllocatedGPUMemoryInBytes()}),c},t.releaseGraphicsResourcesForObject=c=>{var f;return c?((f=e._graphicsResources.get(c))==null||f.releaseGraphicsResources(t),e._graphicsResources.delete(c)&&e._graphicsResourceHash.delete(c)):!1},t.releaseGraphicsResources=()=>{e.shaderCache!==null&&e.shaderCache.releaseGraphicsResources(t),e._graphicsResources.forEach((c,f)=>{c.releaseGraphicsResources(t)}),e._graphicsResources.clear(),e._graphicsResourceHash.clear(),e.textureUnitManager!==null&&e.textureUnitManager.freeAll(),e.renderable.getRenderersByReference().forEach(c=>{const f=t.getViewNodeFor(c);f==null||f.releaseGraphicsResources()})}}const KM={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};function PM(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KM,n),a0.extend(t,e,n),e.canvas=document.createElement("canvas"),e.canvas.style.width="100%",AM(),e.selector||(e.selector=Jg.newInstance(),e.selector.setOpenGLRenderWindow(t)),e.bgImage=new Image,e.bgImage.style.position="absolute",e.bgImage.style.left="0",e.bgImage.style.top="0",e.bgImage.style.width="100%",e.bgImage.style.height="100%",e.bgImage.style.zIndex="-1",e._textureResourceIds=new Map,e._graphicsResources=new Map,e._graphicsResourceHash=new Map,e._glInformation=null,e.myFactory=h2.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",i0),e.shaderCache=mM.newInstance(),e.shaderCache.setOpenGLRenderWindow(t),e.renderPasses[0]=cM.newInstance(),E.event(t,e,"imageReady"),E.get(t,e,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer"]),E.setGet(t,e,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),E.setGetArray(t,e,["size"],2),E.event(t,e,"windowResizeEvent"),jM(t,e)}const i0=E.newInstance(PM,"vtkOpenGLRenderWindow");go("WebGL",i0);const Ps=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function XM(t,e){e.classHierarchy.push("vtkWebGPURenderEncoder"),t.begin=n=>{e.drawCallbacks=[],e.handle=n.beginRenderPass(e.description),e.label&&e.handle.pushDebugGroup(e.label)},t.end=()=>{for(let n=0;n{var a,s;if(e.boundPipeline===n)return;e.handle.setPipeline(n.getHandle());const r=n.getPipelineDescription();if(e.colorTextureViews.length!==r.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${r.fragment.targets.length} while encoder has ${e.colorTextureViews.length}`),console.trace();else for(let i=0;i{e.replaceShaderCodeFunction(n)},t.setColorTextureView=(n,r)=>{e.colorTextureViews[n]!==r&&(e.colorTextureViews[n]=r)},t.activateBindGroup=n=>{const r=e.boundPipeline.getDevice(),a=e.boundPipeline.getBindGroupLayoutCount(n.getLabel());e.handle.setBindGroup(a,n.getBindGroup(r));const s=r.getBindGroupLayoutDescription(n.getBindGroupLayout(r)),i=r.getBindGroupLayoutDescription(e.boundPipeline.getBindGroupLayout(a));s!==i&&(console.log(`renderEncoder ${e.pipelineHash} mismatched bind group layouts bind group has ${s} versus pipeline ${i} `),console.trace())},t.attachTextureViews=()=>{for(let n=0;n{for(let a=0;a2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IM,n),Pe(t,e),e.description={colorAttachments:[{view:void 0,loadOp:"load",storeOp:"store"}],depthStencilAttachment:{view:void 0,depthLoadOp:"clear",depthClearValue:0,depthStoreOp:"store"}},e.replaceShaderCodeFunction=r=>{const a=r.getShaderDescription("fragment");a.addOutput("vec4","outColor");let s=a.getCode();s=ie.substitute(s,"//VTK::RenderEncoder::Impl",["output.outColor = computedColor;"]).result,a.setCode(s)},e.pipelineSettings={primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater-equal",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}},e.colorTextureViews=[],st(t,e,["boundPipeline","colorTextureViews"]),ze(t,e,["depthTextureView","description","handle","label","pipelineHash","pipelineSettings","replaceShaderCodeFunction"]),XM(t,e)}const YM=Ee(o0,"vtkWebGPURenderEncoder");var Jt={newInstance:YM,extend:o0};function qM(t,e){e.classHierarchy.push("vtkWebGPUOpaquePass"),t.traverse=(n,r)=>{if(e.deleted)return;e._currentParent=r;const a=r.getDevice();if(e.renderEncoder)e.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),e.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{t.createRenderEncoder(),e.colorTexture=Kt.newInstance({label:"opaquePassColor"}),e.colorTexture.create(a,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const s=e.colorTexture.createView("opaquePassColorTexture");e.renderEncoder.setColorTextureView(0,s),e.depthFormat="depth32float",e.depthTexture=Kt.newInstance({label:"opaquePassDepth"}),e.depthTexture.create(a,{width:r.getCanvas().width,height:r.getCanvas().height,format:e.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const i=e.depthTexture.createView("opaquePassDepthTexture");e.renderEncoder.setDepthTextureView(i)}e.renderEncoder.attachTextureViews(),t.setCurrentOperation("opaquePass"),n.setRenderEncoder(e.renderEncoder),n.traverse(t)},t.getColorTextureView=()=>e.renderEncoder.getColorTextureViews()[0],t.getDepthTextureView=()=>e.renderEncoder.getDepthTextureView(),t.createRenderEncoder=()=>{e.renderEncoder=Jt.newInstance({label:"OpaquePass"}),e.renderEncoder.setPipelineHash("op")}}const QM={renderEncoder:null,colorTexture:null,depthTexture:null};function c0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QM,n),an.extend(t,e,n),E.get(t,e,["colorTexture","depthTexture"]),qM(t,e)}const ZM=E.newInstance(c0,"vtkWebGPUOpaquePass");var JM={newInstance:ZM,extend:c0};const eV=` //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var tcoord: vec2 = vec2(i32(input.fragPos.x), i32(input.fragPos.y)); var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r; if (reveal == 1.0) { discard; } var tcolor: vec4 = textureLoad(oitpColorTexture, tcoord, 0); var total: f32 = max(tcolor.a, 0.01); var computedColor: vec4 = vec4(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal); //VTK::RenderEncoder::Impl return output; } `;function tV(t,e){e.classHierarchy.push("vtkWebGPUOrderIndependentTranslucentPass"),t.traverse=(n,r)=>{if(e.deleted)return;e._currentParent=r;const a=r.getDevice();if(e.translucentRenderEncoder)e.translucentColorTexture.resizeToMatch(e.colorTextureView.getTexture()),e.translucentAccumulateTexture.resizeToMatch(e.colorTextureView.getTexture());else{t.createRenderEncoder(),t.createFinalEncoder(),e.translucentColorTexture=Kt.newInstance({label:"translucentPassColor"}),e.translucentColorTexture.create(a,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const s=e.translucentColorTexture.createView("oitpColorTexture");e.translucentRenderEncoder.setColorTextureView(0,s),e.translucentAccumulateTexture=Kt.newInstance({label:"translucentPassAccumulate"}),e.translucentAccumulateTexture.create(a,{width:r.getCanvas().width,height:r.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const i=e.translucentAccumulateTexture.createView("oitpAccumTexture");e.translucentRenderEncoder.setColorTextureView(1,i),e.fullScreenQuad=hr.newInstance(),e.fullScreenQuad.setDevice(r.getDevice()),e.fullScreenQuad.setPipelineHash("oitpfsq"),e.fullScreenQuad.setTextureViews(e.translucentRenderEncoder.getColorTextureViews()),e.fullScreenQuad.setFragmentShaderTemplate(eV)}e.translucentRenderEncoder.setDepthTextureView(e.depthTextureView),e.translucentRenderEncoder.attachTextureViews(),t.setCurrentOperation("translucentPass"),n.setRenderEncoder(e.translucentRenderEncoder),n.traverse(t),t.finalPass(r,n)},t.finalPass=(n,r)=>{e.translucentFinalEncoder.setColorTextureView(0,e.colorTextureView),e.translucentFinalEncoder.attachTextureViews(),e.translucentFinalEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(e.translucentFinalEncoder),e.fullScreenQuad.prepareAndDraw(e.translucentFinalEncoder),e.translucentFinalEncoder.end()},t.getTextures=()=>[e.translucentColorTexture,e.translucentAccumulateTexture],t.createRenderEncoder=()=>{e.translucentRenderEncoder=Jt.newInstance({label:"translucentRender"});const n=e.translucentRenderEncoder.getDescription();n.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:void 0,clearValue:[1,0,0,0],loadOp:"clear",storeOp:"store"}],n.depthStencilAttachment={view:void 0,depthLoadOp:"load",depthStoreOp:"store"},e.translucentRenderEncoder.setReplaceShaderCodeFunction(r=>{const a=r.getShaderDescription("fragment");a.addOutput("vec4","outColor"),a.addOutput("f32","outAccum"),a.addBuiltinInput("vec4","@builtin(position) fragPos");let s=a.getCode();s=ie.substitute(s,"//VTK::RenderEncoder::Impl",["var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);","output.outColor = vec4(computedColor.rgb*w, w);","output.outAccum = computedColor.a;"]).result,a.setCode(s)}),e.translucentRenderEncoder.setPipelineHash("oitpr"),e.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!1,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one"},alpha:{srcfactor:"one",dstFactor:"one"}}},{format:"r16float",blend:{color:{srcFactor:"zero",dstFactor:"one-minus-src"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},t.createFinalEncoder=()=>{e.translucentFinalEncoder=Jt.newInstance({label:"translucentFinal"}),e.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),e.translucentFinalEncoder.setReplaceShaderCodeFunction(n=>{const r=n.getShaderDescription("fragment");r.addOutput("vec4","outColor"),r.addBuiltinInput("vec4","@builtin(position) fragPos");let a=r.getCode();a=ie.substitute(a,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,r.setCode(a)}),e.translucentFinalEncoder.setPipelineHash("oitpf"),e.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})}}const nV={colorTextureView:null,depthTextureView:null};function u0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nV,n),an.extend(t,e,n),E.setGet(t,e,["colorTextureView","depthTextureView"]),tV(t,e)}const rV=E.newInstance(u0,"vtkWebGPUOrderIndependentTranslucentPass");var aV={newInstance:rV,extend:u0};const er={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5},sV=` //VTK::Renderer::Dec //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::Volume::TraverseDec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec fn getTextureValue(vTex: texture_3d, tpos: vec4) -> f32 { // todo multicomponent support return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r; } fn getGradient(vTex: texture_3d, tpos: vec4, vNum: i32, scalar: f32) -> vec4 { var result: vec4; var tstep: vec4 = volumeSSBO.values[vNum].tstep; result.x = getTextureValue(vTex, tpos + vec4(tstep.x, 0.0, 0.0, 1.0)) - scalar; result.y = getTextureValue(vTex, tpos + vec4(0.0, tstep.y, 0.0, 1.0)) - scalar; result.z = getTextureValue(vTex, tpos + vec4(0.0, 0.0, tstep.z, 1.0)) - scalar; result.w = 0.0; // divide by spacing as that is our delta result = result / volumeSSBO.values[vNum].spacing; // now we have a gradient in unit tcoords var grad: f32 = length(result.xyz); if (grad > 0.0) { // rotate to View Coords, needed for lighting and shading var nMat: mat4x4 = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals; result = nMat * result; result = result / length(result); } // store gradient magnitude in .w result.w = grad; return result; } fn processVolume(vTex: texture_3d, vNum: i32, cNum: i32, posSC: vec4, tfunRows: f32) -> vec4 { var outColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0); // convert to tcoords and reject if outside the volume var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*posSC; if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 || tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; } var scalar: f32 = getTextureValue(vTex, tpos); var coord: vec2 = vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift, (0.5 + 2.0 * f32(vNum)) / tfunRows); var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0); var gofactor: f32 = 1.0; var normal: vec4 = vec4(0.0,0.0,0.0,0.0); if (componentSSBO.values[cNum].gomin < 1.0 || volumeSSBO.values[vNum].shade[0] > 0.0) { normal = getGradient(vTex, tpos, vNum, scalar); if (componentSSBO.values[cNum].gomin < 1.0) { gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift, componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax); } } coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift); var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r; if (volumeSSBO.values[vNum].shade[0] > 0.0) { color = color*abs(normal.z); } outColor = vec4(color.rgb, gofactor * opacity); return outColor; } // adjust the start and end point of a raycast such that it intersects the unit cube. // This function is used to take a raycast starting point and step vector // and numSteps and return the startijng and ending steps for intersecting the // unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates // that have valid values. So this funtion can be used to take a ray in texture coordinates // and bound it to intersecting the texture. // fn adjustBounds(tpos: vec4, tstep: vec4, numSteps: f32) -> vec2 { var result: vec2 = vec2(0.0, numSteps); var tpos2: vec4 = tpos + tstep*numSteps; // move tpos to the start of the volume var adjust: f32 = min( max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x), min( max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y), max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z))); if (adjust < 0.0) { result.x = result.x - adjust; } // adjust length to the end adjust = max( min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x), max( min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y), min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z))); if (adjust > 0.0) { result.y = result.y - adjust; } return result; } fn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4 { // how many rows (tfuns) do we have in our tfunTexture var tfunRows: f32 = f32(textureDimensions(tfunTexture).y); var coord: vec2 = vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift, (0.5 + 2.0 * f32(vNum)) / tfunRows); var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0); coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift); var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r; return vec4(color.rgb, opacity); } fn traverseMax(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) { // convert to tcoords and reject if outside the volume var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance; var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC; var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC); var tstep: vec4 = tpos2 - tpos; var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps); // did we hit anything if (rayBounds.x >= rayBounds.y) { traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0); return; } tpos = tpos + tstep*rayBounds.x; var curDist: f32 = rayBounds.x; var maxVal: f32 = -1.0e37; loop { var scalar: f32 = getTextureValue(vTex, tpos); if (scalar > maxVal) { maxVal = scalar; } // increment position curDist = curDist + 1.0; tpos = tpos + tstep; // check if we have reached a terminating condition if (curDist > rayBounds.y) { break; } } // process to get the color and opacity traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum); } fn traverseMin(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) { // convert to tcoords and reject if outside the volume var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance; var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC; var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC); var tstep: vec4 = tpos2 - tpos; var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps); // did we hit anything if (rayBounds.x >= rayBounds.y) { traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0); return; } tpos = tpos + tstep*rayBounds.x; var curDist: f32 = rayBounds.x; var minVal: f32 = 1.0e37; loop { var scalar: f32 = getTextureValue(vTex, tpos); if (scalar < minVal) { minVal = scalar; } // increment position curDist = curDist + 1.0; tpos = tpos + tstep; // check if we have reached a terminating condition if (curDist > rayBounds.y) { break; } } // process to get the color and opacity traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum); } fn traverseAverage(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) { // convert to tcoords and reject if outside the volume var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance; var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC; var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC); var tstep: vec4 = tpos2 - tpos; var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps); // did we hit anything if (rayBounds.x >= rayBounds.y) { traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0); return; } let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange; tpos = tpos + tstep*rayBounds.x; var curDist: f32 = rayBounds.x; var avgVal: f32 = 0.0; var sampleCount: f32 = 0.0; loop { var sample: f32 = getTextureValue(vTex, tpos); // right now leave filtering off until WebGL changes get merged // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y) // { avgVal = avgVal + sample; sampleCount = sampleCount + 1.0; // } // increment position curDist = curDist + 1.0; tpos = tpos + tstep; // check if we have reached a terminating condition if (curDist > rayBounds.y) { break; } } if (sampleCount <= 0.0) { traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0); } // process to get the color and opacity traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum); } fn traverseAdditive(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) { // convert to tcoords and reject if outside the volume var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance; var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC; var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC); var tstep: vec4 = tpos2 - tpos; var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps); // did we hit anything if (rayBounds.x >= rayBounds.y) { traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0); return; } let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange; tpos = tpos + tstep*rayBounds.x; var curDist: f32 = rayBounds.x; var sumVal: f32 = 0.0; loop { var sample: f32 = getTextureValue(vTex, tpos); // right now leave filtering off until WebGL changes get merged // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y) // { sumVal = sumVal + sample; // } // increment position curDist = curDist + 1.0; tpos = tpos + tstep; // check if we have reached a terminating condition if (curDist > rayBounds.y) { break; } } // process to get the color and opacity traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum); } fn composite(rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) -> vec4 { // initial ray position is at the beginning var rayPosSC: vec4 = minPosSC; // how many rows (tfuns) do we have in our tfunTexture var tfunRows: f32 = f32(textureDimensions(tfunTexture).y); var curDist: f32 = 0.0; var computedColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0); var sampleColor: vec4; //VTK::Volume::TraverseCalls loop { // for each volume, sample and accumulate color //VTK::Volume::CompositeCalls // increment position curDist = curDist + mapperUBO.SampleDistance; rayPosSC = rayPosSC + rayStepSC; // check if we have reached a terminating condition if (curDist > rayLengthSC) { break; } if (computedColor.a > 0.98) { break; } } return computedColor; } @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r; var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r; // discard empty rays if (rayMax <= rayMin) { discard; } else { // compute start and end ray positions in view coordinates var minPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0); minPosSC = minPosSC * (1.0 / minPosSC.w); var maxPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0); maxPosSC = maxPosSC * (1.0 / maxPosSC.w); var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz); var rayStepSC: vec4 = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC); rayStepSC.w = 0.0; var computedColor: vec4; //VTK::Volume::Loop //VTK::RenderEncoder::Impl } return output; } `,tt=new Float64Array(16),gn=new Float64Array(16);function iV(t,e){e.classHierarchy.push("vtkWebGPUVolumePassFSQ"),t.replaceShaderPosition=(a,s,i)=>{const o=s.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position");let u=o.getCode();u=ie.substitute(u,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,o.setCode(u),s.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderVolume=(a,s,i)=>{const o=s.getShaderDescription("fragment");let u=o.getCode();const c=[],f=[];for(let g=0;g( sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb, (1.0 - computedColor.a)*sampleColor.a + computedColor.a);`)):(f.push(` sampleColor = traverseVals[${g}];`),f.push(` computedColor = vec4( sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb, (1.0 - computedColor.a)*sampleColor.a + computedColor.a);`));u=ie.substitute(u,"//VTK::Volume::CompositeCalls",c).result,u=ie.substitute(u,"//VTK::Volume::TraverseCalls",f).result,u=ie.substitute(u,"//VTK::Volume::TraverseDec",[`var traverseVals: array,${e.volumes.length}>;`]).result;let l=!1;for(let g=0;g{let s=t.getMTime();for(let l=0;l{let s=Math.max(t.getMTime(),e.WebGPURenderer.getStabilizedTime());for(let S=0;S"),e.SSBO.addEntry("planeNormals","mat4x4"),e.SSBO.addEntry("shade","vec4"),e.SSBO.addEntry("tstep","vec4"),e.SSBO.addEntry("spacing","vec4"),e.SSBO.addEntry("ipScalarRange","vec4"),e.SSBO.setAllInstancesFromArray("SCTCMatrix",o),e.SSBO.setAllInstancesFromArray("planeNormals",u),e.SSBO.setAllInstancesFromArray("shade",f),e.SSBO.setAllInstancesFromArray("tstep",c),e.SSBO.setAllInstancesFromArray("spacing",l),e.SSBO.setAllInstancesFromArray("ipScalarRange",g),e.SSBO.send(a),e.componentSSBO.clearData(),e.componentSSBO.setNumberOfInstances(e.numRows);const p=new Float64Array(e.numRows),T=new Float64Array(e.numRows),h=new Float64Array(e.numRows),d=new Float64Array(e.numRows),x=new Float64Array(e.numRows),C=new Float64Array(e.numRows),y=new Float64Array(e.numRows),v=new Float64Array(e.numRows);let w=0;for(let S=0;S{n();let a=e.volumes[0].getRenderable().getMapper().getSampleDistance();for(let s=0;s{e.pipelineHash="volfsq";for(let a=0;a{if(!e.volumes||e.volumes.length!==a.length){e.volumes=[...a],t.modified();return}for(let s=0;s{const a=r();return a.push(e.componentSSBO),a.push(e.clampSampler),a}}const oV={volumes:null,rowLength:1024,lastVolumeLength:0};function f0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oV,n),hr.extend(t,e,n),e.fragmentShaderTemplate=sV,e.UBO=zn.newInstance({label:"mapperUBO"}),e.UBO.addEntry("SampleDistance","f32"),e.SSBO=xi.newInstance({label:"volumeSSBO"}),e.componentSSBO=xi.newInstance({label:"componentSSBO"}),e.lutBuildTime={},E.obj(e.lutBuildTime,{mtime:0}),iV(t,e)}const cV=E.newInstance(f0,"vtkWebGPUVolumePassFSQ");var uV={newInstance:cV,extend:f0};const{Representation:fV}=Cr,{BufferUsage:Yc,PrimitiveTypes:lV}=wn,Xs=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]],gV=` //VTK::Renderer::Dec //VTK::Select::Dec //VTK::VolumePass::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::Mapper::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output : fragmentOutput; //VTK::Select::Impl //VTK::TCoord::Impl //VTK::VolumePass::Impl // use the maximum (closest) of the current value and the zbuffer // the blend func will then take the min to find the farthest stop value var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2(i32(input.fragPos.x), i32(input.fragPos.y)), 0)); //VTK::RenderEncoder::Impl return output; } `,pV=` //VTK::Renderer::Dec //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var computedColor: vec4 = textureSample(volumePassColorTexture, volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS); //VTK::RenderEncoder::Impl return output; } `;function hV(t,e){e.classHierarchy.push("vtkWebGPUVolumePass"),t.initialize=n=>{e._clearEncoder||t.createClearEncoder(n),e._mergeEncoder||t.createMergeEncoder(n),e._copyEncoder||t.createCopyEncoder(n),e._depthRangeEncoder||t.createDepthRangeEncoder(n),e.fullScreenQuad||(e.fullScreenQuad=uV.newInstance(),e.fullScreenQuad.setDevice(n.getDevice()),e.fullScreenQuad.setTextureViews([...e._depthRangeEncoder.getColorTextureViews()])),e._volumeCopyQuad||(e._volumeCopyQuad=hr.newInstance(),e._volumeCopyQuad.setPipelineHash("volpassfsq"),e._volumeCopyQuad.setDevice(n.getDevice()),e._volumeCopyQuad.setFragmentShaderTemplate(pV),e._copyUBO=zn.newInstance({label:"mapperUBO"}),e._copyUBO.addEntry("tscale","vec2"),e._volumeCopyQuad.setUBO(e._copyUBO),e._volumeCopyQuad.setTextureViews([e._colorTextureView]))},t.traverse=(n,r)=>{if(e.deleted)return;e._currentParent=r,t.initialize(r),t.computeTiming(r),t.renderDepthBounds(n,r),e._firstGroup=!0;const a=r.getDevice(),s=a.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(e.volumes.length>s){const i=n.getRenderable().getActiveCamera().getPosition(),o=[];for(let l=0;lo[g]-o[l]);let c=[],f=u.length%s;for(let l=0;l=f&&(t.rayCastPass(r,n,c),c=[],f=s,e._firstGroup=!1)}else t.rayCastPass(r,n,e.volumes);if(e._volumeCopyQuad.setWebGPURenderer(n),e._useSmallViewport){const i=e._colorTextureView.getTexture().getWidth(),o=e._colorTextureView.getTexture().getHeight();e._copyUBO.setArray("tscale",[e._smallViewportWidth/i,e._smallViewportHeight/o])}else e._copyUBO.setArray("tscale",[1,1]);e._copyUBO.sendIfNeeded(a),e._copyEncoder.setColorTextureView(0,e.colorTextureView),e._copyEncoder.attachTextureViews(),e._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(e._copyEncoder),e._volumeCopyQuad.prepareAndDraw(e._copyEncoder),e._copyEncoder.end()},t.delete=E.chain(()=>{e._animationRateSubscription&&(e._animationRateSubscription.unsubscribe(),e._animationRateSubscription=null)},t.delete),t.computeTiming=n=>{const r=n.getRenderable().getInteractor();if(e._lastScale==null){const a=e.volumes[0].getRenderable().getMapper();e._lastScale=a.getInitialInteractionScale()||1}e._useSmallViewport=!1,r.isAnimating()&&e._lastScale>1.5&&(e._useSmallViewport=!0),e._colorTexture.resize(n.getCanvas().width,n.getCanvas().height),e._animationRateSubscription||(e._animationRateSubscription=r.onAnimationFrameRateUpdate(()=>{const a=e.volumes[0].getRenderable().getMapper();if(a.getAutoAdjustSampleDistances()){const s=r.getRecentAnimationFrameRate(),i=e._lastScale*r.getDesiredUpdateRate()/s;e._lastScale=i,e._lastScale>400&&(e._lastScale=400)}else e._lastScale=a.getImageSampleDistance()*a.getImageSampleDistance();e._lastScale<1.5&&(e._lastScale=1.5)}))},t.rayCastPass=(n,r,a)=>{const s=e._firstGroup?e._clearEncoder:e._mergeEncoder;s.attachTextureViews(),s.begin(n.getCommandEncoder());let i=e._colorTextureView.getTexture().getWidth(),o=e._colorTextureView.getTexture().getHeight();if(e._useSmallViewport){const u=n.getCanvas(),c=1/Math.sqrt(e._lastScale);e._smallViewportWidth=Math.ceil(c*u.width),e._smallViewportHeight=Math.ceil(c*u.height),i=e._smallViewportWidth,o=e._smallViewportHeight}s.getHandle().setViewport(0,0,i,o,0,1),s.getHandle().setScissorRect(0,0,i,o),e.fullScreenQuad.setWebGPURenderer(r),e.fullScreenQuad.setVolumes(a),e.fullScreenQuad.prepareAndDraw(s),s.end()},t.renderDepthBounds=(n,r)=>{t.updateDepthPolyData(n);const a=e._boundsPoly,s=a.getPoints(),i=a.getPolys();let o={hash:`vp${i.getMTime()}`,usage:Yc.Index,cells:i,numberOfPoints:s.getNumberOfPoints(),primitiveType:lV.Triangles,representation:fV.SURFACE};const u=r.getDevice().getBufferManager().getBuffer(o);e._mapper.getVertexInput().setIndexBuffer(u),o={usage:Yc.PointArray,format:"float32x4",hash:`vp${s.getMTime()}${i.getMTime()}`,dataArray:s,indexBuffer:u,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(o);e._mapper.getVertexInput().addBuffer(c,["vertexBC"]),e._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),t.drawDepthRange(n,r)},t.updateDepthPolyData=n=>{let r=!1;for(let f=0;f{e._depthRangeTexture.resizeToMatch(e.colorTextureView.getTexture()),e._depthRangeTexture2.resizeToMatch(e.colorTextureView.getTexture()),e._depthRangeEncoder.attachTextureViews(),t.setCurrentOperation("volumeDepthRangePass"),n.setRenderEncoder(e._depthRangeEncoder),n.volumeDepthRangePass(!0),e._mapper.setWebGPURenderer(n),e._mapper.prepareToDraw(e._depthRangeEncoder),e._mapper.registerDrawCallback(e._depthRangeEncoder),n.volumeDepthRangePass(!1)},t.createDepthRangeEncoder=n=>{const r=n.getDevice();e._depthRangeEncoder=Jt.newInstance({label:"VolumePass DepthRange"}),e._depthRangeEncoder.setPipelineHash("volr"),e._depthRangeEncoder.setReplaceShaderCodeFunction(i=>{const o=i.getShaderDescription("fragment");o.addOutput("vec4","outColor1"),o.addOutput("vec4","outColor2");let u=o.getCode();u=ie.substitute(u,"//VTK::RenderEncoder::Impl",["output.outColor1 = vec4(input.fragPos.z, 0.0, 0.0, 0.0);","output.outColor2 = vec4(stopval, 0.0, 0.0, 0.0);"]).result,o.setCode(u)}),e._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:null,clearValue:[1,1,1,1],loadOp:"clear",storeOp:"store"}]}),e._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcfactor:"one",dstFactor:"one",operation:"max"}}},{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"min"},alpha:{srcfactor:"one",dstFactor:"one",operation:"min"}}}]}}),e._depthRangeTexture=Kt.newInstance({label:"volumePassMaxDepth"}),e._depthRangeTexture.create(r,{width:n.getCanvas().width,height:n.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=e._depthRangeTexture.createView("maxTexture");e._depthRangeEncoder.setColorTextureView(0,a),e._depthRangeTexture2=Kt.newInstance({label:"volumePassDepthMin"}),e._depthRangeTexture2.create(r,{width:n.getCanvas().width,height:n.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const s=e._depthRangeTexture2.createView("minTexture");e._depthRangeEncoder.setColorTextureView(1,s),e._mapper.setDevice(n.getDevice()),e._mapper.setTextureViews([e.depthTextureView])},t.createClearEncoder=n=>{e._colorTexture=Kt.newInstance({label:"volumePassColor"}),e._colorTexture.create(n.getDevice(),{width:n.getCanvas().width,height:n.getCanvas().height,format:"bgra8unorm",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),e._colorTextureView=e._colorTexture.createView("volumePassColorTexture"),e._colorTextureView.addSampler(n.getDevice(),{minFilter:"linear",magFilter:"linear"}),e._clearEncoder=Jt.newInstance({label:"VolumePass Clear"}),e._clearEncoder.setColorTextureView(0,e._colorTextureView),e._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"}]}),e._clearEncoder.setPipelineHash("volpf"),e._clearEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},t.createCopyEncoder=n=>{e._copyEncoder=Jt.newInstance({label:"volumePassCopy"}),e._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),e._copyEncoder.setPipelineHash("volcopypf"),e._copyEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},t.createMergeEncoder=n=>{e._mergeEncoder=Jt.newInstance({label:"volumePassMerge"}),e._mergeEncoder.setColorTextureView(0,e._colorTextureView),e._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),e._mergeEncoder.setReplaceShaderCodeFunction(r=>{const a=r.getShaderDescription("fragment");a.addOutput("vec4","outColor");let s=a.getCode();s=ie.substitute(s,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,a.setCode(s)}),e._mergeEncoder.setPipelineHash("volpf"),e._mergeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},t.setVolumes=n=>{if(!e.volumes||e.volumes.length!==n.length){e.volumes=[...n],t.modified();return}for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dV,n),an.extend(t,e,n),e._mapper=fo.newInstance(),e._mapper.setFragmentShaderTemplate(gV),e._mapper.getShaderReplacements().set("replaceShaderVolumePass",(r,a,s)=>{a.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")}),e._boundsPoly=nn.newInstance(),e._lastMTimes=[],E.setGet(t,e,["colorTextureView","depthTextureView"]),hV(t,e)}const vV=E.newInstance(l0,"vtkWebGPUVolumePass");var yV={newInstance:vV,extend:l0};const TV=` //VTK::Mapper::Dec //VTK::TCoord::Dec //VTK::RenderEncoder::Dec //VTK::IOStructs::Dec @fragment fn main( //VTK::IOStructs::Input ) //VTK::IOStructs::Output { var output: fragmentOutput; var computedColor: vec4 = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4(0.0),vec4(1.0)); //VTK::RenderEncoder::Impl return output; } `;function xV(t,e){e.classHierarchy.push("vtkForwardPass"),t.traverse=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(e.deleted)return;e._currentParent=r,t.setCurrentOperation("buildPass"),n.traverse(t),e.opaquePass||(e.opaquePass=JM.newInstance());const a=n.getRenderable().getNumberOfLayers(),s=n.getChildren();for(let i=0;i0&&(e.translucentPass||(e.translucentPass=aV.newInstance()),e.translucentPass.setColorTextureView(e.opaquePass.getColorTextureView()),e.translucentPass.setDepthTextureView(e.opaquePass.getDepthTextureView()),e.translucentPass.traverse(u,n)),e.volumes.length>0&&(e.volumePass||(e.volumePass=yV.newInstance()),e.volumePass.setColorTextureView(e.opaquePass.getColorTextureView()),e.volumePass.setDepthTextureView(e.opaquePass.getDepthTextureView()),e.volumePass.setVolumes(e.volumes),e.volumePass.traverse(u,n)),t.finalPass(n,u))}},t.finalPass=(n,r)=>{e._finalBlitEncoder||t.createFinalBlitEncoder(n),e._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),e._finalBlitEncoder.attachTextureViews(),e._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(e._finalBlitEncoder),e._fullScreenQuad.prepareAndDraw(e._finalBlitEncoder),e._finalBlitEncoder.end()},t.createFinalBlitEncoder=n=>{e._finalBlitEncoder=Jt.newInstance({label:"forwardPassBlit"}),e._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),e._finalBlitEncoder.setPipelineHash("fpf"),e._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:n.getPresentationFormat(),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}}),e._fsqSampler=lo.newInstance({label:"finalPassSampler"}),e._fsqSampler.create(n.getDevice(),{minFilter:"linear",magFilter:"linear"}),e._fullScreenQuad=hr.newInstance(),e._fullScreenQuad.setDevice(n.getDevice()),e._fullScreenQuad.setPipelineHash("fpfsq"),e._fullScreenQuad.setTextureViews([e.opaquePass.getColorTextureView()]),e._fullScreenQuad.setAdditionalBindables([e._fsqSampler]),e._fullScreenQuad.setFragmentShaderTemplate(TV),e._finalBlitOutputTextureView=Og.newInstance(),e._finalBlitEncoder.setColorTextureView(0,e._finalBlitOutputTextureView)},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.addVolume=n=>{e.volumes.push(n)}}const SV={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function g0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SV,n),an.extend(t,e,n),E.setGet(t,e,["opaquePass","translucentPass","volumePass"]),xV(t,e)}const CV=E.newInstance(g0,"vtkForwardPass");var wV={newInstance:CV,extend:g0};const{VtkDataTypes:Ln}=Se;function EV(t,e){e.classHierarchy.push("vtkWebGPUTextureManager");function n(a){if(a.imageData){a.dataArray=a.imageData.getPointData().getScalars(),a.time=a.dataArray.getMTime(),a.nativeArray=a.dataArray.getData();const s=a.imageData.getDimensions();switch(a.width=s[0],a.height=s[1],a.depth=s[2],a.dataArray.getNumberOfComponents()){case 1:a.format="r";break;case 2:a.format="rg";break;case 3:case 4:default:a.format="rgba";break}switch(a.dataArray.getDataType()){case Ln.UNSIGNED_CHAR:a.format+="8unorm";break;case Ln.FLOAT:case Ln.UNSIGNED_INT:case Ln.INT:case Ln.DOUBLE:case Ln.UNSIGNED_SHORT:case Ln.SHORT:default:a.format+="16float";break}}a.image&&(a.width=a.image.width,a.height=a.image.height,a.depth=1,a.format="rgba8unorm"),a.jsImageData&&(a.width=a.jsImageData.width,a.height=a.jsImageData.height,a.depth=1,a.format="rgba8unorm",a.flip=!0,a.nativeArray=a.jsImageData.data),a.canvas&&(a.width=a.canvas.width,a.height=a.canvas.height,a.depth=1,a.format="rgba8unorm",a.flip=!0,a.usage=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT)}function r(a){const s=Kt.newInstance();return s.create(e.device,{width:a.width,height:a.height,depth:a.depth,format:a.format,usage:a.usage,mipLevel:a.mipLevel}),(a.nativeArray||a.image||a.canvas)&&s.writeImageData(a),s}t.getTexture=a=>a.hash?e.device.getCachedObject(a.hash,r,a):r(a),t.getTextureForImageData=a=>{const s={time:a.getMTime()};return s.imageData=a,n(s),s.hash=s.time+s.format+s.mipLevel,e.device.getTextureManager().getTexture(s)},t.getTextureForVTKTexture=a=>{const s={time:a.getMTime()};return a.getInputData()?s.imageData=a.getInputData():a.getImage()?s.image=a.getImage():a.getJsImageData()?s.jsImageData=a.getJsImageData():a.getCanvas()&&(s.canvas=a.getCanvas()),n(s),s.mipLevel=a.getMipLevel(),s.hash=s.time+s.format+s.mipLevel,e.device.getTextureManager().getTexture(s)}}const _V={handle:null,device:null};function p0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_V,n),E.obj(t,e),E.setGet(t,e,["device"]),EV(t,e)}const RV=E.newInstance(p0);var OV={newInstance:RV,extend:p0};class DV extends Map{constructor(){super(),this.registry=new FinalizationRegistry(e=>{const n=super.get(e);n&&n.deref&&n.deref()===void 0&&super.delete(e)})}getValue(e){const n=super.get(e);if(n){const r=n.deref();if(r!==void 0)return r;super.delete(e)}}setValue(e,n){let r;return n&&typeof n=="object"&&(r=new WeakRef(n),this.registry.register(n,e),super.set(e,r)),r}}function MV(t,e){e.classHierarchy.push("vtkWebGPUDevice"),t.initialize=n=>{e.handle=n},t.createCommandEncoder=()=>e.handle.createCommandEncoder(),t.submitCommandEncoder=n=>{e.handle.queue.submit([n.finish()])},t.getShaderModule=n=>e.shaderCache.getShaderModule(n),t.getBindGroupLayout=n=>{if(!n.entries)return null;for(let s=0;s{for(let r=0;rn in e.pipelines?e.pipelines[n]:null,t.createPipeline=(n,r)=>{r.initialize(t,n),e.pipelines[n]=r},t.onSubmittedWorkDone=()=>e.handle.queue.onSubmittedWorkDone(),t.hasCachedObject=n=>e.objectCache.getValue(n),t.getCachedObject=function(n,r){if(!n)return vtkErrorMacro("attempt to cache an object without a hash"),null;const a=e.objectCache.getValue(n);if(a)return a;for(var s=arguments.length,i=new Array(s>2?s-2:0),o=2;o2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VV,n),Pe(t,e),ze(t,e,["handle"]),st(t,e,["bufferManager","shaderCache","textureManager"]),e.objectCache=new DV,e.shaderCache=ie.newInstance(),e.shaderCache.setDevice(t),e.bindGroupLayouts=[],e.bufferManager=wn.newInstance(),e.bufferManager.setDevice(t),e.textureManager=OV.newInstance(),e.textureManager.setDevice(t),e.pipelines={},MV(t,e)}const mV=Ee(h0,"vtkWebGPUDevice");var LV={newInstance:mV,extend:h0};function BV(t,e){e.classHierarchy.push("vtkWebGPUHardwareSelectionPass"),t.traverse=(n,r)=>{if(e.deleted)return;e._currentParent=null,t.setCurrentOperation("buildPass"),n.traverse(t);const a=n.getDevice();if(e.selectionRenderEncoder)e.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),e.depthTexture.resizeToMatch(e.colorTexture);else{t.createRenderEncoder(),e.colorTexture=Kt.newInstance({label:"hardwareSelectorColor"}),e.colorTexture.create(a,{width:n.getCanvas().width,height:n.getCanvas().height,format:"rgba32uint",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const s=e.colorTexture.createView("hardwareSelectColorTexture");e.selectionRenderEncoder.setColorTextureView(0,s),e.depthTexture=Kt.newInstance({label:"hardwareSelectorDepth"}),e.depthTexture.create(a,{width:n.getCanvas().width,height:n.getCanvas().height,format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const i=e.depthTexture.createView("hardwareSelectDepthTexture");e.selectionRenderEncoder.setDepthTextureView(i)}e.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(e.selectionRenderEncoder),t.setCurrentOperation("cameraPass"),r.traverse(t),t.setCurrentOperation("opaquePass"),r.traverse(t)},t.createRenderEncoder=()=>{e.selectionRenderEncoder=Jt.newInstance({label:"HardwareSelectionPass"}),e.selectionRenderEncoder.setPipelineHash("sel"),e.selectionRenderEncoder.setReplaceShaderCodeFunction(r=>{const a=r.getShaderDescription("fragment");a.addOutput("vec4","outColor");let s=a.getCode();s=ie.substitute(s,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(mapperUBO.PropID, compositeID, 0u, 0u);"]).result,a.setCode(s)});const n=e.selectionRenderEncoder.getDescription();n.colorAttachments[0].clearValue=[0,0,0,0],e.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba32uint",blend:void 0}]}})}}const kV={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function d0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kV,n),an.extend(t,e,n),E.get(t,e,["colorTexture","depthTexture"]),BV(t,e)}const FV=E.newInstance(d0,"vtkWebGPUHardwareSelectionPass");var UV={newInstance:FV,extend:d0};const{SelectionContent:NV,SelectionField:qc}=hs,{FieldAssociations:Qc}=Pn,{vtkErrorMacro:v0}=E;function bV(t){return`${t.propID} ${t.compositeID}`}function Zc(t,e,n,r){const a=((n.height-e-1)*n.colorBufferWidth+t)*4+r;return n.colorValues[a]}function ar(t,e,n,r){const a=n<0?0:n;if(a===0){if(r[0]=e[0],r[1]=e[1],e[0]<0||e[0]>=t.width||e[1]<0||e[1]>=t.height)return null;const u=Zc(e[0],e[1],t,0);if(u<=0)return null;const c={};c.propID=u;let f=Zc(e[0],e[1],t,1);if((f<0||f>16777215)&&(f=0),c.compositeID=f,t.captureZValues){const l=(t.height-e[1]-1)*t.zbufferBufferWidth+e[0];c.zValue=t.depthValues[l],c.zValue=t.webGPURenderer.convertToOpenGLDepth(c.zValue),c.displayPosition=e}return c}const s=[e[0],e[1]],i=[0,0];let o=ar(t,e,0,r);if(o)return o;for(let u=1;uu?s[1]-u:0;c<=s[1]+u;++c)if(i[1]=c,s[0]>=u&&(i[0]=s[0]-u,o=ar(t,i,0,r),o)||(i[0]=s[0]+u,o=ar(t,i,0,r),o))return o;for(let c=s[0]>=u?s[0]-(u-1):0;c<=s[0]+(u-1);++c)if(i[0]=c,s[1]>=u&&(i[1]=s[1]-u,o=ar(t,i,0,r),o)||(i[1]=s[1]+u,o=ar(t,i,0,r),o))return o}return r[0]=e[0],r[1]=e[1],null}function GV(t,e,n){const r=[];let a=0;return e.forEach((s,i)=>{const o=hs.newInstance();switch(o.setContentType(NV.INDICES),t){case Qc.FIELD_ASSOCIATION_CELLS:o.setFieldType(qc.CELL);break;case Qc.FIELD_ASSOCIATION_POINTS:o.setFieldType(qc.POINT);break;default:v0("Unknown field association")}o.getProperties().propID=s.info.propID;const u=n.webGPURenderer.getPropFromID(s.info.propID);o.getProperties().prop=u.getRenderable(),o.getProperties().compositeID=s.info.compositeID,o.getProperties().pixelCount=s.pixelCount,n.captureZValues&&(o.getProperties().displayPosition=[s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue],o.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue,n.renderer)),o.setSelectionList(s.attributeIDs),r[a]=o,a++}),r}function $V(t,e,n,r,a){const s=Math.floor(e),i=Math.floor(n),o=Math.floor(r),u=Math.floor(a),c=new Map,f=[0,0];for(let l=i;l<=u;l++)for(let g=s;g<=o;g++){const T=ar(t,[g,l],0,f);if(T){const h=bV(T);if(!c.has(h))c.set(h,{info:T,pixelCount:1,attributeIDs:[T.attributeID]});else{const d=c.get(h);d.pixelCount++,t.captureZValues&&T.zValue{e.WebGPURenderer.setSelector(null)},t.getSourceDataAsync=async n=>{if(!n||!e._WebGPURenderWindow)return v0("Renderer and view must be set before calling Select."),!1;e._WebGPURenderWindow.getRenderable().preRender(),e._WebGPURenderWindow.getInitialized()||(e._WebGPURenderWindow.initialize(),await new Promise(p=>{e._WebGPURenderWindow.onInitialized(p)}));const r=e._WebGPURenderWindow.getViewNodeFor(n);if(!r)return!1;const a=r.getSuppressClear();r.setSuppressClear(!0),e._selectionPass.traverse(e._WebGPURenderWindow,r),r.setSuppressClear(a);const s=e._WebGPURenderWindow.getDevice(),i=e._selectionPass.getColorTexture(),o=e._selectionPass.getDepthTexture(),u={area:[0,0,i.getWidth()-1,i.getHeight()-1],captureZValues:e.captureZValues,fieldAssociation:e.fieldAssociation,renderer:n,webGPURenderer:r,webGPURenderWindow:e._WebGPURenderWindow,width:i.getWidth(),height:i.getHeight()};u.colorBufferWidth=16*Math.floor((u.width+15)/16),u.colorBufferSizeInBytes=u.colorBufferWidth*u.height*4*4;const c=dr.newInstance({label:"hardwareSelectColorBuffer"});c.setDevice(s),c.create(u.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const f=e._WebGPURenderWindow.getCommandEncoder();f.copyTextureToBuffer({texture:i.getHandle()},{buffer:c.getHandle(),bytesPerRow:16*u.colorBufferWidth,rowsPerImage:u.height},{width:u.width,height:u.height,depthOrArrayLayers:1});let l;e.captureZValues&&(u.zbufferBufferWidth=64*Math.floor((u.width+63)/64),l=dr.newInstance({label:"hardwareSelectDepthBuffer"}),l.setDevice(s),u.zbufferSizeInBytes=u.height*u.zbufferBufferWidth*4,l.create(u.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),f.copyTextureToBuffer({texture:o.getHandle(),aspect:"depth-only"},{buffer:l.getHandle(),bytesPerRow:4*u.zbufferBufferWidth,rowsPerImage:u.height},{width:u.width,height:u.height,depthOrArrayLayers:1})),s.submitCommandEncoder(f);const g=c.mapAsync(GPUMapMode.READ);if(e.captureZValues){const p=l.mapAsync(GPUMapMode.READ);await Promise.all([g,p]),u.depthValues=new Float32Array(l.getMappedRange().slice()),l.unmap()}else await g;return u.colorValues=new Uint32Array(c.getMappedRange().slice()),c.unmap(),u.generateSelection=(p,T,h,d)=>$V(u,p,T,h,d),u}}const zV={};function y0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zV,n),Kg.extend(t,e,n),e._selectionPass=UV.newInstance(),E.setGet(t,e,["_WebGPURenderWindow"]),E.moveToProtected(t,e,["WebGPURenderWindow"]),WV(t,e)}const AV=E.newInstance(y0,"vtkWebGPUHardwareSelector");var T0={newInstance:AV,extend:y0};const{vtkErrorMacro:Jc}=E,HV={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function jV(t,e){e.classHierarchy.push("vtkWebGPURenderWindow"),t.getViewNodeFactory=()=>e.myFactory;const n=[0,0];function r(){e.renderable&&(e.size[0]!==n[0]||e.size[1]!==n[1])&&(n[0]=e.size[0],n[1]=e.size[1],e.canvas.setAttribute("width",e.size[0]),e.canvas.setAttribute("height",e.size[1]),t.recreateSwapChain()),e.viewStream&&e.viewStream.setSize(e.size[0],e.size[1]),e.canvas.style.display=e.useOffScreen?"none":"block",e.el&&(e.el.style.cursor=e.cursorVisibility?e.cursor:"none"),e.containerSize=null}t.onModified(r),t.recreateSwapChain=()=>{e.context&&(e.context.unconfigure(),e.presentationFormat=navigator.gpu.getPreferredCanvasFormat(e.adapter),e.context.configure({device:e.device.getHandle(),format:e.presentationFormat,alphaMode:"premultiplied",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:e.size[0],height:e.size[1]}),e._configured=!0)},t.getCurrentTexture=()=>e.context.getCurrentTexture(),t.buildPass=i=>{if(i){if(!e.renderable)return;t.prepareNodes(),t.addMissingNodes(e.renderable.getRenderersByReference()),t.removeUnusedNodes(),t.initialize()}else e.initialized&&(e._configured||t.recreateSwapChain(),e.commandEncoder=e.device.createCommandEncoder())},t.initialize=()=>{if(!e.initializing){if(e.initializing=!0,!navigator.gpu){Jc("WebGPU is not enabled.");return}t.create3DContextAsync().then(()=>{e.initialized=!0,!e.deleted&&t.invokeInitialized()})}},t.setContainer=i=>{e.el&&e.el!==i&&(e.canvas.parentNode!==e.el&&Jc("Error: canvas parent node does not match container"),e.el.removeChild(e.canvas),e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)),e.el!==i&&(e.el=i,e.el&&(e.el.appendChild(e.canvas),e.useBackgroundImage&&e.el.appendChild(e.bgImage)),t.modified())},t.getContainer=()=>e.el,t.getContainerSize=()=>{if(!e.containerSize&&e.el){const{width:i,height:o}=e.el.getBoundingClientRect();e.containerSize=[i,o]}return e.containerSize||e.size},t.getFramebufferSize=()=>e.size,t.create3DContextAsync=async()=>{if(e.adapter=await navigator.gpu.requestAdapter({powerPreference:"high-performance"}),!e.deleted){if(e.device=LV.newInstance(),e.device.initialize(await e.adapter.requestDevice()),e.deleted){e.device=null;return}e.context=e.canvas.getContext("webgpu")}},t.releaseGraphicsResources=()=>{const i=an.newInstance();i.setCurrentOperation("Release"),i.traverse(t,null),e.adapter=null,e.device=null,e.context=null,e.initialized=!1,e.initializing=!1},t.setBackgroundImage=i=>{e.bgImage.src=i.src},t.setUseBackgroundImage=i=>{e.useBackgroundImage=i,e.useBackgroundImage&&!e.el.contains(e.bgImage)?e.el.appendChild(e.bgImage):!e.useBackgroundImage&&e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)};async function a(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.imageFormat;const o=document.createElement("canvas"),u=o.getContext("2d");o.width=e.canvas.width,o.height=e.canvas.height;const c=await t.getPixelsAsync(),f=new ImageData(c.colorValues,c.width,c.height);u.putImageData(f,0,0);const l=e.canvas.getBoundingClientRect();e.renderable.getRenderers().forEach(h=>{h.getViewProps().forEach(x=>{if(x.getContainer){const y=x.getContainer().getElementsByTagName("canvas");for(let v=0;v0&&arguments[0]!==void 0?arguments[0]:"image/png",{resetCamera:o=!1,size:u=null,scale:c=1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.deleted)return null;e.imageFormat=i;const f=e.notifyStartCaptureImage;return e.notifyStartCaptureImage=!0,e._screenshot={size:u||c!==1?u||e.size.map(l=>l*c):null},new Promise((l,g)=>{const p=t.onImageReady(T=>{if(e._screenshot.size===null)e.notifyStartCaptureImage=f,p.unsubscribe(),e._screenshot.placeHolder&&(e.size=e._screenshot.originalSize,t.modified(),e._screenshot.cameras&&e._screenshot.cameras.forEach(h=>{let{restoreParamsFn:d,arg:x}=h;return d(x)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),l(T);else{const h=document.createElement("img");if(h.style=HV,h.src=T,e._screenshot.placeHolder=e.el.appendChild(h),e.canvas.style.display="none",e._screenshot.originalSize=e.size,e.size=e._screenshot.size,e._screenshot.size=null,t.modified(),o){const d=o!==!0;e._screenshot.cameras=e.renderable.getRenderers().map(x=>{const C=x.getActiveCamera(),y=C.get("focalPoint","position","parallelScale");return{resetCameraArgs:d?{renderer:x}:void 0,resetCameraFn:d?o:x.resetCamera,restoreParamsFn:C.set,arg:JSON.parse(JSON.stringify(y))}}),e._screenshot.cameras.forEach(x=>{let{resetCameraFn:C,resetCameraArgs:y}=x;return C(y)})}t.traverseAllPasses()}})})},t.traverseAllPasses=()=>{if(!e.deleted)if(e.initialized){if(e.renderPasses)for(let i=0;i{a()}))}else{t.initialize();const i=t.onInitialized(()=>{i.unsubscribe(),t.traverseAllPasses()})}},t.setViewStream=i=>{if(e.viewStream===i)return!1;if(e.subscription&&(e.subscription.unsubscribe(),e.subscription=null),e.viewStream=i,e.viewStream){const o=e.renderable.getRenderers()[0];o.getBackgroundByReference()[3]=0,t.setUseBackgroundImage(!0),e.subscription=e.viewStream.onImageReady(u=>t.setBackgroundImage(u.image)),e.viewStream.setSize(e.size[0],e.size[1]),e.viewStream.invalidateCache(),e.viewStream.render(),t.modified()}return!0},t.getUniquePropID=()=>e.nextPropID++,t.getPropFromID=i=>{for(let o=0;o{const i=e.device,o=e.renderPasses[0].getOpaquePass().getColorTexture(),u={width:o.getWidth(),height:o.getHeight()};u.colorBufferWidth=32*Math.floor((u.width+31)/32),u.colorBufferSizeInBytes=u.colorBufferWidth*u.height*8;const c=dr.newInstance();c.setDevice(i),c.create(u.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const f=e.device.createCommandEncoder();f.copyTextureToBuffer({texture:o.getHandle()},{buffer:c.getHandle(),bytesPerRow:8*u.colorBufferWidth,rowsPerImage:u.height},{width:u.width,height:u.height,depthOrArrayLayers:1}),i.submitCommandEncoder(f),await c.mapAsync(GPUMapMode.READ),u.colorValues=new Uint16Array(c.getMappedRange().slice()),c.unmap();const g=new Uint8ClampedArray(u.height*u.width*4);for(let p=0;p{const i=T0.newInstance();return i.setWebGPURenderWindow(t),i};const s=t.setSize;t.setSize=(i,o)=>{const u=s(i,o);return u&&t.invokeWindowResizeEvent({width:i,height:o}),u},t.delete=E.chain(t.delete,t.setViewStream)}const KV={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:"pointer",containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};function PV(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KV,n),e.canvas=document.createElement("canvas"),e.canvas.style.width="100%",e.bgImage=new Image,e.bgImage.style.position="absolute",e.bgImage.style.left="0",e.bgImage.style.top="0",e.bgImage.style.width="100%",e.bgImage.style.height="100%",e.bgImage.style.zIndex="-1",a0.extend(t,e,n),e.myFactory=M_.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",x0),e.renderPasses[0]=wV.newInstance(),e.selector||(e.selector=T0.newInstance(),e.selector.setWebGPURenderWindow(t)),E.event(t,e,"imageReady"),E.event(t,e,"initialized"),E.get(t,e,["commandEncoder","device","presentationFormat","useBackgroundImage","xrSupported"]),E.setGet(t,e,["initialized","context","canvas","device","renderPasses","notifyStartCaptureImage","cursor","useOffScreen"]),E.setGetArray(t,e,["size"],2),E.event(t,e,"windowResizeEvent"),jV(t,e)}const x0=E.newInstance(PV,"vtkWebGPURenderWindow");go("WebGPU",x0);const XV=KD.extractURLParameters(),IV={margin:"0",padding:"0",position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"},YV={position:"absolute",left:"25px",top:"25px",backgroundColor:"white",borderRadius:"5px",listStyle:"none",padding:"5px 10px",margin:"0",display:"block",border:"solid 1px black",maxWidth:"calc(100% - 70px)",maxHeight:"calc(100% - 60px)",overflow:"auto"};function eu(t,e){Object.keys(e).forEach(n=>{t.style[n]=e[n]})}function qV(t,e){e.classHierarchy.push("vtkFullScreenRenderWindow");const n=document.querySelector("body");e.rootContainer||(e.rootContainer=n),e.container||(e.container=document.createElement("div"),eu(e.container,e.containerStyle||IV),e.rootContainer.appendChild(e.container)),e.rootContainer===n&&(document.documentElement.style.height="100%",n.style.height="100%",n.style.padding="0",n.style.margin="0"),e.renderWindow=TD.newInstance(),e.renderer=gD.newInstance(),e.renderWindow.addRenderer(e.renderer),e.apiSpecificRenderWindow=e.renderWindow.newAPISpecificView(XV.viewAPI??e.defaultViewAPI),e.apiSpecificRenderWindow.setContainer(e.container),e.renderWindow.addView(e.apiSpecificRenderWindow),e.interactor=Ng.newInstance(),e.interactor.setInteractorStyle(AD.newInstance()),e.interactor.setView(e.apiSpecificRenderWindow),e.interactor.initialize(),e.interactor.bindEvents(e.container),t.setBackground=e.renderer.setBackground,t.removeController=()=>{const r=e.controlContainer;r&&r.parentNode.removeChild(r)},t.setControllerVisibility=r=>{e.controllerVisibility=r,e.controlContainer&&(r?e.controlContainer.style.display="block":e.controlContainer.style.display="none")},t.toggleControllerVisibility=()=>{t.setControllerVisibility(!e.controllerVisibility)},t.addController=r=>{e.controlContainer=document.createElement("div"),eu(e.controlContainer,e.controlPanelStyle||YV),e.rootContainer.appendChild(e.controlContainer),e.controlContainer.innerHTML=r,t.setControllerVisibility(e.controllerVisibility),e.rootContainer.addEventListener("keypress",a=>{String.fromCharCode(a.charCode)==="c"&&t.toggleControllerVisibility()})},t.setBackground(...e.background),t.addRepresentation=r=>{r.getActors().forEach(a=>{e.renderer.addActor(a)})},t.removeRepresentation=r=>{r.getActors().forEach(a=>e.renderer.removeActor(a))},t.delete=E.chain(t.setContainer,e.apiSpecificRenderWindow.delete,t.delete),t.resize=()=>{const r=e.container.getBoundingClientRect(),a=window.devicePixelRatio||1;e.apiSpecificRenderWindow.setSize(Math.floor(r.width*a),Math.floor(r.height*a)),e.resizeCallback&&e.resizeCallback(r),e.renderWindow.render()},t.setResizeCallback=r=>{e.resizeCallback=r,t.resize()},e.listenWindowResize&&window.addEventListener("resize",t.resize),t.resize()}const QV={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function S0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QV,n),E.obj(t,e),E.get(t,e,["renderWindow","renderer","apiSpecificRenderWindow","interactor","rootContainer","container","controlContainer"]),qV(t,e)}const ZV=E.newInstance(S0);var JV={newInstance:ZV,extend:S0};const em={RGB:0,HSV:1,LAB:2,DIVERGING:3},tm={LINEAR:0,LOG10:1};var C0={ColorSpace:em,Scale:tm};const{ColorSpace:Ct,Scale:w0}=C0,{ScalarMappingTarget:Ma}=ls,{vtkDebugMacro:nm,vtkErrorMacro:Yt,vtkWarningMacro:rm}=E;function tu(t,e){const n=t[0],r=t[1],a=t[2],s=Math.sqrt(n*n+r*r+a*a),i=s>.001?Math.acos(n/s):0,o=i>.001?Math.atan2(a,r):0;e[0]=s,e[1]=i,e[2]=o}function am(t,e){const n=t[0],r=t[1],a=t[2];e[0]=n*Math.cos(r),e[1]=n*Math.sin(r)*Math.cos(a),e[2]=n*Math.sin(r)*Math.sin(a)}function nu(t,e){if(t[0]>=e-.1)return t[2];const n=t[1]*Math.sqrt(e*e-t[0]*t[0])/(t[0]*Math.sin(t[1]));return t[2]>-.3*Math.PI?t[2]+n:t[2]-n}function sm(t,e){let n=t-e;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}function ru(t,e,n,r){const a=[],s=[];ir(e,a),ir(n,s);const i=[],o=[];tu(a,i),tu(s,o);let u=t;if(i[1]>.05&&o[1]>.05&&sm(i[2],o[2])>.33*Math.PI){let l=Math.max(i[0],o[0]);l=Math.max(88,l),t<.5?(o[0]=l,o[1]=0,o[2]=0,u*=2):(i[0]=l,i[1]=0,i[2]=0,u=2*u-1)}i[1]<.05&&o[1]>.05?i[2]=nu(o,i[0]):o[1]<.05&&i[1]>.05&&(o[2]=nu(i,o[0]));const c=[];c[0]=(1-u)*i[0]+u*o[0],c[1]=(1-u)*i[1]+u*o[1],c[2]=(1-u)*i[2]+u*o[2];const f=[];am(c,f),fi(f,r)}function im(t,e){e.classHierarchy.push("vtkColorTransferFunction"),t.getSize=()=>e.nodes.length,t.addRGBPoint=(n,r,a,s)=>t.addRGBPointLong(n,r,a,s,.5,0),t.addRGBPointLong=function(n,r,a,s){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(i<0||i>1)return Yt("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return Yt("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(n);const u={x:n,r,g:a,b:s,midpoint:i,sharpness:o};e.nodes.push(u),t.sortAndUpdateRange();let c=0;for(;ct.addHSVPointLong(n,r,a,s,.5,0),t.addHSVPointLong=function(n,r,a,s){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;const u=[];return nr([r,a,s],u),t.addRGBPoint(n,u[0],u[1],u[2],i,o)},t.setNodes=n=>{if(e.nodes!==n){const r=JSON.stringify(e.nodes);e.nodes=n;const a=JSON.stringify(e.nodes);if(t.sortAndUpdateRange()||r!==a)return t.modified(),!0}return!1},t.sortAndUpdateRange=()=>{const n=JSON.stringify(e.nodes);e.nodes.sort((s,i)=>s.x-i.x);const r=JSON.stringify(e.nodes),a=t.updateRange();return!a&&n!==r?(t.modified(),!0):a},t.updateRange=()=>{const n=[2];n[0]=e.mappingRange[0],n[1]=e.mappingRange[1];const r=e.nodes.length;return r?(e.mappingRange[0]=e.nodes[0].x,e.mappingRange[1]=e.nodes[r-1].x):(e.mappingRange[0]=0,e.mappingRange[1]=0),n[0]===e.mappingRange[0]&&n[1]===e.mappingRange[1]?!1:(t.modified(),!0)},t.removePoint=n=>{let r=0;for(;r=e.nodes.length)return-1;let s=!1;return e.nodes.splice(r,1),(r===0||r===e.nodes.length)&&(s=t.updateRange()),s||t.modified(),a},t.movePoint=(n,r)=>{if(n!==r){t.removePoint(r);for(let a=0;a{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(n,r,a,s,i,o,u,c)=>{t.sortAndUpdateRange();for(let f=0;f=n&&e.nodes[f].x<=i?e.nodes.splice(f,1):f++;t.addRGBPointLong(n,r,a,s,.5,0),t.addRGBPointLong(i,o,u,c,.5,0),t.modified()},t.addHSVSegment=(n,r,a,s,i,o,u,c)=>{const f=[r,a,s],l=[o,u,c],g=[],p=[];nr(f,g),nr(l,p),t.addRGBSegment(n,g[0],g[1],g[2],i,p[0],p[1],p[2])},t.mapValue=n=>{const r=[];return t.getColor(n,r),[Math.floor(255*r[0]+.5),Math.floor(255*r[1]+.5),Math.floor(255*r[2]+.5),255]},t.getColor=(n,r)=>{if(e.indexedLookup){const a=t.getSize(),s=t.getAnnotatedValueIndexInternal(n);if(s<0||a===0){const i=t.getNanColorByReference();r[0]=i[0],r[1]=i[1],r[2]=i[2]}else{const i=[];t.getNodeValue(s%a,i),r[0]=i[1],r[1]=i[2],r[2]=i[3]}return}t.getTable(n,n,1,r)},t.getRedValue=n=>{const r=[];return t.getColor(n,r),r[0]},t.getGreenValue=n=>{const r=[];return t.getColor(n,r),r[1]},t.getBlueValue=n=>{const r=[];return t.getColor(n,r),r[2]},t.getTable=(n,r,a,s)=>{const i=Number(n),o=Number(r);if(qa(i)||qa(o)){for(let m=0;m0);let S=0,R=0,M=0;w&&(S=Math.log10(i),R=Math.log10(o));for(let m=0;m1?w?(M=S+m/(a-1)*(R-S),p=10**M):p=i+m/(a-1)*(o-i):w?(M=.5*(S+R),p=10**M):p=.5*(i+o),e.discretize){const V=e.mappingRange;if(p>=V[0]&&p<=V[1]){const B=e.numberOfValues,b=V[1]-V[0];if(B<=1)p=V[0]+b/2;else{const U=(p-V[0])/b,Y=q2(B*U);p=V[0]+Y/(B-1)*b}}}for(;ue.nodes[u].x;)u++,u.99999&&(C=.99999));if(p>e.mappingRange[1])s[O]=0,s[O+1]=0,s[O+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(s[O]=e.aboveRangeColor[0],s[O+1]=e.aboveRangeColor[1],s[O+2]=e.aboveRangeColor[2]):(s[O]=f,s[O+1]=l,s[O+2]=g));else if(p0&&(s[O]=e.nodes[0].r,s[O+1]=e.nodes[0].g,s[O+2]=e.nodes[0].b));else if(u===0&&(Math.abs(p-i)<1e-6||e.discretize))c>0?(s[O]=e.nodes[0].r,s[O+1]=e.nodes[0].g,s[O+2]=e.nodes[0].b):(s[O]=0,s[O+1]=0,s[O+2]=0);else{let V=0;if(w?V=(M-T)/(h-T):V=(p-T)/(h-T),V.99)if(V<.5){s[O]=d[0],s[O+1]=d[1],s[O+2]=d[2];continue}else{s[O]=x[0],s[O+1]=x[1],s[O+2]=x[2];continue}if(y<.01){if(e.colorSpace===Ct.RGB)s[O]=(1-V)*d[0]+V*x[0],s[O+1]=(1-V)*d[1]+V*x[1],s[O+2]=(1-V)*d[2]+V*x[2];else if(e.colorSpace===Ct.HSV){const k=[],j=[];ca(d,k),ca(x,j),e.hSVWrap&&(k[0]-j[0]>.5||j[0]-k[0]>.5)&&(k[0]>j[0]?k[0]-=1:j[0]-=1);const K=[];K[0]=(1-V)*k[0]+V*j[0],K[0]<0&&(K[0]+=1),K[1]=(1-V)*k[1]+V*j[1],K[2]=(1-V)*k[2]+V*j[2],nr(K,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]}else if(e.colorSpace===Ct.LAB){const k=[],j=[];ir(d,k),ir(x,j);const K=[];K[0]=(1-V)*k[0]+V*j[0],K[1]=(1-V)*k[1]+V*j[1],K[2]=(1-V)*k[2]+V*j[2],fi(K,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]}else e.colorSpace===Ct.DIVERGING?(ru(V,d,x,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]):Yt("ColorSpace set to invalid value.",e.colorSpace);continue}V<.5?V=.5*(V*2)**(1+10*y):V>.5&&(V=1-.5*((1-V)*2)**(1+10*y));const B=V*V,b=B*V,U=2*b-3*B+1,Y=-2*b+3*B,q=b-2*B+V,Z=b-B;let re,G;if(e.colorSpace===Ct.RGB)for(let k=0;k<3;k++)re=x[k]-d[k],G=(1-y)*re,s[O+k]=U*d[k]+Y*x[k]+q*G+Z*G;else if(e.colorSpace===Ct.HSV){const k=[],j=[];ca(d,k),ca(x,j),e.hSVWrap&&(k[0]-j[0]>.5||j[0]-k[0]>.5)&&(k[0]>j[0]?k[0]-=1:j[0]-=1);const K=[];for(let P=0;P<3;P++)re=j[P]-k[P],G=(1-y)*re,K[P]=U*k[P]+Y*j[P]+q*G+Z*G,P===0&&K[P]<0&&(K[P]+=1);nr(K,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]}else if(e.colorSpace===Ct.LAB){const k=[],j=[];ir(d,k),ir(x,j);const K=[];for(let P=0;P<3;P++)re=j[P]-k[P],G=(1-y)*re,K[P]=U*k[P]+Y*j[P]+q*G+Z*G;fi(K,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]}else e.colorSpace===Ct.DIVERGING?(ru(V,d,x,v),s[O]=v[0],s[O+1]=v[1],s[O+2]=v[2]):Yt("ColorSpace set to invalid value.");for(let k=0;k<3;k++)s[O+k]=s[O+k]<0?0:s[O+k],s[O+k]=s[O+k]>1?1:s[O+k]}}},t.getUint8Table=function(n,r,a){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(t.getMTime()<=e.buildTime&&e.tableSize===a&&e.tableWithAlpha!==s)return e.table;if(e.nodes.length===0)return Yt("Attempting to lookup a value with no points in the function"),e.table;const i=s?4:3;(e.tableSize!==a||e.tableWithAlpha!==s)&&(e.table=new Uint8Array(a*i),e.tableSize=a,e.tableWithAlpha=s);const o=[];t.getTable(n,r,a,o);for(let u=0;u{t.removeAllPoints();const r=n.getNumberOfComponents();for(let a=0;a{let i=0;t.removeAllPoints(),a>1&&(i=(r-n)/(a-1));for(let o=0;on<0||n>=e.nodes.length?(Yt("Index out of range!"),-1):(r[0]=e.nodes[n].x,r[1]=e.nodes[n].r,r[2]=e.nodes[n].g,r[3]=e.nodes[n].b,r[4]=e.nodes[n].midpoint,r[5]=e.nodes[n].sharpness,1),t.setNodeValue=(n,r)=>{if(n<0||n>=e.nodes.length)return Yt("Index out of range!"),-1;const a=e.nodes[n].x;return e.nodes[n].x=r[0],e.nodes[n].r=r[1],e.nodes[n].g=r[2],e.nodes[n].b=r[3],e.nodes[n].midpoint=r[4],e.nodes[n].sharpness=r[5],a!==r[0]?t.sortAndUpdateRange():t.modified(),1},t.getNumberOfAvailableColors=()=>e.indexedLookup&&t.getSize()?t.getSize():e.tableSize?e.tableSize:16777216,t.getIndexedColor=(n,r)=>{const a=t.getSize();if(a>0&&n>=0){const i=[];t.getNodeValue(n%a,i);for(let o=0;o<3;++o)r[o]=i[o+1];r[3]=1;return}const s=t.getNanColorByReference();r[0]=s[0],r[1]=s[1],r[2]=s[2],r[3]=1},t.fillFromDataPointer=(n,r)=>{if(!(n<=0||!r)){t.removeAllPoints();for(let a=0;a{const a=[n,r],s=t.getRange();if(s[1]===a[1]&&s[0]===a[0])return;if(a[1]===a[0]){Yt("attempt to set zero width color range");return}const i=(a[1]-a[0])/(s[1]-s[0]),o=a[0]-s[0]*i;for(let u=0;u{const r=t.getRange(),a=[];r[0]n[1]?(t.getColor(n[1],a),t.addRGBPoint(n[1],a[0],a[1],a[2])):(t.getColor(r[1],a),t.addRGBPoint(n[1],a[0],a[1],a[2])),t.sortAndUpdateRange();for(let s=0;s=n[0]&&e.nodes[s].x<=n[1]?e.nodes.splice(s,1):++s;return 1},t.estimateMinNumberOfSamples=(n,r)=>{const a=t.findMinimumXDistance();return Math.ceil((r-n)/a)},t.findMinimumXDistance=()=>{if(e.nodes.length<2)return-1;let n=Number.MAX_VALUE;for(let r=0;r{if(t.getSize()===0){nm("Transfer Function Has No Points!");return}e.indexedLookup?t.mapDataIndexed(n,r,a,s):t.mapData(n,r,a,s)},t.mapData=(n,r,a,s)=>{if(t.getSize()===0){rm("Transfer Function Has No Points!");return}const i=Math.floor(t.getAlpha()*255+.5),o=n.getNumberOfTuples(),u=n.getNumberOfComponents(),c=r.getData(),f=n.getData(),l=[];if(a===Ma.RGBA)for(let g=0;g{const r=JSON.stringify(e.colorSpace);n.ColorSpace&&(e.colorSpace=Ct[n.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(Yt(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),e.colorSpace=Ct.RGB));let a=r!==JSON.stringify(e.colorSpace);const s=a||JSON.stringify(e.nanColor);if(n.NanColor)for(e.nanColor=[].concat(n.NanColor);e.nanColor.length<4;)e.nanColor.push(1);a=a||s!==JSON.stringify(e.nanColor);const i=a||JSON.stringify(e.nodes);if(n.RGBPoints){const c=n.RGBPoints.length;e.nodes=[];const f=.5,l=0;for(let g=0;g2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,om,n),ls.extend(t,e,n),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},E.obj(e.buildTime),E.get(t,e,["buildTime","mappingRange"]),E.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),E.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),E.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),im(t,e)}const cm=E.newInstance(E0,"vtkColorTransferFunction");var um={newInstance:cm,extend:E0,...C0};function fm(t,e){e.classHierarchy.push("vtkSphereSource"),t.requestData=(n,r)=>{if(e.deleted)return;let a=r[0];const s=a?a.getPoints().getDataType():e.pointType;a=nn.newInstance();let i=0,{thetaResolution:o}=e,u=e.startThetae.startTheta?e.endTheta:e.startTheta;c*=Math.PI/180;let f=e.startPhie.startPhi?e.endPhi:e.startPhi;l*=Math.PI/180,Math.abs(u-c)<2*Math.PI&&++o;const g=(c-u)/e.thetaResolution,p=e.startPhi<=0?1:0,T=e.phiResolution+(e.endPhi>=180?-1:0),h=e.phiResolution*o+2,d=e.phiResolution*2*e.thetaResolution;let x=0,C=E.newTypedArray(s,h*3),y=new Float32Array(h*3),v=0,w=new Uint32Array(d*5);e.startPhi<=0&&(C[x*3+0]=e.center[0],C[x*3+1]=e.center[1],C[x*3+2]=e.center[2]+e.radius,y[x*3+0]=0,y[x*3+1]=0,y[x*3+2]=1,x++,i++),e.endPhi>=180&&(C[x*3+0]=e.center[0],C[x*3+1]=e.center[1],C[x*3+2]=e.center[2]-e.radius,y[x*3+0]=0,y[x*3+1]=0,y[x*3+2]=-1,x++,i++);const S=e.phiResolution-i,R=(l-f)/(e.phiResolution-1);for(let O=0;O=180){const O=S-1+i;for(let V=0;V2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lm,n),E.obj(t,e),E.setGet(t,e,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),E.setGetArray(t,e,["center"],3),E.algo(t,e,0,1),fm(t,e)}E.newInstance(gm,"vtkSphereSource");class pm{constructor(){this.renderWindowWith=JV.newInstance(),this.renderer=this.renderWindowWith.getRenderer(),this.renderWindow=this.renderWindowWith.getRenderWindow(),this.polyData=nn.newInstance(),this.mapper=Cn.newInstance(),this.actor=en.newInstance(),this.actor.getProperty().setRepresentation(rt.SURFACE),this.actor.getProperty().setColor([0,0,1]),this.mapper.setInputData(this.polyData),this.actor.setMapper(this.mapper),this.renderer.addActor(this.actor),this.actor2=en.newInstance(),this.actor2.getProperty().setRepresentation(rt.POINTS),this.actor2.getProperty().setColor([2,0,0]),this.actor2.getProperty().setPointSize(2),this.actor2.setMapper(this.mapper),this.renderer.addActor(this.actor2),this.interactor=this.renderer.getRenderWindow().getInteractor(),this.apiSpecificRenderWindow=this.interactor.getView(),this.hardwareSelector=this.apiSpecificRenderWindow.getSelector(),this.hardwareSelector.setCaptureZValues(!0),this.hardwareSelector.setFieldAssociation(pl.FIELD_ASSOCIATION_POINTS),this.jgActor=en.newInstance(),this.jgMapper=Cn.newInstance(),this.jgActor.getProperty().setRepresentation(rt.SURFACE),this.scalarBarActor=uo.newInstance(),this.scalarBarActor.setGenerateTicks(this.generateTicks(5)),this.scalarBarActor.setDrawAboveRangeSwatch(!0);const e=um.newInstance();e.addRGBPoint(0,0,0,1),e.addRGBPoint(1,0,1,.5),e.addRGBPoint(2,0,1,0),e.addRGBPoint(3,1,.5,0),e.addRGBPoint(4,1,0,0),this.jgMapper.setLookupTable(e);const n=this.jgMapper.getLookupTable();this.scalarBarActor.setScalarsToColors(n)}generateTicks(e){return n=>{const r=n.getLastTickBounds(),a=os().domain([0,1]).range([r[0],r[1]]),i=a.ticks(e).map(c=>a(c));Xu({minus:"-"});const o=a.tickFormat(i[0],i[i.length-1],e),u=i.map(o).map(c=>Number(parseFloat(c).toPrecision(12)).toPrecision());n.setTicks(i),n.setTickStrings(u)}}clearModeAddJg(){this.renderer.addActor(this.jgActor),this.renderer.addActor(this.scalarBarActor),this.renderer.removeActor(this.actor),this.renderer.removeActor(this.actor2)}clearJgAddMode(){this.renderer.addActor(this.actor),this.renderer.addActor(this.actor2),this.renderer.removeActor(this.scalarBarActor),this.renderer.removeActor(this.jgActor)}}const Ht=new pm,To={};function _0(t){return!!To[t]}function hm(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"http",e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return To[t](e)}function R0(t,e){To[t]=e}var dm={get:hm,has:_0,registerType:R0};const vm={bit:Uint8Array,unsigned_char:Uint8Array,char:Int8Array,unsigned_short:Uint16Array,short:Int16Array,unsigned_int:Uint32Array,int:Int32Array,unsigned_long:Uint32Array,long:Int32Array,float:Float32Array,double:Float64Array};function Is(t,e,n){let r=0;function a(s){return s.split(" ").forEach(i=>{i.length&&(t[r++]=Number(i))}),r1&&arguments[1]!==void 0?arguments[1]:{},n=null;const a=/\r?\n/.exec(t),s=a!==null?a[0]:null;return t.split(s).forEach((i,o)=>{if(!(o<0)){if(!n){if(n=Tm(i),!n)return;n=n.init(i,e)?n:null;return}n&&!n.parse(i,e)&&(n=null)}}),e}var Sm={parseLegacyASCII:xm};function O0(){const t=new ArrayBuffer(4),e=new Uint8Array(t),n=new Uint32Array(t);return e[0]=161,e[1]=178,e[2]=195,e[3]=212,n[0]===3569595041?"LittleEndian":n[0]===2712847316?"BigEndian":null}const Cm=O0();function wm(t,e){if(e<2)return;const n=new Int8Array(t),r=n.length,a=[];for(let s=0;s(D0("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead."),Promise.reject(new Error("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.")));let vr=0;function ds(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=new XMLHttpRequest;return r.open(t,e,!0),n.headers&&Object.entries(n.headers).forEach(a=>{let[s,i]=a;return r.setRequestHeader(s,i)}),n.progressCallback&&r.addEventListener("progress",n.progressCallback),r}function _m(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((n,r)=>{const a=ds("GET",t,e);a.onreadystatechange=s=>{a.readyState===4&&(a.status===200||a.status===0?n(a.response):r({xhr:a,e:s}))},a.responseType="arraybuffer",a.send()})}function Rm(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return r&&r.compression?xo():n.ref&&!n.ref.pending?new Promise((a,s)=>{const i=[e,n.ref.basepath,n.ref.id].join("/"),o=ds("GET",i,r);o.onreadystatechange=u=>{o.readyState===1&&(n.ref.pending=!0,++vr===1&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!0)),o.readyState===4&&(n.ref.pending=!1,o.status===200||o.status===0?(n.buffer=o.response,n.ref.encode==="JSON"?n.values=JSON.parse(n.buffer):(Ys.ENDIANNESS!==n.ref.encode&&Ys.ENDIANNESS&&(Em(`Swap bytes of ${n.name}`),Ys.swapBytes(n.buffer,al[n.dataType])),n.values=E.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&&D0(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,--vr===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),t!=null&&t.modified&&t.modified(),a(n)):s({xhr:o,e:u}))},o.responseType=n.dataType!=="string"?"arraybuffer":"text",o.send()}):Promise.resolve(n)}function Om(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?xo():new Promise((r,a)=>{const s=ds("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++vr===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--vr===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),s.status===200||s.status===0?r(JSON.parse(s.responseText)):a({xhr:s,e:i}))},s.responseType="text",s.send()})}function Dm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?xo():new Promise((r,a)=>{const s=ds("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++vr===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--vr===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),s.status===200||s.status===0?r(s.responseText):a({xhr:s,e:i}))},s.responseType="text",s.send()})}function Mm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new Promise((r,a)=>{const s=new Image;n.crossOrigin&&(s.crossOrigin=n.crossOrigin),s.onload=()=>r(s),s.onerror=a,s.src=e})}const Vm={fetchArray:Rm,fetchJSON:Om,fetchText:Dm,fetchBinary:_m,fetchImage:Mm};_0("http")||R0("http",t=>Vm);function mm(t,e){e.classHierarchy.push("vtkUnstructuredDataReader"),e.dataAccessHelper||(e.dataAccessHelper=dm.get("http"));function n(r){const{compression:a,progressCallback:s}=e;return e.dataAccessHelper.fetchText(t,r,{compression:a,progressCallback:s})}t.setUrl=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.url=r;const s=r.split("/");return s.pop(),e.baseURL=s.join("/"),e.compression=a.compression,t.loadData({progressCallback:a.progressCallback})},t.loadData=function(){const r=n(e.url);return r.then(t.parseAsText),r},t.parseAsText=r=>{if(r){if(r!==e.parseData)t.modified();else return;e.parseData=r,e.dataModel=Sm.parseLegacyASCII(e.parseData),e.output[0]=e.dataModel.dataset,e.output[1]=e.dataModel.scalars}},t.requestData=(r,a)=>{t.parseAsText(e.parseData)}}const Lm={};function M0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Lm,n),E.obj(t,e),E.get(t,e,["url","baseURL"]),E.setGet(t,e,["dataAccessHelper"]),E.algo(t,e,0,1),mm(t,e),e.compression||(e.compression=null),e.progressCallback||(e.progressCallback=null)}const Bm=E.newInstance(M0,"vtkUnstructuredDataReader");var km={newInstance:Bm,extend:M0};class Fm{constructor(){this.aid=5,this.step,this.stepsum=10,this._url="/disaster/TransServlet?channelNo=service&clientToken=e47b87eec69545559d1e81e56626da68&userId=5f06c8bc77234f969d13e160b54c27e3&aid=",this.polydata,this.scalars=new Array,this.scalar=new Map,this.reader=km.newInstance()}async initGemetry(){const e=this._url+this.aid+"&transCode=D000014";await this.reader.setUrl(e).then(()=>{this.polydata=this.reader.getOutputData(0)})}async initScalrs(){for(let e=0;e<=this.stepsum;e++)await this.reader.setUrl(this._url+"&transCode=D00009&step="+e).then(()=>{const n=this.reader.getOutputData(1);this.scalars.push(n)})}async getScalrsByStep(e){this.step=e;const n=this._url+this.aid+"&transCode=D00009&step="+this.step;await this.reader.setUrl(n).then(()=>{const r=this.reader.getOutputData(1);this.scalar=r})}}function Um(){return new Fm}const Er=t=>(Kr("data-v-649299a5"),t=t(),Pr(),t),Nm={class:"l_Dialog"},bm={class:"result"},Gm={class:"newtime"},$m={class:"newtime"},Wm={class:"animation_s"},zm={class:"tanniu"},Am=Er(()=>_("p",null,"后退",-1)),Hm=Er(()=>_("p",null,"播放",-1)),jm=Er(()=>_("p",null,"暂停",-1)),Km=Er(()=>_("p",null,"快进",-1)),Pm={class:"demo-collapse jiancedian asideg1 collapseeion"},Xm={class:"jc_header he_pading color1"},Im={class:"jc_content tablecolor"},Ym={class:"jc_padding"},qm={class:"xian"},Qm=Er(()=>_("div",{class:"jc_header color1"},[_("span",{class:"jc_tile"},"锋面定义")],-1)),Zm=Er(()=>_("div",{style:{height:"200px"}},null,-1)),Jm={__name:"InfoAnimation",props:{classradio:{type:String}},emits:[],setup(t,{expose:e,emit:n}){const r=t,a=$(["1"]),s=$(0),i=$(!1),o=$(!1),u=$([]);$("http://localhost:8080/?aid=0");const c=$("first");let f=$(""),l=$(1),g=$(60);$(2);let p=$(),T=$(null);$(20),$("#409eff");const h=({row:ne,rowIndex:Q})=>Q%2!=0?"evenRow":"oddRow",d=$({region:"shanghai"});$([]);const x=$([{name:"",value:""}]),C=({row:ne,rowIndex:Q})=>{console.log(ne)},y=$(0),v=$(1),w=$({jid:0,aid:0,starttime:"",endtime:"",state:"",faildes:"",dt:"",dx:"",reportstep:"",interactionstep:"",acctime:"",totaltime:"",coids:"",cocodes:""}),S=$(""),R=$([]),M=$([]),m=$(0),O=$("false");function V(ne){G.step=s.value,A()}function B(ne){i.value=!0;const Q=(de=ne)=>new Promise((Fe,Ue)=>{setTimeout(Fe,de)});(async de=>{for(;s.value{p.value=ne,console.log(p.value),console.log(11111),console.log("props.classradio",r.classradio),(r.classradio=="Fire"||r.classradio=="Water")&&(o.value=!0),O.value=!1,j()};An(()=>{});const G=Um();async function k(){const ne={transCode:"D10016",aid:p.value,step:G.step};await me(ne).then(Q=>{if(Q.returnCode=="000000000"){R.value=Q.chvals,x.value=[];for(let ue=0;ue{})}async function j(){Ht.clearModeAddJg();const ne={transCode:"D10017",aid:p.value};await me(ne).then(Q=>{Q.returnCode=="000000000"?(w.value=Q,K(new Date),k(),P()):ye({message:Q.returnMsg,type:"error"})}).catch(Q=>{})}function K(ne){const Q=ne.getTime(),ue=Date.parse(w.value.acctime);var de=parseInt((Q-ue)/1e3);G.stepsum=parseInt(w.value.totaltime)/parseInt(w.value.reportstep),v.value=G.stepsum,de{console.log(G.polydata),A()}).catch(ne=>{})}function A(){G.getScalrsByStep(G.step).then(ne=>{console.log(G.scalar),Ce()}).catch(ne=>{console.log(ne)})}function Ce(){const ne=Ht.scalarBarActor,Q=Ht.jgMapper,ue=Ht.jgActor;console.log(d.value.region);const de=G.scalar.get(d.value.region);console.log("scalarArray:",de);const Fe=Se.newInstance({name:d.value.region,size:G.polydata.getNumberOfPoints()});console.log(Fe),Fe.setData(de),G.polydata.getPointData().setScalars(Fe),Q.setInputData(G.polydata),we(de),Q.setScalarRange(y.value,v.value),ue.setMapper(Q),ne.setAxisLabel(d.value.region),Q.clearColorArrays(),ue.getProperty().setOpacity(s.value),Ht.renderer.resetCamera(),Ht.renderWindow.render()}function we(ne){y.value=ne[0],v.value=ne[0];for(let Q=0;Q<=ne.length;Q++){let ue=ne[Q];y.value>ue&&(y.value=ue),v.value{};return au(()=>{clearInterval(T.value)}),An(()=>{T.value=setInterval(()=>{const ne=new Date().getTime();f.value=qs(ne)},1e3)}),e({monitor:o,accident5:re}),(ne,Q)=>{const ue=J("el-tab-pane"),de=J("el-date-picker"),Fe=J("el-slider"),Ue=J("el-image"),sn=J("el-tabs"),Ut=J("el-aside"),on=J("el-option"),Xt=J("el-form-item"),I=J("el-table-column"),Tt=J("el-table"),Nt=J("el-collapse-item"),Xn=J("el-collapse");return Ye(),Ot("div",Nm,[ft(D(Ut,{width:"278px",class:"L_aside asideg asidegbg leftbgimg"},{default:F(()=>[_("div",bm,[D(sn,{modelValue:c.value,"onUpdate:modelValue":Q[3]||(Q[3]=Ne=>c.value=Ne),type:"card",class:"demo-tabs",onTabClick:De},{default:F(()=>[D(ue,{label:"当前时间",name:"first"},{default:F(()=>[_("div",Gm,kt(L(f)),1)]),_:1}),D(ue,{label:"指定时间",name:"second"},{default:F(()=>[_("div",$m,[D(de,{modelValue:S.value,"onUpdate:modelValue":Q[0]||(Q[0]=Ne=>S.value=Ne),type:"datetime",placeholder:"Select date and time",onChange:q},null,8,["modelValue"])])]),_:1}),D(ue,{label:"动画演示",name:"third"},{default:F(()=>[_("div",Wm,[D(Fe,{max:L(g),min:L(l),modelValue:s.value,"onUpdate:modelValue":Q[1]||(Q[1]=Ne=>s.value=Ne),onChange:V},null,8,["max","min","modelValue"]),_("div",zm,[_("ul",null,[_("li",null,[D(Ue,{src:L(U0),fit:"contain",onClick:Y},null,8,["src"]),Am]),_("li",null,[D(Ue,{src:L(N0),fit:"contain",onClick:Q[2]||(Q[2]=Ne=>B(500))},null,8,["src"]),Hm]),_("li",null,[D(Ue,{src:L(b0),fit:"contain",onClick:U},null,8,["src"]),jm]),_("li",null,[D(Ue,{src:L(G0),fit:"contain",onClick:b},null,8,["src"]),Km])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[yt,o.value]]),ft(_("div",Pm,[D(Xn,{accordion:"",modelValue:a.value,"onUpdate:modelValue":Q[5]||(Q[5]=Ne=>a.value=Ne)},{default:F(()=>[D(Nt,{name:"1"},{title:F(()=>[_("div",Xm,[D(Xt,{label:"污染物选择:"},{default:F(()=>[D(L(su),{modelValue:d.value.region,"onUpdate:modelValue":Q[4]||(Q[4]=Ne=>d.value.region=Ne),onChange:Z,placeholder:"请选择"},{default:F(()=>[(Ye(!0),Ot(ba,null,Ga(u.value,Ne=>(Ye(),br(on,{key:Ne.id,label:Ne.name,value:Ne.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})])]),default:F(()=>[_("div",Im,[_("div",Ym,[_("div",qm,[D(Tt,{data:x.value,style:{width:"100%"},onCurrentChange:C,"row-class-name":h,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:F(()=>[D(I,{prop:"name",label:"监测点名称",width:"120"}),D(I,{prop:"value",label:"值"})]),_:1},8,["data","header-cell-style"])])]),Qm,Zm])]),_:1})]),_:1},8,["modelValue"])],512),[[yt,o.value]])])}}},e3=yr(Jm,[["__scopeId","data-v-649299a5"]]);const t3={__name:"InfoVtkmodel",setup(t){An(()=>{s()});const e=$([]),n=$([]),r=$([]),a=$([]);async function s(){await me({transCode:"D00000",count:1e3,page:1}).then(l=>{l.returnCode=="000000000"?(e.value=l.rows,i()):ElMessage({message:l.returnMsg,type:"error"})}).catch(l=>{})}async function i(){await me({transCode:"D00001",count:1e3,page:1}).then(l=>{l.returnCode=="000000000"?(n.value=l.rows,c()):ElMessage({message:l.returnMsg,type:"error"})}).catch(l=>{})}function o(f){let l=!1;return n.value.forEach(g=>{if(f.id==g.snId||f.id==g.enId)return l=!0,l}),l}function u(f){for(let l=0;l{o(g)?a.value.push(g):r.value.push(g)}),a.value.forEach(g=>{f.insertNextPoint(parseFloat(g.x),parseFloat(g.y),parseFloat(g.z))}),n.value.forEach(g=>{let p=u(g.snId),T=u(g.enId);l.insertNextCell([p,T])}),Ht.renderer.resetCamera(),Ht.renderWindow.render()}return(f,l)=>null}},n3=yr(t3,[["__scopeId","data-v-df87d686"]]);const r3=t=>(Kr("data-v-3ae32ffe"),t=t(),Pr(),t),a3={class:"appmian"},s3={class:"ve_menu_logo"},i3={class:"ve_title"},o3={class:"ve_logo_img"},c3={class:"ve_right"},u3={class:"l_huoqing"},f3={class:"l_time"},l3=r3(()=>_("span",null,"模型库",-1)),g3="灾情推演软件",p3={__name:"appmian",setup(t){let e=$(),n=$();const r=$("1");$("1");let a=$(),s=$(),i=$(),o=$(!1),u=$({time:"火灾事故2023.02.26",name:"2024-03-20 11:30:20"}),c=B0();$({});let f=$();An(()=>{});const l=()=>{c.push("/configurator"),console.log(c.push("/configurator"))},g=()=>{a.value=e.value.classradio},p=C=>{o.value=C},T=()=>{e.value.dialogVisible=!0},h=()=>{n.value.handledisaster(f.value),s.value.addboundary(f.value),n.value.accident3()},d=C=>{console.log(C),u.value.name=C.name,u.value.time=C.time,f.value=C.aid},x=(C,y)=>{switch(C){case"1":n.value.accident3(),s.value.accident4(C),e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1,i.value.monitor=!1;break;case"2":s.value.accident4(C),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1,i.value.monitor=!1;break;case"3":s.value.accident4(C),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.accident2(),i.value.monitor=!1;break;case"4":s.value.accident4(C),i.value.accident5(f.value),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1}};return(C,y)=>{const v=J("el-image"),w=J("el-menu-item"),S=J("el-menu"),R=J("el-header"),M=J("el-main"),m=J("el-container");return Ye(),Ot("div",a3,[D(m,null,{default:F(()=>[D(R,null,{default:F(()=>[_("div",s3,[_("div",i3,[_("div",o3,[D(v,{style:{height:"100%"},src:L(k0),fit:"contain"},null,8,["src"])]),_("h3",{class:"ve_logo_title"},kt(g3))]),D(S,{"default-active":r.value,class:"el-menu-demo",mode:"horizontal","popper-offset":2,style:{width:"780px"},"background-color":"#0D1639 ","active-background-color":"#0E50C8","text-color":"#68ADFF","active-text-color":"#fff",onSelect:x},{default:F(()=>[D(w,{index:"1"},{default:F(()=>[ae("灾害源设置")]),_:1}),D(w,{index:"2"},{default:F(()=>[ae("边界设置")]),_:1}),D(w,{index:"3"},{default:F(()=>[ae("灾害推演")]),_:1}),D(w,{index:"4"},{default:F(()=>[ae("推演结果")]),_:1})]),_:1},8,["default-active"]),_("div",c3,[ft(_("div",{class:"ve_time",onClick:y[0]||(y[0]=O=>T())},[_("span",u3,kt(L(u).name),1),_("span",f3,kt(L(u).time),1)],512),[[yt,L(o)]]),_("div",{class:"ve_timeioc",onClick:y[1]||(y[1]=O=>l())},[D(v,{src:L(F0),fit:"contain"},null,8,["src"]),l3])])])]),_:1}),D(M,null,{default:F(()=>[D(mh,{ref_key:"lliudialog",ref:e,addselect:g,headerobj:L(u),onHeaderclick:d,onChildfun:h,onMoxingclick:p},null,8,["headerobj"]),D(mv,{ref_key:"sourcedis",ref:n,classradio:L(a),aid:L(f)},null,8,["classradio","aid"]),D(Iy,{ref_key:"boundary",ref:s,classradio:L(a),aid:L(f)},null,8,["classradio","aid"]),D(e3,{ref_key:"tanimation",ref:i,classradio:L(a),aid:L(f)},null,8,["classradio","aid"]),D(n3,{ref:"vtkmodel"},null,512)]),_:1})]),_:1})])}}},S3=yr(p3,[["__scopeId","data-v-3ae32ffe"]]);export{S3 as default};