appmian-f6f48401.js 726 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349
  1. import{_ as gn,r as F,w as vt,v as _t,u as M,o as De,c as $e,b as E,d as D,e as U,f as Z,R as Kp,g as Pp,h as Uo,p as mn,a as Mn,i as Fi,j as Dt,k as Xp,l as ys,m as Vn,n as ne,q as Ip,s as rt,t as Ct,E as ge,x as qe,y as wt,z as Cr,A as Ee,B as xu,F as In,C as qr,D as Te,G as Fe,H as Su,I as Cu,J as bo,K as Yp,L as qp,M as Qp,V as Jp}from"./index-85a53adb.js";function Pr(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 wu=t=>(mn("data-v-8eb98194"),t=t(),Mn(),t),Zp={class:"resultyem"},e0={class:"publicleft"},t0=wu(()=>E("h1",null,"目标页",-1)),n0={class:"result_left results"},r0=wu(()=>E("div",{class:"result_right results"},null,-1)),a0={__name:"result",setup(t,{expose:e}){let n=F(!1);return e({accident6:a=>{a=="5"?n.value=!0:n.value=!1}}),(a,s)=>vt((De(),$e("div",Zp,[E("div",e0,[t0,D(M(Kp),{to:{path:"/resultLeft"}},{default:U(()=>[Z("目标页")]),_:1})]),E("div",n0,[D(M(Uo),{name:"resultLeft"},{default:U(()=>[D(Pp)]),_:1}),D(M(Uo))]),r0],512)),[[_t,M(n)]])}},s0=gn(a0,[["__scopeId","data-v-8eb98194"]]),i0="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=",o0="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",c0="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==",u0="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",ui="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAIpJREFUKFNjzFjz352RgUFiegjjQgYsIGPd/2iGfwxvGMGM/wxL/v9nKJgZwjgRWW36mv/5jIwMExgZGRIYQRIwAWTF6GJgheiKQXyQScga4QqRFYPY6E4hXSGym3BaTZRnMtf8j//PyLAAX/AwMDLEMGZs+O/O8I9BZEYQ41JsAZ657n/8fyaGFwCSUmao4tQfEwAAAABJRU5ErkJggg==";function za(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function f0(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function _u(t){let e,n,r;t.length!==2?(e=za,n=(o,u)=>za(t(o),u),r=(o,u)=>t(o)-u):(e=t===za||t===f0?t:l0,n=t,r=t);function a(o,u,c=0,f=o.length){if(c<f){if(e(u,u)!==0)return f;do{const l=c+f>>>1;n(o[l],u)<0?c=l+1:f=l}while(c<f)}return c}function s(o,u,c=0,f=o.length){if(c<f){if(e(u,u)!==0)return f;do{const l=c+f>>>1;n(o[l],u)<=0?c=l+1:f=l}while(c<f)}return c}function i(o,u,c=0,f=o.length){const l=a(o,u,c,f-1);return l>c&&r(o[l-1],u)>-r(o[l],u)?l-1:l}return{left:a,center:i,right:s}}function l0(){return 0}function g0(t){return t===null?NaN:+t}const p0=_u(za),h0=p0.right;_u(g0).center;const d0=h0,v0=Math.sqrt(50),y0=Math.sqrt(10),T0=Math.sqrt(2);function Ya(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>=v0?10:s>=y0?5:s>=T0?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/c<t&&++o,u/c>e&&--u,c=-c):(c=Math.pow(10,a)*i,o=Math.round(t/c),u=Math.round(e/c),o*c<t&&++o,u*c>e&&--u),u<o&&.5<=n&&n<2?Ya(t,e,n*2):[o,u,c]}function x0(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[a,s,i]=r?Ya(e,t,n):Ya(t,e,n);if(!(s>=a))return[];const o=s-a+1,u=new Array(o);if(r)if(i<0)for(let c=0;c<o;++c)u[c]=(s-c)/-i;else for(let c=0;c<o;++c)u[c]=(s-c)*i;else if(i<0)for(let c=0;c<o;++c)u[c]=(a+c)/-i;else for(let c=0;c<o;++c)u[c]=(a+c)*i;return u}function fi(t,e,n){return e=+e,t=+t,n=+n,Ya(t,e,n)[2]}function S0(t,e,n){e=+e,t=+t,n=+n;const r=e<t,a=r?fi(e,t,n):fi(t,e,n);return(r?-1:1)*(a<0?1/-a:a)}function C0(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Ui(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Eu(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function aa(){}var Qr=.7,qa=1/Qr,xr="\\s*([+-]?\\d+)\\s*",Jr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",en="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",w0=/^#([0-9a-f]{3,8})$/,_0=new RegExp(`^rgb\\(${xr},${xr},${xr}\\)$`),E0=new RegExp(`^rgb\\(${en},${en},${en}\\)$`),R0=new RegExp(`^rgba\\(${xr},${xr},${xr},${Jr}\\)$`),O0=new RegExp(`^rgba\\(${en},${en},${en},${Jr}\\)$`),D0=new RegExp(`^hsl\\(${Jr},${en},${en}\\)$`),m0=new RegExp(`^hsla\\(${Jr},${en},${en},${Jr}\\)$`),No={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Ui(aa,Zr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Go,formatHex:Go,formatHex8:M0,formatHsl:V0,formatRgb:$o,toString:$o});function Go(){return this.rgb().formatHex()}function M0(){return this.rgb().formatHex8()}function V0(){return Ru(this).formatHsl()}function $o(){return this.rgb().formatRgb()}function Zr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=w0.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Wo(e):n===3?new yt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?pa(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?pa(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=_0.exec(t))?new yt(e[1],e[2],e[3],1):(e=E0.exec(t))?new yt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=R0.exec(t))?pa(e[1],e[2],e[3],e[4]):(e=O0.exec(t))?pa(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=D0.exec(t))?Ho(e[1],e[2]/100,e[3]/100,1):(e=m0.exec(t))?Ho(e[1],e[2]/100,e[3]/100,e[4]):No.hasOwnProperty(t)?Wo(No[t]):t==="transparent"?new yt(NaN,NaN,NaN,0):null}function Wo(t){return new yt(t>>16&255,t>>8&255,t&255,1)}function pa(t,e,n,r){return r<=0&&(t=e=n=NaN),new yt(t,e,n,r)}function L0(t){return t instanceof aa||(t=Zr(t)),t?(t=t.rgb(),new yt(t.r,t.g,t.b,t.opacity)):new yt}function li(t,e,n,r){return arguments.length===1?L0(t):new yt(t,e,n,r??1)}function yt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Ui(yt,li,Eu(aa,{brighter(t){return t=t==null?qa:Math.pow(qa,t),new yt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Qr:Math.pow(Qr,t),new yt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new yt(Yn(this.r),Yn(this.g),Yn(this.b),Qa(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:zo,formatHex:zo,formatHex8:B0,formatRgb:Ao,toString:Ao}));function zo(){return`#${Xn(this.r)}${Xn(this.g)}${Xn(this.b)}`}function B0(){return`#${Xn(this.r)}${Xn(this.g)}${Xn(this.b)}${Xn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ao(){const t=Qa(this.opacity);return`${t===1?"rgb(":"rgba("}${Yn(this.r)}, ${Yn(this.g)}, ${Yn(this.b)}${t===1?")":`, ${t})`}`}function Qa(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Yn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Xn(t){return t=Yn(t),(t<16?"0":"")+t.toString(16)}function Ho(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new bt(t,e,n,r)}function Ru(t){if(t instanceof bt)return new bt(t.h,t.s,t.l,t.opacity);if(t instanceof aa||(t=Zr(t)),!t)return new bt;if(t instanceof bt)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+(n<r)*6:n===s?i=(r-e)/o+2:i=(e-n)/o+4,o/=u<.5?s+a:2-s-a,i*=60):o=u>0&&u<1?0:i,new bt(i,o,u,t.opacity)}function k0(t,e,n,r){return arguments.length===1?Ru(t):new bt(t,e,n,r??1)}function bt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ui(bt,k0,Eu(aa,{brighter(t){return t=t==null?qa:Math.pow(qa,t),new bt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qr:Math.pow(Qr,t),new bt(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 yt(Vs(t>=240?t-240:t+120,a,r),Vs(t,a,r),Vs(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new bt(jo(this.h),ha(this.s),ha(this.l),Qa(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=Qa(this.opacity);return`${t===1?"hsl(":"hsla("}${jo(this.h)}, ${ha(this.s)*100}%, ${ha(this.l)*100}%${t===1?")":`, ${t})`}`}}));function jo(t){return t=(t||0)%360,t<0?t+360:t}function ha(t){return Math.max(0,Math.min(1,t||0))}function Vs(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 bi=t=>()=>t;function F0(t,e){return function(n){return t+n*e}}function U0(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 b0(t){return(t=+t)==1?Ou:function(e,n){return n-e?U0(e,n,t):bi(isNaN(e)?n:e)}}function Ou(t,e){var n=e-t;return n?F0(t,n):bi(isNaN(t)?e:t)}const Ko=function t(e){var n=b0(e);function r(a,s){var i=n((a=li(a)).r,(s=li(s)).r),o=n(a.g,s.g),u=n(a.b,s.b),c=Ou(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 N0(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;a<n;++a)r[a]=t[a]*(1-s)+e[a]*s;return r}}function G0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function $0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,a=new Array(r),s=new Array(n),i;for(i=0;i<r;++i)a[i]=Ni(t[i],e[i]);for(;i<n;++i)s[i]=e[i];return function(o){for(i=0;i<r;++i)s[i]=a[i](o);return s}}function W0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Ja(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function z0(t,e){var n={},r={},a;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(a in e)a in t?n[a]=Ni(t[a],e[a]):r[a]=e[a];return function(s){for(a in n)r[a]=n[a](s);return r}}var gi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ls=new RegExp(gi.source,"g");function A0(t){return function(){return t}}function H0(t){return function(e){return t(e)+""}}function j0(t,e){var n=gi.lastIndex=Ls.lastIndex=0,r,a,s,i=-1,o=[],u=[];for(t=t+"",e=e+"";(r=gi.exec(t))&&(a=Ls.exec(e));)(s=a.index)>n&&(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:Ja(r,a)})),n=Ls.lastIndex;return n<e.length&&(s=e.slice(n),o[i]?o[i]+=s:o[++i]=s),o.length<2?u[0]?H0(u[0].x):A0(e):(e=u.length,function(c){for(var f=0,l;f<e;++f)o[(l=u[f]).i]=l.x(c);return o.join("")})}function Ni(t,e){var n=typeof e,r;return e==null||n==="boolean"?bi(e):(n==="number"?Ja:n==="string"?(r=Zr(e))?(e=r,Ko):j0:e instanceof Zr?Ko:e instanceof Date?W0:G0(e)?N0:Array.isArray(e)?$0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?z0:Ja)(t,e)}function K0(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function P0(t){return function(){return t}}function X0(t){return+t}var Po=[0,1];function vr(t){return t}function pi(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:P0(isNaN(e)?NaN:.5)}function I0(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Y0(t,e,n){var r=t[0],a=t[1],s=e[0],i=e[1];return a<r?(r=pi(a,r),s=n(i,s)):(r=pi(r,a),s=n(s,i)),function(o){return s(r(o))}}function q0(t,e,n){var r=Math.min(t.length,e.length)-1,a=new Array(r),s=new Array(r),i=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++i<r;)a[i]=pi(t[i],t[i+1]),s[i]=n(e[i],e[i+1]);return function(o){var u=d0(t,o,1,r)-1;return s[u](a[u](o))}}function Q0(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function J0(){var t=Po,e=Po,n=Ni,r,a,s,i=vr,o,u,c;function f(){var g=Math.min(t.length,e.length);return i!==vr&&(i=I0(t[0],t[g-1])),o=g>2?q0:Y0,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),Ja)))(g)))},l.domain=function(g){return arguments.length?(t=Array.from(g,X0),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=K0,f()},l.clamp=function(g){return arguments.length?(i=g?!0:vr,f()):i!==vr},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 Z0(){return J0()(vr,vr)}function eh(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Za(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 wr(t){return t=Za(Math.abs(t)),t?t[1]:NaN}function th(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 nh(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var rh=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function es(t){if(!(e=rh.exec(t)))throw new Error("invalid format: "+t);var e;return new Gi({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]})}es.prototype=Gi.prototype;function Gi(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+""}Gi.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 ah(t){e:for(var e=t.length,n=1,r=-1,a;n<e;++n)switch(t[n]){case".":r=a=n;break;case"0":r===0&&(r=n),a=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var Du;function sh(t,e){var n=Za(t,e);if(!n)return t+"";var r=n[0],a=n[1],s=a-(Du=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")+Za(t,Math.max(0,e+s-1))[0]}function Xo(t,e){var n=Za(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 Io={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:eh,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)=>Xo(t*100,e),r:Xo,s:sh,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Yo(t){return t}var qo=Array.prototype.map,Qo=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ih(t){var e=t.grouping===void 0||t.thousands===void 0?Yo:th(qo.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?Yo:nh(qo.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=es(l);var g=l.fill,p=l.align,y=l.sign,h=l.symbol,d=l.zero,x=l.width,C=l.comma,T=l.precision,v=l.trim,w=l.type;w==="n"?(C=!0,w="g"):Io[w]||(T===void 0&&(T=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():"",O=h==="$"?r:/[%p]/.test(w)?i:"",R=Io[w],B=/[defgprs%]/.test(w);T=T===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function m(V){var L=S,k=O,N,I,P;if(w==="c")k=R(V)+k,V="";else{V=+V;var ee=V<0||1/V<0;if(V=isNaN(V)?u:R(Math.abs(V),T),v&&(V=ah(V)),ee&&+V==0&&y!=="+"&&(ee=!1),L=(ee?y==="("?y:o:y==="-"||y==="("?"":y)+L,k=(w==="s"?Qo[8+Du/3]:"")+k+(ee&&y==="("?")":""),B){for(N=-1,I=V.length;++N<I;)if(P=V.charCodeAt(N),48>P||P>57){k=(P===46?a+V.slice(N+1):V.slice(N))+k,V=V.slice(0,N);break}}}C&&!d&&(V=e(V,1/0));var ae=L.length+V.length+k.length,W=ae<x?new Array(x-ae+1).join(g):"";switch(C&&d&&(V=e(W+V,W.length?x-k.length:1/0),W=""),p){case"<":V=L+V+k+W;break;case"=":V=L+W+V+k;break;case"^":V=W.slice(0,ae=W.length>>1)+L+V+k+W.slice(ae);break;default:V=W+L+V+k;break}return s(V)}return m.toString=function(){return l+""},m}function f(l,g){var p=c((l=es(l),l.type="f",l)),y=Math.max(-8,Math.min(8,Math.floor(wr(g)/3)))*3,h=Math.pow(10,-y),d=Qo[8+y/3];return function(x){return p(h*x)+d}}return{format:c,formatPrefix:f}}var da,mu,Mu;Vu({thousands:",",grouping:[3],currency:["$",""]});function Vu(t){return da=ih(t),mu=da.format,Mu=da.formatPrefix,da}function oh(t){return Math.max(0,-wr(Math.abs(t)))}function ch(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(wr(e)/3)))*3-wr(Math.abs(t)))}function uh(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,wr(e)-wr(t))+1}function fh(t,e,n,r){var a=S0(t,e,n),s;switch(r=es(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=ch(a,i))&&(r.precision=s),Mu(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=uh(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=oh(a))&&(r.precision=s-(r.type==="%")*2);break}}return mu(r)}function lh(t){var e=t.domain;return t.ticks=function(n){var r=e();return x0(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return fh(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(o<i&&(c=i,i=o,o=c,c=a,a=s,s=c);f-- >0;){if(c=fi(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 Ts(){var t=Z0();return t.copy=function(){return Q0(t,Ts())},C0.apply(t,arguments),lh(t)}var ye=1e-6,Je=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 Lu(){var t=new Je(9);return Je!=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 $i(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 gh(t){var e=new Je(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 ph(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 hh(t,e,n,r,a,s,i,o,u){var c=new Je(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 dh(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 tr(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 Bu(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 Wi(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,y=n*l+r*g+a*p;return y?(y=1/y,t[0]=l*y,t[1]=(-f*r+a*c)*y,t[2]=(o*r-a*i)*y,t[3]=g*y,t[4]=(f*n-a*u)*y,t[5]=(-o*n+a*s)*y,t[6]=p*y,t[7]=(-c*n+r*u)*y,t[8]=(i*n-r*s)*y,t):null}function vh(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 yh(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 ku(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],y=n[2],h=n[3],d=n[4],x=n[5],C=n[6],T=n[7],v=n[8];return t[0]=g*r+p*i+y*c,t[1]=g*a+p*o+y*f,t[2]=g*s+p*u+y*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+T*i+v*c,t[7]=C*a+T*o+v*f,t[8]=C*s+T*u+v*l,t}function Th(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 xh(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 Sh(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 Ch(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 wh(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 _h(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 Eh(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 Rh(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,y=a*u,h=s*i,d=s*o,x=s*u;return t[0]=1-l-y,t[3]=f-x,t[6]=g+d,t[1]=f+x,t[4]=1-c-y,t[7]=p-h,t[2]=g-d,t[5]=p+h,t[8]=1-c-l,t}function Oh(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],y=e[12],h=e[13],d=e[14],x=e[15],C=n*o-r*i,T=n*u-a*i,v=n*c-s*i,w=r*u-a*o,S=r*c-s*o,O=a*c-s*u,R=f*h-l*y,B=f*d-g*y,m=f*x-p*y,V=l*d-g*h,L=l*x-p*h,k=g*x-p*d,N=C*k-T*L+v*V+w*m-S*B+O*R;return N?(N=1/N,t[0]=(o*k-u*L+c*V)*N,t[1]=(u*m-i*k-c*B)*N,t[2]=(i*L-o*m+c*R)*N,t[3]=(a*L-r*k-s*V)*N,t[4]=(n*k-a*m+s*B)*N,t[5]=(r*m-n*L-s*R)*N,t[6]=(h*O-d*S+x*w)*N,t[7]=(d*v-y*O-x*T)*N,t[8]=(y*S-h*v+x*C)*N,t):null}function Dh(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 mh(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function Mh(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function Vh(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 Fu(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 Lh(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 Bh(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 kh(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 Fh(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],y=e[3],h=e[4],d=e[5],x=e[6],C=e[7],T=e[8];return Math.abs(n-l)<=ye*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(r-g)<=ye*Math.max(1,Math.abs(r),Math.abs(g))&&Math.abs(a-p)<=ye*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-y)<=ye*Math.max(1,Math.abs(s),Math.abs(y))&&Math.abs(i-h)<=ye*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-d)<=ye*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-x)<=ye*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-C)<=ye*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(f-T)<=ye*Math.max(1,Math.abs(f),Math.abs(T))}var Uh=ku,bh=Fu;const Nh=Object.freeze(Object.defineProperty({__proto__:null,add:Vh,adjoint:vh,clone:gh,copy:ph,create:Lu,determinant:yh,equals:Fh,exactEquals:kh,frob:Mh,fromMat2d:Eh,fromMat4:$i,fromQuat:Rh,fromRotation:wh,fromScaling:_h,fromTranslation:Ch,fromValues:hh,identity:tr,invert:Wi,mul:Uh,multiply:ku,multiplyScalar:Lh,multiplyScalarAndAdd:Bh,normalFromMat4:Oh,projection:Dh,rotate:xh,scale:Sh,set:dh,str:mh,sub:bh,subtract:Fu,translate:Th,transpose:Bu},Symbol.toStringTag,{value:"Module"}));function zi(){var t=new Je(16);return Je!=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 Gh(t){var e=new Je(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 at(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 $h(t,e,n,r,a,s,i,o,u,c,f,l,g,p,y,h){var d=new Je(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]=y,d[15]=h,d}function Wh(t,e,n,r,a,s,i,o,u,c,f,l,g,p,y,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]=y,t[14]=h,t[15]=d,t}function he(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 Le(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 Tt(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],y=e[12],h=e[13],d=e[14],x=e[15],C=n*o-r*i,T=n*u-a*i,v=n*c-s*i,w=r*u-a*o,S=r*c-s*o,O=a*c-s*u,R=f*h-l*y,B=f*d-g*y,m=f*x-p*y,V=l*d-g*h,L=l*x-p*h,k=g*x-p*d,N=C*k-T*L+v*V+w*m-S*B+O*R;return N?(N=1/N,t[0]=(o*k-u*L+c*V)*N,t[1]=(a*L-r*k-s*V)*N,t[2]=(h*O-d*S+x*w)*N,t[3]=(g*S-l*O-p*w)*N,t[4]=(u*m-i*k-c*B)*N,t[5]=(n*k-a*m+s*B)*N,t[6]=(d*v-y*O-x*T)*N,t[7]=(f*O-g*v+p*T)*N,t[8]=(i*L-o*m+c*R)*N,t[9]=(r*m-n*L-s*R)*N,t[10]=(y*S-h*v+x*C)*N,t[11]=(l*v-f*S-p*C)*N,t[12]=(o*B-i*V-u*R)*N,t[13]=(n*V-r*B+a*R)*N,t[14]=(h*T-y*w-d*C)*N,t[15]=(f*w-l*T+g*C)*N,t):null}function zh(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],y=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)+y*(u*p-c*g)),t[5]=n*(g*x-p*d)-f*(a*x-s*d)+y*(a*p-s*g),t[6]=-(n*(u*x-c*d)-i*(a*x-s*d)+y*(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)+y*(o*p-c*l),t[9]=-(n*(l*x-p*h)-f*(r*x-s*h)+y*(r*p-s*l)),t[10]=n*(o*x-c*h)-i*(r*x-s*h)+y*(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)+y*(o*g-u*l)),t[13]=n*(l*d-g*h)-f*(r*d-a*h)+y*(r*g-a*l),t[14]=-(n*(o*d-u*h)-i*(r*d-a*h)+y*(r*u-a*o)),t[15]=n*(o*g-u*l)-i*(r*g-a*l)+f*(r*u-a*o),t}function Ah(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],y=t[13],h=t[14],d=t[15],x=e*i-n*s,C=e*o-r*s,T=e*u-a*s,v=n*o-r*i,w=n*u-a*i,S=r*u-a*o,O=c*y-f*p,R=c*h-l*p,B=c*d-g*p,m=f*h-l*y,V=f*d-g*y,L=l*d-g*h;return x*L-C*V+T*m+v*B-w*R+S*O}function pt(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],y=e[11],h=e[12],d=e[13],x=e[14],C=e[15],T=n[0],v=n[1],w=n[2],S=n[3];return t[0]=T*r+v*o+w*l+S*h,t[1]=T*a+v*u+w*g+S*d,t[2]=T*s+v*c+w*p+S*x,t[3]=T*i+v*f+w*y+S*C,T=n[4],v=n[5],w=n[6],S=n[7],t[4]=T*r+v*o+w*l+S*h,t[5]=T*a+v*u+w*g+S*d,t[6]=T*s+v*c+w*p+S*x,t[7]=T*i+v*f+w*y+S*C,T=n[8],v=n[9],w=n[10],S=n[11],t[8]=T*r+v*o+w*l+S*h,t[9]=T*a+v*u+w*g+S*d,t[10]=T*s+v*c+w*p+S*x,t[11]=T*i+v*f+w*y+S*C,T=n[12],v=n[13],w=n[14],S=n[15],t[12]=T*r+v*o+w*l+S*h,t[13]=T*a+v*u+w*g+S*d,t[14]=T*s+v*c+w*p+S*x,t[15]=T*i+v*f+w*y+S*C,t}function ze(t,e,n){var r=n[0],a=n[1],s=n[2],i,o,u,c,f,l,g,p,y,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],y=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]=y,t[9]=h,t[10]=d,t[11]=x,t[12]=i*r+f*a+y*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 _r(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 qt(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,y,h,d,x,C,T,v,w,S,O,R,B,m,V,L,k,N,I;return o<ye?null:(o=1/o,a*=o,s*=o,i*=o,u=Math.sin(n),c=Math.cos(n),f=1-c,l=e[0],g=e[1],p=e[2],y=e[3],h=e[4],d=e[5],x=e[6],C=e[7],T=e[8],v=e[9],w=e[10],S=e[11],O=a*a*f+c,R=s*a*f+i*u,B=i*a*f-s*u,m=a*s*f-i*u,V=s*s*f+c,L=i*s*f+a*u,k=a*i*f+s*u,N=s*i*f-a*u,I=i*i*f+c,t[0]=l*O+h*R+T*B,t[1]=g*O+d*R+v*B,t[2]=p*O+x*R+w*B,t[3]=y*O+C*R+S*B,t[4]=l*m+h*V+T*L,t[5]=g*m+d*V+v*L,t[6]=p*m+x*V+w*L,t[7]=y*m+C*V+S*L,t[8]=l*k+h*N+T*I,t[9]=g*k+d*N+v*I,t[10]=p*k+x*N+w*I,t[11]=y*k+C*N+S*I,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Uu(t,e,n){var r=Math.sin(n),a=Math.cos(n),s=e[4],i=e[5],o=e[6],u=e[7],c=e[8],f=e[9],l=e[10],g=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*a+c*r,t[5]=i*a+f*r,t[6]=o*a+l*r,t[7]=u*a+g*r,t[8]=c*a-s*r,t[9]=f*a-i*r,t[10]=l*a-o*r,t[11]=g*a-u*r,t}function bu(t,e,n){var r=Math.sin(n),a=Math.cos(n),s=e[0],i=e[1],o=e[2],u=e[3],c=e[8],f=e[9],l=e[10],g=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*a-c*r,t[1]=i*a-f*r,t[2]=o*a-l*r,t[3]=u*a-g*r,t[8]=s*r+c*a,t[9]=i*r+f*a,t[10]=o*r+l*a,t[11]=u*r+g*a,t}function Nu(t,e,n){var r=Math.sin(n),a=Math.cos(n),s=e[0],i=e[1],o=e[2],u=e[3],c=e[4],f=e[5],l=e[6],g=e[7];return e!==t&&(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[0]=s*a+c*r,t[1]=i*a+f*r,t[2]=o*a+l*r,t[3]=u*a+g*r,t[4]=c*a-s*r,t[5]=f*a-i*r,t[6]=l*a-o*r,t[7]=g*a-u*r,t}function Gu(t,e){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]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function $u(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Hh(t,e,n){var r=n[0],a=n[1],s=n[2],i=Math.hypot(r,a,s),o,u,c;return i<ye?null:(i=1/i,r*=i,a*=i,s*=i,o=Math.sin(e),u=Math.cos(e),c=1-u,t[0]=r*r*c+u,t[1]=a*r*c+s*o,t[2]=s*r*c-a*o,t[3]=0,t[4]=r*a*c-s*o,t[5]=a*a*c+u,t[6]=s*a*c+r*o,t[7]=0,t[8]=r*s*c+a*o,t[9]=a*s*c-r*o,t[10]=s*s*c+u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function jh(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Kh(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Ph(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,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 Wu(t,e,n){var r=e[0],a=e[1],s=e[2],i=e[3],o=r+r,u=a+a,c=s+s,f=r*o,l=r*u,g=r*c,p=a*u,y=a*c,h=s*c,d=i*o,x=i*u,C=i*c;return t[0]=1-(p+h),t[1]=l+C,t[2]=g-x,t[3]=0,t[4]=l-C,t[5]=1-(f+h),t[6]=y+d,t[7]=0,t[8]=g+x,t[9]=y-d,t[10]=1-(f+p),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function Xh(t,e){var n=new Je(3),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=r*r+a*a+s*s+i*i;return l>0?(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),Wu(t,e,n),t}function Ih(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function zu(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 Au(t,e){var n=new Je(3);zu(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,y=e[10]*s,h=i+f+y,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>y?(d=Math.sqrt(1+i-f-y)*2,t[3]=(l-p)/d,t[0]=.25*d,t[1]=(o+c)/d,t[2]=(g+u)/d):f>y?(d=Math.sqrt(1+f-i-y)*2,t[3]=(g-u)/d,t[0]=(o+c)/d,t[1]=.25*d,t[2]=(l+p)/d):(d=Math.sqrt(1+y-i-f)*2,t[3]=(o-c)/d,t[0]=(g+u)/d,t[1]=(l+p)/d,t[2]=.25*d),t}function Hu(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,y=s*c,h=s*f,d=i*f,x=o*u,C=o*c,T=o*f,v=r[0],w=r[1],S=r[2];return t[0]=(1-(y+d))*v,t[1]=(g+T)*v,t[2]=(p-C)*v,t[3]=0,t[4]=(g-T)*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+y))*S,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function Yh(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,y=s*l,h=i*f,d=i*l,x=o*l,C=u*c,T=u*f,v=u*l,w=r[0],S=r[1],O=r[2],R=a[0],B=a[1],m=a[2],V=(1-(h+x))*w,L=(p+v)*w,k=(y-T)*w,N=(p-v)*S,I=(1-(g+x))*S,P=(d+C)*S,ee=(y+T)*O,ae=(d-C)*O,W=(1-(g+h))*O;return t[0]=V,t[1]=L,t[2]=k,t[3]=0,t[4]=N,t[5]=I,t[6]=P,t[7]=0,t[8]=ee,t[9]=ae,t[10]=W,t[11]=0,t[12]=n[0]+R-(V*R+N*B+ee*m),t[13]=n[1]+B-(L*R+I*B+ae*m),t[14]=n[2]+m-(k*R+P*B+W*m),t[15]=1,t}function Ai(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,y=a*u,h=s*i,d=s*o,x=s*u;return t[0]=1-l-y,t[1]=f+x,t[2]=g-d,t[3]=0,t[4]=f-x,t[5]=1-c-y,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 qh(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 ju(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 Qh=ju;function Jh(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 Zh(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 Ku(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 Pu=Ku;function ed(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 Xu(t,e,n,r){var a,s,i,o,u,c,f,l,g,p,y=e[0],h=e[1],d=e[2],x=r[0],C=r[1],T=r[2],v=n[0],w=n[1],S=n[2];return Math.abs(y-v)<ye&&Math.abs(h-w)<ye&&Math.abs(d-S)<ye?he(t):(f=y-v,l=h-w,g=d-S,p=1/Math.hypot(f,l,g),f*=p,l*=p,g*=p,a=C*g-T*l,s=T*f-x*g,i=x*l-C*f,p=Math.hypot(a,s,i),p?(p=1/p,a*=p,s*=p,i*=p):(a=0,s=0,i=0),o=l*i-g*s,u=g*a-f*i,c=f*s-l*a,p=Math.hypot(o,u,c),p?(p=1/p,o*=p,u*=p,c*=p):(o=0,u=0,c=0),t[0]=a,t[1]=o,t[2]=f,t[3]=0,t[4]=s,t[5]=u,t[6]=l,t[7]=0,t[8]=i,t[9]=c,t[10]=g,t[11]=0,t[12]=-(a*y+s*h+i*d),t[13]=-(o*y+u*h+c*d),t[14]=-(f*y+l*h+g*d),t[15]=1,t)}function td(t,e,n,r){var a=e[0],s=e[1],i=e[2],o=r[0],u=r[1],c=r[2],f=a-n[0],l=s-n[1],g=i-n[2],p=f*f+l*l+g*g;p>0&&(p=1/Math.sqrt(p),f*=p,l*=p,g*=p);var y=u*g-c*l,h=c*f-o*g,d=o*l-u*f;return p=y*y+h*h+d*d,p>0&&(p=1/Math.sqrt(p),y*=p,h*=p,d*=p),t[0]=y,t[1]=h,t[2]=d,t[3]=0,t[4]=l*d-g*h,t[5]=g*y-f*d,t[6]=f*h-l*y,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 nd(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 rd(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 ad(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 Iu(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 sd(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 id(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 od(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 cd(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],y=t[12],h=t[13],d=t[14],x=t[15],C=e[0],T=e[1],v=e[2],w=e[3],S=e[4],O=e[5],R=e[6],B=e[7],m=e[8],V=e[9],L=e[10],k=e[11],N=e[12],I=e[13],P=e[14],ee=e[15];return Math.abs(n-C)<=ye*Math.max(1,Math.abs(n),Math.abs(C))&&Math.abs(r-T)<=ye*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(a-v)<=ye*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-w)<=ye*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(i-S)<=ye*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(o-O)<=ye*Math.max(1,Math.abs(o),Math.abs(O))&&Math.abs(u-R)<=ye*Math.max(1,Math.abs(u),Math.abs(R))&&Math.abs(c-B)<=ye*Math.max(1,Math.abs(c),Math.abs(B))&&Math.abs(f-m)<=ye*Math.max(1,Math.abs(f),Math.abs(m))&&Math.abs(l-V)<=ye*Math.max(1,Math.abs(l),Math.abs(V))&&Math.abs(g-L)<=ye*Math.max(1,Math.abs(g),Math.abs(L))&&Math.abs(p-k)<=ye*Math.max(1,Math.abs(p),Math.abs(k))&&Math.abs(y-N)<=ye*Math.max(1,Math.abs(y),Math.abs(N))&&Math.abs(h-I)<=ye*Math.max(1,Math.abs(h),Math.abs(I))&&Math.abs(d-P)<=ye*Math.max(1,Math.abs(d),Math.abs(P))&&Math.abs(x-ee)<=ye*Math.max(1,Math.abs(x),Math.abs(ee))}var hi=pt,ud=Iu;const di=Object.freeze(Object.defineProperty({__proto__:null,add:ad,adjoint:zh,clone:Gh,copy:at,create:zi,determinant:Ah,equals:cd,exactEquals:od,frob:rd,fromQuat:Ai,fromQuat2:Xh,fromRotation:Hh,fromRotationTranslation:Wu,fromRotationTranslationScale:Hu,fromRotationTranslationScaleOrigin:Yh,fromScaling:$u,fromTranslation:Gu,fromValues:$h,fromXRotation:jh,fromYRotation:Kh,fromZRotation:Ph,frustum:qh,getRotation:Au,getScaling:zu,getTranslation:Ih,identity:he,invert:Tt,lookAt:Xu,mul:hi,multiply:pt,multiplyScalar:sd,multiplyScalarAndAdd:id,ortho:Pu,orthoNO:Ku,orthoZO:ed,perspective:Qh,perspectiveFromFieldOfView:Zh,perspectiveNO:ju,perspectiveZO:Jh,rotate:qt,rotateX:Uu,rotateY:bu,rotateZ:Nu,scale:_r,set:Wh,str:nd,sub:ud,subtract:Iu,targetTo:td,translate:ze,transpose:Le},Symbol.toStringTag,{value:"Module"}));function Yu(){var t=new Je(3);return Je!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function fd(t){var e=t[0],n=t[1],r=t[2];return Math.hypot(e,n,r)}function Jo(t,e,n){var r=new Je(3);return r[0]=t,r[1]=e,r[2]=n,r}function ts(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function zr(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function On(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function Cn(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}function ld(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function ea(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 qu(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Bs(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 _e(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 Zo(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function ec(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)<=ye*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(r-i)<=ye*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-o)<=ye*Math.max(1,Math.abs(a),Math.abs(o))}var vi=On,Qu=fd;(function(){var t=Yu();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;o<u;o+=n)t[0]=e[o],t[1]=e[o+1],t[2]=e[o+2],s(t,t,i),e[o]=t[0],e[o+1]=t[1],e[o+2]=t[2];return e}})();function gd(){var t=new Je(4);return Je!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function pd(t,e,n,r){var a=new Je(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=r,a}function hd(t,e){var n=e[0],r=e[1],a=e[2],s=e[3],i=n*n+r*r+a*a+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=n*i,t[1]=r*i,t[2]=a*i,t[3]=s*i,t}function va(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=gd();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;o<u;o+=n)t[0]=e[o],t[1]=e[o+1],t[2]=e[o+2],t[3]=e[o+3],s(t,t,i),e[o]=t[0],e[o+1]=t[1],e[o+2]=t[2],e[o+3]=t[3];return e}})();function er(){var t=new Je(4);return Je!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Hi(t,e,n){n=n*.5;var r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t}function dd(t,e){var n=Math.acos(e[3])*2,r=Math.sin(n/2);return r>ye?(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 tc(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 Aa(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,y,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>ye?(g=Math.acos(p),y=Math.sin(g),h=Math.sin((1-r)*g)/y,d=Math.sin(r*g)/y):(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 vd(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function yd(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 nc=pd,Ju=hd;(function(){var t=Yu(),e=Jo(1,0,0),n=Jo(0,1,0);return function(r,a,s){var i=qu(a,s);return i<-.999999?(Bs(t,e,a),Qu(t)<1e-6&&Bs(t,n,a),ea(t,t),Hi(r,t,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Bs(t,a,s),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+i,Ju(r,r))}})();(function(){var t=er(),e=er();return function(n,r,a,s,i,o){return Aa(t,r,i,o),Aa(e,a,s,o),Aa(n,t,e,2*o*(1-o)),n}})();(function(){var t=Lu();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],Ju(e,yd(e,t))}})();var Td=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 xd=Fi(Td);var rc=Object.prototype.toString,Zu=function(e){var n=rc.call(e),r=n==="[object Arguments]";return r||(r=n!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&rc.call(e.callee)==="[object Function]"),r},ks,ac;function Sd(){if(ac)return ks;ac=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Zu,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 y=p!==null&&typeof p=="object",h=n.call(p)==="[object Function]",d=r(p),x=y&&n.call(p)==="[object String]",C=[];if(!y&&!h&&!d)throw new TypeError("Object.keys called on a non-object");var T=i&&h;if(x&&p.length>0&&!e.call(p,0))for(var v=0;v<p.length;++v)C.push(String(v));if(d&&p.length>0)for(var w=0;w<p.length;++w)C.push(String(w));else for(var S in p)!(T&&S==="prototype")&&e.call(p,S)&&C.push(String(S));if(s)for(var O=l(p),R=0;R<o.length;++R)!(O&&o[R]==="constructor")&&e.call(p,o[R])&&C.push(o[R]);return C}}return ks=t,ks}var Cd=Array.prototype.slice,wd=Zu,sc=Object.keys,Ha=sc?function(e){return sc(e)}:Sd(),ic=Object.keys;Ha.shim=function(){if(Object.keys){var e=function(){var n=Object.keys(arguments);return n&&n.length===arguments.length}(1,2);e||(Object.keys=function(r){return wd(r)?ic(Cd.call(r)):ic(r)})}else Object.keys=Ha;return Object.keys||Ha};var _d=Ha,Ed=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var a=42;e[n]=a;for(n in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var s=Object.getOwnPropertySymbols(e);if(s.length!==1||s[0]!==n||!Object.prototype.propertyIsEnumerable.call(e,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var i=Object.getOwnPropertyDescriptor(e,n);if(i.value!==a||i.enumerable!==!0)return!1}return!0},oc=typeof Symbol<"u"&&Symbol,Rd=Ed,Od=function(){return typeof oc!="function"||typeof Symbol!="function"||typeof oc("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Rd()},cc={foo:{}},Dd=Object,md=function(){return{__proto__:cc}.foo===cc.foo&&!({__proto__:null}instanceof Dd)},Md="Function.prototype.bind called on incompatible ",Fs=Array.prototype.slice,Vd=Object.prototype.toString,Ld="[object Function]",Bd=function(e){var n=this;if(typeof n!="function"||Vd.call(n)!==Ld)throw new TypeError(Md+n);for(var r=Fs.call(arguments,1),a,s=function(){if(this instanceof a){var f=n.apply(this,r.concat(Fs.call(arguments)));return Object(f)===f?f:this}else return n.apply(e,r.concat(Fs.call(arguments)))},i=Math.max(0,n.length-r.length),o=[],u=0;u<i;u++)o.push("$"+u);if(a=Function("binder","return function ("+o.join(",")+"){ return binder.apply(this,arguments); }")(s),n.prototype){var c=function(){};c.prototype=n.prototype,a.prototype=new c,c.prototype=null}return a},kd=Bd,ef=Function.prototype.bind||kd,Fd=ef,Ud=Fd.call(Function.call,Object.prototype.hasOwnProperty),pe,Er=SyntaxError,tf=Function,Sr=TypeError,Us=function(t){try{return tf('"use strict"; return ('+t+").constructor;")()}catch{}},qn=Object.getOwnPropertyDescriptor;if(qn)try{qn({},"")}catch{qn=null}var bs=function(){throw new Sr},bd=qn?function(){try{return arguments.callee,bs}catch{try{return qn(arguments,"callee").get}catch{return bs}}}():bs,sr=Od(),Nd=md(),Ye=Object.getPrototypeOf||(Nd?function(t){return t.__proto__}:null),gr={},Gd=typeof Uint8Array>"u"||!Ye?pe:Ye(Uint8Array),Qn={"%AggregateError%":typeof AggregateError>"u"?pe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?pe:ArrayBuffer,"%ArrayIteratorPrototype%":sr&&Ye?Ye([][Symbol.iterator]()):pe,"%AsyncFromSyncIteratorPrototype%":pe,"%AsyncFunction%":gr,"%AsyncGenerator%":gr,"%AsyncGeneratorFunction%":gr,"%AsyncIteratorPrototype%":gr,"%Atomics%":typeof Atomics>"u"?pe:Atomics,"%BigInt%":typeof BigInt>"u"?pe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?pe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?pe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?pe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?pe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?pe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?pe:FinalizationRegistry,"%Function%":tf,"%GeneratorFunction%":gr,"%Int8Array%":typeof Int8Array>"u"?pe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?pe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?pe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":sr&&Ye?Ye(Ye([][Symbol.iterator]())):pe,"%JSON%":typeof JSON=="object"?JSON:pe,"%Map%":typeof Map>"u"?pe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!sr||!Ye?pe:Ye(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?pe:Promise,"%Proxy%":typeof Proxy>"u"?pe:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?pe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?pe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!sr||!Ye?pe:Ye(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?pe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":sr&&Ye?Ye(""[Symbol.iterator]()):pe,"%Symbol%":sr?Symbol:pe,"%SyntaxError%":Er,"%ThrowTypeError%":bd,"%TypedArray%":Gd,"%TypeError%":Sr,"%Uint8Array%":typeof Uint8Array>"u"?pe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?pe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?pe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?pe:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?pe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?pe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?pe:WeakSet};if(Ye)try{null.error}catch(t){var $d=Ye(Ye(t));Qn["%Error.prototype%"]=$d}var Wd=function t(e){var n;if(e==="%AsyncFunction%")n=Us("async function () {}");else if(e==="%GeneratorFunction%")n=Us("function* () {}");else if(e==="%AsyncGeneratorFunction%")n=Us("async function* () {}");else if(e==="%AsyncGenerator%"){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(e==="%AsyncIteratorPrototype%"){var a=t("%AsyncGenerator%");a&&Ye&&(n=Ye(a.prototype))}return Qn[e]=n,n},uc={"%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"]},sa=ef,ns=Ud,zd=sa.call(Function.call,Array.prototype.concat),Ad=sa.call(Function.apply,Array.prototype.splice),fc=sa.call(Function.call,String.prototype.replace),rs=sa.call(Function.call,String.prototype.slice),Hd=sa.call(Function.call,RegExp.prototype.exec),jd=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Kd=/\\(\\)?/g,Pd=function(e){var n=rs(e,0,1),r=rs(e,-1);if(n==="%"&&r!=="%")throw new Er("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Er("invalid intrinsic syntax, expected opening `%`");var a=[];return fc(e,jd,function(s,i,o,u){a[a.length]=o?fc(u,Kd,"$1"):i||s}),a},Xd=function(e,n){var r=e,a;if(ns(uc,r)&&(a=uc[r],r="%"+a[0]+"%"),ns(Qn,r)){var s=Qn[r];if(s===gr&&(s=Wd(r)),typeof s>"u"&&!n)throw new Sr("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:a,name:r,value:s}}throw new Er("intrinsic "+e+" does not exist!")},ji=function(e,n){if(typeof e!="string"||e.length===0)throw new Sr("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new Sr('"allowMissing" argument must be a boolean');if(Hd(/^%?[^%]*%?$/,e)===null)throw new Er("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=Pd(e),a=r.length>0?r[0]:"",s=Xd("%"+a+"%",n),i=s.name,o=s.value,u=!1,c=s.alias;c&&(a=c[0],Ad(r,zd([0,1],c)));for(var f=1,l=!0;f<r.length;f+=1){var g=r[f],p=rs(g,0,1),y=rs(g,-1);if((p==='"'||p==="'"||p==="`"||y==='"'||y==="'"||y==="`")&&p!==y)throw new Er("property names with quotes must have matching quotes");if((g==="constructor"||!l)&&(u=!0),a+="."+g,i="%"+a+"%",ns(Qn,i))o=Qn[i];else if(o!=null){if(!(g in o)){if(!n)throw new Sr("base intrinsic for "+e+" exists, but the property is not available.");return}if(qn&&f+1>=r.length){var h=qn(o,g);l=!!h,l&&"get"in h&&!("originalValue"in h.get)?o=h.get:o=o[g]}else l=ns(o,g),o=o[g];l&&!u&&(Qn[i]=o)}}return o},Id=ji,yi=Id("%Object.defineProperty%",!0),Ti=function(){if(yi)try{return yi({},"a",{value:1}),!0}catch{return!1}return!1};Ti.hasArrayLengthDefineBug=function(){if(!Ti())return null;try{return yi([],"length",{value:1}).length!==1}catch{return!0}};var nf=Ti,Ns,lc;function Yd(){if(lc)return Ns;lc=1;var t=ji,e=t("%Object.getOwnPropertyDescriptor%",!0);if(e)try{e([],"length")}catch{e=null}return Ns=e,Ns}var qd=nf(),Ki=ji,gc=qd&&Ki("%Object.defineProperty%",!0),Qd=Ki("%SyntaxError%"),ir=Ki("%TypeError%"),pc=Yd(),Jd=function(e,n,r){if(!e||typeof e!="object"&&typeof e!="function")throw new ir("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new ir("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new ir("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new ir("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new ir("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new ir("`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=!!pc&&pc(e,n);if(gc)gc(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 Qd("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Zd=_d,e1=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",t1=Object.prototype.toString,n1=Array.prototype.concat,hc=Jd,r1=function(t){return typeof t=="function"&&t1.call(t)==="[object Function]"},rf=nf(),a1=function(t,e,n,r){if(e in t){if(r===!0){if(t[e]===n)return}else if(!r1(r)||!r())return}rf?hc(t,e,n,!0):hc(t,e,n)},af=function(t,e){var n=arguments.length>2?arguments[2]:{},r=Zd(e);e1&&(r=n1.call(r,Object.getOwnPropertySymbols(e)));for(var a=0;a<r.length;a+=1)a1(t,r[a],e[r[a]],n[r[a]])};af.supportsDescriptors=!!rf;var sf=af,ja={exports:{}};typeof self<"u"?ja.exports=self:typeof window<"u"?ja.exports=window:ja.exports=Function("return this")();var of=ja.exports,s1=of,cf=function(){return typeof Dt!="object"||!Dt||Dt.Math!==Math||Dt.Array!==Array?s1:Dt},i1=sf,o1=cf,c1=function(){var e=o1();if(i1.supportsDescriptors){var n=Object.getOwnPropertyDescriptor(e,"globalThis");(!n||n.configurable&&(n.enumerable||!n.writable||globalThis!==e))&&Object.defineProperty(e,"globalThis",{configurable:!0,enumerable:!1,value:e,writable:!0})}else(typeof globalThis!="object"||globalThis!==e)&&(e.globalThis=e);return e},u1=sf,f1=of,uf=cf,l1=c1,g1=uf(),ff=function(){return g1};u1(ff,{getPolyfill:uf,implementation:f1,shim:l1});var p1=ff;const h1=Fi(p1),Ft=h1(),lf={vtkObject:()=>null};function $t(t){if(t==null||t.isA)return t;if(!t.vtkClass)return Ft.console&&Ft.console.error&&Ft.console.error("Invalid VTK object"),null;const e=lf[t.vtkClass];if(!e)return Ft.console&&Ft.console.error&&Ft.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]=$t(n[a]))});const r=e(n);return r&&r.modified&&r.modified(),r}function d1(t,e){lf[t]=e}$t.register=d1;class Gs extends Array{push(){for(let e=0;e<arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}let xi=0;const gf=Symbol("void");function v1(){return xi}const pf={};function jn(){}const y1=["log","debug","info","warn","error","time","timeEnd","group","groupEnd"];y1.forEach(t=>{pf[t]=jn});Ft.console=console.hasOwnProperty("log")?console:pf;const Dn={debug:jn,error:Ft.console.error||jn,info:Ft.console.info||jn,log:Ft.console.log||jn,warn:Ft.console.warn||jn};function hf(t,e){Dn[t]&&(Dn[t]=e||jn)}function df(){Dn.log(...arguments)}function vf(){Dn.info(...arguments)}function as(){Dn.debug(...arguments)}function le(){Dn.error(...arguments)}function Pi(){Dn.warn(...arguments)}const dc={};function yf(t){dc[t]||(Dn.error(t),dc[t]=!0)}const st=Object.create(null);st.Float32Array=Float32Array;st.Float64Array=Float64Array;st.Uint8Array=Uint8Array;st.Int8Array=Int8Array;st.Uint16Array=Uint16Array;st.Int16Array=Int16Array;st.Uint32Array=Uint32Array;st.Int32Array=Int32Array;st.Uint8ClampedArray=Uint8ClampedArray;try{st.BigInt64Array=BigInt64Array,st.BigUint64Array=BigUint64Array}catch{}function Mr(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return new(st[t]||Float64Array)(...n)}function Xi(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return(st[t]||Float64Array).from(...n)}function xs(t){return t.charAt(0).toUpperCase()+t.slice(1)}function be(t){return xs(t[0]==="_"?t.slice(1):t)}function Tf(t){return t.charAt(0).toLowerCase()+t.slice(1)}function xf(t){let e=arguments.length>1&&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 Sf(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 Cf(t){Object.keys(t).forEach(e=>{Array.isArray(t[e])&&(t[e]=[].concat(t[e]))})}function T1(t){return Object.values(st).some(e=>t instanceof e)}function x1(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;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}return!1}function S1(t,e){return Object.keys(t).find(n=>t[n]===e)}function wf(t){return t&&t.isA?t.getState():t}function Ii(t){setTimeout(t,0)}function _f(t,e){const n=performance.now();t.finally(()=>{const r=performance.now()-n;e(r)})}function Ze(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Cf(e);const n=[];if(Number.isInteger(e.mtime)||(e.mtime=++xi),!("classHierarchy"in e))e.classHierarchy=new Gs("vtkObject");else if(!(e.classHierarchy instanceof Gs)){const s=new Gs;for(let i=0;i<e.classHierarchy.length;i++)s.push(e.classHierarchy[i]);e.classHierarchy=s}function r(s){n[s]=null}function a(s){function i(){r(s)}return Object.freeze({unsubscribe:i})}return t.isDeleted=()=>!!e.deleted,t.modified=s=>{if(e.deleted){le("instance deleted - cannot call any method");return}s&&s<t.getMTime()||(e.mtime=++xi,n.forEach(i=>i&&i(t)))},t.onModified=s=>{if(e.deleted)return le("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${xs(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&&Pi(`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<s;o++)i[o]=arguments[o];if(!i.length)return e;const u={};return i.forEach(c=>{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(wf):T1(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&&as(`add ${f} in shallowCopy`):u.splice(l,1),e[f]=o[f]}),u.length&&i&&as(`Untouched keys: ${u.join(", ")}`),t.modified()},t.toJSON=function(){return t.getState()},t}const C1={object(t,e,n){return function(){return{...e[n.name]}}}};function ht(t,e,n){n.forEach(r=>{if(typeof r=="object"){const a=C1[r.type];a?t[`get${be(r.name)}`]=a(t,e,r):t[`get${be(r.name)}`]=()=>e[r.name]}else t[`get${be(r)}`]=()=>e[r]})}const w1={enum(t,e,n){const r=`_on${be(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 le(`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 le(`Set Enum outside numeric range ${n}, ${a}`),new RangeError("Set Enum outside numeric range")}return!1}throw le(`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${be(n.name)}Changed`;return a=>{var s;if(!xd(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 vc(t){if(typeof t=="object"){const e=w1[t.type];if(e)return(n,r)=>e(n,r,t);throw le(`No setter for field ${t}`),new TypeError("No setter for field")}return function(n,r){const a=`_on${be(t)}Changed`;return function(i){var o;if(r.deleted)return le("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 ia(t,e,n){n.forEach(r=>{typeof r=="object"?t[`set${be(r.name)}`]=vc(r)(t,e):t[`set${be(r)}`]=vc(r)(t,e)})}function Ke(t,e,n){ht(t,e,n),ia(t,e,n)}function Vr(t,e,n){n.forEach(r=>{t[`get${be(r)}`]=()=>e[r]?Array.from(e[r]):e[r],t[`get${be(r)}ByReference`]=()=>e[r]})}function Yi(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${be(s)}Changed`;t[`set${be(s)}`]=function(){var p;if(e.deleted)return le("instance deleted - cannot call any method"),!1;for(var o=arguments.length,u=new Array(o),c=0;c<o;c++)u[c]=arguments[c];let f=u,l,g=!1;if(f.length===1&&(f[0]==null||f[0].length>=0)&&(f=f[0],g=!0),f==null)l=e[s]!==f;else{if(r&&f.length!==r)if(f.length<r&&a!==void 0)for(f=Array.from(f),g=!1;f.length<r;)f.push(a);else throw new RangeError(`Invalid number of values for array setter (${s})`);l=e[s]==null||e[s].length!==f.length;for(let y=0;!l&&y<f.length;++y)l=e[s][y]!==f[y];l&&g&&(f=Array.from(f))}if(l){const y=e[s.name];e[s]=f,(p=e[i])==null||p.call(e,t,e,f,y),t.modified()}return l},t[`set${be(s)}From`]=o=>{const u=e[s];o.forEach((c,f)=>{u[f]=c})}})}function qi(t,e,n,r){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;Vr(t,e,n),Yi(t,e,n,r,a)}function oa(t,e,n){for(let r=0;r<n.length;r++){const a=n[r];e[a]!==void 0&&(e[`_${a}`]=e[a],delete e[a])}}function Ef(t,e,n,r){e.inputData?e.inputData=e.inputData.map($t):e.inputData=[],e.inputConnection?e.inputConnection=e.inputConnection.map($t):e.inputConnection=[],e.output?e.output=e.output.map($t):e.output=[],e.inputArrayToProcess?e.inputArrayToProcess=e.inputArrayToProcess.map($t):e.inputArrayToProcess=[],e.numberOfInputs=n;function a(p){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){le("instance deleted - cannot call any method");return}if(y>=e.numberOfInputs){le(`algorithm ${t.getClassName()} only has ${e.numberOfInputs} input ports. To add more input ports, use addInputData()`);return}(e.inputData[y]!==p||e.inputConnection[y])&&(e.inputData[y]=p,e.inputConnection[y]=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 y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){le("instance deleted - cannot call any method");return}if(y>=e.numberOfInputs){let h=`algorithm ${t.getClassName()} only has `;h+=`${e.numberOfInputs}`,h+=" input ports. To add more input ports, use addInputConnection()",le(h);return}e.inputData[y]=null,e.inputConnection[y]=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){le("instance deleted - cannot call any method");return}i(p,u())}function f(p){if(e.deleted){le("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?(le("instance deleted - cannot call any method"),null):(t.shouldUpdate()&&t.update(),e.output[p])}t.shouldUpdate=()=>{var d,x;const p=t.getMTime();let y=1/0,h=r;for(;h--;){if(!e.output[h]||e.output[h].isDeleted())return!0;const C=e.output[h].getMTime();if(C<p)return!0;C<y&&(y=C)}for(h=e.numberOfInputs;h--;)if((d=e.inputConnection[h])!=null&&d.filter.shouldUpdate()||((x=t.getInputData(h))==null?void 0:x.getMTime())>y)return!0;return!1};function g(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const y=()=>l(p);return y.filter=t,y}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 y=0;for(;y<e.numberOfInputs;)p[y]=t.getInputData(y),y++}t.shouldUpdate()&&t.requestData&&t.requestData(p,e.output)},t.getNumberOfInputPorts=()=>e.numberOfInputs,t.getNumberOfOutputPorts=()=>r||e.output.length,t.getInputArrayToProcess=p=>{const y=e.inputArrayToProcess[p],h=e.inputData[p];return y&&h?h[`get${y.fieldAssociation}`]().getArray(y.arrayName):null},t.setInputArrayToProcess=function(p,y,h){let d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"Scalars";for(;e.inputArrayToProcess.length<p;)e.inputArrayToProcess.push(null);e.inputArrayToProcess[p]={arrayName:y,fieldAssociation:h,attributeType:d}}}const Qi=Symbol("Event abort");function Rf(t,e,n){const r=[],a=t.delete;let s=1;function i(c){for(let f=0;f<r.length;++f){const[l]=r[f];if(l===c){r.splice(f,1);return}}}function o(c){function f(){i(c)}return Object.freeze({unsubscribe:f})}function u(){if(e.deleted){le("instance deleted - cannot call any method");return}const c=r.slice();for(let f=0;f<c.length;++f){const[,l,g]=c[f];if(l){if(g<0)setTimeout(()=>l.apply(t,arguments),1-g);else if(l.apply(t,arguments)===Qi)break}}}t[`invoke${be(n)}`]=u,t[`on${be(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 le("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 me(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&&$t.register(e,n),n}function Of(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(){for(var r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];return e.filter(i=>!!i).map(i=>i(...a))}}function Ji(t){return t&&t.isA&&t.isA("vtkObject")}function ss(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];if(Ji(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=>{ss(u,e,n,r)}):ss(o,e,n,r)})}return n}function Df(t,e,n){var r=this;let a;const s=function(){for(var i=arguments.length,o=new Array(i),u=0;u<i;u++)o[u]=arguments[u];const c=r,f=()=>{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 Zi(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;u<i;u++)o[u]=arguments[u];if(n){r=o;return}n=!0,t(...o),setTimeout(a,e)}return s}function eo(t,e){let n=arguments.length>2&&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 _1=1;const ya="__root__";function mf(t,e){eo(t,e);const n=t.delete;e.proxyId=`${_1++}`,e.ui=JSON.parse(JSON.stringify(e.ui||[])),ht(t,e,["proxyId","proxyGroup","proxyName"]),Ke(t,e,["proxyManager"]);const r={},a={};function s(c,f){a[f]||(a[f]=[]);const l=a[f];for(let g=0;g<c.length;g++)l.push(c[g].name),r[c[g].name]=c[g],c[g].children&&c[g].children.length&&s(c[g].children,c[g].name)}s(e.ui,ya),t.updateUI=c=>{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,ya),t.modified()};function i(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ya;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${be(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,y=!1;function h(v){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(y)return null;const S=[];let O=null;for(p=g.length;p--;){const B=g[p];B.instance===v?O=B:S.push(B)}if(!O)return null;const R=O.instance[`get${be(O.propertyName)}`]();if(!x1(R,l)||w){for(l=R,y=!0;S.length;){const B=S.pop();B.instance.set({[B.propertyName]:l})}y=!1}return e.propertyLinkMap[c].persistent&&(e.propertyLinkMap[c].value=R),R}function d(v,w){const S=[];for(p=g.length;p--;){const O=g[p];O.instance===v&&(O.propertyName===w||w===void 0)&&(O.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 O=v.onModified(h),R=g[0];return g.push({instance:v,propertyName:w,subscription:O}),S&&(e.propertyLinkMap[c].persistent&&e.propertyLinkMap[c].value!==void 0?v.set({[w]:e.propertyLinkMap[c].value}):R&&h(R.instance,!0)),{unsubscribe:()=>d(v,w)}}function C(){for(;g.length;)g.pop().subscription.unsubscribe()}const T={bind:x,unbind:d,unsubscribe:C,persistent:f};return e.propertyLinkMap[c]=T,T};function o(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ya;const f=[],l=e.proxyId,g=i(c)||[];for(let p=0;p<g.length;p++){const y=g[p],h=t[`get${be(y)}`],d=h?h():void 0,x={id:l,name:y,value:d},C=o(y);C.length&&(x.children=C),f.push(x)}return f}t.listPropertyNames=()=>o().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<e.links.length;c++){const{link:f,property:l,persistent:g,updateOnBind:p,type:y}=e.links[c];if(y==="application"){const h=e.proxyManager.getPropertyLink(f,g);t.registerPropertyLinkForGC(h,"application"),h.bind(t,l,p)}}}Ii(u)}function Mf(t,e,n){const r=t.delete,a=[],s=Object.keys(n);let i=s.length;for(;i--;){const o=s[i],{modelKey:u,property:c,modified:f=!0}=n[o],l=be(c),g=be(o);t[`get${g}`]=e[u][`get${l}`],t[`set${g}`]=e[u][`set${l}`],f&&a.push(e[u].onModified(t.modified))}t.delete=()=>{for(;a.length;)a.pop().unsubscribe();r()}}function Vf(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${be(o)}`]=c=>{if(c!==e[o]){e[o]=c;const f=u[c];a(f),t.modified()}}}s.length&&ht(t,e,s)}const yc=10,Tc=40,xc=800;function Lf(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*yc,a=n*yc,"deltaY"in t&&(a=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||a)&&t.deltaMode&&(t.deltaMode===1?(r*=Tc,a*=Tc):(r*=xc,a*=xc)),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 _={algo:Ef,capitalize:xs,chain:Of,debounce:Df,enumToString:S1,event:Rf,EVENT_ABORT:Qi,formatBytesToProperUnit:xf,formatNumbersWithThousandSeparator:Sf,get:ht,getArray:Vr,getCurrentGlobalMTime:v1,getStateArrayMapFunc:wf,isVtkObject:Ji,keystore:eo,measurePromiseExecution:_f,moveToProtected:oa,newInstance:me,newTypedArray:Mr,newTypedArrayFrom:Xi,normalizeWheel:Lf,obj:Ze,proxy:mf,proxyPropertyMapping:Mf,proxyPropertyState:Vf,safeArrays:Cf,set:ia,setArray:Yi,setGet:Ke,setGetArray:qi,setImmediate:Ii,setLoggerFunction:hf,throttle:Zi,traverseInstanceTree:ss,TYPED_ARRAYS:st,uncapitalize:Tf,VOID:gf,vtkDebugMacro:as,vtkErrorMacro:le,vtkInfoMacro:vf,vtkLogMacro:df,vtkOnceErrorMacro:yf,vtkWarningMacro:Pi},nn=Object.freeze({__proto__:null,VOID:gf,setLoggerFunction:hf,vtkLogMacro:df,vtkInfoMacro:vf,vtkDebugMacro:as,vtkErrorMacro:le,vtkWarningMacro:Pi,vtkOnceErrorMacro:yf,TYPED_ARRAYS:st,newTypedArray:Mr,newTypedArrayFrom:Xi,capitalize:xs,_capitalize:be,uncapitalize:Tf,formatBytesToProperUnit:xf,formatNumbersWithThousandSeparator:Sf,setImmediateVTK:Ii,measurePromiseExecution:_f,obj:Ze,get:ht,set:ia,setGet:Ke,getArray:Vr,setArray:Yi,setGetArray:qi,moveToProtected:oa,algo:Ef,EVENT_ABORT:Qi,event:Rf,newInstance:me,chain:Of,isVtkObject:Ji,traverseInstanceTree:ss,debounce:Df,throttle:Zi,keystore:eo,proxy:mf,proxyPropertyMapping:Mf,proxyPropertyState:Vf,normalizeWheel:Lf,default:_});const{vtkErrorMacro:E1}=_,R1=["Build","Render"];function O1(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<e.children.length;i++)e.children[i].traverse(r);t.apply(r,!1)},t.apply=(r,a)=>{const s=t[r.getOperation()];s&&s(a,r)},t.getViewNodeFor=r=>{if(e.renderable===r)return t;for(let a=0;a<e.children.length;++a){const i=e.children[a].getViewNodeFor(r);if(i)return i}},t.getFirstAncestorOfType=r=>e._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<r.length;++a){const s=r[a],i=e._renderableChildMap.get(s);if(i!==void 0)i.setVisited(!0);else{const o=t.createViewNode(s);o&&(o.setParent(t),o.setVisited(!0),e._renderableChildMap.set(s,o),e.children.push(o))}}},t.addMissingChildren=r=>{if(!(!r||!r.length))for(let a=0;a<r.length;++a){const s=r[a];e.children.indexOf(s)===-1&&(s.setParent(t),e.children.push(s)),s.setVisited(!0)}},t.prepareNodes=()=>{for(let r=0;r<e.children.length;++r)e.children[r].setVisited(!1)},t.setVisited=r=>{e.visited=r},t.removeUnusedNodes=()=>{let r=0;for(let a=0;a<e.children.length;++a){const s=e.children[a];if(s.getVisited())e.children[r++]=s,s.setVisited(!1);else{const o=s.getRenderable();o&&e._renderableChildMap.delete(o),s.delete()}}e.children.length=r},t.createViewNode=r=>{if(!e.myFactory)return E1("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;r<e.children.length;r++)e.children[r].delete();n()}}const D1={renderable:null,myFactory:null,children:[],visited:!1};function Bf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,D1,n),_.obj(t,e),_.event(t,e,"event"),e._renderableChildMap=new Map,_.get(t,e,["visited"]),_.setGet(t,e,["_parent","renderable","myFactory"]),_.getArray(t,e,["children"]),_.moveToProtected(t,e,["parent"]),O1(t,e)}const m1=_.newInstance(Bf,"vtkViewNode");var Ne={newInstance:m1,extend:Bf,PASS_TYPES:R1};function M1(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 V1={};function kf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,V1,n),_.obj(t,e),M1(t,e)}const L1=_.newInstance(kf,"vtkViewNodeFactory");var Ff={newInstance:L1,extend:kf};const Uf=Object.create(null);function At(t,e){Uf[t]=e}function B1(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}const k1={};function bf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,k1,n),e.overrides=Uf,Ff.extend(t,e,n),B1(t,e)}const F1=_.newInstance(bf,"vtkOpenGLViewNodeFactory");var U1={newInstance:F1,extend:bf};function b1(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()){at(e.keyMatrices.wcvc,e.renderable.getViewMatrix()),$i(e.keyMatrices.normalMatrix,e.keyMatrices.wcvc),Wi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Le(e.keyMatrices.wcvc,e.keyMatrices.wcvc);const r=e._openGLRenderer.getAspectRatio();at(e.keyMatrices.vcpc,e.renderable.getProjectionMatrix(r,-1,1)),Le(e.keyMatrices.vcpc,e.keyMatrices.vcpc),pt(e.keyMatrices.wcpc,e.keyMatrices.vcpc,e.keyMatrices.wcvc),e.keyMatrixTime.modified(),e.lastRenderer=n}return e.keyMatrices}}const N1={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function G1(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,N1,n),Ne.extend(t,e,n),e.keyMatrixTime={},Ze(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Ke(t,e,["context","keyMatrixTime"]),b1(t,e)}const $1=me(G1);At("vtkCamera",$1);const{vtkDebugMacro:W1}=nn;function z1(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;a<r.length;++a)r[a].getSwitch()>0&&n++;return n||(W1("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 A1={context:null,_openGLRenderWindow:null,selector:null};function H1(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,A1,n),Ne.extend(t,e,n),ht(t,e,["shaderCache"]),Ke(t,e,["selector"]),oa(t,e,["openGLRenderWindow"]),z1(t,e)}const j1=me(H1,"vtkOpenGLRenderer");At("vtkRenderer",j1);function K1(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.children.length;r++){const a=e.children[r];a.isA("vtkOpenGLTexture")?(e.ogltextures||(e.ogltextures=[]),e.ogltextures.push(a)):e.oglmapper=a}}},t.traverseZBufferPass=n=>{!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<e.ogltextures.length;n++){const r=e.ogltextures[n];r.render(),r.getHandle()&&e.activeTextures.push(r)}}},t.queryPass=(n,r)=>{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<e.activeTextures.length;a++)e.activeTextures[a].deactivate()},t.translucentPass=(n,r)=>{if(n)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let a=0;a<e.activeTextures.length;a++)e.activeTextures[a].deactivate()},t.getKeyMatrices=()=>(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),at(e.keyMatrices.mcwc,e.renderable.getMatrix()),Le(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.renderable.getIsIdentity()?tr(e.keyMatrices.normalMatrix):($i(e.keyMatrices.normalMatrix,e.keyMatrices.mcwc),Wi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Bu(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),e.keyMatrixTime.modified()),e.keyMatrices)}const P1={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function X1(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,P1,n),Ne.extend(t,e,n),e.keyMatrixTime={},Ze(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:tr(new Float64Array(9)),mcwc:he(new Float64Array(16))},Ke(t,e,["context"]),ht(t,e,["activeTextures"]),K1(t,e)}const I1=me(X1);At("vtkActor",I1);function Y1(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<e.children.length;r++){const a=e.children[r];a.isA("vtkOpenGLTexture")?(e.ogltextures||(e.ogltextures=[]),e.ogltextures.push(a)):e.oglmapper=a}}},t.queryPass=(n,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<e.ogltextures.length;n++){const r=e.ogltextures[n];r.render(),r.getHandle()&&e.activeTextures.push(r)}}},t.opaquePass=(n,r)=>{if(n)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let a=0;a<e.activeTextures.length;a++)e.activeTextures[a].deactivate()},t.translucentPass=(n,r)=>{if(n)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let a=0;a<e.activeTextures.length;a++)e.activeTextures[a].deactivate()},t.overlayPass=(n,r)=>{if(n)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let a=0;a<e.activeTextures.length;a++)e.activeTextures[a].deactivate()}}const q1={context:null,activeTextures:null};function Q1(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,q1,n),Ne.extend(t,e,n),Ke(t,e,["context"]),ht(t,e,["activeTextures"]),Y1(t,e)}const J1=me(Q1);At("vtkActor2D",J1);var to={exports:{}};to.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<f.length;l++){u+=f.charCodeAt(l);var g=.02519603282416938*u;u=g>>>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})(Dt,t,!1)})(to);var Z1=to.exports,no={exports:{}};no.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<c.length+64;f++)u.x^=c.charCodeAt(f)|0,u.next()}function s(o,u){return u.x=o.x,u.y=o.y,u.z=o.z,u.w=o.w,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,y=(g+p)/(1<<21);while(y===0);return y},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})(Dt,t,!1)})(no);var ev=no.exports,ro={exports:{}};ro.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<c.length+64;f++)u.x^=c.charCodeAt(f)|0,f==c.length&&(u.d=u.x<<10^u.x>>>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,y=(g+p)/(1<<21);while(y===0);return y},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})(Dt,t,!1)})(ro);var tv=ro.exports,ao={exports:{}};ao.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;g<l.length;++g)p[g&7]=p[g&7]<<15^l.charCodeAt(g)+p[g+1&7]<<13;for(;p.length<8;)p.push(0);for(g=0;g<8&&p[g]===0;++g);for(g==8?p[7]=-1:p[g],f.x=p,f.i=0,g=256;g>0;--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,y=(g+p)/(1<<21);while(y===0);return y},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})(Dt,t,!1)})(ao);var nv=ao.exports,so={exports:{}};so.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,y;return u.w=f=f+1640531527|0,y=l[g+34&127],p=l[g=g+1&127],y^=y<<13,p^=p<<17,y^=y>>>15,p^=p>>>12,y=l[g]=y^p,u.i=g,y+(f^f>>>16)|0};function c(f,l){var g,p,y,h,d,x=[],C=128;for(l===(l|0)?(p=l,l=null):(l=l+"\0",p=0,C=Math.max(C,l.length)),y=0,h=-32;h<C;++h)l&&(p^=l.charCodeAt((h+32)%l.length)),h===0&&(d=p),p^=p<<10,p^=p>>>15,p^=p<<4,p^=p>>>13,h>=0&&(d=d+1640531527|0,g=x[h&127]^=p+d,y=g==0?y+1:0);for(y>=128&&(x[(l&&l.length||0)&127]=-1),y=127,h=4*128;h>0;--h)p=x[y+34&127],g=x[y=y+1&127],p^=p<<13,g^=g<<17,p^=p>>>15,g^=g>>>12,x[y]=p^g;f.w=d,f.X=x,f.i=y}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,y=(g+p)/(1<<21);while(y===0);return y},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})(Dt,t,!1)})(so);var rv=so.exports,io={exports:{}};io.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,y=u.a;return l=l<<25^l>>>7^g,g=g-p|0,p=p<<24^p>>>8^y,y=y-l|0,u.b=l=l<<20^l>>>12^g,u.c=g=g-p|0,u.d=p<<16^g>>>16^y,u.a=y-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<c.length+20;f++)u.b^=c.charCodeAt(f)|0,u.next()}function s(o,u){return u.a=o.a,u.b=o.b,u.c=o.c,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,y=(g+p)/(1<<21);while(y===0);return y},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})(Dt,t,!1)})(io);var av=io.exports,Nf={exports:{}};const sv={},iv=Object.freeze(Object.defineProperty({__proto__:null,default:sv},Symbol.toStringTag,{value:"Module"})),ov=Xp(iv);(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 O=[];w=w==!0?{entropy:!0}:w||{};var R=x(d(w.entropy?[v,T(n)]:v??C(),3),O),B=new y(O),m=function(){for(var V=B.g(s),L=u,k=0;V<c;)V=(V+k)*a,L*=a,k=B.g(1);for(;V>=f;)V/=2,L/=2,k>>>=1;return(V+k)/L};return m.int32=function(){return B.g(4)|0},m.quick=function(){return B.g(4)/4294967296},m.double=m,x(T(B.S),n),(w.pass||S||function(V,L,k,N){return N&&(N.S&&h(N,B),V.state=function(){return h(B,{})}),k?(r[o]=V,L):V})(m,R,"global"in w?w.global:this==r,w.state)}function y(v){var w,S=v.length,O=this,R=0,B=O.i=O.j=0,m=O.S=[];for(S||(v=[S++]);R<a;)m[R]=R++;for(R=0;R<a;R++)m[R]=m[B=l&B+v[R%S]+(w=m[R])],m[B]=w;(O.g=function(V){for(var L,k=0,N=O.i,I=O.j,P=O.S;V--;)L=P[N=l&N+1],k=k*a+P[l&(P[N]=P[I=l&I+L])+(P[I]=L)];return O.i=N,O.j=I,k})(a)}function h(v,w){return w.i=v.i,w.j=v.j,w.S=v.S.slice(),w}function d(v,w){var S=[],O=typeof v,R;if(w&&O=="object")for(R in v)try{S.push(d(v[R],w-1))}catch{}return S.length?S:O=="string"?v:v+"\0"}function x(v,w){for(var S=v+"",O,R=0;R<S.length;)w[l&R]=l&(O^=w[l&R]*19)+S.charCodeAt(R++);return T(w)}function C(){try{var v;return g&&(v=g.randomBytes)?v=v(a):(v=new Uint8Array(a),(e.crypto||e.msCrypto).getRandomValues(v)),T(v)}catch{var w=e.navigator,S=w&&w.plugins;return[+new Date,e,S,e.screen,T(n)]}}function T(v){return String.fromCharCode.apply(0,v)}if(x(r.random(),n),t.exports){t.exports=p;try{g=ov}catch{}}else r["seed"+o]=p})(typeof self<"u"?self:Dt,[],Math)})(Nf);var cv=Nf.exports,uv=Z1,fv=ev,lv=tv,gv=nv,pv=rv,hv=av,Lr=cv;Lr.alea=uv;Lr.xor128=fv;Lr.xorwow=lv;Lr.xorshift7=gv;Lr.xor4096=pv;Lr.tychei=hv;const dv=1e-6,vv=1e-12,{vtkErrorMacro:XL,vtkWarningMacro:Sc}=_;function Si(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3;const e=Array(t);for(let n=0;n<t;++n)e[n]=0;return e}function Ge(t){return t/180*Math.PI}function ta(t){return t*180/Math.PI}const{round:Ta,floor:yv,ceil:IL,min:YL,max:qL}=Math;function Ut(t){let e=1;for(;e<t;)e*=2;return e}function xa(t){return t===Ut(t)}function $s(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const n=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)-t;return t+n*Math.random()}function Ci(t,e,n){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n}function fn(t,e,n){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n}function Cc(t,e,n,r){return r[0]=t[0]+e[0]*n,r[1]=t[1]+e[1]*n,r[2]=t[2]+e[2]*n,r}function de(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function na(t,e,n){const r=t[1]*e[2]-t[2]*e[1],a=t[2]*e[0]-t[0]*e[2],s=t[0]*e[1]-t[1]*e[0];return n[0]=r,n[1]=a,n[2]=s,n}function oo(t){let e=arguments.length>1&&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;r<e;r++)n+=t[r]*t[r];return Math.sqrt(n)}}}function ra(t){const e=oo(t);return e!==0&&(t[0]/=e,t[1]/=e,t[2]/=e),e}function Jt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])+(t[2]-e[2])*(t[2]-e[2])}function Tv(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function xv(t){const e=Tv(t);return e!==0&&(t[0]/=e,t[1]/=e),e}function Ka(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===2?e[0][0]*e[1][1]-e[1][0]*e[0][1]:e.length===4?e[0]*e[3]-e[1]*e[2]:Number.NaN}function Sv(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:dv;if(t.length!==e.length)return!1;function r(a,s){return Math.abs(a-e[s])<=n}return t.every(r)}const Cv=Sv;function Ws(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 wc(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]=Ws(t[0],n),e[1]=Ws(t[1],n),e[2]=Ws(t[2],n),e}function wv(t,e,n){let r,a,s,i,o=0,u,c,f;const l=Si(n);for(r=0;r<n;r++){for(i=0,a=0;a<n;a++)(f=Math.abs(t[r*n+a]))>i&&(i=f);if(i===0)return Sc("Unable to factor linear system"),0;l[r]=1/i}for(a=0;a<n;a++){for(r=0;r<a;r++){for(u=t[r*n+a],s=0;s<r;s++)u-=t[r*n+s]*t[s*n+a];t[r*n+a]=u}for(i=0,r=a;r<n;r++){for(u=t[r*n+a],s=0;s<a;s++)u-=t[r*n+s]*t[s*n+a];t[r*n+a]=u,(c=l[r]*Math.abs(u))>=i&&(i=c,o=r)}if(a!==o){for(s=0;s<n;s++)c=t[o*n+s],t[o*n+s]=t[a*n+s],t[a*n+s]=c;l[o]=l[a]}if(e[a]=o,Math.abs(t[a*n+a])<=vv)return Sc("Unable to factor linear system"),0;if(a!==n-1)for(c=1/t[a*n+a],r=a+1;r<n;r++)t[r*n+a]*=c}return 1}function _v(t,e,n,r){let a,s,i,o,u;for(i=-1,a=0;a<r;a++){if(o=e[a],u=n[o],n[o]=n[a],i>=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;s<r;s++)u-=t[a*r+s]*n[s];n[a]=u/t[a*r+a]}}function Ev(t,e,n){if(n===2){const a=Si(2),s=Ka(t[0],t[1],t[2],t[3]);return s===0?0:(a[0]=(t[3]*e[0]-t[1]*e[1])/s,a[1]=(-(t[2]*e[0])+t[0]*e[1])/s,e[0]=a[0],e[1]=a[1],1)}if(n===1)return t[0]===0?0:(e[0]/=t[0],1);const r=Si(n);return wv(t,r,n)===0?0:(_v(t,r,e,n),1)}function Sa(t,e){let n,r;const[a,s,i]=t,o=1/3,u=1/6,c=2/3;let f=a,l=a;s>f?f=s:s<l&&(l=s),i>f?f=i:i<l&&(l=i);const g=f;g>0?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 pr(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 Rv(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 Ov(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 Dv(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;u<i&&(u=i),u<o&&(u=o),u>1&&(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 mv(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 yr(t,e){const n=[0,0,0];mv(t,n),Ov(n,e)}function wi(t,e){const n=[0,0,0];Rv(t,n),Dv(n,e)}function co(t){return t[0]=1,t[1]=-1,t[2]=1,t[3]=-1,t[4]=1,t[5]=-1,t}function zs(t){return!(t[1]-t[0]<0)}function As(t,e,n){return t<e?e:t>n?n:t}function _c(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[0,0,0];return r[0]=As(t[0],e[0],n[0]),r[1]=As(t[1],e[1],n[1]),r[2]=As(t[2],e[2],n[2]),r}const Mv=t=>!Number.isFinite(t),{isFinite:QL,isNaN:Vv}=Number,is=Vv;function uo(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}const _i=1e-6,Gf="coincide",$f="disjoint";function Lv(t,e,n){return t[0]*(n[0]-e[0])+t[1]*(n[1]-e[1])+t[2]*(n[2]-e[2])}function Wf(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 zf(t,e,n,r){const a=[];fn(t,e,a);const s=de(n,a);r[0]=t[0]-s*n[0],r[1]=t[1]-s*n[1],r[2]=t[2]-s*n[2]}function Af(t,e,n){const r=de(t,e);let a=de(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 Hf(t,e,n,r){const a=[];fn(t,e,a);const s=de(n,a),i=de(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 jf(t,e,n,r){const a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},s=[],i=[];fn(e,t,s),fn(n,t,i);const o=de(r,i),u=de(r,s);let c,f;return u<0?c=-u:c=u,o<0?f=-o*_i:f=o*_i,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 Kf(t,e,n,r){const a={intersection:!1,l0:[],l1:[],error:null},s=[];na(e,r,s);const i=s.map(l=>Math.abs(l));if(i[0]+i[1]+i[2]<_i){const l=[];return fn(t,n,l),de(e,l)===0?a.error=Gf:a.error=$f,a}let o;i[0]>i[1]&&i[0]>i[2]?o="x":i[1]>i[2]?o="y":o="z";const u=[],c=-de(e,t),f=-de(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,Ci(u,s,a.l1),a.intersection=!0,a}const Bv={evaluate:Lv,distanceToPlane:Wf,projectPoint:zf,projectVector:Af,generalizedProjectPoint:Hf,intersectWithLine:jf,intersectWithPlane:Kf,DISJOINT:$f,COINCIDE:Gf};function kv(t,e){e.classHierarchy.push("vtkPlane"),t.distanceToPlane=n=>Wf(n,e.origin,e.normal),t.projectPoint=(n,r)=>{zf(n,e.origin,e.normal,r)},t.projectVector=(n,r)=>Af(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)=>{Hf(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)=>jf(n,r,e.origin,e.normal),t.intersectWithPlane=(n,r)=>Kf(n,r,e.origin,e.normal)}const Fv={normal:[0,0,1],origin:[0,0,0]};function Pf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Fv,n),_.obj(t,e),_.setGetArray(t,e,["normal","origin"],3),kv(t,e)}const Uv=_.newInstance(Pf,"vtkPlane");var Rr={newInstance:Uv,extend:Pf,...Bv};const Ss=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function Xf(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 ln(t){return(t==null?void 0:t.length)>=6&&t[0]<=t[1]&&t[2]<=t[3]&&t[4]<=t[5]}function fo(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 lo(t){return fo(t,Ss)}function os(t,e,n,r){const[a,s,i,o,u,c]=t;return t[0]=a<e?a:e,t[1]=s>e?s:e,t[2]=i<n?i:n,t[3]=o>n?o:n,t[4]=u<r?u:r,t[5]=c>r?c:r,t}function go(t,e){if(e.length===0)return t;if(Array.isArray(e[0]))for(let n=0;n<e.length;++n)os(t,...e[n]);else for(let n=0;n<e.length;n+=3)os(t,...e.slice(n,n+3));return t}function If(t,e,n,r,a,s,i){const[o,u,c,f,l,g]=t;return i===void 0?(t[0]=Math.min(e[0],o),t[1]=Math.max(e[1],u),t[2]=Math.min(e[2],c),t[3]=Math.max(e[3],f),t[4]=Math.min(e[4],l),t[5]=Math.max(e[5],g)):(t[0]=Math.min(e,o),t[1]=Math.max(n,u),t[2]=Math.min(r,c),t[3]=Math.max(a,f),t[4]=Math.min(s,l),t[5]=Math.max(i,g)),t}function Yf(t,e,n,r){const[a,s,i,o,u,c]=t;return t[0]=e,t[1]=e>s?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 qf(t,e,n,r){const[a,s,i,o,u,c]=t;return t[0]=e<a?e:a,t[1]=e,t[2]=n<i?n:i,t[3]=n,t[4]=r<u?r:u,t[5]=r,s!==e||o!==n||c!==r}function Qf(t,e){return t[0]-=e,t[1]+=e,t[2]-=e,t[3]+=e,t[4]-=e,t[5]+=e,t}function po(t,e,n,r){return ln(t)?(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 ho(t){return[.5*(t[0]+t[1]),.5*(t[2]+t[3]),.5*(t[4]+t[5])]}function bv(t,e,n,r){if(!ln(t))return!1;const a=ho(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],po(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 Xr(t,e){return t[e*2+1]-t[e*2]}function Cs(t){return[Xr(t,0),Xr(t,1),Xr(t,2)]}function Jf(t){return t.slice(0,2)}function Zf(t){return t.slice(2,4)}function el(t){return t.slice(4,6)}function tl(t){const e=Cs(t);return e[0]>e[1]?e[0]>e[2]?e[0]:e[2]:e[1]>e[2]?e[1]:e[2]}function nl(t){if(ln(t)){const e=Cs(t);return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}return null}function vo(t){return[t[0],t[2],t[4]]}function yo(t){return[t[1],t[3],t[5]]}function Ca(t,e){return t<=0&&e>=0||t>=0&&e<=0}function To(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 rl(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 al(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];const r=To(t,[]);for(let a=0;a<r.length;++a)_e(r[a],r[a],e);return lo(n),go(n,r)}function sl(t){let e=arguments.length>1&&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 il(t,e,n,r){const a=[].concat(Ss),s=t.getData();for(let i=0;i<s.length;i+=3){const o=[s[i],s[i+1],s[i+2]],u=de(o,e);a[0]=Math.min(u,a[0]),a[1]=Math.max(u,a[1]);const c=de(o,n);a[2]=Math.min(c,a[2]),a[3]=Math.max(c,a[3]);const f=de(o,r);a[4]=Math.min(f,a[4]),a[5]=Math.max(f,a[5])}return a}function ol(t,e,n,r,a){let s=!0;const i=[];let o=0;const u=[],c=[0,0,0],f=0,l=1,g=2;for(let p=0;p<3;p++)e[p]<t[2*p]?(i[p]=l,c[p]=t[2*p],s=!1):e[p]>t[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]<u[p]&&(o=p);if(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]||r[p]>t[2*p+1])return 0}else r[p]=c[p];return 1}function cl(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=Rr.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 ul(t,e){if(!(ln(t)&&ln(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 cs(t,e){if(!(ln(t)&&ln(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 us(t,e,n,r){return!(e<t[0]||e>t[1]||n<t[2]||n>t[3]||r<t[4]||r>t[5])}function Nv(t,e){return!(!cs(t,e)||!us(t,...vo(e))||!us(t,...yo(e)))}function fl(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 y=[t[l],t[g],t[p]];a[s++]=Rr.evaluate(n,e,y)}let i=2;for(;i--&&!(Ca(a[r[i][0]],a[r[i][4]])&&Ca(a[r[i][1]],a[r[i][5]])&&Ca(a[r[i][2]],a[r[i][6]])&&Ca(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&&g<c&&(c=g),o<0&&g>c&&(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 Gv{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(Ss))}getBounds(){return this.bounds}equals(e){return Xf(this.bounds,e)}isValid(){return ln(this.bounds)}setBounds(e){return fo(this.bounds,e)}reset(){return lo(this.bounds)}addPoint(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return os(this.bounds,...n)}addPoints(e){return go(this.bounds,e)}addBounds(e,n,r,a,s,i){return If(this.bounds,e,n,r,a,s,i)}setMinPoint(e,n,r){return Yf(this.bounds,e,n,r)}setMaxPoint(e,n,r){return qf(this.bounds,e,n,r)}inflate(e){return Qf(this.bounds,e)}scale(e,n,r){return po(this.bounds,e,n,r)}getCenter(){return ho(this.bounds)}getLength(e){return Xr(this.bounds,e)}getLengths(){return Cs(this.bounds)}getMaxLength(){return tl(this.bounds)}getDiagonalLength(){return nl(this.bounds)}getMinPoint(){return vo(this.bounds)}getMaxPoint(){return yo(this.bounds)}getXRange(){return Jf(this.bounds)}getYRange(){return Zf(this.bounds)}getZRange(){return el(this.bounds)}getCorners(e){return To(this.bounds,e)}computeCornerPoints(e,n){return rl(this.bounds,e,n)}computeLocalBounds(e,n,r){return il(this.bounds,e,n,r)}transformBounds(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return al(this.bounds,e,n)}computeScale3(e){return sl(this.bounds,e)}cutWithPlane(e,n){return fl(this.bounds,e,n)}intersectBox(e,n,r,a){return ol(this.bounds,e,n,r,a)}intersectPlane(e,n){return cl(this.bounds,e,n)}intersect(e){return ul(this.bounds,e)}intersects(e){return cs(this.bounds,e)}containsPoint(e,n,r){return us(this.bounds,e,n,r)}contains(e){return cs(this.bounds,e)}}function $v(t){const e=t&&t.bounds;return new Gv(e)}const Wv={equals:Xf,isValid:ln,setBounds:fo,reset:lo,addPoint:os,addPoints:go,addBounds:If,setMinPoint:Yf,setMaxPoint:qf,inflate:Qf,scale:po,scaleAboutCenter:bv,getCenter:ho,getLength:Xr,getLengths:Cs,getMaxLength:tl,getDiagonalLength:nl,getMinPoint:vo,getMaxPoint:yo,getXRange:Jf,getYRange:Zf,getZRange:el,getCorners:To,computeCornerPoints:rl,computeLocalBounds:il,transformBounds:al,computeScale3:sl,cutWithPlane:fl,intersectBox:ol,intersectPlane:cl,intersect:ul,intersects:cs,containsPoint:us,contains:Nv,INIT_BOUNDS:Ss};var Ve={newInstance:$v,...Wv};const zv={DISPLAY:0,WORLD:1};var ll={CoordinateSystem:zv};const{CoordinateSystem:Ei}=ll;function Ec(t){return()=>_.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function Av(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let n=e.mtime;for(let r=0;r<e.textures.length;++r){const a=e.textures[r].getMTime();a>n&&(n=a)}return n},t.processSelectorPixelBuffers=(n,r)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=Ec("pick"),t.hasKey=Ec("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(Ei.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(Ei.DISPLAY)}const Hv={allocatedRenderTime:10,coordinateSystem:Ei.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function gl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hv,n),_.obj(t,e),_.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),_.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),_.moveToProtected(t,e,["parentProp"]),Av(t,e)}const jv=_.newInstance(gl,"vtkProp");var ca={newInstance:jv,extend:gl,...ll};function Kv(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=er();Au(r,e.rotation);const a=new Float64Array(3),s=dd(a,r);return[ta(s),a[0],a[1],a[2]]},t.rotateX=r=>{r!==0&&(Uu(e.rotation,e.rotation,Ge(r)),t.modified())},t.rotateY=r=>{r!==0&&(bu(e.rotation,e.rotation,Ge(r)),t.modified())},t.rotateZ=r=>{r!==0&&(Nu(e.rotation,e.rotation,Ge(r)),t.modified())},t.rotateWXYZ=(r,a,s,i)=>{if(r===0||a===0&&s===0&&i===0)return;const o=Ge(r),u=er();Hi(u,[a,s,i],o);const c=new Float64Array(16);Ai(c,u),pt(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],he(e.rotation),t.rotateZ(s),t.rotateX(r),t.rotateY(a),t.modified(),!0),t.setUserMatrix=r=>Cv(e.userMatrix,r)?!1:(at(e.userMatrix,r),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){he(e.matrix),e.userMatrix&&pt(e.matrix,e.matrix,e.userMatrix),ze(e.matrix,e.matrix,e.origin),ze(e.matrix,e.matrix,e.position),pt(e.matrix,e.matrix,e.rotation),_r(e.matrix,e.matrix,e.scale),ze(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),Le(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=()=>Ve.getCenter(e.bounds),t.getLength=()=>Ve.getLength(e.bounds),t.getXRange=()=>Ve.getXRange(e.bounds),t.getYRange=()=>Ve.getYRange(e.bounds),t.getZRange=()=>Ve.getZRange(e.bounds),t.getUserMatrix=()=>e.userMatrix;function n(){t.computeMatrix()}t.onModified(n)}const Pv={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 pl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Pv,n),ca.extend(t,e,n),e.matrixMTime={},_.obj(e.matrixMTime),_.get(t,e,["bounds","isIdentity"]),_.getArray(t,e,["orientation"]),_.setGetArray(t,e,["origin","position","scale"],3),e.matrix=he(new Float64Array(16)),e.rotation=he(new Float64Array(16)),e.userMatrix=he(new Float64Array(16)),e.transform=null,Kv(t,e)}const Xv=_.newInstance(pl,"vtkProp3D");var Iv={newInstance:Xv,extend:pl};const hl={FLAT:0,GOURAUD:1,PHONG:2},gt={POINTS:0,WIREFRAME:1,SURFACE:2},Yv=hl;var dl={Shading:hl,Representation:gt,Interpolation:Yv};const{Representation:Ar,Interpolation:Hr}=dl;function Rc(t){return()=>_.vtkErrorMacro(`vtkProperty::${t} - NOT IMPLEMENTED`)}function qv(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=Rc("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=Rc("AddShaderVariable"),t.setInterpolationToFlat=()=>t.setInterpolation(Hr.FLAT),t.setInterpolationToGouraud=()=>t.setInterpolation(Hr.GOURAUD),t.setInterpolationToPhong=()=>t.setInterpolation(Hr.PHONG),t.getInterpolationAsString=()=>_.enumToString(Hr,e.interpolation),t.setRepresentationToWireframe=()=>t.setRepresentation(Ar.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(Ar.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(Ar.POINTS),t.getRepresentationAsString=()=>_.enumToString(Ar,e.representation)}const Qv={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:Hr.GOURAUD,representation:Ar.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qv,n),_.obj(t,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"]),_.setGetArray(t,e,["ambientColor","specularColor","diffuseColor","edgeColor"],3),qv(t,e)}const Jv=_.newInstance(vl,"vtkProperty");var Br={newInstance:Jv,extend:vl,...dl};const{vtkDebugMacro:Zv}=_;function ey(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=Br.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()){Zv("Recomputing bounds..."),e.mapperBounds=r.concat();const a=[];Ve.getCorners(r,a),t.computeMatrix();const s=new Float64Array(16);Le(s,e.matrix),a.forEach(i=>_e(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<c[(o-1)/2]?c[(o-1)/2]:u,i)),e.boundsMTime.modified()}return e.bounds},t.getMTime=()=>{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 ty={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function yl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ty,n),Iv.extend(t,e,n),e.boundsMTime={},_.obj(e.boundsMTime),_.set(t,e,["property"]),_.setGet(t,e,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),ey(t,e)}const ny=_.newInstance(yl,"vtkActor");var Nt={newInstance:ny,extend:yl};const Tl={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ie={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},ry=Ie.FLOAT;var xl={DefaultDataType:ry,DataTypeByteSize:Tl,VtkDataTypes:Ie};const{vtkErrorMacro:ay}=nn,{DefaultDataType:sy}=xl,iy=1e-6;function Ri(t,e,n){const r=t.length;let a=Number.MAX_VALUE,s=-Number.MAX_VALUE,i,o;for(o=e;o<r;o+=n)if(!Number.isNaN(t[o])){a=t[o],s=a;break}for(;o<r;o+=n)i=t[o],i<a?a=i:i>s&&(s=i);return{min:a,max:s}}function oy(){let t=Number.MAX_VALUE,e=-Number.MAX_VALUE,n=0,r=0;return{add(a){t>a&&(t=a),e<a&&(e=a),n++,r+=a},get(){return{min:t,max:e,count:n,sum:r,mean:r/n}},getRange(){return{min:t,max:e}}}}function Sl(t){let e=arguments.length>1&&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;i<a;++i){for(let u=o+n;o<u;++o)s[i]+=t[o]*t[o];s[i]**=.5}return Ri(s,0,1)}return Ri(t,e<0?0:e,n)}function Oc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const n=t||[];for(;n.length<=e;)n.push(null);return n}function xo(t){return Object.prototype.toString.call(t).slice(8,-1)}function cy(t){const e=t.getNumberOfComponents();let n=0;const r=new Array(e);for(let a=0;a<t.getNumberOfTuples();++a){t.getTuple(a,r);const s=oo(r,e);s>n&&(n=s)}return n}const uy={computeRange:Sl,createRangeHelper:oy,fastComputeRange:Ri,getDataType:xo,getMaxNorm:cy};function fy(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=Mr(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=Oc(e.ranges,e.numberOfComponents)),s=e.ranges[a],s?(e.rangeTuple[0]=s.min,e.rangeTuple[1]=s.max,e.rangeTuple):(s=Sl(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=Oc(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<e.numberOfComponents;i++)e.values[s+i]=a[i]},t.setTuples=(r,a)=>{let s=r*e.numberOfComponents;const i=Math.min(a.length,e.size-s);for(let o=0;o<i;)e.values[s++]=a[o++]},t.insertTuple=(r,a)=>(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<s*e.numberOfComponents&&(e.size=s*e.numberOfComponents,n(s)),t.setTuples(r,a),s},t.insertNextTuple=r=>{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]:iy;for(let s=0;s<e.size;s+=e.numberOfComponents)if(Math.abs(r[0]-e.values[s])<=a){let i=!0;for(let o=1;o<e.numberOfComponents;++o)if(Math.abs(r[o]-e.values[s+o])>a){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=()=>wl({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=xo(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())&&ay("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;p<c;p++)g[p]=f[p]+(l[p]-f[p])*u}return t.insertTuple(r,g)}}const ly={name:"",numberOfComponents:1,dataType:sy,rangeTuple:[0,0]};function Cl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,ly,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=Xi(e.dataType,e.values)):e.values=Mr(e.dataType,e.size),e.values&&(e.size=e.size??e.values.length,e.dataType=xo(e.values)),Ze(t,e),ia(t,e,["name","numberOfComponents"]),e.size%e.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");fy(t,e)}const wl=me(Cl,"vtkDataArray");var Oe={newInstance:wl,extend:Cl,...uy,...xl};function gy(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<r&&a<6;a++)t.addClippingPlane(n[a])}},t.getClippingPlaneInDataCoords=(n,r,a)=>{const s=e.clippingPlanes,i=n;if(s){const o=s.length;if(r>=0&&r<o){const u=s[r],c=u.getNormal(),f=u.getOrigin(),l=c[0],g=c[1],p=c[2],y=-(l*f[0]+g*f[1]+p*f[2]);a[0]=l*i[0]+g*i[4]+p*i[8]+y*i[12],a[1]=l*i[1]+g*i[5]+p*i[9]+y*i[13],a[2]=l*i[2]+g*i[6]+p*i[10]+y*i[14],a[3]=l*i[3]+g*i[7]+p*i[11]+y*i[15];return}}_.vtkErrorMacro(`Clipping plane index ${r} is out of range.`)}}const py={clippingPlanes:[]};function hy(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,py,n),_.obj(t,e),_.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),gy(t,e)}var _l={extend:hy};function dy(t,e){t.getBounds=()=>(_.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),uo()),t.getCenter=()=>{var r;const n=t.getBounds();return e.center=Ve.isValid(n)?Ve.getCenter(n):null,(r=e.center)==null?void 0:r.slice()},t.getLength=()=>{const n=t.getBounds();return Ve.getDiagonalLength(n)}}const vy=t=>({bounds:[...Ve.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function yy(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vy(n)),_l.extend(t,e,n),_.setGet(t,e,["viewSpecificProperties"]),dy(t,e)}var Ty={extend:yy};const{vtkErrorMacro:Dc,vtkWarningMacro:xy}=_;function Sy(t,e){e.classHierarchy.push("vtkFieldData");const n=t.getState;e.arrays&&(e.arrays=e.arrays.map(r=>({data:$t(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&&r<e.arrays.length?(e.arrays.splice(r,1),!0):!1,t.getArrays=()=>e.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&&r<e.arrays.length?e.arrays[r].data:null,t.hasArray=r=>t.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<i.getNumberOfTuples()){const c=s>-1?s:a;u.insertTuple(c,i.getTuple(a))}else u.insertTuples(0,i.getTuples());else Dc("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=Oe.newInstance({name:i.getName(),dataType:i.getDataType(),numberOfComponents:c,values:_.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<u.getNumberOfTuples()){const l=i>-1?i:a;f.interpolateTuple(l,u,a,u,s,o),xy("Unexpected case in interpolateData")}else f.insertTuples(u.getTuples());else Dc("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=Oe.newInstance({name:u.getName(),dataType:u.getDataType(),numberOfComponents:l,values:_.newTypedArray(u.getDataType(),g),size:0}),f.interpolateTuple(p,u,a,u,s,o),t.addArray(f),r.getAttributes(u).forEach(y=>{t.setAttribute(f,y)})}}})},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 Cy={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function El(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Cy,n),_.obj(t,e),Sy(t,e)}const wy=_.newInstance(El,"vtkFieldData");var _y={newInstance:wy,extend:El};const Ey={SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},Ry={MAX:0,EXACT:1,NOLIMIT:2},Oy={DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},Dy={DUPLICATEPOINT:1,HIDDENPOINT:2},my={COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},My="vtkGhostType",Vy={DEFAULT:0,SINGLE:1,DOUBLE:2};var Rl={AttributeCopyOperations:my,AttributeLimitTypes:Ry,AttributeTypes:Ey,CellGhostTypes:Oy,DesiredOutputPrecision:Vy,PointGhostTypes:Dy,ghostArrayName:My};const{AttributeTypes:yn,AttributeCopyOperations:kn}=Rl,{vtkWarningMacro:wa}=_;function Ly(t,e){const n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(i){let o=n.find(u=>yn[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 wa(`Cannot set attribute ${u}. The attribute must be a vtkDataArray.`),-1;if(i&&!t.checkNumberOfComponents(i,u))return wa(`Cannot set attribute ${u}. Incorrect number of components.`),-1;let c=e[`active${u}`];if(c>=0&&c<e.arrays.length){if(e.arrays[c]===i)return c;t.removeArrayByIndex(c)}return i?(c=t.addArray(i),e[`active${u}`]=c):e[`active${u}`]=-1,t.modified(),e[`active${u}`]},t.getAttributes=i=>n.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<e.arrays.length){if(u.toUpperCase()!=="PEDIGREEIDS"){const c=t.getArrayByIndex(i);if(!c.isA("vtkDataArray"))return wa(`Cannot set attribute ${u}. Only vtkDataArray subclasses can be set as active attributes.`),-1;if(!t.checkNumberOfComponents(c,u))return wa(`Cannot set attribute ${u}. Incorrect number of components.`),-1}return e[`active${u}`]=i,t.modified(),i}return i===-1&&(e[`active${u}`]=i,t.modified()),-1},t.getActiveAttribute=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<e[`active${o}`]&&(e[`active${o}`]-=1)}),a.removeArrayByIndex(i)),n.forEach(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[kn.PASSDATA][yn[u]]=!1},t[`copy${i}On`]=()=>{const u=i.toUpperCase();e.copyAttributeFlags[kn.PASSDATA][yn[u]]=!0}}),t.initializeAttributeCopyFlags=()=>{e.copyAttributeFlags=[],Object.keys(kn).filter(i=>i!=="ALLCOPY").forEach(i=>{e.copyAttributeFlags[kn[i]]=Object.keys(yn).filter(o=>o!=="NUM_ATTRIBUTES").reduce((o,u)=>(o[yn[u]]=!0,o),[])}),e.copyAttributeFlags[kn.COPYTUPLE][yn.GLOBALIDS]=!1,e.copyAttributeFlags[kn.INTERPOLATE][yn.GLOBALIDS]=!1,e.copyAttributeFlags[kn.COPYTUPLE][yn.PEDIGREEIDS]=!1},t.initialize=_.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(Oe.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 By={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function Ol(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,By,n),_y.extend(t,e,n),_.setGet(t,e,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),e.arrays||(e.arrays={}),Ly(t,e)}const ky=_.newInstance(Ol,"vtkDataSetAttributes");var mc={newInstance:ky,extend:Ol,...Rl};const Fy={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},So={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 Uy={FieldDataTypes:Fy,FieldAssociations:So};const Oi=["pointData","cellData","fieldData"];function by(t,e){e.classHierarchy.push("vtkDataSet"),Oi.forEach(r=>{e[r]?e[r]=$t(e[r]):e[r]=mc.newInstance()});const n=t.shallowCopy;t.shallowCopy=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n(r,a),Oi.forEach(s=>{e[s]=mc.newInstance(),e[s].shallowCopy(r.getReferenceByName(s))})}}const Ny={};function Dl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ny,n),_.obj(t,e),_.setGet(t,e,Oi),by(t,e)}const Gy=_.newInstance(Dl,"vtkDataSet");var nr={newInstance:Gy,extend:Dl,...Uy};const Bt={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 ml={StructuredType:Bt};const{StructuredType:rn}=ml;function $y(t){let e=0;for(let n=0;n<3;++n)t[n*2]<t[n*2+1]&&e++;return t[0]>t[1]||t[2]>t[3]||t[4]>t[5]?rn.EMPTY:e===3?rn.XYZ_GRID:e===2?t[0]===t[1]?rn.YZ_PLANE:t[2]===t[3]?rn.XZ_PLANE:rn.XY_PLANE:e===1?t[0]<t[1]?rn.X_LINE:t[2]<t[3]?rn.Y_LINE:rn.Z_LINE:rn.SINGLE_POINT}var Wy={getDataDescriptionFromExtent:$y,...ml};const{vtkErrorMacro:Fn}=_;function zy(t,e){e.classHierarchy.push("vtkImageData"),t.setExtent=function(){if(e.deleted)return Fn("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];const s=r.length===1?r[0]:r;if(s.length!==6)return!1;const i=e.extent.some((o,u)=>o!==s[u]);return i&&(e.extent=s.slice(),e.dataDescription=Wy.getDataDescriptionFromExtent(e.extent),t.modified()),i},t.setDimensions=function(){let n,r,a;if(e.deleted){Fn("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{Fn("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 Fn("Requesting a point from an empty image."),null;const a=new Float64Array(3);switch(e.dataDescription){case Bt.EMPTY:return null;case Bt.SINGLE_POINT:break;case Bt.X_LINE:a[0]=n;break;case Bt.Y_LINE:a[1]=n;break;case Bt.Z_LINE:a[2]=n;break;case Bt.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Bt.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Bt.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Bt.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:Fn("Invalid dataDescription");break}const s=[0,0,0];return t.indexToWorld(a,s),s},t.getBounds=()=>t.extentToBounds(t.getSpatialExtent()),t.extentToBounds=n=>Ve.transformBounds(n,e.indexToWorld),t.getSpatialExtent=()=>Ve.inflate([...e.extent],.5),t.computeTransforms=()=>{Gu(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],_r(e.indexToWorld,e.indexToWorld,e.spacing),Tt(e.worldToIndex,e.indexToWorld)},t.indexToWorld=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return _e(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 _e(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 Ve.transformBounds(n,e.indexToWorld,r)},t.worldToIndexBounds=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Ve.transformBounds(n,e.worldToIndex,r)},t.onModified(t.computeTransforms),t.computeTransforms(),t.getCenter=()=>Ve.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];Ve.computeCornerPoints(a,s,i),wc(s,s),wc(i,i);const o=t.getDimensions();_c(s,[0,0,0],[o[0]-1,o[1]-1,o[2]-1],s),_c(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,y=0,h=0;for(let T=s[2];T<=i[2];T++)for(let v=s[1];v<=i[1];v++){let w=s[0]+v*u+T*c;for(let S=s[0];S<=i[0];S++){if(!r||r([S,v,T],a)){const O=f[w];O>l&&(l=O),O<g&&(g=O),p+=O*O,y+=O,h+=1}++w}}const d=h>0?y/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]||a[s]>r[s*2+1])return Fn(`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 Fn(`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 Ay={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:Bt.EMPTY};function Ml(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ay,n),nr.extend(t,e,n),e.direction?Array.isArray(e.direction)&&(e.direction=new Float64Array(e.direction.slice(0,9))):e.direction=tr(new Float64Array(9)),e.indexToWorld=new Float64Array(16),e.worldToIndex=new Float64Array(16),_.get(t,e,["indexToWorld","worldToIndex"]),_.setGetArray(t,e,["origin","spacing"],3),_.setGetArray(t,e,["direction"],9),_.getArray(t,e,["extent"],6),zy(t,e)}const Hy=_.newInstance(Ml,"vtkImageData");var jy={newInstance:Hy,extend:Ml};const Ky={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},Di={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var Co={VectorMode:Ky,ScalarMappingTarget:Di};const Py={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},Xy={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Iy={BY_ID:0,BY_NAME:1};var ws={ColorMode:Py,GetArray:Iy,ScalarMode:Xy};const{ScalarMappingTarget:Mc,VectorMode:Qt}=Co,{VtkDataTypes:Un}=Oe,{ColorMode:_a}=ws,{vtkErrorMacro:Vc}=_;function Yy(t){return t}function Lc(t){return Math.floor(t*255+.5)}function qy(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(Qt.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(Qt.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(Qt.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){Vc("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<a;s++)e.annotationArray.push({value:n[s],annotation:String(r[s])})}t.updateAnnotatedValueMap(),t.modified()}},t.setAnnotation=(n,r)=>{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<n;r++)e.annotatedValueMap[e.annotationArray[r].value]=r},t.mapScalars=(n,r,a)=>{const s=n.getNumberOfComponents();let i=null;if(r===_a.DEFAULT&&n.getDataType()===Un.UNSIGNED_CHAR||r===_a.DIRECT_SCALARS&&n)i=t.convertToRGBA(n,s,n.getNumberOfTuples());else{const o={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:Un.UNSIGNED_CHAR},u=_.newTypedArray(o.dataType,4*n.getNumberOfTuples());o.values=u,o.size=u.length,i=Oe.newInstance(o);let c=a;c<0&&s>1?t.mapVectorsThroughTable(n,i,Mc.RGBA,-1,-1):(c<0&&(c=0),c>=s&&(c=s-1),t.mapScalarsThroughTable(n,i,Mc.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<s;c++){let f=0;for(let l=0;l<a;l++)f+=u[c*i+l]*u[c*i+l];o[c]=Math.sqrt(f)}},t.mapVectorsThroughTable=(n,r,a,s,i)=>{let o=t.getVectorMode(),u=i,c=s;const f=n.getNumberOfComponents();o===Qt.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===Qt.MAGNITUDE&&(f===1||u===1)&&(o=Qt.COMPONENT));let l=0;switch(c>0&&(l=c),o){case Qt.COMPONENT:{t.mapScalarsThroughTable(n,r,a,l);break}case Qt.RGBCOLORS:break;case Qt.MAGNITUDE:default:{const g=Oe.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<c;p+=l){const y=s(o[p]);u[g*4]=y,u[g*4+1]=y,u[g*4+2]=y,u[g*4+3]=i,g++}},t.luminanceAlphaToRGBA=(n,r,a,s)=>{const i=r.getData(),o=n.getData(),u=i.length,c=0,f=2;let l=0;for(let g=c;g<u;g+=f){const p=s(i[g]);o[l]=p,o[l+1]=p,o[l+2]=p,o[l+3]=s(i[g+1])*a,l+=4}},t.rGBToRGBA=(n,r,a,s)=>{const i=Lc(a),o=r.getData(),u=n.getData(),c=o.length,f=0,l=3;let g=0;for(let p=f;p<c;p+=l)u[g*4]=s(o[p]),u[g*4+1]=s(o[p+1]),u[g*4+2]=s(o[p+2]),u[g*4+3]=i,g++},t.rGBAToRGBA=(n,r,a,s)=>{const i=r.getData(),o=n.getData(),u=i.length,c=0,f=4;let l=0;for(let g=c;g<u;g+=f)o[l*4]=s(i[g]),o[l*4+1]=s(i[g+1]),o[l*4+2]=s(i[g+2]),o[l*4+3]=s(i[g+3])*a,l++},t.convertToRGBA=(n,r,a)=>{let{alpha:s}=e;if(r===4&&s>=1&&n.getDataType()===Un.UNSIGNED_CHAR)return n;const i=Oe.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:Un.UNSIGNED_CHAR});if(a<=0)return i;s=s>0?s:0,s=s<1?s:1;let o=Yy;switch((n.getDataType()===Un.FLOAT||n.getDataType()===Un.DOUBLE)&&(o=Lc),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 Vc("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===_a.DEFAULT&&n.getDataType()===Un.UNSIGNED_CHAR||r===_a.DIRECT_SCALARS?s===3||s===1?e.alpha>=1:n.getRange(s-1)[0]===255:!0}}const Qy={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Qt.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function Vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qy,n),_.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],_.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),_.setArray(t,e,["mappingRange"],2),_.getArray(t,e,["mappingRange"]),qy(t,e)}const Jy=_.newInstance(Vl,"vtkScalarsToColors");var _s={newInstance:Jy,extend:Vl,...Co};const{vtkErrorMacro:Bc}=_,kc=0,Fc=1,Hs=2;function Zy(t,e){e.classHierarchy.push("vtkLookupTable"),t.isOpaque=()=>{if(e.opaqueFlagBuildTime.getMTime()<t.getMTime()){let n=!0;e.nanColor[3]<1&&(n=0),e.useBelowRangeColor&&e.belowRangeColor[3]<1&&(n=0),e.useAboveRangeColor&&e.aboveRangeColor[3]<1&&(n=0);for(let r=3;r<e.table.length&&n;r+=4)e.table[r]<255&&(n=!1);e.opaqueFlag=n,e.opaqueFlagBuildTime.modified()}return e.opaqueFlag},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>e.table.length/4,t.linearIndexLookup=(n,r)=>{let a=0;const s=Number(n);return s<r.range[0]?a=r.maxIndex+kc+1.5:s>r.range[1]?a=r.maxIndex+Fc+1.5:(a=(s+r.shift)*r.scale,a=a<r.maxIndex?a:r.maxIndex),Math.floor(a)},t.linearLookup=(n,r,a)=>{let s=0;is(n)?s=Math.floor(a.maxIndex+1.5+Hs):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+Hs);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 y=0;y<f;y++){const h=i(p[y*l+s],e.table,u);g[y*4]=h[0],g[y*4+1]=h[1],g[y*4+2]=h[2],g[y*4+3]=h[3]}}else if(a===Di.RGBA)for(let y=0;y<f;y++){const h=i(p[y*l+s],e.table,u);g[y*4]=h[0],g[y*4+1]=h[1],g[y*4+2]=h[2],g[y*4+3]=Math.floor(h[3]*c+.5)}},t.forceBuild=()=>{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,pr(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<e.numberOfColors;o++)e.table[o*4]=255,e.table[o*4+1]=255,e.table[o*4+2]=255,e.table[o*4+3]=255;for(let o=0;o<n.length;o++){const u=n[o];for(let c=0;c<a;c++)e.table[i++]=u[c];i+=s}return t.buildSpecialColors(),e.insertTime.modified(),t.modified(),!0}if(n.getNumberOfComponents()!==4)return Bc("Expected 4 components for RGBA colors"),!1;if(n.getDataType()!==Ie.UNSIGNED_CHAR)return Bc("Expected unsigned char values for RGBA colors"),!1;e.numberOfColors=n.getNumberOfTuples();const r=n.getData();e.table.length=r.length;for(let a=0;a<r.length;a++)e.table[a]=r[a];return t.buildSpecialColors(),e.insertTime.modified(),t.modified(),!0},t.buildSpecialColors=()=>{const{numberOfColors:n}=e,r=e.table;let a=(n+kc)*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+Fc)*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+Hs)*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 eT={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 Ll(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eT,n),_s.extend(t,e,n),e.table||(e.table=[]),e.buildTime={},_.obj(e.buildTime),e.opaqueFlagBuildTime={},_.obj(e.opaqueFlagBuildTime,{mtime:0}),e.insertTime={},_.obj(e.insertTime,{mtime:0}),_.get(t,e,["buildTime"]),_.setGet(t,e,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),_.setArray(t,e,["alphaRange","hueRange","saturationRange","valueRange"],2),_.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),_.getArray(t,e,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),Zy(t,e)}const tT=_.newInstance(Ll,"vtkLookupTable");var jr={newInstance:tT,extend:Ll};let Bl=1,wo=0;const nT=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function rT(){return Bl}function aT(t){Bl=t}function sT(){return wo}function Es(){wo=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0}function iT(){Es(0)}function oT(){Es(0)}function cT(){Es(1)}function uT(){return nT[wo]}var mi={getResolveCoincidentTopologyAsString:uT,getResolveCoincidentTopologyPolygonOffsetFaces:rT,getResolveCoincidentTopology:sT,setResolveCoincidentTopology:Es,setResolveCoincidentTopologyPolygonOffsetFaces:aT,setResolveCoincidentTopologyToDefault:iT,setResolveCoincidentTopologyToOff:oT,setResolveCoincidentTopologyToPolygonOffset:cT};function kl(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 _o=["Polygon","Line","Point"],fT={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Kn={};kl(Kn,fT,_o.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function lT(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),_.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(mi).forEach(n=>{t[n]=mi[n]}),Object.keys(Kn).forEach(n=>{t[n]=Kn[n]}),kl(t,e.topologyOffset,_o.map(n=>({key:n,method:`RelativeCoincidentTopology${n}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const n=Kn.getResolveCoincidentTopologyPolygonOffsetParameters(),r=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const n=Kn.getResolveCoincidentTopologyLineOffsetParameters(),r=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const n=Kn.getResolveCoincidentTopologyPointOffsetParameters(),r=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}}}var Fl={implementCoincidentTopologyMethods:lT,staticOffsetAPI:Kn,otherStaticMethods:mi,CATEGORIES:_o};const lt={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var Ul={PassTypes:lt};const{FieldAssociations:Uc}=nr,{staticOffsetAPI:gT,otherStaticMethods:pT}=Fl,{ColorMode:js,ScalarMode:bn,GetArray:Ks}=ws,{VectorMode:hT}=Co,{VtkDataTypes:dT}=Oe;function Gr(t){return()=>_.vtkErrorMacro(`vtkMapper::${t} - NOT IMPLEMENTED`)}function vT(t,e){e.classHierarchy.push("vtkMapper"),t.getBounds=()=>{const n=t.getInputData();return n?(e.static||t.update(),e.bounds=n.getBounds()):e.bounds=uo(),e.bounds},t.setForceCompileOnly=n=>{e.forceCompileOnly=n},t.setSelectionWebGLIdsToVTKIds=n=>{e.selectionWebGLIdsToVTKIds=n},t.createDefaultLookupTable=()=>{e.lookupTable=jr.newInstance()},t.getColorModeAsString=()=>_.enumToString(js,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>_.enumToString(bn,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===bn.DEFAULT)o=n.getPointData().getScalars(),o||(o=n.getCellData().getScalars(),u=!0);else if(r===bn.USE_POINT_DATA)o=n.getPointData().getScalars();else if(r===bn.USE_CELL_DATA)o=n.getCellData().getScalars(),u=!0;else if(r===bn.USE_POINT_FIELD_DATA){const c=n.getPointData();a===Ks.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===bn.USE_CELL_FIELD_DATA){const c=n.getCellData();u=!0,a===Ks.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===bn.USE_FIELD_DATA){const c=n.getFieldData();a===Ks.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 is(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]),y=r.getData(),h=n.getData();let d=0,x=0;if(i<0||i>=s)for(let C=0;C<a;++C){let T=0;for(let S=0;S<s;++S)T+=h[d]*h[d],d++;let v=Math.sqrt(T);f&&(v=jr.applyLogScale(v,u,o));const w=t.scalarToTextureCoordinate(v,g[0],p);y[x]=w.texCoordS,y[x+1]=w.texCoordT,x+=2}else{d+=i;for(let C=0;C<a;++C){let T=h[d];f&&(T=jr.applyLogScale(T,u,o));const v=t.scalarToTextureCoordinate(T,g[0],p);y[x]=v.texCoordS,y[x+1]=v.texCoordT,x+=2,d+=s}}},t.mapScalarsToTexture=(n,r)=>{const a=e.lookupTable.getRange(),s=e.lookupTable.usingLogScale();s&&jr.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;l<o;++l)c[l]=a[0]+l*u-u/2,s&&(c[l]=10**c[l]);for(let l=0;l<o;++l)c[l+o]=NaN;e.colorTextureMap=jy.newInstance(),e.colorTextureMap.setExtent(0,o-1,0,1,0,0);const f=Oe.newInstance({numberOfComponents:1,values:c});e.colorTextureMap.getPointData().setScalars(e.lookupTable.mapScalars(f,e.colorMode,0)),e.lookupTable.setAlpha(i)}if(!e.colorCoordinates||t.getMTime()>e.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=Oe.newInstance({numberOfComponents:2,values:new Float32Array(u*2)});let c=e.lookupTable.getVectorComponent();e.lookupTable.getVectorMode()===hT.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===js.DEFAULT&&a.getDataType()===dT.UNSIGNED_CHAR||e.colorMode===js.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=Gr("AcquireInvertibleLookupTable"),t.valueToColor=Gr("ValueToColor"),t.colorToValue=Gr("ColorToValue"),t.useInvertibleColorFor=Gr("UseInvertibleColorFor"),t.clearInvertibleColor=Gr("ClearInvertibleColor"),t.processSelectorPixelBuffers=(n,r)=>{if(!n||!e.selectionWebGLIdsToVTKIds||!e.populateSelectionSettings)return;const a=n.getRawPixelBuffer(lt.ID_LOW24),s=n.getRawPixelBuffer(lt.ID_HIGH24),i=n.getCurrentPass(),o=n.getFieldAssociation();let u=null;o===Uc.FIELD_ASSOCIATION_POINTS?u=e.selectionWebGLIdsToVTKIds.points:o===Uc.FIELD_ASSOCIATION_CELLS&&(u=e.selectionWebGLIdsToVTKIds.cells),u&&r.forEach(c=>{if(i===lt.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(lt.ID_LOW24);g[c]=l&255,g[c+1]=(l&65280)>>8,g[c+2]=(l&16711680)>>16}else if(i===lt.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(lt.ID_HIGH24);g[c]=(l&4278190080)>>24}})}}const yT={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 bl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,yT,n),Ty.extend(t,e,n),_.get(t,e,["colorCoordinates","colorMapColors","colorTextureMap","selectionWebGLIdsToVTKIds"]),_.setGet(t,e,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),_.setGetArray(t,e,["scalarRange"],2),Fl.implementCoincidentTopologyMethods(t,e),vT(t,e)}const TT=_.newInstance(bl,"vtkMapper");var Wt={newInstance:TT,extend:bl,...gT,...pT,...ws};function Nl(t){let e=0;return t.filter((n,r)=>r===e?(e+=n+1,!0):!1)}function Gl(t){let e=0;for(let n=0;n<t.length;)n+=t[n]+1,e++;return e}const xT={extractCellSizes:Nl,getNumberOfCells:Gl};function ST(t,e){e.classHierarchy.push("vtkCellArray");const n={...t};t.getNumberOfCells=r=>(e.numberOfCells!==void 0&&!r||(e.cellSizes?e.numberOfCells=e.cellSizes.length:e.numberOfCells=Gl(t.getData())),e.numberOfCells),t.getCellSizes=r=>(e.cellSizes!==void 0&&!r||(e.cellSizes=Nl(t.getData())),e.cellSizes),t.resize=r=>{const a=t.getNumberOfTuples();n.resize(r);const s=t.getNumberOfTuples();s<a&&(s===0?(e.numberOfCells=0,e.cellSizes=[]):(e.numberOfCells=void 0,e.cellSizes=void 0))},t.setData=r=>{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 CT(t){return{empty:!0,numberOfComponents:1,dataType:Ie.UNSIGNED_INT,...t}}function $l(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Oe.extend(t,e,CT(n)),ST(t,e)}const wT=_.newInstance($l,"vtkCellArray");var bc={newInstance:wT,extend:$l,...xT};const{vtkErrorMacro:_T}=_,ET=[1,-1,1,-1,1,-1];function RT(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=_.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;s<r;s++)a[s-1]=arguments[s];t.setTuple(n,a)},t.getPoint=t.getTuple,t.findPoint=t.findTuple,t.insertNextPoint=(n,r,a)=>t.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 _T(`getBounds called on an array with components of
  2. ${t.getNumberOfComponents()}`),ET;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 OT={empty:!0,numberOfComponents:3,dataType:Ie.FLOAT,bounds:[1,-1,1,-1,1,-1]};function Wl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OT,n),Oe.extend(t,e,n),RT(t,e)}const DT=_.newInstance(Wl,"vtkPoints");var fs={newInstance:DT,extend:Wl};function mT(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=_.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;a<n;a++)e.points.getPoint(a,r),e.bounds[0]=r[0]<e.bounds[0]?r[0]:e.bounds[0],e.bounds[1]=r[0]>e.bounds[1]?r[0]:e.bounds[1],e.bounds[2]=r[1]<e.bounds[2]?r[1]:e.bounds[2],e.bounds[3]=r[1]>e.bounds[3]?r[1]:e.bounds[3],e.bounds[4]=r[2]<e.bounds[4]?r[2]:e.bounds[4],e.bounds[5]=r[2]>e.bounds[5]?r[2]:e.bounds[5]}else co(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)=>{_.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const MT={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function zl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,MT,n),_.obj(t,e),e.points||(e.points=fs.newInstance()),_.get(t,e,["points","pointsIds"]),mT(t,e)}const VT=_.newInstance(zl,"vtkCell");var ls={newInstance:VT,extend:zl};function LT(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 BT(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<a;++i){const{cellPointIds:o}=n.getCellPoints(i);o.forEach(u=>{t.incrementLinkCount(u)})}t.allocateLinks(r),e.maxId=r-1;for(let i=0;i<a;++i){const{cellPointIds:o}=n.getCellPoints(i);o.forEach(u=>{t.insertCellReference(u,s[u]++,i)})}}else{for(let i=0;i<a;i++)ls.newInstance().getPointsIds().forEach(u=>{t.incrementLinkCount(u)});t.allocateLinks(r),e.maxId=r-1;for(let i=0;i<a;++i)ls.newInstance().getPointsIds().forEach(u=>{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=()=>{LT(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<n;++r)e.array[r].cells=new Array(e.array[r].ncells)},t.insertCellReference=(n,r,a)=>{e.array[n].cells[r]=a}}const kT={array:null,maxId:0,extend:0};function Al(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kT,n),_.obj(t,e),BT(t,e)}const FT=_.newInstance(Al,"vtkCellLinks");var UT={newInstance:FT,extend:Al};const Me={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},Mi=["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 bT(t){return t<Mi.length?Mi[t]:"UnknownClass"}function NT(t){return Mi.findIndex(t)}function GT(t){return t<Me.VTK_QUADRATIC_EDGE||t===Me.VTK_CONVEX_POINT_SET||t===Me.VTK_POLYHEDRON}function $T(t){return t===Me.VTK_TRIANGLE_STRIP||t===Me.VTK_POLY_LINE||t===Me.VTK_POLY_VERTEX}const WT={getClassNameFromTypeId:bT,getTypeIdFromClassName:NT,isLinear:GT,hasSubCells:$T};function zT(t,e){e.classHierarchy.push("vtkCellTypes"),t.allocate=function(){let n=arguments.length>0&&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]=Me.VTK_EMPTY_CELL},t.getNumberOfTypes=()=>e.maxId+1,t.isType=n=>{const r=t.getNumberOfTypes();for(let a=0;a<r;++a)if(n===t.getCellType(a))return!0;return!1},t.insertNextType=n=>t.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 AT={size:0,maxId:-1,extend:1e3};function Hl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AT,n),_.obj(t,e),_.get(t,e,["size","maxId","extend"]),_.getArray(t,e,["typeArray","locationArray"]),zT(t,e)}const HT=_.newInstance(Hl,"vtkCellTypes");var jT={newInstance:HT,extend:Hl,...WT};const KT={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var jl={IntersectionState:KT};const{IntersectionState:Pa}=jl;function Tr(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=de(s,s);let c=1e-5*o;return u!==0&&(a.t=o/u),c<0&&(c=-c),-c<u&&u<c||u<=0||a.t<0?i=e:a.t>1?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=Jt(i,t),a}function Kl(t,e,n,r,a,s){const i=[],o=[],u=[];a[0]=0,s[0]=0,fn(e,t,i),fn(r,n,o),fn(n,t,u);const c=[de(i,i),-de(i,o),-de(i,o),de(o,o)],f=[];if(f[0]=de(i,u),f[1]=-de(o,u),Ev(c,f,2)===0){let l=Number.MAX_VALUE;const g=[t,e,n,r],p=[n,n,t,t],y=[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=Tr(g[d],p[d],y[d]),h.distance<l&&(l=h.distance);return Pa.ON_LINE}return a[0]=f[0],s[0]=f[1],a[0]>=0&&a[0]<=1&&s[0]>=0&&s[0]<=1?Pa.YES_INTERSECTION:Pa.NO_INTERSECTION}const PT={distanceToLine:Tr,intersection:Kl};function XT(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=[],y=Kl(r,a,f,l,g,p);if(u.t=g[0],u.betweenPoints=n(u.t),o[0]=p[0],y===Pa.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(Jt(i,c)<=s*s)return u.intersect=1,u}else{let h;if(u.t<0)return h=Tr(r,f,l,i),h.distance<=s*s&&(u.t=0,u.intersect=1,u.betweenPoints=!0),u;if(u.t>1)return h=Tr(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=Tr(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=Tr(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?(Aa(a,e.orientations[0],e.orientations[1],r[0]),s[0]=1-r[0],s[1]=r[0],!0):!1}const IT={orientations:null};function Pl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IT,n),ls.extend(t,e,n),_.setGet(t,e,["orientations"]),XT(t,e)}const YT=_.newInstance(Pl,"vtkLine");var Ot={newInstance:YT,extend:Pl,...PT,...jl};function qT(t,e){e.classHierarchy.push("vtkPointSet"),e.points?e.points=$t(e.points):e.points=fs.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=fs.newInstance(),e.points.shallowCopy(r.getPoints())}}const QT={};function Xl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QT,n),nr.extend(t,e,n),_.setGet(t,e,["points"]),qT(t,e)}const JT=_.newInstance(Xl,"vtkPointSet");var ZT={newInstance:JT,extend:Xl};function Eo(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 gs(t,e,n,r){Eo(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 ex(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=[];gs(t,e,n,l),gs(r,a,s,g);const p=-de(l,t),y=-de(g,r),h=[de(g,t)+y,de(g,e)+y,de(g,n)+y];if(h[0]*h[1]>i&&h[0]*h[2]>i)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};const d=[de(l,r)+p,de(l,a)+p,de(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-y)<1e-9)return o=!0,{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};const x=[t,e,n],C=[r,a,s],T=de(l,g),v=(p-y*T)/(T*T-1),w=(y-p*T)/(T*T-1),S=[v*l[0]+w*g[0],v*l[1]+w*g[1],v*l[2]+w*g[2]],O=na(l,g,[]);ra(O);let R=0,B=0;const m=[],V=[];let L=50,k=50;for(let P=0;P<3;P++){const ee=P,ae=(P+1)%3,W=Rr.intersectWithLine(x[ee],x[ae],r,g);W.intersection&&W.t>0-i&&W.t<1+i&&(W.t<1+i&&W.t>1-i&&(L=R),m[R++]=de(W.x,O)-de(S,O));const b=Rr.intersectWithLine(C[ee],C[ae],t,l);b.intersection&&b.t>0-i&&b.t<1+i&&(b.t<1+i&&b.t>1-i&&(k=B),V[B++]=de(b.x,O)-de(S,O))}if(R>2){R--;const P=m[2];m[2]=m[L],m[L]=P}if(B>2){B--;const P=V[2];V[2]=V[k],V[k]=P}if(R!==2||B!==2)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(Number.isNaN(m[0])||Number.isNaN(m[1])||Number.isNaN(V[0])||Number.isNaN(V[1]))return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(m[0]>m[1]){const P=m[1];m[1]=m[0],m[0]=P}if(V[0]>V[1]){const P=V[1];V[1]=V[0],V[0]=P}let N,I;return m[1]<V[0]||V[1]<m[0]?{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f}:(m[0]<V[0]?m[1]<V[1]?(f[0]=2,f[1]=1,N=V[0],I=m[1]):(f[0]=2,f[1]=2,N=V[0],I=V[1]):m[1]<V[1]?(f[0]=1,f[1]=1,N=m[0],I=m[1]):(f[0]=1,f[1]=2,N=m[0],I=V[1]),Cc(S,O,N,u),Cc(S,O,I,c),{intersect:!0,coplanar:o,pt1:u,pt2:c,surfaceId:f})}const tx={computeNormalDirection:Eo,computeNormal:gs,intersectWithTriangle:ex};function nx(t,e){e.classHierarchy.push("vtkTriangle"),t.getCellDimension=()=>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=[],y=[];if(gs(f,l,g,p),p[0]!==0||p[1]!==0||p[2]!==0){const T=Rr.intersectWithLine(n,r,f,p);if(o.betweenPoints=T.betweenPoints,o.t=T.t,s[0]=T.x[0],s[1]=T.x[1],s[2]=T.x[2],!T.intersection)return i[0]=0,i[1]=0,o.intersect=0,o;const v=t.evaluatePosition(s,u,i,y);if(v.evaluation>=0)return v.dist2<=c?(o.intersect=1,o):(o.intersect=v.evaluation,o)}const h=Jt(f,l),d=Jt(l,g),x=Jt(g,f);e.line||(e.line=Ot.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 T=[],v=[],w=[];for(let S=0;S<3;S++)T[S]=f[S]-g[S],v[S]=l[S]-g[S],w[S]=s[S]-g[S];return i[0]=de(w,T)/x,i[1]=de(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 y=[],h=[],d=[];let x=0,C=0;const T=[];let v,w,S,O=[];const R=[],B=[],m=[];i.subId=0,a[2]=0,e.points.getPoint(1,c),e.points.getPoint(2,f),e.points.getPoint(0,l),Eo(c,f,l,g),Rr.generalizedProjectPoint(n,c,g,m);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&&(T[u++]=o);for(o=0;o<2;o++)y[o]=m[T[o]]-l[T[o]],h[o]=c[T[o]]-l[T[o]],d[o]=f[T[o]]-l[T[o]];if(x=Ka(h,d),x===0)return a[0]=0,a[1]=0,i.evaluation=-1,i;if(a[0]=Ka(y,d)/x,a[1]=Ka(h,y)/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=Jt(m,n),r[0]=m[0],r[1]=m[1],r[2]=m[2]),i.evaluation=1;else{let L;if(r){if(s[1]<0&&s[2]<0)for(v=Jt(n,l),w=Ot.distanceToLine(n,c,l,L,R),S=Ot.distanceToLine(n,l,f,L,B),v<w?(i.dist2=v,O=l):(i.dist2=w,O=R),S<i.dist2&&(i.dist2=S,O=B),o=0;o<3;o++)r[o]=O[o];else if(s[2]<0&&s[0]<0)for(v=Jt(n,c),w=Ot.distanceToLine(n,c,l,L,R),S=Ot.distanceToLine(n,c,f,L,B),v<w?(i.dist2=v,O=c):(i.dist2=w,O=R),S<i.dist2&&(i.dist2=S,O=B),o=0;o<3;o++)r[o]=O[o];else if(s[1]<0&&s[0]<0)for(v=Jt(n,f),w=Ot.distanceToLine(n,f,l,L,R),S=Ot.distanceToLine(n,c,f,L,B),v<w?(i.dist2=v,O=f):(i.dist2=w,O=R),S<i.dist2&&(i.dist2=S,O=B),o=0;o<3;o++)r[o]=O[o];else if(s[0]<0){const k=Ot.distanceToLine(n,c,f,r);i.dist2=k.distance}else if(s[1]<0){const k=Ot.distanceToLine(n,f,l,r);i.dist2=k.distance}else if(s[2]<0){const k=Ot.distanceToLine(n,c,l,r);i.dist2=k.distance}}i.evaluation=0}return i},t.evaluateLocation=(n,r,a)=>{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 rx={};function Il(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rx,n),ls.extend(t,e,n),nx(t,e)}const ax=_.newInstance(Il,"vtkTriangle");var sx={newInstance:ax,extend:Il,...tx};const Ps=["verts","lines","polys","strips"],{vtkWarningMacro:Nc}=_,ix={[Me.VTK_LINE]:Ot,[Me.VTK_POLY_LINE]:Ot,[Me.VTK_TRIANGLE]:sx};function ox(t,e){e.classHierarchy.push("vtkPolyData");function n(a){return a.replace(/(?:^\w|[A-Z]|\b\w)/g,s=>s.toUpperCase()).replace(/\s+/g,"")}Ps.forEach(a=>{t[`getNumberOf${n(a)}`]=()=>e[a].getNumberOfCells(),e[a]?e[a]=$t(e[a]):e[a]=bc.newInstance()}),t.getNumberOfCells=()=>Ps.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),Ps.forEach(i=>{e[i]=bc.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((y,h)=>{g[h]=p,f[h]=y>1?Me.VTK_POLY_VERTEX:Me.VTK_VERTEX,p+=y+1}),g=g.subarray(a),f=f.subarray(a)}if(s){let p=0;e.lines.getCellSizes().forEach((y,h)=>{g[h]=p,f[h]=y>2?Me.VTK_POLY_LINE:Me.VTK_LINE,y===1&&Nc("Building VTK_LINE ",h," with only one point, but VTK_LINE needs at least two points. Check the input."),p+=y+1}),g=g.subarray(s),f=f.subarray(s)}if(i){let p=0;e.polys.getCellSizes().forEach((y,h)=>{switch(g[h]=p,y){case 3:f[h]=Me.VTK_TRIANGLE;break;case 4:f[h]=Me.VTK_QUAD;break;default:f[h]=Me.VTK_POLYGON;break}y<3&&Nc("Building VTK_TRIANGLE ",h," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=y+1}),g+=g.subarray(i),f+=f.subarray(i)}if(o){let p=0;f.fill(Me.VTK_TRIANGLE_STRIP,0,o),e.strips.getCellSizes().forEach((y,h)=>{g[h]=p,p+=y+1})}e.cells=jT.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=UT.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 Me.VTK_VERTEX:case Me.VTK_POLY_VERTEX:i=e.verts;break;case Me.VTK_LINE:case Me.VTK_POLY_LINE:i=e.lines;break;case Me.VTK_TRIANGLE:case Me.VTK_QUAD:case Me.VTK_POLYGON:i=e.polys;break;case Me.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||ix[i.cellType].newInstance();return o.initialize(t.getPoints(),i.cellPointIds),o}}const cx={};function Yl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cx,n),ZT.extend(t,e,n),_.get(t,e,["cells","links"]),_.setGet(t,e,["verts","lines","polys","strips"]),ox(t,e)}const ux=_.newInstance(Yl,"vtkPolyData");var zt={newInstance:ux,extend:Yl};function fx(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 lx=(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;p<r;p++){const y=[...l];c/=2,f/=2,l=new Uint8ClampedArray(c*f*u);const h=u*c;let d=0;for(let C=0;C<l.length;C+=u){C%h===0&&(d+=2*u*c);for(let T=0;T<u;T++){let v=y[d+T];v+=y[d+u+T],v+=y[d-2*h+T],v+=y[d-2*h+u+T],v/=4,l[C+T]=v}d+=2*u}let x=[...l];for(let C=0;C<l.length;C+=u)for(let T=0;T<u;T++){let v=-(i.length-1)/2,w=o,S=0;for(let O=0;O<i.length;O++){let R=C+T+v*u;const B=R%h-(C+T)%h;B>u&&(R+=h),B<-u&&(R-=h),x[R]?S+=x[R]*i[O]:w-=i[O],v+=1}l[C+T]=S/w}x=[...l];for(let C=0;C<l.length;C+=u)for(let T=0;T<u;T++){let v=-(i.length-1)/2,w=o,S=0;for(let O=0;O<i.length;O++){const R=C+T+v*h;x[R]?S+=x[R]*i[O]:w-=i[O],v+=1}l[C+T]=S/w}g.push(l)}return g},gx={image:null,canvas:null,jsImageData:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function ql(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gx,n),_.obj(t,e),_.algo(t,e,6,0),_.get(t,e,["canvas","image","jsImageData","imageLoaded","resizable"]),_.setGet(t,e,["repeat","edgeClamp","interpolate","mipLevel"]),fx(t,e)}const px=_.newInstance(ql,"vtkTexture"),hx={generateMipmaps:lx};var Rs={newInstance:px,extend:ql,...hx};const dx=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Gc=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Ea=[[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],ke=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],ie=new Float64Array(3),Ra=new Float64Array(3),we=new Float64Array(3),Pn=new Float64Array(3),Nn=new Float64Array(3),Oa=new Float64Array(3),Xs=new Float64Array(16);function Is(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function vx(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;ie[0]=f[r*3],ie[1]=f[r*3+1],ie[2]=f[r*3+2],_e(we,ie,a),we[0]+=.1,_e(Ra,we,s),On(Nn,Ra,ie),we[0]-=.1,we[1]+=.1,_e(Ra,we,s),On(Oa,Ra,ie);for(let y=0;y<3;y++)Nn[y]/=.5*.1*l[0],Oa[y]/=.5*.1*l[1];let g=u.ptIdx,p=u.cellIdx;ie[0]=f[r*3],ie[1]=f[r*3+1],ie[2]=f[r*3+2],i[0]<-.5?Cn(we,Nn,i[0]*o-c.width):i[0]>.5?Cn(we,Nn,i[0]*o):Cn(we,Nn,i[0]*o-c.width/2),zr(ie,ie,we),Cn(we,Oa,i[1]*o-c.height/2),zr(ie,ie,we),u.points[g*3]=ie[0],u.points[g*3+1]=ie[1],u.points[g*3+2]=ie[2],u.tcoords[g*2]=c.tcoords[0],u.tcoords[g*2+1]=c.tcoords[1],g++,Cn(we,Nn,c.width),zr(ie,ie,we),u.points[g*3]=ie[0],u.points[g*3+1]=ie[1],u.points[g*3+2]=ie[2],u.tcoords[g*2]=c.tcoords[2],u.tcoords[g*2+1]=c.tcoords[3],g++,Cn(we,Oa,c.height),zr(ie,ie,we),u.points[g*3]=ie[0],u.points[g*3+1]=ie[1],u.points[g*3+2]=ie[2],u.tcoords[g*2]=c.tcoords[4],u.tcoords[g*2+1]=c.tcoords[5],g++,Cn(we,Nn,c.width),On(ie,ie,we),u.points[g*3]=ie[0],u.points[g*3+1]=ie[1],u.points[g*3+2]=ie[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);Le(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);Tt(Xs,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(),y=e.renderable.getTextValues();for(;f<p.length/3;){ie[0]=p[f*3],ie[1]=p[f*3+1],ie[2]=p[f*3+2],_e(we,ie,n),ie[0]=p[f*3+3],ie[1]=p[f*3+4],ie[2]=p[f*3+5],_e(Pn,ie,n),On(we,we,Pn);const d=[we[0],we[1]];xv(d),t.createPolyDataForOneLabel(y[l],f,n,Xs,d,e.renderable.getAxisTitlePixelOffset(),c),f+=2,l++;for(let x=0;x<e.renderable.getTickCounts()[g];x++)t.createPolyDataForOneLabel(y[l],f,n,Xs,d,e.renderable.getTickLabelPixelOffset(),c),f++,l++;g++}const h=Oe.newInstance({numberOfComponents:2,values:u,name:"TextureCoordinates"});e.tmPolyData.getPointData().setTCoords(h),e.tmPolyData.getPoints().setData(i,3),e.tmPolyData.getPoints().modified(),e.tmPolyData.getPolys().setData(o,1),e.tmPolyData.getPolys().modified(),e.tmPolyData.modified()},t.updateAPISpecificData=(n,r,a)=>{(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 yx=_.newInstance(function(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),_.obj(t,e),e.tmPolyData=zt.newInstance(),e.tmMapper=Wt.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmActor=Nt.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),_.setGet(t,e,["renderable"]),_.get(t,e,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),e.forceUpdate=!1,e.lastRedrawTime={},_.obj(e.lastRedrawTime,{mtime:0}),e.lastRebuildTime={},_.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.lastTickBounds=[],vx(t,e)},"vtkCubeAxesActorHelper");function Tx(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();Le(r,r);let a=!1;const s=Ve.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]&&(ie[c]=e.dataBounds[o]-.1*s*dx[o][c],ie[f]=.5*(e.dataBounds[f*2]+e.dataBounds[f*2+1]),ie[l]=.5*(e.dataBounds[l*2]+e.dataBounds[l*2+1]),_e(we,ie,r),ie[c]=e.dataBounds[o],_e(Pn,ie,r),On(we,Pn,we),ea(we,we),u=we[2]>i,e.camera.getParallelProjection()||(ea(Pn,Pn),u=qu(Pn,we)>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[ke[p][0]].length*2+s[ke[p][1]].length*2,o+=s[ke[p][0]].length+s[ke[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 y=0;y<2;y++)for(let h=0;h<2;h++)c[l*3]=e.dataBounds[h],c[l*3+1]=e.dataBounds[2+y],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]=Ea[p][0],f[g*3+2]=Ea[p][1],g++);if(e.gridLines){for(let p=0;p<6;p++)if(r[p]){const y=Math.floor(p/2);let h=s[ke[p][0]];for(let d=0;d<h.length;d++)c[l*3+y]=e.dataBounds[p],c[l*3+ke[p][0]]=h[d],c[l*3+ke[p][1]]=e.dataBounds[ke[p][1]*2],l++,c[l*3+y]=e.dataBounds[p],c[l*3+ke[p][0]]=h[d],c[l*3+ke[p][1]]=e.dataBounds[ke[p][1]*2+1],l++,f[g*3]=2,f[g*3+1]=l-2,f[g*3+2]=l-1,g++;h=s[ke[p][1]];for(let d=0;d<h.length;d++)c[l*3+y]=e.dataBounds[p],c[l*3+ke[p][1]]=h[d],c[l*3+ke[p][0]]=e.dataBounds[ke[p][0]*2],l++,c[l*3+y]=e.dataBounds[p],c[l*3+ke[p][1]]=h[d],c[l*3+ke[p][0]]=e.dataBounds[ke[p][0]*2+1],l++,f[g*3]=2,f[g*3+1]=l-2,f[g*3+2]=l-1,g++}}e.polyData.getPoints().setData(c,3),e.polyData.getPoints().modified(),e.polyData.getLines().setData(f,1),e.polyData.getLines().modified(),e.polyData.modified()},t.updateTextData=(r,a,s,i)=>{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 y=0;y<4;y++){const h=Gc[p][y];if(a[h]===1){const d=$c[h],x=Ea[h][0]*3,C=Ea[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 T=Math.floor(p/2);c[f*3+T]=e.dataBounds[p],c[f*3+ke[p][0]]=.5*(e.dataBounds[ke[p][0]*2]+e.dataBounds[ke[p][0]*2+1]),c[f*3+ke[p][1]]=.5*(e.dataBounds[ke[p][1]*2]+e.dataBounds[ke[p][1]*2+1]),f++,e.textValues[l]=e.axisLabels[d],l++;const v=(d+1)%3,w=(d+2)%3,S=s[d],O=i[d];e.tickCounts[g]=S.length;for(let R=0;R<S.length;R++)c[f*3+d]=S[R],c[f*3+v]=u[x+v],c[f*3+w]=u[x+w],f++,e.textValues[l]=O[R],l++;g++}}e.textPolyData.getPoints().setData(c,3),e.textPolyData.modified()},t.update=()=>{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[Gc[c][f]]++;const o=[],u=[];for(let c=0;c<3;c++){const f=Ts().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])){Is(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<u.width&&(a=u.width)}Is(e.tmContext,e.tickTextStyle);for(let o=0;o<r[i].length;o++)if(!e._tmAtlas.has(r[i][o])){const u=e.tmContext.measureText(r[i][o]),c={height:u.actualBoundingBoxAscent+2,startingHeight:s,width:u.width+2,textStyle:e.tickTextStyle};e._tmAtlas.set(r[i][o],c),s+=c.height,a<c.width&&(a=c.width)}}a=Ut(a),s=Ut(s),e._tmAtlas.forEach(i=>{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)=>{Is(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(),Ve.setBounds(e.bounds,e.gridActor.getBounds()),Ve.scaleAboutCenter(e.bounds,e.boundsScaleFactor,e.boundsScaleFactor,e.boundsScaleFactor),e.bounds);const n=_.chain(t.setProperty,e.gridActor.setProperty);t.setProperty=r=>n(r)[0]}function xx(t){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Ve.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 Ql(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xx(n)),Nt.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=Rs.newInstance(),e.tmTexture.setInterpolate(!1),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),e.gridMapper=Wt.newInstance(),e.polyData=zt.newInstance(),e.gridMapper.setInputData(e.polyData),e.gridActor=Nt.newInstance(),e.gridActor.setMapper(e.gridMapper),e.gridActor.setProperty(t.getProperty()),e.gridActor.setParentProp(t),e.textPolyData=zt.newInstance(),_.setGet(t,e,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset"]),_.setGetArray(t,e,["dataBounds"],6),_.setGetArray(t,e,["axisLabels"],3),_.get(t,e,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),Tx(t,e)}const Sx=_.newInstance(Ql,"vtkCubeAxesActor");var Jl={newInstance:Sx,extend:Ql,newCubeAxesActorHelper:yx};function Cx(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 wx={};function _x(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wx,n),Ne.extend(t,e,n),e.CubeAxesActorHelper=Jl.newCubeAxesActorHelper(),Cx(t,e)}const Ex=me(_x,"vtkOpenGLCubeAxesActor");At("vtkCubeAxesActor",Ex);const Ir={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Zl={ObjectType:Ir};const{ObjectType:Xa}=Zl,Rx={};function Ox(t,e){e.classHierarchy.push("vtkOpenGLBufferObject");function n(o){switch(o){case Xa.ELEMENT_ARRAY_BUFFER:return e.context.ELEMENT_ARRAY_BUFFER;case Xa.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in e.context)return e.context.TEXTURE_BUFFER;case Xa.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 Dx={objectType:Xa.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function eg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Dx,n),_.obj(t,e),_.get(t,e,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),_.moveToProtected(t,e,["openGLRenderWindow"]),Ox(t,e)}const mx=_.newInstance(eg);var tg={newInstance:mx,extend:eg,...Rx,...Zl};const{vtkErrorMacro:Wc}=_;function Mx(t,e){const n=new Float64Array(3);ld(n,e);const r=new Float64Array(16);return Hu(r,er(),t,n),r}function Vx(t,e){return t===null||e===null?!1:!(Zo(t,[0,0,0])&&Zo(e,[1,1,1]))}function Lx(t,e){e.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),t.setType(Ir.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(W=>{W&&(e.customData.push({data:W.getData(),offset:4*e.blockSize,components:W.getNumberOfComponents(),name:W.getName()}),e.blockSize+=W.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=tg.newInstance()),e.colorBO.setOpenGLRenderWindow(e._openGLRenderWindow)):e.colorBO=null,e.stride=4*e.blockSize;let p=0,y=0,h=0,d=0,x=0,C=0,T;const v={anythingToPoints(W,b,j){for(let K=0;K<W;++K)T(b[j+K])},linesToWireframe(W,b,j){for(let K=0;K<W-1;++K)T(b[j+K]),T(b[j+K+1])},polysToWireframe(W,b,j){if(W>2)for(let K=0;K<W;++K)T(b[j+K]),T(b[j+(K+1)%W])},stripsToWireframe(W,b,j){if(W>2){for(let K=0;K<W-1;++K)T(b[j+K]),T(b[j+K+1]);for(let K=0;K<W-2;K++)T(b[j+K]),T(b[j+K+2])}},polysToSurface(W,b,j){for(let K=0;K<W-2;K++)T(b[j+0]),T(b[j+K+1]),T(b[j+K+2])},stripsToSurface(W,b,j){for(let K=0;K<W-2;K++)T(b[j+K]),T(b[j+K+1+K%2]),T(b[j+K+1+(K+1)%2])}},w={anythingToPoints(W,b){return W},linesToWireframe(W,b){return W>1?(W-1)*2:0},polysToWireframe(W,b){return W>2?W*2:0},stripsToWireframe(W,b){return W>2?W*4-6:0},polysToSurface(W,b){return W>2?(W-2)*3:0},stripsToSurface(W,b,j){return W>2?(W-2)*3:0}};let S=null,O=null;a===gt.POINTS||r==="verts"?(S=v.anythingToPoints,O=w.anythingToPoints):a===gt.WIREFRAME||r==="lines"?(S=v[`${r}ToWireframe`],O=w[`${r}ToWireframe`]):(S=v[`${r}ToSurface`],O=w[`${r}ToSurface`]);const R=n.getData(),B=R.length;let m=0;for(let W=0;W<B;)m+=O(R[W],R),W+=R[W]+1;let V=null;const L=new Float32Array(m*e.blockSize);f&&(V=new Uint8Array(m*4));let k=0,N=0,I=0,P=0;for(let W=0;W<3;++W){const b=s.points.getRange(W),j=b[1]-b[0];I+=j*j;const K=.5*(b[1]+b[0]);P+=K*K}if(I>0&&(Math.abs(P)/I>1e6||Math.abs(Math.log10(I))>3||I===0&&P>1e6)){const W=new Float64Array(3),b=new Float64Array(3);for(let j=0;j<3;++j){const K=s.points.getRange(j),te=K[1]-K[0];W[j]=.5*(K[1]+K[0]),b[j]=te>0?1/te:1}t.setCoordShiftAndScale(W,b)}else e.coordShiftAndScaleEnabled===!0&&t.setCoordShiftAndScale(null,null);if(i)if(!i.points&&!i.cells)i.points=new Int32Array(m),i.cells=new Int32Array(m);else{const W=new Int32Array(m+i.points.length);W.set(i.points),i.points=W;const b=new Int32Array(m+i.cells.length);b.set(i.cells),i.cells=b}let ae=s.vertexOffset;T=function(b){if(i&&(i.points[ae]=b,i.cells[ae]=C+s.cellOffset),++ae,p=b*3,e.coordShiftAndScaleEnabled?(L[k++]=(o[p++]-e.coordShift[0])*e.coordScale[0],L[k++]=(o[p++]-e.coordShift[1])*e.coordScale[1],L[k++]=(o[p++]-e.coordShift[2])*e.coordScale[2]):(L[k++]=o[p++],L[k++]=o[p++],L[k++]=o[p++]),u!==null&&(s.haveCellNormals?y=(C+s.cellOffset)*3:y=b*3,L[k++]=u[y++],L[k++]=u[y++],L[k++]=u[y++]),e.customData.forEach(j=>{x=b*j.components;for(let K=0;K<j.components;++K)L[k++]=j.data[x++]}),c!==null){h=b*g;for(let j=0;j<g;++j)L[k++]=c[h++]}f!==null&&(s.haveCellScalars?d=(C+s.cellOffset)*l:d=b*l,V[N++]=f[d++],V[N++]=f[d++],V[N++]=f[d++],V[N++]=l===4?f[d++]:255)};for(let W=0;W<B;)S(R[W],R,W+1),W+=R[W]+1,C++;return e.elementCount=m,t.upload(L,Ir.ARRAY_BUFFER),e.colorBO&&(e.colorBOStride=4,e.colorBO.upload(V,Ir.ARRAY_BUFFER)),C},t.setCoordShiftAndScale=(n,r)=>{if(n!==null&&(n.constructor!==Float64Array||n.length!==3)){Wc("Wrong type for coordShift, expected vec3 or null");return}if(r!==null&&(r.constructor!==Float64Array||r.length!==3)){Wc("Wrong type for coordScale, expected vec3 or null");return}(e.coordShift===null||n===null||!ec(n,e.coordShift))&&(e.coordShift=n),(e.coordScale===null||r===null||!ec(r,e.coordScale))&&(e.coordScale=r),e.coordShiftAndScaleEnabled=Vx(e.coordShift,e.coordScale),e.coordShiftAndScaleEnabled?e.inverseShiftAndScaleMatrix=Mx(e.coordShift,e.coordScale):e.inverseShiftAndScaleMatrix=null}}const Bx={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 ng(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Bx,n),tg.extend(t,e,n),_.setGet(t,e,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),_.get(t,e,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Lx(t,e)}const kx=_.newInstance(ng);var Fx={newInstance:kx,extend:ng};const{vtkErrorMacro:Ux}=_;function bx(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 Ux(`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 Nx={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function rg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nx,n),_.obj(t,e),_.setGet(t,e,["shaderType","source","error","handle","context"]),bx(t,e)}const Gx=_.newInstance(rg,"vtkShader");var Ys={newInstance:Gx,extend:rg};const{vtkErrorMacro:It}=_;function $x(t,e,n,r){const a=typeof n=="string"?n:n.join(`
  3. `),s=r===!1?e:new RegExp(e,"g"),i=t.replace(s,a);return{replace:i!==a,result:i}}function Wx(t,e){e.classHierarchy.push("vtkShaderProgram"),t.compileShader=()=>e.vertexShader.compile()?e.fragmentShader.compile()?!t.attachShader(e.vertexShader)||!t.attachShader(e.fragmentShader)?(It(e.error),0):t.link()?(t.setCompiled(!0),1):(It(`Links failed: ${e.error}`),0):(It(e.fragmentShader.getSource().split(`
  4. `).map((n,r)=>`${r}: ${n}`).join(`
  5. `)),It(e.fragmentShader.getError()),0):(It(e.vertexShader.getSource().split(`
  6. `).map((n,r)=>`${r}: ${n}`).join(`
  7. `)),It(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 It(`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<a;i++)s[i-1]=arguments[i];let o=s;if(o.length===1&&Array.isArray(o[0])&&(o=o[0]),o.length!==3)throw new RangeError("Invalid number of values for array");return e.context.uniform3i(r,o[0],o[1],o[2]),!0},t.setUniform3iv=(n,r)=>{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<a;i++)s[i-1]=arguments[i];let o=s;if(o.length===1&&Array.isArray(o[0])&&(o=o[0]),o.length!==4)throw new RangeError("Invalid number of values for array");return e.context.uniform4f(r,o[0],o[1],o[2],o[3]),!0},t.setUniform4fv=(n,r)=>{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<a;i++)s[i-1]=arguments[i];let o=s;if(o.length===1&&Array.isArray(o[0])&&(o=o[0]),o.length!==4)throw new RangeError("Invalid number of values for array");return e.context.uniform4i(r,o[0],o[1],o[2],o[3]),!0},t.setUniform4iv=(n,r)=>{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):(It("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 It("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 zx={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 ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zx,n),e.attributesLocs={},e.uniformLocs={},e.vertexShader=Ys.newInstance(),e.vertexShader.setShaderType("Vertex"),e.fragmentShader=Ys.newInstance(),e.fragmentShader.setShaderType("Fragment"),e.geometryShader=Ys.newInstance(),e.geometryShader.setShaderType("Geometry"),_.obj(t,e),_.get(t,e,["lastCameraMTime"]),_.setGet(t,e,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),Wx(t,e)}const Ax=_.newInstance(ag,"vtkShaderProgram");var z={newInstance:Ax,extend:ag,substitute:$x};function Hx(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;r<e.buffers.length;++r){const a=e.buffers[r];e.context.bindBuffer(n.ARRAY_BUFFER,a.buffer);for(let s=0;s<a.attributes.length;++s){const i=a.attributes[s],o=i.isMatrix?i.size:1;for(let u=0;u<o;++u)n.enableVertexAttribArray(i.index+u),n.vertexAttribPointer(i.index+u,i.size,i.type,i.normalize,i.stride,i.offset+i.stride*u/i.size),i.divisor>0&&(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;r<e.buffers.length;++r){const a=e.buffers[r];e.context.bindBuffer(n.ARRAY_BUFFER,a.buffer);for(let s=0;s<a.attributes.length;++s){const i=a.attributes[s],o=i.isMatrix?i.size:1;for(let u=0;u<o;++u)n.enableVertexAttribArray(i.index+u),n.vertexAttribPointer(i.index+u,i.size,i.type,i.normalize,i.stride,i.offset+i.stride*u/i.size),i.divisor>0&&(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()!==Ir.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 y=!1;for(let h=0;h<e.buffers.length;++h){const d=e.buffers[h];if(d.buffer===p.buffer){y=!0;let x=!1;for(let C=0;C<d.attributes.length;++C)d.attributes[C].name===a&&(x=!0,d.attributes[C]=p);x||d.attributes.push(p)}}y||e.buffers.push({buffer:p.buffer,attributes:[p]})}return!0},t.addAttributeMatrixWithDivisor=(n,r,a,s,i,o,u,c,f)=>{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 y=1;y<u;y++)g.enableVertexAttribArray(p+y),g.vertexAttribPointer(p+y,u,o,c,i,s+i*y/u),f>0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(p+y,1):g.vertexAttribDivisor(p+y,1));return!0},t.removeAttributeArray=n=>{if(!t.isReady()||e.handleProgram===0)return!1;if(!e.supported)for(let r=0;r<e.buffers.length;++r){const a=e.buffers[r];for(let s=0;s<a.attributes.length;++s)if(a.attributes[s].name===n)return a.attributes.splice(s,1),a.attributes.length||e.buffers.splice(r,1),!0}return!0},t.setOpenGLRenderWindow=n=>{e._openGLRenderWindow!==n&&(t.releaseGraphicsResources(),e._openGLRenderWindow=n,e.context=null,n&&(e.context=e._openGLRenderWindow.getContext()))}}const jx={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function sg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jx,n),e.buffers=[],_.obj(t,e),_.get(t,e,["supported"]),_.setGet(t,e,["forceEmulation"]),Hx(t,e)}const Kx=_.newInstance(sg,"vtkOpenGLVertexArrayObject");var ig={newInstance:Kx,extend:sg};const wn={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function Px(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===gt.POINTS||r===wn.Points?e.context.POINTS:n===gt.WIREFRAME||r===wn.Lines||r===wn.TrisEdges||r===wn.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()<a.getMTime()||t.getShaderSourceTime().getMTime()<r.getMTime()),t.updateShaders=(n,r,a)=>{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===wn.Points||r.getProperty().getRepresentation()===gt.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===wn.Points?2:e.primitiveType===wn.Lines?4:6,t.getAllocatedGPUMemoryInBytes=()=>t.getCABO().getAllocatedGPUMemoryInBytes()}const Xx={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function og(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Xx,n),_.obj(t,e),e.shaderSourceTime={},_.obj(e.shaderSourceTime),e.attributeUpdateTime={},_.obj(e.attributeUpdateTime),_.setGet(t,e,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),e.program=z.newInstance(),e.VAO=ig.newInstance(),e.CABO=Fx.newInstance(),Px(t,e)}const Ix=_.newInstance(og);var kr={newInstance:Ix,extend:og,primTypes:wn};const Yx={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Vi={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var cg={Wrap:Yx,Filter:Vi};const ug=new Float32Array(1),qx=new Int32Array(ug.buffer);function Qx(t){ug[0]=t;const e=qx[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 Jx(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 Gt={fromHalf:Jx,toHalf:Qx};const{Wrap:on,Filter:tt}=cg,{VtkDataTypes:ve}=Oe,{vtkDebugMacro:qs,vtkErrorMacro:or,vtkWarningMacro:zc}=nn,{toHalf:Zx}=Gt;function e2(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(tt.LINEAR_MIPMAP_LINEAR):t.setMinificationFilter(tt.LINEAR),t.setMagnificationFilter(tt.LINEAR)):(t.setMinificationFilter(tt.NEAREST),t.setMagnificationFilter(tt.NEAREST)),e.renderable.getRepeat()&&(t.setWrapR(on.REPEAT),t.setWrapS(on.REPEAT),t.setWrapT(on.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(tt.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(tt.LINEAR_MIPMAP_LINEAR));const l=e.renderable.getCanvas();t.create2DFromRaw(l.width,l.height,4,ve.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(tt.LINEAR_MIPMAP_LINEAR)),t.create2DFromRaw(l.width,l.height,4,ve.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 y=0;y<e.renderable.getNumberOfInputPorts();++y){const h=e.renderable.getInputData(y),d=h?h.getPointData().getScalars().getData():null;d&&p.push(d)}e.renderable.getInterpolate()&&g.getNumberOfComponents()===4&&(e.generateMipmap=!0,t.setMinificationFilter(tt.LINEAR_MIPMAP_LINEAR)),p.length%6===0?t.createCubeFromRaw(l[1]-l[0]+1,l[3]-l[2]+1,g.getNumberOfComponents(),g.getDataType(),p):t.create2DFromRaw(l[1]-l[0]+1,l[3]-l[2]+1,g.getNumberOfComponents(),g.getDataType(),g.getData()),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}}e.handle&&t.activate()},t.destroyTexture=()=>{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:zc("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||qs(`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")&&zc("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||(qs("Unsupported internal texture type!"),qs(`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 ve.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case(e.oglNorm16Ext&&!e.useHalfFloat&&ve.SHORT):return e.context.SHORT;case(e.oglNorm16Ext&&!e.useHalfFloat&&ve.UNSIGNED_SHORT):return e.context.UNSIGNED_SHORT;case(e.useHalfFloat&&ve.SHORT):return e.context.HALF_FLOAT;case(e.useHalfFloat&&ve.UNSIGNED_SHORT):return e.context.HALF_FLOAT;case ve.FLOAT:case ve.VOID:default:return e.context.FLOAT}switch(c){case ve.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case ve.FLOAT:case ve.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 tt.NEAREST:return e.context.NEAREST;case tt.LINEAR:return e.context.LINEAR;case tt.NEAREST_MIPMAP_NEAREST:return e.context.NEAREST_MIPMAP_NEAREST;case tt.NEAREST_MIPMAP_LINEAR:return e.context.NEAREST_MIPMAP_LINEAR;case tt.LINEAR_MIPMAP_NEAREST:return e.context.LINEAR_MIPMAP_NEAREST;case tt.LINEAR_MIPMAP_LINEAR:return e.context.LINEAR_MIPMAP_LINEAR;default:return e.context.NEAREST}},t.getOpenGLWrapMode=c=>{switch(c){case on.CLAMP_TO_EDGE:return e.context.CLAMP_TO_EDGE;case on.REPEAT:return e.context.REPEAT;case on.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!==ve.FLOAT&&e.openGLDataType===e.context.FLOAT)for(let h=0;h<f.length;h++)if(f[h]){const d=f[h].length>p?f[h].subarray(0,p):f[h];g.push(new Float32Array(d))}else g.push(null);if(c!==ve.UNSIGNED_CHAR&&e.openGLDataType===e.context.UNSIGNED_BYTE)for(let h=0;h<f.length;h++)if(f[h]){const d=f[h].length>p?f[h].subarray(0,p):f[h];g.push(new Uint8Array(d))}else g.push(null);let y=!1;if(e._openGLRenderWindow.getWebgl2())y=e.openGLDataType===e.context.HALF_FLOAT;else{const h=e.context.getExtension("OES_texture_half_float");y=h&&e.openGLDataType===h.HALF_FLOAT_OES}if(y)for(let h=0;h<f.length;h++)if(f[h]){const d=new Uint16Array(p),x=f[h];for(let C=0;C<p;C++)d[C]=Zx(x[C]);g.push(d)}else g.push(null);if(g.length===0)for(let h=0;h<f.length;h++)g.push(f[h]);return g}function r(c){if(e._openGLRenderWindow.getWebgl2())return c;const f=[],l=e.width,g=e.height,p=e.components;if(c&&(!xa(l)||!xa(g))){const y=e.context.getExtension("OES_texture_half_float"),h=Ut(l),d=Ut(g),x=h*d*e.components;for(let C=0;C<c.length;C++)if(c[C]!==null){let T=null;const v=g/d,w=l/h;let S=!1;e.openGLDataType===e.context.FLOAT?T=new Float32Array(x):y&&e.openGLDataType===y.HALF_FLOAT_OES?(T=new Uint16Array(x),S=!0):T=new Uint8Array(x);for(let O=0;O<d;O++){const R=O*h*p,B=O*v;let m=Math.floor(B),V=Math.ceil(B);V>=g&&(V=g-1);const L=B-m,k=1-L;m=m*l*p,V=V*l*p;for(let N=0;N<h;N++){const I=N*p,P=N*w;let ee=Math.floor(P),ae=Math.ceil(P);ae>=l&&(ae=l-1);const W=P-ee;ee*=p,ae*=p;for(let b=0;b<p;b++)S?T[R+I+b]=Gt.toHalf(Gt.fromHalf(c[C][m+ee+b])*k*(1-W)+Gt.fromHalf(c[C][m+ae+b])*k*W+Gt.fromHalf(c[C][V+ee+b])*L*(1-W)+Gt.fromHalf(c[C][V+ae+b])*L*W):T[R+I+b]=c[C][m+ee+b]*k*(1-W)+c[C][m+ae+b]*k*W+c[C][V+ee+b]*L*(1-W)+c[C][V+ae+b]*L*W}}f.push(T),e.width=h,e.height=d}else f.push(null)}if(f.length===0)for(let y=0;y<c.length;y++)f.push(c[y]);return f}function a(c){var f;return e._openGLRenderWindow?e.resizable||(f=e.renderable)!=null&&f.getResizable()?!1:e._openGLRenderWindow.getWebgl2()?!(e._openGLRenderWindow.getGLInformations().RENDERER.value.match(/WebKit/gi)&&navigator.platform.match(/Mac/gi)&&e.oglNorm16Ext&&(c===ve.UNSIGNED_SHORT||c===ve.SHORT)):!1:!1}t.create2DFromRaw=function(c,f,l,g,p){let y=arguments.length>5&&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 or("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,y),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),y&&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 or("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 y=n(g,p),h=r(y),d=[];let x=e.width,C=e.height;for(let T=0;T<h.length;T++){T%6===0&&T!==0&&(x/=2,C/=2),d[T]=Mr(g,C*x*e.components);for(let v=0;v<C;++v){const w=v*x*e.components,S=(C-v-1)*x*e.components;d[T].set(h[T].slice(S,S+x*e.components),w)}}e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(g)&&e.context.texStorage2D(e.target,6,e.internalFormat,e.width,e.height);for(let T=0;T<6;T++){let v=0,w=e.width,S=e.height;for(;w>=1&&S>=1;){let O=null;v<=e.maxLevel&&(O=d[6*v+T]),a(g)?O!=null&&e.context.texSubImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+T,v,0,0,w,S,e.format,e.openGLDataType,O):e.context.texImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+T,v,e.internalFormat,w,S,0,e.format,e.openGLDataType,O),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===ve.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?(or("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(ve.UNSIGNED_CHAR),t.getInternalFormat(ve.UNSIGNED_CHAR,4),t.getFormat(ve.UNSIGNED_CHAR,4),!e.internalFormat||!e.format||!e.openGLDataType)return or("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()&&(!xa(c.width)||!xa(c.height)),l=document.createElement("canvas");l.width=f?Ut(c.width):c.width,l.height=f?Ut(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(ve.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(ve.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 y=0;y<l;++y)g[y]=c[y],p[y]=f[y]-c[y]||1;return{scale:p,offset:g}}function i(c,f){for(let l=0;l<c.length;l++){const g=c[l],p=f[l]+g;if(g<-2048||g>2048||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 y=p&&(i(f,l)||g);e.useHalfFloat=y}function u(c,f){const l=c.getNumberOfComponents(),g=c.getDataType(),p=c.getData(),y=new Array(l),h=new Array(l);for(let x=0;x<l;++x){const[C,T]=c.getRange(x);y[x]=C,h[x]=T}const d=s(y,h,l);return o(g,d.offset,d.scale,f),e.useHalfFloat||t.getOpenGLDataType(g,!0),{numComps:l,dataType:g,data:p,scaleOffsets:d}}t.create2DFilterableFromRaw=function(c,f,l,g,p){let y=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1;return t.create2DFilterableFromDataArray(c,f,Oe.newInstance({numberOfComponents:l,dataType:g,values:p}),y)},t.create2DFilterableFromDataArray=function(c,f,l){let g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const{numComps:p,dataType:y,data:h}=u(l,g);t.create2DFromRaw(c,f,p,y,h)},t.create3DFromRaw=(c,f,l,g,p,y)=>{if(t.getOpenGLDataType(p),t.getInternalFormat(p,g),t.getFormat(p,g),!e.internalFormat||!e.format||!e.openGLDataType)return or("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,[y],!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,y){let h=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;return t.create3DFilterableFromDataArray(c,f,l,Oe.newInstance({numberOfComponents:g,dataType:p,values:y}),h)},t.create3DFilterableFromDataArray=function(c,f,l,g){let p=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const{numComps:y,dataType:h,data:d,scaleOffsets:x}=u(g,p),C=c*f*l,T=[],v=[];for(let b=0;b<y;++b)T[b]=0,v[b]=1;e.volumeInfo={scale:v,offset:T,dataComputedScale:x.scale,dataComputedOffset:x.offset,width:c,height:f,depth:l};const w=structuredClone(x);if(e._openGLRenderWindow.getWebgl2()){if(e.oglNorm16Ext&&!e.useHalfFloat&&h===ve.SHORT){for(let te=0;te<y;++te)e.volumeInfo.scale[te]=32767;return t.create3DFromRaw(c,f,l,y,h,d)}if(e.oglNorm16Ext&&!e.useHalfFloat&&h===ve.UNSIGNED_SHORT){for(let te=0;te<y;++te)e.volumeInfo.scale[te]=65535;return t.create3DFromRaw(c,f,l,y,h,d)}if(h===ve.FLOAT||e.useHalfFloat&&(h===ve.SHORT||h===ve.UNSIGNED_SHORT))return t.create3DFromRaw(c,f,l,y,h,d);if(h===ve.UNSIGNED_CHAR){for(let te=0;te<y;++te)e.volumeInfo.scale[te]=255;return t.create3DFromRaw(c,f,l,y,h,d)}const b=new Float32Array(C*y);e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let j=0;const K=w.scale.map(te=>1/te);for(let te=0;te<C;te++)for(let Be=0;Be<y;Be++)b[j]=(d[j]-w.offset[Be])*K[Be],j++;return t.create3DFromRaw(c,f,l,y,ve.FLOAT,b)}let S=(b,j,K,te,Be)=>{b[j]=K},O=ve.UNSIGNED_CHAR;if(h===ve.UNSIGNED_CHAR)for(let b=0;b<y;++b)w.offset[b]=0,w.scale[b]=255;else e.context.getExtension("OES_texture_float")&&e.context.getExtension("OES_texture_float_linear")?(O=ve.FLOAT,S=(b,j,K,te,Be)=>{b[j]=(K-te)/Be}):(O=ve.UNSIGNED_CHAR,S=(b,j,K,te,Be)=>{b[j]=255*(K-te)/Be});if(t.getOpenGLDataType(O),t.getInternalFormat(O,y),t.getFormat(O,y),!e.internalFormat||!e.format||!e.openGLDataType)return or("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=y,e.depth=1,e.numberOfDimensions=2;let R=e.context.getParameter(e.context.MAX_TEXTURE_SIZE);R>4096&&(O===ve.FLOAT||y>=3)&&(R=4096);let B=1,m=1;C>R*R&&(B=Math.ceil(Math.sqrt(C/(R*R))),m=B);let V=Math.sqrt(C)/B;V=Ut(V);const L=Math.floor(V*B/c),k=Math.ceil(l/L),N=Ut(f*k/m);e.width=V,e.height=N,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.volumeInfo.xreps=L,e.volumeInfo.yreps=k,e.volumeInfo.xstride=B,e.volumeInfo.ystride=m,e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let I;const P=V*N*y;O===ve.FLOAT?I=new Float32Array(P):I=new Uint8Array(P);let ee=0;const ae=Math.floor(c/B),W=Math.floor(f/m);for(let b=0;b<k;b++){const j=Math.min(L,l-b*L),K=y*(e.width-j*Math.floor(c/B));for(let te=0;te<W;te++){for(let Be=0;Be<j;Be++){const xt=y*((b*L+Be)*c*f+m*te*c);for(let it=0;it<ae;it++)for(let J=0;J<y;J++)S(I,ee,d[xt+B*it*y+J],w.offset[J],w.scale[J]),ee++}ee+=K}}return e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(O)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),I!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,I)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,I),t.deactivate(),!0},t.setOpenGLRenderWindow=c=>{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 t2={_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:on.CLAMP_TO_EDGE,wrapT:on.CLAMP_TO_EDGE,wrapR:on.CLAMP_TO_EDGE,minificationFilter:tt.NEAREST,magnificationFilter:tt.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,useHalfFloat:!0,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0};function fg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,t2,n),Ne.extend(t,e,n),e.sendParametersTime={},Ze(e.sendParametersTime,{mtime:0}),e.textureBuildTime={},Ze(e.textureBuildTime,{mtime:0}),ia(t,e,["format","openGLDataType"]),Ke(t,e,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),ht(t,e,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),oa(t,e,["openGLRenderWindow"]),e2(t,e)}const lg=me(fg,"vtkOpenGLTexture");var Jn={newInstance:lg,extend:fg,...cg};At("vtkTexture",lg);var n2=`//VTK::System::Dec
  8. /*=========================================================================
  9. Program: Visualization Toolkit
  10. Module: vtkPolyDataVS.glsl
  11. Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  12. All rights reserved.
  13. See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  14. This software is distributed WITHOUT ANY WARRANTY; without even
  15. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  16. PURPOSE. See the above copyright notice for more information.
  17. =========================================================================*/
  18. attribute vec4 vertexMC;
  19. // frag position in VC
  20. //VTK::PositionVC::Dec
  21. // optional normal declaration
  22. //VTK::Normal::Dec
  23. // extra lighting parameters
  24. //VTK::Light::Dec
  25. // Texture coordinates
  26. //VTK::TCoord::Dec
  27. // material property values
  28. //VTK::Color::Dec
  29. // clipping plane vars
  30. //VTK::Clip::Dec
  31. // camera and actor matrix values
  32. //VTK::Camera::Dec
  33. // Apple Bug
  34. //VTK::PrimID::Dec
  35. // picking support
  36. //VTK::Picking::Dec
  37. void main()
  38. {
  39. //VTK::Color::Impl
  40. //VTK::Normal::Impl
  41. //VTK::TCoord::Impl
  42. //VTK::Clip::Impl
  43. //VTK::PrimID::Impl
  44. //VTK::PositionVC::Impl
  45. //VTK::Light::Impl
  46. //VTK::Picking::Impl
  47. }
  48. `,r2=`//VTK::System::Dec
  49. /*=========================================================================
  50. Program: Visualization Toolkit
  51. Module: vtkPolyDataFS.glsl
  52. Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  53. All rights reserved.
  54. See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  55. This software is distributed WITHOUT ANY WARRANTY; without even
  56. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  57. PURPOSE. See the above copyright notice for more information.
  58. =========================================================================*/
  59. // Template for the polydata mappers fragment shader
  60. uniform int PrimitiveIDOffset;
  61. // VC position of this fragment
  62. //VTK::PositionVC::Dec
  63. // optional color passed in from the vertex shader, vertexColor
  64. //VTK::Color::Dec
  65. // optional surface normal declaration
  66. //VTK::Normal::Dec
  67. // extra lighting parameters
  68. //VTK::Light::Dec
  69. // define vtkImageLabelOutlineOn
  70. //VTK::ImageLabelOutlineOn
  71. // Texture coordinates
  72. //VTK::TCoord::Dec
  73. // picking support
  74. //VTK::Picking::Dec
  75. // Depth Peeling Support
  76. //VTK::DepthPeeling::Dec
  77. // clipping plane vars
  78. //VTK::Clip::Dec
  79. // label outline
  80. //VTK::LabelOutline::Dec
  81. // the output of this shader
  82. //VTK::Output::Dec
  83. // Apple Bug
  84. //VTK::PrimID::Dec
  85. // handle coincident offsets
  86. //VTK::Coincident::Dec
  87. //VTK::ZBuffer::Dec
  88. //VTK::LabelOutlineHelperFunction
  89. void main()
  90. {
  91. // VC position of this fragment. This should not branch/return/discard.
  92. //VTK::PositionVC::Impl
  93. // Place any calls that require uniform flow (e.g. dFdx) here.
  94. //VTK::UniformFlow::Impl
  95. // Set gl_FragDepth here (gl_FragCoord.z by default)
  96. //VTK::Depth::Impl
  97. // Early depth peeling abort:
  98. //VTK::DepthPeeling::PreColor
  99. // Apple Bug
  100. //VTK::PrimID::Impl
  101. //VTK::Clip::Impl
  102. //VTK::Color::Impl
  103. // Generate the normal if we are not passed in one
  104. //VTK::Normal::Impl
  105. //VTK::TCoord::Impl
  106. //VTK::Light::Impl
  107. if (gl_FragData[0].a <= 0.0)
  108. {
  109. discard;
  110. }
  111. //VTK::DepthPeeling::Impl
  112. //VTK::Picking::Impl
  113. // handle coincident offsets
  114. //VTK::Coincident::Impl
  115. //VTK::ZBuffer::Impl
  116. //VTK::RenderPassFragmentShader::Impl
  117. }
  118. `;function a2(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 s2(t,e){t.applyShaderReplacements=(n,r,a)=>{let s=null;if(r&&(s=r.ShaderReplacements),s)for(let i=0;i<s.length;i++){const o=s[i];if(a&&o.replaceFirst||!a&&!o.replaceFirst){const u=o.shaderType,c=n[u],f=z.substitute(c,o.originalValue,o.replacementValue,o.replaceAll);n[u]=f.result}}},t.buildShaders=(n,r,a)=>{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 ps={implementReplaceShaderCoincidentOffset:a2,implementBuildShadersWithReplacements:s2};const{FieldAssociations:Qs}=nr,{primTypes:je}=kr,{Representation:cr,Shading:Ac}=Br,{ScalarMode:Da}=Wt,{Filter:Hc,Wrap:jc}=Jn,{vtkErrorMacro:Gn}=nn,i2={type:"StartEvent"},o2={type:"EndEvent"},{CoordinateSystem:c2}=ca;function u2(t){const e=t.getSelector();return e?e.getCurrentPass():lt.MIN_KNOWN_PASS-1}function f2(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=je.Start;i<je.End;i++)e.primitives[i].setOpenGLRenderWindow(e._openGLRenderWindow)}const a=e.openGLActor.getRenderable(),s=e._openGLRenderer.getRenderable();t.renderPiece(s,a)},t.getShaderTemplate=(r,a,s)=>{r.Vertex=n2,r.Fragment=r2,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<c;++l)f=f.concat([`uniform vec3 lightColor${l};`,`uniform vec3 lightDirectionVC${l}; // normalized`,`uniform vec3 lightHalfAngleVC${l}; // normalized`]);i=z.substitute(i,"//VTK::Light::Dec",f).result,f=["vec3 diffuseL = vec3(0,0,0);"," vec3 specularL = vec3(0,0,0);"," float df;"];for(let l=0;l<c;++l)f=f.concat([` df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC${l}));`,` diffuseL += ((df${o}) * lightColor${l});`,` if (dot(normalVCVSOutput, lightDirectionVC${l}) < 0.0)`," {",` float sf = sign(df)*pow(max(1e-5,
  119. dot(reflect(lightDirectionVC${l},normalVCVSOutput),
  120. normalize(-vertexVC.xyz))),
  121. 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;case 3:for(let l=0;l<c;++l)f=f.concat([`uniform vec3 lightColor${l};`,`uniform vec3 lightDirectionVC${l}; // normalized`,`uniform vec3 lightHalfAngleVC${l}; // normalized`,`uniform vec3 lightPositionVC${l};`,`uniform vec3 lightAttenuation${l};`,`uniform float lightConeAngle${l};`,`uniform float lightExponent${l};`,`uniform int lightPositional${l};`]);i=z.substitute(i,"//VTK::Light::Dec",f).result,f=["vec3 diffuseL = vec3(0,0,0);"," vec3 specularL = vec3(0,0,0);"," vec3 vertLightDirectionVC;"," float attenuation;"," float df;"];for(let l=0;l<c;++l)f=f.concat([" attenuation = 1.0;",` if (lightPositional${l} == 0)`," {",` vertLightDirectionVC = lightDirectionVC${l};`," }"," else"," {",` vertLightDirectionVC = vertexVC.xyz - lightPositionVC${l};`," float distanceVC = length(vertLightDirectionVC);"," vertLightDirectionVC = normalize(vertLightDirectionVC);"," attenuation = 1.0 /",` (lightAttenuation${l}.x`,` + lightAttenuation${l}.y * distanceVC`,` + lightAttenuation${l}.z * distanceVC * distanceVC);`," // per OpenGL standard cone angle is 90 or less for a spot light",` if (lightConeAngle${l} <= 90.0)`," {",` float coneDot = dot(vertLightDirectionVC, lightDirectionVC${l});`," // if inside the cone",` if (coneDot >= 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,
  122. dot(reflect(lightDirectionVC${l},
  123. normalVCVSOutput),
  124. normalize(-vertexVC.xyz))),
  125. 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:Gn("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()===cr.SURFACE){const u=e.lastBoundBO.getPrimitiveType();u===je.Points||i.getRepresentation()===cr.POINTS?s=e.renderable.getCoincidentTopologyPointOffsetParameter():u===je.Lines||i.getRepresentation()===cr.WIREFRAME?s=e.renderable.getCoincidentTopologyLineOffsetParameters():(u===je.Tris||u===je.TriStrips)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters()),(u===je.TrisEdges||u===je.TriStripsEdges)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters(),s.factor/=2,s.offset/=2)}const o=e._openGLRenderer.getSelector();return o&&o.getFieldAssociation()===Qs.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===lt.ID_LOW24||e.lastSelectionState===lt.ID_HIGH24)&&(o=z.substitute(o,"//VTK::Picking::Dec",[`flat out int vertexIDVSOutput;
  126. `,`uniform int VertexIDOffset;
  127. `]).result,o=z.substitute(o,"//VTK::Picking::Impl",` vertexIDVSOutput = gl_VertexID + VertexIDOffset;
  128. `).result,i=z.substitute(i,"//VTK::Picking::Dec",`flat in int vertexIDVSOutput;
  129. `).result,i=z.substitute(i,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),e.lastSelectionState){case lt.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 lt.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()===Ac.FLAT,y=s.getProperty().getRepresentation(),h=r.getOpenGLMode(y,u);if((h===e.context.TRIANGLES||g&&!l||!p&&l||!p&&h===e.context.LINES)&&(f=!0),s.getProperty().getLighting()&&f){i=0;const T=a.getLightsByReference();for(let v=0;v<T.length;++v){const w=T[v];w.getSwitch()>0&&(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()<e.renderable.getMTime()||r.getShaderSourceTime().getMTime()<e.currentInput.getMTime()||r.getShaderSourceTime().getMTime()<e.selectionStateChanged.getMTime()||d?(e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,!0):!1},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().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)||Gn("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)||Gn("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)||Gn(`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)||Gn("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)||Gn("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?at(e.tmpMat4,s.getMatrix()):s.getMatrix();l&&(Le(g,g),pt(g,g,l),Le(g,g));for(let p=0;p<u;p++){const y=[];e.renderable.getClippingPlaneInDataCoords(g,p,y);for(let h=0;h<4;h++)c.push(y[h])}r.getProgram().setUniformi("numClipPlanes",u),r.getProgram().setUniform4fv("clipPlanes",c)}e.internalColorTexture&&r.getProgram().isUniformUsed("texture1")&&r.getProgram().setUniformi("texture1",e.internalColorTexture.getTextureUnit());const i=e.openGLActor.getActiveTextures();if(i)for(let u=0;u<i.length;++u){const f=i[u].getTextureUnit(),l=`texture${f+1}`;r.getProgram().isUniformUsed(l)&&r.getProgram().setUniformi(l,f)}if(e.haveSeenDepthRequest&&r.getProgram().setUniformi("depthRequest",e.renderDepth?1:0),r.getProgram().isUniformUsed("coffset")){const u=t.getCoincidentParameters(a,s);r.getProgram().setUniformf("coffset",u.offset),r.getProgram().isUniformUsed("cfactor")&&r.getProgram().setUniformf("cfactor",u.factor)}r.setMapperShaderParameters(a,s,e._openGLRenderer.getTiledSizeAndOrigin());const o=e._openGLRenderer.getSelector();r.getProgram().setUniform3fArray("mapperIndex",o?o.getPropColorValue():[0,0,0]),r.getProgram().setUniformi("picking",o?o.getCurrentPass()+1:0)},t.setLightingShaderParameters=(r,a,s)=>{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;g<c.length;++g){const p=c[g];if(p.getSwitch()>0){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(),T=[...x];p.lightTypeIsSceneLight()&&(T[0]=C[0]*x[0]+C[1]*x[1]+C[2]*x[2],T[1]=C[4]*x[0]+C[5]*x[1]+C[6]*x[2],T[2]=C[8]*x[0]+C[9]*x[1]+C[10]*x[2],ra(T)),e.lightDirection[0]=T[0],e.lightDirection[1]=T[1],e.lightDirection[2]=T[2],ra(e.lightDirection),o.setUniform3fArray(`lightColor${u}`,e.lightColor),o.setUniform3fArray(`lightDirectionVC${u}`,e.lightDirection),u++}}if(i<3)return;const l=a.getActiveCamera().getViewMatrix();Le(l,l),u=0;for(let g=0;g<c.length;++g){const p=c[g];if(p.getSwitch()>0){const h=p.getTransformedPosition(),d=new Float64Array(3);_e(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(),y=p?{mcwc:null,normalMatrix:null}:e.openGLActor.getKeyMatrices();if(s.getCoordinateSystem()===c2.DISPLAY){const h=e._openGLRenderer.getTiledSizeAndOrigin();he(e.tmpMat4),e.tmpMat4[0]=2/h.usize,e.tmpMat4[12]=-1,e.tmpMat4[5]=2/h.vsize,e.tmpMat4[13]=-1,pt(e.tmpMat4,e.tmpMat4,g),i.setUniformMatrix("MCPCMatrix",e.tmpMat4)}else i.setUniformMatrix("MCPCMatrix",n([o.wcpc,y.mcwc,g],di,e.tmpMat4));i.isUniformUsed("MCVCMatrix")&&i.setUniformMatrix("MCVCMatrix",n([o.wcvc,y.mcwc,g],di,e.tmpMat4)),i.isUniformUsed("normalMatrix")&&i.setUniformMatrix3x3("normalMatrix",n([o.normalMatrix,y.normalMatrix],Nh,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 y=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",y),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",y)}},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()===Qs.FIELD_ASSOCIATION_POINTS&&(e.pointPicking=!0)},t.renderPieceStart=(r,a)=>{e.primitiveIDOffset=0,e.vertexIDOffset=0;const s=u2(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===cr.SURFACE,o=e._openGLRenderer.getSelector(),u=o&&o.getFieldAssociation()===Qs.FIELD_ASSOCIATION_POINTS&&(e.lastSelectionState===lt.ID_LOW24||e.lastSelectionState===lt.ID_HIGH24);for(let c=je.Start;c<je.End;c++)e.primitives[c].setPointPicking(u),e.primitives[c].getCABO().getElementCount()&&(e.drawingEdges=i&&(c===je.TrisEdges||c===je.TriStripsEdges),(!e.drawingEdges||!(e.renderDepth||e.lastSelectionState>=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(i2),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(o2),!e.currentInput){Gn("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()){co(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<t.getMTime()||s<e.renderable.getMTime()||s<a.getMTime()||s<e.currentInput.getMTime()},t.buildBufferObjects=(r,a)=>{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()!==Ac.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=Jn.newInstance({resizable:!0}));const g=e.internalColorTexture;g.setMinificationFilter(Hc.NEAREST),g.setMagnificationFilter(Hc.NEAREST),g.setWrapS(jc.CLAMP_TO_EDGE),g.setWrapT(jc.CLAMP_TO_EDGE),g.setOpenGLRenderWindow(e._openGLRenderWindow);const p=e.renderable.getColorTextureMap(),y=p.getExtent(),h=p.getPointData().getScalars();g.create2DFromRaw(y[1]-y[0]+1,y[3]-y[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 y=[{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===cr.SURFACE;for(let d=je.Start;d<je.End;d++)d!==je.TrisEdges&&d!==je.TriStripsEdges?(p.cellOffset+=e.primitives[d].getCABO().createVBO(y[d].cells,y[d].inRep,c,p,e.selectionWebGLIdsToVTKIds),p.vertexOffset+=e.primitives[d].getCABO().getElementCount()):h?e.primitives[d].getCABO().createVBO(y[d].cells,y[d].inRep,cr.WIREFRAME,{...p,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):e.primitives[d].releaseGraphicsResources();e.renderable.getPopulateSelectionSettings()&&(e.renderable.setSelectionWebGLIdsToVTKIds(e.selectionWebGLIdsToVTKIds),t.updateMaximumPointCellIds()),e.VBOBuildTime.modified(),e.VBOBuildString=l}},t.getAllocatedGPUMemoryInBytes=()=>{let r=0;return e.primitives.forEach(a=>{r+=a.getAllocatedGPUMemoryInBytes()}),r}}const l2={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:lt.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function g2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,l2,n),Ne.extend(t,e,n),ps.implementReplaceShaderCoincidentOffset(t,e,n),ps.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=je,e.tmpMat3=tr(new Float64Array(9)),e.tmpMat4=he(new Float64Array(16));for(let r=je.Start;r<je.End;r++)e.primitives[r]=kr.newInstance(),e.primitives[r].setPrimitiveType(r),e.primitives[r].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Ke(t,e,["context"]),e.VBOBuildTime={},Ze(e.VBOBuildTime,{mtime:0}),e.selectionStateChanged={},Ze(e.selectionStateChanged,{mtime:0}),f2(t,e)}const p2=me(g2,"vtkOpenGLPolyDataMapper");At("vtkMapper",p2);const{ColorMode:h2,ScalarMode:$n,GetArray:Js}=ws;function d2(t,e){e.classHierarchy.push("vtkMapper2D"),t.createDefaultLookupTable=()=>{e.lookupTable=jr.newInstance()},t.getColorModeAsString=()=>_.enumToString(h2,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>_.enumToString($n,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===$n.DEFAULT)o=n.getPointData().getScalars(),o||(o=n.getCellData().getScalars(),u=!0);else if(r===$n.USE_POINT_DATA)o=n.getPointData().getScalars();else if(r===$n.USE_CELL_DATA)o=n.getCellData().getScalars(),u=!0;else if(r===$n.USE_POINT_FIELD_DATA){const c=n.getPointData();a===Js.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===$n.USE_CELL_FIELD_DATA){const c=n.getCellData();u=!0,a===Js.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===$n.USE_FIELD_DATA){const c=n.getFieldData();a===Js.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 v2={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 gg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,v2,n),_l.extend(t,e,n),_.get(t,e,["colorMapColors"]),_.setGet(t,e,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),_.setGetArray(t,e,["scalarRange"],2),e.viewSpecificProperties||(e.viewSpecificProperties={}),d2(t,e)}const y2=_.newInstance(gg,"vtkMapper2D");var T2={newInstance:y2,extend:gg},x2=`//VTK::System::Dec
  130. /*=========================================================================
  131. Program: Visualization Toolkit
  132. Module: vtkPolyData2DFS.glsl
  133. Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  134. All rights reserved.
  135. See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  136. This software is distributed WITHOUT ANY WARRANTY; without even
  137. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  138. PURPOSE. See the above copyright notice for more information.
  139. =========================================================================*/
  140. uniform int PrimitiveIDOffset;
  141. // Texture coordinates
  142. //VTK::TCoord::Dec
  143. // Scalar coloring
  144. //VTK::Color::Dec
  145. // Depth Peeling
  146. //VTK::DepthPeeling::Dec
  147. // picking support
  148. //VTK::Picking::Dec
  149. // the output of this shader
  150. //VTK::Output::Dec
  151. // Apple Bug
  152. //VTK::PrimID::Dec
  153. void main()
  154. {
  155. // Apple Bug
  156. //VTK::PrimID::Impl
  157. //VTK::Color::Impl
  158. //VTK::TCoord::Impl
  159. //VTK::DepthPeeling::Impl
  160. //VTK::Picking::Impl
  161. if (gl_FragData[0].a <= 0.0)
  162. {
  163. discard;
  164. }
  165. }
  166. `,S2=`//VTK::System::Dec
  167. /*=========================================================================
  168. Program: Visualization Toolkit
  169. Module: vtkPolyData2DVS.glsl
  170. Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  171. All rights reserved.
  172. See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  173. This software is distributed WITHOUT ANY WARRANTY; without even
  174. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  175. PURPOSE. See the above copyright notice for more information.
  176. =========================================================================*/
  177. // all variables that represent positions or directions have a suffix
  178. // indicating the coordinate system they are in. The possible values are
  179. // MC - Model Coordinates
  180. // WC - WC world coordinates
  181. // VC - View Coordinates
  182. // DC - Display Coordinates
  183. in vec4 vertexWC;
  184. // frag position in VC
  185. //VTK::PositionVC::Dec
  186. // material property values
  187. //VTK::Color::Dec
  188. // Texture coordinates
  189. //VTK::TCoord::Dec
  190. // Apple Bug
  191. //VTK::PrimID::Dec
  192. uniform mat4 WCVCMatrix; // World to view matrix
  193. void main()
  194. {
  195. // Apple Bug
  196. //VTK::PrimID::Impl
  197. gl_Position = WCVCMatrix*vertexWC;
  198. //VTK::TCoord::Impl
  199. //VTK::Color::Impl
  200. //VTK::PositionVC::Impl
  201. }
  202. `;const pg={BACKGROUND:0,FOREGROUND:1};var hg={DisplayLocation:pg};const{primTypes:kt}=kr,{ScalarMode:ma}=T2,{vtkErrorMacro:Ma}=nn,C2={type:"StartEvent"},w2={type:"EndEvent"};function _2(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=S2,r.Fragment=x2,r.Geometry=""},t.render=()=>{const r=e._openGLRenderWindow.getContext();if(e.context!==r){e.context=r;for(let i=kt.Start;i<kt.End;i++)e.primitives[i].setOpenGLRenderWindow(e._openGLRenderWindow)}const a=e.openGLActor2D.getRenderable(),s=e._openGLRenderer.getRenderable();t.renderPiece(s,a)},t.renderPiece=(r,a)=>{if(t.invokeEvent(C2),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(w2),!e.currentInput){Ma("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()<e.renderable.getMTime()||r.getShaderSourceTime().getMTime()<e.currentInput.getMTime(),t.updateBufferObjects=(r,a)=>{t.getNeedToRebuildBufferObjects(r,a)&&t.buildBufferObjects(r,a)},t.getNeedToRebuildBufferObjects=(r,a)=>{const s=e.VBOBuildTime.getMTime();return!!(s<t.getMTime()||s<e._openGLRenderWindow.getMTime()||s<e.renderable.getMTime()||s<a.getMTime()||s<e.currentInput.getMTime()||e.renderable.getTransformCoordinate()&&s<r.getMTime())},t.buildBufferObjects=(r,a)=>{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===ma.USE_CELL_DATA||o===ma.USE_CELL_FIELD_DATA||o===ma.USE_FIELD_DATA||!s.getPointData().getScalars())&&o!==ma.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 y=s.getPoints();if(f){const d=fs.newInstance(),x=y.getNumberOfPoints();d.setNumberOfPoints(x);const C=[];for(let T=0;T<x;++T){y.getPoint(T,C),f.setValue(C);const v=f.getComputedDoubleViewportValue(r);d.setPoint(T,v[0],v[1],0)}y=d}const h={points:y,tcoords:c,colors:i,cellOffset:0,haveCellScalars:e.haveCellSCalars,customAttributes:e.renderable.getCustomShaderAttributes().map(d=>s.getPointData().getArrayByName(d))};h.cellOffset+=e.primitives[kt.Points].getCABO().createVBO(s.getVerts(),"verts",u,h),h.cellOffset+=e.primitives[kt.Lines].getCABO().createVBO(s.getLines(),"lines",u,h),h.cellOffset+=e.primitives[kt.Tris].getCABO().createVBO(s.getPolys(),"polys",u,h),h.cellOffset+=e.primitives[kt.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=kt.Start;o<kt.End;o++)e.primitives[o].getCABO().getElementCount()&&(e.lastBoundBO=e.primitives[o],e.primitiveIDOffset+=e.primitives[o].drawArrays(r,a,s,t))},t.renderPieceFinish=(r,a)=>{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[];
  203. `,"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[];
  204. `,"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[];
  205. `,"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)||Ma("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)||Ma(`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)||Ma("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<i.length;++u){const f=i[u].getTextureUnit(),l=`texture${f+1}`;r.getProgram().isUniformUsed(l)&&r.getProgram().setUniformi(l,f)}r.setMapperShaderParameters(a,s,e._openGLRenderer.getTiledSizeAndOrigin());const o=e._openGLRenderer.getSelector();r.getProgram().setUniform3fArray("mapperIndex",o?o.getPropColorValue():[0,0,0]),r.getProgram().setUniformi("picking",o?o.getCurrentPass()+1:0)}},t.setPropertyShaderParameters=(r,a,s)=>{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],y=[0,0,1,1];if(y[0]=l[0]>=p[0]?l[0]:p[0],y[1]=l[1]>=p[1]?l[1]:p[1],y[2]=l[2]<=p[2]?l[2]:p[2],y[3]=l[3]<=p[3]?l[3]:p[3],y[0]>=y[2]||y[1]>=y[3])return;f[0]=Ta(f[0]*(y[2]-y[0])/(l[2]-l[0])),f[1]=Ta(f[1]*(y[3]-y[1])/(l[3]-l[1]));const h=e._openGLRenderer.getParent().getSize(),d=Ta(g[0]-(y[0]-l[0])*h[0]),x=Ta(g[1]-(y[1]-l[1])*h[1]),C=-d;let T=-d+f[0];const v=-x;let w=-x+f[1];C===T&&(T=C+1),v===w&&(w=v+1);const S=he(new Float64Array(16));S[0]=2/(T-C),S[1*4+1]=2/(w-v),S[0*4+3]=-1*(T+C)/(T-C),S[1*4+3]=-1*(w+v)/(w-v),S[2*4+2]=0,S[2*4+3]=s.getProperty().getDisplayLocation()===pg.FOREGROUND?-1:1,S[3*4+3]=1,Le(S,S),i.setUniformMatrix("WCVCMatrix",n([S,u],di,e.tmpMat4))},t.getAllocatedGPUMemoryInBytes=()=>{let r=0;return e.primitives.forEach(a=>{r+=a.getAllocatedGPUMemoryInBytes()}),r}}const E2={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function R2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,E2,n),Ne.extend(t,e,n),ps.implementReplaceShaderCoincidentOffset(t,e,n),ps.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=kt,e.tmpMat4=he(new Float64Array(16));for(let r=kt.Start;r<kt.End;r++)e.primitives[r]=kr.newInstance(),e.primitives[r].setPrimitiveType(r),e.primitives[r].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Ke(t,e,["context"]),e.VBOBuildTime={},Ze(e.VBOBuildTime,{mtime:0}),_2(t,e)}const O2=me(R2,"vtkOpenGLPolyDataMapper2D");At("vtkMapper2D",O2);const{VectorMode:D2}=_s;function Zs(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function dg(t,e){return n=>{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 vg(t,e){return n=>{const r=n.getLastTickBounds(),a=Ts().domain([r[0],r[1]]),s=a.ticks(5),i=a.tickFormat(5);n.setTicks(s),n.setTickStrings(s.map(i))}}function m2(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;Zs(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,Zs(e.tmContext,e.tickTextStyle);const f=[...t.getTickStrings(),"NaN","Below","Above"];for(let l=0;l<f.length;l++)s.has(f[l])||(u=e.tmContext.measureText(f[l]),c={height:u.actualBoundingBoxAscent+2,startingHeight:o,width:u.width+2,textStyle:e.tickTextStyle},s.set(f[l],c),o+=c.height,i<c.width&&(i=c.width),a.tickWidth<c.width&&(a.tickWidth=c.width),a.tickHeight<c.height&&(a.tickHeight=c.height));return i=Ut(i),o=Ut(o),s.forEach(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)=>{Zs(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,y,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=(y=e.renderable.getScalarsToColors()).getUseAboveRangeColor)==null?void 0:h.call(y);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=[],y=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[y[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[y[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[y[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 y=[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)),y=[-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*y[l]+.5)*e.barSize[l],r[g]=e.barPosition[g]+e.barSize[g]*.5;let d=null;for(let S=0;S<e.barSegments.length;S++){const O=e.barSegments[S];O.title==="ticks"?d=O:(r[g]=e.barPosition[g]+.5*e.barSize[g]*(O.corners[2][g]+O.corners[0][g]),t.createPolyDataForOneLabel(O.title,r,p,"horizontal",h,f))}const x=e.barPosition[g]+e.barSize[g]*d.corners[0][g],C=e.barSize[g]*(d.corners[2][g]-d.corners[0][g]),T=t.getTicks(),v=t.getTickStrings();for(let S=0;S<T.length;S++){const O=(T[S]-e.lastTickBounds[0])/(e.lastTickBounds[1]-e.lastTickBounds[0]);r[g]=x+C*O,t.createPolyDataForOneLabel(v[S],r,p,"horizontal",h,f)}const w=Oe.newInstance({numberOfComponents:2,values:c,name:"TextureCoordinates"});e.tmPolyData.getPointData().setTCoords(w),e.tmPolyData.getPoints().setData(o,3),e.tmPolyData.getPoints().modified(),e.tmPolyData.getPolys().setData(u,1),e.tmPolyData.getPolys().modified(),e.tmPolyData.modified()},t.updatePolyDataForBarSegments=()=>{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()===D2.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;x<e.barSegments.length;x++){const C=e.barSegments[x];for(let T=0;T<4;T++){r[0]=e.barPosition[0]+C.corners[T][0]*e.barSize[0],r[1]=e.barPosition[1]+C.corners[T][1]*e.barSize[1],c[g*3]=(.5*r[0]+.5)*e.lastSize[0],c[g*3+1]=(.5*r[1]+.5)*e.lastSize[1],c[g*3+2]=r[2];for(let v=0;v<u;v++)l[g*u+v]=e.lastTickBounds[0]+C.scalars[T]*(e.lastTickBounds[1]-e.lastTickBounds[0]);g++}f[p*5]=4,f[p*5+1]=g-4,f[p*5+2]=g-3,f[p*5+3]=g-2,f[p*5+4]=g-1,p++}const y=Oe.newInstance({numberOfComponents:u,values:l,name:"Scalars"});e.polyData.getPointData().setScalars(y),e.polyData.getPoints().setData(c,3),e.polyData.getPoints().modified(),e.polyData.getPolys().setData(f,1),e.polyData.getPolys().modified(),e.polyData.modified()}}const M2=_.newInstance(function(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),_.obj(t,e),_.setGet(t,e,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),_.get(t,e,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),_.getArray(t,e,["boxPosition","boxSize"]),_.setArray(t,e,["boxPosition","boxSize"],2),e.forceUpdate=!1,e.lastRebuildTime={},_.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=Wt.newInstance(),e.barMapper.setInterpolateScalarsBeforeMapping(!0),e.barMapper.setUseLookupTableScalarRange(!0),e.polyData=zt.newInstance(),e.barMapper.setInputData(e.polyData),e.barActor=Nt.newInstance(),e.barActor.setMapper(e.barMapper),e.tmPolyData=zt.newInstance(),e.tmMapper=Wt.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmTexture=Rs.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),e.tmActor=Nt.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=[],m2(t,e)},"vtkScalarBarActorHelper");function V2(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(dg(t,e))},t.resetGenerateTicksToDefault=()=>{t.setGenerateTicks(vg())}}function L2(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 yg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,L2(n)),e.autoLayout||(e.autoLayout=dg(t,e)),e.generateTicks||(e.generateTicks=vg()),Nt.extend(t,e,n),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),_.setGet(t,e,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),_.get(t,e,["axisTextStyle","tickTextStyle"]),_.getArray(t,e,["barPosition","barSize","boxPosition","boxSize"]),_.setArray(t,e,["barPosition","barSize","boxPosition","boxSize"],2),V2(t,e)}const B2=_.newInstance(yg,"vtkScalarBarActor");var Ro={newInstance:B2,extend:yg,newScalarBarActorHelper:M2};function k2(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 F2={};function U2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,F2,n),Ne.extend(t,e,n),e.scalarBarActorHelper=Ro.newScalarBarActorHelper(),k2(t,e)}const b2=me(U2,"vtkOpenGLScalarBarActor");At("vtkScalarBarActor",b2);const{vtkErrorMacro:Kc}=nn;function N2(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(Tt(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=Oe.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=Oe.newInstance({numberOfComponents:1,values:s});e.tris.getCABO().createVBO(i,"polys",gt.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
  206. attribute vec3 vertexMC;
  207. uniform mat4 IMCPCMatrix;
  208. varying vec3 TexCoords;
  209. void main () {
  210. gl_Position = vec4(vertexMC.xyz, 1.0);
  211. vec4 wpos = IMCPCMatrix * gl_Position;
  212. TexCoords = wpos.xyz/wpos.w;
  213. }`,`//VTK::System::Dec
  214. //VTK::Output::Dec
  215. varying vec3 TexCoords;
  216. uniform samplerCube sbtexture;
  217. uniform vec3 camPos;
  218. void main () {
  219. // skybox looks from inside out
  220. // which means we have to adjust
  221. // our tcoords. Otherwise text would
  222. // be flipped
  223. vec3 tc = normalize(TexCoords - camPos);
  224. if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))
  225. {
  226. tc = vec3(1.0, 1.0, -1.0) * tc;
  227. }
  228. else
  229. {
  230. tc = vec3(-1.0, 1.0, 1.0) * tc;
  231. }
  232. gl_FragData[0] = textureCube(sbtexture, tc);
  233. }`,"")),e.lastFormat==="background"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec
  234. attribute vec3 vertexMC;
  235. uniform mat4 IMCPCMatrix;
  236. varying vec2 TexCoords;
  237. void main () {
  238. gl_Position = vec4(vertexMC.xyz, 1.0);
  239. vec4 wpos = IMCPCMatrix * gl_Position;
  240. TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;
  241. }`,`//VTK::System::Dec
  242. //VTK::Output::Dec
  243. varying vec2 TexCoords;
  244. uniform sampler2D sbtexture;
  245. void main () {
  246. gl_FragData[0] = texture2D(sbtexture, TexCoords);
  247. }`,"")),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)||Kc("Error setting vertexMC in shader VAO."));const n=e.renderable.getTextures();n.length||Kc("vtkSkybox requires a texture map"),e.openGLTexture.getRenderable()!==n[0]&&(e.openGLTexture.releaseGraphicsResources(e._openGLRenderWindow),e.openGLTexture.setRenderable(n[0]))}}const G2={context:null};function $2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,G2,n),Ne.extend(t,e,n),e.openGLTexture=Jn.newInstance(),e.tris=kr.newInstance(),e.keyMatrixTime={},Ze(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:tr(new Float64Array(9)),mcwc:he(new Float64Array(16))},Ke(t,e,["context"]),ht(t,e,["activeTextures"]),N2(t,e)}const W2=me($2);At("vtkSkybox",W2);const{vtkDebugMacro:z2}=nn;function A2(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():z2("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 H2={};function j2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,H2,n),Ne.extend(t,e,n),A2(t,e)}const K2=me(j2,"vtkOpenGLPixelSpaceCallbackMapper");At("vtkPixelSpaceCallbackMapper",K2);const Tg=Object.create(null);function pn(t,e){Tg[t]=e}function P2(t,e){e.classHierarchy.push("vtkWebGPUViewNodeFactory")}const X2={};function xg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,X2,n),e.overrides=Tg,Ff.extend(t,e,n),P2(t,e)}const I2=_.newInstance(xg,"vtkWebGPUViewNodeFactory");var Y2={newInstance:I2,extend:xg};function q2(t,e){e.classHierarchy.push("vtkWebGPUCamera"),t.getProjectionMatrix=(n,r,a,s)=>{if(he(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),y=1/(g-l);n[0]=2*p,n[5]=2*y,n[10]=1/(a[1]-a[0]),n[12]=(f+c)*p,n[13]=(g+l)*y,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();at(e.keyMatrices.normalMatrix,s),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,Tt(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Le(e.keyMatrices.wcvc,s);const i=n.getStabilizedCenterByReference();ze(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()),pt(e.keyMatrices.scpc,e.keyMatrices.vcpc,e.keyMatrices.scvc),Tt(e.keyMatrices.pcsc,e.keyMatrices.scpc),e.keyMatrixTime.modified()}return e.keyMatrices}}const Q2={keyMatrixTime:null,keyMatrices:null};function J2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Q2,n),Ne.extend(t,e,n),e.keyMatrixTime={},_.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)},_.setGet(t,e,["keyMatrixTime"]),q2(t,e)}const Z2=_.newInstance(J2);pn("vtkCamera",Z2);function eS(t,e){e.classHierarchy.push("vtkWebGPUBindGroup"),t.setBindables=n=>{if(e.bindables.length===n.length){let r=!0;for(let a=0;a<e.bindables.length;a++)e.bindables[a]!==n[a]&&(r=!1);if(r)return}e.bindables=n,t.modified()},t.getBindGroupLayout=n=>{const r=[];for(let a=0;a<e.bindables.length;a++){const s=e.bindables[a].getBindGroupLayoutEntry();s.binding=a,r.push(s)}return n.getBindGroupLayout({entries:r})},t.getBindGroup=n=>{let r=t.getMTime();for(let s=0;s<e.bindables.length;s++){const i=e.bindables[s].getBindGroupTime().getMTime();r=i>r?i:r}if(r<e.bindGroupTime.getMTime())return e.bindGroup;const a=[];for(let s=0;s<e.bindables.length;s++){const i=e.bindables[s].getBindGroupEntry();i.binding=s,a.push(i)}return e.bindGroup=n.getHandle().createBindGroup({layout:t.getBindGroupLayout(n),entries:a,label:e.label}),e.bindGroupTime.modified(),e.bindGroup},t.getShaderCode=n=>{const r=[],a=n.getBindGroupLayoutCount(e.label);for(let s=0;s<e.bindables.length;s++)r.push(e.bindables[s].getShaderCode(s,a));return r.join(`
  248. `)}}const tS={device:null,handle:null,label:null};function Sg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tS,n),_.obj(t,e),e.bindables=[],e.bindGroupTime={},_.obj(e.bindGroupTime,{mtime:0}),_.get(t,e,["bindGroupTime","handle","sizeInBytes","usage"]),_.setGet(t,e,["label","device","arrayInformation"]),eS(t,e)}const nS=_.newInstance(Sg);var Cg={newInstance:nS,extend:Sg};function rS(t,e){e.classHierarchy.push("vtkWebGPUShaderModule"),t.initialize=(n,r)=>{e.device=n,e.handle=e.device.getHandle().createShaderModule({code:r.getCode()})}}const aS={device:null,handle:null};function wg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aS,n),_.obj(t,e),_.get(t,e,["lastCameraMTime"]),_.setGet(t,e,["device","handle"]),rS(t,e)}const sS=_.newInstance(wg,"vtkWebGPUShaderModule");var iS={newInstance:sS,extend:wg};function oS(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const a=Array.isArray(n)?n.join(`
  249. `):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 cS(t,e){e.classHierarchy.push("vtkWebGPUShaderCache"),t.getShaderModule=n=>{const r=n.getType(),a=n.getHash(),s=e._shaderModules.keys();for(let o=0;o<s.length;o++){const u=s[o];if(u.getHash()===a&&u.getType()===r)return e._shaderModules.get(u)}const i=iS.newInstance();return i.initialize(e.device,n),e._shaderModules.set(n,i),i}}const uS={shaderModules:null,device:null,window:null};function _g(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uS,n),e._shaderModules=new Map,_.obj(t,e),_.setGet(t,e,["device","window"]),cS(t,e)}const fS=_.newInstance(_g,"vtkWebGPUShaderCache");var oe={newInstance:fS,extend:_g,substitute:oS};function lS(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<e.layouts.length;s++)a.push(e.layouts[s].layout);e.pipelineLayout=n.getHandle().createPipelineLayout({bindGroupLayouts:a}),e.pipelineDescription.layout=e.pipelineLayout;for(let s=0;s<e.shaderDescriptions.length;s++){const i=e.shaderDescriptions[s],o=n.getShaderModule(i);i.getType()==="vertex"&&(e.pipelineDescription.vertex.module=o.getHandle(),e.pipelineDescription.vertex.entryPoint="main"),i.getType()==="fragment"&&(e.pipelineDescription.fragment.module=o.getHandle(),e.pipelineDescription.fragment.entryPoint="main")}e.handle=n.getHandle().createRenderPipeline(e.pipelineDescription)},t.getShaderDescription=n=>{for(let r=0;r<e.shaderDescriptions.length;r++)if(e.shaderDescriptions[r].getType()===n)return e.shaderDescriptions[r];return null},t.addBindGroupLayout=n=>{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<e.layouts.length;r++)if(e.layouts[r].label===n)return r;return 0},t.bindVertexInput=(n,r)=>{r.bindBuffers(n)}}const gS={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function Eg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gS,n),Ze(t,e),e.layouts=[],e.shaderDescriptions=[],ht(t,e,["handle","pipelineDescription"]),Ke(t,e,["device","renderEncoder","topology","vertexState"]),lS(t,e)}const pS=me(Eg,"vtkWebGPUPipeline");var hS={newInstance:pS,extend:Eg};function dS(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
  250. {`),n){const o=n.getOutputNamesByReference(),u=n.getOutputTypesByReference(),c=n.getOutputInterpolationsByReference();for(let f=0;f<o.length;f++)c[f]!==void 0?i.push(` @location(${f}) @interpolate(${c[f]}) ${o[f]} : ${u[f]},`):i.push(` @location(${f}) ${o[f]} : ${u[f]},`)}for(let o=0;o<e.builtinInputNames.length;o++)i.push(` ${e.builtinInputNames[o]} : ${e.builtinInputTypes[o]},`);i.length>1&&(i.push("};"),s=i,a[a.length-1]+=",",a.push(`input: ${e.type}Input`))}if(a.length&&(e.code=oe.substitute(e.code,"//VTK::IOStructs::Input",a).result),e.outputNames.length+e.builtinOutputNames.length){const i=[`struct ${e.type}Output
  251. {`];for(let o=0;o<e.outputNames.length;o++)e.outputInterpolations[o]!==void 0?i.push(` @location(${o}) @interpolate(${e.outputInterpolations[o]}) ${e.outputNames[o]} : ${e.outputTypes[o]},`):i.push(` @location(${o}) ${e.outputNames[o]} : ${e.outputTypes[o]},`);for(let o=0;o<e.builtinOutputNames.length;o++)i.push(` ${e.builtinOutputNames[o]} : ${e.builtinOutputTypes[o]},`);i.push("};"),s=s.concat(i),e.code=oe.substitute(e.code,"//VTK::IOStructs::Output",[`-> ${e.type}Output`]).result}e.code=oe.substitute(e.code,"//VTK::IOStructs::Dec",s).result}}const vS={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function Rg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vS,n),e.outputNames=[],e.outputTypes=[],e.outputInterpolations=[],e.builtinOutputNames=[],e.builtinOutputTypes=[],e.builtinInputNames=[],e.builtinInputTypes=[],_.obj(t,e),_.setGet(t,e,["type","hash","code"]),_.getArray(t,e,["outputTypes","outputNames","outputInterpolations"]),dS(t,e)}const yS=_.newInstance(Rg,"vtkWebGPUShaderDescription");var Pc={newInstance:yS,extend:Rg};const Xc={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 TS(t){return!t||t.length<6?0:t in Xc?Xc[t]:(le(`unknown format ${t}`),null)}function xS(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 le(`unknown format ${t}`),0;const a=5-r/2;return e*a}function SS(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 CS(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{le(`unknown format ${t}`);return}const n=t.split("x")[0],r=Number(n[n.length-1]);if(Number.isNaN(r)){le(`unknown format ${t}`);return}return e+=8*(5-r/2),e+="Array",e}function wS(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{le(`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 _S(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 ES(t){if(t){if(t.includes("f32"))return"Float32Array";if(t.includes("i32"))return"Int32Array";if(t.includes("u32"))return"Uint32Array";le(`unknown format ${t}`)}}var Qe={getDetailsFromTextureFormat:TS,getByteStrideFromBufferFormat:xS,getNumberOfComponentsFromBufferFormat:SS,getNativeTypeFromBufferFormat:CS,getShaderTypeFromBufferFormat:wS,getByteStrideFromShaderFormat:_S,getNativeTypeFromShaderFormat:ES};function RS(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;++n)if(!e.includes(t[n]))return!1;return!0}function OS(t,e){e.classHierarchy.push("vtkWebGPUVertexInput"),t.addBuffer=function(n,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"vertex",s=r;Array.isArray(s)||(s=[s]);for(let i=0;i<e.inputs.length;i++)if(RS(e.inputs[i].names,s)){if(e.inputs[i].buffer===n)return;e.inputs[i].buffer=n;return}e.inputs.push({buffer:n,stepMode:a,names:s}),e.inputs=e.inputs.sort((i,o)=>i.names[0]<o.names[0]?-1:i.names[0]>o.names[0]?1:0)},t.removeBufferIfPresent=n=>{for(let r=0;r<e.inputs.length;r++)e.inputs[r].names.includes(n)&&e.inputs.splice(r,1)},t.getBuffer=n=>{for(let r=0;r<e.inputs.length;r++)if(e.inputs[r].names.includes(n))return e.inputs[r].buffer;return null},t.hasAttribute=n=>{for(let r=0;r<e.inputs.length;r++)if(e.inputs[r].names.includes(n))return!0;return!1},t.getAttributeTime=n=>{for(let r=0;r<e.inputs.length;r++)if(e.inputs[r].names.includes(n))return e.inputs[r].buffer.getSourceTime();return 0},t.getShaderCode=()=>{let n="",r=0;for(let a=0;a<e.inputs.length;a++)for(let s=0;s<e.inputs[a].names.length;s++){const i=e.inputs[a].buffer.getArrayInformation()[s],o=Qe.getShaderTypeFromBufferFormat(i.format);r>0&&(n+=`,
  252. `),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<e.inputs.length;s++){const i=e.inputs[s].buffer,o={arrayStride:i.getStrideInBytes(),stepMode:e.inputs[s].stepMode,attributes:[]},u=i.getArrayInformation();for(let c=0;c<e.inputs[s].names.length;c++)o.attributes.push({shaderLocation:a,offset:u[c].offset,format:u[c].format}),a++;r.push(o)}n.buffers=r}return n},t.bindBuffers=n=>{for(let r=0;r<e.inputs.length;r++)n.setVertexBuffer(r,e.inputs[r].buffer.getHandle());e.indexBuffer&&n.setIndexBuffer(e.indexBuffer.getHandle(),e.indexBuffer.getArrayInformation()[0].format)},t.getReady=()=>{},t.releaseGraphicsResources=()=>{e.created&&(e.inputs=[],e.bindingDescriptions=[],e.attributeDescriptions=[])}}const DS={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function Og(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,DS,n),Ze(t,e),e.bindingDescriptions=[],e.attributeDescriptions=[],e.inputs=[],Ke(t,e,["created","device","handle","indexBuffer"]),OS(t,e)}const mS=me(Og,"vtkWebGPUVertexInput");var MS={newInstance:mS,extend:Og};const VS=`
  253. //VTK::Renderer::Dec
  254. //VTK::Color::Dec
  255. //VTK::Normal::Dec
  256. //VTK::TCoord::Dec
  257. //VTK::Select::Dec
  258. //VTK::Mapper::Dec
  259. //VTK::IOStructs::Dec
  260. @vertex
  261. fn main(
  262. //VTK::IOStructs::Input
  263. )
  264. //VTK::IOStructs::Output
  265. {
  266. var output : vertexOutput;
  267. // var vertex: vec4<f32> = vertexBC;
  268. //VTK::Color::Impl
  269. //VTK::Normal::Impl
  270. //VTK::TCoord::Impl
  271. //VTK::Select::Impl
  272. //VTK::Position::Impl
  273. return output;
  274. }
  275. `,LS=`
  276. //VTK::Renderer::Dec
  277. //VTK::Color::Dec
  278. //VTK::Normal::Dec
  279. //VTK::TCoord::Dec
  280. //VTK::Select::Dec
  281. //VTK::RenderEncoder::Dec
  282. //VTK::Mapper::Dec
  283. //VTK::IOStructs::Dec
  284. @fragment
  285. fn main(
  286. //VTK::IOStructs::Input
  287. )
  288. //VTK::IOStructs::Output
  289. {
  290. var output : fragmentOutput;
  291. //VTK::Color::Impl
  292. //VTK::Normal::Impl
  293. //VTK::Light::Impl
  294. //VTK::TCoord::Impl
  295. //VTK::Select::Impl
  296. // var computedColor:vec4<f32> = vec4<f32>(1.0,0.5,0.5,1.0);
  297. //VTK::RenderEncoder::Impl
  298. return output;
  299. }
  300. `;function BS(t,e){e.classHierarchy.push("vtkWebGPUSimpleMapper"),t.generateShaderDescriptions=(n,r,a)=>{const s=Pc.newInstance({type:"vertex",hash:n,code:e.vertexShaderTemplate}),i=Pc.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,y)=>y.indexOf(g)===p).map(g=>`replaceShader${g.substring(7,g.length-2)}`);for(let g=0;g<l.length;g++){const p=l[g];p!=="replaceShaderIOStructs"&&e.shaderReplacements.has(p)&&e.shaderReplacements.get(p)(n,r,a)}t.replaceShaderIOStructs(n,r,a)},t.replaceShaderIOStructs=(n,r,a)=>{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=oe.substitute(o,"//VTK::Renderer::Dec",[s]).result,i.setCode(o);const u=r.getShaderDescription("fragment");o=u.getCode(),o=oe.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=oe.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=oe.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<f32>","@builtin(position) Position");let i=s.getCode();i=oe.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<f32>","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<e.textureViews.length;r++){n.push(e.textureViews[r]);const a=e.textureViews[r].getSampler();a&&n.push(a)}return n},t.updatePipeline=()=>{t.computePipelineHash(),e.pipeline=e.device.getPipeline(e.pipelineHash),e.pipeline||(e.pipeline=hS.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 kS={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 Dg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kS,n),Ne.extend(t,e,n),e.textureViews=[],e.vertexInput=MS.newInstance(),e.bindGroup=Cg.newInstance({label:"mapperBG"}),e.additionalBindables=[],e.fragmentShaderTemplate=e.fragmentShaderTemplate||LS,e.vertexShaderTemplate=e.vertexShaderTemplate||VS,e.shaderReplacements=new Map,_.get(t,e,["pipeline","vertexInput"]),_.setGet(t,e,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),BS(t,e)}const FS=_.newInstance(Dg,"vtkWebGPUSimpleMapper");var Oo={newInstance:FS,extend:Dg};function US(t,e){e.classHierarchy.push("vtkWebGPUFullScreenQuad"),t.replaceShaderPosition=(n,r,a)=>{const s=r.getShaderDescription("vertex");s.addBuiltinOutput("vec4<f32>","@builtin(position) Position"),s.addOutput("vec4<f32>","vertexVC");let i=s.getCode();i=oe.substitute(i,"//VTK::Position::Impl",["output.tcoordVS = vec2<f32>(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4<f32>(vertexBC, 1.0);","output.vertexVC = vec4<f32>(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 bS={};function mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bS,n),Oo.extend(t,e,n),US(t,e)}const NS=_.newInstance(mg,"vtkWebGPUFullScreenQuad");var Or={newInstance:NS,extend:mg};const GS={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},$S={Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6};var ua={BufferUsage:GS,PrimitiveTypes:$S};const ei=["getMappedRange","mapAsync","unmap"];function WS(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 zS(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=>{WS(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;n<ei.length;n++)t[ei[n]]=function(){return e.handle[ei[n]](...arguments)}}const AS={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function Mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AS,n),_.obj(t,e),_.get(t,e,["handle","sizeInBytes","usage"]),_.setGet(t,e,["strideInBytes","device","arrayInformation","label","sourceTime"]),zS(t,e)}const HS=_.newInstance(Mg);var Dr={newInstance:HS,extend:Mg,...ua};const{Representation:Ic}=Br,{PrimitiveTypes:En}=ua;class jS{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let n=0;n<this.count;n++)if(this.keys[n]===e)return!0}get(e){for(let n=0;n<this.count;n++)if(this.keys[n]===e)return this.values[n]}set(e,n){this.count<9&&(this.keys[this.count]=e,this.values[this.count++]=n)}}function KS(t){switch(t){case En.Points:return"points";case En.Lines:return"lines";case En.Triangles:case En.TriangleEdges:return"polys";case En.TriangleStripEdges:case En.TriangleStrips:return"strips";default:return""}}function Va(t,e,n){let r=t.pointIdToFlatId[e];return r<0&&(r=t.flatId,t.pointIdToFlatId[e]=r,t.flatIdToPointId[t.flatId]=e,t.flatIdToCellId[t.flatId]=n,t.flatId++),r}function PS(t,e,n){const r=t.length;for(let i=0;i<r;i++){let o=t[i];if(n.cellProvokedMap.has(o)){n.ibo[n.iboId++]=n.cellProvokedMap.get(o);for(let u=i+1;u<i+r;u++){o=t[u%r];const c=Va(n,o,e);n.ibo[n.iboId++]=c}return}}for(let i=0;i<r;i++){let o=t[i];if(!n.provokedPointIds[o]){let u=Va(n,o,e);n.provokedPointIds[o]=1,n.cellProvokedMap.set(o,u),n.flatIdToCellId[u]=e,n.ibo[n.iboId++]=u;for(let c=i+1;c<i+r;c++)o=t[c%r],u=Va(n,o,e),n.ibo[n.iboId++]=u;return}}let a=t[0],s=n.flatId;n.cellProvokedMap.set(a,s),n.flatIdToPointId[n.flatId]=a,n.flatIdToCellId[n.flatId]=e,n.flatId++,n.ibo[n.iboId++]=s;for(let i=1;i<r;i++)a=t[i],s=Va(n,a,e),n.ibo[n.iboId++]=s}function XS(t,e,n){const r=t.length;n.iboSize+=r;for(let a=0;a<r;a++){const s=t[a];if(n.cellProvokedMap.has(s))return}for(let a=0;a<r;a++){const s=t[a];if(!n.provokedPointIds[s]){n.provokedPointIds[s]=1,n.cellProvokedMap.set(s,1);return}}n.cellProvokedMap.set(t[0],1),n.extraPoints++}let sn;const Yc=new Uint32Array(1),Rt=new Uint32Array(2),Tn=new Uint32Array(3),ti={anythingToPoints(t,e,n,r,a){for(let s=0;s<t;++s)Yc[0]=e[n+s],sn(Yc,r,a)},linesToWireframe(t,e,n,r,a){for(let s=0;s<t-1;++s)Rt[0]=e[n+s],Rt[1]=e[n+s+1],sn(Rt,r,a)},polysToWireframe(t,e,n,r,a){if(t>2)for(let s=0;s<t;++s)Rt[0]=e[n+s],Rt[1]=e[n+(s+1)%t],sn(Rt,r,a)},stripsToWireframe(t,e,n,r,a){if(t>2){for(let s=0;s<t-1;++s)Rt[0]=e[n+s],Rt[1]=e[n+s+1],sn(Rt,r,a);for(let s=0;s<t-2;s++)Rt[0]=e[n+s],Rt[1]=e[n+s+2],sn(Rt,r,a)}},polysToSurface(t,e,n,r,a){for(let s=0;s<t-2;s++)Tn[0]=e[n],Tn[1]=e[n+s+1],Tn[2]=e[n+s+2],sn(Tn,r,a)},stripsToSurface(t,e,n,r,a){for(let s=0;s<t-2;s++)Tn[0]=e[n+s],Tn[1]=e[n+s+1+s%2],Tn[2]=e[n+s+1+(s+1)%2],sn(Tn,r,a)}};function IS(t,e){e.classHierarchy.push("vtkWebGPUIndexBuffer"),t.buildIndexBuffer=n=>{const r=n.cells,a=n.primitiveType,s=n.representation,i=n.cellOffset,o=r.getData(),u=o.length,c=KS(a),f=n.numberOfPoints,l={provokedPointIds:new Uint8Array(f),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new jS};let g=null;s===Ic.POINTS||a===En.Points?g=ti.anythingToPoints:s===Ic.WIREFRAME||a===En.Lines?g=ti[`${c}ToWireframe`]:g=ti[`${c}ToSurface`],sn=XS;let p=i||0;for(let y=0;y<u;)l.cellProvokedMap.clear(),g(o[y],o,y+1,p,l),y+=o[y]+1,p++;f<=65535?l.flatIdToPointId=new Uint16Array(f+l.extraPoints):l.flatIdToPointId=new Uint32Array(f+l.extraPoints),f+l.extraPoints<36863?l.pointIdToFlatId=new Int16Array(f):l.pointIdToFlatId=new Int32Array(f),f+l.extraPoints<=65535?(l.ibo=new Uint16Array(l.iboSize),n.format="uint16"):(l.ibo=new Uint32Array(l.iboSize),n.format="uint32"),p<=65535?l.flatIdToCellId=new Uint16Array(f+l.extraPoints):l.flatIdToCellId=new Uint32Array(f+l.extraPoints),l.pointIdToFlatId.fill(-1),l.provokedPointIds.fill(0),sn=PS,p=i||0;for(let y=0;y<u;)l.cellProvokedMap.clear(),g(o[y],o,y+1,p,l),y+=o[y]+1,p++;delete l.provokedPointIds,delete l.pointIdToFlatId,n.nativeArray=l.ibo,e.flatIdToPointId=l.flatIdToPointId,e.flatIdToCellId=l.flatIdToCellId,e.flatSize=l.flatId,e.indexCount=l.iboId}}const YS={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function Vg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YS,n),Dr.extend(t,e,n),_.setGet(t,e,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),IS(t,e)}const qS=_.newInstance(Vg);var QS={newInstance:qS,extend:Vg,...ua};const{BufferUsage:xn}=ua,{vtkErrorMacro:JS}=nn,{VtkDataTypes:Wn}=Oe,ZS={};function eC(t){let e;switch(t.getDataType()){case Wn.UNSIGNED_CHAR:e="uint8";break;case Wn.FLOAT:e="float32";break;case Wn.UNSIGNED_INT:e="uint32";break;case Wn.INT:e="sint32";break;case Wn.DOUBLE:e="float32";break;case Wn.UNSIGNED_SHORT:e="uint16";break;case Wn.SHORT:e="sin16";break;default:e="float32";break}switch(t.getNumberOfComponents()){case 2:e+="x2";break;case 3:e.includes("32")||JS(`unsupported x3 type for ${e}`),e+="x3";break;case 4:e+="x4";break}return e}function qc(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=Mr(r,i*g);let y=t.getFlatIdToPointId();a.cellData&&(y=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;h<i;h++){const d=n*y[h];f(d)}return s.nativeArray=p,s}function tC(t,e,n,r){const a=[t[r*3]-t[n*3],t[r*3+1]-t[n*3+1],t[r*3+2]-t[n*3+2]],s=[t[e*3]-t[n*3],t[e*3+1]-t[n*3+1],t[e*3+2]-t[n*3+2]],i=[];return na(a,s,i),ra(i),i}function nC(t,e){const n=e.getData(),r=t.getData();if(!r||!n)return null;const a=new Int8Array(t.getNumberOfCells()*4),s=r.length;let i=0;for(let o=0;o<s;){const u=tC(n,r[o+1],r[o+2],r[o+3]);a[i++]=127*u[0],a[i++]=127*u[1],a[i++]=127*u[2],a[i++]=127,o+=r[o]+1}return a}function rC(t,e){e.classHierarchy.push("vtkWebGPUBufferManager");function n(r){r.dataArray&&!r.nativeArray&&(r.nativeArray=r.dataArray.getData());let a,s;if(r.usage===xn.Index&&(a=QS.newInstance({label:r.label}),a.setDevice(e.device),s=GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,a.buildIndexBuffer(r),a.createAndWrite(r.nativeArray,s),a.setArrayInformation([{format:r.format}])),a||(a=Dr.newInstance({label:r.label}),a.setDevice(e.device)),r.usage===xn.UniformArray&&(s=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,a.createAndWrite(r.nativeArray,s)),r.usage===xn.Storage&&(s=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,a.createAndWrite(r.nativeArray,s)),r.usage===xn.Texture&&(s=GPUBufferUsage.COPY_SRC,a.createAndWrite(r.nativeArray,s)),r.usage===xn.PointArray){s=GPUBufferUsage.VERTEX;const i=Qe.getNativeTypeFromBufferFormat(r.format),o=qc(r.indexBuffer,r.dataArray.getData(),r.dataArray.getNumberOfComponents(),i,{packExtra:r.packExtra,shift:r.shift,scale:r.scale,cellData:r.cellData,cellOffset:r.cellOffset});a.createAndWrite(o.nativeArray,s),a.setStrideInBytes(Qe.getByteStrideFromBufferFormat(r.format)),a.setArrayInformation([{offset:0,format:r.format,interpolation:r.cellData?"flat":"perspective"}])}if(r.usage===xn.NormalsFromPoints){s=GPUBufferUsage.VERTEX;const i=Qe.getNativeTypeFromBufferFormat(r.format),o=nC(r.cells,r.dataArray),u=qc(r.indexBuffer,o,4,i,{cellData:!0});a.createAndWrite(u.nativeArray,s),a.setStrideInBytes(Qe.getByteStrideFromBufferFormat(r.format)),a.setArrayInformation([{offset:0,format:r.format,interpolation:"flat"}])}return r.usage===xn.RawVertex&&(s=GPUBufferUsage.VERTEX,a.createAndWrite(r.nativeArray,s),a.setStrideInBytes(Qe.getByteStrideFromBufferFormat(r.format)),a.setArrayInformation([{offset:0,format:r.format}])),a.setSourceTime(r.time),a}t.hasBuffer=r=>e.device.hasCachedObject(r),t.getBuffer=r=>r.hash?e.device.getCachedObject(r.hash,n,r):n(r),t.getBufferForPointArray=(r,a)=>{const s=eC(r),i={hash:`${r.getMTime()}I${a.getMTime()}${s}`,usage:xn.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 aC={device:null,fullScreenQuadBuffer:null};function Lg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aC,n),Ze(t,e),Ke(t,e,["device"]),rC(t,e)}const sC=me(Lg);var Ln={newInstance:sC,extend:Lg,...ZS,...ua};const{BufferUsage:iC}=Ln,{vtkErrorMacro:ur}=_;function oC(t,e){e.classHierarchy.push("vtkWebGPUStorageBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){ur(`entry named ${n} already exists`);return}e._bufferEntryNames.set(n,e.bufferEntries.length);const a=Qe.getByteStrideFromShaderFormat(r);e.bufferEntries.push({name:n,type:r,sizeInBytes:a,offset:e.sizeInBytes,nativeType:Qe.getNativeTypeFromShaderFormat(r)}),e.sizeInBytes+=a},t.send=n=>{if(!e._buffer){const r={nativeArray:e.Float32Array,usage:iC.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]=_.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r,a)=>{const s=e._bufferEntryNames.get(n);if(s===void 0){ur(`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){ur(`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<a.length;c++)o[u+c]=a[c]},t.setAllInstancesFromArray=(n,r)=>{const a=e._bufferEntryNames.get(n);if(a===void 0){ur(`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<e.numberOfInstances;u++){const c=(s.offset+u*e.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let f=0;f<o;f++)i[c+f]=r[u*o+f]}},t.setAllInstancesFromArrayColorToFloat=(n,r)=>{const a=e._bufferEntryNames.get(n);if(a===void 0){ur(`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<e.numberOfInstances;u++){const c=(s.offset+u*e.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let f=0;f<o;f++)i[c+f]=r[u*o+f]/255}},t.setAllInstancesFromArray3x3To4x4=(n,r)=>{const a=e._bufferEntryNames.get(n);if(a===void 0){ur(`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;u<e.numberOfInstances;u++){const c=(s.offset+u*e.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let f=0;f<3;f++)for(let l=0;l<3;l++)i[c+f*4+l]=r[u*o+f*3+l]}},t.getSendTime=()=>e._sendTime.getMTime(),t.getShaderCode=(n,r)=>{const a=[`struct ${e.label}StructEntry
  301. {`];for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];a.push(` ${i.name}: ${i.type},`)}return a.push(`
  302. };
  303. struct ${e.label}Struct
  304. {
  305. values: array<${e.label}StructEntry>,
  306. };
  307. @binding(${n}) @group(${r}) var<storage, read> ${e.label}: ${e.label}Struct;
  308. `),a.join(`
  309. `)},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 cC={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function Bg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cC,n),_.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e._sendTime={},_.obj(e._sendTime,{mtime:0}),e.bindGroupTime={},_.obj(e.bindGroupTime,{mtime:0}),e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},_.get(t,e,["bindGroupTime"]),_.setGet(t,e,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),oC(t,e)}const uC=_.newInstance(Bg,"vtkWebGPUStorageBuffer");var Li={newInstance:uC,extend:Bg};const{BufferUsage:fC}=Ln,{vtkErrorMacro:ni}=_;function lC(t,e){e.classHierarchy.push("vtkWebGPUUniformBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){ni(`entry named ${n} already exists`);return}e.sortDirty=!0,e._bufferEntryNames.set(n,e.bufferEntries.length),e.bufferEntries.push({name:n,type:r,sizeInBytes:Qe.getByteStrideFromShaderFormat(r),offset:-1,nativeType:Qe.getNativeTypeFromShaderFormat(r),packed:!1})},t.sortBufferEntries=()=>{if(!e.sortDirty)return;let n=0;const r=[];let a=4;for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];i.sizeInBytes%16===0&&(a=Math.max(16,a)),i.sizeInBytes%8===0&&(a=Math.max(8,a))}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];i.packed===!1&&i.sizeInBytes%16===0&&(i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes)}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];if(i.packed===!1&&i.sizeInBytes===12)for(let o=0;o<e.bufferEntries.length;o++){const u=e.bufferEntries[o];if(u.packed===!1&&u.sizeInBytes===4){i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes,u.packed=!0,u.offset=n,r.push(u),n+=u.sizeInBytes;break}}}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];if(!i.packed&&i.sizeInBytes%8===0)for(let o=s+1;o<e.bufferEntries.length;o++){const u=e.bufferEntries[o];if(!u.packed&&u.sizeInBytes%8===0){i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes,u.packed=!0,u.offset=n,r.push(u),n+=u.sizeInBytes;break}}}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];if(!i.packed&&i.sizeInBytes%8===0){let o=!1;for(let u=0;!o&&u<e.bufferEntries.length;u++){const c=e.bufferEntries[u];if(!c.packed&&c.sizeInBytes===4)for(let f=u+1;f<e.bufferEntries.length;f++){const l=e.bufferEntries[f];if(!l.packed&&l.sizeInBytes===4){i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes,c.packed=!0,c.offset=n,r.push(c),n+=c.sizeInBytes,l.packed=!0,l.offset=n,r.push(l),n+=l.sizeInBytes,o=!0;break}}}}}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];!i.packed&&i.sizeInBytes>4&&(i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes)}for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];i.packed||(i.packed=!0,i.offset=n,r.push(i),n+=i.sizeInBytes)}e.bufferEntries=r,e._bufferEntryNames.clear();for(let s=0;s<e.bufferEntries.length;s++)e._bufferEntryNames.set(e.bufferEntries[s].name,s);e.sizeInBytes=n,e.sizeInBytes=a*Math.ceil(e.sizeInBytes/a),e.sortDirty=!1},t.sendIfNeeded=n=>{if(!e.UBO){const r={nativeArray:e.Float32Array,usage:fC.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]=_.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r)=>{t.sortBufferEntries();const a=e._bufferEntryNames.get(n);if(a===void 0){ni(`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){ni(`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<r.length;u++)(!s.lastValue||s.lastValue[u]!==r[u])&&(i[s.offset/i.BYTES_PER_ELEMENT+u]=r[u],o=!0);o&&(e.sendDirty=!0,s.lastValue=[...r])},t.getBindGroupEntry=()=>({resource:{buffer:e.UBO.getHandle()}}),t.getSendTime=()=>e.sendTime.getMTime(),t.getShaderCode=(n,r)=>{t.sortBufferEntries();const a=[`struct ${e.label}Struct
  310. {`];for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];a.push(` ${i.name}: ${i.type},`)}return a.push(`};
  311. @binding(${n}) @group(${r}) var<uniform> ${e.label}: ${e.label}Struct;`),a.join(`
  312. `)}}const gC={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function kg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gC,n),_.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"uniform"}},e.sendTime={},_.obj(e.sendTime,{mtime:0}),e.bindGroupTime={},_.obj(e.bindGroupTime,{mtime:0}),e.sendDirty=!0,e.sortDirty=!0,_.get(t,e,["binding","bindGroupTime"]),_.setGet(t,e,["bindGroupLayoutEntry","device","label","sizeInBytes"]),lC(t,e)}const pC=_.newInstance(kg,"vtkWebGPUUniformBuffer");var Zn={newInstance:pC,extend:kg};const{vtkDebugMacro:hC}=nn,Qc=`
  313. //VTK::Renderer::Dec
  314. //VTK::Mapper::Dec
  315. //VTK::TCoord::Dec
  316. //VTK::RenderEncoder::Dec
  317. //VTK::IOStructs::Dec
  318. @fragment
  319. fn main(
  320. //VTK::IOStructs::Input
  321. )
  322. //VTK::IOStructs::Output
  323. {
  324. var output: fragmentOutput;
  325. var computedColor: vec4<f32> = mapperUBO.BackgroundColor;
  326. //VTK::RenderEncoder::Impl
  327. return output;
  328. }
  329. `,dC=`
  330. fn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {
  331. var tau: f32 = 6.28318530718;
  332. var pi: f32 = 3.14159265359;
  333. var out: vec2<f32> = vec2<f32>(0.0);
  334. out.x = atan2(dir.z, dir.x) / tau;
  335. out.x += 0.5;
  336. var phix: f32 = length(vec2(dir.x, dir.z));
  337. out.y = atan2(dir.y, phix) / pi + 0.5;
  338. return out;
  339. }
  340. //VTK::Renderer::Dec
  341. //VTK::Mapper::Dec
  342. //VTK::TCoord::Dec
  343. //VTK::RenderEncoder::Dec
  344. //VTK::IOStructs::Dec
  345. @fragment
  346. fn main(
  347. //VTK::IOStructs::Input
  348. )
  349. //VTK::IOStructs::Output
  350. {
  351. var output: fragmentOutput;
  352. var tcoord: vec4<f32> = vec4<f32>(input.vertexVC.xy, -1, 1);
  353. var V: vec4<f32> = normalize(mapperUBO.FSQMatrix * tcoord); // vec2<f32>((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2);
  354. // textureSampleLevel gets rid of some ugly artifacts
  355. var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0.0);
  356. var computedColor: vec4<f32> = vec4<f32>(background.rgb, 1);
  357. //VTK::RenderEncoder::Impl
  358. return output;
  359. }
  360. `,La=new Float64Array(16),Jc=new Float64Array(16);function vC(t){return t.getPositional()?t.getConeAngle()>=90?0:2:1}function yC(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=[];Cn(i,a,.5*(n[0]+n[1])),zr(s,r,i),vi(i,s,e.stabilizedCenter),Qu(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;a<r.length;++a)r[a].getSwitch()>0&&n++;return n||(hC("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<n.length;s++)a+=n[s].getMTime();if(a!==e.lightTimeString){const s=new Float32Array(n.length*4),i=new Float32Array(n.length*4),o=new Float32Array(n.length*4),u=new Float32Array(n.length*4);for(let f=0;f<n.length;f++){const l=f*4,g=n[f].getPosition();_e(g,g,r.wcvc),s[l]=g[0],s[l+1]=g[1],s[l+2]=g[2],s[l+3]=0,i[l]=-n[f].getDirection()[0],i[l+1]=-n[f].getDirection()[1],i[l+2]=-n[f].getDirection()[2],i[l+3]=0,o[l]=n[f].getColor()[0],o[l+1]=n[f].getColor()[1],o[l+2]=n[f].getColor()[2],o[l+3]=n[f].getIntensity()*5,u[l]=vC(n[f]),u[l+1]=Math.cos(Ge(n[f].getConeAngle())),u[l+2]=Math.cos(Ge(n[f].getConeAngle()+n[f].getConeFalloff())),u[l+3]=0}e.SSBO.clearData(),e.SSBO.setNumberOfInstances(n.length),e.SSBO.addEntry("LightPos","vec4<f32>"),e.SSBO.addEntry("LightDir","vec4<f32>"),e.SSBO.addEntry("LightColor","vec4<f32>"),e.SSBO.addEntry("LightData","vec4<f32>"),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=Or.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Qc);const i=Zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4<f32>"),i.addEntry("BackgroundColor","vec4<f32>"),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(dC);const i=Zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4<f32>"),i.addEntry("BackgroundColor","vec4<f32>"),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=Or.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Qc);const i=Zn.newInstance({label:"mapperUBO"});i.addEntry("FSQMatrix","mat4x4<f32>"),i.addEntry("BackgroundColor","vec4<f32>"),e.clearFSQ.setUBO(i)}const r=e.webgpuCamera.getKeyMatrices(t),a=e.renderable.getBackgroundByReference();e.clearFSQ.getUBO().setArray("BackgroundColor",a),Le(Jc,r.normalMatrix),hi(La,r.scvc,r.pcsc),hi(La,Jc,La),e.clearFSQ.getUBO().setArray("FSQMatrix",La),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;r<e.children.length;r++)if((e.children[r].getPropID?e.children[r].getPropID():-1)===n)return e.children[r];return null},t.getStabilizedTime=()=>e.stabilizedTime.getMTime(),t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources()}}const TC={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function xC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,TC,n),Ne.extend(t,e,n),e.UBO=Zn.newInstance({label:"rendererUBO"}),e.UBO.addEntry("WCVCMatrix","mat4x4<f32>"),e.UBO.addEntry("SCPCMatrix","mat4x4<f32>"),e.UBO.addEntry("PCSCMatrix","mat4x4<f32>"),e.UBO.addEntry("SCVCMatrix","mat4x4<f32>"),e.UBO.addEntry("VCPCMatrix","mat4x4<f32>"),e.UBO.addEntry("WCVCNormals","mat4x4<f32>"),e.UBO.addEntry("viewportSize","vec2<f32>"),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=Li.newInstance({label:"rendererLightSSBO"}),e.lightTimeString="",e.bindGroup=Cg.newInstance({label:"rendererBG"}),e.bindGroup.setBindables([e.UBO,e.SSBO]),e.tmpMat4=he(new Float64Array(16)),e.stabilizedTime={},Ze(e.stabilizedTime,{mtime:0}),ht(t,e,["bindGroup","stabilizedTime"]),Vr(t,e,["stabilizedCenter"]),Ke(t,e,["renderEncoder","selector","suppressClear","UBO"]),yC(t,e)}const SC=me(xC,"vtkWebGPURenderer");pn("vtkRenderer",SC);const{CoordinateSystem:Zc}=ca;function CC(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()===Zc.WORLD&&(e.bufferShift[0]-=a[0],e.bufferShift[1]-=a[1],e.bufferShift[2]-=a[2]),Le(e.keyMatrices.bcwc,r),e.renderable.getIsIdentity()?he(e.keyMatrices.normalMatrix):(at(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,Tt(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Le(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),ze(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===Zc.WORLD?ze(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-a[0],-a[1],-a[2]]):at(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const wC={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function _C(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wC,n),Ne.extend(t,e,n),e.keyMatricesTime={},_.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},_.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],CC(t,e)}const EC=_.newInstance(_C);pn("vtkActor",EC);const{CoordinateSystem:eu}=ca;function RC(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()===eu.WORLD&&(e.bufferShift[0]-=r[0],e.bufferShift[1]-=r[1],e.bufferShift[2]-=r[2]),he(e.keyMatrices.bcwc),he(e.keyMatrices.normalMatrix),ze(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===eu.WORLD?ze(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):at(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const OC={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function DC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OC,n),Ne.extend(t,e,n),e.keyMatricesTime={},_.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},_.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],RC(t,e)}const mC=_.newInstance(DC);pn("vtkActor2D",mC);function MC(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 VC={};function LC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VC,n),Ne.extend(t,e,n),e.CubeAxesActorHelper=Jl.newCubeAxesActorHelper(),MC(t,e)}const BC=me(LC,"vtkWebGPUCubeAxesActor");pn("vtkCubeAxesActor",BC);const{DisplayLocation:Bi}=hg;function kC(t,e){e.classHierarchy.push("vtkProperty2D"),t.setDisplayLocationToBackground=()=>t.setDisplayLocation(Bi.BACKGROUND),t.setDisplayLocationToForeground=()=>t.setDisplayLocation(Bi.FOREGROUND),t.setRepresentationToWireframe=()=>t.setRepresentation(gt.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(gt.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(gt.POINTS),t.getRepresentationAsString=()=>_.enumToString(gt,e.representation)}const FC={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:gt.SURFACE,displayLocation:Bi.FOREGROUND};function Fg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FC,n),_.obj(t,e),_.setGet(t,e,["opacity","lineWidth","pointSize","displayLocation","representation"]),_.setGetArray(t,e,["color"],3),kC(t,e)}const UC=_.newInstance(Fg,"vtkProperty2D");var bC={newInstance:UC,extend:Fg,...hg};const{BufferUsage:Xe,PrimitiveTypes:ct}=Ln,{Representation:Ba}=Br,{ScalarMode:ka}=Wt,{CoordinateSystem:NC}=ca,{DisplayLocation:GC}=bC,$C=`
  361. //VTK::Renderer::Dec
  362. //VTK::Color::Dec
  363. //VTK::Normal::Dec
  364. //VTK::TCoord::Dec
  365. //VTK::Select::Dec
  366. //VTK::Mapper::Dec
  367. //VTK::IOStructs::Dec
  368. @vertex
  369. fn main(
  370. //VTK::IOStructs::Input
  371. )
  372. //VTK::IOStructs::Output
  373. {
  374. var output : vertexOutput;
  375. var vertex: vec4<f32> = vertexBC;
  376. //VTK::Color::Impl
  377. //VTK::Normal::Impl
  378. //VTK::TCoord::Impl
  379. //VTK::Select::Impl
  380. //VTK::Position::Impl
  381. return output;
  382. }
  383. `,WC=`
  384. struct PBRData {
  385. diffuse: vec3<f32>,
  386. specular: vec3<f32>,
  387. }
  388. // Dot product with the max already in it
  389. fn mdot(a: vec3<f32>, b: vec3<f32>) -> f32 {
  390. return max(0.0, dot(a, b));
  391. }
  392. // Dot product with a max in it that does not allow for negative values
  393. // Physically based rendering is accurate as long as normals are accurate,
  394. // however this is pretty often not the case. In order to prevent negative
  395. // values from ruining light calculations and creating zones of zero light,
  396. // this remapping is used, which smoothly clamps the dot product between
  397. // zero and one while still maintaining a good amount of accuracy.
  398. fn cdot(a: vec3<f32>, b: vec3<f32>) -> f32 {
  399. var d: f32 = max(0.0, dot(a, b));
  400. d = pow((d + 1.0) / 2.0, 2.6);
  401. return d;
  402. }
  403. // Lambertian diffuse model
  404. fn lambertDiffuse(base: vec3<f32>, N: vec3<f32>, L: vec3<f32>) -> vec3<f32> {
  405. var pi: f32 = 3.14159265359;
  406. var NdotL: f32 = mdot(N, L);
  407. NdotL = pow(NdotL, 1.5);
  408. return (base/pi)*NdotL;
  409. }
  410. // Yasuhiro Fujii improvement on the Oren-Nayar model
  411. // https://mimosa-pudica.net/improved-oren-nayar.html
  412. // p is surface color, o is roughness
  413. fn fujiiOrenNayar(p: vec3<f32>, o: f32, N: vec3<f32>, L: vec3<f32>, V: vec3<f32>) -> vec3<f32> {
  414. var invpi: f32 = 0.31830988618; // 1/pi
  415. var o2 = o*o;
  416. var NdotL: f32 = mdot(N, L);
  417. NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better
  418. var NdotV: f32 = mdot(N, V);
  419. var LdotV: f32 = mdot(L, V);
  420. var s: f32 = LdotV - NdotL*NdotV;
  421. var t: f32 = mix(1.0, max(NdotL, NdotV), step(0.0, s)); // Mix with step is the equivalent of an if statement
  422. var A: vec3<f32> = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13));
  423. A = invpi*(1 - A);
  424. var B: f32 = 0.45*(o2 / (o2 + 0.09));
  425. B = invpi*B;
  426. return p*NdotL*(A + B*(s/t));
  427. }
  428. // Fresnel portion of BRDF (IOR only, simplified)
  429. fn schlickFresnelIOR(V: vec3<f32>, N: vec3<f32>, ior: f32, k: f32) -> f32 {
  430. var NdotV: f32 = mdot(V, N);
  431. 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
  432. return F0 + (1.0 - F0) * pow((1.0-NdotV), 5.0);
  433. }
  434. // Fresnel portion of BRDF (Color ior, better)
  435. fn schlickFresnelRGB(V: vec3<f32>, N: vec3<f32>, F0: vec3<f32>) -> vec3<f32> {
  436. var NdotV: f32 = mdot(V, N);
  437. return F0 + (1.0 - F0) * pow((1-NdotV), 5.0);
  438. }
  439. // Normal portion of BRDF
  440. // https://learnopengl.com/PBR/Theory
  441. // Trowbridge-Reitz GGX functions: normal, halfway, roughness^2
  442. fn trGGX(N: vec3<f32>, H: vec3<f32>, a: f32) -> f32 {
  443. var pi: f32 = 3.14159265359;
  444. var a2: f32 = a*a;
  445. var NdotH = mdot(N, H);
  446. var NdotH2 = NdotH*NdotH;
  447. var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0;
  448. return a2 / max((pi*denom*denom), 0.000001);
  449. }
  450. // A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent
  451. fn anisotrophicTrGGX(N: vec3<f32>, H: vec3<f32>, O: vec3<f32>, s: f32, a: f32) -> f32 {
  452. var Op: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(O) * s, 0.)).xyz;
  453. var ggx1: f32 = trGGX(N + Op*s, H, a);
  454. var ggx2: f32 = trGGX(N - Op*s, H, a);
  455. return (0.5 * ggx1 + 0.5 * ggx2);
  456. }
  457. // Geometry portion of BRDF
  458. fn schlickGGX(N: vec3<f32>, X: vec3<f32>, k: f32) -> f32 {
  459. var NdotX = cdot(N, X);
  460. return NdotX / max(0.000001, (NdotX*(1.0-k) + k));
  461. }
  462. fn smithSurfaceRoughness(N: vec3<f32>, V: vec3<f32>, L: vec3<f32>, k: f32) -> f32 {
  463. var ggx1: f32 = min(1.0, schlickGGX(N, V, k));
  464. var ggx2: f32 = min(1.0, schlickGGX(N, L, k));
  465. return ggx1*ggx2;
  466. }
  467. // BRDF Combination
  468. fn cookTorrance(D: f32, F: f32, G: f32, N: vec3<f32>, V: vec3<f32>, L: vec3<f32>) -> f32 {
  469. var num: f32 = D*F*G;
  470. var denom: f32 = 4*cdot(V, N)*cdot(L, N);
  471. return num / max(denom, 0.000001);
  472. }
  473. // Different lighting calculations for different light sources
  474. fn calcDirectionalLight(N: vec3<f32>, V: vec3<f32>, ior: f32, roughness: f32, metallic: f32, direction: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {
  475. var L: vec3<f32> = normalize(direction); // Light Vector
  476. var H: vec3<f32> = normalize(L + V); // Halfway Vector
  477. var alpha = roughness*roughness;
  478. var k: f32 = alpha*alpha / 2;
  479. var D: f32 = trGGX(N, H, alpha); // Distribution
  480. // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
  481. var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
  482. var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Fresnel term is replaced with 1 because it is added later
  483. var incoming: vec3<f32> = color;
  484. var angle: f32 = mdot(L, N);
  485. angle = pow(angle, 1.5);
  486. var specular: vec3<f32> = brdf*incoming*angle;
  487. // 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
  488. // control property for the diffuse vs specular roughness
  489. var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
  490. // Stores the specular and diffuse separately to allow for finer post processing
  491. var out = PBRData(diffuse, specular);
  492. return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
  493. }
  494. // TODO: find some way to reduce the number of arguments going in here
  495. fn calcPointLight(N: vec3<f32>, V: vec3<f32>, fragPos: vec3<f32>, ior: f32, roughness: f32, metallic: f32, position: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {
  496. var L: vec3<f32> = normalize(position - fragPos); // Light Vector
  497. var H: vec3<f32> = normalize(L + V); // Halfway Vector
  498. var dist = distance(position, fragPos);
  499. var alpha = roughness*roughness;
  500. var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8
  501. var D: f32 = trGGX(N, H, alpha); // Distribution
  502. // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
  503. var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
  504. var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);
  505. var incoming: vec3<f32> = color * (1.0 / (dist*dist));
  506. var angle: f32 = mdot(L, N);
  507. angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources
  508. var specular: vec3<f32> = brdf*incoming*angle;
  509. var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
  510. // Stores the specular and diffuse separately to allow for finer post processing
  511. // Could also be done (propably more properly) with a struct
  512. var out = PBRData(diffuse, specular);
  513. return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
  514. }
  515. // For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights
  516. fn calcSpotLight(N: vec3<f32>, V: vec3<f32>, fragPos: vec3<f32>, ior: f32, roughness: f32, metallic: f32, position: vec3<f32>, direction: vec3<f32>, cones: vec2<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {
  517. var L: vec3<f32> = normalize(position - fragPos);
  518. var H: vec3<f32> = normalize(L + V); // Halfway Vector
  519. var dist = distance(position, fragPos);
  520. var alpha = roughness*roughness;
  521. var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8
  522. var D: f32 = trGGX(N, H, alpha); // Distribution
  523. // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
  524. var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
  525. var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);
  526. // Cones.x is the inner phi and cones.y is the outer phi
  527. var theta: f32 = mdot(normalize(direction), L);
  528. var epsilon: f32 = cones.x - cones.y;
  529. var intensity: f32 = (theta - cones.y) / epsilon;
  530. intensity = clamp(intensity, 0.0, 1.0);
  531. intensity /= dist*dist;
  532. var incoming: vec3<f32> = color * intensity;
  533. var angle: f32 = mdot(L, N);
  534. angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources
  535. var specular: vec3<f32> = brdf*incoming*angle;
  536. var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
  537. // Stores the specular and diffuse separately to allow for finer post processing
  538. // Could also be done (propably more properly) with a struct
  539. var out = PBRData(diffuse, specular);
  540. return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
  541. }
  542. // Environment mapping stuff
  543. // Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point
  544. fn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {
  545. var tau: f32 = 6.28318530718;
  546. var pi: f32 = 3.14159265359;
  547. var out: vec2<f32> = vec2<f32>(0.0);
  548. out.x = atan2(dir.z, dir.x) / tau;
  549. out.x += 0.5;
  550. var phix: f32 = length(vec2(dir.x, dir.z));
  551. out.y = atan2(dir.y, phix) / pi + 0.5;
  552. return out;
  553. }
  554. //VTK::Renderer::Dec
  555. //VTK::Color::Dec
  556. //VTK::TCoord::Dec
  557. // optional surface normal declaration
  558. //VTK::Normal::Dec
  559. //VTK::Select::Dec
  560. //VTK::RenderEncoder::Dec
  561. //VTK::Mapper::Dec
  562. //VTK::IOStructs::Dec
  563. @fragment
  564. fn main(
  565. //VTK::IOStructs::Input
  566. )
  567. //VTK::IOStructs::Output
  568. {
  569. var output : fragmentOutput;
  570. // Temporary ambient, diffuse, and opacity
  571. var ambientColor: vec4<f32> = mapperUBO.AmbientColor;
  572. var diffuseColor: vec4<f32> = mapperUBO.DiffuseColor;
  573. var opacity: f32 = mapperUBO.Opacity;
  574. // This should be declared somewhere else
  575. var _diffuseMap: vec4<f32> = vec4<f32>(1.0);
  576. var _roughnessMap: vec4<f32> = vec4<f32>(1.0);
  577. var _metallicMap: vec4<f32> = vec4<f32>(1.0);
  578. var _normalMap: vec4<f32> = vec4<f32>(0.0, 0.0, 1.0, 0.0); // normal map was setting off the normal vector detection in fragment
  579. var _ambientOcclusionMap: vec4<f32> = vec4<f32>(1.);
  580. var _emissionMap: vec4<f32> = vec4<f32>(0.);
  581. //VTK::Color::Impl
  582. //VTK::TCoord::Impl
  583. //VTK::Normal::Impl
  584. var computedColor: vec4<f32> = vec4<f32>(diffuseColor.rgb, 1.0);
  585. //VTK::Light::Impl
  586. //VTK::Select::Impl
  587. if (computedColor.a == 0.0) { discard; };
  588. //VTK::Position::Impl
  589. //VTK::RenderEncoder::Impl
  590. return output;
  591. }
  592. `;function tu(t){return t.indexOf("edge")>=0}function zC(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!==NC.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()===GC.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===ct.Verts?!1:e.primitiveType===ct.Triangles||e.primitiveType===ct.TriangleStrips?r===Ba.WIREFRAME:!0},t.replaceShaderPosition=(n,r,a)=>{const s=r.getShaderDescription("vertex");s.addBuiltinOutput("vec4<f32>","@builtin(position) Position"),s.hasOutput("vertexVC")||s.addOutput("vec4<f32>","vertexVC");let i=s.getCode();e.useRendererMatrix?(i=oe.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4<f32> = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4<f32>(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,e.forceZValue&&(i=oe.substitute(i,"//VTK::Position::Impl",["pCoord = vec4<f32>(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(i=oe.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4<f32> = 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=oe.substitute(i,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),t.haveWideLines()&&(s.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i=oe.substitute(i,"//VTK::Position::Impl",[" var tmpPos: vec4<f32> = 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<f32> = 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<f32>(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),i=oe.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<f32>","normalVC",s.getArrayInformation()[0].interpolation),o.hasOutput("tangentVC")||o.addOutput("vec3<f32>","tangentVC",s.getArrayInformation()[0].interpolation),o.hasOutput("bitangentVC")||o.addOutput("vec3<f32>","bitangentVC",s.getArrayInformation()[0].interpolation);let u=o.getCode();u=oe.substitute(u,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3<f32> = cross(output.normalVC, vec3<f32>(0, 0, 1));"," var c2: vec3<f32> = cross(output.normalVC, vec3<f32>(0, 1, 0));"," var tangent: vec3<f32> = 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=oe.substitute(u,"//VTK::Normal::Impl",[" var normal: vec3<f32> = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3<f32> = input.tangentVC;"," var bitangent: vec3<f32> = input.bitangentVC;"," var TCVCMatrix: mat3x3<f32> = mat3x3<f32>("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3<f32> = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:u=oe.substitute(u,"//VTK::Normal::Impl",[" var normal: vec3<f32> = 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<f32>","vertexVC");const i=e.WebGPURenderer.getRenderable(),o=r.getShaderDescription("fragment");let u=o.getCode();if(u.includes("var normal:")&&e.useRendererMatrix&&!tu(n)&&!e.is2D&&!n.includes("sel")){const f=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3<f32> = vec3<f32>(input.vertexVC.xyz);"," var V: vec3<f32> = mix(normalize(-fragPos), vec3<f32>(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3<f32> = _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<f32> = vec3<f32>(0.);"," var specular: vec3<f32> = vec3<f32>(0.);"," var emission: vec3<f32> = _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<f32> = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3<f32> = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3<f32> = 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<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3<f32> = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3<f32> = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2<f32> = vec2<f32>(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<f32>(0), calculated.diffuse);"," specular += max(vec3<f32>(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<f32> = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3<f32> = mix(vec3<f32>(fresnel), fresnelMetallic, metallic);"," kS = min(vec3<f32>(1.0), kS);"," var kD: vec3<f32> = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3<f32> = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4<f32>(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<f32> = (transpose(rendererUBO.WCVCNormals) * vec4<f32>(normal, 1.)).xyz;"," var diffuseCoords: vec2<f32> = 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<f32> = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4<f32>(VreflN, 1.)).xyz;"," var specularCoords: vec2<f32> = 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<f32> = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4<f32>(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3<f32> = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4<f32>(diffuseIBLContribution*kD, 0);"),u=oe.substitute(u,"//VTK::Light::Impl",f).result,o.setCode(u)}else u=oe.substitute(u,"//VTK::Light::Impl",[" var diffuse: vec3<f32> = diffuseColor.rgb;"," var specular: vec3<f32> = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4<f32>(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,o.setCode(u)},e.shaderReplacements.set("replaceShaderLight",t.replaceShaderLight),t.replaceShaderColor=(n,r,a)=>{if(tu(n)){const c=r.getShaderDescription("fragment");let f=c.getCode();f=oe.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<f32>","color",s.getArrayInformation()[0].interpolation);let o=i.getCode();o=oe.substitute(o,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,i.setCode(o);const u=r.getShaderDescription("fragment");o=u.getCode(),o=oe.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,y,h,d,x,C,T,v,w,S,O,R,B,m,V,L,k,N,I,P;if(!a.hasAttribute("tcoord"))return;const s=r.getShaderDescription("vertex"),i=a.getBuffer("tcoord"),o=Qe.getNumberOfComponentsFromBufferFormat(i.getArrayInformation()[0].format);let u=s.getCode();s.addOutput(`vec${o}<f32>`,"tcoordVS"),u=oe.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=ee=>ee?ee.getDimensionality()===o:!1,g=[];((h=(y=(p=f.getProperty()).getDiffuseTexture)==null?void 0:y.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=(T=(C=f.getProperty()).getRoughnessTexture)==null?void 0:T.call(C))!=null&&v.getImageLoaded()&&l(f.getProperty().getRoughnessTexture())&&g.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),(O=(S=(w=f.getProperty()).getMetallicTexture)==null?void 0:S.call(w))!=null&&O.getImageLoaded()&&l(f.getProperty().getMetallicTexture())&&g.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),(m=(B=(R=f.getProperty()).getNormalTexture)==null?void 0:B.call(R))!=null&&m.getImageLoaded()&&l(f.getProperty().getNormalTexture())&&g.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),(k=(L=(V=f.getProperty()).getAmbientOcclusionTexture)==null?void 0:L.call(V))!=null&&k.getImageLoaded()&&l(f.getProperty().getAmbientOcclusionTexture())&&g.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),(P=(I=(N=f.getProperty()).getEmissionTexture)==null?void 0:I.call(N))!=null&&P.getImageLoaded()&&l(f.getProperty().getEmissionTexture())&&g.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),u=oe.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=oe.substitute(i,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,s.setCode(i)}},e.shaderReplacements.set("replaceShaderSelect",t.replaceShaderSelect),t.getUsage=(n,r)=>n===Ba.POINTS||r===ct.Points?Xe.Verts:r===ct.Lines?Xe.Lines:n===Ba.WIREFRAME?r===ct.Triangles?Xe.LinesFromTriangles:Xe.LinesFromStrips:r===ct.Triangles?Xe.Triangles:r===ct.TriangleStrips?Xe.Strips:r===ct.TriangleEdges?Xe.LinesFromTriangles:Xe.LinesFromStrips,t.getHashFromUsage=n=>`pt${n}`,t.getTopologyFromUsage=n=>{switch(n){case Xe.Triangles:return"triangle-list";case Xe.Verts:return"point-list";case Xe.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===ct.TriangleEdges&&(u=!0,i=Ba.WIREFRAME);const c=e.vertexInput,f=n.getPoints();let l;if(r){const x={hash:`R${i}P${a}${r.getMTime()}`,usage:Xe.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:Xe.PointArray,format:"float32x4",dataArray:f,indexBuffer:l,shift:x,packExtra:!0},T=o.getBufferManager().getBuffer(C);c.addBuffer(T,["vertexBC"])}else c.removeBufferIfPresent("vertexBC");const g=t.getUsage(i,a);if(e._usesCellNormals=!1,!e.is2D&&(g===Xe.Triangles||g===Xe.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=Xe.PointArray;const T=o.getBufferManager().getBuffer(C);c.addBuffer(T,["normalMC"])}else if(a===ct.Triangles){e._usesCellNormals=!0,C.hash=`PFN${f.getMTime()}I${l.getMTime()}snorm8x4`,C.dataArray=f,C.cells=r,C.usage=Xe.NormalsFromPoints;const T=o.getBufferManager().getBuffer(C);c.addBuffer(T,["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 T=!1;(C===ka.USE_CELL_DATA||C===ka.USE_CELL_FIELD_DATA||C===ka.USE_FIELD_DATA||!n.getPointData().getScalars())&&C!==ka.USE_POINT_FIELD_DATA&&x&&(T=!0);const v={usage:Xe.PointArray,format:"unorm8x4",hash:`${T}${x.getMTime()}I${l.getMTime()}unorm8x4`,dataArray:x,indexBuffer:l,cellData:T,cellOffset:0},w=o.getBufferManager().getBuffer(v);c.addBuffer(w,["colorVI"]),p=!0}}p||c.removeBufferIfPresent("colorVI");let y=null;if((d=(h=e.renderable).getInterpolateScalarsBeforeMapping)!=null&&d.call(h)&&e.renderable.getColorCoordinates()?y=e.renderable.getColorCoordinates():y=n.getPointData().getTCoords(),y&&!u){const x=o.getBufferManager().getBufferForPointArray(y,c.getIndexBuffer());c.addBuffer(x,["tcoord"])}else c.removeBufferIfPresent("tcoord")},t.updateTextures=()=>{var u,c,f,l,g,p,y,h,d,x,C,T,v,w,S;const n=[],r=[],a=(c=(u=e.renderable).getColorTextureMap)==null?void 0:c.call(u);a&&(e.colorTexture||(e.colorTexture=Rs.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 O=["Diffuse",s.getProperty().getDiffuseTexture()];o.push(O)}if(s.getTextures()[0]){const O=["Diffuse",s.getTextures()[0]];o.push(O)}if(e.colorTexture){const O=["Diffuse",e.colorTexture];o.push(O)}if((p=(g=s.getProperty()).getRoughnessTexture)!=null&&p.call(g)){const O=["Roughness",s.getProperty().getRoughnessTexture()];o.push(O)}if((h=(y=s.getProperty()).getMetallicTexture)!=null&&h.call(y)){const O=["Metallic",s.getProperty().getMetallicTexture()];o.push(O)}if((x=(d=s.getProperty()).getNormalTexture)!=null&&x.call(d)){const O=["Normal",s.getProperty().getNormalTexture()];o.push(O)}if((T=(C=s.getProperty()).getAmbientOcclusionTexture)!=null&&T.call(C)){const O=["AmbientOcclusion",s.getProperty().getAmbientOcclusionTexture()];o.push(O)}if((w=(v=s.getProperty()).getEmissionTexture)!=null&&w.call(v)){const O=["Emission",s.getProperty().getEmissionTexture()];o.push(O)}if((S=i.getEnvironmentTexture)!=null&&S.call(i)){const O=["Environment",i.getEnvironmentTexture()];o.push(O)}for(let O=0;O<o.length;O++)(o[O][1].getInputData()||o[O][1].getJsImageData()||o[O][1].getCanvas())&&r.push(o[O]),o[O][1].getImage()&&o[O][1].getImageLoaded()&&r.push(o[O]);for(let O=0;O<r.length;O++){const R=r[O][1],B=r[O][0],m=e.device.getTextureManager().getTextureForVTKTexture(R);if(m.getReady()){let V=!1;for(let L=0;L<e.textures.length;L++)e.textures[L]===m&&(V=!0,n[L]=!0);if(!V){n[e.textures.length]=!0;const L=m.createView(`${B}Texture`);e.textures.push(m),e.textureViews.push(L);const k=R.getInterpolate()?"linear":"nearest";let N=null;!N&&R.getEdgeClamp()&&R.getRepeat()&&(N="mirror-repeat"),!N&&R.getEdgeClamp()&&(N="clamp-to-edge"),!N&&R.getRepeat()&&(N="repeat"),B!=="Environment"?L.addSampler(e.device,{addressModeU:N,addressModeV:N,addressModeW:N,minFilter:k,magFilter:k}):L.addSampler(e.device,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:k,magFilter:k,mipmapFilter:"linear"})}}}for(let O=e.textures.length-1;O>=0;O--)n[O]||(e.textures.splice(O,1),e.textureViews.splice(O,1))},t.computePipelineHash=()=>{let n=`pd${e.useRendererMatrix?"r":""}${e.forceZValue?"z":""}`;if(e.primitiveType===ct.TriangleEdges||e.primitiveType===ct.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=Qe.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!==ct.TriangleEdges&&e.primitiveType!==ct.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 AC={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function Ug(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AC,n),Oo.extend(t,e,n),e.fragmentShaderTemplate=WC,e.vertexShaderTemplate=$C,e._tmpMat3=tr(new Float64Array(9)),e._tmpMat4=he(new Float64Array(16)),e.UBO=Zn.newInstance({label:"mapperUBO"}),e.UBO.addEntry("BCWCMatrix","mat4x4<f32>"),e.UBO.addEntry("BCSCMatrix","mat4x4<f32>"),e.UBO.addEntry("MCWCNormals","mat4x4<f32>"),e.UBO.addEntry("AmbientColor","vec4<f32>"),e.UBO.addEntry("DiffuseColor","vec4<f32>"),e.UBO.addEntry("EdgeColor","vec4<f32>"),e.UBO.addEntry("SpecularColor","vec4<f32>"),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"),Ke(t,e,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),e.textures=[],zC(t,e)}const HC=me(Ug,"vtkWebGPUCellArrayMapper");var bg={newInstance:HC,extend:Ug};const{PrimitiveTypes:Fa}=Ln;function jC(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper"),t.createCellArrayMapper=()=>bg.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=Fa.Points;i<=Fa.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=Fa.TriangleEdges;i<=Fa.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 KC={primitives:null};function PC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KC,n),Ne.extend(t,e,n),e.primitives=[],jC(t,e)}const XC=me(PC,"vtkWebGPUPolyDataMapper");pn("vtkMapper",XC);const{PrimitiveTypes:nu}=Ln;function IC(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),t.createCellArrayMapper=()=>bg.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=nu.Points;i<=nu.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 YC(t){return{primitives:[],...t}}function qC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YC(n)),Ne.extend(t,e,n),e.primitives=[],IC(t,e)}const QC=me(qC,"vtkWebGPUPolyDataMapper2D");pn("vtkMapper2D",QC);function JC(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 ZC={};function ew(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZC,n),Ne.extend(t,e,n),e.scalarBarActorHelper=Ro.newScalarBarActorHelper(),JC(t,e)}const tw=me(ew,"vtkWebGPUScalarBarActor");pn("vtkScalarBarActor",tw);function nw(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 rw={device:null,handle:null,label:null,options:null};function Ng(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rw,n),_.obj(t,e),e.options={},e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},e.bindGroupTime={},_.obj(e.bindGroupTime,{mtime:0}),_.get(t,e,["bindGroupTime","handle","options"]),_.setGet(t,e,["bindGroupLayoutEntry","device","label"]),nw(t,e)}const aw=_.newInstance(Ng);var Do={newInstance:aw,extend:Ng};function sw(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=Qe.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=Qe.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=Do.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 iw={texture:null,handle:null,sampler:null,label:null};function Gg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iw,n),_.obj(t,e),e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},e.bindGroupTime={},_.obj(e.bindGroupTime,{mtime:0}),_.get(t,e,["bindGroupTime","texture"]),_.setGet(t,e,["bindGroupLayoutEntry","label","sampler"]),sw(t,e)}const ow=_.newInstance(Gg);var $g={newInstance:ow,extend:Gg};const{BufferUsage:ru}=Ln;function cw(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=Qe.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,y=l/p.BYTES_PER_ELEMENT,h=a.elementSize,d=256*Math.floor((y*h+255)/256),x=d/h,C=_.newTypedArray(g?"Uint16Array":p.constructor.name,x*c*f);for(let T=0;T<c*f;T++)if(g)for(let v=0;v<y;v++)C[T*x+v]=Gt.toHalf(p[T*y+v]);else C.set(p.subarray(T*y,(T+1)*y),T*x);return[C,d]}return[u,l]};if(n.nativeArray&&(r=n.nativeArray),n.image){const u=document.createElement("canvas");u.width=n.image.width,u.height=n.image.height;const c=u.getContext("2d");c.translate(0,u.height),c.scale(1,-1),c.drawImage(n.image,0,0,n.image.width,n.image.height,0,0,u.width,u.height),r=c.getImageData(0,0,n.image.width,n.image.height).data}const o=e.device.createCommandEncoder();if(t.getDimensionality()!==3){const u=Rs.generateMipmaps(r,e.width,e.height,e.mipLevel);let c=e.width,f=e.height;for(let l=0;l<=e.mipLevel;l++){const g=i(u[l],f,1);s=g[1];const p={dataArray:n.dataArray?n.dataArray:null,nativeArray:g[0],usage:ru.Texture},y=e.device.getBufferManager().getBuffer(p);o.copyBufferToTexture({buffer:y.getHandle(),offset:0,bytesPerRow:s,rowsPerImage:f},{texture:e.handle,mipLevel:l},[c,f,1]),c/=2,f/=2}e.device.submitCommandEncoder(o),e.ready=!0}else{const u=i(r,e.height,e.depth);s=u[1];const c={dataArray:n.dataArray?n.dataArray:null,usage:ru.Texture};c.nativeArray=u[0];const f=e.device.getBufferManager().getBuffer(c);o.copyBufferToTexture({buffer:f.getHandle(),offset:0,bytesPerRow:s,rowsPerImage:e.height},{texture:e.handle},[e.width,e.height,e.depth]),e.device.submitCommandEncoder(o),e.ready=!0}},t.getScale=()=>{const n=Qe.getDetailsFromTextureFormat(e.format);return n.elementSize===2&&n.sampleType==="float"?1:255},t.getNumberOfComponents=()=>Qe.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=$g.newInstance({label:n});return a.create(t,r),a}}const uw={device:null,handle:null,buffer:null,ready:!1,label:null};function Wg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uw,n),_.obj(t,e),_.get(t,e,["handle","ready","width","height","depth","format","usage"]),_.setGet(t,e,["device","label"]),cw(t,e)}const fw=_.newInstance(Wg);var tn={newInstance:fw,extend:Wg};function lw(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 gw={};function pw(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gw,n),Ne.extend(t,e,n),lw(t,e)}const hw=_.newInstance(pw,"vtkWebGPUPixelSpaceCallbackMapper");pn("vtkPixelSpaceCallbackMapper",hw);const{vtkDebugMacro:Ua}=_;function dw(t,e){e.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),s=he(new Float64Array(16)),i=he(new Float64Array(16)),o=new Float64Array(3),u=new Float64Array(3),c=new Float64Array(3),f=he(new Float64Array(16)),l=he(new Float64Array(16)),g=new Float64Array(3),p=new Float64Array(3);function y(){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,Ua("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,Ua("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,y()},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,T=new Float64Array([C[0],C[1],C[2],0]);he(f);const v=new Float64Array([x[0]-d[0],x[1]-d[1],x[2]-d[2]]);qt(f,f,Ge(h),v),va(T,T,f),e.viewUp[0]=T[0],e.viewUp[1]=T[1],e.viewUp[2]=T[2],t.modified()},t.azimuth=h=>{const d=e.focalPoint;he(l),ze(l,l,d),qt(l,l,Ge(h),e.viewUp),ze(l,l,[-d[0],-d[1],-d[2]]),_e(g,e.position,l),t.setPosition(g[0],g[1],g[2])},t.yaw=h=>{const d=e.position;he(l),ze(l,l,d),qt(l,l,Ge(h),e.viewUp),ze(l,l,[-d[0],-d[1],-d[2]]),_e(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]];he(l),ze(l,l,d),qt(l,l,Ge(h),C),ze(l,l,[-d[0],-d[1],-d[2]]),_e(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]];he(l),ze(l,l,d),qt(l,l,Ge(h),C),ze(l,l,[-d[0],-d[1],-d[2]]),_e(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];Ci(e.position,C,e.position),Ci(e.focalPoint,C,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=h=>{const d=[...e.viewUp,1],x=[],C=[],T=[];d[0]+=e.position[0],d[1]+=e.position[1],d[2]+=e.position[2],va(x,[...e.position,1],h),va(C,[...e.focalPoint,1],h),va(T,d,h),T[0]-=x[0],T[1]-=x[1],T[2]-=x[2],t.setPosition(...x.slice(0,3)),t.setFocalPoint(...C.slice(0,3)),t.setViewUp(...T.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=h=>{let d=h;d<1e-20&&(d=1e-20,Ua("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,Ua("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=>(at(h,e.cameraLightTransform),h),t.computeCameraLightTransform=()=>{at(s,t.getViewMatrix()),Tt(s,s),$u(i,[e.distance,e.distance,e.distance]),pt(s,s,i),he(e.cameraLightTransform),ze(e.cameraLightTransform,s,[0,0,-1])},t.deepCopy=h=>{},t.physicalOrientationToWorldDirection=h=>{const d=nc(h[0],h[1],h[2],h[3]),x=er(),C=nc(0,0,1,0);return vd(x,d),tc(C,d,C),tc(C,C,x),[C[0],C[1],C[2]]},t.getPhysicalToWorldMatrix=h=>{t.getWorldToPhysicalMatrix(h),Tt(h,h)},t.getWorldToPhysicalMatrix=h=>{he(h);const d=[3];na(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],Le(h,h),ts(o,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),_r(h,h,o),ze(h,h,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=h=>{Tt(s,h),_e(o,n,s),t.computeDistance();const d=e.distance;t.setPosition(o[0],o[1],o[2]),_e(u,r,s),On(u,u,o),ea(u,u),t.setDirectionOfProjection(u[0],u[1],u[2]),_e(c,a,s),On(c,c,o),ea(c,c),t.setViewUp(c[0],c[1],c[2]),t.setDistance(d)},t.computeViewParametersFromPhysicalMatrix=h=>{t.getWorldToPhysicalMatrix(s),pt(s,h,s),t.computeViewParametersFromViewMatrix(s)},t.setViewMatrix=h=>{e.viewMatrix=h,e.viewMatrix&&(at(s,e.viewMatrix),t.computeViewParametersFromViewMatrix(s),Le(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=()=>{if(e.viewMatrix)return e.viewMatrix;Xu(s,e.position,e.focalPoint,e.viewUp),Le(s,s);const h=new Float64Array(16);return at(h,s),h},t.setProjectionMatrix=h=>{e.projectionMatrix=h},t.getProjectionMatrix=(h,d,x)=>{const C=new Float64Array(16);if(he(C),e.projectionMatrix){const w=1/e.physicalScale;return ts(o,w,w,w),at(C,e.projectionMatrix),_r(C,C,o),Le(C,C),C}he(s);const T=e.clippingRange[1]-e.clippingRange[0],v=[e.clippingRange[0]+(d+1)*T/2,e.clippingRange[0]+(x+1)*T/2];if(e.parallelProjection){const w=e.parallelScale*h,S=e.parallelScale,O=(e.windowCenter[0]-1)*w,R=(e.windowCenter[0]+1)*w,B=(e.windowCenter[1]-1)*S,m=(e.windowCenter[1]+1)*S;Pu(s,O,R,B,m,v[0],v[1]),Le(s,s)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const w=Math.tan(Ge(e.viewAngle)/2);let S,O;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*w,O=e.clippingRange[0]*w/h):(S=e.clippingRange[0]*w*h,O=e.clippingRange[0]*w);const R=(e.windowCenter[0]-1)*S,B=(e.windowCenter[0]+1)*S,m=(e.windowCenter[1]-1)*O,V=(e.windowCenter[1]+1)*O,L=v[0],k=v[1];s[0]=2*L/(B-R),s[5]=2*L/(V-m),s[2]=(R+B)/(B-R),s[6]=(m+V)/(V-m),s[10]=-(L+k)/(k-L),s[14]=-1,s[11]=-2*L*k/(k-L),s[15]=0}}return at(C,s),C},t.getCompositeProjectionMatrix=(h,d,x)=>{const C=t.getViewMatrix(),T=t.getProjectionMatrix(h,d,x);return pt(T,C,T),T},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,y()},t.setDeviceAngles=(h,d,x,C)=>{const T=[3];na(e.physicalViewNorth,e.physicalViewUp,T);const v=he(new Float64Array(16));qt(v,v,Ge(h),e.physicalViewUp),qt(v,v,Ge(d),T),qt(v,v,Ge(x),e.physicalViewNorth),qt(v,v,Ge(-C),e.physicalViewUp);const w=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);_e(w,w,v),_e(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 T=he(new Float64Array(16));if(h!==0&&(d!==0||x!==0||C!==0)){const S=Ge(h),O=er();Hi(O,[d,x,C],S),Ai(T,O)}const v=new Float64Array(3);_e(v,[0,0,-1],T);const w=new Float64Array(3);_e(w,[0,1,0],T),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],T=-d[1],v=-d[2],w=-(C*x[0]+T*x[1]+v*x[2]),S=[C*h[0]+T*h[2]+v*h[4]+w,1e-18];for(let O=0;O<2;O++)for(let R=0;R<2;R++)for(let B=0;B<2;B++){const m=C*h[B]+T*h[2+R]+v*h[4+O]+w;S[0]=m<S[0]?m:S[0],S[1]=m>S[1]?m:S[1]}return S}}const vw={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:zi(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function zg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vw,n),_.obj(t,e),_.get(t,e,["distance"]),_.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),_.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),_.setGetArray(t,e,["clippingRange","windowCenter"],2),_.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),dw(t,e)}const yw=_.newInstance(zg,"vtkCamera");var Tw={newInstance:yw,extend:zg};const xw=["HeadLight","CameraLight","SceneLight"];function Sw(t,e){e.classHierarchy.push("vtkLight");const n=new Float64Array(3);t.getTransformedPosition=()=>(e.transformMatrix?_e(n,e.position,e.transformMatrix):ts(n,e.position[0],e.position[1],e.position[2]),n),t.getTransformedFocalPoint=()=>(e.transformMatrix?_e(n,e.focalPoint,e.transformMatrix):ts(n,e.focalPoint[0],e.focalPoint[1],e.focalPoint[2]),n),t.getDirection=()=>(e.directionMTime<e.mtime&&(vi(e.direction,e.focalPoint,e.position),ra(e.direction),e.directionMTime=e.mtime),e.direction),t.setDirection=r=>{const a=new Float64Array(3);vi(a,e.position,r),e.focalPoint=a},t.setDirectionAngle=(r,a)=>{const s=Ge(r),i=Ge(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 Cw={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 Ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Cw,n),_.obj(t,e),_.setGet(t,e,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),_.setGetArray(t,e,["color","position","focalPoint","attenuationValues"],3),Sw(t,e)}const ww=_.newInstance(Ag,"vtkLight");var _w={newInstance:ww,extend:Ag,LIGHT_TYPES:xw};const{vtkErrorMacro:Ia}=_;function Ew(t){return()=>Ia(`vtkViewport::${t} - NOT IMPLEMENTED`)}function Rw(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<s.length;i++)n(s[i],a);return a}t.getViewPropsWithNestedProps=()=>{const r=[];for(let a=0;a<e.props.length;a++)n(e.props[a],r);return r},t.addActor2D=t.addViewProp,t.removeActor2D=r=>{t.removeViewProp(r)},t.getActors2D=()=>(e.actors2D=[],e.props.forEach(r=>{e.actors2D=e.actors2D.concat(r.getActors2D())}),e.actors2D),t.displayToView=()=>Ia("call displayToView on your view instead"),t.viewToDisplay=()=>Ia("callviewtodisplay on your view instead"),t.getSize=()=>Ia("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=Ew("PickPropFrom")}const Ow={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function Hg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ow,n),_.obj(t,e),_.event(t,e,"event"),_.setGetArray(t,e,["viewport"],4),_.setGetArray(t,e,["background","background2"],3),Rw(t,e)}const Dw=_.newInstance(Hg,"vtkViewport");var mw={newInstance:Dw,extend:Hg};const{vtkDebugMacro:$r,vtkErrorMacro:_n,vtkWarningMacro:Mw}=nn;function au(t){return()=>_n(`vtkRenderer::${t} - NOT IMPLEMENTED`)}function Vw(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||($r("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(zi())):_n("light has unknown light type",i.get()))})},t.updateLightGeometry=()=>e.lightFollowCamera?t.updateLightsGeometryToFollowCamera():!0,t.allocateTime=au("allocateTime"),t.updateGeometry=au("updateGeometry"),t.getVTKWindow=()=>e._renderWindow,t.setLayer=s=>{$r(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=Tw.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=_w.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 _n("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();Tt(u,u),Le(u,u);const c=new Float64Array([s,i,o]);return _e(c,c,u),c},t.projectionToView=(s,i,o,u)=>{if(e.activeCamera===null)return _n("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);Tt(c,c),Le(c,c);const f=new Float64Array([s,i,o]);return _e(f,f,c),f},t.worldToView=(s,i,o)=>{if(e.activeCamera===null)return _n("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();Le(u,u);const c=new Float64Array([s,i,o]);return _e(c,c,u),c},t.viewToProjection=(s,i,o,u)=>{if(e.activeCamera===null)return _n("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);Le(c,c);const f=new Float64Array([s,i,o]);return _e(f,f,c),f},t.computeVisiblePropBounds=()=>{e.allBounds[0]=Ve.INIT_BOUNDS[0],e.allBounds[1]=Ve.INIT_BOUNDS[1],e.allBounds[2]=Ve.INIT_BOUNDS[2],e.allBounds[3]=Ve.INIT_BOUNDS[3],e.allBounds[4]=Ve.INIT_BOUNDS[4],e.allBounds[5]=Ve.INIT_BOUNDS[5];let s=!0;t.invokeEvent(n);for(let i=0;i<e.props.length;++i){const o=e.props[i];if(o.getVisibility()&&o.getUseBounds()){const u=o.getBounds();u&&zs(u)&&(s=!1,u[0]<e.allBounds[0]&&(e.allBounds[0]=u[0]),u[1]>e.allBounds[1]&&(e.allBounds[1]=u[1]),u[2]<e.allBounds[2]&&(e.allBounds[2]=u[2]),u[3]>e.allBounds[3]&&(e.allBounds[3]=u[3]),u[4]<e.allBounds[4]&&(e.allBounds[4]=u[4]),u[5]>e.allBounds[5]&&(e.allBounds[5]=u[5]))}}return s&&(co(e.allBounds),$r("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(!zs(i))return $r("Cannot reset camera!"),!1;let u=null;if(t.getActiveCamera())u=e.activeCamera.getViewPlaneNormal();else return _n("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=Ge(e.activeCamera.getViewAngle()),y=g,h=g/Math.sin(p*.5),d=e.activeCamera.getViewUp();return Math.abs(de(d,u))>.999&&(Mw("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(y),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(!zs(i))return $r("Cannot reset camera clipping range!"),!1;if(t.getActiveCameraAndResetIfCreated(),!e.activeCamera)return _n("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=Ge(e.activeCamera.getViewAngle());u=.2*Math.tan(c/2)*o[1]}return o[1]-o[0]<u&&(u=u-o[1]+o[0],o[1]+=u/2,o[0]-=u/2),o[0]<0&&(o[0]=0),o[0]=.99*o[0]-(o[1]-o[0])*e.clippingRangeExpansion,o[1]=1.01*o[1]+(o[1]-o[0])*e.clippingRangeExpansion,o[0]=o[0]>=o[1]?.01*o[1]:o[0],e.nearClippingPlaneTolerance||(e.nearClippingPlaneTolerance=.01),o[0]<e.nearClippingPlaneTolerance*o[1]&&(o[0]=e.nearClippingPlaneTolerance*o[1]),e.activeCamera.setClippingRange(o[0],o[1]),t.invokeEvent(r),!1},t.setRenderWindow=s=>{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 Lw={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:uo(),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 jg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};for(Object.assign(e,Lw,n),mw.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),ht(t,e,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),Ke(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"]),Vr(t,e,["actors","volumes","lights"]),qi(t,e,["background"],4,1),oa(t,e,["renderWindow"]),Vw(t,e)}const Bw=me(jg,"vtkRenderer");var kw={newInstance:Bw,extend:jg};const Fw="WebGL",hs=Object.create(null);function mo(t,e){hs[t]=e}function Uw(){return Object.keys(hs)}function Kg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return hs[t]&&hs[t](e)}function bw(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 Kg(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(`
  593. `),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 _.setImmediate(t.render),e._views.map(a=>a.captureNextImage?a.captureNextImage(n,r):void 0).filter(a=>!!a)}}const Nw={defaultViewAPI:Fw,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function Pg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nw,n),_.obj(t,e),_.setGet(t,e,["interactor","numberOfLayers","_views","defaultViewAPI"]),_.get(t,e,["neverRendered"]),_.getArray(t,e,["renderers"]),_.moveToProtected(t,e,["views"]),_.event(t,e,"completion"),bw(t,e)}const Gw=_.newInstance(Pg,"vtkRenderWindow");var $w={newInstance:Gw,extend:Pg,registerViewConstructor:mo,listViewAPIs:Uw,newAPISpecificView:Kg};const ki={Unknown:0,LeftController:1,RightController:2},Kr={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},Ww={Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4};var Xg={Device:ki,Input:Kr,Axis:Ww};const{Device:ba,Input:An}=Xg,{vtkWarningMacro:Na,vtkErrorMacro:Ga,normalizeWheel:zw,vtkOnceErrorMacro:Aw}=_,fr={ctrlKey:!1,altKey:!1,shiftKey:!1},ri={"xr-standard":[An.Trigger,An.Grip,An.TrackPad,An.Thumbstick,An.A,An.B]},Mo=["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 Wr(t){t.cancelable&&t.preventDefault()}function $a(t){const e=Object.create(null);return t.forEach(n=>{let{pointerId:r,position:a}=n;e[r]=a}),e}function Hw(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=>{Ga("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=()=>Na("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,T=d.height/x.height,v={x:C*(h.clientX-x.left),y:T*(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",Wr),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",Wr),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&&Wr(h),h.target.hasPointerCapture(h.pointerId)&&h.target.releasePointerCapture(h.pointerId),e.container.setPointerCapture(h.pointerId),a.has(h.pointerId)&&Na("[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&&Wr(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:Ga(`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 y(){e._view&&e.enabled&&e.enableRender&&(e.inRender=!0,e._view.traverseAllPasses(),e.inRender=!1),t.invokeRenderEvent()}t.requestAnimation=h=>{if(h===void 0){Ga("undefined requester, can not start animating");return}if(r.has(h)){Na("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;Na(`${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 T=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<v.buttons.length;++S)S in e.lastGamepadValues[v.index][w].buttons||(e.lastGamepadValues[v.index][w].buttons[S]=!1),e.lastGamepadValues[v.index][w].buttons[S]!==v.buttons[S].pressed&&T!=null&&(t.button3DEvent({gamepad:v,position:T.transform.position,orientation:T.transform.orientation,pressed:v.buttons[S].pressed,device:C.handedness==="left"?ba.LeftController:ba.RightController,input:ri[v.mapping]&&ri[v.mapping][S]?ri[v.mapping][S]:An.Trigger}),e.lastGamepadValues[v.index][w].buttons[S]=v.buttons[S].pressed),e.lastGamepadValues[v.index][w].buttons[S]&&T!=null&&t.move3DEvent({gamepad:v,position:T.transform.position,orientation:T.transform.orientation,device:C.handedness==="left"?ba.LeftController:ba.RightController})}})},t.handleMouseMove=h=>{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(),y(),r.size>0||Date.now()<e._animationExtendedEnd?e.animationRequest=requestAnimationFrame(t.handleAnimation):(cancelAnimationFrame(e.animationRequest),e.animationRequest=null,t.endAnimationEvent(),t.render())},t.handleWheel=h=>{Wr(h);const d={...zw(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:Ga(`Unknown mouse button released: ${h.button}`);break}},t.handleTouchStart=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=$a(a);if(d.length===2){const C={...c(fr),position:d[0].position,deviceType:l(h)};t.leftButtonReleaseEvent(C)}t.recognizeGesture("TouchStart",x)}else if(d.length===1){const x={...c(fr),position:u(h),deviceType:l(h)};t.leftButtonPressEvent(x)}},t.handleTouchMove=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=$a(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(fr),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(fr),position:u(h),deviceType:l(h)};t.leftButtonReleaseEvent(x)}else if(d.length===1){const x=$a(a);t.recognizeGesture("TouchEnd",x);const C={...c(fr),position:d[0].position,deviceType:l(h)};t.leftButtonPressEvent(C)}else{const x=$a(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(fr),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,O;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=(O=(S=e._view)==null?void 0:S.getRenderable())==null?void 0:O.getRenderers();if(!x||x.length===0)return null;x.sort((R,B)=>R.getLayer()-B.getLayer());let C=null,T=null,v=null,w=x.length;for(;w--;){const R=x[w];if(e._view.isInViewport(h,d,R)&&R.getInteractive()){v=R;break}C===null&&R.getInteractive()&&(C=R),T===null&&e._view.isInViewport(h,d,R)&&(T=R)}return v===null&&(v=C),v===null&&(v=T),v==null&&(v=x[0]),v},t.render=()=>{!t.isAnimating()&&!e.inRender&&y()},Mo.forEach(h=>{const d=h.charAt(0).toLowerCase()+h.slice(1);t[`${d}Event`]=x=>{if(!e.enabled)return;if(!t.getCurrentRenderer()){Aw(`
  594. Can not forward events without a current renderer on the interactor.
  595. `);return}const T={type:h,pokedRenderer:e.currentRenderer,firstRenderer:t.getFirstRenderer(),...x};t[`invoke${h}`](T)}}),t.recognizeGesture=(h,d)=>{if(Object.keys(d).length>2)return;if(e.startingEventPositions||(e.startingEventPositions={}),h==="TouchStart"){Object.keys(d).forEach(m=>{e.startingEventPositions[m]=d[m]}),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=[],T=[];Object.keys(d).forEach(m=>{C[x]=d[m],T[x]=e.startingEventPositions[m],x++});const v=Math.sqrt((T[0].x-T[1].x)*(T[0].x-T[1].x)+(T[0].y-T[1].y)*(T[0].y-T[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=ta(Math.atan2(T[1].y-T[0].y,T[1].x-T[0].x)),O=ta(Math.atan2(C[1].y-C[0].y,C[1].x-C[0].x)),R=O-S;O=O+180>=360?O-180:O+180,S=S+180>=360?S-180:S+180,Math.abs(O-S)<Math.abs(R)&&(R=O-S);const B=[];if(B[0]=(C[0].x-T[0].x+C[1].x-T[1].x)/2,B[1]=(C[0].y-T[0].y+C[1].y-T[1].y)/2,h==="TouchMove")if(e.currentGesture==="Start"){let m=.01*Math.sqrt(e.container.clientWidth*e.container.clientWidth+e.container.clientHeight*e.container.clientHeight);m<15&&(m=15);const V=Math.abs(w-v),L=w*3.1415926*Math.abs(R)/360,k=Math.sqrt(B[0]*B[0]+B[1]*B[1]);if(V>m&&V>L&&V>k){e.currentGesture="Pinch";const N={scale:1,touches:d};t.startPinchEvent(N)}else if(L>m&&L>k){e.currentGesture="Rotate";const N={rotation:0,touches:d};t.startRotateEvent(N)}else if(k>m){e.currentGesture="Pan";const N={translation:[0,0],touches:d};t.startPanEvent(N)}}else{if(e.currentGesture==="Rotate"){const m={rotation:R,touches:d};t.rotateEvent(m)}if(e.currentGesture==="Pinch"){const m={scale:w/v,touches:d};t.pinchEvent(m)}if(e.currentGesture==="Pan"){const m={translation:B,touches:d};t.panEvent(m)}}},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 jw={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 Ig(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jw,n),_.obj(t,e),e._animationExtendedEnd=0,_.event(t,e,"RenderEvent"),Mo.forEach(r=>_.event(t,e,r)),_.get(t,e,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),_.setGet(t,e,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),_.moveToProtected(t,e,["view"]),Hw(t,e)}const Kw=_.newInstance(Ig,"vtkRenderWindowInteractor");var Yg={newInstance:Kw,extend:Ig,handledEvents:Mo,...Xg};const{vtkErrorMacro:Pw,VOID:Xw}=_;function Iw(t,e,n,r){return t.getRenderWindow().getViews()[0].worldToDisplay(e,n,r,t)}function Yw(t,e,n,r){return t.getRenderWindow().getViews()[0].displayToWorld(e,n,r,t)}const qw={computeWorldToDisplay:Iw,computeDisplayToWorld:Yw};function Qw(t,e){e.classHierarchy.push("vtkInteractorObserver");const n={...t};function r(){for(;e.subscribedEvents.length;)e.subscribedEvents.pop().unsubscribe()}function a(){Yg.handledEvents.forEach(s=>{t[`handle${s}`]&&e.subscribedEvents.push(e._interactor[`on${s}`](i=>e.processEvents?t[`handle${s}`](i):Xw,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():Pw(`
  596. The interactor must be set before subscribing to events
  597. `)),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 Jw={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function qg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Jw,n),_.obj(t,e),_.event(t,e,"InteractionEvent"),_.event(t,e,"StartInteractionEvent"),_.event(t,e,"EndInteractionEvent"),_.get(t,e,["_interactor","enabled"]),_.setGet(t,e,["priority","processEvents"]),_.moveToProtected(t,e,["interactor"]),Qw(t,e)}const Zw=_.newInstance(qg,"vtkInteractorObserver");var e_={newInstance:Zw,extend:qg,...qw};const t_={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 Vo={States:t_};const{States:Zt}=Vo,ai={Rotate:Zt.IS_ROTATE,Pan:Zt.IS_PAN,Spin:Zt.IS_SPIN,Dolly:Zt.IS_DOLLY,CameraPose:Zt.IS_CAMERA_POSE,WindowLevel:Zt.IS_WINDOW_LEVEL,Slice:Zt.IS_SLICE};function n_(t,e){e.classHierarchy.push("vtkInteractorStyle"),Object.keys(ai).forEach(n=>{_.event(t,e,`Start${n}Event`),t[`start${n}`]=()=>{e.state===Zt.IS_NONE&&(e.state=ai[n],e._interactor.requestAnimation(t),t.invokeStartInteractionEvent({type:"StartInteractionEvent"}),t[`invokeStart${n}Event`]({type:`Start${n}Event`}))},_.event(t,e,`End${n}Event`),t[`end${n}`]=()=>{e.state===ai[n]&&(e.state=Zt.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 r_={state:Zt.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Qg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,r_,n),e_.extend(t,e,n),n_(t,e)}const a_=_.newInstance(Qg,"vtkInteractorStyle");var s_={newInstance:a_,extend:Qg,...Vo};const{States:Yt}=Vo;function i_(t,e){e.classHierarchy.push("vtkInteractorStyleTrackballCamera"),t.handleMouseMove=n=>{const r=n.position,a=n.pokedRenderer;switch(e.state){case Yt.IS_ROTATE:t.handleMouseRotate(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Yt.IS_PAN:t.handleMousePan(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Yt.IS_DOLLY:t.handleMouseDolly(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Yt.IS_SPIN:t.handleMouseSpin(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break}e.previousPosition=r},t.handleButton3D=n=>{if(n&&n.pressed&&n.device===ki.RightController&&(n.input===Kr.Trigger||n.input===Kr.TrackPad)){t.startCameraPose();return}n&&!n.pressed&&n.device===ki.RightController&&(n.input===Kr.Trigger||n.input===Kr.TrackPad)&&e.state===Yt.IS_CAMERA_POSE&&t.endCameraPose()},t.handleMove3D=n=>{switch(e.state){case Yt.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 Yt.IS_DOLLY:t.endDolly();break;case Yt.IS_PAN:t.endPan();break;case Yt.IS_SPIN:t.endSpin();break;case Yt.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=ta(Math.atan2(e.previousPosition.y-i[1],e.previousPosition.x-i[0])),u=ta(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 o_={motionFactor:10,zoomFactor:10};function Jg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,o_,n),s_.extend(t,e,n),_.setGet(t,e,["motionFactor","zoomFactor"]),i_(t,e)}const c_=_.newInstance(Jg,"vtkInteractorStyleTrackballCamera");var u_={newInstance:c_,extend:Jg};function f_(t){return t}function Lo(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=>Lo(e.trim())):t===""||Number.isNaN(Number(t))?t:Number(t)}function l_(){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?Lo:f_;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 g_={toNativeType:Lo,extractURLParameters:l_};function p_(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){le("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){le("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<e.colorBuffers.length;a++)e.colorBuffers[a].bind();e._openGLRenderWindow.setActiveFramebuffer(t)},t.create=(n,r)=>{if(!e.context){le("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){le("you must set the OpenGLRenderWindow before calling setColorBuffer");return}let s=a.COLOR_ATTACHMENT0;if(r>0)if(e._openGLRenderWindow.getWebgl2())s+=r;else{le("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){le("you must set the OpenGLRenderWindow before calling removeColorBuffer");return}let a=r.COLOR_ATTACHMENT0;if(n>0)if(e._openGLRenderWindow.getWebgl2())a+=n;else{le("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){le("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 le("Attaching depth buffer textures to fbo requires WebGL 2")},t.removeDepthBuffer=()=>{if(!e.context){le("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 le("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){le("you must set the OpenGLRenderWindow before calling populateFrameBuffer");return}t.bind();const n=e.context,r=Jn.newInstance();r.setOpenGLRenderWindow(e._openGLRenderWindow),r.setMinificationFilter(Vi.LINEAR),r.setMagnificationFilter(Vi.LINEAR),r.create2DFromRaw(e.glFramebuffer.width,e.glFramebuffer.height,4,Ie.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 h_={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Zg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,h_,n),Ze(t,e),e.colorBuffers&&le("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),e.colorBuffers=[],Vr(t,e,["colorBuffers"]),p_(t,e)}const d_=me(Zg,"vtkFramebuffer");var Bo={newInstance:d_,extend:Zg};function v_(t,e){e.classHierarchy.push("vtkRenderPass"),t.getOperation=()=>e.currentOperation,t.setCurrentOperation=n=>{e.currentOperation=n,e.currentTraverseOperation=`traverse${_.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 y_={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function ep(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,y_,n),_.obj(t,e),_.get(t,e,["currentOperation"]),_.setGet(t,e,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),_.moveToProtected(t,e,["currentParent"]),v_(t,e)}const T_=_.newInstance(ep,"vtkRenderPass");var hn={newInstance:T_,extend:ep};const{Representation:x_}=Br,{vtkErrorMacro:su}=_;function S_(t){const e=z.substitute(t.Fragment,"//VTK::RenderPassFragmentShader::Impl",`
  598. float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);
  599. gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);
  600. gl_FragData[1].r = weight;
  601. `,!1);t.Fragment=e.result}const C_=`//VTK::System::Dec
  602. in vec2 tcoord;
  603. uniform sampler2D translucentRTexture;
  604. uniform sampler2D translucentRGBATexture;
  605. // the output of this shader
  606. //VTK::Output::Dec
  607. void main()
  608. {
  609. vec4 t1Color = texture(translucentRGBATexture, tcoord);
  610. float t2Color = texture(translucentRTexture, tcoord).r;
  611. gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);
  612. }
  613. `;function w_(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=Oe.newInstance({numberOfComponents:3,values:n});s.setName("points");const i=Oe.newInstance({numberOfComponents:2,values:r});i.setName("tcoords");const o=Oe.newInstance({numberOfComponents:1,values:a});e.tris.getCABO().createVBO(o,"polys",x_.SURFACE,{points:s,tcoords:i,cellOffset:0}),e.VBOBuildTime.modified()},t.createFramebuffer=n=>{const r=n.getSize(),a=n.getContext();e.framebuffer=Bo.newInstance(),e.framebuffer.setOpenGLRenderWindow(n),e.framebuffer.create(...r),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind(),e.translucentRGBATexture=Jn.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=Jn.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=Jn.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(`
  614. `),C_,"")},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)||su("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)||su("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=ig.newInstance(),e.copyVAO.setOpenGLRenderWindow(n)),e.copyVAO.bind(),e.VBOBuildTime.getMTime()<t.getMTime()&&t.createVBO(n),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),i.depthMask(!1),i.depthFunc(i.ALWAYS),i.viewport(0,0,s[0],s[1]),i.scissor(0,0,s[0],s[1]),e.translucentRGBATexture.activate(),e.copyShader.setUniformi("translucentRGBATexture",e.translucentRGBATexture.getTextureUnit()),e.translucentRTexture.activate(),e.copyShader.setUniformi("translucentRTexture",e.translucentRTexture.getTextureUnit()),i.drawArrays(i.TRIANGLES,0,e.tris.getCABO().getElementCount()),i.depthMask(!0),i.depthFunc(i.LEQUAL),e.translucentRGBATexture.deactivate(),e.translucentRTexture.deactivate()},t.getShaderReplacement=()=>e._supported?S_: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 __={framebuffer:null,copyShader:null,tris:null};function tp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,__,n),hn.extend(t,e,n),e.VBOBuildTime={},_.obj(e.VBOBuildTime,{mtime:0}),e.tris=kr.newInstance(),_.get(t,e,["framebuffer"]),w_(t,e)}const E_=_.newInstance(tp,"vtkOpenGLOrderIndependentTranslucentPass");var R_={newInstance:E_,extend:tp};function O_(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;i<a;i++)for(let o=0;o<s.length;o++){const u=s[o],c=n.getRenderable().getRenderers()[o];if(c.getDraw()&&c.getLayer()===i){if(e.opaqueActorCount=0,e.translucentActorCount=0,e.volumeCount=0,e.overlayActorCount=0,t.setCurrentOperation("queryPass"),u.traverse(t),(e.opaqueActorCount>0||e.translucentActorCount>0)&&e.volumeCount>0||e.depthRequested){const f=n.getFramebufferSize();e.framebuffer===null&&(e.framebuffer=Bo.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=R_.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 D_={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function np(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,D_,n),hn.extend(t,e,n),_.get(t,e,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),O_(t,e)}const m_=_.newInstance(np,"vtkForwardPass");var M_={newInstance:m_,extend:np};const{FieldAssociations:V_}=nr;function L_(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 B_={fieldAssociation:V_.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function rp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,B_,n),_.obj(t,e),_.setGet(t,e,["fieldAssociation","captureZValues"]),L_(t,e)}const k_=_.newInstance(rp,"vtkHardwareSelector");var ap={newInstance:k_,extend:rp};const F_={GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},U_={CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5};var b_={SelectionContent:F_,SelectionField:U_};function N_(t,e){e.classHierarchy.push("vtkSelectionNode"),t.getBounds=()=>e.points.getBounds()}const G_={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function sp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,G_,n),_.obj(t,e),e.properties={},_.setGet(t,e,["contentType","fieldType","properties","selectionList"]),N_(t,e)}const $_=_.newInstance(sp,"vtkSelectionNode");var Os={newInstance:$_,extend:sp,...b_};const{PassTypes:We}=Ul,{SelectionContent:W_,SelectionField:iu}=Os,{FieldAssociations:Yr}=nr,{vtkErrorMacro:ip}=_,Rn=1;function op(t){return`${t.propID} ${t.compositeID}`}function cp(t,e,n,r){if(!n)return 0;const a=(e*(r[2]-r[0]+1)+t)*4;return n[a+3]}function cn(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 up(t,e){let n=e;return n<<=24,n|=t,n}function hr(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[0]||e[0]>t.area[2]||e[1]<t.area[1]||e[1]>t.area[3])return null;const u=[e[0]-t.area[0],e[1]-t.area[1]],c=cn(u[0],u[1],t.pixBuffer[We.ACTOR_PASS],t.area);if(c<=0||c-Rn>=t.props.length)return null;const f={};f.valid=!0,f.propID=c-Rn,f.prop=t.props[f.propID];let l=cn(u[0],u[1],t.pixBuffer[We.COMPOSITE_INDEX_PASS],t.area);if((l<0||l>16777215)&&(l=0),f.compositeID=l-Rn,t.captureZValues){const y=(u[1]*(t.area[2]-t.area[0]+1)+u[0])*4;f.zValue=(256*t.zBuffer[y]+t.zBuffer[y+1])/65535,f.displayPosition=e}if(t.pixBuffer[We.ID_LOW24]&&cp(u[0],u[1],t.pixBuffer[We.ID_LOW24],t.area)===0)return f;const g=cn(u[0],u[1],t.pixBuffer[We.ID_LOW24],t.area),p=cn(u[0],u[1],t.pixBuffer[We.ID_HIGH24],t.area);return f.attributeID=up(g,p),f}const s=[e[0],e[1]],i=[0,0];let o=hr(t,e,0,r);if(o&&o.valid)return o;for(let u=1;u<a;++u){for(let c=s[1]>u?s[1]-u:0;c<=s[1]+u;++c)if(i[1]=c,s[0]>=u&&(i[0]=s[0]-u,o=hr(t,i,0,r),o&&o.valid)||(i[0]=s[0]+u,o=hr(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=hr(t,i,0,r),o&&o.valid)||(i[1]=s[1]+u,o=hr(t,i,0,r),o&&o.valid))return o}return r[0]=e[0],r[1]=e[1],null}function fp(t,e,n,r,a){const s=[];let i=0;return e.forEach((o,u)=>{const c=Os.newInstance();switch(c.setContentType(W_.INDICES),t){case Yr.FIELD_ASSOCIATION_CELLS:c.setFieldType(iu.CELL);break;case Yr.FIELD_ASSOCIATION_POINTS:c.setFieldType(iu.POINT);break;default:ip("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 z_(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 y=hr(t,[g,l],0,f);if(y&&y.valid){const h=op(y);if(!c.has(h))c.set(h,{info:y,pixelCount:1,attributeIDs:[y.attributeID]});else{const d=c.get(h);d.pixelCount++,t.captureZValues&&y.zValue<d.info.zValue&&(d.info=y),d.attributeIDs.indexOf(y.attributeID)===-1&&d.attributeIDs.push(y.attributeID)}}}return fp(t.fieldAssociation,c,t.captureZValues,t.renderer,t.openGLRenderWindow)}function A_(t,e){e.classHierarchy.push("vtkOpenGLHardwareSelector"),t.releasePixBuffers=()=>{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=Bo.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===Yr.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<c;l++)f[l]=arguments[l];return z_(u,...f)},u},t.captureBuffers=()=>{if(!e._renderer||!e._openGLRenderWindow)return ip("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=We.MIN_KNOWN_PASS;e.currentPass<=We.MAX_KNOWN_PASS;e.currentPass++)t.passRequired(e.currentPass)&&(t.preCapturePass(e.currentPass),e.captureZValues&&e.currentPass===We.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===We.ID_HIGH24){if(e.fieldAssociation===Yr.FIELD_ASSOCIATION_POINTS)return e.maximumPointId>16777215;if(e.fieldAssociation===Yr.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===We.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=cn(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===We.ACTOR_PASS&&(t.setPropColorValueFromInt(e.props.length+Rn),e.props.push(r))},t.renderCompositeIndex=r=>{e.currentPass===We.COMPOSITE_INDEX_PASS&&t.setPropColorValueFromInt(r+Rn)},t.renderAttributeId=r=>{r<0||(e.maxAttributeId=r>e.maxAttributeId?r:e.maxAttributeId)},t.passTypeToString=r=>_.enumToString(We,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[0]||r[0]>e.area[2]||r[1]<e.area[1]||r[1]>e.area[3])return null;const f=[r[0]-e.area[0],r[1]-e.area[1]],l=cn(f[0],f[1],e.pixBuffer[We.ACTOR_PASS],e.area);if(l<=0||l-Rn>=e.props.length)return null;const g={};g.valid=!0,g.propID=l-Rn,g.prop=e.props[g.propID];let p=cn(f[0],f[1],e.pixBuffer[We.COMPOSITE_INDEX_PASS],e.area);if((p<0||p>16777215)&&(p=0),g.compositeID=p-Rn,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[We.ID_LOW24]&&cp(f[0],f[1],e.pixBuffer[We.ID_LOW24],e.area)===0)return g;const y=cn(f[0],f[1],e.pixBuffer[We.ID_LOW24],e.area),h=cn(f[0],f[1],e.pixBuffer[We.ID_HIGH24],e.area);return g.attributeID=up(y,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;f<i;++f){for(let l=o[1]>f?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 y=o;y<=c;y++){const h=[y,p],d=t.getPixelInformation(h,0,g);if(d&&d.valid){const x=op(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.zValue<C.info.zValue&&(C.info=d),C.attributeIDs.indexOf(d.attributeID)===-1&&C.attributeIDs.push(d.attributeID)}}}return fp(e.fieldAssociation,l,e.captureZValues,e._renderer,e._openGLRenderWindow)},t.getRawPixelBuffer=r=>e.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 H_={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function lp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,H_,n),ap.extend(t,e,n),e.propColorValue=[0,0,0],e.props=[],e.area||(e.area=[0,0,0,0]),_.setGetArray(t,e,["area"],4),_.setGet(t,e,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),_.setGetArray(t,e,["propColorValue"],3),_.moveToProtected(t,e,["renderer","openGLRenderWindow"]),_.event(t,e,"event"),A_(t,e)}const j_=_.newInstance(lp,"vtkOpenGLHardwareSelector");var gp={newInstance:j_,extend:lp,...Ul},pp={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 T=x[0],v=x[1],w=x[2],S=x[3];T+=(v&w|~v&S)+C[0]-680876936|0,T=(T<<7|T>>>25)+v|0,S+=(T&v|~T&w)+C[1]-389564586|0,S=(S<<12|S>>>20)+T|0,w+=(S&T|~S&v)+C[2]+606105819|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&T)+C[3]-1044525330|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&S)+C[4]-176418897|0,T=(T<<7|T>>>25)+v|0,S+=(T&v|~T&w)+C[5]+1200080426|0,S=(S<<12|S>>>20)+T|0,w+=(S&T|~S&v)+C[6]-1473231341|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&T)+C[7]-45705983|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&S)+C[8]+1770035416|0,T=(T<<7|T>>>25)+v|0,S+=(T&v|~T&w)+C[9]-1958414417|0,S=(S<<12|S>>>20)+T|0,w+=(S&T|~S&v)+C[10]-42063|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&T)+C[11]-1990404162|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&S)+C[12]+1804603682|0,T=(T<<7|T>>>25)+v|0,S+=(T&v|~T&w)+C[13]-40341101|0,S=(S<<12|S>>>20)+T|0,w+=(S&T|~S&v)+C[14]-1502002290|0,w=(w<<17|w>>>15)+S|0,v+=(w&S|~w&T)+C[15]+1236535329|0,v=(v<<22|v>>>10)+w|0,T+=(v&S|w&~S)+C[1]-165796510|0,T=(T<<5|T>>>27)+v|0,S+=(T&w|v&~w)+C[6]-1069501632|0,S=(S<<9|S>>>23)+T|0,w+=(S&v|T&~v)+C[11]+643717713|0,w=(w<<14|w>>>18)+S|0,v+=(w&T|S&~T)+C[0]-373897302|0,v=(v<<20|v>>>12)+w|0,T+=(v&S|w&~S)+C[5]-701558691|0,T=(T<<5|T>>>27)+v|0,S+=(T&w|v&~w)+C[10]+38016083|0,S=(S<<9|S>>>23)+T|0,w+=(S&v|T&~v)+C[15]-660478335|0,w=(w<<14|w>>>18)+S|0,v+=(w&T|S&~T)+C[4]-405537848|0,v=(v<<20|v>>>12)+w|0,T+=(v&S|w&~S)+C[9]+568446438|0,T=(T<<5|T>>>27)+v|0,S+=(T&w|v&~w)+C[14]-1019803690|0,S=(S<<9|S>>>23)+T|0,w+=(S&v|T&~v)+C[3]-187363961|0,w=(w<<14|w>>>18)+S|0,v+=(w&T|S&~T)+C[8]+1163531501|0,v=(v<<20|v>>>12)+w|0,T+=(v&S|w&~S)+C[13]-1444681467|0,T=(T<<5|T>>>27)+v|0,S+=(T&w|v&~w)+C[2]-51403784|0,S=(S<<9|S>>>23)+T|0,w+=(S&v|T&~v)+C[7]+1735328473|0,w=(w<<14|w>>>18)+S|0,v+=(w&T|S&~T)+C[12]-1926607734|0,v=(v<<20|v>>>12)+w|0,T+=(v^w^S)+C[5]-378558|0,T=(T<<4|T>>>28)+v|0,S+=(T^v^w)+C[8]-2022574463|0,S=(S<<11|S>>>21)+T|0,w+=(S^T^v)+C[11]+1839030562|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^T)+C[14]-35309556|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^S)+C[1]-1530992060|0,T=(T<<4|T>>>28)+v|0,S+=(T^v^w)+C[4]+1272893353|0,S=(S<<11|S>>>21)+T|0,w+=(S^T^v)+C[7]-155497632|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^T)+C[10]-1094730640|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^S)+C[13]+681279174|0,T=(T<<4|T>>>28)+v|0,S+=(T^v^w)+C[0]-358537222|0,S=(S<<11|S>>>21)+T|0,w+=(S^T^v)+C[3]-722521979|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^T)+C[6]+76029189|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^S)+C[9]-640364487|0,T=(T<<4|T>>>28)+v|0,S+=(T^v^w)+C[12]-421815835|0,S=(S<<11|S>>>21)+T|0,w+=(S^T^v)+C[15]+530742520|0,w=(w<<16|w>>>16)+S|0,v+=(w^S^T)+C[2]-995338651|0,v=(v<<23|v>>>9)+w|0,T+=(w^(v|~S))+C[0]-198630844|0,T=(T<<6|T>>>26)+v|0,S+=(v^(T|~w))+C[7]+1126891415|0,S=(S<<10|S>>>22)+T|0,w+=(T^(S|~v))+C[14]-1416354905|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~T))+C[5]-57434055|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~S))+C[12]+1700485571|0,T=(T<<6|T>>>26)+v|0,S+=(v^(T|~w))+C[3]-1894986606|0,S=(S<<10|S>>>22)+T|0,w+=(T^(S|~v))+C[10]-1051523|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~T))+C[1]-2054922799|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~S))+C[8]+1873313359|0,T=(T<<6|T>>>26)+v|0,S+=(v^(T|~w))+C[15]-30611744|0,S=(S<<10|S>>>22)+T|0,w+=(T^(S|~v))+C[6]-1560198380|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~T))+C[13]+1309151649|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~S))+C[4]-145523070|0,T=(T<<6|T>>>26)+v|0,S+=(v^(T|~w))+C[11]-1120210379|0,S=(S<<10|S>>>22)+T|0,w+=(T^(S|~v))+C[2]+718787259|0,w=(w<<15|w>>>17)+S|0,v+=(S^(w|~T))+C[9]-343485551|0,v=(v<<21|v>>>11)+w|0,x[0]=T+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=[],T;for(T=0;T<64;T+=4)C[T>>2]=x.charCodeAt(T)+(x.charCodeAt(T+1)<<8)+(x.charCodeAt(T+2)<<16)+(x.charCodeAt(T+3)<<24);return C}function i(x){var C=[],T;for(T=0;T<64;T+=4)C[T>>2]=x[T]+(x[T+1]<<8)+(x[T+2]<<16)+(x[T+3]<<24);return C}function o(x){var C=x.length,T=[1732584193,-271733879,-1732584194,271733878],v,w,S,O,R,B;for(v=64;v<=C;v+=64)a(T,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<w;v+=1)S[v>>2]|=x.charCodeAt(v)<<(v%4<<3);if(S[v>>2]|=128<<(v%4<<3),v>55)for(a(T,S),v=0;v<16;v+=1)S[v]=0;return O=C*8,O=O.toString(16).match(/(.*?)(.{0,8})$/),R=parseInt(O[2],16),B=parseInt(O[1],16)||0,S[14]=R,S[15]=B,a(T,S),T}function u(x){var C=x.length,T=[1732584193,-271733879,-1732584194,271733878],v,w,S,O,R,B;for(v=64;v<=C;v+=64)a(T,i(x.subarray(v-64,v)));for(x=v-64<C?x.subarray(v-64):new Uint8Array(0),w=x.length,S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],v=0;v<w;v+=1)S[v>>2]|=x[v]<<(v%4<<3);if(S[v>>2]|=128<<(v%4<<3),v>55)for(a(T,S),v=0;v<16;v+=1)S[v]=0;return O=C*8,O=O.toString(16).match(/(.*?)(.{0,8})$/),R=parseInt(O[2],16),B=parseInt(O[1],16)||0,S[14]=R,S[15]=B,a(T,S),T}function c(x){var C="",T;for(T=0;T<4;T+=1)C+=r[x>>T*8+4&15]+r[x>>T*8&15];return C}function f(x){var C;for(C=0;C<x.length;C+=1)x[C]=c(x[C]);return x.join("")}f(o("hello")),typeof ArrayBuffer<"u"&&!ArrayBuffer.prototype.slice&&function(){function x(C,T){return C=C|0||0,C<0?Math.max(C+T,0):Math.min(C,T)}ArrayBuffer.prototype.slice=function(C,T){var v=this.byteLength,w=x(C,v),S=v,O,R,B,m;return T!==n&&(S=x(T,v)),w>S?new ArrayBuffer(0):(O=S-w,R=new ArrayBuffer(O),B=new Uint8Array(R),m=new Uint8Array(this,w,O),B.set(m),R)}}();function l(x){return/[\u0080-\uFFFF]/.test(x)&&(x=unescape(encodeURIComponent(x))),x}function g(x,C){var T=x.length,v=new ArrayBuffer(T),w=new Uint8Array(v),S;for(S=0;S<T;S+=1)w[S]=x.charCodeAt(S);return C?w:v}function p(x){return String.fromCharCode.apply(null,new Uint8Array(x))}function y(x,C,T){var v=new Uint8Array(x.byteLength+C.byteLength);return v.set(new Uint8Array(x)),v.set(new Uint8Array(C),x.byteLength),T?v:v.buffer}function h(x){var C=[],T=x.length,v;for(v=0;v<T-1;v+=2)C.push(parseInt(x.substr(v,2),16));return String.fromCharCode.apply(String,C)}function d(){this.reset()}return d.prototype.append=function(x){return this.appendBinary(l(x)),this},d.prototype.appendBinary=function(x){this._buff+=x,this._length+=x.length;var C=this._buff.length,T;for(T=64;T<=C;T+=64)a(this._hash,s(this._buff.substring(T-64,T)));return this._buff=this._buff.substring(T-64),this},d.prototype.end=function(x){var C=this._buff,T=C.length,v,w=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],S;for(v=0;v<T;v+=1)w[v>>2]|=C.charCodeAt(v)<<(v%4<<3);return this._finish(w,T),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 T=C,v,w,S;if(x[T>>2]|=128<<(T%4<<3),T>55)for(a(this._hash,x),T=0;T<16;T+=1)x[T]=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 T=o(x),v=f(T);return C?h(v):v},d.ArrayBuffer=function(){this.reset()},d.ArrayBuffer.prototype.append=function(x){var C=y(this._buff.buffer,x,!0),T=C.length,v;for(this._length+=x.byteLength,v=64;v<=T;v+=64)a(this._hash,i(C.subarray(v-64,v)));return this._buff=v-64<T?new Uint8Array(C.buffer.slice(v-64)):new Uint8Array(0),this},d.ArrayBuffer.prototype.end=function(x){var C=this._buff,T=C.length,v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],w,S;for(w=0;w<T;w+=1)v[w>>2]|=C[w]<<(w%4<<3);return this._finish(v,T),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 T=u(new Uint8Array(x)),v=f(T);return C?h(v):v},d})})(pp);var K_=pp.exports;const P_=Fi(K_),X_=["lastShaderProgramBound","context","_openGLRenderWindow"];function I_(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=`
  615. `,u=`#version 100
  616. `;i?u=`#version 300 es
  617. #define attribute in
  618. #define textureCube texture
  619. #define texture2D texture
  620. #define textureCubeLod textureLod
  621. #define texture2DLod textureLod
  622. `:(e.context.getExtension("OES_standard_derivatives"),e.context.getExtension("EXT_frag_depth")&&(o=`#extension GL_EXT_frag_depth : enable
  623. `),e.context.getExtension("EXT_shader_texture_lod")&&(o+=`#extension GL_EXT_shader_texture_lod : enable
  624. #define textureCubeLod textureCubeLodEXT
  625. #define texture2DLod texture2DLodEXT`)),s=z.substitute(s,"//VTK::System::Dec",[`${u}
  626. `,i?"":`#extension GL_OES_standard_derivatives : enable
  627. `,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}
  628. `,"#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};
  629. `,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=P_.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 Y_={lastShaderProgramBound:null,shaderPrograms:null,context:null};function hp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Y_,n),e.shaderPrograms={},_.obj(t,e),_.setGet(t,e,X_),_.moveToProtected(t,e,["openGLRenderWindow"]),I_(t,e)}const q_=_.newInstance(hp,"vtkShaderCache");var Q_={newInstance:q_,extend:hp};const{vtkErrorMacro:J_}=_;function Z_(t,e){e.classHierarchy.push("vtkOpenGLTextureUnitManager"),t.deleteTable=()=>{for(let n=0;n<e.numberOfTextureUnits;++n)e.textureUnits[n]===!0&&J_("some texture units were not properly released");e.textureUnits=[],e.numberOfTextureUnits=0},t.setContext=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<e.numberOfTextureUnits;++r)e.textureUnits[r]=!1}t.modified()}},t.allocate=()=>{for(let n=0;n<e.numberOfTextureUnits;n++)if(!t.isAllocated(n))return e.textureUnits[n]=!0,n;return-1},t.allocateUnit=n=>t.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;n<e.numberOfTextureUnits;++n)e.textureUnits[n]=!1}}const eE={context:null,numberOfTextureUnits:0,textureUnits:0};function dp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eE,n),_.obj(t,e),e.textureUnits=[],_.get(t,e,["numberOfTextureUnits"]),_.setGet(t,e,["context"]),Z_(t,e)}const tE=_.newInstance(dp,"vtkOpenGLTextureUnitManager");var nE={newInstance:tE,extend:dp};function rE(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=()=>{_.vtkErrorMacro("not implemented")},t.getPixelData=(n,r,a,s)=>{_.vtkErrorMacro("not implemented")},t.createSelector=()=>{_.vtkErrorMacro("not implemented")}}const aE={size:void 0,selector:void 0};function vp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aE,n),e.size||(e.size=[300,300]),_.getArray(t,e,["size"],2),_.get(t,e,["selector"]),Ne.extend(t,e,n),rE(t,e)}const sE=_.newInstance(vp,"vtkRenderWindowViewNode");var yp={newInstance:sE,extend:vp};const iE="__getUnderlyingContext";function oE(){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===iE)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:ou,vtkErrorMacro:cu}=_,cE={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function ut(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 ds=0;const Tp=[];function uE(){ds++,Tp.forEach(t=>t(ds))}function fE(){ds--,Tp.forEach(t=>t(ds))}function uu(t){t.preventDefault()}function lE(t,e){e.classHierarchy.push("vtkOpenGLRenderWindow");const n=oE();t.getViewNodeFactory=()=>e.myFactory,e.canvas.addEventListener("webglcontextlost",uu,!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=nE.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&&cu("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,ou("using webgl2"))),f||(ou("using webgl1"),f=e.canvas.getContext("webgl",c)||e.canvas.getContext("experimental-webgl",c)),new Proxy(f,n)},t.restoreContext=()=>{const c=hn.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){cu("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 Ie.CHAR:case Ie.SIGNED_CHAR:case Ie.UNSIGNED_CHAR:return 1;case f:case l:case Ie.UNSIGNED_SHORT:case Ie.SHORT:case Ie.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 Ie.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&&Ie.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&&Ie.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 Ie.UNSIGNED_SHORT:case Ie.SHORT:case Ie.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;w<v.length;w++){const S=v[w],O=S.getBoundingClientRect(),R=O.x-g.x,B=O.y-g.y;l.drawImage(S,R,B)}}})});const h=f.toDataURL(c);f.remove(),t.invokeImageReady(h)}t.captureNextImage=function(){let c=arguments.length>0&&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(y=>y*g):null},new Promise((y,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:T,arg:v}=C;return T(v)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),y(x);else{const C=document.createElement("img");if(C.style=cE,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 T=f!==!0;e._screenshot.cameras=e.renderable.getRenderers().map(v=>{const w=v.getActiveCamera(),S=w.get("focalPoint","position","parallelScale");return{resetCameraArgs:T?{renderer:v}:void 0,resetCameraFn:T?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"),y=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",y&&c.getParameter(y.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&&ut(c,c.RGBA,c.UNSIGNED_BYTE)?"RGBA":"",f&&ut(c,c.RGB,c.UNSIGNED_BYTE)?"RGB":"",f&&ut(c,c.LUMINANCE,c.UNSIGNED_BYTE)?"LUMINANCE":"",f&&ut(c,c.ALPHA,c.UNSIGNED_BYTE)?"ALPHA":"",f&&ut(c,c.LUMINANCE_ALPHA,c.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[l&&ut(c,c.RGBA,l.HALF_FLOAT_OES)?"RGBA":"",l&&ut(c,c.RGB,l.HALF_FLOAT_OES)?"RGB":"",l&&ut(c,c.LUMINANCE,l.HALF_FLOAT_OES)?"LUMINANCE":"",l&&ut(c,c.ALPHA,l.HALF_FLOAT_OES)?"ALPHA":"",l&&ut(c,c.LUMINANCE_ALPHA,l.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[f&&ut(c,c.RGBA,c.FLOAT)?"RGBA":"",f&&ut(c,c.RGB,c.FLOAT)?"RGB":"",f&&ut(c,c.LUMINANCE,c.FLOAT)?"LUMINANCE":"",f&&ut(c,c.ALPHA,c.FLOAT)?"ALPHA":"",f&&ut(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<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).rangeMax,"</sup>)"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).rangeMax,"</sup>)"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_FLOAT).rangeMax,"</sup>)"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).rangeMax,"</sup>)"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).rangeMax,"</sup>)"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_FLOAT).rangeMax,"</sup>)"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_INT).rangeMax,"</sup>)"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_INT).rangeMax,"</sup>)"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.LOW_INT).rangeMax,"</sup>)"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_INT).rangeMax,"</sup>)"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_INT).rangeMax,"</sup>)"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).precision," (-2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).rangeMin,"</sup> - 2<sup>",c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.LOW_INT).rangeMax,"</sup>)"].join("")],["Supported Extensions","EXTENSIONS",c.getSupportedExtensions().join("<br/> ")],["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,T]=h.pop();C&&(d[C]={label:x,value:T})}return e._glInformation=d,d},t.traverseAllPasses=()=>{if(e.renderPasses)for(let c=0;c<e.renderPasses.length;++c)e.renderPasses[c].traverse(t,null);e.notifyStartCaptureImage&&s()},t.disableCullFace=()=>{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=gp.newInstance();return c.setOpenGLRenderWindow(t),c};function o(){e.canvas.removeEventListener("webglcontextlost",uu),e.canvas.removeEventListener("webglcontextrestored",t.restoreContext)}t.delete=_.chain(o,t.delete,t.setViewStream,fE),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 gE={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 pE(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gE,n),yp.extend(t,e,n),e.canvas=document.createElement("canvas"),e.canvas.style.width="100%",uE(),e.selector||(e.selector=gp.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=U1.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",xp),e.shaderCache=Q_.newInstance(),e.shaderCache.setOpenGLRenderWindow(t),e.renderPasses[0]=M_.newInstance(),_.event(t,e,"imageReady"),_.get(t,e,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer"]),_.setGet(t,e,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),_.setGetArray(t,e,["size"],2),_.event(t,e,"windowResizeEvent"),lE(t,e)}const xp=_.newInstance(pE,"vtkOpenGLRenderWindow");mo("WebGL",xp);const si=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function hE(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<e.drawCallbacks.length;n++){const r=e.drawCallbacks[n],a=r.pipeline;t.setPipeline(a);for(let s=0;s<r.callbacks.length;s++)r.callbacks[s](t)}e.label&&e.handle.popDebugGroup(),e.handle.end(),e.boundPipeline=null},t.setPipeline=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.colorTextureViews.length;i++){const o=(a=e.colorTextureViews[i].getTexture())==null?void 0:a.getFormat();o&&o!==r.fragment.targets[i].format&&(console.log(`mismatched attachments for attachment ${i} on pipeline ${r.fragment.targets[i].format} while encoder has ${o}`),console.trace())}if(!e.depthTextureView!=!("depthStencil"in r))console.log("mismatched depth attachments"),console.trace();else if(e.depthTextureView){const i=(s=e.depthTextureView.getTexture())==null?void 0:s.getFormat();i&&i!==r.depthStencil.format&&(console.log(`mismatched depth attachments on pipeline ${r.depthStencil.format} while encoder has ${i}`),console.trace())}e.boundPipeline=n},t.replaceShaderCode=n=>{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
  630. ${s}
  631. versus pipeline
  632. ${i}
  633. `),console.trace())},t.attachTextureViews=()=>{for(let n=0;n<e.colorTextureViews.length;n++)e.description.colorAttachments[n]?e.description.colorAttachments[n].view=e.colorTextureViews[n].getHandle():e.description.colorAttachments[n]={view:e.colorTextureViews[n].getHandle()};e.depthTextureView&&(e.description.depthStencilAttachment.view=e.depthTextureView.getHandle())},t.registerDrawCallback=(n,r)=>{for(let a=0;a<e.drawCallbacks.length;a++)if(e.drawCallbacks[a].pipeline===n){e.drawCallbacks[a].callbacks.push(r);return}e.drawCallbacks.push({pipeline:n,callbacks:[r]})};for(let n=0;n<si.length;n++)t[si[n]]=function(){return e.handle[si[n]](...arguments)}}const dE={description:null,handle:null,boundPipeline:null,pipelineHash:null,pipelineSettings:null,replaceShaderCodeFunction:null,depthTextureView:null,label:null};function Sp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dE,n),Ze(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<f32>","outColor");let s=a.getCode();s=oe.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=[],ht(t,e,["boundPipeline","colorTextureViews"]),Ke(t,e,["depthTextureView","description","handle","label","pipelineHash","pipelineSettings","replaceShaderCodeFunction"]),hE(t,e)}const vE=me(Sp,"vtkWebGPURenderEncoder");var un={newInstance:vE,extend:Sp};function yE(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=tn.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=tn.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=un.newInstance({label:"OpaquePass"}),e.renderEncoder.setPipelineHash("op")}}const TE={renderEncoder:null,colorTexture:null,depthTexture:null};function Cp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,TE,n),hn.extend(t,e,n),_.get(t,e,["colorTexture","depthTexture"]),yE(t,e)}const xE=_.newInstance(Cp,"vtkWebGPUOpaquePass");var SE={newInstance:xE,extend:Cp};const CE=`
  634. //VTK::Mapper::Dec
  635. //VTK::TCoord::Dec
  636. //VTK::RenderEncoder::Dec
  637. //VTK::IOStructs::Dec
  638. @fragment
  639. fn main(
  640. //VTK::IOStructs::Input
  641. )
  642. //VTK::IOStructs::Output
  643. {
  644. var output: fragmentOutput;
  645. var tcoord: vec2<i32> = vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y));
  646. var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;
  647. if (reveal == 1.0) { discard; }
  648. var tcolor: vec4<f32> = textureLoad(oitpColorTexture, tcoord, 0);
  649. var total: f32 = max(tcolor.a, 0.01);
  650. var computedColor: vec4<f32> = vec4<f32>(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);
  651. //VTK::RenderEncoder::Impl
  652. return output;
  653. }
  654. `;function wE(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=tn.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=tn.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=Or.newInstance(),e.fullScreenQuad.setDevice(r.getDevice()),e.fullScreenQuad.setPipelineHash("oitpfsq"),e.fullScreenQuad.setTextureViews(e.translucentRenderEncoder.getColorTextureViews()),e.fullScreenQuad.setFragmentShaderTemplate(CE)}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=un.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<f32>","outColor"),a.addOutput("f32","outAccum"),a.addBuiltinInput("vec4<f32>","@builtin(position) fragPos");let s=a.getCode();s=oe.substitute(s,"//VTK::RenderEncoder::Impl",["var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);","output.outColor = vec4<f32>(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=un.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<f32>","outColor"),r.addBuiltinInput("vec4<f32>","@builtin(position) fragPos");let a=r.getCode();a=oe.substitute(a,"//VTK::RenderEncoder::Impl",["output.outColor = vec4<f32>(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 _E={colorTextureView:null,depthTextureView:null};function wp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_E,n),hn.extend(t,e,n),_.setGet(t,e,["colorTextureView","depthTextureView"]),wE(t,e)}const EE=_.newInstance(wp,"vtkWebGPUOrderIndependentTranslucentPass");var RE={newInstance:EE,extend:wp};const lr={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5},OE=`
  655. //VTK::Renderer::Dec
  656. //VTK::Mapper::Dec
  657. //VTK::TCoord::Dec
  658. //VTK::Volume::TraverseDec
  659. //VTK::RenderEncoder::Dec
  660. //VTK::IOStructs::Dec
  661. fn getTextureValue(vTex: texture_3d<f32>, tpos: vec4<f32>) -> f32
  662. {
  663. // todo multicomponent support
  664. return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;
  665. }
  666. fn getGradient(vTex: texture_3d<f32>, tpos: vec4<f32>, vNum: i32, scalar: f32) -> vec4<f32>
  667. {
  668. var result: vec4<f32>;
  669. var tstep: vec4<f32> = volumeSSBO.values[vNum].tstep;
  670. result.x = getTextureValue(vTex, tpos + vec4<f32>(tstep.x, 0.0, 0.0, 1.0)) - scalar;
  671. result.y = getTextureValue(vTex, tpos + vec4<f32>(0.0, tstep.y, 0.0, 1.0)) - scalar;
  672. result.z = getTextureValue(vTex, tpos + vec4<f32>(0.0, 0.0, tstep.z, 1.0)) - scalar;
  673. result.w = 0.0;
  674. // divide by spacing as that is our delta
  675. result = result / volumeSSBO.values[vNum].spacing;
  676. // now we have a gradient in unit tcoords
  677. var grad: f32 = length(result.xyz);
  678. if (grad > 0.0)
  679. {
  680. // rotate to View Coords, needed for lighting and shading
  681. var nMat: mat4x4<f32> = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;
  682. result = nMat * result;
  683. result = result / length(result);
  684. }
  685. // store gradient magnitude in .w
  686. result.w = grad;
  687. return result;
  688. }
  689. fn processVolume(vTex: texture_3d<f32>, vNum: i32, cNum: i32, posSC: vec4<f32>, tfunRows: f32) -> vec4<f32>
  690. {
  691. var outColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  692. // convert to tcoords and reject if outside the volume
  693. var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*posSC;
  694. if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 ||
  695. tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; }
  696. var scalar: f32 = getTextureValue(vTex, tpos);
  697. var coord: vec2<f32> =
  698. vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,
  699. (0.5 + 2.0 * f32(vNum)) / tfunRows);
  700. var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);
  701. var gofactor: f32 = 1.0;
  702. var normal: vec4<f32> = vec4<f32>(0.0,0.0,0.0,0.0);
  703. if (componentSSBO.values[cNum].gomin < 1.0 || volumeSSBO.values[vNum].shade[0] > 0.0)
  704. {
  705. normal = getGradient(vTex, tpos, vNum, scalar);
  706. if (componentSSBO.values[cNum].gomin < 1.0)
  707. {
  708. gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,
  709. componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);
  710. }
  711. }
  712. coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);
  713. var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;
  714. if (volumeSSBO.values[vNum].shade[0] > 0.0)
  715. {
  716. color = color*abs(normal.z);
  717. }
  718. outColor = vec4<f32>(color.rgb, gofactor * opacity);
  719. return outColor;
  720. }
  721. // adjust the start and end point of a raycast such that it intersects the unit cube.
  722. // This function is used to take a raycast starting point and step vector
  723. // and numSteps and return the startijng and ending steps for intersecting the
  724. // unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates
  725. // that have valid values. So this funtion can be used to take a ray in texture coordinates
  726. // and bound it to intersecting the texture.
  727. //
  728. fn adjustBounds(tpos: vec4<f32>, tstep: vec4<f32>, numSteps: f32) -> vec2<f32>
  729. {
  730. var result: vec2<f32> = vec2<f32>(0.0, numSteps);
  731. var tpos2: vec4<f32> = tpos + tstep*numSteps;
  732. // move tpos to the start of the volume
  733. var adjust: f32 =
  734. min(
  735. max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),
  736. min(
  737. max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),
  738. max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));
  739. if (adjust < 0.0)
  740. {
  741. result.x = result.x - adjust;
  742. }
  743. // adjust length to the end
  744. adjust =
  745. max(
  746. min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),
  747. max(
  748. min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),
  749. min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));
  750. if (adjust > 0.0)
  751. {
  752. result.y = result.y - adjust;
  753. }
  754. return result;
  755. }
  756. fn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4<f32>
  757. {
  758. // how many rows (tfuns) do we have in our tfunTexture
  759. var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);
  760. var coord: vec2<f32> =
  761. vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,
  762. (0.5 + 2.0 * f32(vNum)) / tfunRows);
  763. var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);
  764. coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);
  765. var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;
  766. return vec4<f32>(color.rgb, opacity);
  767. }
  768. fn traverseMax(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
  769. {
  770. // convert to tcoords and reject if outside the volume
  771. var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
  772. var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
  773. var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
  774. var tstep: vec4<f32> = tpos2 - tpos;
  775. var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
  776. // did we hit anything
  777. if (rayBounds.x >= rayBounds.y)
  778. {
  779. traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
  780. return;
  781. }
  782. tpos = tpos + tstep*rayBounds.x;
  783. var curDist: f32 = rayBounds.x;
  784. var maxVal: f32 = -1.0e37;
  785. loop
  786. {
  787. var scalar: f32 = getTextureValue(vTex, tpos);
  788. if (scalar > maxVal)
  789. {
  790. maxVal = scalar;
  791. }
  792. // increment position
  793. curDist = curDist + 1.0;
  794. tpos = tpos + tstep;
  795. // check if we have reached a terminating condition
  796. if (curDist > rayBounds.y) { break; }
  797. }
  798. // process to get the color and opacity
  799. traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);
  800. }
  801. fn traverseMin(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
  802. {
  803. // convert to tcoords and reject if outside the volume
  804. var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
  805. var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
  806. var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
  807. var tstep: vec4<f32> = tpos2 - tpos;
  808. var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
  809. // did we hit anything
  810. if (rayBounds.x >= rayBounds.y)
  811. {
  812. traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
  813. return;
  814. }
  815. tpos = tpos + tstep*rayBounds.x;
  816. var curDist: f32 = rayBounds.x;
  817. var minVal: f32 = 1.0e37;
  818. loop
  819. {
  820. var scalar: f32 = getTextureValue(vTex, tpos);
  821. if (scalar < minVal)
  822. {
  823. minVal = scalar;
  824. }
  825. // increment position
  826. curDist = curDist + 1.0;
  827. tpos = tpos + tstep;
  828. // check if we have reached a terminating condition
  829. if (curDist > rayBounds.y) { break; }
  830. }
  831. // process to get the color and opacity
  832. traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);
  833. }
  834. fn traverseAverage(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
  835. {
  836. // convert to tcoords and reject if outside the volume
  837. var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
  838. var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
  839. var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
  840. var tstep: vec4<f32> = tpos2 - tpos;
  841. var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
  842. // did we hit anything
  843. if (rayBounds.x >= rayBounds.y)
  844. {
  845. traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
  846. return;
  847. }
  848. let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;
  849. tpos = tpos + tstep*rayBounds.x;
  850. var curDist: f32 = rayBounds.x;
  851. var avgVal: f32 = 0.0;
  852. var sampleCount: f32 = 0.0;
  853. loop
  854. {
  855. var sample: f32 = getTextureValue(vTex, tpos);
  856. // right now leave filtering off until WebGL changes get merged
  857. // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)
  858. // {
  859. avgVal = avgVal + sample;
  860. sampleCount = sampleCount + 1.0;
  861. // }
  862. // increment position
  863. curDist = curDist + 1.0;
  864. tpos = tpos + tstep;
  865. // check if we have reached a terminating condition
  866. if (curDist > rayBounds.y) { break; }
  867. }
  868. if (sampleCount <= 0.0)
  869. {
  870. traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
  871. }
  872. // process to get the color and opacity
  873. traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);
  874. }
  875. fn traverseAdditive(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
  876. {
  877. // convert to tcoords and reject if outside the volume
  878. var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
  879. var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
  880. var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
  881. var tstep: vec4<f32> = tpos2 - tpos;
  882. var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
  883. // did we hit anything
  884. if (rayBounds.x >= rayBounds.y)
  885. {
  886. traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
  887. return;
  888. }
  889. let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;
  890. tpos = tpos + tstep*rayBounds.x;
  891. var curDist: f32 = rayBounds.x;
  892. var sumVal: f32 = 0.0;
  893. loop
  894. {
  895. var sample: f32 = getTextureValue(vTex, tpos);
  896. // right now leave filtering off until WebGL changes get merged
  897. // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)
  898. // {
  899. sumVal = sumVal + sample;
  900. // }
  901. // increment position
  902. curDist = curDist + 1.0;
  903. tpos = tpos + tstep;
  904. // check if we have reached a terminating condition
  905. if (curDist > rayBounds.y) { break; }
  906. }
  907. // process to get the color and opacity
  908. traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);
  909. }
  910. fn composite(rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>) -> vec4<f32>
  911. {
  912. // initial ray position is at the beginning
  913. var rayPosSC: vec4<f32> = minPosSC;
  914. // how many rows (tfuns) do we have in our tfunTexture
  915. var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);
  916. var curDist: f32 = 0.0;
  917. var computedColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  918. var sampleColor: vec4<f32>;
  919. //VTK::Volume::TraverseCalls
  920. loop
  921. {
  922. // for each volume, sample and accumulate color
  923. //VTK::Volume::CompositeCalls
  924. // increment position
  925. curDist = curDist + mapperUBO.SampleDistance;
  926. rayPosSC = rayPosSC + rayStepSC;
  927. // check if we have reached a terminating condition
  928. if (curDist > rayLengthSC) { break; }
  929. if (computedColor.a > 0.98) { break; }
  930. }
  931. return computedColor;
  932. }
  933. @fragment
  934. fn main(
  935. //VTK::IOStructs::Input
  936. )
  937. //VTK::IOStructs::Output
  938. {
  939. var output: fragmentOutput;
  940. var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;
  941. var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;
  942. // discard empty rays
  943. if (rayMax <= rayMin) { discard; }
  944. else
  945. {
  946. // compute start and end ray positions in view coordinates
  947. var minPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);
  948. minPosSC = minPosSC * (1.0 / minPosSC.w);
  949. var maxPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);
  950. maxPosSC = maxPosSC * (1.0 / maxPosSC.w);
  951. var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);
  952. var rayStepSC: vec4<f32> = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);
  953. rayStepSC.w = 0.0;
  954. var computedColor: vec4<f32>;
  955. //VTK::Volume::Loop
  956. //VTK::RenderEncoder::Impl
  957. }
  958. return output;
  959. }
  960. `,ft=new Float64Array(16),Sn=new Float64Array(16);function DE(t,e){e.classHierarchy.push("vtkWebGPUVolumePassFSQ"),t.replaceShaderPosition=(a,s,i)=>{const o=s.getShaderDescription("vertex");o.addBuiltinOutput("vec4<f32>","@builtin(position) Position");let u=o.getCode();u=oe.substitute(u,"//VTK::Position::Impl",["output.tcoordVS = vec2<f32>(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4<f32>(vertexBC, 1.0);"]).result,o.setCode(u),s.getShaderDescription("fragment").addBuiltinInput("vec4<f32>","@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<e.volumes.length;g++)e.volumes[g].getRenderable().getMapper().getBlendMode()===lr.COMPOSITE_BLEND?(c.push(` sampleColor = processVolume(volTexture${g}, ${g}, ${e.rowStarts[g]}, rayPosSC, tfunRows);`),c.push(` computedColor = vec4<f32>(
  961. sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,
  962. (1.0 - computedColor.a)*sampleColor.a + computedColor.a);`)):(f.push(` sampleColor = traverseVals[${g}];`),f.push(` computedColor = vec4<f32>(
  963. sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,
  964. (1.0 - computedColor.a)*sampleColor.a + computedColor.a);`));u=oe.substitute(u,"//VTK::Volume::CompositeCalls",c).result,u=oe.substitute(u,"//VTK::Volume::TraverseCalls",f).result,u=oe.substitute(u,"//VTK::Volume::TraverseDec",[`var<private> traverseVals: array<vec4<f32>,${e.volumes.length}>;`]).result;let l=!1;for(let g=0;g<e.volumes.length;g++){const p=e.volumes[g].getRenderable().getMapper().getBlendMode();p===lr.COMPOSITE_BLEND?l=!0:p===lr.MAXIMUM_INTENSITY_BLEND?u=oe.substitute(u,"//VTK::Volume::Loop",[` traverseMax(volTexture${g}, ${g}, ${g}, rayLengthSC, minPosSC, rayStepSC);`,` computedColor = traverseVals[${g}];`,"//VTK::Volume::Loop"]).result:p===lr.MINIMUM_INTENSITY_BLEND?u=oe.substitute(u,"//VTK::Volume::Loop",[` traverseMin(volTexture${g}, ${g}, ${g}, rayLengthSC, minPosSC, rayStepSC);`,` computedColor = traverseVals[${g}];`,"//VTK::Volume::Loop"]).result:p===lr.AVERAGE_INTENSITY_BLEND?u=oe.substitute(u,"//VTK::Volume::Loop",[` traverseAverage(volTexture${g}, ${g}, ${g}, rayLengthSC, minPosSC, rayStepSC);`,` computedColor = traverseVals[${g}];`,"//VTK::Volume::Loop"]).result:p===lr.ADDITIVE_INTENSITY_BLEND&&(u=oe.substitute(u,"//VTK::Volume::Loop",[` traverseAdditive(volTexture${g}, ${g}, ${g}, rayLengthSC, minPosSC, rayStepSC);`,` computedColor = traverseVals[${g}];`,"//VTK::Volume::Loop"]).result)}l&&(u=oe.substitute(u,"//VTK::Volume::Loop",[" computedColor = composite(rayLengthSC, minPosSC, rayStepSC);"]).result),o.setCode(u)},e.shaderReplacements.set("replaceShaderVolume",t.replaceShaderVolume),t.updateLUTImage=a=>{let s=t.getMTime();for(let l=0;l<e.volumes.length;l++){const g=e.volumes[l].getRenderable(),p=g.getMapper().getInputData();s=Math.max(s,g.getMTime(),p.getMTime())}if(s<e.lutBuildTime.getMTime())return;e.numRows=0,e.rowStarts=[];for(let l=0;l<e.volumes.length;l++){e.rowStarts.push(e.numRows);const p=e.volumes[l].getRenderable(),y=p.getMapper(),h=p.getProperty(),d=y.getInputData(),C=(d.getPointData()&&d.getPointData().getScalars()).getNumberOfComponents(),v=h.getIndependentComponents()?C:1;e.numRows+=v}const i=new Uint8ClampedArray(e.numRows*2*e.rowLength*4),o=new Float32Array(e.numRows*2*e.rowLength);let u=0;const c=new Float32Array(e.rowLength*3),f=e.rowLength;for(let l=0;l<e.volumes.length;l++){const p=e.volumes[l].getRenderable(),y=p.getMapper(),h=p.getProperty(),d=y.getInputData(),C=(d.getPointData()&&d.getPointData().getScalars()).getNumberOfComponents(),v=h.getIndependentComponents()?C:1;for(let w=0;w<v;++w){const S=h.getRGBTransferFunction(w),O=S.getRange();S.getTable(O[0],O[1],f,c,1);let R=u*f*4;for(let L=0;L<f;++L){i[R+L*4]=255*c[L*3],i[R+L*4+1]=255*c[L*3+1],i[R+L*4+2]=255*c[L*3+2],i[R+L*4+3]=255;for(let k=0;k<4;k++)i[R+(f+L)*4+k]=i[R+L*4+k]}const B=h.getScalarOpacity(w),m=e.sampleDist/h.getScalarOpacityUnitDistance(w),V=B.getRange();B.getTable(V[0],V[1],f,c,1),R=u*f;for(let L=0;L<f;++L)o[R+L]=1-(1-c[L])**m,o[R+L+f]=o[R+L];u+=2}}{const l={nativeArray:i,width:e.rowLength,height:e.numRows*2,depth:1,format:"rgba8unorm"},p=a.getTextureManager().getTexture(l).createView("tfunTexture");e.textureViews[2]=p}{const l={nativeArray:o,width:e.rowLength,height:e.numRows*2,depth:1,format:"r16float"},p=a.getTextureManager().getTexture(l).createView("ofunTexture");e.textureViews[3]=p}e.lutBuildTime.modified()},t.updateSSBO=a=>{let s=Math.max(t.getMTime(),e.WebGPURenderer.getStabilizedTime());for(let S=0;S<e.volumes.length;S++){const O=e.volumes[S].getRenderable(),R=O.getMapper(),B=R.getInputData();s=Math.max(s,O.getMTime(),B.getMTime(),R.getMTime())}if(s<e.SSBO.getSendTime())return;const i=e.WebGPURenderer.getStabilizedCenterByReference();e.SSBO.clearData(),e.SSBO.setNumberOfInstances(e.volumes.length);const o=new Float64Array(e.volumes.length*16),u=new Float64Array(e.volumes.length*16),c=new Float64Array(e.volumes.length*4),f=new Float64Array(e.volumes.length*4),l=new Float64Array(e.volumes.length*4),g=new Float64Array(e.volumes.length*4);for(let S=0;S<e.volumes.length;S++){const R=e.volumes[S].getRenderable(),B=R.getMapper(),m=B.getInputData();he(ft),ze(ft,ft,i);const V=R.getMatrix();Le(Sn,V),Tt(Sn,Sn),pt(ft,Sn,ft);const L=m.getWorldToIndex();pt(ft,L,ft);const k=m.getDimensions();he(Sn),_r(Sn,Sn,[1/k[0],1/k[1],1/k[2]]),pt(ft,Sn,ft);for(let ee=0;ee<16;ee++)o[S*16+ee]=ft[ee];Tt(ft,ft);for(let ee=0;ee<4;ee++)u[S*16+ee*4]=ft[ee*4],u[S*16+ee*4+1]=ft[ee*4+1],u[S*16+ee*4+2]=ft[ee*4+2],u[S*16+ee*4+3]=0;c[S*4]=1/k[0],c[S*4+1]=1/k[1],c[S*4+2]=1/k[2],c[S*4+3]=1,f[S*4]=R.getProperty().getShade()?1:0;const N=m.getSpacing();l[S*4]=N[0],l[S*4+1]=N[1],l[S*4+2]=N[2],l[S*4+3]=1;const I=e.textureViews[S+4].getTexture().getScale(),P=B.getIpScalarRange();g[S*4]=P[0]/I,g[S*4+1]=P[1]/I,g[S*4+2]=B.getFilterMode()}e.SSBO.addEntry("SCTCMatrix","mat4x4<f32>"),e.SSBO.addEntry("planeNormals","mat4x4<f32>"),e.SSBO.addEntry("shade","vec4<f32>"),e.SSBO.addEntry("tstep","vec4<f32>"),e.SSBO.addEntry("spacing","vec4<f32>"),e.SSBO.addEntry("ipScalarRange","vec4<f32>"),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),y=new Float64Array(e.numRows),h=new Float64Array(e.numRows),d=new Float64Array(e.numRows),x=new Float64Array(e.numRows),C=new Float64Array(e.numRows),T=new Float64Array(e.numRows),v=new Float64Array(e.numRows);let w=0;for(let S=0;S<e.volumes.length;S++){const R=e.volumes[S].getRenderable(),B=R.getMapper(),m=R.getProperty(),V=B.getInputData(),k=(V.getPointData()&&V.getPointData().getScalars()).getNumberOfComponents(),N=m.getIndependentComponents(),I=e.textureViews[S+4].getTexture().getFormat(),P=Qe.getDetailsFromTextureFormat(I),ee=P.elementSize===2&&P.sampleType==="float",ae={scale:[255],offset:[0]};ee&&(ae.scale[0]=1);for(let W=0;W<k;W++){const b=N?W:0,j=ae.scale[W],te=m.getScalarOpacity(b).getRange(),Be=j/(te[1]-te[0]),xt=(ae.offset[W]-te[0])/(te[1]-te[0]);d[w]=xt,h[w]=Be;const J=m.getRGBTransferFunction(b).getRange();if(y[w]=(ae.offset[W]-J[0])/(J[1]-J[0]),p[w]=j/(J[1]-J[0]),m.getUseGradientOpacity(b)){const Re=m.getGradientOpacityMinimumOpacity(b),Ce=m.getGradientOpacityMaximumOpacity(b);x[w]=Re,C[w]=Ce;const Pe=[m.getGradientOpacityMinimumValue(b),m.getGradientOpacityMaximumValue(b)];v[w]=j*(Ce-Re)/(Pe[1]-Pe[0]),T[w]=-Pe[0]*(Ce-Re)/(Pe[1]-Pe[0])+Re}else x[w]=1,C[w]=1,v[w]=0,T[w]=1;w++}}e.componentSSBO.addEntry("cScale","f32"),e.componentSSBO.addEntry("cShift","f32"),e.componentSSBO.addEntry("oScale","f32"),e.componentSSBO.addEntry("oShift","f32"),e.componentSSBO.addEntry("goShift","f32"),e.componentSSBO.addEntry("goScale","f32"),e.componentSSBO.addEntry("gomin","f32"),e.componentSSBO.addEntry("gomax","f32"),e.componentSSBO.setAllInstancesFromArray("cScale",p),e.componentSSBO.setAllInstancesFromArray("cShift",y),e.componentSSBO.setAllInstancesFromArray("oScale",h),e.componentSSBO.setAllInstancesFromArray("oShift",d),e.componentSSBO.setAllInstancesFromArray("goScale",v),e.componentSSBO.setAllInstancesFromArray("goShift",T),e.componentSSBO.setAllInstancesFromArray("gomin",x),e.componentSSBO.setAllInstancesFromArray("gomax",C),e.componentSSBO.send(a)};const n=t.updateBuffers;t.updateBuffers=()=>{n();let a=e.volumes[0].getRenderable().getMapper().getSampleDistance();for(let s=0;s<e.volumes.length;s++){const u=e.volumes[s].getRenderable().getMapper().getSampleDistance();u<a&&(a=u)}e.sampleDist!==a&&(e.sampleDist=a,e.UBO.setValue("SampleDistance",a),e.UBO.sendIfNeeded(e.device));for(let s=0;s<e.volumes.length;s++){const c=e.volumes[s].getRenderable().getMapper().getInputData(),f=e.device.getTextureManager().getTextureForImageData(c);if(!e.textureViews[s+4]||e.textureViews[s+4].getTexture()!==f){const l=f.createView(`volTexture${s}`);e.textureViews[s+4]=l}}if(e.volumes.length<e.lastVolumeLength)for(let s=e.volumes.length;s<e.lastVolumeLength;s++)e.textureViews.pop();e.lastVolumeLength=e.volumes.length,t.updateLUTImage(e.device),t.updateSSBO(e.device),e.clampSampler||(e.clampSampler=Do.newInstance({label:"clampSampler"}),e.clampSampler.create(e.device,{minFilter:"linear",magFilter:"linear"}))},t.computePipelineHash=()=>{e.pipelineHash="volfsq";for(let a=0;a<e.volumes.length;a++){const s=e.volumes[a].getRenderable().getMapper().getBlendMode();e.pipelineHash+=`${s}`}},t.setVolumes=a=>{if(!e.volumes||e.volumes.length!==a.length){e.volumes=[...a],t.modified();return}for(let s=0;s<a.length;s++)if(a[s]!==e.volumes[s]){e.volumes=[...a],t.modified();return}};const r=t.getBindables;t.getBindables=()=>{const a=r();return a.push(e.componentSSBO),a.push(e.clampSampler),a}}const mE={volumes:null,rowLength:1024,lastVolumeLength:0};function _p(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mE,n),Or.extend(t,e,n),e.fragmentShaderTemplate=OE,e.UBO=Zn.newInstance({label:"mapperUBO"}),e.UBO.addEntry("SampleDistance","f32"),e.SSBO=Li.newInstance({label:"volumeSSBO"}),e.componentSSBO=Li.newInstance({label:"componentSSBO"}),e.lutBuildTime={},_.obj(e.lutBuildTime,{mtime:0}),DE(t,e)}const ME=_.newInstance(_p,"vtkWebGPUVolumePassFSQ");var VE={newInstance:ME,extend:_p};const{Representation:LE}=Br,{BufferUsage:fu,PrimitiveTypes:BE}=Ln,ii=[[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]],kE=`
  965. //VTK::Renderer::Dec
  966. //VTK::Select::Dec
  967. //VTK::VolumePass::Dec
  968. //VTK::TCoord::Dec
  969. //VTK::RenderEncoder::Dec
  970. //VTK::Mapper::Dec
  971. //VTK::IOStructs::Dec
  972. @fragment
  973. fn main(
  974. //VTK::IOStructs::Input
  975. )
  976. //VTK::IOStructs::Output
  977. {
  978. var output : fragmentOutput;
  979. //VTK::Select::Impl
  980. //VTK::TCoord::Impl
  981. //VTK::VolumePass::Impl
  982. // use the maximum (closest) of the current value and the zbuffer
  983. // the blend func will then take the min to find the farthest stop value
  984. var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y)), 0));
  985. //VTK::RenderEncoder::Impl
  986. return output;
  987. }
  988. `,FE=`
  989. //VTK::Renderer::Dec
  990. //VTK::Mapper::Dec
  991. //VTK::TCoord::Dec
  992. //VTK::RenderEncoder::Dec
  993. //VTK::IOStructs::Dec
  994. @fragment
  995. fn main(
  996. //VTK::IOStructs::Input
  997. )
  998. //VTK::IOStructs::Output
  999. {
  1000. var output: fragmentOutput;
  1001. var computedColor: vec4<f32> = textureSample(volumePassColorTexture,
  1002. volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);
  1003. //VTK::RenderEncoder::Impl
  1004. return output;
  1005. }
  1006. `;function UE(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=VE.newInstance(),e.fullScreenQuad.setDevice(n.getDevice()),e.fullScreenQuad.setTextureViews([...e._depthRangeEncoder.getColorTextureViews()])),e._volumeCopyQuad||(e._volumeCopyQuad=Or.newInstance(),e._volumeCopyQuad.setPipelineHash("volpassfsq"),e._volumeCopyQuad.setDevice(n.getDevice()),e._volumeCopyQuad.setFragmentShaderTemplate(FE),e._copyUBO=Zn.newInstance({label:"mapperUBO"}),e._copyUBO.addEntry("tscale","vec2<f32>"),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;l<e.volumes.length;l++){const g=e.volumes[l].getRenderable().getBounds(),p=[.5*(g[1]+g[0]),.5*(g[3]+g[2]),.5*(g[5]+g[4])];o[l]=Jt(p,i)}const u=[...Array(e.volumes.length).keys()];u.sort((l,g)=>o[g]-o[l]);let c=[],f=u.length%s;for(let l=0;l<u.length;l++)c.push(e.volumes[u[l]]),c.length>=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=_.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:fu.Index,cells:i,numberOfPoints:s.getNumberOfPoints(),primitiveType:BE.Triangles,representation:LE.SURFACE};const u=r.getDevice().getBufferManager().getBuffer(o);e._mapper.getVertexInput().setIndexBuffer(u),o={usage:fu.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.volumes.length;f++){const l=e.volumes[f].getMTime();(!e._lastMTimes[f]||l!==e._lastMTimes[f])&&(r=!0,e._lastMTimes[f]=l)}const a=n.getStabilizedTime();if((e._lastMTimes.length<=e.volumes.length||a!==e._lastMTimes[e.volumes.length])&&(r=!0,e._lastMTimes[e.volumes.length]=a),!r)return;const s=n.getStabilizedCenterByReference(),i=e.volumes.length*8,o=new Float64Array(i*3),u=e.volumes.length*12,c=new Uint16Array(u*4);for(let f=0;f<e.volumes.length;f++){e.volumes[f].getBoundingCubePoints(o,f*24);let l=f*12*4;const g=f*8;for(let p=0;p<12;p++)c[l++]=3,c[l++]=g+ii[p][0],c[l++]=g+ii[p][1],c[l++]=g+ii[p][2]}for(let f=0;f<o.length;f+=3)o[f]-=s[0],o[f+1]-=s[1],o[f+2]-=s[2];e._boundsPoly.getPoints().setData(o,3),e._boundsPoly.getPoints().modified(),e._boundsPoly.getPolys().setData(c,1),e._boundsPoly.getPolys().modified(),e._boundsPoly.modified()},t.drawDepthRange=(n,r)=>{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=un.newInstance({label:"VolumePass DepthRange"}),e._depthRangeEncoder.setPipelineHash("volr"),e._depthRangeEncoder.setReplaceShaderCodeFunction(i=>{const o=i.getShaderDescription("fragment");o.addOutput("vec4<f32>","outColor1"),o.addOutput("vec4<f32>","outColor2");let u=o.getCode();u=oe.substitute(u,"//VTK::RenderEncoder::Impl",["output.outColor1 = vec4<f32>(input.fragPos.z, 0.0, 0.0, 0.0);","output.outColor2 = vec4<f32>(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=tn.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=tn.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=tn.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=un.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=un.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=un.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<f32>","outColor");let s=a.getCode();s=oe.substitute(s,"//VTK::RenderEncoder::Impl",["output.outColor = vec4<f32>(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;r<n.length;r++)if(n[r]!==e.volumes[r]){e.volumes=[...n],t.modified();return}}}const bE={colorTextureView:null,depthTextureView:null,volumes:null};function Ep(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bE,n),hn.extend(t,e,n),e._mapper=Oo.newInstance(),e._mapper.setFragmentShaderTemplate(kE),e._mapper.getShaderReplacements().set("replaceShaderVolumePass",(r,a,s)=>{a.getShaderDescription("fragment").addBuiltinInput("vec4<f32>","@builtin(position) fragPos")}),e._boundsPoly=zt.newInstance(),e._lastMTimes=[],_.setGet(t,e,["colorTextureView","depthTextureView"]),UE(t,e)}const NE=_.newInstance(Ep,"vtkWebGPUVolumePass");var GE={newInstance:NE,extend:Ep};const $E=`
  1007. //VTK::Mapper::Dec
  1008. //VTK::TCoord::Dec
  1009. //VTK::RenderEncoder::Dec
  1010. //VTK::IOStructs::Dec
  1011. @fragment
  1012. fn main(
  1013. //VTK::IOStructs::Input
  1014. )
  1015. //VTK::IOStructs::Output
  1016. {
  1017. var output: fragmentOutput;
  1018. var computedColor: vec4<f32> = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4<f32>(0.0),vec4<f32>(1.0));
  1019. //VTK::RenderEncoder::Impl
  1020. return output;
  1021. }
  1022. `;function WE(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=SE.newInstance());const a=n.getRenderable().getNumberOfLayers(),s=n.getChildren();for(let i=0;i<a;i++)for(let o=0;o<s.length;o++){const u=s[o],c=n.getRenderable().getRenderers()[o];c.getDraw()&&c.getLayer()===i&&(e.opaqueActorCount=0,e.translucentActorCount=0,e.volumes=[],t.setCurrentOperation("queryPass"),u.traverse(t),t.setCurrentOperation("cameraPass"),u.traverse(t),e.opaquePass.traverse(u,n),e.translucentActorCount>0&&(e.translucentPass||(e.translucentPass=RE.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=GE.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=un.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=Do.newInstance({label:"finalPassSampler"}),e._fsqSampler.create(n.getDevice(),{minFilter:"linear",magFilter:"linear"}),e._fullScreenQuad=Or.newInstance(),e._fullScreenQuad.setDevice(n.getDevice()),e._fullScreenQuad.setPipelineHash("fpfsq"),e._fullScreenQuad.setTextureViews([e.opaquePass.getColorTextureView()]),e._fullScreenQuad.setAdditionalBindables([e._fsqSampler]),e._fullScreenQuad.setFragmentShaderTemplate($E),e._finalBlitOutputTextureView=$g.newInstance(),e._finalBlitEncoder.setColorTextureView(0,e._finalBlitOutputTextureView)},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.addVolume=n=>{e.volumes.push(n)}}const zE={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function Rp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zE,n),hn.extend(t,e,n),_.setGet(t,e,["opaquePass","translucentPass","volumePass"]),WE(t,e)}const AE=_.newInstance(Rp,"vtkForwardPass");var HE={newInstance:AE,extend:Rp};const{VtkDataTypes:zn}=Oe;function jE(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 zn.UNSIGNED_CHAR:a.format+="8unorm";break;case zn.FLOAT:case zn.UNSIGNED_INT:case zn.INT:case zn.DOUBLE:case zn.UNSIGNED_SHORT:case zn.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=tn.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 KE={handle:null,device:null};function Op(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KE,n),_.obj(t,e),_.setGet(t,e,["device"]),jE(t,e)}const PE=_.newInstance(Op);var XE={newInstance:PE,extend:Op};class IE 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 YE(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<n.entries.length;s++){const i=n.entries[s];i.binding=i.binding||0,i.visibility=i.visibility||GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT}const r=JSON.stringify(n);for(let s=0;s<e.bindGroupLayouts.length;s++)if(e.bindGroupLayouts[s].sval===r)return e.bindGroupLayouts[s].layout;const a=e.handle.createBindGroupLayout(n);return e.bindGroupLayouts.push({sval:r,layout:a}),a},t.getBindGroupLayoutDescription=n=>{for(let r=0;r<e.bindGroupLayouts.length;r++)if(e.bindGroupLayouts[r].layout===n)return e.bindGroupLayouts[r].sval;return vtkErrorMacro("layout not found"),console.trace(),null},t.getPipeline=n=>n 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;o<s;o++)i[o-2]=arguments[o];const u=r(...i);return e.objectCache.setValue(n,u),u}}const qE={handle:null,pipelines:null,shaderCache:null,bindGroupLayouts:null,bufferManager:null,textureManager:null};function Dp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qE,n),Ze(t,e),Ke(t,e,["handle"]),ht(t,e,["bufferManager","shaderCache","textureManager"]),e.objectCache=new IE,e.shaderCache=oe.newInstance(),e.shaderCache.setDevice(t),e.bindGroupLayouts=[],e.bufferManager=Ln.newInstance(),e.bufferManager.setDevice(t),e.textureManager=XE.newInstance(),e.textureManager.setDevice(t),e.pipelines={},YE(t,e)}const QE=me(Dp,"vtkWebGPUDevice");var JE={newInstance:QE,extend:Dp};function ZE(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=tn.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=tn.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=un.newInstance({label:"HardwareSelectionPass"}),e.selectionRenderEncoder.setPipelineHash("sel"),e.selectionRenderEncoder.setReplaceShaderCodeFunction(r=>{const a=r.getShaderDescription("fragment");a.addOutput("vec4<u32>","outColor");let s=a.getCode();s=oe.substitute(s,"//VTK::RenderEncoder::Impl",["output.outColor = vec4<u32>(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 eR={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function mp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eR,n),hn.extend(t,e,n),_.get(t,e,["colorTexture","depthTexture"]),ZE(t,e)}const tR=_.newInstance(mp,"vtkWebGPUHardwareSelectionPass");var nR={newInstance:tR,extend:mp};const{SelectionContent:rR,SelectionField:lu}=Os,{FieldAssociations:gu}=nr,{vtkErrorMacro:Mp}=_;function aR(t){return`${t.propID} ${t.compositeID}`}function pu(t,e,n,r){const a=((n.height-e-1)*n.colorBufferWidth+t)*4+r;return n.colorValues[a]}function dr(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=pu(e[0],e[1],t,0);if(u<=0)return null;const c={};c.propID=u;let f=pu(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=dr(t,e,0,r);if(o)return o;for(let u=1;u<a;++u){for(let c=s[1]>u?s[1]-u:0;c<=s[1]+u;++c)if(i[1]=c,s[0]>=u&&(i[0]=s[0]-u,o=dr(t,i,0,r),o)||(i[0]=s[0]+u,o=dr(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=dr(t,i,0,r),o)||(i[1]=s[1]+u,o=dr(t,i,0,r),o))return o}return r[0]=e[0],r[1]=e[1],null}function sR(t,e,n){const r=[];let a=0;return e.forEach((s,i)=>{const o=Os.newInstance();switch(o.setContentType(rR.INDICES),t){case gu.FIELD_ASSOCIATION_CELLS:o.setFieldType(lu.CELL);break;case gu.FIELD_ASSOCIATION_POINTS:o.setFieldType(lu.POINT);break;default:Mp("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 iR(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 y=dr(t,[g,l],0,f);if(y){const h=aR(y);if(!c.has(h))c.set(h,{info:y,pixelCount:1,attributeIDs:[y.attributeID]});else{const d=c.get(h);d.pixelCount++,t.captureZValues&&y.zValue<d.info.zValue&&(d.info=y),d.attributeIDs.indexOf(y.attributeID)===-1&&d.attributeIDs.push(y.attributeID)}}}return sR(t.fieldAssociation,c,t)}function oR(t,e){e.classHierarchy.push("vtkWebGPUHardwareSelector"),t.endSelection=()=>{e.WebGPURenderer.setSelector(null)},t.getSourceDataAsync=async n=>{if(!n||!e._WebGPURenderWindow)return Mp("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,y,h,d)=>iR(u,p,y,h,d),u}}const cR={};function Vp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cR,n),ap.extend(t,e,n),e._selectionPass=nR.newInstance(),_.setGet(t,e,["_WebGPURenderWindow"]),_.moveToProtected(t,e,["WebGPURenderWindow"]),oR(t,e)}const uR=_.newInstance(Vp,"vtkWebGPUHardwareSelector");var Lp={newInstance:uR,extend:Vp};const{vtkErrorMacro:hu}=_,fR={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function lR(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){hu("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&&hu("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=JE.newInstance(),e.device.initialize(await e.adapter.requestDevice()),e.deleted){e.device=null;return}e.context=e.canvas.getContext("webgpu")}},t.releaseGraphicsResources=()=>{const i=hn.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 T=x.getContainer().getElementsByTagName("canvas");for(let v=0;v<T.length;v++){const w=T[v],S=w.getBoundingClientRect(),O=S.x-l.x,R=S.y-l.y;u.drawImage(w,O,R)}}})});const y=o.toDataURL(i);o.remove(),t.invokeImageReady(y)}t.captureNextImage=function(){let i=arguments.length>0&&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(y=>{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(y);else{const h=document.createElement("img");if(h.style=fR,h.src=y,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(),T=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(T))}}),e._screenshot.cameras.forEach(x=>{let{resetCameraFn:C,resetCameraArgs:T}=x;return C(T)})}t.traverseAllPasses()}})})},t.traverseAllPasses=()=>{if(!e.deleted)if(e.initialized){if(e.renderPasses)for(let i=0;i<e.renderPasses.length;++i)e.renderPasses[i].traverse(t,null);e.commandEncoder&&(e.device.submitCommandEncoder(e.commandEncoder),e.commandEncoder=null,e.notifyStartCaptureImage&&e.device.onSubmittedWorkDone().then(()=>{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<e.children.length;o++){const u=e.children[o].getPropFromID(i);if(u!==null)return u}return null},t.getPixelsAsync=async()=>{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<u.height;p++)for(let y=0;y<u.width;y++){const h=(p*u.width+y)*4,d=(p*u.colorBufferWidth+y)*4;g[h]=255*Gt.fromHalf(u.colorValues[d]),g[h+1]=255*Gt.fromHalf(u.colorValues[d+1]),g[h+2]=255*Gt.fromHalf(u.colorValues[d+2]),g[h+3]=255*Gt.fromHalf(u.colorValues[d+3])}return u.colorValues=g,u},t.createSelector=()=>{const i=Lp.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=_.chain(t.delete,t.setViewStream)}const gR={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 pR(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gR,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",yp.extend(t,e,n),e.myFactory=Y2.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",Bp),e.renderPasses[0]=HE.newInstance(),e.selector||(e.selector=Lp.newInstance(),e.selector.setWebGPURenderWindow(t)),_.event(t,e,"imageReady"),_.event(t,e,"initialized"),_.get(t,e,["commandEncoder","device","presentationFormat","useBackgroundImage","xrSupported"]),_.setGet(t,e,["initialized","context","canvas","device","renderPasses","notifyStartCaptureImage","cursor","useOffScreen"]),_.setGetArray(t,e,["size"],2),_.event(t,e,"windowResizeEvent"),lR(t,e)}const Bp=_.newInstance(pR,"vtkWebGPURenderWindow");mo("WebGPU",Bp);const hR=g_.extractURLParameters(),dR={margin:"0",padding:"0",position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"},vR={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 du(t,e){Object.keys(e).forEach(n=>{t.style[n]=e[n]})}function yR(t,e){e.classHierarchy.push("vtkFullScreenRenderWindow");const n=document.querySelector("body");e.rootContainer||(e.rootContainer=n),e.container||(e.container=document.createElement("div"),du(e.container,e.containerStyle||dR),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=$w.newInstance(),e.renderer=kw.newInstance(),e.renderWindow.addRenderer(e.renderer),e.apiSpecificRenderWindow=e.renderWindow.newAPISpecificView(hR.viewAPI??e.defaultViewAPI),e.apiSpecificRenderWindow.setContainer(e.container),e.renderWindow.addView(e.apiSpecificRenderWindow),e.interactor=Yg.newInstance(),e.interactor.setInteractorStyle(u_.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"),du(e.controlContainer,e.controlPanelStyle||vR),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=_.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 TR={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function kp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,TR,n),_.obj(t,e),_.get(t,e,["renderWindow","renderer","apiSpecificRenderWindow","interactor","rootContainer","container","controlContainer"]),yR(t,e)}const xR=_.newInstance(kp);var SR={newInstance:xR,extend:kp};const CR={RGB:0,HSV:1,LAB:2,DIVERGING:3},wR={LINEAR:0,LOG10:1};var Fp={ColorSpace:CR,Scale:wR};const{ColorSpace:Lt,Scale:Up}=Fp,{ScalarMappingTarget:Wa}=_s,{vtkDebugMacro:_R,vtkErrorMacro:an,vtkWarningMacro:ER}=_;function vu(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 RR(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 yu(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 OR(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 Tu(t,e,n,r){const a=[],s=[];yr(e,a),yr(n,s);const i=[],o=[];vu(a,i),vu(s,o);let u=t;if(i[1]>.05&&o[1]>.05&&OR(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]=yu(o,i[0]):o[1]<.05&&i[1]>.05&&(o[2]=yu(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=[];RR(c,f),wi(f,r)}function DR(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 an("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return an("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(;c<e.nodes.length&&e.nodes[c].x!==n;c++);return c<e.nodes.length?c:-1},t.addHSVPoint=(n,r,a,s)=>t.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 pr([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&&e.nodes[r].x!==n;r++);const a=r;if(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.length;a++)if(e.nodes[a].x===n){e.nodes[a].x=r,t.sortAndUpdateRange();break}}},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(n,r,a,s,i,o,u,c)=>{t.sortAndUpdateRange();for(let f=0;f<e.nodes.length;)e.nodes[f].x>=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=[];pr(f,g),pr(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(is(i)||is(o)){for(let B=0;B<a;B++)s[B*3+0]=e.nanColor[0],s[B*3+1]=e.nanColor[1],s[B*3+2]=e.nanColor[2];return}let u=0;const c=e.nodes.length;let f=0,l=0,g=0;c!==0&&(f=e.nodes[c-1].r,l=e.nodes[c-1].g,g=e.nodes[c-1].b);let p=0,y=0,h=0;const d=[0,0,0],x=[0,0,0];let C=0,T=0;const v=[];let w=e.scale===Up.LOG10;w&&(w=e.mappingRange[0]>0);let S=0,O=0,R=0;w&&(S=Math.log10(i),O=Math.log10(o));for(let B=0;B<a;B++){const m=3*B;if(a>1?w?(R=S+B/(a-1)*(O-S),p=10**R):p=i+B/(a-1)*(o-i):w?(R=.5*(S+O),p=10**R):p=.5*(i+o),e.discretize){const V=e.mappingRange;if(p>=V[0]&&p<=V[1]){const L=e.numberOfValues,k=V[1]-V[0];if(L<=1)p=V[0]+k/2;else{const N=(p-V[0])/k,I=yv(L*N);p=V[0]+I/(L-1)*k}}}for(;u<c&&p>e.nodes[u].x;)u++,u<c&&(y=e.nodes[u-1].x,h=e.nodes[u].x,w&&(y=Math.log10(y),h=Math.log10(h)),d[0]=e.nodes[u-1].r,x[0]=e.nodes[u].r,d[1]=e.nodes[u-1].g,x[1]=e.nodes[u].g,d[2]=e.nodes[u-1].b,x[2]=e.nodes[u].b,C=e.nodes[u-1].midpoint,T=e.nodes[u-1].sharpness,C<1e-5&&(C=1e-5),C>.99999&&(C=.99999));if(p>e.mappingRange[1])s[m]=0,s[m+1]=0,s[m+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(s[m]=e.aboveRangeColor[0],s[m+1]=e.aboveRangeColor[1],s[m+2]=e.aboveRangeColor[2]):(s[m]=f,s[m+1]=l,s[m+2]=g));else if(p<e.mappingRange[0]||Mv(p)&&p<0)s[m]=0,s[m+1]=0,s[m+2]=0,e.clamping&&(t.getUseBelowRangeColor()?(s[m]=e.belowRangeColor[0],s[m+1]=e.belowRangeColor[1],s[m+2]=e.belowRangeColor[2]):c>0&&(s[m]=e.nodes[0].r,s[m+1]=e.nodes[0].g,s[m+2]=e.nodes[0].b));else if(u===0&&(Math.abs(p-i)<1e-6||e.discretize))c>0?(s[m]=e.nodes[0].r,s[m+1]=e.nodes[0].g,s[m+2]=e.nodes[0].b):(s[m]=0,s[m+1]=0,s[m+2]=0);else{let V=0;if(w?V=(R-y)/(h-y):V=(p-y)/(h-y),V<C?V=.5*V/C:V=.5+.5*(V-C)/(1-C),T>.99)if(V<.5){s[m]=d[0],s[m+1]=d[1],s[m+2]=d[2];continue}else{s[m]=x[0],s[m+1]=x[1],s[m+2]=x[2];continue}if(T<.01){if(e.colorSpace===Lt.RGB)s[m]=(1-V)*d[0]+V*x[0],s[m+1]=(1-V)*d[1]+V*x[1],s[m+2]=(1-V)*d[2]+V*x[2];else if(e.colorSpace===Lt.HSV){const b=[],j=[];Sa(d,b),Sa(x,j),e.hSVWrap&&(b[0]-j[0]>.5||j[0]-b[0]>.5)&&(b[0]>j[0]?b[0]-=1:j[0]-=1);const K=[];K[0]=(1-V)*b[0]+V*j[0],K[0]<0&&(K[0]+=1),K[1]=(1-V)*b[1]+V*j[1],K[2]=(1-V)*b[2]+V*j[2],pr(K,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]}else if(e.colorSpace===Lt.LAB){const b=[],j=[];yr(d,b),yr(x,j);const K=[];K[0]=(1-V)*b[0]+V*j[0],K[1]=(1-V)*b[1]+V*j[1],K[2]=(1-V)*b[2]+V*j[2],wi(K,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]}else e.colorSpace===Lt.DIVERGING?(Tu(V,d,x,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]):an("ColorSpace set to invalid value.",e.colorSpace);continue}V<.5?V=.5*(V*2)**(1+10*T):V>.5&&(V=1-.5*((1-V)*2)**(1+10*T));const L=V*V,k=L*V,N=2*k-3*L+1,I=-2*k+3*L,P=k-2*L+V,ee=k-L;let ae,W;if(e.colorSpace===Lt.RGB)for(let b=0;b<3;b++)ae=x[b]-d[b],W=(1-T)*ae,s[m+b]=N*d[b]+I*x[b]+P*W+ee*W;else if(e.colorSpace===Lt.HSV){const b=[],j=[];Sa(d,b),Sa(x,j),e.hSVWrap&&(b[0]-j[0]>.5||j[0]-b[0]>.5)&&(b[0]>j[0]?b[0]-=1:j[0]-=1);const K=[];for(let te=0;te<3;te++)ae=j[te]-b[te],W=(1-T)*ae,K[te]=N*b[te]+I*j[te]+P*W+ee*W,te===0&&K[te]<0&&(K[te]+=1);pr(K,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]}else if(e.colorSpace===Lt.LAB){const b=[],j=[];yr(d,b),yr(x,j);const K=[];for(let te=0;te<3;te++)ae=j[te]-b[te],W=(1-T)*ae,K[te]=N*b[te]+I*j[te]+P*W+ee*W;wi(K,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]}else e.colorSpace===Lt.DIVERGING?(Tu(V,d,x,v),s[m]=v[0],s[m+1]=v[1],s[m+2]=v[2]):an("ColorSpace set to invalid value.");for(let b=0;b<3;b++)s[m+b]=s[m+b]<0?0:s[m+b],s[m+b]=s[m+b]>1?1:s[m+b]}}},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 an("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<a;u++)e.table[u*i+0]=Math.floor(o[u*3+0]*255+.5),e.table[u*i+1]=Math.floor(o[u*3+1]*255+.5),e.table[u*i+2]=Math.floor(o[u*3+2]*255+.5),s&&(e.table[u*i+3]=255);return e.buildTime.modified(),e.table},t.buildFunctionFromArray=n=>{t.removeAllPoints();const r=n.getNumberOfComponents();for(let a=0;a<n.getNumberOfTuples();a++)switch(r){case 3:{e.nodes.push({x:a,r:n.getComponent(a,0),g:n.getComponent(a,1),b:n.getComponent(a,2),midpoint:.5,sharpness:0});break}case 4:{e.nodes.push({x:n.getComponent(a,0),r:n.getComponent(a,1),g:n.getComponent(a,2),b:n.getComponent(a,3),midpoint:.5,sharpness:0});break}case 5:{e.nodes.push({x:a,r:n.getComponent(a,0),g:n.getComponent(a,1),b:n.getComponent(a,2),midpoint:n.getComponent(a,4),sharpness:n.getComponent(a,5)});break}case 6:{e.nodes.push({x:n.getComponent(a,0),r:n.getComponent(a,1),g:n.getComponent(a,2),b:n.getComponent(a,3),midpoint:n.getComponent(a,4),sharpness:n.getComponent(a,5)});break}}t.sortAndUpdateRange()},t.buildFunctionFromTable=(n,r,a,s)=>{let i=0;t.removeAllPoints(),a>1&&(i=(r-n)/(a-1));for(let o=0;o<a;o++){const u={x:n+i*o,r:s[o*3],g:s[o*3+1],b:s[o*3+2],sharpness:0,midpoint:.5};e.nodes.push(u)}t.sortAndUpdateRange()},t.getNodeValue=(n,r)=>n<0||n>=e.nodes.length?(an("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 an("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<n;a++)t.addRGBPoint(r[a*4],r[a*4+1],r[a*4+2],r[a*4+3])}},t.setMappingRange=(n,r)=>{const a=[n,r],s=t.getRange();if(s[1]===a[1]&&s[0]===a[0])return;if(a[1]===a[0]){an("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<e.nodes.length;++u)e.nodes[u].x=e.nodes[u].x*i+o;e.mappingRange[0]=a[0],e.mappingRange[1]=a[1],t.modified()},t.adjustRange=n=>{const r=t.getRange(),a=[];r[0]<n[0]?(t.getColor(n[0],a),t.addRGBPoint(n[0],a[0],a[1],a[2])):(t.getColor(r[0],a),t.addRGBPoint(n[0],a[0],a[1],a[2])),r[1]>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<e.nodes.length;)e.nodes[s].x>=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<e.nodes.length-1;r++){const a=e.nodes[r+1].x-e.nodes[r].x;a<n&&(n=a)}return n},t.mapScalarsThroughTable=(n,r,a,s)=>{if(t.getSize()===0){_R("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){ER("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===Wa.RGBA)for(let g=0;g<o;g++){const p=f[g*u+s];t.getColor(p,l),c[g*4]=Math.floor(l[0]*255+.5),c[g*4+1]=Math.floor(l[1]*255+.5),c[g*4+2]=Math.floor(l[2]*255+.5),c[g*4+3]=i}if(a===Wa.RGB)for(let g=0;g<o;g++){const p=f[g*u+s];t.getColor(p,l),c[g*3]=Math.floor(l[0]*255+.5),c[g*3+1]=Math.floor(l[1]*255+.5),c[g*3+2]=Math.floor(l[2]*255+.5)}if(a===Wa.LUMINANCE)for(let g=0;g<o;g++){const p=f[g*u+s];t.getColor(p,l),c[g]=Math.floor(l[0]*76.5+l[1]*150.45+l[2]*28.05+.5)}if(a===Wa.LUMINANCE_ALPHA)for(let g=0;g<o;g++){const p=f[g*u+s];t.getColor(p,l),c[g*2]=Math.floor(l[0]*76.5+l[1]*150.45+l[2]*28.05+.5),c[g*2+1]=i}},t.applyColorMap=n=>{const r=JSON.stringify(e.colorSpace);n.ColorSpace&&(e.colorSpace=Lt[n.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(an(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),e.colorSpace=Lt.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;g<c;g+=4)e.nodes.push({x:n.RGBPoints[g],r:n.RGBPoints[g+1],g:n.RGBPoints[g+2],b:n.RGBPoints[g+3],midpoint:f,sharpness:l})}const o=t.sortAndUpdateRange(),u=!o&&(a||i!==JSON.stringify(e.nodes));return u&&t.modified(),o||u}}const mR={clamping:!0,colorSpace:Lt.RGB,hSVWrap:!0,scale:Up.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function bp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mR,n),_s.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={},_.obj(e.buildTime),_.get(t,e,["buildTime","mappingRange"]),_.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),_.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),_.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),DR(t,e)}const MR=_.newInstance(bp,"vtkColorTransferFunction");var VR={newInstance:MR,extend:bp,...Fp};function LR(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=zt.newInstance();let i=0,{thetaResolution:o}=e,u=e.startTheta<e.endTheta?e.startTheta:e.endTheta;u*=Math.PI/180;let c=e.endTheta>e.startTheta?e.endTheta:e.startTheta;c*=Math.PI/180;let f=e.startPhi<e.endPhi?e.startPhi:e.endPhi;f*=Math.PI/180;let l=e.endPhi>e.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,y=e.phiResolution+(e.endPhi>=180?-1:0),h=e.phiResolution*o+2,d=e.phiResolution*2*e.thetaResolution;let x=0,C=_.newTypedArray(s,h*3),T=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,T[x*3+0]=0,T[x*3+1]=0,T[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,T[x*3+0]=0,T[x*3+1]=0,T[x*3+2]=-1,x++,i++);const S=e.phiResolution-i,O=(l-f)/(e.phiResolution-1);for(let m=0;m<o;m++){const V=u+m*g;for(let L=p;L<y;L++){const k=f+L*O,N=e.radius*Math.sin(k);T[x*3+0]=N*Math.cos(V),T[x*3+1]=N*Math.sin(V),T[x*3+2]=e.radius*Math.cos(k),C[x*3+0]=T[x*3+0]+e.center[0],C[x*3+1]=T[x*3+1]+e.center[1],C[x*3+2]=T[x*3+2]+e.center[2];let I=Math.sqrt(T[x*3+0]*T[x*3+0]+T[x*3+1]*T[x*3+1]+T[x*3+2]*T[x*3+2]);I=I===0?1:I,T[x*3+0]/=I,T[x*3+1]/=I,T[x*3+2]/=I,x++}}const R=S*o;if(Math.abs(u-c)<2*Math.PI&&--o,e.startPhi<=0)for(let m=0;m<o;m++)w[v++]=3,w[v++]=S*m+i,w[v++]=S*(m+1)%R+i,w[v++]=0;if(e.endPhi>=180){const m=S-1+i;for(let V=0;V<o;V++)w[v++]=3,w[v++]=S*V+m,w[v++]=i-1,w[v++]=S*(V+1)%R+m}for(let m=0;m<o;m++)for(let V=0;V<S-1;V++){const L=S*m+V+i,k=L+1,N=(S*(m+1)+V)%R+i+1;e.latLongTessellation?(w[v++]=4,w[v++]=L,w[v++]=k,w[v++]=N,w[v++]=N-1):(w[v++]=3,w[v++]=L,w[v++]=k,w[v++]=N,w[v++]=3,w[v++]=L,w[v++]=N,w[v++]=N-1)}C=C.subarray(0,x*3),a.getPoints().setData(C,3),T=T.subarray(0,x*3);const B=Oe.newInstance({name:"Normals",values:T,numberOfComponents:3});a.getPointData().setNormals(B),w=w.subarray(0,v),a.getPolys().setData(w,1),r[0]=a}}const BR={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float64Array"};function Np(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BR,n),_.obj(t,e),_.setGet(t,e,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),_.setGetArray(t,e,["center"],3),_.algo(t,e,0,1),LR(t,e)}const kR=_.newInstance(Np,"vtkSphereSource");var FR={newInstance:kR,extend:Np};const{vtkWarningMacro:UR}=_;function bR(t,e){e.classHierarchy.push("vtkLineSource"),t.requestData=(n,r)=>{if(e.deleted)return;const a=r[0],s=a?a.getPoints().getDataType():e.pointType,i=zt.newInstance(),o=[];if(fn(e.point2,e.point1,o),oo(o)<=0){UR("Zero-length line definition");return}const u=e.resolution,c=u+1,f=_.newTypedArray(s,c*3);i.getPoints().setData(f,3);const l=new Uint32Array(c+1);i.getLines().setData(l,1);let g=0,p=0;for(let y=0;y<u+1;y++)p=y/u,f[g*3]=e.point1[0]+p*o[0],f[g*3+1]=e.point1[1]+p*o[1],f[g*3+2]=e.point1[2]+p*o[2],g++;g=0,l[0]=c;for(let y=0;y<c;y++)l[y+1]=y;r[0]=i}}const NR={resolution:10,point1:[-1,0,0],point2:[1,0,0],pointType:"Float64Array"};function Gp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,NR,n),_.obj(t,e),_.setGet(t,e,["resolution"]),_.setGetArray(t,e,["point1","point2"],3),_.algo(t,e,0,1),bR(t,e)}const GR=_.newInstance(Gp,"vtkLineSource");var $R={newInstance:GR,extend:Gp};function WR(t,e){e.classHierarchy.push("vtkSphereMapper")}const zR={scaleArray:null,radius:.05,scaleFactor:1};function AR(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zR,n),Wt.extend(t,e,n),_.setGet(t,e,["radius","scaleArray","scaleFactor"]),WR(t,e)}_.newInstance(AR,"vtkSphereMapper");class HR{constructor(){this.isJg=!1,this.isSelectNode=!1,this.isSelectPipe=!1,this.selectObj=null,this.selectJgPointId=0,this.validNodes=[],this.pipes=[],this.renderWindowWith=SR.newInstance(),this.renderer=this.renderWindowWith.getRenderer(),this.renderWindow=this.renderWindowWith.getRenderWindow(),this.polyData=zt.newInstance(),this.mapper=Wt.newInstance(),this.actor=Nt.newInstance(),this.actor.getProperty().setRepresentation(gt.SURFACE),this.actor.getProperty().setColor(Hn),this.mapper.setInputData(this.polyData),this.actor.setMapper(this.mapper),this.actor2=Nt.newInstance(),this.actor2.getProperty().setRepresentation(gt.POINTS),this.actor2.getProperty().setColor(Hn),this.actor2.getProperty().setPointSize(2),this.actor2.setMapper(this.mapper),this.lastActor=null,this.nodeActors=[],this.pipeActors=[],this.interactor=this.renderer.getRenderWindow().getInteractor(),this.apiSpecificRenderWindow=this.interactor.getView(),this.hardwareSelector=this.apiSpecificRenderWindow.getSelector(),this.hardwareSelector.setCaptureZValues(!0),this.hardwareSelector.setFieldAssociation(So.FIELD_ASSOCIATION_CELLS),document.addEventListener("mousemove",XR),this.jgActor=Nt.newInstance(),this.jgMapper=Wt.newInstance(),this.jgActor.getProperty().setRepresentation(gt.SURFACE),this.scalarBarActor=Ro.newInstance(),this.scalarBarActor.setGenerateTicks(this.generateTicks(5)),this.scalarBarActor.setDrawAboveRangeSwatch(!0),this.scalarBarActor.setDrawNanAnnotation(!1),this.scalarBarActor.setBoxPosition([1,0]);const e=VR.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),this.jgActor.setMapper(this.jgMapper)}generateTicks(e){return n=>{const r=n.getLastTickBounds(),a=Ts().domain([0,1]).range([r[0],r[1]]),i=a.ticks(e).map(c=>a(c));Vu({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)}}modelInit(e,n){this.validNodes=e,this.pipes=n,this.modelCreate()}modelCreate(){console.log("modelInit..");const e=this.polyData.getPoints(),n=this.polyData.getLines();this.validNodes.forEach(s=>{e.insertNextPoint(parseFloat(s.x),parseFloat(s.y),parseFloat(s.z))}),this.pipes.forEach(s=>{let i=this.indexIdByPipeNodeId(s.snId),o=this.indexIdByPipeNodeId(s.enId);n.insertNextCell([i,o])});const r=FR.newInstance({center:[0,0,0],radius:4}),a=Wt.newInstance();a.setInputConnection(r.getOutputPort()),this.validNodes.forEach(s=>{const i=Nt.newInstance();i.setMapper(a),i.setPosition(parseFloat(s.x),parseFloat(s.y),parseFloat(s.z)),i.getProperty().setColor(Hn);const o={};o.node=s,o.actor=i,this.nodeActors.push(o)}),this.pipes.forEach(s=>{const i=$R.newInstance();let o=this.pointByPipeNodeId(s.snId),u=this.pointByPipeNodeId(s.enId);i.setPoint1(o),i.setPoint2(u),i.setResolution(12);const c=Nt.newInstance(),f=Wt.newInstance();c.setMapper(f),c.getProperty().setLineWidth(3),c.getProperty().setColor(Hn),f.setInputConnection(i.getOutputPort());const l={};l.pipe=s,l.actor=c,this.pipeActors.push(l)}),this.modelShow(),this.renderer.resetCamera(),this.renderWindow.render()}modelClearShow(){this.renderer.removeActor(this.actor),this.renderer.removeActor(this.actor2),this.nodeActors.forEach(e=>{this.renderer.removeActor(e.actor)}),this.pipeActors.forEach(e=>{this.renderer.removeActor(e.actor)})}modelShow(){this.modelClearShow(),this.isSelectNode||this.renderer.addActor(this.actor2),this.isSelectPipe||this.renderer.addActor(this.actor),this.isSelectNode&&this.nodeActors.forEach(e=>{this.renderer.addActor(e.actor)}),this.isSelectPipe&&this.pipeActors.forEach(e=>{this.renderer.addActor(e.actor)})}selectNodes(){this.isSelectNode=!0,this.isSelectPipe=!1,this.modelShow(),this.renderWindow.render()}selectPipes(){this.isSelectNode=!1,this.isSelectPipe=!0,this.modelShow(),this.renderWindow.render()}selectNoting(){this.isSelectNode=!1,this.isSelectPipe=!1,this.modelShow(),this.renderWindow.render()}indexIdByPipeNodeId(e){for(let n=0;n<this.validNodes.length;n++)if(this.validNodes[n].id==e)return n;return 0}pointByPipeNodeId(e){for(let n=0;n<this.validNodes.length;n++){const r=this.validNodes[n];if(r.id==e)return[parseFloat(r.x),parseFloat(r.y),parseFloat(r.z)]}return 0}clearModeAddJg(){this.renderer.addActor(this.jgActor),this.renderer.addActor(this.scalarBarActor),this.modelClearShow(),this.isJg=!0}clearJgAddMode(){this.renderer.removeActor(this.scalarBarActor),this.renderer.removeActor(this.jgActor),this.modelShow(),this.isJg=!1}clearAll(){this.renderer.removeActor(this.jgActor),this.renderer.removeActor(this.scalarBarActor),this.modelClearShow()}selectByNodeId(e){console.log("selectByNodeId",e),this.isSelectNode&&(this.lastActor!=null&&this.lastActor.getProperty().setColor(Hn),this.nodeActors.forEach(n=>{if(e==n.node.id){n.actor.getProperty().setColor(vs),this.renderWindow.render(),this.lastActor=n.actor,this.selectObj=n.node;return}}))}selectByPipeId(e){console.log("selectByPipeId",e),this.isSelectPipe&&(this.lastActor!=null&&this.lastActor.getProperty().setColor(Hn),this.pipeActors.forEach(n=>{if(e==n.pipe.id){n.actor.getProperty().setColor(vs),this.renderWindow.render(),this.lastActor=n.actor,this.selectObj=n.node;return}}))}}function jR(t){if(fe.interactor.isAnimating())return;const[e,n]=KR(t);fe.hardwareSelector.getSourceDataAsync(fe.renderer,e,n,e,n).then(r=>{r&&PR(r.generateSelection(e,n,e,n))})}function KR(t){const{clientX:e,clientY:n}=t,[r,a]=fe.apiSpecificRenderWindow.getSize(),s=Math.round(r*e/window.innerWidth),i=Math.round(a*(1-n/window.innerHeight));return[s,i]}function PR(t){if(!t||t.length===0){fe.lastActor==null;return}const{worldPosition:e,compositeID:n,prop:r,propID:a,attributeID:s}=t[0].getProperties();if(fe.lastActor!=null&&(fe.lastActor.getProperty().setColor(Hn),fe.renderWindow.render()),fe.nodeActors.forEach(i=>{r==i.actor&&(fe.selectObj=i.node,r.getProperty().setColor(vs),fe.lastActor=r)}),fe.pipeActors.forEach(i=>{r==i.actor&&(fe.selectObj=i.pipe,r.getProperty().setColor(vs),fe.lastActor=r)}),fe.isJg){if(fe.hardwareSelector.getFieldAssociation()!==So.FIELD_ASSOCIATION_POINTS){const i=r.getMapper().getInputData();i.getCells()||i.buildCells();const o=i.getCellPoints(s);if(o){const u=o.cellPointIds;Array.from(u).map(f=>i.getPoints().getPoint(f));const c=i.getPointData().getScalars().getData();console.log(c[u[0]]),fe.selectJgPointId=u[0]}}}else fe.renderWindow.render()}const XR=Zi(jR,20),Hn=[0,0,1],vs=[.1,.8,.1],fe=new HR;const Ue=t=>(mn("data-v-ebd32ec6"),t=t(),Mn(),t),IR={class:"l_Dialog tuiy"},YR={class:"my-header"},qR=["id"],QR={class:"my_content"},JR={class:"dialog-footer class_footer l_btn"},ZR={class:"footerbtn"},eO={class:"borderimg"},tO={class:"footerbtn"},nO={class:"borderimg"},rO={class:"my-header"},aO=["id"],sO={class:"my_content1 bgcolor tablefocus scoperadio"},iO={class:"demo-pagination-block pagination"},oO={class:"dialog-footer footer_div l_btn"},cO={class:"footerbtn flex1"},uO={class:"borderimg"},fO={class:"footerbtn flex1"},lO={class:"borderimg"},gO={class:"footerbtn flex1"},pO={class:"borderimg"},hO={class:"footerbtn flex1"},dO={class:"borderimg"},vO={class:"ddd"},yO={class:"header_l"},TO={class:"tianjia"},xO={class:"ddd_div",style:{display:"flex"}},SO={class:"demo-input-suffix firsttitle magintop"},CO={class:"l_btn class_btn",style:{width:"auto"}},wO={class:"footerbtn"},_O={class:"borderimg"},EO={class:"my-header"},RO=["id"],OO={class:"delecttitle"},DO={class:"spanclad"},mO={class:"dialog-footer footer_div l_btn"},MO={class:"footerbtn flex1"},VO={class:"borderimg"},LO={class:"footerbtn flex1"},BO={class:"borderimg"},kO={class:"common-layout",style:{margin:"0"}},FO={class:"demo-collapse"},UO={class:"asides_content"},bO={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},NO={class:"line selecwidth"},GO={class:"demo-datetime-picker"},$O=Ue(()=>E("span",{class:"inputtext_1"},"选择时间",-1)),WO={class:"block"},zO=Ue(()=>E("span",{class:"inputtext_1"},"时间步长",-1)),AO={class:"inputkuang"},HO=Ue(()=>E("span",{class:"righttext"},"s",-1)),jO=Ue(()=>E("span",{class:"inputtext_1"},"空间步长",-1)),KO={class:"inputkuang"},PO=Ue(()=>E("span",{class:"righttext"},"m",-1)),XO=Ue(()=>E("span",{class:"inputtext_1"},"模拟时长",-1)),IO={class:"inputkuang"},YO=Ue(()=>E("span",{class:"righttext"},"s",-1)),qO=Ue(()=>E("span",{class:"inputtext_1"},"输出步长",-1)),QO={class:"inputkuang"},JO=Ue(()=>E("span",{class:"righttext"},"s",-1)),ZO=Ue(()=>E("span",{class:"inputtext_1"},"交互步长",-1)),eD={class:"inputkuang"},tD=Ue(()=>E("span",{class:"righttext"},"s",-1)),nD={class:"asdis_btn"},rD={class:"btn"},aD={class:"btn"},sD={class:"logs"},iD={class:"logs_pading"},oD=Ue(()=>E("h4",null,"模拟日志",-1)),cD={class:"footerTextBox"},uD={class:"common-layout",style:{margin:"0"}},fD={class:"demo-collapse"},lD={class:"asides_content"},gD={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},pD={class:"demo-datetime-picker"},hD=Ue(()=>E("span",{class:"inputtext_1"},"选择时间",-1)),dD={class:"block"},vD=Ue(()=>E("span",{class:"inputtext_1"},"时间步长",-1)),yD={class:"inputkuang"},TD=Ue(()=>E("span",{class:"righttext"},"s",-1)),xD=Ue(()=>E("span",{class:"inputtext_1"},"空间步长",-1)),SD={class:"inputkuang"},CD=Ue(()=>E("span",{class:"righttext"},"m",-1)),wD=Ue(()=>E("span",{class:"inputtext_1"},"模拟时长",-1)),_D={class:"inputkuang"},ED=Ue(()=>E("span",{class:"righttext"},"s",-1)),RD=Ue(()=>E("span",{class:"inputtext_1"},"输出步长",-1)),OD={class:"inputkuang"},DD=Ue(()=>E("span",{class:"righttext"},"s",-1)),mD=Ue(()=>E("span",{class:"inputtext_1"},"交互步长",-1)),MD={class:"inputkuang"},VD=Ue(()=>E("span",{class:"righttext"},"s",-1)),LD={class:"asdis_btn"},BD={class:"btn"},kD={class:"btn"},FD={class:"logs"},UD={class:"logs_pading"},bD=Ue(()=>E("h4",null,"模拟日志",-1)),ND={class:"footerTextBox"},GD={__name:"InfoDialoges",props:{addselect:{type:Function,required:!0},headerobj:{type:Object}},emits:["headerclick","childfun","moxingclick","handleSelect"],setup(t,{expose:e,emit:n}){const r=t,a=()=>{fe.clearJgAddMode(),fe.renderWindow.render()};let s=F("某次某事件火灾事故");F("0");let i=F(""),o=F(null),u=F({lockReconnect:!1,timeout:28*1e3,timeoutObj:null,serverTimeout0bj:null,timeoutnum:null});F({});let c=F({source:"自荐",type:"预演",sid:"-1"}),f=F({}),l=F({source:"",name:""}),g=F({sgaid:"",name:"",time:""});F("");let p=F(!0),y=F();F(""),F("");const h=F(1),d=F(3);let x=F(1);const C=F(!0),T=F();let v=F("Fire");const w=F({collfire:!1,collwater:!1}),S=F(!1),O=F({dialogVisible_fire:!1,jianced:!0,monitor:!1,dialogForm:!1,dialogsgdelect:!1});let R=F({value:[""],pickertime:"24-03-06 00:00:00",acctime:"2024-03-06 00:00:00",dt:"",dx:"",reportstep:"",interactionstep:"",totaltime:"",coids:"",cocodes:""}),B=F({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=F({value:["SO2"],pickertime:"",acctime:"2024-03-06 00:00:00",dt:"5",dx:"5",reportstep:"60",interactionstep:"3600",totaltime:"3600",coids:"1",cocodes:"CO2"}),V=F({}),L=F(["1","2"]),k=F(""),N=F({top:"50px",logs:"",left:"90px"});F("130px"),F({user:"11",region:"shanghai",date:""});const I=F([]),P=F([]);let ee=F([]),ae=F(1);F("#409eff");const W=({row:se,rowIndex:$})=>$%2!=0?"evenRow":"oddRow",b=F([]),j=()=>{ae.value="",O.value.dialogVisible_fire=!0,T.value=v.value,r.addselect(),Re()},K=()=>{g.value.name==""?Te.error("请选择项目"):(He(),N.value.logs="",k.value="",n("headerclick",f.value),O.value.dialogVisible_fire=!1,n("childfun"),n("moxingclick",!0),Ce(),n("handleSelect","1")),Se()},te=se=>{se=="3"?(T.value=="Fire"?w.value.collfire=!0:T.value=="Water"&&(w.value.collwater=!0),Pe()):(w.value.collfire=!1,w.value.collwater=!1)},Be=()=>{const se={transCode:"D00002",source:c.value.source,type:c.value.type,name:l.value.name,stype:T.value,sid:c.value.sid,aid:y.value};Fe(se).then($=>{O.value.dialogForm=!1,Re(),ae.value=null}).catch($=>{Te.error($.returnMsg)})},xt=se=>{f.value=se,console.log(V.value),l.value.name=se.name,y.value=se.aid,g.value.name=se.name,g.value.time=se.time};function it(se){h.value=se,Re()}const J=se=>{se=="1"?(i.value="事故添加",y.value=0,l.value.name=""):se=="2"&&(i.value="事故修改",l.value.name=g.value.name),O.value.dialogForm=!0},H=()=>{const se={transCode:"D000016",aid:y.value};Fe(se).then($=>{Re(),Te({message:"删除成功",type:"success"})}).catch($=>{p.value=!1,Te.error($.returnMsg)})},Re=()=>{T.value=="Fire"?s.value="某次某事件火灾事故":T.value=="Water"&&(s.value="某次某事件突水事故");const se={transCode:"D00003",count:d.value,page:h.value,aid:y.value,stype:T.value};Fe(se).then($=>{p.value=!1,b.value=$.rows,x.value=$.total}).catch($=>{p.value=!1,Te.error($.returnMsg)})},Ce=()=>{I.value=[],Fe({transCode:"D10013"}).then($=>{P.value=$.rows,I.value.push($.rows[0])}).catch($=>{Te.error($.returnMsg)})},Pe=()=>{ee.value=[];const se={transCode:"D10017",aid:y.value};Fe(se).then($=>{ee.value=$.cocodes.split(","),R.value=$,R.value.pickertime=$.acctime,console.log(R.value.acctime),console.log(P.value.length),I.value=ee.value,I.value=[];for(let ce=0;ce<P.value.length;ce++){console.log(P.value[ce]);for(let et=0;et<ee.value.length;et++)P.value[ce].code==ee.value[et]&&I.value.push(P.value[ce])}}).catch($=>{jt()})},mt=()=>{var se=new Date,$=Date.parse(se),ce=Pr($);return ce},Ht=()=>{jt()},jt=()=>{T.value=="Fire"?(B.value.pickertime=mt(),B.value.acctime=mt(),B.value.cocodes=P.value[0].code,B.value.coids=P.value[0].coid,console.log(I.value),R.value=B.value,console.log(B.value)):(m.value.pickertime=mt(),m.value.acctime=mt(),R.value=m.value)},Kt=()=>{var se=Date.parse(R.value.pickertime);R.value.acctime=Pr(se)},nt=se=>{console.log(se);let $=[],ce=[];for(let et=0;et<=se.length-1;et++)console.log(se[et]),$.push(se[et].coid),ce.push(se[et].code);R.value.coids=$.join(","),R.value.cocodes=ce.join(",")},Q=()=>{N.value.logs="",k.value="";const se={transCode:"D00008",aid:y.value,acctime:R.value.acctime,dt:R.value.dt,dx:R.value.dx,reportstep:R.value.reportstep,interactionstep:R.value.interactionstep,totaltime:R.value.totaltime,coids:R.value.coids,cocodes:R.value.cocodes};Fe(se).then($=>{}).catch($=>{Te.error($.returnMsg)})},q=()=>{};function xe(se){se.includes("msg=heartCheck")||(k.value=k.value+`
  1023. `+se,N.value.logs=k.value);let $=document.getElementById("textarea_id");$.scrollTop=$.scrollHeight}async function Se(){const se={transCode:"D000015",aid:y.value};await Fe(se).then($=>{$.returnCode=="000000000"?xe($.logs):Te({message:$.returnMsg,type:"error"})}).catch($=>{})}function He(){const se="ws://www.adicn.com/diswebsocket?projectId="+y.value;console.log(se),o=new WebSocket(se),o.onopen=Y,o.onmessage=St,o.onerror=Fr,o.onclose=Ur}const Y=se=>{console.log("WebSocket连接成功",se),dn()},St=se=>{xe(se.data),Xt()},Fr=se=>{console.log("连接错误",se),o.value.close(),Pt()},Ur=se=>{console.log("断开连接",se)},Pt=()=>{u.value.lockReconnect||(u.value.lockReconnect=!0,u.value.timeoutnum&&clearTimeout(u.value.timeoutnum),u.value.timeoutnum=setTimeout(function(){He(),u.value.lockReconnect=!1},1e4))},Xt=()=>{clearTimeout(u.value.timeoutObj),clearTimeout(u.value.serverTimeoutObj),dn()},dn=()=>{u.value.timeoutObj&&clearTimeout(u.value.timeoutObj),u.value.serverTimeoutObj&&clearTimeout(u.value.serverTimeoutObj),u.value.timeoutObj=setTimeout(function(){o.readyState==1?o.send("heartCheck"):(console.log(111111),Pt()),u.value.serverTimeoutObj=setTimeout(function(){o.close()},u.value.timeout)},u.value.timeout)};return ys(()=>{o.value=null,N.logs=""}),Vn(()=>{}),e({monitor:S,accident2:te,leftcoll:w,classradio:T,aid:y,dialogVisible:C,changeModel:a}),(se,$)=>{const ce=ne("el-image"),et=ne("el-radio"),ms=ne("el-radio-group"),re=ne("el-table-column"),G=ne("el-table"),ot=ne("el-pagination"),ue=ne("el-input"),vn=ne("el-form-item"),dt=ne("el-icon"),la=ne("el-option"),br=ne("el-date-picker"),Nr=ne("el-form"),Mt=ne("el-collapse-item"),Et=ne("el-collapse"),ga=ne("el-aside"),Ms=Ip("loading");return De(),$e("div",IR,[D(M(wt),{modelValue:C.value,"onUpdate:modelValue":$[3]||($[3]=X=>C.value=X),width:"482","align-center":"",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor"},{header:U(({titleId:X,titleClass:A})=>[E("div",YR,[D(ce,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:X,class:Ct(A)},"灾害类型",10,qR)])]),footer:U(()=>[E("div",JR,[E("div",ZR,[E("div",eO,[D(M(ge),{onClick:$[1]||($[1]=X=>C.value=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",tO,[E("div",nO,[D(M(ge),{onClick:$[2]||($[2]=X=>{j(),C.value=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),default:U(()=>[E("div",QR,[D(ms,{modelValue:M(v),"onUpdate:modelValue":$[0]||($[0]=X=>qe(v)?v.value=X:v=X),class:"radio-group"},{default:U(()=>[D(et,{label:"Fire"},{default:U(()=>[Z("火灾")]),_:1}),D(et,{label:"Water"},{default:U(()=>[Z("突水")]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:O.value.dialogVisible_fire,"onUpdate:modelValue":$[17]||($[17]=X=>O.value.dialogVisible_fire=X),width:"600",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor tablefocus"},{header:U(({titleId:X,titleClass:A})=>[E("div",rO,[D(ce,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:X,class:Ct(A)}," 事故列表",10,aO)])]),default:U(()=>[E("div",sO,[vt((De(),Cr(G,{data:b.value,style:{width:"100%"},"element-loading-text":"Loading...","element-loading-background":"rgba(0, 10, 0, 0.1)","row-class-name":W,"header-cell-style":{background:" #375A88"},onSelect:q},{default:U(()=>[D(re,{width:"50"},{default:U(X=>[D(et,{modelValue:M(ae),"onUpdate:modelValue":$[4]||($[4]=A=>qe(ae)?ae.value=A:ae=A),label:X.row.aid,onChange:A=>xt(X.row)},null,8,["modelValue","label","onChange"])]),_:1}),D(re,{type:"index",label:"序号",width:"50"}),D(re,{prop:"name",label:"名称"}),D(re,{prop:"name",label:"来源",width:"120"}),D(re,{prop:"time",label:"时间",width:"180"})]),_:1},8,["data"])),[[Ms,M(p)]]),E("div",iO,[D(ot,{"current-page":h.value,"onUpdate:currentPage":$[5]||($[5]=X=>h.value=X),"page-size":d.value,"onUpdate:pageSize":$[6]||($[6]=X=>d.value=X),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(M(x)),class:"mt-4",onCurrentChange:it},null,8,["current-page","page-size","total"])]),E("div",oO,[E("div",cO,[E("div",uO,[D(M(ge),{onClick:$[7]||($[7]=X=>{J("1")})},{default:U(()=>[Z("添加")]),_:1})])]),E("div",fO,[E("div",lO,[D(M(ge),{onClick:$[8]||($[8]=X=>J("2"))},{default:U(()=>[Z(" 修改 ")]),_:1})])]),E("div",gO,[E("div",pO,[D(M(ge),{onClick:$[9]||($[9]=X=>O.value.dialogsgdelect=!0)},{default:U(()=>[Z(" 删除 ")]),_:1})])]),E("div",hO,[E("div",dO,[D(M(ge),{onClick:$[10]||($[10]=X=>K())},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),vt(E("div",vO,[E("div",yO,[D(ce,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",TO,Ee(M(i)),1),E("div",{class:"closeimg",onClick:$[11]||($[11]=X=>O.value.dialogForm=!1)},[D(ce,{src:M(ui),fit:"contain",style:{"margin-top":"-10px"}},null,8,["src"])]),E("div",xO,[E("div",SO,[D(vn,{label:"事故名称"},{default:U(()=>[D(ue,{modelValue:M(l).name,"onUpdate:modelValue":$[12]||($[12]=X=>M(l).name=X),class:"w-50 m-2",placeholder:M(s)},null,8,["modelValue","placeholder"])]),_:1}),E("div",CO,[E("div",wO,[E("div",_O,[D(M(ge),{onClick:$[13]||($[13]=X=>Be())},{default:U(()=>[Z(" 确定 ")]),_:1})])])])])])])],512),[[_t,O.value.dialogForm]]),D(M(wt),{modelValue:O.value.dialogsgdelect,"onUpdate:modelValue":$[16]||($[16]=X=>O.value.dialogsgdelect=X),width:"400",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:X,titleClass:A})=>[E("div",EO,[D(ce,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:X,class:Ct(A)},"删除",10,RO)])]),default:U(()=>[E("h4",OO,[Z(" 是否确认删除"),E("span",DO,Ee(M(g).name),1)]),E("div",mO,[E("div",MO,[E("div",VO,[D(M(ge),{onClick:$[14]||($[14]=X=>O.value.dialogsgdelect=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",LO,[E("div",BO,[D(M(ge),{onClick:$[15]||($[15]=X=>{H(),O.value.dialogsgdelect=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),vt(E("div",kO,[D(ga,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:U(()=>[E("div",FO,[D(Et,{modelValue:M(L),"onUpdate:modelValue":$[30]||($[30]=X=>qe(L)?L.value=X:L=X),accordion:""},{default:U(()=>[D(Mt,{name:"1"},{title:U(()=>[D(dt,{class:"iconimg Frame2",fit:"contain"}),Z(" 火灾"),D(dt,{class:"header-icon"})]),default:U(()=>[E("div",UO,[D(Nr,{inline:!0,model:M(R),class:"demo-form-inline"},{default:U(()=>[E("div",bO,[E("div",NO,[D(vn,{label:"污染物选择:"},{default:U(()=>[D(M(xu),{modelValue:I.value,"onUpdate:modelValue":$[18]||($[18]=X=>I.value=X),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,"value-key":"code",onChange:$[19]||($[19]=X=>nt(X)),placeholder:"请选择"},{default:U(()=>[(De(!0),$e(In,null,qr(P.value,X=>(De(),Cr(la,{key:X.coid,label:X.code,value:X},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),E("ul",null,[E("li",null,[E("div",GO,[$O,E("div",WO,[D(br,{modelValue:M(R).pickertime,"onUpdate:modelValue":$[20]||($[20]=X=>M(R).pickertime=X),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss",onChange:$[21]||($[21]=X=>Kt())},null,8,["modelValue"])])])]),E("li",null,[zO,E("div",AO,[D(ue,{modelValue:M(R).dt,"onUpdate:modelValue":$[22]||($[22]=X=>M(R).dt=X)},null,8,["modelValue"]),HO])]),E("li",null,[jO,E("div",KO,[D(ue,{modelValue:M(R).dx,"onUpdate:modelValue":$[23]||($[23]=X=>M(R).dx=X)},null,8,["modelValue"]),PO])]),E("li",null,[XO,E("div",IO,[D(ue,{modelValue:M(R).totaltime,"onUpdate:modelValue":$[24]||($[24]=X=>M(R).totaltime=X)},null,8,["modelValue"]),YO])]),E("li",null,[qO,E("div",QO,[D(ue,{modelValue:M(R).reportstep,"onUpdate:modelValue":$[25]||($[25]=X=>M(R).reportstep=X)},null,8,["modelValue"]),JO])]),E("li",null,[ZO,E("div",eD,[D(ue,{modelValue:M(R).interactionstep,"onUpdate:modelValue":$[26]||($[26]=X=>M(R).interactionstep=X)},null,8,["modelValue"]),tD])])])]),E("div",nD,[E("div",rD,[E("span",{class:"spantext",onClick:$[27]||($[27]=X=>{Ht()})},"初始数据")]),E("div",aD,[E("span",{class:"spantext",onClick:$[28]||($[28]=X=>{Q()})},"开始计算")])]),E("div",sD,[E("div",iD,[oD,E("div",cD,[D(ue,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:M(N).logs,"onUpdate:modelValue":$[29]||($[29]=X=>M(N).logs=X)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[_t,w.value.collfire]]),vt(E("div",uD,[D(ga,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:U(()=>[E("div",fD,[D(Et,{modelValue:M(L),"onUpdate:modelValue":$[41]||($[41]=X=>qe(L)?L.value=X:L=X),accordion:""},{default:U(()=>[D(Mt,{name:"1"},{title:U(()=>[D(dt,{class:"iconimg Frame3",fit:"contain"}),Z(" 突水"),D(dt,{class:"header-icon"})]),default:U(()=>[E("div",lD,[D(Nr,{inline:!0,model:M(R),class:"demo-form-inline"},{default:U(()=>[E("div",gD,[E("ul",null,[E("li",null,[E("div",pD,[hD,E("div",dD,[D(br,{modelValue:M(R).pickertime,"onUpdate:modelValue":$[31]||($[31]=X=>M(R).pickertime=X),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",onChange:$[32]||($[32]=X=>Kt())},null,8,["modelValue"])])])]),E("li",null,[vD,E("div",yD,[D(ue,{modelValue:M(R).dt,"onUpdate:modelValue":$[33]||($[33]=X=>M(R).dt=X)},null,8,["modelValue"]),TD])]),E("li",null,[xD,E("div",SD,[D(ue,{modelValue:M(R).dx,"onUpdate:modelValue":$[34]||($[34]=X=>M(R).dx=X)},null,8,["modelValue"]),CD])]),E("li",null,[wD,E("div",_D,[D(ue,{modelValue:M(R).totaltime,"onUpdate:modelValue":$[35]||($[35]=X=>M(R).totaltime=X)},null,8,["modelValue"]),ED])]),E("li",null,[RD,E("div",OD,[D(ue,{modelValue:M(R).reportstep,"onUpdate:modelValue":$[36]||($[36]=X=>M(R).reportstep=X)},null,8,["modelValue"]),DD])]),E("li",null,[mD,E("div",MD,[D(ue,{modelValue:M(R).interactionstep,"onUpdate:modelValue":$[37]||($[37]=X=>M(R).interactionstep=X)},null,8,["modelValue"]),VD])])])]),E("div",LD,[E("div",BD,[E("span",{class:"spantext",onClick:$[38]||($[38]=X=>{Ht()})},"初始数据")]),E("div",kD,[E("span",{class:"spantext",onClick:$[39]||($[39]=X=>{Q()})},"开始计算")])]),E("div",FD,[E("div",UD,[bD,E("div",ND,[D(ue,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:M(N).logs,"onUpdate:modelValue":$[40]||($[40]=X=>M(N).logs=X)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[_t,w.value.collwater]])])}}},$D=gn(GD,[["__scopeId","data-v-ebd32ec6"]]);const Bn=t=>(mn("data-v-61b421e8"),t=t(),Mn(),t),WD={class:"my-header"},zD=["id"],AD={class:"mgstamkuang"},HD=Bn(()=>E("span",null,"名称:",-1)),jD=Bn(()=>E("span",null,"粗糙系数:",-1)),KD=Bn(()=>E("span",null,"截面类型:",-1)),PD=Bn(()=>E("span",null,"截面参数1:",-1)),XD=Bn(()=>E("span",null,"截面参数2:",-1)),ID=Bn(()=>E("span",null,"截面参数3:",-1)),YD=Bn(()=>E("span",null,"截面参数4:",-1)),qD=Bn(()=>E("span",null,"截面参数5:",-1)),QD={class:"dialog-footer footer_div l_btn"},JD={class:"footerbtn flex1"},ZD={class:"borderimg"},em={class:"footerbtn flex1"},tm={class:"borderimg"},nm={__name:"SetPipe",emits:["Dtext"],setup(t,{expose:e,emit:n}){let r=F(!1),a=F("管道信息"),s=F({name:"",snId:"",enId:"",roughCoe:"",sectionType:"",sectionPara1:"",sectionPara2:"",sectionPara3:"",sectionPara4:"",sectionPara5:""});e({dialoglog:r,jgSelect:f});let i=F(null),o=F(null);const u=()=>{n("Dtext",o.value),clearInterval(i.value)},c=()=>{clearInterval(i.value)};ys(()=>{clearInterval(i.value)}),Vn(()=>{}),Su(()=>{clearInterval(i.value)});function f(){i.value=setInterval(()=>{o.value=fe.selectObj,o.value==null?console.log(o.value):(console.log(o.value),s.value=o.value)},200)}return(l,g)=>{const p=ne("el-image");return De(),$e("div",null,[D(M(wt),{width:"300px",modelValue:M(r),"onUpdate:modelValue":g[2]||(g[2]=y=>qe(r)?r.value=y:r=y),modal:!1,"close-on-click-modal":!1,draggable:"",fullscreen:!1,"modal-append-to-body":!1,"modal-class":"summary-dlg",onClose:c,class:"right log_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:U(({titleId:y,titleClass:h})=>[E("div",WD,[D(p,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:y,class:Ct(h)},Ee(M(a)),11,zD)])]),default:U(()=>[E("div",AD,[E("ul",null,[E("li",null,[HD,Z(Ee(M(s).name),1)]),E("li",null,[jD,Z(Ee(M(s).roughCoe),1)]),E("li",null,[KD,Z(Ee(M(s).sectionType),1)]),E("li",null,[PD,Z(Ee(M(s).sectionPara1),1)]),E("li",null,[XD,Z(Ee(M(s).sectionPara2),1)]),E("li",null,[ID,Z(Ee(M(s).sectionPara3),1)]),E("li",null,[YD,Z(Ee(M(s).sectionPara4),1)]),E("li",null,[qD,Z(Ee(M(s).sectionPara5),1)])])]),E("div",QD,[E("div",JD,[E("div",ZD,[D(M(ge),{onClick:g[0]||(g[0]=y=>{c(),qe(r)?r.value=!1:r=!1})},{default:U(()=>[Z("取消")]),_:1})])]),E("div",em,[E("div",tm,[D(M(ge),{onClick:g[1]||(g[1]=y=>{u(),qe(r)?r.value=!1:r=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])])}}},rm=gn(nm,[["__scopeId","data-v-61b421e8"]]);const Ae=t=>(mn("data-v-53f2d1d5"),t=t(),Mn(),t),am={class:"l_Dialog bbb"},sm={class:"common-layout",style:{margin:"0"}},im={class:"demo-collapse"},om={class:"asides_content"},cm={class:"jc_content tablecolor"},um={class:"jc_padding"},fm={class:"xian btncolor tablefocus"},lm={class:"asdis_btn"},gm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"添加")],-1)),pm=[gm],hm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"修改")],-1)),dm=[hm],vm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"删除")],-1)),ym=[vm],Tm={class:"xian tablefocus",style:{"margin-top":"20px"}},xm={class:"header_l header_z"},Sm=Ae(()=>E("h4",{class:"tianjia"},"灾害源表",-1)),Cm={class:"asdis_btn"},wm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"添加")],-1)),_m=[wm],Em=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"}," 修改")],-1)),Rm=[Em],Om=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"删除")],-1)),Dm=[Om],mm={class:"flex_a"},Mm=Ae(()=>E("span",{class:"spantext"},"确定",-1)),Vm=[Mm],Lm=Ae(()=>E("div",{style:{height:"200px"}},null,-1)),Bm={class:"common-layout",style:{margin:"0"}},km={class:"demo-collapse"},Fm={class:"asides_content"},Um={class:"jc_content tablecolor"},bm={class:"jc_padding"},Nm={class:"xian btncolor tablefocus"},Gm={class:"asdis_btn"},$m=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"添加")],-1)),Wm=[$m],zm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"修改")],-1)),Am=[zm],Hm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"删除")],-1)),jm=[Hm],Km=Ae(()=>E("div",{class:"flex_a"},[E("div",{class:"btns"},[E("span",{class:"spantext"},"确定")])],-1)),Pm={class:"xian tablefocus",style:{"margin-top":"20px"}},Xm={class:"header_l header_z"},Im=Ae(()=>E("h4",{class:"tianjia"},"灾害源表",-1)),Ym={class:"asdis_btn"},qm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"添加")],-1)),Qm=[qm],Jm=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"}," 修改")],-1)),Zm=[Jm],eM=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"删除")],-1)),tM=[eM],nM=Ae(()=>E("div",{class:"btns"},[E("span",{class:"spantext"},"确定")],-1)),rM=[nM],aM=Ae(()=>E("div",{style:{height:"200px"}},null,-1)),sM={class:"my-header"},iM=["id"],oM={class:"demo-input-suffix firsttitle magintop"},cM={class:"btn2"},uM={class:"btn2",style:{"padding-left":"10px"}},fM={class:"input"},lM={class:"dialog-footer footer_div l_btn"},gM={class:"footerbtn flex1"},pM={class:"borderimg"},hM={class:"footerbtn flex1"},dM={class:"borderimg"},vM={class:"my-header"},yM=["id"],TM={class:"demo-input-suffix firsttitle leftbgimg2"},xM={class:"guand_1"},SM=Ae(()=>E("span",{class:"spantext"},"搜索",-1)),CM=[SM],wM={class:"demo-pagination-block",style:{"margin-top":"20px"}},_M={class:"dialog-footer footer_div l_btn"},EM={class:"footerbtn flex1"},RM={class:"borderimg"},OM={class:"footerbtn flex1"},DM={class:"borderimg"},mM={class:"my-header"},MM=["id"],VM={class:"dialog-footer footer_div l_btn"},LM={class:"footerbtn flex1"},BM={class:"borderimg"},kM={class:"footerbtn flex1"},FM={class:"borderimg"},UM={class:"my-header"},bM=["id"],NM={class:"dialog-footer footer_div l_btn"},GM={class:"footerbtn flex1"},$M={class:"borderimg"},WM={class:"footerbtn flex1"},zM={class:"borderimg"},AM={class:"my-header"},HM=["id"],jM={class:"delecttitle"},KM={class:"spanclad"},PM={class:"dialog-footer footer_div l_btn"},XM={class:"footerbtn flex1"},IM={class:"borderimg"},YM={class:"footerbtn flex1"},qM={class:"borderimg"},QM={__name:"InfoDisaster",props:{classradio:{type:String},aid:{type:String}},setup(t,{expose:e}){const n=t,r=()=>{fe.clearJgAddMode(),fe.renderWindow.render()};let a=F(!1),s=F(!1),i=F({addEied:""}),o=F(),u=F("");const c=F({adddialog:!1,dialogsgdelect:!1,dianadddialog:!1,dialogVisiblenode:!1,isDisasterfire:!1,isDisasterwter:!1,adddwater:!1});let f=F("");const l=F(1),g=F(5),p=F([]),y=F([]);F(!0);const h=F({collfire:!1,collwater:!1});let d=F({}),x=F(""),C=F(""),T=F(""),v=F(""),w=F(1),S=F("0");F();let O=F(300);const R=F(),B=F([]),m=F(77),V=F(120);let L=Cu({pname:"",site:.1}),k=F({svid:0,timeline:Number,val1:Number,val2:Number,val3:Number,val4:Number}),N=F({});const I=F([]);let P=F(),ee=F(),ae=F(["1","2"]),W=F("");const b=({row:re,rowIndex:G})=>G%2!=0?"evenRow":"oddRow";F([]);const j=F([]),K=F([]),te=re=>{re=="1"?n.classradio=="Fire"?(h.value.collfire=!0,h.value.collwater=!1):n.classradio=="Water"&&(h.value.collwater=!0,h.value.collfire=!1):(h.value.collwater=!1,h.value.collfire=!1)},Be=re=>{console.log(re),f.value=re.name,x.value=re.id},xt=()=>{o.value.dialoglog=!0,fe.selectPipes(),o.value.jgSelect(),console.log(o.value.dialoglog)},it=re=>{P.value=re;const G={transCode:"D00005",aid:P.value};Fe(G).then(ot=>{n.classradio=="Fire"?j.value=ot.rows:p.value=ot.rows}).catch(ot=>{Te.error(ot.returnMsg)})},J=()=>{if(a.value=!1,x.value==null||x.value=="")Te.error("巷道不能为空");else{const re={transCode:"D00004",pid:x.value,aid:P.value,stype:n.classradio,site:L.site};Fe(re).then(G=>{Te({message:G.returnMsg,type:"success"}),it(P.value)}).catch(G=>{Te.error(G.returnMsg)})}},H=()=>{S.value=="1"?(J(),c.value.dianadddialog=!1):S.value=="2"?n.classradio=="Fire"&&(c.value.dianadddialog=!1):(S.value="3")&&q()},Re=re=>{W.value=re.pname,N.value=re,a.value=!0,Ce.value=re,c.dialogsgdelect=!0,T.value=re.sid},Ce=re=>{ee.value=re,re=="1"?W.value==""?Te.error("你还没有选中删除的项目"):c.value.dialogsgdelect=!0:(console.log(11111),c.value.dialogsgdelect=!0)},Pe=()=>{ee.value=="1"?mt():ms()},mt=()=>{const re={transCode:"D000011",sid:T.value};console.log(re),Fe(re).then(G=>{Te({message:"删除成功",type:"success"}),it(P.value)}).catch(G=>{Te.error(G.returnMsg)})};function Ht(){St(v.value)}function jt(re){}const Kt=re=>{St(v.value)},nt=()=>{a.value=!1,f.value="",x.value="",L.site=0,nt.value="1",S.value="1",u.value="添加"},Q=()=>{S.value="3",u.value="修改",JSON.stringify(N.value)=="{}"?Te.error("你还没有选中修改的项目"):(console.log(N.value),c.value.dianadddialog=!0,P.value=N.value.aid,x.value=N.value.pid,L.site=N.value.site,f.value=N.value.pname)},q=()=>{const re={transCode:"D000010",pid:x.value,site:L.site,sid:N.value.sid};Fe(re).then(G=>{it(P.value),Te({message:G.returnMsg,type:"success"})}).catch(G=>{})},xe=()=>{v.value="",St("")},Se=()=>{He()},He=()=>{f.value="",l.value=1,console.log(),B.value.length!=0&&(x.value=B.value[0].id,f.value=B.value[0].name)},Y=(re,G)=>{if(re.length>1){R.value.clearSelection(),R.value.toggleRowSelection(G,!0),B.value=re[1];return}re.length==1?B.value=re:re.length==0},St=re=>{const G={transCode:"D00001",count:g.value,page:l.value,searchtag:re};Fe(G).then(ot=>{I.value=ot.rows,w.value=ot.total}).catch(ot=>{})},Fr=(re,G)=>{c.value.isDisasterfire=!0,T.value=G.sid,Pt()},Ur=(re,G)=>{c.value.disDisasterwter=!0,T.value=G.sid,Pt()},Pt=()=>{const re={transCode:"D00007",sid:T.value};Fe(re).then(G=>{console.log(G.rows),n.classradio=="Fire"?y.value=G.rows:K.value=G.rows}).catch(G=>{})},Xt=()=>{if(i.value.addEied=="a"){const re={transCode:"D00006",sid:T.value,timeline:k.value.timeline,val1:k.value.val1,val2:k.value.val2,val3:k.value.val3,val4:k.value.val4};Fe(re).then(G=>{Te({message:G.returnMsg,type:"success"}),Pt()}).catch(G=>{Te.error(G.returnMsg)})}else $()},dn=()=>{i.value.addEied="a",k.value.timeline="",k.value.val1="",k.value.val2="",k.value.val3="",k.value.val4="",u.value="添加"},se=()=>{i.value.addEied="x",u.value="修改",JSON.stringify(d.value)=="{}"?Te.error("你还没有选中修改的项目"):(n.classradio=="Fire"?c.value.adddialog=!0:c.value.adddwater=!0,k.value.timeline=d.value.timeline,k.value.val1=d.value.val1,k.value.val2=d.value.val2,k.value.val3=d.value.val3,k.value.val4=d.value.val4)},$=()=>{const re={transCode:"D000012",svid:d.value.svid,timeline:k.value.timeline,val1:k.value.val1,val2:k.value.val2,val3:k.value.val3,val4:k.value.val4};Fe(re).then(G=>{Te({message:G.returnMsg,type:"success"}),Pt()}).catch(G=>{Te.error(G.returnMsg)})},ce=re=>{s.value=!0,console.log(re),d.value=re,T.value=re.sid,W.value="检测表的一条信息",C.value=re.svid},et=re=>{s.value=!0,d.value=re,T.value=re.sid,W.value="检测表的一条信息",C.value=re.svid},ms=()=>{const re={transCode:"D000013",svid:C.value};Fe(re).then(G=>{Te({message:"删除成功",type:"success"}),Pt()}).catch(G=>{Te.error(G.returnMsg)})};return Vn(()=>{}),e({sour:h,accident3:te,handledisaster:it,changeModel:r}),(re,G)=>{const ot=ne("el-icon"),ue=ne("el-table-column"),vn=ne("el-table"),dt=ne("el-image"),la=ne("el-collapse-item"),br=ne("el-collapse"),Nr=ne("el-aside"),Mt=ne("el-input"),Et=ne("el-form-item"),ga=ne("el-input-number"),Ms=ne("el-pagination"),X=ne("el-form");return De(),$e(In,null,[E("div",am,[vt(E("div",sm,[D(Nr,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:U(()=>[E("div",im,[D(br,{modelValue:M(ae),"onUpdate:modelValue":G[10]||(G[10]=A=>qe(ae)?ae.value=A:ae=A),accordion:""},{default:U(()=>[D(la,{name:"1"},{title:U(()=>[D(ot,{class:"iconimg Frame2",fit:"contain"}),Z(" 火灾"),D(ot,{class:"header-icon"})]),default:U(()=>[E("div",om,[E("div",cm,[E("div",um,[E("div",fm,[D(vn,{data:j.value,onRowClick:G[0]||(G[0]=A=>Re(A)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"highlight-current-row":M(a),style:{width:"100%"},"max-height":M(O),"row-class-name":b},{default:U(()=>[D(ue,{prop:"pname",label:"选择巷道"}),D(ue,{prop:"site",label:"位置"}),D(ue,{label:"操作"},{default:U(A=>[D(M(ge),{size:"small",type:"success",onClick:bo(Vt=>Fr(A.$index,A.row),["stop"])},{default:U(()=>[Z("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style","highlight-current-row","max-height"]),E("div",lm,[E("div",{class:"flex_a",onClick:G[1]||(G[1]=A=>{nt(),c.value.dianadddialog=!0})},pm),E("div",{class:"flex_a",onClick:G[2]||(G[2]=A=>Q())},dm),E("div",{class:"flex_a",onClick:G[3]||(G[3]=A=>{Ce("1")})},ym)])]),vt(E("div",Tm,[E("div",xm,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),Sm,E("div",{class:"closeimg",onClick:G[4]||(G[4]=A=>c.value.isDisasterfire=!1)},[D(dt,{src:M(ui),fit:"contain"},null,8,["src"])])]),D(vn,{data:y.value,style:{width:"100%"},"row-class-name":b,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"max-height":M(O),onRowClick:G[5]||(G[5]=A=>ce(A)),"highlight-current-row":M(s)},{default:U(()=>[D(ue,{prop:"timeline",label:"时间",width:"70"}),D(ue,{prop:"val1",label:"温度℃",width:"70"}),D(ue,{prop:"val2",label:"二氧化碳",width:"100"}),D(ue,{prop:"val3",label:"二氧化硫",width:"100"})]),_:1},8,["data","header-cell-style","max-height","highlight-current-row"]),E("div",Cm,[E("div",{class:"flex_a",onClick:G[6]||(G[6]=A=>{dn(),c.value.adddialog=!0,qe(s)?s.value=!1:s=!1})},_m),E("div",{class:"flex_a",onClick:G[7]||(G[7]=A=>se())},Rm),E("div",{class:"flex_a",onClick:G[8]||(G[8]=A=>{Ce("2"),c.value.dialogsgdelect=!0})},Dm),E("div",mm,[E("div",{class:"btns",onClick:G[9]||(G[9]=A=>c.value.isDisasterfire=!1)},Vm)])])],512),[[_t,c.value.isDisasterfire]])]),Lm])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[_t,h.value.collfire]]),vt(E("div",Bm,[D(Nr,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:U(()=>[E("div",km,[D(br,{modelValue:M(ae),"onUpdate:modelValue":G[21]||(G[21]=A=>qe(ae)?ae.value=A:ae=A),accordion:""},{default:U(()=>[D(la,{name:"1"},{title:U(()=>[D(ot,{class:"iconimg Frame3",fit:"contain"}),Z(" 突水"),D(ot,{class:"header-icon"})]),default:U(()=>[E("div",Fm,[E("div",Um,[E("div",bm,[E("div",Nm,[D(vn,{data:p.value,style:{width:"100%"},"row-class-name":b,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:G[11]||(G[11]=A=>Re(A)),"max-height":"350px","highlight-current-row":M(a)},{default:U(()=>[D(ue,{prop:"pname",label:"选择巷道"}),D(ue,{prop:"site",label:"位置"}),D(ue,{label:"操作"},{default:U(A=>[D(M(ge),{size:"small",type:"success",onClick:bo(Vt=>Ur(A.$index,A.row),["stop"])},{default:U(()=>[Z("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style","highlight-current-row"]),E("div",Gm,[E("div",{class:"flex_a",onClick:G[12]||(G[12]=A=>{nt(),c.value.dianadddialog=!0})},Wm),E("div",{class:"flex_a",onClick:G[13]||(G[13]=A=>Q())},Am),E("div",{class:"flex_a",onClick:G[14]||(G[14]=A=>{Ce("1")})},jm),Km])]),vt(E("div",Pm,[E("div",Xm,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),Im,E("div",{class:"closeimg",onClick:G[15]||(G[15]=A=>c.value.disDisasterwter=!1)},[D(dt,{src:M(ui),fit:"contain"},null,8,["src"])])]),D(vn,{data:K.value,style:{width:"100%"},"max-height":M(O),"row-class-name":b,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:G[16]||(G[16]=A=>et(A)),"highlight-current-row":M(s)},{default:U(()=>[D(ue,{prop:"timeline",label:"时间/s"}),D(ue,{prop:"val1",label:"突水量(m³/s)"})]),_:1},8,["data","max-height","header-cell-style","highlight-current-row"]),E("div",Ym,[E("div",{class:"flex_a",onClick:G[17]||(G[17]=A=>{dn(),c.value.adddwater=!0})},Qm),E("div",{class:"flex_a",onClick:G[18]||(G[18]=A=>se())},Zm),E("div",{class:"flex_a",onClick:G[19]||(G[19]=A=>{Ce("2")})},tM),E("div",{class:"flex_a",onClick:G[20]||(G[20]=A=>c.value.disDisasterwter=!1)},rM)])],512),[[_t,c.value.disDisasterwter]])]),aM])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[_t,h.value.collwater]]),D(M(wt),{modelValue:c.value.dianadddialog,"onUpdate:modelValue":G[28]||(G[28]=A=>c.value.dianadddialog=A),width:"400","align-center":"",modal:!1,"close-on-click-modal":!1,draggable:"",fullscreen:!1,"modal-append-to-body":!1,"modal-class":"summary-dlg",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:A,titleClass:Vt})=>[E("div",sM,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:A,class:Ct(Vt)},Ee(M(u)),11,iM)])]),default:U(()=>[E("div",oM,[D(Et,{label:"巷道名称","label-width":m.value},{default:U(()=>[D(Mt,{modelValue:M(f),"onUpdate:modelValue":G[22]||(G[22]=A=>qe(f)?f.value=A:f=A),disabled:"",class:"w-50 m-2",placeholder:"巷道名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),E("div",cM,[D(M(ge),{type:"primary",onClick:G[23]||(G[23]=A=>{xe(),c.value.dialogVisiblenode=!0})},{default:U(()=>[Z("选择巷道")]),_:1})]),E("div",uM,[D(M(ge),{type:"primary",onClick:G[24]||(G[24]=A=>xt())},{default:U(()=>[Z("3D巷道选择")]),_:1})])]),E("div",fM,[D(Et,{label:"位置","label-width":m.value},{default:U(()=>[D(ga,{modelValue:M(L).site,"onUpdate:modelValue":G[25]||(G[25]=A=>M(L).site=A),min:0,max:1,precision:2,step:.1,"controls-position":"right",class:"w-50 m-2",placeholder:"位置"},null,8,["modelValue"])]),_:1},8,["label-width"])]),E("div",lM,[E("div",gM,[E("div",pM,[D(M(ge),{onClick:G[26]||(G[26]=A=>c.value.dianadddialog=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",hM,[E("div",dM,[D(M(ge),{onClick:G[27]||(G[27]=A=>{H(),c.value.dianadddialog=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:c.value.dialogVisiblenode,"onUpdate:modelValue":G[34]||(G[34]=A=>c.value.dialogVisiblenode=A),width:"50%",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:U(({titleId:A,titleClass:Vt})=>[E("div",vM,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:A,class:Ct(Vt)},"选择巷道",10,yM)])]),default:U(()=>[E("div",TM,[E("div",xM,[D(Et,{label:"节点选择","label-width":m.value},{default:U(()=>[D(Mt,{modelValue:M(v),"onUpdate:modelValue":G[29]||(G[29]=A=>qe(v)?v.value=A:v=A),class:"w-50 m-2",placeholder:"巷道名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),E("div",{class:"asdis_btn"},[E("div",{class:"flex_a"},[E("div",{class:"btns",onClick:Ht},CM)])])]),D(vn,{"row-class-name":b,"max-height":M(O),ref_key:"multipleTableRef",ref:R,data:I.value,style:{width:"100%"},onSelect:Y,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(ue,{type:"selection",width:"55"}),D(ue,{property:"snId",label:"开始节点"}),D(ue,{property:"enId",label:"结束节点"}),D(ue,{property:"id",label:"编号",width:"70"}),D(ue,{property:"name",label:"名称",width:"70"}),D(ue,{property:"sectionType",label:"截面类型",width:"120"}),D(ue,{property:"roughCoe",label:"粗糙系数"}),D(ue,{property:"sectionPara1",label:"截面参数1",width:"90"}),D(ue,{property:"sectionPara2",label:"截面参数2",width:"90"}),D(ue,{property:"sectionPara3",label:"截面参数3",width:"90"}),D(ue,{property:"sectionPara4",label:"截面参数4",width:"90"}),D(ue,{property:"sectionPara5",label:"截面参数5",width:"90"})]),_:1},8,["max-height","data","header-cell-style"]),E("div",wM,[D(Ms,{"current-page":l.value,"onUpdate:currentPage":G[30]||(G[30]=A=>l.value=A),"page-size":g.value,"onUpdate:pageSize":G[31]||(G[31]=A=>g.value=A),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(M(w)),class:"mt-4",onSizeChange:jt,onCurrentChange:Kt},null,8,["current-page","page-size","total"])]),E("div",_M,[E("div",EM,[E("div",RM,[D(M(ge),{onClick:G[32]||(G[32]=A=>c.value.dialogVisiblenode=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",OM,[E("div",DM,[D(M(ge),{onClick:G[33]||(G[33]=A=>{Se(),c.value.dialogVisiblenode=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:c.value.adddialog,"onUpdate:modelValue":G[41]||(G[41]=A=>c.value.adddialog=A),width:"400","align-center":"",modal:!1,"close-on-click-modal":!1,draggable:"",fullscreen:!1,"modal-append-to-body":!1,"modal-class":"summary-dlg",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:A,titleClass:Vt})=>[E("div",mM,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:A,class:Ct(Vt)},Ee(M(u)),11,MM)])]),default:U(()=>[E("div",null,[D(X,null,{default:U(()=>[D(Et,{label:"时间/s","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).timeline,"onUpdate:modelValue":G[35]||(G[35]=A=>M(k).timeline=A),modelModifiers:{Number:!0},class:"w-50 m-2",placeholder:"请输入时间秒",maxlength:"12",step:"0.01",oninput:"value=value.replace(/^0|[^0-9]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Et,{label:"温度℃","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).val1,"onUpdate:modelValue":G[36]||(G[36]=A=>M(k).val1=A),modelModifiers:{Number:!0},class:"w-50 m-2",placeholder:"请输入",maxlength:"10",step:"0.01",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Et,{label:"二氧化碳","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).val2,"onUpdate:modelValue":G[37]||(G[37]=A=>M(k).val2=A),class:"w-50 m-2",placeholder:"请输入",maxlength:"10",step:"0.01",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Et,{label:"二氧化硫","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).val3,"onUpdate:modelValue":G[38]||(G[38]=A=>M(k).val3=A),modelModifiers:{Number:!0},class:"w-50 m-2",placeholder:"请输入",maxlength:"10",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),E("div",VM,[E("div",LM,[E("div",BM,[D(M(ge),{onClick:G[39]||(G[39]=A=>c.value.adddialog=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",kM,[E("div",FM,[D(M(ge),{onClick:G[40]||(G[40]=A=>{Xt(),c.value.adddialog=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:c.value.adddwater,"onUpdate:modelValue":G[46]||(G[46]=A=>c.value.adddwater=A),width:"400",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:A,titleClass:Vt})=>[E("div",UM,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:A,class:Ct(Vt)},"添加",10,bM)])]),default:U(()=>[E("div",null,[D(X,null,{default:U(()=>[D(Et,{label:"时间/s","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).timeline,"onUpdate:modelValue":G[42]||(G[42]=A=>M(k).timeline=A),class:"w-50 m-2",placeholder:"请输入时间秒",oninput:"value=value.replace(/^0|[^0-9]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Et,{label:"突水量(m³/s)","label-width":V.value},{default:U(()=>[D(Mt,{modelValue:M(k).val1,"onUpdate:modelValue":G[43]||(G[43]=A=>M(k).val1=A),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),E("div",NM,[E("div",GM,[E("div",$M,[D(M(ge),{onClick:G[44]||(G[44]=A=>c.value.adddwater=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",WM,[E("div",zM,[D(M(ge),{onClick:G[45]||(G[45]=A=>{Xt(),c.value.adddwater=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:c.value.dialogsgdelect,"onUpdate:modelValue":G[49]||(G[49]=A=>c.value.dialogsgdelect=A),width:"400",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:A,titleClass:Vt})=>[E("div",AM,[D(dt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:A,class:Ct(Vt)},"删除框",10,HM)])]),default:U(()=>[E("h4",jM,[Z(" 是否确认删除 "),E("span",KM,Ee(M(W)),1)]),E("div",PM,[E("div",XM,[E("div",IM,[D(M(ge),{onClick:G[47]||(G[47]=A=>c.value.dialogsgdelect=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",YM,[E("div",qM,[D(M(ge),{onClick:G[48]||(G[48]=A=>{Pe(),c.value.dialogsgdelect=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])]),D(rm,{ref_key:"dialogtrue",ref:o,onDtext:Be},null,512)],64)}}},JM=gn(QM,[["__scopeId","data-v-53f2d1d5"]]);const fa=t=>(mn("data-v-03044172"),t=t(),Mn(),t),ZM={class:"my-header"},eV=["id"],tV={class:"mgstamkuang"},nV=fa(()=>E("span",null,"节点编号:",-1)),rV=fa(()=>E("span",null,"名称:",-1)),aV=fa(()=>E("span",null,"X:",-1)),sV=fa(()=>E("span",null,"y:",-1)),iV=fa(()=>E("span",null,"Z:",-1)),oV={class:"dialog-footer footer_div l_btn"},cV={class:"footerbtn flex1"},uV={class:"borderimg"},fV={class:"footerbtn flex1"},lV={class:"borderimg"},gV={__name:"SetNode",emits:["Dtext"],setup(t,{expose:e,emit:n}){let r=F(!1),a=F("节点信息"),s=F({id:"",name:"",x:"",y:"",z:""});e({dialoglog:r,jgSelect:c});let i=F(null),o=F(null);const u=()=>{n("Dtext",o.value),clearInterval(i.value)};clearInterval(i.value),ys(()=>{clearInterval(i.value)}),Vn(()=>{}),Su(()=>{clearInterval(i.value)});function c(){i.value=setInterval(()=>{o.value=fe.selectObj,o.value==null||(s.value=o.value)},200)}return(f,l)=>{const g=ne("el-image");return De(),$e("div",null,[D(M(wt),{width:"300px",modelValue:M(r),"onUpdate:modelValue":l[2]||(l[2]=p=>qe(r)?r.value=p:r=p),modal:!1,"close-on-click-modal":!1,draggable:"",fullscreen:!1,"modal-append-to-body":!1,"modal-class":"summary-dlg",onClose:f.closeDialog,class:"right log_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:U(({titleId:p,titleClass:y})=>[E("div",ZM,[D(g,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:p,class:Ct(y)},Ee(M(a)),11,eV)])]),default:U(()=>[E("div",tV,[E("ul",null,[E("li",null,[nV,Z(Ee(M(s).id),1)]),E("li",null,[rV,Z(Ee(M(s).name),1)]),E("li",null,[aV,Z(Ee(M(s).x),1)]),E("li",null,[sV,Z(Ee(M(s).y),1)]),E("li",null,[iV,Z(Ee(M(s).z),1)])])]),E("div",oV,[E("div",cV,[E("div",uV,[D(M(ge),{onClick:l[0]||(l[0]=p=>{f.closeDialog(),qe(r)?r.value=!1:r=!1})},{default:U(()=>[Z("取消")]),_:1})])]),E("div",fV,[E("div",lV,[D(M(ge),{onClick:l[1]||(l[1]=p=>{u(),qe(r)?r.value=!1:r=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue","onClose"])])}}},pV=gn(gV,[["__scopeId","data-v-03044172"]]);const rr=t=>(mn("data-v-803f8c64"),t=t(),Mn(),t),hV={class:"l_Dialog bou"},dV={class:"common-layout",style:{margin:"0"}},vV={class:"demo-collapse"},yV={class:"asides_content"},TV={class:"jc_content tablecolor"},xV={class:"jc_padding font12"},SV={class:"xian btncolor tablefocus bmar"},CV={class:"asdis_btn"},wV={class:"flex_a"},_V=rr(()=>E("span",{class:"spantext"},"添加",-1)),EV=[_V],RV={class:"flex_a"},OV=rr(()=>E("span",{class:"spantext"},"修改",-1)),DV=[OV],mV={class:"flex_a"},MV=rr(()=>E("span",{class:"spantext"},"删除",-1)),VV=[MV],LV={class:"common-layout",style:{margin:"0"}},BV={class:"demo-collapse"},kV={class:"asides_content"},FV={class:"jc_content tablecolor"},UV={class:"jc_padding font12"},bV={class:"xian btncolor tablefocus bmar"},NV={class:"asdis_btn padingcla"},GV={class:"flex_a"},$V=rr(()=>E("span",{class:"spantext"},"添加",-1)),WV=[$V],zV={class:"flex_a"},AV=rr(()=>E("span",{class:"spantext"},"修改",-1)),HV=[AV],jV={class:"flex_a"},KV=rr(()=>E("span",{class:"spantext"},"删除",-1)),PV=[KV],XV={class:"my-header"},IV=["id"],YV={class:"addye"},qV={key:0,class:"fireclass"},QV={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},JV={class:"demo-input-suffix firsttitle magintop"},ZV={class:"btn2"},e3={class:"btn2",style:{"padding-left":"10px"}},t3={key:1,class:"Waterclass"},n3={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},r3={class:"demo-input-suffix firsttitle magintop"},a3={class:"btn2"},s3={class:"btn2",style:{"padding-left":"10px"}},i3={class:"dialog-footer footer_div l_btn"},o3={class:"footerbtn flex1"},c3={class:"borderimg"},u3={class:"footerbtn flex1"},f3={class:"borderimg"},l3={class:"my-header"},g3=["id"],p3={class:"demo-input-suffix firsttitle leftbgimg2"},h3={class:"guand_1"},d3=rr(()=>E("span",{class:"spantext"},"搜索",-1)),v3=[d3],y3={class:"demo-pagination-block",style:{"margin-top":"20px"}},T3={class:"dialog-footer footer_div l_btn"},x3={class:"footerbtn flex1"},S3={class:"borderimg"},C3={class:"footerbtn flex1"},w3={class:"borderimg"},_3={class:"my-header"},E3=["id"],R3={class:"delecttitle"},O3={class:"spanclad"},D3={class:"dialog-footer footer_div l_btn"},m3={class:"footerbtn flex1"},M3={class:"borderimg"},V3={class:"footerbtn flex1"},L3={class:"borderimg"},B3={__name:"InfoBoundary",props:{classradio:String},setup(t,{expose:e}){const n=t,r=()=>{fe.clearJgAddMode(),fe.renderWindow.render()};let a=F();const s=()=>{a.value.dialoglog=!0,fe.selectNodes(),a.value.jgSelect(),console.log(a.value.dialoglog)},i=J=>{console.log(J),w.value=J.id,R.value.nname=J.name};let o=F({dialogVisiblenode:!1,dialogsgdelect:!1}),u=F("");Cu({id:0,name:"灾情演化",value:".vtk"});let c=F({}),f=F(""),l=F(400);const g=F(),p=F([]),y=F(77),h=F(120);let d=F([]),x=F(""),C=F(1);const T=F(1),v=F(5);let w=F(),S=F(),O=F(),R=F({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:"边界出口"}]}),B=F(["1","2"]);const m=F([]);F("");const V=F({dialogVisible:!1}),L=F({collfire:!1,collwater:!1}),k=()=>{P("")};function N(){P(x.value)}const I=J=>{P(x.value)},P=J=>{const H={transCode:"D00000",count:v.value,page:T.value,searchtag:J};Fe(H).then(Re=>{d.value=Re.rows,C.value=Re.total}).catch(Re=>{Te.error(Re.returnMsg)})},ee=()=>{o.value.dialogVisiblenode=!1,R.value.nname="",T.value=1,console.log(),p.value.length!=0?(w.value=p.value[0].id,R.value.nname=p.value[0].name):R.value.nname=""},ae=(J,H)=>{if(J.length>1){g.value.clearSelection(),g.value.toggleRowSelection(H,!0),p.value=J[1];return}J.length==1?p.value=J:J.length==0},W=()=>{S.value="",R.value.nname="",R.value.type="Pressure",R.value.flow="0",R.value.pressure="100000",R.value.temperature="25",R.value.polcon1="0",R.value.polcon2="0",u.value="添加",n.classradio=="Fire"?R.value.type="Pressure":n.classradio=="Water"&&(R.value.type="边界出口")},b=()=>{u.value="修改",JSON.stringify(c.value)=="{}"?Te.error("你还没有选中修改的项目"):(n.classradio=="Fire"?R.value.type="Pressure":n.classradio=="Water"&&(R.value.type="边界出口"),console.log(c.value),S.value=c.value.bid,w.value=c.value.nid,O.value=c.value.aid,V.value.dialogVisible=!0,R.value.nname=c.value.nname,R.value.type=c.value.type,R.value.flow=c.value.flow,R.value.pressure=c.value.pressure,R.value.temperature=c.value.temperature,R.value.polcon1=c.value.polcon1,R.value.polcon2=c.value.polcon2)},j=()=>{const J={transCode:"D10008",bid:S.value,nid:w.value,nname:R.value.nname,type:R.value.type,aid:O.value,flow:R.value.flow,pressure:R.value.pressure,temperature:R.value.temperature,polcon1:R.value.polcon1,polcon2:R.value.polcon2};Fe(J).then(H=>{K(O.value)}).catch(H=>{Te.error(H.returnMsg)})},K=J=>{O.value=J;const H={transCode:"D10007",aid:O.value};Fe(H).then(Re=>{m.value=Re.rows}).catch(Re=>{Te.error(Re.returnMsg)})},te=J=>{console.log(J),c.value=J,S.value=J.bid,f.value=J.nname},Be=()=>{const J={transCode:"D10009",bid:S.value};console.log(J),Fe(J).then(H=>{Te({message:"删除成功",type:"success"}),K(O.value)}).catch(H=>{Te.error(H.returnMsg)})},xt=({row:J,rowIndex:H})=>H%2!=0?"evenRow":"oddRow",it=J=>{J=="2"?n.classradio=="Fire"?L.value.collfire=!0:n.classradio=="Water"&&(L.value.collwater=!0):(L.value.collfire=!1,L.value.collwater=!1)};return Vn(()=>{}),e({boun:L,accident4:it,addboundary:K,changeModel:r}),(J,H)=>{const Re=ne("el-icon"),Ce=ne("el-table-column"),Pe=ne("el-table"),mt=ne("el-collapse-item"),Ht=ne("el-collapse"),jt=ne("el-aside"),Kt=ne("el-image"),nt=ne("el-input"),Q=ne("el-form-item"),q=ne("el-option"),xe=ne("el-select"),Se=ne("el-form"),He=ne("el-pagination");return De(),$e(In,null,[E("div",hV,[E("div",dV,[vt(D(jt,{width:"591px",class:"L_aside L_aside1 asideg asidegbg leftbgimg2"},{default:U(()=>[E("div",vV,[D(Ht,{modelValue:M(B),"onUpdate:modelValue":H[4]||(H[4]=Y=>qe(B)?B.value=Y:B=Y),accordion:""},{default:U(()=>[D(mt,{name:"1"},{title:U(()=>[D(Re,{class:"iconimg Frame2",fit:"contain"}),Z(" 火灾"),D(Re,{class:"header-icon"})]),default:U(()=>[E("div",yV,[E("div",TV,[E("div",xV,[E("div",SV,[D(Pe,{data:m.value,style:{width:"100%"},"max-height":M(l),"highlight-current-row":!0,"row-class-name":xt,onRowClick:H[0]||(H[0]=Y=>te(Y)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(Ce,{prop:"nid",label:"节点选择"}),D(Ce,{label:"边界类型",prop:"type",align:"center",width:"80px"},{default:U(Y=>[Z(Ee(Y.row.type=="massflow"?"流量边界":(Y.row.type=="Pressure","压力边界")),1)]),_:1}),D(Ce,{prop:"flow",label:"流量(m³/s)",width:"80"}),D(Ce,{prop:"pressure",label:"压强(pa)",width:"70"}),D(Ce,{prop:"temperature",label:"温度(℃)"}),D(Ce,{prop:"polcon1",label:"二氧化碳",width:"95"}),D(Ce,{prop:"polcon2",label:"二氧化硫",width:"95"})]),_:1},8,["data","max-height","header-cell-style"]),E("div",CV,[E("div",wV,[E("div",{class:"btns",onClick:H[1]||(H[1]=Y=>{W(),V.value.dialogVisible=!0})},EV)]),E("div",RV,[E("div",{class:"btns",onClick:H[2]||(H[2]=Y=>b())},DV)]),E("div",mV,[E("div",{class:"btns",onClick:H[3]||(H[3]=Y=>M(o).dialogsgdelect=!0)},VV)])])])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[_t,L.value.collfire]])]),E("div",LV,[vt(D(jt,{width:"231px",class:"L_aside L_aside1 asideg asidegbg leftbgimg0"},{default:U(()=>[E("div",BV,[D(Ht,{modelValue:M(B),"onUpdate:modelValue":H[9]||(H[9]=Y=>qe(B)?B.value=Y:B=Y),accordion:""},{default:U(()=>[D(mt,{name:"2"},{title:U(()=>[D(Re,{class:"iconimg Frame3",fit:"contain"}),Z(" 突水"),D(Re,{class:"header-icon"})]),default:U(()=>[E("div",kV,[E("div",FV,[E("div",UV,[E("div",bV,[D(Pe,{data:m.value,style:{width:"100%"},"max-height":M(l),"highlight-current-row":!0,"row-class-name":xt,onRowClick:H[5]||(H[5]=Y=>te(Y)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(Ce,{prop:"nid",label:"节点选择"}),D(Ce,{prop:"type",label:"边界类型"})]),_:1},8,["data","max-height","header-cell-style"])])]),E("div",NV,[E("div",GV,[E("div",{class:"btns",onClick:H[6]||(H[6]=Y=>{W(),V.value.dialogVisible=!0})},WV)]),E("div",zV,[E("div",{class:"btns",onClick:H[7]||(H[7]=Y=>b())},HV)]),E("div",jV,[E("div",{class:"btns",onClick:H[8]||(H[8]=Y=>M(o).dialogsgdelect=!0)},PV)])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[_t,L.value.collwater]])]),D(M(wt),{modelValue:V.value.dialogVisible,"onUpdate:modelValue":H[25]||(H[25]=Y=>V.value.dialogVisible=Y),width:"482",modal:!1,"close-on-click-modal":!1,draggable:"",fullscreen:!1,"modal-append-to-body":!1,"modal-class":"summary-dlg",class:"dialog_class bgcolor foter_l"},{header:U(({titleId:Y,titleClass:St})=>[E("div",XV,[D(Kt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:Y,class:Ct(St)},Ee(M(u)),11,IV)])]),default:U(()=>[E("div",YV,[n.classradio=="Fire"?(De(),$e("div",qV,[D(Se,{class:"demo-form-inline",inline:!0,model:M(R)},{default:U(()=>[E("div",QV,[E("div",JV,[D(Q,{label:"节点名称","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).nname,"onUpdate:modelValue":H[10]||(H[10]=Y=>M(R).nname=Y),class:"w-50 m-2",placeholder:"节点选择",disabled:""},null,8,["modelValue"])]),_:1},8,["label-width"]),E("div",ZV,[D(M(ge),{type:"primary",onClick:H[11]||(H[11]=Y=>{k(),M(o).dialogVisiblenode=!0})},{default:U(()=>[Z("选择节点")]),_:1})]),E("div",e3,[D(M(ge),{type:"primary",onClick:H[12]||(H[12]=Y=>s())},{default:U(()=>[Z("3D节点选择")]),_:1})])]),D(Q,{label:"边界类型","label-width":h.value},{default:U(()=>[D(xe,{modelValue:M(R).type,"onUpdate:modelValue":H[13]||(H[13]=Y=>M(R).type=Y),placeholder:"请选择"},{default:U(()=>[(De(!0),$e(In,null,qr(M(R).options,Y=>(De(),Cr(q,{key:Y.id,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"]),D(Q,{label:"流量(m³/s)","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).flow,"onUpdate:modelValue":H[14]||(H[14]=Y=>M(R).flow=Y),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Q,{label:"压强(pa)","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).pressure,"onUpdate:modelValue":H[15]||(H[15]=Y=>M(R).pressure=Y),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Q,{label:"温度(℃)","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).temperature,"onUpdate:modelValue":H[16]||(H[16]=Y=>M(R).temperature=Y),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Q,{label:"二氧化碳","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).polcon1,"onUpdate:modelValue":H[17]||(H[17]=Y=>M(R).polcon1=Y),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"]),D(Q,{label:"二氧化硫","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).polcon2,"onUpdate:modelValue":H[18]||(H[18]=Y=>M(R).polcon2=Y),class:"w-50 m-2",placeholder:"请输入",oninput:"value=value.replace(/[^0-9.]/g,'')"},null,8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])):(De(),$e("div",t3,[D(Se,{class:"demo-form-inline",inline:!0,model:M(R)},{default:U(()=>[E("div",n3,[E("div",r3,[D(Q,{label:"节点名称","label-width":h.value},{default:U(()=>[D(nt,{modelValue:M(R).nname,"onUpdate:modelValue":H[19]||(H[19]=Y=>M(R).nname=Y),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),E("div",a3,[D(M(ge),{type:"primary",onClick:H[20]||(H[20]=Y=>{k(),M(o).dialogVisiblenode=!0})},{default:U(()=>[Z("选择节点")]),_:1})]),E("div",s3,[D(M(ge),{type:"primary",onClick:H[21]||(H[21]=Y=>s())},{default:U(()=>[Z("3D节点选择")]),_:1})])]),D(Q,{label:"边界类型","label-width":h.value},{default:U(()=>[D(xe,{modelValue:M(R).type,"onUpdate:modelValue":H[22]||(H[22]=Y=>M(R).type=Y),placeholder:"请选择"},{default:U(()=>[(De(!0),$e(In,null,qr(M(R).options2,Y=>(De(),Cr(q,{key:Y.id,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])),E("div",i3,[E("div",o3,[E("div",c3,[D(M(ge),{onClick:H[23]||(H[23]=Y=>V.value.dialogVisible=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",u3,[E("div",f3,[D(M(ge),{onClick:H[24]||(H[24]=Y=>{j(),V.value.dialogVisible=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:M(o).dialogVisiblenode,"onUpdate:modelValue":H[31]||(H[31]=Y=>M(o).dialogVisiblenode=Y),width:"600px",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:U(({titleId:Y,titleClass:St})=>[E("div",l3,[D(Kt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:Y,class:Ct(St)},"选择节点",10,g3)])]),default:U(()=>[E("div",p3,[E("div",h3,[D(Q,{label:"节点选择","label-width":y.value},{default:U(()=>[D(nt,{modelValue:M(x),"onUpdate:modelValue":H[26]||(H[26]=Y=>qe(x)?x.value=Y:x=Y),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),E("div",{class:"asdis_btn"},[E("div",{class:"flex_a"},[E("div",{class:"btns",onClick:N},v3)])])]),D(Pe,{"row-class-name":xt,"max-height":M(l),ref_key:"multipleTableRef",ref:g,data:M(d),style:{width:"100%"},onSelect:ae,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(Ce,{type:"selection",width:"55"}),D(Ce,{property:"id",label:"节点编号"}),D(Ce,{property:"name",label:"名称"}),D(Ce,{property:"ntype",label:"类型"}),D(Ce,{property:"x",label:"x"}),D(Ce,{property:"y",label:"y"}),D(Ce,{property:"z",label:"z"})]),_:1},8,["max-height","data","header-cell-style"]),E("div",y3,[D(He,{"current-page":T.value,"onUpdate:currentPage":H[27]||(H[27]=Y=>T.value=Y),"page-size":v.value,"onUpdate:pageSize":H[28]||(H[28]=Y=>v.value=Y),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(M(C)),class:"mt-4",onCurrentChange:I},null,8,["current-page","page-size","total"])]),E("div",T3,[E("div",x3,[E("div",S3,[D(M(ge),{onClick:H[29]||(H[29]=Y=>M(o).dialogVisiblenode=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",C3,[E("div",w3,[D(M(ge),{onClick:H[30]||(H[30]=Y=>ee())},{default:U(()=>[Z(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"]),D(M(wt),{modelValue:M(o).dialogsgdelect,"onUpdate:modelValue":H[34]||(H[34]=Y=>M(o).dialogsgdelect=Y),width:"400",class:"dialog_class bgcolor tianjia"},{header:U(({titleId:Y,titleClass:St})=>[E("div",_3,[D(Kt,{src:M(rt),fit:"contain"},null,8,["src"]),E("h4",{id:Y,class:Ct(St)},"删除框",10,E3)])]),default:U(()=>[E("h4",R3,[Z(" 是否确认删除 "),E("span",O3,Ee(M(f)),1)]),E("div",D3,[E("div",m3,[E("div",M3,[D(M(ge),{onClick:H[32]||(H[32]=Y=>M(o).dialogsgdelect=!1)},{default:U(()=>[Z("取消")]),_:1})])]),E("div",V3,[E("div",L3,[D(M(ge),{onClick:H[33]||(H[33]=Y=>{Be(),M(o).dialogsgdelect=!1})},{default:U(()=>[Z(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])]),D(pV,{ref_key:"dialogtrue",ref:a,onDtext:i},null,512)],64)}}},k3=gn(B3,[["__scopeId","data-v-803f8c64"]]),ko={};function $p(t){return!!ko[t]}function F3(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"http",e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ko[t](e)}function Wp(t,e){ko[t]=e}var U3={get:F3,has:$p,registerType:Wp};const b3={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 oi(t,e,n){let r=0;function a(s){return s.split(" ").forEach(i=>{i.length&&(t[r++]=Number(i))}),r<t.length?!0:(e(t,n),!1)}return a}const N3={DATASET:{init(t,e){const n=t.split(" ")[1];switch(n){case"UNSTRUCTURED_GRID":e.dataset=zt.newInstance();break;default:console.error(`Dataset of type ${n} not supported`)}return!1},parse(t,e){return!1}},POINTS:{init(t,e){const[n,r,a]=t.split(" "),s=a==="float"?new Float32Array(3*Number(r)):new Float64Array(3*Number(r)),i=e.dataset.getPoints();return i.setName(n),e.arrayHandler=oi(s,i.setData,3),!0},parse(t,e){return e.arrayHandler(t)}},CELLS:{init(t,e){const[n,r,a]=t.split(" "),s=e.dataset.getPolys();return s.set({numberOfCells:Number(r)},!0),e.arrayHandler=oi(new Uint32Array(Number(a)),s.setData,1),!0},parse(t,e){return e.arrayHandler(t)}},POINT_DATA:{init(t,e){return e.POINT_DATA=Number(t.split(" ")[1]),e.activeFieldLocation="POINT_DATA",!1},parse(t,e){return!1}},SCALARS:{init(t,e){e.scalars||(e.scalars=new Map);const[n,r,a]=t.split(" "),s=1,i=new b3[a](e.POINT_DATA),o=Oe.newInstance({name:r,size:e.POINT_DATA});return e.scalars.set(r,i),e.arrayHandler=oi(i,o.setData,s),!0},parse(t,e){return t.split(" ")[0]==="LOOKUP_TABLE"?!0:e.arrayHandler(t)}}};function G3(t,e){const n=t.split(" ");return N3[n[0]]}function $3(t){let e=arguments.length>1&&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=G3(i),!n)return;n=n.init(i,e)?n:null;return}n&&!n.parse(i,e)&&(n=null)}}),e}var W3={parseLegacyASCII:$3};function zp(){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 z3=zp();function A3(t,e){if(e<2)return;const n=new Int8Array(t),r=n.length,a=[];for(let s=0;s<r;s+=e){for(let i=0;i<e;i++)a.push(n[s+i]);for(let i=0;i<e;i++)n[s+i]=a.pop()}}var ci={ENDIANNESS:z3,getEndianness:zp,swapBytes:A3};const{vtkErrorMacro:Ap,vtkDebugMacro:H3}=_,Fo=()=>(Ap("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 mr=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 j3(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 K3(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return r&&r.compression?Fo():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,++mr===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):(ci.ENDIANNESS!==n.ref.encode&&ci.ENDIANNESS&&(H3(`Swap bytes of ${n.name}`),ci.swapBytes(n.buffer,Tl[n.dataType])),n.values=_.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&&Ap(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,--mr===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 P3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?Fo():new Promise((r,a)=>{const s=Ds("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++mr===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--mr===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 X3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?Fo():new Promise((r,a)=>{const s=Ds("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++mr===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--mr===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 I3(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 Y3={fetchArray:K3,fetchJSON:P3,fetchText:X3,fetchBinary:j3,fetchImage:I3};$p("http")||Wp("http",t=>Y3);function q3(t,e){e.classHierarchy.push("vtkUnstructuredDataReader"),e.dataAccessHelper||(e.dataAccessHelper=U3.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=W3.parseLegacyASCII(e.parseData),e.output[0]=e.dataModel.dataset,e.output[1]=e.dataModel.scalars}},t.requestData=(r,a)=>{t.parseAsText(e.parseData)}}const Q3={};function Hp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Q3,n),_.obj(t,e),_.get(t,e,["url","baseURL"]),_.setGet(t,e,["dataAccessHelper"]),_.algo(t,e,0,1),q3(t,e),e.compression||(e.compression=null),e.progressCallback||(e.progressCallback=null)}const J3=_.newInstance(Hp,"vtkUnstructuredDataReader");var Z3={newInstance:J3,extend:Hp};class eL{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=Z3.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 tL(){return new eL}const ar=t=>(mn("data-v-879fe151"),t=t(),Mn(),t),nL={class:"l_Dialog"},rL={class:"result result1"},aL={class:"newtime"},sL={class:"newtime"},iL={class:"animation_s"},oL={class:"tanniu"},cL=ar(()=>E("p",null,"后退",-1)),uL=ar(()=>E("p",null,"播放",-1)),fL=ar(()=>E("p",null,"暂停",-1)),lL=ar(()=>E("p",null,"快进",-1)),gL={class:"demo-collapse jiancedian asideg1 jc_header collapseeion jianstyle"},pL={class:"he_pading color1"},hL={key:1,class:"woter"},dL=ar(()=>E("span",null,"物理量:",-1)),vL=ar(()=>E("span",null,"水位",-1)),yL=[dL,vL],TL={class:"jc_content tablecolor"},xL={class:"jc_padding"},SL={key:0,class:"xian"},CL={key:1,class:"xian"},wL=ar(()=>E("div",{class:"jc_header color1"},[E("span",{class:"jc_tile"},"信息展示")],-1)),_L={class:"msgval",style:{height:"200px"}},EL={class:"namemgd"},RL={class:"namemgd2"},OL={__name:"InfoAnimation",props:{classradio:{type:String}},emits:[],setup(t,{expose:e,emit:n}){const r=t;F("SOS");const a=F(["1"]);let s=F(400),i=F(""),o=F(0);const u=F(0),c=F(!1),f=F(!1),l=F([]);F("http://localhost:8080/?aid=0");const g=F("first");let p=F(""),y=F(1),h=F(60);F(2);let d=F(),x=F(null),C=F(null),T=F(0);F(20),F("#409eff");const v=({row:Q,rowIndex:q})=>q%2!=0?"evenRow":"oddRow",w=F({region:"shanghai"});F([]);const S=F([{name:"",value:""}]),O=({row:Q,rowIndex:q})=>{console.log(Q)},R=F(0),B=F(1),m=F({jid:0,aid:0,starttime:"",endtime:"",state:"",faildes:"",dt:"",dx:"",reportstep:"",interactionstep:"",acctime:"",totaltime:"",coids:"",cocodes:""});let V=F([]);const L=F([]),k=F(""),N=F([]),I=F([]),P=F(0),ee=F("false");function ae(Q){J.step=u.value}function W(Q){c.value=!0;const q=(Se=Q)=>new Promise((He,Y)=>{setTimeout(He,Se)});(async Se=>{for(;u.value<h.value&&c.value;)c.value==!0&&(await q(Q),u.value++,J.step=u.value,o.value=u.value)})()}function b(){c.value=!1,u.value!=h.value&&(u.value++,o.value=u.value,J.step=u.value)}function j(){c.value=!1}function K(){c.value=!1,u.value--,J.step=u.value,o.value=u.value}function te(){const Q=Date.parse(k.value),q=new Date(Q);Pe(q)}function Be(){for(let Q=0;Q<I.value.length;Q++)if(w.value.region==I.value[Q].cocode){P.value=Q+1;break}if(S.value=[],r.classradio=="Fire")for(let Q=0;Q<N.value.length;Q++){let q=N.value[Q];P.value==1&&S.value.push({name:q.chcode,value:q.v1}),P.value==2&&S.value.push({name:q.chcode,value:q.v2}),P.value==3&&S.value.push({name:q.chcode,value:q.v3}),P.value==4&&S.value.push({name:q.chcode,value:q.v4}),P.value==5&&S.value.push({name:q.chcode,value:q.v5}),P.value==6&&S.value.push({name:q.chcode,value:q.v6})}else for(let Q=0;Q<N.value.length;Q++){let q=N.value[Q];S.value.push({name:q.chcode,value:q.v1,value2:q.v2})}}function xt(Q){console.log(Q),new Map([["Temperature","(℃)"],["Pressure","(kg/s)"],["Pressure","(kg/s)"],["CO2","(%)"],["CO2","(%)"],["H2S","(%)"],["Flow","(Pa)"],["Height","m"]]).forEach((xe,Se)=>{console.log(Se,xe),Se==Q&&(i.value=Se+xe)}),Be(),jt()}const it=Q=>{d.value=Q,g.value="first",(r.classradio=="Fire"||r.classradio=="Water")&&(f.value=!0),ee.value=!1,Ce(),g.value=="first"?x.value=setInterval(()=>{const q=new Date().getTime();p.value=Pr(q),Pe(new Date)},1e3):x.value=setInterval(()=>{const q=new Date().getTime();p.value=Pr(q)},1e3)},J=tL();async function H(){const Q={transCode:"D10016",aid:d.value,step:J.step};await Fe(Q).then(q=>{if(q.returnCode=="000000000"){N.value=q.chvals,S.value=[];for(let xe=0;xe<N.value.length;xe++){let Se=N.value[xe];S.value.push({name:Se.chcode,value:Se.v1})}if(ee.value)Be();else{ee.value=!0,I.value=q.cocodes,w.value.region=I.value[0].cocode,new Map([["Temperature","(℃)"],["Pressure","(kg/s)"],["Pressure","(kg/s)"],["CO2","(%)"],["CO2","(%)"],["H2S","(%)"],["Flow","(Pa)"],["Height","m"]]).forEach((Se,He)=>{He==w.value.region&&(i.value=He+Se)}),P.value=1,l.value=[];for(let Se=0;Se<I.value.length;Se++){const He=I.value[Se];l.value.push({id:Se,name:He.cocode,value:He.cocode})}}}else Te({message:q.returnMsg,type:"error"})}).catch(q=>{})}function Re(){C.value=setInterval(()=>{if(T.value!=fe.selectJgPointId){T.value=fe.selectJgPointId,L.value=[];for(const Q of J.scalar.keys())L.value.push({name:Q,value:J.scalar.get(Q)[fe.selectJgPointId]});V.value=L.value,console.log(V.value)}},1e3)}async function Ce(){fe.clearModeAddJg();const Q={transCode:"D10017",aid:d.value};await Fe(Q).then(q=>{q.returnCode=="000000000"?(m.value=q,Pe(new Date),H(),mt(),Re()):Te({message:q.returnMsg,type:"error"})}).catch(q=>{})}function Pe(Q){const q=Q.getTime(),xe=Date.parse(m.value.acctime);var Se=parseInt((q-xe)/1e3);J.stepsum=parseInt(m.value.totaltime)/parseInt(m.value.reportstep),B.value=J.stepsum,Se<parseInt(m.value.totaltime)?J.step=parseInt(Se/parseInt(m.value.reportstep)):J.step=J.stepsum,u.value=J.step,o.value=u.value}function mt(){J.aid=d.value,J.initGemetry().then(Q=>{Ht()}).catch(Q=>{})}function Ht(){J.getScalrsByStep(J.step).then(Q=>{jt()}).catch(Q=>{console.log(Q)})}function jt(){console.log("执行了");const Q=fe.scalarBarActor,q=fe.jgMapper,xe=fe.jgActor;console.log(w.value.region);const Se=J.scalar.get(w.value.region),He=Oe.newInstance({name:w.value.region,size:J.polydata.getNumberOfPoints()});He.setData(Se),J.polydata.getPointData().setScalars(He),q.setInputData(J.polydata),Kt(Se),q.setScalarRange(parseFloat(R.value.toFixed(3)),parseFloat(B.value.toFixed(3))),Q.setAxisLabel(w.value.region),q.clearColorArrays(),xe.getProperty().setOpacity(u.value),fe.renderWindow.render()}function Kt(Q){R.value=Q[0],B.value=Q[0];for(let q=0;q<=Q.length;q++){let xe=Q[q];R.value>xe&&(R.value=xe),B.value<xe&&(B.value=xe)}}const nt=(Q,q)=>{g.value=Q.props.name,g.value=="first"?x.value=setInterval(()=>{const xe=new Date().getTime();p.value=Pr(xe),console.log(p.value),Pe(new Date)},1e3):(g.value=="second"||g.value=="third")&&clearInterval(x.value)};return ys(()=>{clearInterval(x.value)}),Vn(()=>{}),Yp(o,(Q,q)=>{console.log("值改变了",Q,q),J.step=Q,Ht(),H()},{deep:!0}),e({monitor:f,accident5:it}),(Q,q)=>{const xe=ne("el-tab-pane"),Se=ne("el-date-picker"),He=ne("el-slider"),Y=ne("el-image"),St=ne("el-tabs"),Fr=ne("el-aside"),Ur=ne("el-option"),Pt=ne("el-form-item"),Xt=ne("el-table-column"),dn=ne("el-table"),se=ne("el-collapse-item"),$=ne("el-collapse");return De(),$e("div",nL,[vt(D(Fr,{width:"278px",class:"L_aside asideg asidegbg leftbgimg"},{default:U(()=>[E("div",rL,[D(St,{modelValue:g.value,"onUpdate:modelValue":q[3]||(q[3]=ce=>g.value=ce),type:"card",class:"demo-tabs",onTabClick:nt},{default:U(()=>[D(xe,{label:"当前时间",name:"first"},{default:U(()=>[E("div",aL,Ee(M(p)),1)]),_:1}),D(xe,{label:"指定时间",name:"second"},{default:U(()=>[E("div",sL,[D(Se,{modelValue:k.value,"onUpdate:modelValue":q[0]||(q[0]=ce=>k.value=ce),type:"datetime",placeholder:"Select date and time",onChange:te},null,8,["modelValue"])])]),_:1}),D(xe,{label:"动画演示",name:"third"},{default:U(()=>[E("div",iL,[D(He,{max:M(h),min:M(y),modelValue:u.value,"onUpdate:modelValue":q[1]||(q[1]=ce=>u.value=ce),onChange:ae},null,8,["max","min","modelValue"]),E("div",oL,[E("ul",null,[E("li",null,[D(Y,{src:M(i0),fit:"contain",onClick:K},null,8,["src"]),cL]),E("li",null,[D(Y,{src:M(o0),fit:"contain",onClick:q[2]||(q[2]=ce=>W(500))},null,8,["src"]),uL]),E("li",null,[D(Y,{src:M(c0),fit:"contain",onClick:j},null,8,["src"]),fL]),E("li",null,[D(Y,{src:M(u0),fit:"contain",onClick:b},null,8,["src"]),lL])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[_t,f.value]]),vt(E("div",gL,[D($,{accordion:"",modelValue:a.value,"onUpdate:modelValue":q[6]||(q[6]=ce=>a.value=ce)},{default:U(()=>[D(se,{name:"1"},{title:U(()=>[E("div",pL,[r.classradio=="Fire"?(De(),Cr(Pt,{key:0,label:"物理量:"},{default:U(()=>[D(M(xu),{modelValue:w.value.region,"onUpdate:modelValue":q[4]||(q[4]=ce=>w.value.region=ce),onChange:q[5]||(q[5]=ce=>xt(ce)),placeholder:"请选择"},{default:U(()=>[(De(!0),$e(In,null,qr(l.value,ce=>(De(),Cr(Ur,{key:ce.id,label:ce.name,value:ce.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):(De(),$e("div",hL,yL))])]),default:U(()=>[E("div",TL,[E("div",xL,[r.classradio=="Fire"?(De(),$e("div",SL,[D(dn,{data:S.value,style:{width:"100%"},onCurrentChange:O,"row-class-name":v,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(Xt,{prop:"name",label:"监测点名称"}),D(Xt,{prop:"value",label:M(i)},null,8,["label"])]),_:1},8,["data","header-cell-style"])])):(De(),$e("div",CL,[D(dn,{data:S.value,style:{width:"100%"},onCurrentChange:O,"row-class-name":v,"max-height":M(s),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:U(()=>[D(Xt,{prop:"name",label:"监测点名称"}),D(Xt,{prop:"value",label:"水位(m)"}),D(Xt,{prop:"value2",label:"流量"})]),_:1},8,["data","max-height","header-cell-style"])]))]),wL,E("div",_L,[E("ul",null,[(De(!0),$e(In,null,qr(M(V),(ce,et)=>(De(),$e("li",{key:et},[E("span",EL,Ee(ce.name),1),E("span",RL,Ee(ce.value),1)]))),128))])])])]),_:1})]),_:1},8,["modelValue"])],512),[[_t,f.value]])])}}},DL=gn(OL,[["__scopeId","data-v-879fe151"]]);function mL(t,e){e.classHierarchy.push("vtkPointSource"),t.requestData=(n,r)=>{if(e.deleted)return;const a=r[0],s=a?a.getPoints().getDataType():e.pointType,i=zt.newInstance(),o=e.numberOfPoints,u=_.newTypedArray(s,o*3);i.getPoints().setData(u,3);const c=new Uint32Array(o+1);i.getVerts().setData(c,1);let f,l,g,p,y;for(let h=0;h<o;h++)f=1-2*$s(),l=Math.sqrt(1-f*f),g=e.radius*$s()**.33333333,p=g*l,y=2*Math.PI*$s(),u[h*3]=e.center[0]+p*Math.cos(y),u[h*3+1]=e.center[1]+p*Math.sin(y),u[h*3+2]=e.center[2]+g*f;c[0]=o;for(let h=0;h<o;h++)c[h+1]=h;r[0]=i}}const ML={numberOfPoints:10,center:[0,0,0],radius:.5,pointType:"Float64Array"};function VL(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ML,n),_.obj(t,e),_.setGet(t,e,["numberOfPoints","radius"]),_.setGetArray(t,e,["center"],3),_.algo(t,e,0,1),mL(t,e)}_.newInstance(VL,"vtkPointSource");const LL={__name:"InfoVtkmodel",setup(t){Vn(()=>{s(),fe.clearJgAddMode()});const e=F([]),n=F([]),r=F([]),a=F([]);async function s(){await Fe({transCode:"D00000",count:1e3,page:1}).then(f=>{f.returnCode=="000000000"?(e.value=f.rows,i()):ElMessage({message:f.returnMsg,type:"error"})}).catch(f=>{})}async function i(){await Fe({transCode:"D00001",count:1e3,page:1}).then(f=>{f.returnCode=="000000000"?(n.value=f.rows,u()):ElMessage({message:f.returnMsg,type:"error"})}).catch(f=>{})}function o(c){let f=!1;return n.value.forEach(l=>{if(c.id==l.snId||c.id==l.enId)return f=!0,f}),f}function u(){console.log("模板加载.."),e.value.forEach(c=>{o(c)?a.value.push(c):r.value.push(c)}),fe.modelInit(a.value,n.value)}return(c,f)=>null}},BL=gn(LL,[["__scopeId","data-v-e96957ab"]]);const jp=t=>(mn("data-v-5d999aae"),t=t(),Mn(),t),kL={class:"appmian"},FL={class:"ve_menu_logo"},UL={class:"ve_title"},bL={class:"ve_logo_img"},NL={class:"ve_right"},GL=jp(()=>E("span",null,"请选择",-1)),$L=[GL],WL={key:1},zL={class:"l_huoqing"},AL={class:"l_time"},HL=jp(()=>E("span",null,"模型库",-1)),jL="灾情推演软件",KL={__name:"appmian",setup(t){let e=F(),n=F();const r=F("1");F("1");let a=F(),s=F(),i=F(),o=F(!1),u=F(),c=F({time:"",name:""}),f=qp();F({});let l=F();Vn(()=>{});const g=()=>{r.value="1";const v=r.value;n.value.changeModel(),n.value.accident3(v),s.value.accident4(v),e.value.accident2(v),i.value.monitor=!1,f.push({path:"/configurator"})},p=()=>{a.value=e.value.classradio},y=v=>{o.value=v},h=()=>{e.value.dialogVisible=!0},d=()=>{e.value.dialogVisible=!0},x=()=>{n.value.handledisaster(l.value),s.value.addboundary(l.value),n.value.accident3()},C=v=>{console.log(v),c.value.name=v.name,c.value.time=v.time,l.value=v.aid},T=v=>{switch(r.value="",v){case"1":n.value.changeModel(),n.value.accident3(v),s.value.accident4(v),e.value.accident2(v),i.value.monitor=!1,u.value.accident6(v),r.value="1";break;case"2":s.value.changeModel(),s.value.accident4(v),n.value.accident3(v),e.value.accident2(v),i.value.monitor=!1,u.value.accident6(v),r.value="2";break;case"3":e.value.changeModel(),s.value.accident4(v),n.value.accident3(v),e.value.accident2(v),i.value.monitor=!1,r.value="3",u.value.accident6(v);break;case"4":s.value.accident4(v),i.value.accident5(l.value),n.value.accident3(v),e.value.accident2(v),u.value.accident6(v),r.value="4";break;case"5":n.value.changeModel(),n.value.accident3(v),s.value.accident4(v),e.value.accident2(v),u.value.accident6(v),i.value.monitor=!1,r.value="5"}};return(v,w)=>{const S=ne("el-image"),O=ne("el-menu-item"),R=ne("el-menu"),B=ne("el-header"),m=ne("el-main"),V=ne("el-container");return De(),$e("div",kL,[D(V,null,{default:U(()=>[D(B,null,{default:U(()=>[E("div",FL,[E("div",UL,[E("div",bL,[D(S,{style:{height:"100%"},src:M(Qp),fit:"contain"},null,8,["src"])]),E("h3",{class:"ve_logo_title"},Ee(jL))]),D(R,{"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:T},{default:U(()=>[D(O,{index:"1"},{default:U(()=>[Z("灾害源设置")]),_:1}),D(O,{index:"2"},{default:U(()=>[Z("边界设置")]),_:1}),D(O,{index:"3"},{default:U(()=>[Z("灾害推演")]),_:1}),D(O,{index:"4"},{default:U(()=>[Z("推演结果")]),_:1}),D(O,{index:"5"},{default:U(()=>[Z("结果对比")]),_:1})]),_:1},8,["default-active"]),E("div",NL,[M(l)==null?(De(),$e("div",{key:0,class:"ve_timeioc",onClick:h},$L)):(De(),$e("div",WL,[vt(E("div",{class:"ve_time",onClick:w[0]||(w[0]=L=>d())},[E("span",zL,Ee(M(c).name),1),E("span",AL,Ee(M(c).time),1)],512),[[_t,M(o)]])])),E("div",{class:"ve_timeioc",onClick:w[1]||(w[1]=L=>g())},[D(S,{src:M(Jp),fit:"contain"},null,8,["src"]),HL])])])]),_:1}),D(m,null,{default:U(()=>[D($D,{ref_key:"lliudialog",ref:e,addselect:p,headerobj:M(c),onHeaderclick:C,onHandleSelect:T,onChildfun:x,onMoxingclick:y},null,8,["headerobj"]),D(JM,{ref_key:"sourcedis",ref:n,classradio:M(a),aid:M(l)},null,8,["classradio","aid"]),D(k3,{ref_key:"boundary",ref:s,classradio:M(a),aid:M(l)},null,8,["classradio","aid"]),D(DL,{ref_key:"tanimation",ref:i,classradio:M(a),aid:M(l)},null,8,["classradio","aid"]),D(BL,{ref:"vtkmodel"},null,512),D(s0,{ref_key:"resultbidui",ref:u},null,512)]),_:1})]),_:1})])}}},JL=gn(KL,[["__scopeId","data-v-5d999aae"]]);export{JL as default};