123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365 |
- import{_ as Qr,r as G,d as _u,e as xr,f as Z,g as sp,o as Je,c as Bt,h as O,w as N,b as _,u as B,i as dt,n as kt,E as xe,j as ae,k as bt,l as Ft,m as yt,q as jr,t as $t,v as wt,s as Ru,F as Ia,x as Ya,y as Te,z as ke,p as Zr,a as Jr,A as ip,B as Fi,C as Ct,D as Du,G as bo,H as Go,I as op,J as cp,K as up,V as fp}from"./index-40881ced.js";function ci(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 lp="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=",gp="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",pp="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==",hp="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==";const Oe=t=>(Zr("data-v-4fdaa96c"),t=t(),Jr(),t),dp={class:"l_Dialog tuiy"},vp={class:"my-header"},yp=["id"],Tp={class:"my_content"},xp={class:"dialog-footer class_footer l_btn"},Sp={class:"footerbtn"},Cp={class:"borderimg"},wp={class:"footerbtn"},Ep={class:"borderimg"},_p={class:"my-header"},Rp=["id"],Dp={class:"my_content1 bgcolor tablefocus scoperadio"},Op={class:"demo-pagination-block pagination"},Mp={class:"dialog-footer footer_div l_btn"},Vp={class:"footerbtn flex1"},mp={class:"borderimg"},Lp={class:"footerbtn flex1"},Bp={class:"borderimg"},kp={class:"footerbtn flex1"},Fp={class:"borderimg"},Up={class:"footerbtn flex1"},Np={class:"borderimg"},bp={class:"ddd"},Gp={class:"header_l"},$p={class:"tianjia"},Wp={class:"ddd_div",style:{display:"flex"}},zp={class:"demo-input-suffix firsttitle magintop"},Ap={class:"l_btn class_btn",style:{width:"auto"}},Hp={class:"footerbtn"},jp={class:"borderimg"},Kp={class:"my-header"},Pp=["id"],Xp={class:"delecttitle"},Ip={class:"spanclad"},Yp={class:"dialog-footer footer_div l_btn"},qp={class:"footerbtn flex1"},Qp={class:"borderimg"},Zp={class:"footerbtn flex1"},Jp={class:"borderimg"},eh={class:"common-layout",style:{margin:"0"}},th={class:"demo-collapse"},nh={class:"asides_content"},rh={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},ah={class:"line selecwidth"},sh={class:"demo-datetime-picker"},ih=Oe(()=>_("span",{class:"inputtext_1"},"选择时间",-1)),oh={class:"block"},ch=Oe(()=>_("span",{class:"inputtext_1"},"时间步长",-1)),uh={class:"inputkuang"},fh=Oe(()=>_("span",{class:"righttext"},"s",-1)),lh=Oe(()=>_("span",{class:"inputtext_1"},"空间步长",-1)),gh={class:"inputkuang"},ph=Oe(()=>_("span",{class:"righttext"},"m",-1)),hh=Oe(()=>_("span",{class:"inputtext_1"},"模拟时长",-1)),dh={class:"inputkuang"},vh=Oe(()=>_("span",{class:"righttext"},"s",-1)),yh=Oe(()=>_("span",{class:"inputtext_1"},"输出步长",-1)),Th={class:"inputkuang"},xh=Oe(()=>_("span",{class:"righttext"},"s",-1)),Sh=Oe(()=>_("span",{class:"inputtext_1"},"交互步长",-1)),Ch={class:"inputkuang"},wh=Oe(()=>_("span",{class:"righttext"},"s",-1)),Eh={class:"asdis_btn"},_h={class:"btn"},Rh={class:"btn"},Dh={class:"logs"},Oh={class:"logs_pading"},Mh=Oe(()=>_("h4",null,"模拟日志",-1)),Vh={class:"footerTextBox"},mh={class:"common-layout",style:{margin:"0"}},Lh={class:"demo-collapse"},Bh={class:"asides_content"},kh={class:"l_padding",style:{padding:"20px 20px 20px 24px"}},Fh={class:"demo-datetime-picker"},Uh=Oe(()=>_("span",{class:"inputtext_1"},"选择时间",-1)),Nh={class:"block"},bh=Oe(()=>_("span",{class:"inputtext_1"},"时间步长",-1)),Gh={class:"inputkuang"},$h=Oe(()=>_("span",{class:"righttext"},"s",-1)),Wh=Oe(()=>_("span",{class:"inputtext_1"},"空间步长",-1)),zh={class:"inputkuang"},Ah=Oe(()=>_("span",{class:"righttext"},"m",-1)),Hh=Oe(()=>_("span",{class:"inputtext_1"},"模拟时长",-1)),jh={class:"inputkuang"},Kh=Oe(()=>_("span",{class:"righttext"},"s",-1)),Ph=Oe(()=>_("span",{class:"inputtext_1"},"输出步长",-1)),Xh={class:"inputkuang"},Ih=Oe(()=>_("span",{class:"righttext"},"s",-1)),Yh=Oe(()=>_("span",{class:"inputtext_1"},"交互步长",-1)),qh={class:"inputkuang"},Qh=Oe(()=>_("span",{class:"righttext"},"s",-1)),Zh={class:"asdis_btn"},Jh={class:"btn"},ed={class:"btn"},td={class:"logs"},nd={class:"logs_pading"},rd=Oe(()=>_("h4",null,"模拟日志",-1)),ad={class:"footerTextBox"},sd={__name:"InfoDialoges",props:{addselect:{type:Function,required:!0},headerobj:{type:Object}},emits:["headerclick","childfun","moxingclick"],setup(t,{expose:e,emit:n}){const r=t;let a=G(""),s=G(null),i=G({lockReconnect:!1,timeout:28*1e3,timeoutObj:null,serverTimeout0bj:null,timeoutnum:null});G({});let o=G({source:"自荐",type:"预演",sid:"-1"}),u=G({}),c=G({source:"",name:""}),f=G({sgaid:"",name:"",time:""});G("");let l=G(!0),g=G("");G(""),G("");const p=G(1),y=G(3);let h=G(1);const d=G(!0),x=G();let S=G("Fire");const T=G({collfire:!1,collwater:!1}),v=G(!1),w=G({dialogVisible_fire:!1,jianced:!0,monitor:!1,dialogForm:!1,dialogsgdelect:!1});let C=G({value:[""],pickertime:"24-03-06 00:00:00",acctime:"2024-03-06 00:00:00",dt:"",dx:"",reportstep:"",interactionstep:"",totaltime:"",coids:"",cocodes:""}),R=G({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=G({value:["SO2"],pickertime:"",acctime:"2024-03-06 00:00:00",dt:"5",dx:"5",reportstep:"60",interactionstep:"3600",totaltime:"3600",coids:"1",cocodes:"CO2"}),m=G({}),D=G(["1","2"]),V=G(""),L=G({top:"50px",logs:"",left:"90px"});G("130px"),G({user:"11",region:"shanghai",date:""}),G([]);const U=G([]);let k=G(1);G("#409eff");const Y=({row:ee,rowIndex:W})=>W%2!=0?"evenRow":"oddRow",q=G([]),Q=()=>{d.value=!1,w.value.dialogVisible_fire=!0,x.value=S.value,r.addselect(),Ce()},ne=()=>{f.value.name==""?Te.error("请选择项目"):(n("headerclick",u.value),w.value.dialogVisible_fire=!1,n("childfun"),n("moxingclick",!0),we()),ln()},z=()=>{x.value=="Fire"?T.value.collfire=!0:x.value=="Water"&&(T.value.collwater=!0)},F=()=>{const ee={transCode:"D00002",source:o.value.source,type:o.value.type,name:c.value.name,stype:x.value,sid:o.value.sid,aid:g.value};ke(ee).then(W=>{w.value.dialogForm=!1,Ce(),k.value=null}).catch(W=>{Te.error(W.returnMsg)})},K=ee=>{u.value=ee,console.log(m.value),c.value.name=ee.name,g.value=ee.aid,f.value.name=ee.name,f.value.time=ee.time};function P(ee){p.value=ee,Ce()}const X=ee=>{console.log(ee),ee=="1"?(a.value="事故添加",g.value=0,c.value.name=""):ee=="2"&&(a.value="事故修改",c.value.name=f.value.name),w.value.dialogForm=!0},H=()=>{const ee={transCode:"D000016",aid:g.value};ke(ee).then(W=>{Ce(),Te({message:"删除成功",type:"success"})}).catch(W=>{l.value=!1,Te.error(W.returnMsg)})},Ce=()=>{const ee={transCode:"D00003",count:y.value,page:p.value,aid:g.value,stype:x.value};ke(ee).then(W=>{l.value=!1,q.value=W.rows,h.value=W.total}).catch(W=>{l.value=!1,Te.error(W.returnMsg)})},we=()=>{ke({transCode:"D10013"}).then(W=>{console.log(W),U.value=W.rows}).catch(W=>{Te.error(W.returnMsg)})},ie=()=>{var ee=new Date,W=Date.parse(ee),We=ci(W);return We},ft=()=>{x.value=="Fire"?(U.value.coid=["CO2"],R.value.pickertime=ie(),R.value.acctime=ie(),C.value=R.value,console.log(C.value)):(M.value.pickertime=ie(),M.value.acctime=ie(),C.value=M.value)},lt=()=>{var ee=Date.parse(C.value.pickertime);C.value.acctime=ci(ee)},rt=ee=>{let W=[],We=[];for(let gt=0;gt<=ee.length-1;gt++)console.log(ee[gt]),W.push(ee[gt].coid),We.push(ee[gt].code);C.value.coids=W.join(","),C.value.cocodes=We.join(",")},Xe=()=>{const ee={transCode:"D00008",aid:g.value,acctime:C.value.acctime,dt:C.value.dt,dx:C.value.dx,reportstep:C.value.reportstep,interactionstep:C.value.interactionstep,totaltime:C.value.totaltime,coids:C.value.coids,cocodes:C.value.cocodes};ke(ee).then(W=>{zt()}).catch(W=>{Te.error(W.returnMsg)})},be=()=>{};function Ie(ee){ee.includes("msg=heartCheck")||(V.value=V.value+`
- `+ee,L.value.logs=V.value),ip(()=>{let W=document.getElementById("textarea_id");W.scrollTop=W.scrollHeight})}async function ln(){const ee={transCode:"D000015",aid:g.value};await ke(ee).then(W=>{W.returnCode=="000000000"?zt():Te({message:W.returnMsg,type:"error"})}).catch(W=>{})}function zt(){const ee="ws://www.adicn.com/diswebsocket?projectId="+g.value;console.log(ee),s=new WebSocket(ee),s.onopen=gn,s.onmessage=re,s.onerror=$,s.onclose=he}const gn=ee=>{console.log("WebSocket连接成功",ee),Ye()},re=ee=>{Ie(ee.data),Zt()},$=ee=>{console.log("连接错误",ee),socket.close(),Me()},he=ee=>{console.log("断开连接",ee)},Me=()=>{i.value.lockReconnect||(i.value.lockReconnect=!0,i.value.timeoutnum&&clearTimeout(i.value.timeoutnum),i.value.timeoutnum=setTimeout(function(){zt(),i.value.lockReconnect=!1},1e4))},Zt=()=>{clearTimeout(i.value.timeoutObj),clearTimeout(i.value.serverTimeoutObj),Ye()},Ye=()=>{i.value.timeoutObj&&clearTimeout(i.value.timeoutObj),i.value.serverTimeoutObj&&clearTimeout(i.value.serverTimeoutObj),i.value.timeoutObj=setTimeout(function(){s.readyState==1?s.send("heartCheck"):Me(),i.value.serverTimeoutObj=setTimeout(function(){s.close()},i.value.timeout)},i.value.timeout)};return _u(()=>{s.value=null}),xr(()=>{}),e({monitor:v,accident2:z,leftcoll:T,classradio:x,aid:g,dialogVisible:d}),(ee,W)=>{const We=Z("el-image"),gt=Z("el-radio"),er=Z("el-radio-group"),J=Z("el-table-column"),b=Z("el-table"),qe=Z("el-pagination"),te=Z("el-input"),pn=Z("el-form-item"),pt=Z("el-icon"),ia=Z("el-option"),Lr=Z("el-date-picker"),Br=Z("el-form"),Et=Z("el-collapse-item"),xt=Z("el-collapse"),oa=Z("el-aside"),Ds=sp("loading");return Je(),Bt("div",dp,[O(B(Ft),{modelValue:d.value,"onUpdate:modelValue":W[3]||(W[3]=I=>d.value=I),width:"482","align-center":"",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor"},{header:N(({titleId:I,titleClass:j})=>[_("div",vp,[O(We,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:kt(j)},"灾害类型",10,yp)])]),footer:N(()=>[_("div",xp,[_("div",Sp,[_("div",Cp,[O(B(xe),{onClick:W[1]||(W[1]=I=>d.value=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",wp,[_("div",Ep,[O(B(xe),{onClick:W[2]||(W[2]=I=>Q())},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),default:N(()=>[_("div",Tp,[O(er,{modelValue:B(S),"onUpdate:modelValue":W[0]||(W[0]=I=>bt(S)?S.value=I:S=I),class:"radio-group"},{default:N(()=>[O(gt,{label:"Fire"},{default:N(()=>[ae("火灾")]),_:1}),O(gt,{label:"Water"},{default:N(()=>[ae("突水")]),_:1}),O(gt,{label:"9"},{default:N(()=>[ae("瓦斯爆炸")]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:w.value.dialogVisible_fire,"onUpdate:modelValue":W[17]||(W[17]=I=>w.value.dialogVisible_fire=I),width:"600",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor tablefocus"},{header:N(({titleId:I,titleClass:j})=>[_("div",_p,[O(We,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:kt(j)}," 事故列表",10,Rp)])]),default:N(()=>[_("div",Dp,[yt((Je(),jr(b,{data:q.value,style:{width:"100%"},"element-loading-text":"Loading...","element-loading-background":"rgba(0, 10, 0, 0.1)","row-class-name":Y,"header-cell-style":{background:" #375A88"},onSelect:be},{default:N(()=>[O(J,{width:"50"},{default:N(I=>[O(gt,{modelValue:B(k),"onUpdate:modelValue":W[4]||(W[4]=j=>bt(k)?k.value=j:k=j),label:I.row.aid,onChange:j=>K(I.row)},null,8,["modelValue","label","onChange"])]),_:1}),O(J,{type:"index",label:"序号",width:"50"}),O(J,{prop:"name",label:"名称"}),O(J,{prop:"name",label:"来源",width:"120"}),O(J,{prop:"time",label:"时间",width:"180"})]),_:1},8,["data"])),[[Ds,B(l)]]),_("div",Op,[O(qe,{"current-page":p.value,"onUpdate:currentPage":W[5]||(W[5]=I=>p.value=I),"page-size":y.value,"onUpdate:pageSize":W[6]||(W[6]=I=>y.value=I),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(B(h)),class:"mt-4",onCurrentChange:P},null,8,["current-page","page-size","total"])]),_("div",Mp,[_("div",Vp,[_("div",mp,[O(B(xe),{onClick:W[7]||(W[7]=I=>{X("1")})},{default:N(()=>[ae("添加")]),_:1})])]),_("div",Lp,[_("div",Bp,[O(B(xe),{onClick:W[8]||(W[8]=I=>X("2"))},{default:N(()=>[ae(" 修改 ")]),_:1})])]),_("div",kp,[_("div",Fp,[O(B(xe),{onClick:W[9]||(W[9]=I=>w.value.dialogsgdelect=!0)},{default:N(()=>[ae(" 删除 ")]),_:1})])]),_("div",Up,[_("div",Np,[O(B(xe),{onClick:W[10]||(W[10]=I=>ne())},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),yt(_("div",bp,[_("div",Gp,[O(We,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",$p,$t(B(a)),1),_("div",{class:"closeimg",onClick:W[11]||(W[11]=I=>w.value.dialogForm=!1)},[O(We,{src:B(ui),fit:"contain",style:{"margin-top":"-10px"}},null,8,["src"])]),_("div",Wp,[_("div",zp,[O(pn,{label:"事故名称"},{default:N(()=>[O(te,{modelValue:B(c).name,"onUpdate:modelValue":W[12]||(W[12]=I=>B(c).name=I),class:"w-50 m-2",placeholder:"某次某事件火灾事故"},null,8,["modelValue"])]),_:1}),_("div",Ap,[_("div",Hp,[_("div",jp,[O(B(xe),{onClick:W[13]||(W[13]=I=>F())},{default:N(()=>[ae(" 确定 ")]),_:1})])])])])])])],512),[[wt,w.value.dialogForm]]),O(B(Ft),{modelValue:w.value.dialogsgdelect,"onUpdate:modelValue":W[16]||(W[16]=I=>w.value.dialogsgdelect=I),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:I,titleClass:j})=>[_("div",Kp,[O(We,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:I,class:kt(j)},"删除",10,Pp)])]),default:N(()=>[_("h4",Xp,[ae(" 是否确认删除"),_("span",Ip,$t(B(f).name),1)]),_("div",Yp,[_("div",qp,[_("div",Qp,[O(B(xe),{onClick:W[14]||(W[14]=I=>w.value.dialogsgdelect=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",Zp,[_("div",Jp,[O(B(xe),{onClick:W[15]||(W[15]=I=>{H(),w.value.dialogsgdelect=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),yt(_("div",eh,[O(oa,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:N(()=>[_("div",th,[O(xt,{modelValue:B(D),"onUpdate:modelValue":W[30]||(W[30]=I=>bt(D)?D.value=I:D=I),accordion:""},{default:N(()=>[O(Et,{name:"1"},{title:N(()=>[O(pt,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),O(pt,{class:"header-icon"})]),default:N(()=>[_("div",nh,[O(Br,{inline:!0,model:B(C),class:"demo-form-inline"},{default:N(()=>[_("div",rh,[_("div",ah,[O(pn,{label:"污染物选择:"},{default:N(()=>[O(B(Ru),{modelValue:U.value.coid,"onUpdate:modelValue":W[18]||(W[18]=I=>U.value.coid=I),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,"value-key":"code",onChange:W[19]||(W[19]=I=>rt(I)),placeholder:"请选择"},{default:N(()=>[(Je(!0),Bt(Ia,null,Ya(U.value,I=>(Je(),jr(ia,{key:I.coid,label:I.code,value:I},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("ul",null,[_("li",null,[_("div",sh,[ih,_("div",oh,[O(Lr,{modelValue:B(C).pickertime,"onUpdate:modelValue":W[20]||(W[20]=I=>B(C).pickertime=I),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss",onChange:W[21]||(W[21]=I=>lt())},null,8,["modelValue"])])])]),_("li",null,[ch,_("div",uh,[O(te,{modelValue:B(C).dt,"onUpdate:modelValue":W[22]||(W[22]=I=>B(C).dt=I)},null,8,["modelValue"]),fh])]),_("li",null,[lh,_("div",gh,[O(te,{modelValue:B(C).dx,"onUpdate:modelValue":W[23]||(W[23]=I=>B(C).dx=I)},null,8,["modelValue"]),ph])]),_("li",null,[hh,_("div",dh,[O(te,{modelValue:B(C).totaltime,"onUpdate:modelValue":W[24]||(W[24]=I=>B(C).totaltime=I)},null,8,["modelValue"]),vh])]),_("li",null,[yh,_("div",Th,[O(te,{modelValue:B(C).reportstep,"onUpdate:modelValue":W[25]||(W[25]=I=>B(C).reportstep=I)},null,8,["modelValue"]),xh])]),_("li",null,[Sh,_("div",Ch,[O(te,{modelValue:B(C).interactionstep,"onUpdate:modelValue":W[26]||(W[26]=I=>B(C).interactionstep=I)},null,8,["modelValue"]),wh])])])]),_("div",Eh,[_("div",_h,[_("span",{class:"spantext",onClick:W[27]||(W[27]=I=>{ft()})},"初始数据")]),_("div",Rh,[_("span",{class:"spantext",onClick:W[28]||(W[28]=I=>{Xe()})},"开始计算")])]),_("div",Dh,[_("div",Oh,[Mh,_("div",Vh,[O(te,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:B(L).logs,"onUpdate:modelValue":W[29]||(W[29]=I=>B(L).logs=I)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[wt,T.value.collfire]]),yt(_("div",mh,[O(oa,{width:"278px",class:"L_aside L_aside1 asideg asidegbg leftbgimg"},{default:N(()=>[_("div",Lh,[O(xt,{modelValue:B(D),"onUpdate:modelValue":W[41]||(W[41]=I=>bt(D)?D.value=I:D=I),accordion:""},{default:N(()=>[O(Et,{name:"1"},{title:N(()=>[O(pt,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),O(pt,{class:"header-icon"})]),default:N(()=>[_("div",Bh,[O(Br,{inline:!0,model:B(C),class:"demo-form-inline"},{default:N(()=>[_("div",kh,[_("ul",null,[_("li",null,[_("div",Fh,[Uh,_("div",Nh,[O(Lr,{modelValue:B(C).pickertime,"onUpdate:modelValue":W[31]||(W[31]=I=>B(C).pickertime=I),type:"datetime",placeholder:"Pick a Date",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",onChange:W[32]||(W[32]=I=>lt())},null,8,["modelValue"])])])]),_("li",null,[bh,_("div",Gh,[O(te,{modelValue:B(C).dt,"onUpdate:modelValue":W[33]||(W[33]=I=>B(C).dt=I)},null,8,["modelValue"]),$h])]),_("li",null,[Wh,_("div",zh,[O(te,{modelValue:B(C).dx,"onUpdate:modelValue":W[34]||(W[34]=I=>B(C).dx=I)},null,8,["modelValue"]),Ah])]),_("li",null,[Hh,_("div",jh,[O(te,{modelValue:B(C).totaltime,"onUpdate:modelValue":W[35]||(W[35]=I=>B(C).totaltime=I)},null,8,["modelValue"]),Kh])]),_("li",null,[Ph,_("div",Xh,[O(te,{modelValue:B(C).reportstep,"onUpdate:modelValue":W[36]||(W[36]=I=>B(C).reportstep=I)},null,8,["modelValue"]),Ih])]),_("li",null,[Yh,_("div",qh,[O(te,{modelValue:B(C).interactionstep,"onUpdate:modelValue":W[37]||(W[37]=I=>B(C).interactionstep=I)},null,8,["modelValue"]),Qh])])])]),_("div",Zh,[_("div",Jh,[_("span",{class:"spantext",onClick:W[38]||(W[38]=I=>{ft()})},"初始数据")]),_("div",ed,[_("span",{class:"spantext",onClick:W[39]||(W[39]=I=>{Xe()})},"开始计算")])]),_("div",td,[_("div",nd,[rd,_("div",ad,[O(te,{class:"footerText",type:"textarea",id:"textarea_id",modelValue:B(L).logs,"onUpdate:modelValue":W[40]||(W[40]=I=>B(L).logs=I)},null,8,["modelValue"])])])])]),_:1},8,["model"])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[wt,T.value.collwater]])])}}},id=Qr(sd,[["__scopeId","data-v-4fdaa96c"]]);var od=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 cd=Fi(od);var $o=Object.prototype.toString,Ou=function(e){var n=$o.call(e),r=n==="[object Arguments]";return r||(r=n!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&$o.call(e.callee)==="[object Function]"),r},Os,Wo;function ud(){if(Wo)return Os;Wo=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Ou,a=Object.prototype.propertyIsEnumerable,s=!a.call({toString:null},"toString"),i=a.call(function(){},"prototype"),o=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(g){var p=g.constructor;return p&&p.prototype===g},c={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if(typeof window>"u")return!1;for(var g in window)try{if(!c["$"+g]&&e.call(window,g)&&window[g]!==null&&typeof window[g]=="object")try{u(window[g])}catch{return!0}}catch{return!0}return!1}(),l=function(g){if(typeof window>"u"||!f)return u(g);try{return u(g)}catch{return!1}};t=function(p){var y=p!==null&&typeof p=="object",h=n.call(p)==="[object Function]",d=r(p),x=y&&n.call(p)==="[object String]",S=[];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)S.push(String(v));if(d&&p.length>0)for(var w=0;w<p.length;++w)S.push(String(w));else for(var C in p)!(T&&C==="prototype")&&e.call(p,C)&&S.push(String(C));if(s)for(var R=l(p),M=0;M<o.length;++M)!(R&&o[M]==="constructor")&&e.call(p,o[M])&&S.push(o[M]);return S}}return Os=t,Os}var fd=Array.prototype.slice,ld=Ou,zo=Object.keys,Wa=zo?function(e){return zo(e)}:ud(),Ao=Object.keys;Wa.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 ld(r)?Ao(fd.call(r)):Ao(r)})}else Object.keys=Wa;return Object.keys||Wa};var gd=Wa,pd=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},Ho=typeof Symbol<"u"&&Symbol,hd=pd,dd=function(){return typeof Ho!="function"||typeof Symbol!="function"||typeof Ho("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hd()},jo={foo:{}},vd=Object,yd=function(){return{__proto__:jo}.foo===jo.foo&&!({__proto__:null}instanceof vd)},Td="Function.prototype.bind called on incompatible ",Ms=Array.prototype.slice,xd=Object.prototype.toString,Sd="[object Function]",Cd=function(e){var n=this;if(typeof n!="function"||xd.call(n)!==Sd)throw new TypeError(Td+n);for(var r=Ms.call(arguments,1),a,s=function(){if(this instanceof a){var f=n.apply(this,r.concat(Ms.call(arguments)));return Object(f)===f?f:this}else return n.apply(e,r.concat(Ms.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},wd=Cd,Mu=Function.prototype.bind||wd,Ed=Mu,_d=Ed.call(Function.call,Object.prototype.hasOwnProperty),le,Sr=SyntaxError,Vu=Function,vr=TypeError,Vs=function(t){try{return Vu('"use strict"; return ('+t+").constructor;")()}catch{}},jn=Object.getOwnPropertyDescriptor;if(jn)try{jn({},"")}catch{jn=null}var ms=function(){throw new vr},Rd=jn?function(){try{return arguments.callee,ms}catch{try{return jn(arguments,"callee").get}catch{return ms}}}():ms,tr=dd(),Dd=yd(),Ae=Object.getPrototypeOf||(Dd?function(t){return t.__proto__}:null),cr={},Od=typeof Uint8Array>"u"||!Ae?le:Ae(Uint8Array),Kn={"%AggregateError%":typeof AggregateError>"u"?le:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?le:ArrayBuffer,"%ArrayIteratorPrototype%":tr&&Ae?Ae([][Symbol.iterator]()):le,"%AsyncFromSyncIteratorPrototype%":le,"%AsyncFunction%":cr,"%AsyncGenerator%":cr,"%AsyncGeneratorFunction%":cr,"%AsyncIteratorPrototype%":cr,"%Atomics%":typeof Atomics>"u"?le:Atomics,"%BigInt%":typeof BigInt>"u"?le:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?le:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?le:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?le:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?le:Float32Array,"%Float64Array%":typeof Float64Array>"u"?le:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?le:FinalizationRegistry,"%Function%":Vu,"%GeneratorFunction%":cr,"%Int8Array%":typeof Int8Array>"u"?le:Int8Array,"%Int16Array%":typeof Int16Array>"u"?le:Int16Array,"%Int32Array%":typeof Int32Array>"u"?le:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":tr&&Ae?Ae(Ae([][Symbol.iterator]())):le,"%JSON%":typeof JSON=="object"?JSON:le,"%Map%":typeof Map>"u"?le:Map,"%MapIteratorPrototype%":typeof Map>"u"||!tr||!Ae?le:Ae(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?le:Promise,"%Proxy%":typeof Proxy>"u"?le:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?le:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?le:Set,"%SetIteratorPrototype%":typeof Set>"u"||!tr||!Ae?le:Ae(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?le:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":tr&&Ae?Ae(""[Symbol.iterator]()):le,"%Symbol%":tr?Symbol:le,"%SyntaxError%":Sr,"%ThrowTypeError%":Rd,"%TypedArray%":Od,"%TypeError%":vr,"%Uint8Array%":typeof Uint8Array>"u"?le:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?le:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?le:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?le:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?le:WeakMap,"%WeakRef%":typeof WeakRef>"u"?le:WeakRef,"%WeakSet%":typeof WeakSet>"u"?le:WeakSet};if(Ae)try{null.error}catch(t){var Md=Ae(Ae(t));Kn["%Error.prototype%"]=Md}var Vd=function t(e){var n;if(e==="%AsyncFunction%")n=Vs("async function () {}");else if(e==="%GeneratorFunction%")n=Vs("function* () {}");else if(e==="%AsyncGeneratorFunction%")n=Vs("async function* () {}");else if(e==="%AsyncGenerator%"){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(e==="%AsyncIteratorPrototype%"){var a=t("%AsyncGenerator%");a&&Ae&&(n=Ae(a.prototype))}return Kn[e]=n,n},Ko={"%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"]},ea=Mu,qa=_d,md=ea.call(Function.call,Array.prototype.concat),Ld=ea.call(Function.apply,Array.prototype.splice),Po=ea.call(Function.call,String.prototype.replace),Qa=ea.call(Function.call,String.prototype.slice),Bd=ea.call(Function.call,RegExp.prototype.exec),kd=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Fd=/\\(\\)?/g,Ud=function(e){var n=Qa(e,0,1),r=Qa(e,-1);if(n==="%"&&r!=="%")throw new Sr("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Sr("invalid intrinsic syntax, expected opening `%`");var a=[];return Po(e,kd,function(s,i,o,u){a[a.length]=o?Po(u,Fd,"$1"):i||s}),a},Nd=function(e,n){var r=e,a;if(qa(Ko,r)&&(a=Ko[r],r="%"+a[0]+"%"),qa(Kn,r)){var s=Kn[r];if(s===cr&&(s=Vd(r)),typeof s>"u"&&!n)throw new vr("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:a,name:r,value:s}}throw new Sr("intrinsic "+e+" does not exist!")},Ui=function(e,n){if(typeof e!="string"||e.length===0)throw new vr("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new vr('"allowMissing" argument must be a boolean');if(Bd(/^%?[^%]*%?$/,e)===null)throw new Sr("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=Ud(e),a=r.length>0?r[0]:"",s=Nd("%"+a+"%",n),i=s.name,o=s.value,u=!1,c=s.alias;c&&(a=c[0],Ld(r,md([0,1],c)));for(var f=1,l=!0;f<r.length;f+=1){var g=r[f],p=Qa(g,0,1),y=Qa(g,-1);if((p==='"'||p==="'"||p==="`"||y==='"'||y==="'"||y==="`")&&p!==y)throw new Sr("property names with quotes must have matching quotes");if((g==="constructor"||!l)&&(u=!0),a+="."+g,i="%"+a+"%",qa(Kn,i))o=Kn[i];else if(o!=null){if(!(g in o)){if(!n)throw new vr("base intrinsic for "+e+" exists, but the property is not available.");return}if(jn&&f+1>=r.length){var h=jn(o,g);l=!!h,l&&"get"in h&&!("originalValue"in h.get)?o=h.get:o=o[g]}else l=qa(o,g),o=o[g];l&&!u&&(Kn[i]=o)}}return o},bd=Ui,fi=bd("%Object.defineProperty%",!0),li=function(){if(fi)try{return fi({},"a",{value:1}),!0}catch{return!1}return!1};li.hasArrayLengthDefineBug=function(){if(!li())return null;try{return fi([],"length",{value:1}).length!==1}catch{return!0}};var mu=li,Ls,Xo;function Gd(){if(Xo)return Ls;Xo=1;var t=Ui,e=t("%Object.getOwnPropertyDescriptor%",!0);if(e)try{e([],"length")}catch{e=null}return Ls=e,Ls}var $d=mu(),Ni=Ui,Io=$d&&Ni("%Object.defineProperty%",!0),Wd=Ni("%SyntaxError%"),nr=Ni("%TypeError%"),Yo=Gd(),zd=function(e,n,r){if(!e||typeof e!="object"&&typeof e!="function")throw new nr("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new nr("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new nr("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new nr("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new nr("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new nr("`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=!!Yo&&Yo(e,n);if(Io)Io(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 Wd("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ad=gd,Hd=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",jd=Object.prototype.toString,Kd=Array.prototype.concat,qo=zd,Pd=function(t){return typeof t=="function"&&jd.call(t)==="[object Function]"},Lu=mu(),Xd=function(t,e,n,r){if(e in t){if(r===!0){if(t[e]===n)return}else if(!Pd(r)||!r())return}Lu?qo(t,e,n,!0):qo(t,e,n)},Bu=function(t,e){var n=arguments.length>2?arguments[2]:{},r=Ad(e);Hd&&(r=Kd.call(r,Object.getOwnPropertySymbols(e)));for(var a=0;a<r.length;a+=1)Xd(t,r[a],e[r[a]],n[r[a]])};Bu.supportsDescriptors=!!Lu;var ku=Bu,za={exports:{}};typeof self<"u"?za.exports=self:typeof window<"u"?za.exports=window:za.exports=Function("return this")();var Fu=za.exports,Id=Fu,Uu=function(){return typeof Ct!="object"||!Ct||Ct.Math!==Math||Ct.Array!==Array?Id:Ct},Yd=ku,qd=Uu,Qd=function(){var e=qd();if(Yd.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},Zd=ku,Jd=Fu,Nu=Uu,e1=Qd,t1=Nu(),bu=function(){return t1};Zd(bu,{getPolyfill:Nu,implementation:Jd,shim:e1});var n1=bu;const r1=Fi(n1),mt=r1(),Gu={vtkObject:()=>null};function Gt(t){if(t==null||t.isA)return t;if(!t.vtkClass)return mt.console&&mt.console.error&&mt.console.error("Invalid VTK object"),null;const e=Gu[t.vtkClass];if(!e)return mt.console&&mt.console.error&&mt.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]=Gt(n[a]))});const r=e(n);return r&&r.modified&&r.modified(),r}function a1(t,e){Gu[t]=e}Gt.register=a1;class Bs extends Array{push(){for(let e=0;e<arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}let gi=0;const $u=Symbol("void");function s1(){return gi}const Wu={};function Wn(){}const i1=["log","debug","info","warn","error","time","timeEnd","group","groupEnd"];i1.forEach(t=>{Wu[t]=Wn});mt.console=console.hasOwnProperty("log")?console:Wu;const Rn={debug:Wn,error:mt.console.error||Wn,info:mt.console.info||Wn,log:mt.console.log||Wn,warn:mt.console.warn||Wn};function zu(t,e){Rn[t]&&(Rn[t]=e||Wn)}function Au(){Rn.log(...arguments)}function Hu(){Rn.info(...arguments)}function Za(){Rn.debug(...arguments)}function fe(){Rn.error(...arguments)}function bi(){Rn.warn(...arguments)}const Qo={};function ju(t){Qo[t]||(Rn.error(t),Qo[t]=!0)}const tt=Object.create(null);tt.Float32Array=Float32Array;tt.Float64Array=Float64Array;tt.Uint8Array=Uint8Array;tt.Int8Array=Int8Array;tt.Uint16Array=Uint16Array;tt.Int16Array=Int16Array;tt.Uint32Array=Uint32Array;tt.Int32Array=Int32Array;tt.Uint8ClampedArray=Uint8ClampedArray;try{tt.BigInt64Array=BigInt64Array,tt.BigUint64Array=BigUint64Array}catch{}function Rr(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(tt[t]||Float64Array)(...n)}function Gi(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(tt[t]||Float64Array).from(...n)}function vs(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Ve(t){return vs(t[0]==="_"?t.slice(1):t)}function Ku(t){return t.charAt(0).toLowerCase()+t.slice(1)}function Pu(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 Xu(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 Iu(t){Object.keys(t).forEach(e=>{Array.isArray(t[e])&&(t[e]=[].concat(t[e]))})}function o1(t){return Object.values(tt).some(e=>t instanceof e)}function c1(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 u1(t,e){return Object.keys(t).find(n=>t[n]===e)}function Yu(t){return t&&t.isA?t.getState():t}function $i(t){setTimeout(t,0)}function qu(t,e){const n=performance.now();t.finally(()=>{const r=performance.now()-n;e(r)})}function Ke(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Iu(e);const n=[];if(Number.isInteger(e.mtime)||(e.mtime=++gi),!("classHierarchy"in e))e.classHierarchy=new Bs("vtkObject");else if(!(e.classHierarchy instanceof Bs)){const s=new Bs;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){fe("instance deleted - cannot call any method");return}s&&s<t.getMTime()||(e.mtime=++gi,n.forEach(i=>i&&i(t)))},t.onModified=s=>{if(e.deleted)return fe("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${vs(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&&bi(`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(Yu):o1(s[o])&&(s[o]=Array.from(s[o]))});const i={};return Object.keys(s).sort().forEach(o=>{i[o]=s[o]}),i.mtime&&delete i.mtime,i},t.shallowCopy=function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(s.getClassName()!==t.getClassName())throw new Error(`Cannot ShallowCopy ${s.getClassName()} into ${t.getClassName()}`);const o=s.get(),u=Object.keys(e).sort();Object.keys(o).sort().forEach(f=>{const l=u.indexOf(f);l===-1?i&&Za(`add ${f} in shallowCopy`):u.splice(l,1),e[f]=o[f]}),u.length&&i&&Za(`Untouched keys: ${u.join(", ")}`),t.modified()},t.toJSON=function(){return t.getState()},t}const f1={object(t,e,n){return function(){return{...e[n.name]}}}};function ut(t,e,n){n.forEach(r=>{if(typeof r=="object"){const a=f1[r.type];a?t[`get${Ve(r.name)}`]=a(t,e,r):t[`get${Ve(r.name)}`]=()=>e[r.name]}else t[`get${Ve(r)}`]=()=>e[r]})}const l1={enum(t,e,n){const r=`_on${Ve(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 fe(`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 fe(`Set Enum outside numeric range ${n}, ${a}`),new RangeError("Set Enum outside numeric range")}return!1}throw fe(`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${Ve(n.name)}Changed`;return a=>{var s;if(!cd(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 Zo(t){if(typeof t=="object"){const e=l1[t.type];if(e)return(n,r)=>e(n,r,t);throw fe(`No setter for field ${t}`),new TypeError("No setter for field")}return function(n,r){const a=`_on${Ve(t)}Changed`;return function(i){var o;if(r.deleted)return fe("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 ta(t,e,n){n.forEach(r=>{typeof r=="object"?t[`set${Ve(r.name)}`]=Zo(r)(t,e):t[`set${Ve(r)}`]=Zo(r)(t,e)})}function $e(t,e,n){ut(t,e,n),ta(t,e,n)}function Dr(t,e,n){n.forEach(r=>{t[`get${Ve(r)}`]=()=>e[r]?Array.from(e[r]):e[r],t[`get${Ve(r)}ByReference`]=()=>e[r]})}function Wi(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${Ve(s)}Changed`;t[`set${Ve(s)}`]=function(){var p;if(e.deleted)return fe("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${Ve(s)}From`]=o=>{const u=e[s];o.forEach((c,f)=>{u[f]=c})}})}function zi(t,e,n,r){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;Dr(t,e,n),Wi(t,e,n,r,a)}function na(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 Qu(t,e,n,r){e.inputData?e.inputData=e.inputData.map(Gt):e.inputData=[],e.inputConnection?e.inputConnection=e.inputConnection.map(Gt):e.inputConnection=[],e.output?e.output=e.output.map(Gt):e.output=[],e.inputArrayToProcess?e.inputArrayToProcess=e.inputArrayToProcess.map(Gt):e.inputArrayToProcess=[],e.numberOfInputs=n;function a(p){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){fe("instance deleted - cannot call any method");return}if(y>=e.numberOfInputs){fe(`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){fe("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()",fe(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){fe("instance deleted - cannot call any method");return}i(p,u())}function f(p){if(e.deleted){fe("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?(fe("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 S=e.output[h].getMTime();if(S<p)return!0;S<y&&(y=S)}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 Ai=Symbol("Event abort");function Zu(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){fe("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)===Ai)break}}}t[`invoke${Ve(n)}`]=u,t[`on${Ve(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 fe("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 _e(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&&Gt.register(e,n),n}function Ju(){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 Hi(t){return t&&t.isA&&t.isA("vtkObject")}function Ja(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];if(Hi(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=>{Ja(u,e,n,r)}):Ja(o,e,n,r)})}return n}function ef(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 tf(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 ji(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 g1=1;const ca="__root__";function nf(t,e){ji(t,e);const n=t.delete;e.proxyId=`${g1++}`,e.ui=JSON.parse(JSON.stringify(e.ui||[])),ut(t,e,["proxyId","proxyGroup","proxyName"]),$e(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,ca),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,ca),t.modified()};function i(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ca;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${Ve(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 C=[];let R=null;for(p=g.length;p--;){const m=g[p];m.instance===v?R=m:C.push(m)}if(!R)return null;const M=R.instance[`get${Ve(R.propertyName)}`]();if(!c1(M,l)||w){for(l=M,y=!0;C.length;){const m=C.pop();m.instance.set({[m.propertyName]:l})}y=!1}return e.propertyLinkMap[c].persistent&&(e.propertyLinkMap[c].value=M),M}function d(v,w){const C=[];for(p=g.length;p--;){const R=g[p];R.instance===v&&(R.propertyName===w||w===void 0)&&(R.subscription.unsubscribe(),C.push(p))}for(;C.length;)g.splice(C.pop(),1)}function x(v,w){let C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const R=v.onModified(h),M=g[0];return g.push({instance:v,propertyName:w,subscription:R}),C&&(e.propertyLinkMap[c].persistent&&e.propertyLinkMap[c].value!==void 0?v.set({[w]:e.propertyLinkMap[c].value}):M&&h(M.instance,!0)),{unsubscribe:()=>d(v,w)}}function S(){for(;g.length;)g.pop().subscription.unsubscribe()}const T={bind:x,unbind:d,unsubscribe:S,persistent:f};return e.propertyLinkMap[c]=T,T};function o(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ca;const f=[],l=e.proxyId,g=i(c)||[];for(let p=0;p<g.length;p++){const y=g[p],h=t[`get${Ve(y)}`],d=h?h():void 0,x={id:l,name:y,value:d},S=o(y);S.length&&(x.children=S),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)}}}$i(u)}function rf(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=Ve(c),g=Ve(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 af(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${Ve(o)}`]=c=>{if(c!==e[o]){e[o]=c;const f=u[c];a(f),t.modified()}}}s.length&&ut(t,e,s)}const Jo=10,ec=40,tc=800;function sf(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*Jo,a=n*Jo,"deltaY"in t&&(a=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||a)&&t.deltaMode&&(t.deltaMode===1?(r*=ec,a*=ec):(r*=tc,a*=tc)),r&&!e&&(e=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:e,spinY:n||e,pixelX:r,pixelY:a||r}}var E={algo:Qu,capitalize:vs,chain:Ju,debounce:ef,enumToString:u1,event:Zu,EVENT_ABORT:Ai,formatBytesToProperUnit:Pu,formatNumbersWithThousandSeparator:Xu,get:ut,getArray:Dr,getCurrentGlobalMTime:s1,getStateArrayMapFunc:Yu,isVtkObject:Hi,keystore:ji,measurePromiseExecution:qu,moveToProtected:na,newInstance:_e,newTypedArray:Rr,newTypedArrayFrom:Gi,normalizeWheel:sf,obj:Ke,proxy:nf,proxyPropertyMapping:rf,proxyPropertyState:af,safeArrays:Iu,set:ta,setArray:Wi,setGet:$e,setGetArray:zi,setImmediate:$i,setLoggerFunction:zu,throttle:tf,traverseInstanceTree:Ja,TYPED_ARRAYS:tt,uncapitalize:Ku,VOID:$u,vtkDebugMacro:Za,vtkErrorMacro:fe,vtkInfoMacro:Hu,vtkLogMacro:Au,vtkOnceErrorMacro:ju,vtkWarningMacro:bi},Qt=Object.freeze({__proto__:null,VOID:$u,setLoggerFunction:zu,vtkLogMacro:Au,vtkInfoMacro:Hu,vtkDebugMacro:Za,vtkErrorMacro:fe,vtkWarningMacro:bi,vtkOnceErrorMacro:ju,TYPED_ARRAYS:tt,newTypedArray:Rr,newTypedArrayFrom:Gi,capitalize:vs,_capitalize:Ve,uncapitalize:Ku,formatBytesToProperUnit:Pu,formatNumbersWithThousandSeparator:Xu,setImmediateVTK:$i,measurePromiseExecution:qu,obj:Ke,get:ut,set:ta,setGet:$e,getArray:Dr,setArray:Wi,setGetArray:zi,moveToProtected:na,algo:Qu,EVENT_ABORT:Ai,event:Zu,newInstance:_e,chain:Ju,isVtkObject:Hi,traverseInstanceTree:Ja,debounce:ef,throttle:tf,keystore:ji,proxy:nf,proxyPropertyMapping:rf,proxyPropertyState:af,normalizeWheel:sf,default:E});const Ne=t=>(Zr("data-v-70823765"),t=t(),Jr(),t),p1={class:"l_Dialog bbb"},h1={class:"common-layout",style:{margin:"0"}},d1={class:"demo-collapse"},v1={class:"asides_content"},y1={class:"jc_content tablecolor"},T1={class:"jc_padding"},x1={class:"xian btncolor tablefocus"},S1={class:"asdis_btn"},C1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),w1=[C1],E1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"修改")],-1)),_1=[E1],R1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),D1=[R1],O1={class:"xian tablefocus",style:{"margin-top":"20px"}},M1={class:"header_l header_z"},V1=Ne(()=>_("h4",{class:"tianjia"}," 灾害源表",-1)),m1={class:"asdis_btn"},L1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),B1=[L1],k1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"}," 修改")],-1)),F1=[k1],U1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),N1=[U1],b1={class:"flex_a"},G1=Ne(()=>_("span",{class:"spantext"},"确定",-1)),$1=[G1],W1=Ne(()=>_("div",{style:{height:"200px"}},null,-1)),z1={class:"common-layout",style:{margin:"0"}},A1={class:"demo-collapse"},H1={class:"asides_content"},j1={class:"jc_content tablecolor"},K1={class:"jc_padding"},P1={class:"xian btncolor tablefocus"},X1={class:"asdis_btn"},I1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),Y1=[I1],q1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"修改")],-1)),Q1=[q1],Z1=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),J1=[Z1],ev=Ne(()=>_("div",{class:"flex_a"},[_("div",{class:"btns"},[_("span",{class:"spantext"},"确定")])],-1)),tv={class:"xian tablefocus",style:{"margin-top":"20px"}},nv={class:"header_l header_z"},rv=Ne(()=>_("h4",{class:"tianjia"},"灾害源表",-1)),av={class:"asdis_btn"},sv=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"添加")],-1)),iv=[sv],ov=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"}," 修改")],-1)),cv=[ov],uv=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"删除")],-1)),fv=[uv],lv=Ne(()=>_("div",{class:"btns"},[_("span",{class:"spantext"},"确定")],-1)),gv=[lv],pv=Ne(()=>_("div",{style:{height:"200px"}},null,-1)),hv={class:"my-header"},dv=["id"],vv={class:"demo-input-suffix firsttitle magintop"},yv={class:"btn2"},Tv={class:"input"},xv={class:"dialog-footer footer_div l_btn"},Sv={class:"footerbtn flex1"},Cv={class:"borderimg"},wv={class:"footerbtn flex1"},Ev={class:"borderimg"},_v={class:"my-header"},Rv=["id"],Dv={class:"demo-input-suffix firsttitle leftbgimg2"},Ov={class:"guand_1"},Mv=Ne(()=>_("span",{class:"spantext"},"搜索",-1)),Vv=[Mv],mv={class:"demo-pagination-block",style:{"margin-top":"20px"}},Lv={class:"dialog-footer footer_div l_btn"},Bv={class:"footerbtn flex1"},kv={class:"borderimg"},Fv={class:"footerbtn flex1"},Uv={class:"borderimg"},Nv={class:"my-header"},bv=["id"],Gv={class:"dialog-footer footer_div l_btn"},$v={class:"footerbtn flex1"},Wv={class:"borderimg"},zv={class:"footerbtn flex1"},Av={class:"borderimg"},Hv={class:"my-header"},jv=["id"],Kv={class:"dialog-footer footer_div l_btn"},Pv={class:"footerbtn flex1"},Xv={class:"borderimg"},Iv={class:"footerbtn flex1"},Yv={class:"borderimg"},qv={class:"my-header"},Qv=["id"],Zv={class:"delecttitle"},Jv={class:"spanclad"},ey={class:"dialog-footer footer_div l_btn"},ty={class:"footerbtn flex1"},ny={class:"borderimg"},ry={class:"footerbtn flex1"},ay={class:"borderimg"},sy={__name:"InfoDisaster",props:{classradio:{type:String},aid:{type:String}},setup(t,{expose:e}){const n=t;let r=G({addEied:""}),a=G("");const s=G({adddialog:!1,dialogsgdelect:!1,dianadddialog:!1,dialogVisiblenode:!1,isDisasterfire:!1,isDisasterwter:!1,adddwater:!1});let i=G("");const o=G(1),u=G(5),c=G([]),f=G([]);G(!0);const l=G({collfire:!1,collwater:!1});let g=G({}),p=G(""),y=G(""),h=G(""),d=G(""),x=G(1),S=G("0");G();let T=G(300);const v=G(),w=G([]),C=G(77),R=G(120);let M=Du({pname:"",site:.1}),m=G({svid:0,timeline:"",val1:"",val2:"",val3:"",val4:""}),D=G({});const V=G([]);let L=G(),U=G(),k=G(["1","2"]),Y=G("");const q=({row:J,rowIndex:b})=>b%2!=0?"evenRow":"oddRow";G([]);const Q=G([]),ne=G([]),z=()=>{console.log(n.classradio),n.classradio=="Fire"?l.value.collfire=!0:n.classradio=="Water"&&(l.value.collwater=!0)},F=J=>{L.value=J;const b={transCode:"D00005",aid:L.value};ke(b).then(qe=>{n.classradio=="Fire"?Q.value=qe.rows:c.value=qe.rows}).catch(qe=>{Te.error(qe.returnMsg)})},K=()=>{const J={transCode:"D00004",pid:p.value,aid:L.value,stype:n.classradio,site:M.site};ke(J).then(b=>{Te({message:b.returnMsg,type:"success"}),F(L.value)}).catch(b=>{Te.error(b.returnMsg)})},P=()=>{S.value=="1"?(K(),s.value.dianadddialog=!1):S.value=="2"?n.classradio=="Fire"&&(s.value.dianadddialog=!1):(S.value="3")&&be(),F(L.value)},X=J=>{console.log(J),D.value=J,h.value=J.sid,Y.value=J.pname},H=J=>{U.value=J},Ce=()=>{U.value=="1"?we():er()},we=()=>{const J={transCode:"D000011",sid:h.value};console.log(J),ke(J).then(b=>{Te({message:"删除成功",type:"success"}),F(L.value)}).catch(b=>{Te.error(b.returnMsg)})};function ie(){re(d.value)}function ft(J){}const lt=J=>{re(d.value)},rt=()=>{i.value="",p.value="",M.site=0,rt.value="1",S.value="1",a.value="添加"},Xe=()=>{S.value="3",a.value="修改",JSON.stringify(D.value)=="{}"?Te.error("你还没有选中修改的项目"):(s.value.dianadddialog=!0,L.value=D.value.aid,p.value=D.value.pid,M.site=D.value.site,i.value=D.value.pname)},be=()=>{const J={transCode:"D000010",pid:p.value,site:M.site,sid:D.value.sid};ke(J).then(b=>{Te({message:b.returnMsg,type:"success"})}).catch(b=>{})},Ie=()=>{re("")},ln=()=>{zt()},zt=()=>{i.value="",o.value=1,console.log(),w.value.length!=0&&(p.value=w.value[0].id,i.value=w.value[0].name)},gn=(J,b)=>{if(J.length>1){v.value.clearSelection(),v.value.toggleRowSelection(b,!0),w.value=J[1];return}J.length==1?w.value=J:J.length==0},re=J=>{const b={transCode:"D00001",count:u.value,page:o.value,searchtag:J};ke(b).then(qe=>{V.value=qe.rows,x.value=qe.total}).catch(qe=>{})},$=(J,b)=>{s.value.isDisasterfire=!0,h.value=b.sid,Me()},he=(J,b)=>{s.value.disDisasterwter=!0,h.value=b.sid,Me()},Me=()=>{const J={transCode:"D00007",sid:h.value};ke(J).then(b=>{console.log(b.rows),n.classradio=="Fire"?f.value=b.rows:ne.value=b.rows}).catch(b=>{})},Zt=()=>{if(r.value.addEied=="a"){const J={transCode:"D00006",sid:h.value,timeline:m.value.timeline,val1:m.value.val1,val2:m.value.val2,val3:m.value.val3,val4:m.value.val4};ke(J).then(b=>{Te({message:b.returnMsg,type:"success"}),Me()}).catch(b=>{Te.error(b.returnMsg)})}else W()},Ye=()=>{r.value.addEied="a",m.value.timeline="",m.value.val1="",m.value.val2="",m.value.val3="",m.value.val4="",a.value="添加"},ee=()=>{r.value.addEied="x",a.value="修改",JSON.stringify(g.value)=="{}"?Te.error("你还没有选中修改的项目"):(n.classradio=="Fire"?s.value.adddialog=!0:s.value.adddwater=!0,m.value.timeline=g.value.timeline,m.value.val1=g.value.val1,m.value.val2=g.value.val2,m.value.val3=g.value.val3,m.value.val4=g.value.val4)},W=()=>{const J={transCode:"D000012",svid:g.value.svid,timeline:m.value.timeline,val1:m.value.val1,val2:m.value.val2,val3:m.value.val3,val4:m.value.val4};ke(J).then(b=>{Te({message:b.returnMsg,type:"success"}),Me()}).catch(b=>{Te.error(b.returnMsg)})},We=J=>{console.log(J),g.value=J,h.value=J.sid,Y.value="检测表的一条信息",y.value=J.svid},gt=J=>{console.log(J),g.value=J,h.value=J.sid,Y.value="检测表的一条信息",y.value=J.svid},er=()=>{const J={transCode:"D000013",svid:y.value};ke(J).then(b=>{Te({message:"删除成功",type:"success"}),Me()}).catch(b=>{Te.error(b.returnMsg)})};return xr(()=>{}),e({sour:l,accident3:z,handledisaster:F}),(J,b)=>{const qe=Z("el-icon"),te=Z("el-table-column"),pn=Z("el-table"),pt=Z("el-image"),ia=Z("el-collapse-item"),Lr=Z("el-collapse"),Br=Z("el-aside"),Et=Z("el-input"),xt=Z("el-form-item"),oa=Z("el-input-number"),Ds=Z("el-pagination"),I=Z("el-form");return Je(),Bt("div",p1,[yt(_("div",h1,[O(Br,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:N(()=>[_("div",d1,[O(Lr,{modelValue:B(k),"onUpdate:modelValue":b[10]||(b[10]=j=>bt(k)?k.value=j:k=j),accordion:""},{default:N(()=>[O(ia,{name:"1"},{title:N(()=>[O(qe,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),O(qe,{class:"header-icon"})]),default:N(()=>[_("div",v1,[_("div",y1,[_("div",T1,[_("div",x1,[O(pn,{data:Q.value,style:{width:"100%"},onRowClick:b[0]||(b[0]=j=>X(j)),"row-class-name":q,"max-height":"350px","header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"highlight-current-row":!0},{default:N(()=>[O(te,{prop:"pname",label:"选择巷道",width:"130"}),O(te,{prop:"site",label:"位置",width:"70"}),O(te,{label:"操作",width:"100"},{default:N(j=>[O(B(xe),{size:"small",type:"success",onClick:bo(_t=>$(j.$index,j.row),["stop"])},{default:N(()=>[ae("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style"]),_("div",S1,[_("div",{class:"flex_a",onClick:b[1]||(b[1]=j=>{rt(),s.value.dianadddialog=!0})},w1),_("div",{class:"flex_a",onClick:b[2]||(b[2]=j=>{Xe()})},_1),_("div",{class:"flex_a",onClick:b[3]||(b[3]=j=>{H("1"),s.value.dialogsgdelect=!0})},D1)])]),yt(_("div",O1,[_("div",M1,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),V1,_("div",{class:"closeimg",onClick:b[4]||(b[4]=j=>s.value.isDisasterfire=!1)},[O(pt,{src:B(ui),fit:"contain"},null,8,["src"])])]),O(pn,{data:f.value,style:{width:"100%"},"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},"max-height":B(T),onRowClick:b[5]||(b[5]=j=>We(j)),"highlight-current-row":!0},{default:N(()=>[O(te,{prop:"timeline",label:"时间",width:"70"}),O(te,{prop:"val1",label:"温度℃",width:"70"}),O(te,{prop:"val2",label:"污染物1浓度",width:"100"}),O(te,{prop:"val2",label:"污染物2浓度",width:"100"})]),_:1},8,["data","header-cell-style","max-height"]),_("div",m1,[_("div",{class:"flex_a",onClick:b[6]||(b[6]=j=>{Ye(),s.value.adddialog=!0})},B1),_("div",{class:"flex_a",onClick:b[7]||(b[7]=j=>{ee()})},F1),_("div",{class:"flex_a",onClick:b[8]||(b[8]=j=>{H("2"),s.value.dialogsgdelect=!0})},N1),_("div",b1,[_("div",{class:"btns",onClick:b[9]||(b[9]=j=>s.value.isDisasterfire=!1)},$1)])])],512),[[wt,s.value.isDisasterfire]])]),W1])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[wt,l.value.collfire]]),yt(_("div",z1,[O(Br,{width:"354px",class:"L_aside L_aside1 asideg asidegbg leftbgimg1"},{default:N(()=>[_("div",A1,[O(Lr,{modelValue:B(k),"onUpdate:modelValue":b[21]||(b[21]=j=>bt(k)?k.value=j:k=j),accordion:""},{default:N(()=>[O(ia,{name:"1"},{title:N(()=>[O(qe,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),O(qe,{class:"header-icon"})]),default:N(()=>[_("div",H1,[_("div",j1,[_("div",K1,[_("div",P1,[O(pn,{data:c.value,style:{width:"100%"},"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:b[11]||(b[11]=j=>X(j)),"max-height":"350px","highlight-current-row":!0},{default:N(()=>[O(te,{prop:"pname",label:"选择巷道",width:"130"}),O(te,{prop:"site",label:"位置",width:"70"}),O(te,{label:"操作",width:"100"},{default:N(j=>[O(B(xe),{size:"small",type:"success",onClick:bo(_t=>he(j.$index,j.row),["stop"])},{default:N(()=>[ae("查看")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","header-cell-style"]),_("div",X1,[_("div",{class:"flex_a",onClick:b[12]||(b[12]=j=>{rt(),s.value.dianadddialog=!0})},Y1),_("div",{class:"flex_a",onClick:b[13]||(b[13]=j=>{Xe()})},Q1),_("div",{class:"flex_a",onClick:b[14]||(b[14]=j=>{H("1"),s.value.dialogsgdelect=!0})},J1),ev])]),yt(_("div",tv,[_("div",nv,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),rv,_("div",{class:"closeimg",onClick:b[15]||(b[15]=j=>s.value.disDisasterwter=!1)},[O(pt,{src:B(ui),fit:"contain"},null,8,["src"])])]),O(pn,{data:ne.value,style:{width:"100%"},"max-height":B(T),"row-class-name":q,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "},onRowClick:b[16]||(b[16]=j=>gt(j)),"highlight-current-row":!0},{default:N(()=>[O(te,{prop:"timeline",label:"时间"}),O(te,{prop:"val1",label:"突水量(m³/s)"})]),_:1},8,["data","max-height","header-cell-style"]),_("div",av,[_("div",{class:"flex_a",onClick:b[17]||(b[17]=j=>{Ye(),s.value.adddwater=!0})},iv),_("div",{class:"flex_a",onClick:b[18]||(b[18]=j=>{ee()})},cv),_("div",{class:"flex_a",onClick:b[19]||(b[19]=j=>{H("2"),s.value.dialogsgdelect=!0})},fv),_("div",{class:"flex_a",onClick:b[20]||(b[20]=j=>s.value.disDisasterwter=!1)},gv)])],512),[[wt,s.value.disDisasterwter]])]),pv])])]),_:1})]),_:1},8,["modelValue"])])]),_:1})],512),[[wt,l.value.collwater]]),O(B(Ft),{modelValue:s.value.dianadddialog,"onUpdate:modelValue":b[27]||(b[27]=j=>s.value.dianadddialog=j),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:j,titleClass:_t})=>[_("div",hv,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:j,class:kt(_t)},$t(B(a)),11,dv)])]),default:N(()=>[_("div",vv,[O(xt,{label:"管道名称","label-width":C.value},{default:N(()=>[O(Et,{modelValue:B(i),"onUpdate:modelValue":b[22]||(b[22]=j=>bt(i)?i.value=j:i=j),class:"w-50 m-2",placeholder:"管道名称","prefix-icon":B(Go)},null,8,["modelValue","prefix-icon"])]),_:1},8,["label-width"]),_("div",yv,[O(B(xe),{type:"primary",onClick:b[23]||(b[23]=j=>{Ie(),s.value.dialogVisiblenode=!0})},{default:N(()=>[ae("选择管道")]),_:1})])]),_("div",Tv,[O(xt,{label:"位置","label-width":C.value},{default:N(()=>[O(oa,{modelValue:B(M).site,"onUpdate:modelValue":b[24]||(b[24]=j=>B(M).site=j),min:0,max:1,precision:2,step:.1,"controls-position":"right",class:"w-50 m-2",placeholder:"位置"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_("div",xv,[_("div",Sv,[_("div",Cv,[O(B(xe),{onClick:b[25]||(b[25]=j=>s.value.dianadddialog=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",wv,[_("div",Ev,[O(B(xe),{onClick:b[26]||(b[26]=j=>{P(),s.value.dianadddialog=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:s.value.dialogVisiblenode,"onUpdate:modelValue":b[33]||(b[33]=j=>s.value.dialogVisiblenode=j),width:"50%",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:N(({titleId:j,titleClass:_t})=>[_("div",_v,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:j,class:kt(_t)}," 选择管道",10,Rv)])]),default:N(()=>[_("div",Dv,[_("div",Ov,[O(xt,{label:"节点选择","label-width":C.value},{default:N(()=>[O(Et,{modelValue:B(d),"onUpdate:modelValue":b[28]||(b[28]=j=>bt(d)?d.value=j:d=j),class:"w-50 m-2",placeholder:"管道名称","prefix-icon":B(Go)},null,8,["modelValue","prefix-icon"])]),_:1},8,["label-width"]),_("div",{class:"asdis_btn"},[_("div",{class:"flex_a"},[_("div",{class:"btns",onClick:ie},Vv)])])]),O(pn,{"row-class-name":q,"max-height":B(T),ref_key:"multipleTableRef",ref:v,data:V.value,style:{width:"100%"},onSelect:gn,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:N(()=>[O(te,{type:"selection",width:"55"}),O(te,{property:"snId",label:"开始节点"}),O(te,{property:"enId",label:"结束节点"}),O(te,{property:"id",label:"编号",width:"70"}),O(te,{property:"name",label:"名称",width:"70"}),O(te,{property:"sectionType",label:"截面类型",width:"120"}),O(te,{property:"roughCoe",label:"粗糙系数"}),O(te,{property:"sectionPara1",label:"截面参数1",width:"90"}),O(te,{property:"sectionPara2",label:"截面参数2",width:"90"}),O(te,{property:"sectionPara3",label:"截面参数3",width:"90"}),O(te,{property:"sectionPara4",label:"截面参数4",width:"90"}),O(te,{property:"sectionPara5",label:"截面参数5",width:"90"})]),_:1},8,["max-height","data","header-cell-style"]),_("div",mv,[O(Ds,{"current-page":o.value,"onUpdate:currentPage":b[29]||(b[29]=j=>o.value=j),"page-size":u.value,"onUpdate:pageSize":b[30]||(b[30]=j=>u.value=j),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(B(x)),class:"mt-4",onSizeChange:ft,onCurrentChange:lt},null,8,["current-page","page-size","total"])]),_("div",Lv,[_("div",Bv,[_("div",kv,[O(B(xe),{onClick:b[31]||(b[31]=j=>s.value.dialogVisiblenode=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",Fv,[_("div",Uv,[O(B(xe),{onClick:b[32]||(b[32]=j=>{ln(),s.value.dialogVisiblenode=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:s.value.adddialog,"onUpdate:modelValue":b[40]||(b[40]=j=>s.value.adddialog=j),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:j,titleClass:_t})=>[_("div",Nv,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:j,class:kt(_t)},$t(B(a)),11,bv)])]),default:N(()=>[_("div",null,[O(I,null,{default:N(()=>[O(xt,{label:"时间","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).timeline,"onUpdate:modelValue":b[34]||(b[34]=j=>B(m).timeline=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(xt,{label:"温度℃","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).val1,"onUpdate:modelValue":b[35]||(b[35]=j=>B(m).val1=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(xt,{label:"污染物1浓度","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).val2,"onUpdate:modelValue":b[36]||(b[36]=j=>B(m).val2=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(xt,{label:"污染物2浓度","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).val3,"onUpdate:modelValue":b[37]||(b[37]=j=>B(m).val3=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),_("div",Gv,[_("div",$v,[_("div",Wv,[O(B(xe),{onClick:b[38]||(b[38]=j=>s.value.adddialog=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",zv,[_("div",Av,[O(B(xe),{onClick:b[39]||(b[39]=j=>{Zt(),s.value.adddialog=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:s.value.adddwater,"onUpdate:modelValue":b[45]||(b[45]=j=>s.value.adddwater=j),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:j,titleClass:_t})=>[_("div",Hv,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:j,class:kt(_t)},"添加",10,jv)])]),default:N(()=>[_("div",null,[O(I,null,{default:N(()=>[O(xt,{label:"时间","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).timeline,"onUpdate:modelValue":b[41]||(b[41]=j=>B(m).timeline=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(xt,{label:"突水量(m³/s)","label-width":R.value},{default:N(()=>[O(Et,{modelValue:B(m).val1,"onUpdate:modelValue":b[42]||(b[42]=j=>B(m).val1=j),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])]),_:1})]),_("div",Kv,[_("div",Pv,[_("div",Xv,[O(B(xe),{onClick:b[43]||(b[43]=j=>s.value.adddwater=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",Iv,[_("div",Yv,[O(B(xe),{onClick:b[44]||(b[44]=j=>{Zt(),s.value.adddwater=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:s.value.dialogsgdelect,"onUpdate:modelValue":b[48]||(b[48]=j=>s.value.dialogsgdelect=j),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:j,titleClass:_t})=>[_("div",qv,[O(pt,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:j,class:kt(_t)},"删除框",10,Qv)])]),default:N(()=>[_("h4",Zv,[ae(" 是否确认删除 "),_("span",Jv,$t(B(Y)),1)]),_("div",ey,[_("div",ty,[_("div",ny,[O(B(xe),{onClick:b[46]||(b[46]=j=>s.value.dialogsgdelect=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",ry,[_("div",ay,[O(B(xe),{onClick:b[47]||(b[47]=j=>{Ce(),s.value.dialogsgdelect=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])])}}},iy=Qr(sy,[["__scopeId","data-v-70823765"]]);const Qn=t=>(Zr("data-v-cb0d93df"),t=t(),Jr(),t),oy={class:"l_Dialog bou"},cy={class:"common-layout",style:{margin:"0"}},uy={class:"demo-collapse"},fy={class:"asides_content"},ly={class:"jc_content tablecolor"},gy={class:"jc_padding font12"},py={class:"xian btncolor tablefocus bmar"},hy={class:"asdis_btn"},dy={class:"flex_a"},vy=Qn(()=>_("span",{class:"spantext"},"添加",-1)),yy=[vy],Ty={class:"flex_a"},xy=Qn(()=>_("span",{class:"spantext"},"修改",-1)),Sy=[xy],Cy={class:"flex_a"},wy=Qn(()=>_("span",{class:"spantext"},"删除",-1)),Ey=[wy],_y={class:"common-layout",style:{margin:"0"}},Ry={class:"demo-collapse"},Dy={class:"asides_content"},Oy={class:"jc_content tablecolor"},My={class:"jc_padding font12"},Vy={class:"xian btncolor tablefocus bmar"},my={class:"asdis_btn padingcla"},Ly={class:"flex_a"},By=Qn(()=>_("span",{class:"spantext"},"添加",-1)),ky=[By],Fy={class:"flex_a"},Uy=Qn(()=>_("span",{class:"spantext"},"修改",-1)),Ny=[Uy],by={class:"flex_a"},Gy=Qn(()=>_("span",{class:"spantext"},"删除",-1)),$y=[Gy],Wy={class:"my-header"},zy=["id"],Ay={class:"addye"},Hy={key:0,class:"fireclass"},jy={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},Ky={class:"demo-input-suffix firsttitle magintop"},Py={class:"btn2"},Xy={key:1,class:"Waterclass"},Iy={class:"l_padding input",style:{padding:"20px 20px 20px 24px"}},Yy={class:"demo-input-suffix firsttitle magintop"},qy={class:"btn2"},Qy={class:"dialog-footer footer_div l_btn"},Zy={class:"footerbtn flex1"},Jy={class:"borderimg"},eT={class:"footerbtn flex1"},tT={class:"borderimg"},nT={class:"my-header"},rT=["id"],aT={class:"demo-input-suffix firsttitle leftbgimg2"},sT={class:"guand_1"},iT=Qn(()=>_("span",{class:"spantext"},"搜索",-1)),oT=[iT],cT={class:"demo-pagination-block",style:{"margin-top":"20px"}},uT={class:"dialog-footer footer_div l_btn"},fT={class:"footerbtn flex1"},lT={class:"borderimg"},gT={class:"footerbtn flex1"},pT={class:"borderimg"},hT={class:"my-header"},dT=["id"],vT={class:"delecttitle"},yT={class:"spanclad"},TT={class:"dialog-footer footer_div l_btn"},xT={class:"footerbtn flex1"},ST={class:"borderimg"},CT={class:"footerbtn flex1"},wT={class:"borderimg"},ET={__name:"InfoBoundary",props:{classradio:String},setup(t,{expose:e}){const n=t;let r=G({dialogVisiblenode:!1,dialogsgdelect:!1}),a=G("");Du({id:0,name:"灾情演化",value:".vtk"});let s=G({}),i=G(""),o=G(400);const u=G(),c=G([]),f=G(77),l=G(120);let g=G([]),p=G(""),y=G(1);const h=G(1),d=G(5);let x=G(),S=G(),T=G(),v=G({nname:"",type:"Pressure",flow:"",pressure:"",temperature:"",polcon1:"",polcon2:"",user:"11",nodesel:"1",nodesselect:[{value:"1",label:"1"},{value:"2",label:"2"}],region:"massflow",options:[{value:"massflow",label:"流量边界"},{value:"Pressure",label:" 压力边界"}],region:"边界出口",options2:[{value:"边界出口"}]}),w=G(["1","2"]);const C=G([]);G("");const R=G({dialogVisible:!1}),M=G({collfire:!1,collwater:!1}),m=()=>{L("")};function D(){L(p.value)}const V=X=>{L(p.value)},L=X=>{const H={transCode:"D00000",count:d.value,page:h.value,searchtag:X};ke(H).then(Ce=>{g.value=Ce.rows,y.value=Ce.total}).catch(Ce=>{Te.error(Ce.returnMsg)})},U=()=>{r.value.dialogVisiblenode=!1,v.value.nname="",h.value=1,console.log(),c.value.length!=0?(x.value=c.value[0].id,v.value.nname=c.value[0].name):v.value.nname=""},k=(X,H)=>{if(X.length>1){u.value.clearSelection(),u.value.toggleRowSelection(H,!0),c.value=X[1];return}X.length==1?c.value=X:X.length==0},Y=()=>{S.value="",v.value.nname="",v.value.type="Pressure",v.value.flow="",v.value.pressure="",v.value.temperature="",v.value.polcon1="",v.value.polcon2="",a.value="添加",n.classradio=="Fire"?v.value.type="Pressure":n.classradio=="Water"&&(v.value.type="边界出口")},q=()=>{a.value="修改",JSON.stringify(s.value)=="{}"?Te.error("你还没有选中修改的项目"):(n.classradio=="Fire"?v.value.type="Pressure":n.classradio=="Water"&&(v.value.type="边界出口"),console.log(s.value),S.value=s.value.bid,x.value=s.value.nid,T.value=s.value.aid,R.value.dialogVisible=!0,v.value.nname=s.value.nname,v.value.type=s.value.type,v.value.flow=s.value.flow,v.value.pressure=s.value.pressure,v.value.temperature=s.value.temperature,v.value.polcon1=s.value.polcon1,v.value.polcon2=s.value.polcon2)},Q=()=>{const X={transCode:"D10008",bid:S.value,nid:x.value,nname:v.value.nname,type:v.value.type,aid:T.value,flow:v.value.flow,pressure:v.value.pressure,temperature:v.value.temperature,polcon1:v.value.polcon1,polcon2:v.value.polcon2};ke(X).then(H=>{ne(T.value)}).catch(H=>{Te.error(H.returnMsg)})},ne=X=>{T.value=X;const H={transCode:"D10007",aid:T.value};ke(H).then(Ce=>{C.value=Ce.rows}).catch(Ce=>{Te.error(Ce.returnMsg)})},z=X=>{console.log(X),s.value=X,S.value=X.bid,i.value=X.nname},F=()=>{const X={transCode:"D10009",bid:S.value};console.log(X),ke(X).then(H=>{Te({message:"删除成功",type:"success"}),ne(T.value)}).catch(H=>{Te.error(H.returnMsg)})},K=({row:X,rowIndex:H})=>H%2!=0?"evenRow":"oddRow",P=X=>{X=="2"?n.classradio=="Fire"?M.value.collfire=!0:n.classradio=="Water"&&(M.value.collwater=!0):(M.value.collfire=!1,M.value.collwater=!1)};return xr(()=>{}),e({boun:M,accident4:P,addboundary:ne}),(X,H)=>{const Ce=Z("el-icon"),we=Z("el-table-column"),ie=Z("el-table"),ft=Z("el-collapse-item"),lt=Z("el-collapse"),rt=Z("el-aside"),Xe=Z("el-image"),be=Z("el-input"),Ie=Z("el-form-item"),ln=Z("el-option"),zt=Z("el-select"),gn=Z("el-form"),re=Z("el-pagination");return Je(),Bt("div",oy,[_("div",cy,[yt(O(rt,{width:"591px",class:"L_aside L_aside1 asideg asidegbg leftbgimg2"},{default:N(()=>[_("div",uy,[O(lt,{modelValue:B(w),"onUpdate:modelValue":H[4]||(H[4]=$=>bt(w)?w.value=$:w=$),accordion:""},{default:N(()=>[O(ft,{name:"1"},{title:N(()=>[O(Ce,{class:"iconimg Frame2",fit:"contain"}),ae(" 火灾"),O(Ce,{class:"header-icon"})]),default:N(()=>[_("div",fy,[_("div",ly,[_("div",gy,[_("div",py,[O(ie,{data:C.value,style:{width:"100%"},"max-height":B(o),"highlight-current-row":!0,"row-class-name":K,onRowClick:H[0]||(H[0]=$=>z($)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:N(()=>[O(we,{prop:"nid",label:"节点选择"}),O(we,{prop:"type",label:"边界类型"}),O(we,{prop:"flow",label:"流量(m³/s)",width:"80"}),O(we,{prop:"pressure",label:"压强(pa)",width:"70"}),O(we,{prop:"temperature",label:"温度(℃)"}),O(we,{prop:"polcon1",label:"污染物1浓度",width:"95"}),O(we,{prop:"polcon2",label:"污染物2浓度",width:"95"})]),_:1},8,["data","max-height","header-cell-style"]),_("div",hy,[_("div",dy,[_("div",{class:"btns",onClick:H[1]||(H[1]=$=>{Y(),R.value.dialogVisible=!0})},yy)]),_("div",Ty,[_("div",{class:"btns",onClick:H[2]||(H[2]=$=>{q()})},Sy)]),_("div",Cy,[_("div",{class:"btns",onClick:H[3]||(H[3]=$=>B(r).dialogsgdelect=!0)},Ey)])])])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[wt,M.value.collfire]])]),_("div",_y,[yt(O(rt,{width:"231px",class:"L_aside L_aside1 asideg asidegbg leftbgimg0"},{default:N(()=>[_("div",Ry,[O(lt,{modelValue:B(w),"onUpdate:modelValue":H[9]||(H[9]=$=>bt(w)?w.value=$:w=$),accordion:""},{default:N(()=>[O(ft,{name:"2"},{title:N(()=>[O(Ce,{class:"iconimg Frame3",fit:"contain"}),ae(" 突水"),O(Ce,{class:"header-icon"})]),default:N(()=>[_("div",Dy,[_("div",Oy,[_("div",My,[_("div",Vy,[O(ie,{data:C.value,style:{width:"100%"},"max-height":B(o),"highlight-current-row":!0,"row-class-name":K,onRowClick:H[5]||(H[5]=$=>z($)),"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:N(()=>[O(we,{prop:"nid",label:"节点选择"}),O(we,{prop:"type",label:"边界类型"})]),_:1},8,["data","max-height","header-cell-style"])])]),_("div",my,[_("div",Ly,[_("div",{class:"btns",onClick:H[6]||(H[6]=$=>{Y(),R.value.dialogVisible=!0})},ky)]),_("div",Fy,[_("div",{class:"btns",onClick:H[7]||(H[7]=$=>{q()})},Ny)]),_("div",by,[_("div",{class:"btns",onClick:H[8]||(H[8]=$=>B(r).dialogsgdelect=!0)},$y)])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[wt,M.value.collwater]])]),O(B(Ft),{modelValue:R.value.dialogVisible,"onUpdate:modelValue":H[29]||(H[29]=$=>R.value.dialogVisible=$),width:"482",modal:!1,"close-on-click-modal":!1,draggable:"",class:"dialog_class bgcolor foter_l"},{header:N(({titleId:$,titleClass:he})=>[_("div",Wy,[O(Xe,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:$,class:kt(he)},$t(B(a)),11,zy)])]),default:N(()=>[_("div",Ay,[n.classradio=="Fire"?(Je(),Bt("div",Hy,[O(gn,{class:"demo-form-inline",inline:!0,model:B(v)},{default:N(()=>[_("div",jy,[_("div",Ky,[O(Ie,{label:"节点名称","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).nname,"onUpdate:modelValue":H[10]||(H[10]=$=>B(v).nname=$),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",Py,[O(B(xe),{type:"primary",onClick:H[11]||(H[11]=$=>{m(),B(r).dialogVisiblenode=!0})},{default:N(()=>[ae("选择节点")]),_:1})])]),O(Ie,{label:"边界类型","label-width":l.value},{default:N(()=>[O(zt,{modelValue:B(v).type,"onUpdate:modelValue":H[12]||(H[12]=$=>B(v).type=$),placeholder:"请选择"},{default:N(()=>[(Je(!0),Bt(Ia,null,Ya(B(v).options,$=>(Je(),jr(ln,{key:$.id,label:$.label,value:$.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"]),O(Ie,{label:"流量(m³/s)","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).flow,"onUpdate:modelValue":H[13]||(H[13]=$=>B(v).flow=$),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(Ie,{label:"压强(pa)","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).pressure,"onUpdate:modelValue":H[14]||(H[14]=$=>B(v).pressure=$),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(Ie,{label:"温度(℃)","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).temperature,"onUpdate:modelValue":H[15]||(H[15]=$=>B(v).temperature=$),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(Ie,{label:"污染物1浓度","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).polcon1,"onUpdate:modelValue":H[16]||(H[16]=$=>B(v).polcon1=$),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"]),O(Ie,{label:"污染物2浓度","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).polcon2,"onUpdate:modelValue":H[17]||(H[17]=$=>B(v).polcon2=$),class:"w-50 m-2",placeholder:"请输入"},null,8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])):(Je(),Bt("div",Xy,[O(gn,{class:"demo-form-inline",inline:!0,model:B(v)},{default:N(()=>[_("div",Iy,[_("div",Yy,[O(Ie,{label:"节点名称","label-width":l.value},{default:N(()=>[O(be,{modelValue:B(v).nname,"onUpdate:modelValue":H[18]||(H[18]=$=>B(v).nname=$),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",qy,[O(B(xe),{type:"primary",onClick:H[19]||(H[19]=$=>{m(),B(r).dialogVisiblenode=!0})},{default:N(()=>[ae("选择节点")]),_:1})])]),O(Ie,{label:"边界类型","label-width":l.value},{default:N(()=>[O(zt,{modelValue:B(v).type,"onUpdate:modelValue":H[20]||(H[20]=$=>B(v).type=$),placeholder:"请选择"},{default:N(()=>[(Je(!0),Bt(Ia,null,Ya(B(v).options2,$=>(Je(),jr(ln,{key:$.id,label:$.label,value:$.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["label-width"])])]),_:1},8,["model"])])),_("div",Qy,[_("div",Zy,[_("div",Jy,[O(B(xe),{onClick:H[21]||(H[21]=$=>R.value.dialogVisible=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",eT,[_("div",tT,[O(B(xe),{onClick:H[22]||(H[22]=$=>{Q(),R.value.dialogVisible=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),O(B(Ft),{modelValue:B(r).dialogVisiblenode,"onUpdate:modelValue":H[28]||(H[28]=$=>B(r).dialogVisiblenode=$),width:"50%",class:"dialog_class bgcolor tianjia asideg asidegbg leftbgimg"},{header:N(({titleId:$,titleClass:he})=>[_("div",nT,[O(Xe,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:$,class:kt(he)}," 选择节点",10,rT)])]),default:N(()=>[_("div",aT,[_("div",sT,[O(Ie,{label:"节点选择","label-width":f.value},{default:N(()=>[O(be,{modelValue:B(p),"onUpdate:modelValue":H[23]||(H[23]=$=>bt(p)?p.value=$:p=$),class:"w-50 m-2",placeholder:"节点名称"},null,8,["modelValue"])]),_:1},8,["label-width"]),_("div",{class:"asdis_btn"},[_("div",{class:"flex_a"},[_("div",{class:"btns",onClick:D},oT)])])]),ae(" > "),O(ie,{"row-class-name":K,"max-height":B(o),ref_key:"multipleTableRef",ref:u,data:B(g),style:{width:"100%"},onSelect:k,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:N(()=>[O(we,{type:"selection",width:"55"}),O(we,{property:"id",label:"节点编号"}),O(we,{property:"name",label:"名称"}),O(we,{property:"ntype",label:"类型"}),O(we,{property:"x",label:"x"}),O(we,{property:"y",label:"y"}),O(we,{property:"z",label:"z"})]),_:1},8,["max-height","data","header-cell-style"]),_("div",cT,[O(re,{"current-page":h.value,"onUpdate:currentPage":H[24]||(H[24]=$=>h.value=$),"page-size":d.value,"onUpdate:pageSize":H[25]||(H[25]=$=>d.value=$),small:"",background:"",layout:"prev, total,pager, next, jumpe,",total:parseInt(B(y)),class:"mt-4",onCurrentChange:V},null,8,["current-page","page-size","total"])]),_("div",uT,[_("div",fT,[_("div",lT,[O(B(xe),{onClick:H[26]||(H[26]=$=>B(r).dialogVisiblenode=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",gT,[_("div",pT,[O(B(xe),{onClick:H[27]||(H[27]=$=>{U()})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),O(B(Ft),{modelValue:B(r).dialogsgdelect,"onUpdate:modelValue":H[32]||(H[32]=$=>B(r).dialogsgdelect=$),width:"400",class:"dialog_class bgcolor tianjia"},{header:N(({titleId:$,titleClass:he})=>[_("div",hT,[O(Xe,{src:B(dt),fit:"contain"},null,8,["src"]),_("h4",{id:$,class:kt(he)},"删除框",10,dT)])]),default:N(()=>[_("h4",vT,[ae(" 是否确认删除 "),_("span",yT,$t(B(i)),1)]),_("div",TT,[_("div",xT,[_("div",ST,[O(B(xe),{onClick:H[30]||(H[30]=$=>B(r).dialogsgdelect=!1)},{default:N(()=>[ae("取消")]),_:1})])]),_("div",CT,[_("div",wT,[O(B(xe),{onClick:H[31]||(H[31]=$=>{F(),B(r).dialogsgdelect=!1})},{default:N(()=>[ae(" 确定 ")]),_:1})])])])]),_:1},8,["modelValue"])])}}},_T=Qr(ET,[["__scopeId","data-v-cb0d93df"]]);function Aa(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function RT(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function of(t){let e,n,r;t.length!==2?(e=Aa,n=(o,u)=>Aa(t(o),u),r=(o,u)=>t(o)-u):(e=t===Aa||t===RT?t:DT,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 DT(){return 0}function OT(t){return t===null?NaN:+t}const MT=of(Aa),VT=MT.right;of(OT).center;const mT=VT,LT=Math.sqrt(50),BT=Math.sqrt(10),kT=Math.sqrt(2);function es(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>=LT?10:s>=BT?5:s>=kT?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?es(t,e,n*2):[o,u,c]}function FT(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?es(e,t,n):es(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 pi(t,e,n){return e=+e,t=+t,n=+n,es(t,e,n)[2]}function UT(t,e,n){e=+e,t=+t,n=+n;const r=e<t,a=r?pi(e,t,n):pi(t,e,n);return(r?-1:1)*(a<0?1/-a:a)}function NT(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Ki(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function cf(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function ra(){}var Kr=.7,ts=1/Kr,yr="\\s*([+-]?\\d+)\\s*",Pr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",It="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",bT=/^#([0-9a-f]{3,8})$/,GT=new RegExp(`^rgb\\(${yr},${yr},${yr}\\)$`),$T=new RegExp(`^rgb\\(${It},${It},${It}\\)$`),WT=new RegExp(`^rgba\\(${yr},${yr},${yr},${Pr}\\)$`),zT=new RegExp(`^rgba\\(${It},${It},${It},${Pr}\\)$`),AT=new RegExp(`^hsl\\(${Pr},${It},${It}\\)$`),HT=new RegExp(`^hsla\\(${Pr},${It},${It},${Pr}\\)$`),nc={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};Ki(ra,Xr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:rc,formatHex:rc,formatHex8:jT,formatHsl:KT,formatRgb:ac,toString:ac});function rc(){return this.rgb().formatHex()}function jT(){return this.rgb().formatHex8()}function KT(){return uf(this).formatHsl()}function ac(){return this.rgb().formatRgb()}function Xr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=bT.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?sc(e):n===3?new vt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ua(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ua(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=GT.exec(t))?new vt(e[1],e[2],e[3],1):(e=$T.exec(t))?new vt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=WT.exec(t))?ua(e[1],e[2],e[3],e[4]):(e=zT.exec(t))?ua(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=AT.exec(t))?cc(e[1],e[2]/100,e[3]/100,1):(e=HT.exec(t))?cc(e[1],e[2]/100,e[3]/100,e[4]):nc.hasOwnProperty(t)?sc(nc[t]):t==="transparent"?new vt(NaN,NaN,NaN,0):null}function sc(t){return new vt(t>>16&255,t>>8&255,t&255,1)}function ua(t,e,n,r){return r<=0&&(t=e=n=NaN),new vt(t,e,n,r)}function PT(t){return t instanceof ra||(t=Xr(t)),t?(t=t.rgb(),new vt(t.r,t.g,t.b,t.opacity)):new vt}function hi(t,e,n,r){return arguments.length===1?PT(t):new vt(t,e,n,r??1)}function vt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Ki(vt,hi,cf(ra,{brighter(t){return t=t==null?ts:Math.pow(ts,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Kr:Math.pow(Kr,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new vt(Pn(this.r),Pn(this.g),Pn(this.b),ns(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:ic,formatHex:ic,formatHex8:XT,formatRgb:oc,toString:oc}));function ic(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}`}function XT(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}${Hn((isNaN(this.opacity)?1:this.opacity)*255)}`}function oc(){const t=ns(this.opacity);return`${t===1?"rgb(":"rgba("}${Pn(this.r)}, ${Pn(this.g)}, ${Pn(this.b)}${t===1?")":`, ${t})`}`}function ns(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Pn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Hn(t){return t=Pn(t),(t<16?"0":"")+t.toString(16)}function cc(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ut(t,e,n,r)}function uf(t){if(t instanceof Ut)return new Ut(t.h,t.s,t.l,t.opacity);if(t instanceof ra||(t=Xr(t)),!t)return new Ut;if(t instanceof Ut)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 Ut(i,o,u,t.opacity)}function IT(t,e,n,r){return arguments.length===1?uf(t):new Ut(t,e,n,r??1)}function Ut(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ki(Ut,IT,cf(ra,{brighter(t){return t=t==null?ts:Math.pow(ts,t),new Ut(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Kr:Math.pow(Kr,t),new Ut(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 vt(ks(t>=240?t-240:t+120,a,r),ks(t,a,r),ks(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new Ut(uc(this.h),fa(this.s),fa(this.l),ns(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=ns(this.opacity);return`${t===1?"hsl(":"hsla("}${uc(this.h)}, ${fa(this.s)*100}%, ${fa(this.l)*100}%${t===1?")":`, ${t})`}`}}));function uc(t){return t=(t||0)%360,t<0?t+360:t}function fa(t){return Math.max(0,Math.min(1,t||0))}function ks(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 Pi=t=>()=>t;function YT(t,e){return function(n){return t+n*e}}function qT(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 QT(t){return(t=+t)==1?ff:function(e,n){return n-e?qT(e,n,t):Pi(isNaN(e)?n:e)}}function ff(t,e){var n=e-t;return n?YT(t,n):Pi(isNaN(t)?e:t)}const fc=function t(e){var n=QT(e);function r(a,s){var i=n((a=hi(a)).r,(s=hi(s)).r),o=n(a.g,s.g),u=n(a.b,s.b),c=ff(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 ZT(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 JT(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ex(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]=Xi(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 tx(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function rs(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function nx(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]=Xi(t[a],e[a]):r[a]=e[a];return function(s){for(a in n)r[a]=n[a](s);return r}}var di=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Fs=new RegExp(di.source,"g");function rx(t){return function(){return t}}function ax(t){return function(e){return t(e)+""}}function sx(t,e){var n=di.lastIndex=Fs.lastIndex=0,r,a,s,i=-1,o=[],u=[];for(t=t+"",e=e+"";(r=di.exec(t))&&(a=Fs.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:rs(r,a)})),n=Fs.lastIndex;return n<e.length&&(s=e.slice(n),o[i]?o[i]+=s:o[++i]=s),o.length<2?u[0]?ax(u[0].x):rx(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 Xi(t,e){var n=typeof e,r;return e==null||n==="boolean"?Pi(e):(n==="number"?rs:n==="string"?(r=Xr(e))?(e=r,fc):sx:e instanceof Xr?fc:e instanceof Date?tx:JT(e)?ZT:Array.isArray(e)?ex:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?nx:rs)(t,e)}function ix(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function ox(t){return function(){return t}}function cx(t){return+t}var lc=[0,1];function gr(t){return t}function vi(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:ox(isNaN(e)?NaN:.5)}function ux(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function fx(t,e,n){var r=t[0],a=t[1],s=e[0],i=e[1];return a<r?(r=vi(a,r),s=n(i,s)):(r=vi(r,a),s=n(s,i)),function(o){return s(r(o))}}function lx(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]=vi(t[i],t[i+1]),s[i]=n(e[i],e[i+1]);return function(o){var u=mT(t,o,1,r)-1;return s[u](a[u](o))}}function gx(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function px(){var t=lc,e=lc,n=Xi,r,a,s,i=gr,o,u,c;function f(){var g=Math.min(t.length,e.length);return i!==gr&&(i=ux(t[0],t[g-1])),o=g>2?lx:fx,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),rs)))(g)))},l.domain=function(g){return arguments.length?(t=Array.from(g,cx),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=ix,f()},l.clamp=function(g){return arguments.length?(i=g?!0:gr,f()):i!==gr},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 hx(){return px()(gr,gr)}function dx(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function as(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 Cr(t){return t=as(Math.abs(t)),t?t[1]:NaN}function vx(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 yx(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Tx=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ss(t){if(!(e=Tx.exec(t)))throw new Error("invalid format: "+t);var e;return new Ii({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]})}ss.prototype=Ii.prototype;function Ii(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+""}Ii.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 xx(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 lf;function Sx(t,e){var n=as(t,e);if(!n)return t+"";var r=n[0],a=n[1],s=a-(lf=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")+as(t,Math.max(0,e+s-1))[0]}function gc(t,e){var n=as(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 pc={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:dx,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)=>gc(t*100,e),r:gc,s:Sx,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function hc(t){return t}var dc=Array.prototype.map,vc=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Cx(t){var e=t.grouping===void 0||t.thousands===void 0?hc:vx(dc.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?hc:yx(dc.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=ss(l);var g=l.fill,p=l.align,y=l.sign,h=l.symbol,d=l.zero,x=l.width,S=l.comma,T=l.precision,v=l.trim,w=l.type;w==="n"?(S=!0,w="g"):pc[w]||(T===void 0&&(T=12),v=!0,w="g"),(d||g==="0"&&p==="=")&&(d=!0,g="0",p="=");var C=h==="$"?n:h==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",R=h==="$"?r:/[%p]/.test(w)?i:"",M=pc[w],m=/[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 D(V){var L=C,U=R,k,Y,q;if(w==="c")U=M(V)+U,V="";else{V=+V;var Q=V<0||1/V<0;if(V=isNaN(V)?u:M(Math.abs(V),T),v&&(V=xx(V)),Q&&+V==0&&y!=="+"&&(Q=!1),L=(Q?y==="("?y:o:y==="-"||y==="("?"":y)+L,U=(w==="s"?vc[8+lf/3]:"")+U+(Q&&y==="("?")":""),m){for(k=-1,Y=V.length;++k<Y;)if(q=V.charCodeAt(k),48>q||q>57){U=(q===46?a+V.slice(k+1):V.slice(k))+U,V=V.slice(0,k);break}}}S&&!d&&(V=e(V,1/0));var ne=L.length+V.length+U.length,z=ne<x?new Array(x-ne+1).join(g):"";switch(S&&d&&(V=e(z+V,z.length?x-U.length:1/0),z=""),p){case"<":V=L+V+U+z;break;case"=":V=L+z+V+U;break;case"^":V=z.slice(0,ne=z.length>>1)+L+V+U+z.slice(ne);break;default:V=z+L+V+U;break}return s(V)}return D.toString=function(){return l+""},D}function f(l,g){var p=c((l=ss(l),l.type="f",l)),y=Math.max(-8,Math.min(8,Math.floor(Cr(g)/3)))*3,h=Math.pow(10,-y),d=vc[8+y/3];return function(x){return p(h*x)+d}}return{format:c,formatPrefix:f}}var la,gf,pf;hf({thousands:",",grouping:[3],currency:["$",""]});function hf(t){return la=Cx(t),gf=la.format,pf=la.formatPrefix,la}function wx(t){return Math.max(0,-Cr(Math.abs(t)))}function Ex(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Cr(e)/3)))*3-Cr(Math.abs(t)))}function _x(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Cr(e)-Cr(t))+1}function Rx(t,e,n,r){var a=UT(t,e,n),s;switch(r=ss(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=Ex(a,i))&&(r.precision=s),pf(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=_x(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=wx(a))&&(r.precision=s-(r.type==="%")*2);break}}return gf(r)}function Dx(t){var e=t.domain;return t.ticks=function(n){var r=e();return FT(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return Rx(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=pi(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 ys(){var t=hx();return t.copy=function(){return gx(t,ys())},NT.apply(t,arguments),Dx(t)}var pe=1e-6,Pe=typeof Float32Array<"u"?Float32Array:Array,Ox=Math.PI/180;function Mx(t){return t*Ox}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});function df(){var t=new Pe(9);return Pe!=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 Yi(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 Vx(t){var e=new Pe(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 mx(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 Lx(t,e,n,r,a,s,i,o,u){var c=new Pe(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 Bx(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 Zn(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 vf(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 qi(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 kx(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 Fx(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 yf(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],S=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]=S*r+T*i+v*c,t[7]=S*a+T*o+v*f,t[8]=S*s+T*u+v*l,t}function Ux(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 Nx(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 bx(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 Gx(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 $x(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 Wx(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 zx(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 Ax(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 Hx(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],S=n*o-r*i,T=n*u-a*i,v=n*c-s*i,w=r*u-a*o,C=r*c-s*o,R=a*c-s*u,M=f*h-l*y,m=f*d-g*y,D=f*x-p*y,V=l*d-g*h,L=l*x-p*h,U=g*x-p*d,k=S*U-T*L+v*V+w*D-C*m+R*M;return k?(k=1/k,t[0]=(o*U-u*L+c*V)*k,t[1]=(u*D-i*U-c*m)*k,t[2]=(i*L-o*D+c*M)*k,t[3]=(a*L-r*U-s*V)*k,t[4]=(n*U-a*D+s*m)*k,t[5]=(r*D-n*L-s*M)*k,t[6]=(h*R-d*C+x*w)*k,t[7]=(d*v-y*R-x*T)*k,t[8]=(y*C-h*v+x*S)*k,t):null}function jx(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 Kx(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function Px(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function Xx(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 Tf(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 Ix(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t}function Yx(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t}function qx(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 Qx(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],S=e[7],T=e[8];return Math.abs(n-l)<=pe*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(r-g)<=pe*Math.max(1,Math.abs(r),Math.abs(g))&&Math.abs(a-p)<=pe*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-y)<=pe*Math.max(1,Math.abs(s),Math.abs(y))&&Math.abs(i-h)<=pe*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-d)<=pe*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-x)<=pe*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-S)<=pe*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(f-T)<=pe*Math.max(1,Math.abs(f),Math.abs(T))}var Zx=yf,Jx=Tf;const e2=Object.freeze(Object.defineProperty({__proto__:null,add:Xx,adjoint:kx,clone:Vx,copy:mx,create:df,determinant:Fx,equals:Qx,exactEquals:qx,frob:Px,fromMat2d:zx,fromMat4:Yi,fromQuat:Ax,fromRotation:$x,fromScaling:Wx,fromTranslation:Gx,fromValues:Lx,identity:Zn,invert:qi,mul:Zx,multiply:yf,multiplyScalar:Ix,multiplyScalarAndAdd:Yx,normalFromMat4:Hx,projection:jx,rotate:Nx,scale:bx,set:Bx,str:Kx,sub:Jx,subtract:Tf,translate:Ux,transpose:vf},Symbol.toStringTag,{value:"Module"}));function Qi(){var t=new Pe(16);return Pe!=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 t2(t){var e=new Pe(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 Ze(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 n2(t,e,n,r,a,s,i,o,u,c,f,l,g,p,y,h){var d=new Pe(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 r2(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 ce(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 Ee(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 ct(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],S=n*o-r*i,T=n*u-a*i,v=n*c-s*i,w=r*u-a*o,C=r*c-s*o,R=a*c-s*u,M=f*h-l*y,m=f*d-g*y,D=f*x-p*y,V=l*d-g*h,L=l*x-p*h,U=g*x-p*d,k=S*U-T*L+v*V+w*D-C*m+R*M;return k?(k=1/k,t[0]=(o*U-u*L+c*V)*k,t[1]=(a*L-r*U-s*V)*k,t[2]=(h*R-d*C+x*w)*k,t[3]=(g*C-l*R-p*w)*k,t[4]=(u*D-i*U-c*m)*k,t[5]=(n*U-a*D+s*m)*k,t[6]=(d*v-y*R-x*T)*k,t[7]=(f*R-g*v+p*T)*k,t[8]=(i*L-o*D+c*M)*k,t[9]=(r*D-n*L-s*M)*k,t[10]=(y*C-h*v+x*S)*k,t[11]=(l*v-f*C-p*S)*k,t[12]=(o*m-i*V-u*M)*k,t[13]=(n*V-r*m+a*M)*k,t[14]=(h*T-y*w-d*S)*k,t[15]=(f*w-l*T+g*S)*k,t):null}function a2(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 s2(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,S=e*o-r*s,T=e*u-a*s,v=n*o-r*i,w=n*u-a*i,C=r*u-a*o,R=c*y-f*p,M=c*h-l*p,m=c*d-g*p,D=f*h-l*y,V=f*d-g*y,L=l*d-g*h;return x*L-S*V+T*D+v*m-w*M+C*R}function je(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],S=e[15],T=n[0],v=n[1],w=n[2],C=n[3];return t[0]=T*r+v*o+w*l+C*h,t[1]=T*a+v*u+w*g+C*d,t[2]=T*s+v*c+w*p+C*x,t[3]=T*i+v*f+w*y+C*S,T=n[4],v=n[5],w=n[6],C=n[7],t[4]=T*r+v*o+w*l+C*h,t[5]=T*a+v*u+w*g+C*d,t[6]=T*s+v*c+w*p+C*x,t[7]=T*i+v*f+w*y+C*S,T=n[8],v=n[9],w=n[10],C=n[11],t[8]=T*r+v*o+w*l+C*h,t[9]=T*a+v*u+w*g+C*d,t[10]=T*s+v*c+w*p+C*x,t[11]=T*i+v*f+w*y+C*S,T=n[12],v=n[13],w=n[14],C=n[15],t[12]=T*r+v*o+w*l+C*h,t[13]=T*a+v*u+w*g+C*d,t[14]=T*s+v*c+w*p+C*x,t[15]=T*i+v*f+w*y+C*S,t}function Be(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 Yn(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 Dt(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,S,T,v,w,C,R,M,m,D,V,L,U,k,Y;return o<pe?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],S=e[7],T=e[8],v=e[9],w=e[10],C=e[11],R=a*a*f+c,M=s*a*f+i*u,m=i*a*f-s*u,D=a*s*f-i*u,V=s*s*f+c,L=i*s*f+a*u,U=a*i*f+s*u,k=s*i*f-a*u,Y=i*i*f+c,t[0]=l*R+h*M+T*m,t[1]=g*R+d*M+v*m,t[2]=p*R+x*M+w*m,t[3]=y*R+S*M+C*m,t[4]=l*D+h*V+T*L,t[5]=g*D+d*V+v*L,t[6]=p*D+x*V+w*L,t[7]=y*D+S*V+C*L,t[8]=l*U+h*k+T*Y,t[9]=g*U+d*k+v*Y,t[10]=p*U+x*k+w*Y,t[11]=y*U+S*k+C*Y,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Zi(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 Ji(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 eo(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 xf(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 Sf(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 Cf(t,e,n){var r=n[0],a=n[1],s=n[2],i=Math.hypot(r,a,s),o,u,c;return i<pe?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 i2(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 o2(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 c2(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 wf(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,S=i*c;return t[0]=1-(p+h),t[1]=l+S,t[2]=g-x,t[3]=0,t[4]=l-S,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 u2(t,e){var n=new Pe(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),wf(t,e,n),t}function f2(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Ef(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 _f(t,e){var n=new Pe(3);Ef(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 Rf(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,S=o*c,T=o*f,v=r[0],w=r[1],C=r[2];return t[0]=(1-(y+d))*v,t[1]=(g+T)*v,t[2]=(p-S)*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+S)*C,t[9]=(h-x)*C,t[10]=(1-(l+y))*C,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function l2(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,S=u*c,T=u*f,v=u*l,w=r[0],C=r[1],R=r[2],M=a[0],m=a[1],D=a[2],V=(1-(h+x))*w,L=(p+v)*w,U=(y-T)*w,k=(p-v)*C,Y=(1-(g+x))*C,q=(d+S)*C,Q=(y+T)*R,ne=(d-S)*R,z=(1-(g+h))*R;return t[0]=V,t[1]=L,t[2]=U,t[3]=0,t[4]=k,t[5]=Y,t[6]=q,t[7]=0,t[8]=Q,t[9]=ne,t[10]=z,t[11]=0,t[12]=n[0]+M-(V*M+k*m+Q*D),t[13]=n[1]+m-(L*M+Y*m+ne*D),t[14]=n[2]+D-(U*M+q*m+z*D),t[15]=1,t}function to(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 g2(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 Df(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 p2=Df;function h2(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 d2(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 Of(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 Mf=Of;function v2(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 Vf(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],S=r[1],T=r[2],v=n[0],w=n[1],C=n[2];return Math.abs(y-v)<pe&&Math.abs(h-w)<pe&&Math.abs(d-C)<pe?ce(t):(f=y-v,l=h-w,g=d-C,p=1/Math.hypot(f,l,g),f*=p,l*=p,g*=p,a=S*g-T*l,s=T*f-x*g,i=x*l-S*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 y2(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 T2(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 x2(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 S2(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 mf(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 C2(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 w2(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 E2(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 _2(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],S=e[0],T=e[1],v=e[2],w=e[3],C=e[4],R=e[5],M=e[6],m=e[7],D=e[8],V=e[9],L=e[10],U=e[11],k=e[12],Y=e[13],q=e[14],Q=e[15];return Math.abs(n-S)<=pe*Math.max(1,Math.abs(n),Math.abs(S))&&Math.abs(r-T)<=pe*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(a-v)<=pe*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-w)<=pe*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(i-C)<=pe*Math.max(1,Math.abs(i),Math.abs(C))&&Math.abs(o-R)<=pe*Math.max(1,Math.abs(o),Math.abs(R))&&Math.abs(u-M)<=pe*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(c-m)<=pe*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(f-D)<=pe*Math.max(1,Math.abs(f),Math.abs(D))&&Math.abs(l-V)<=pe*Math.max(1,Math.abs(l),Math.abs(V))&&Math.abs(g-L)<=pe*Math.max(1,Math.abs(g),Math.abs(L))&&Math.abs(p-U)<=pe*Math.max(1,Math.abs(p),Math.abs(U))&&Math.abs(y-k)<=pe*Math.max(1,Math.abs(y),Math.abs(k))&&Math.abs(h-Y)<=pe*Math.max(1,Math.abs(h),Math.abs(Y))&&Math.abs(d-q)<=pe*Math.max(1,Math.abs(d),Math.abs(q))&&Math.abs(x-Q)<=pe*Math.max(1,Math.abs(x),Math.abs(Q))}var yi=je,R2=mf;const Ti=Object.freeze(Object.defineProperty({__proto__:null,add:S2,adjoint:a2,clone:t2,copy:Ze,create:Qi,determinant:s2,equals:_2,exactEquals:E2,frob:x2,fromQuat:to,fromQuat2:u2,fromRotation:Cf,fromRotationTranslation:wf,fromRotationTranslationScale:Rf,fromRotationTranslationScaleOrigin:l2,fromScaling:Sf,fromTranslation:xf,fromValues:n2,fromXRotation:i2,fromYRotation:o2,fromZRotation:c2,frustum:g2,getRotation:_f,getScaling:Ef,getTranslation:f2,identity:ce,invert:ct,lookAt:Vf,mul:yi,multiply:je,multiplyScalar:C2,multiplyScalarAndAdd:w2,ortho:Mf,orthoNO:Of,orthoZO:v2,perspective:p2,perspectiveFromFieldOfView:d2,perspectiveNO:Df,perspectiveZO:h2,rotate:Dt,rotateX:Zi,rotateY:Ji,rotateZ:eo,scale:Yn,set:r2,str:T2,sub:R2,subtract:mf,targetTo:y2,translate:Be,transpose:Ee},Symbol.toStringTag,{value:"Module"}));function Lf(){var t=new Pe(3);return Pe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function xi(t){var e=t[0],n=t[1],r=t[2];return Math.hypot(e,n,r)}function yc(t,e,n){var r=new Pe(3);return r[0]=t,r[1]=e,r[2]=n,r}function Pt(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function Nr(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function En(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function Tn(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}function D2(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function _n(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 no(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Tr(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 ve(t,e,n){var r=e[0],a=e[1],s=e[2],i=n[3]*r+n[7]*a+n[11]*s+n[15];return i=i||1,t[0]=(n[0]*r+n[4]*a+n[8]*s+n[12])/i,t[1]=(n[1]*r+n[5]*a+n[9]*s+n[13])/i,t[2]=(n[2]*r+n[6]*a+n[10]*s+n[14])/i,t}function Tc(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function xc(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)<=pe*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(r-i)<=pe*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-o)<=pe*Math.max(1,Math.abs(a),Math.abs(o))}var Si=En,Bf=xi;(function(){var t=Lf();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 O2(){var t=new Pe(4);return Pe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function M2(t,e,n,r){var a=new Pe(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=r,a}function V2(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 ga(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=O2();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 qn(){var t=new Pe(4);return Pe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function ro(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 m2(t,e){var n=Math.acos(e[3])*2,r=Math.sin(n/2);return r>pe?(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 Sc(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 Ha(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>pe?(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 L2(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function B2(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 Cc=M2,kf=V2;(function(){var t=Lf(),e=yc(1,0,0),n=yc(0,1,0);return function(r,a,s){var i=no(a,s);return i<-.999999?(Tr(t,e,a),Bf(t)<1e-6&&Tr(t,n,a),_n(t,t),ro(r,t,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Tr(t,a,s),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+i,kf(r,r))}})();(function(){var t=qn(),e=qn();return function(n,r,a,s,i,o){return Ha(t,r,i,o),Ha(e,a,s,o),Ha(n,t,e,2*o*(1-o)),n}})();(function(){var t=df();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],kf(e,B2(e,t))}})();const{vtkErrorMacro:k2}=E,F2=["Build","Render"];function U2(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 k2("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 N2={renderable:null,myFactory:null,children:[],visited:!1};function Ff(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,N2,n),E.obj(t,e),E.event(t,e,"event"),e._renderableChildMap=new Map,E.get(t,e,["visited"]),E.setGet(t,e,["_parent","renderable","myFactory"]),E.getArray(t,e,["children"]),E.moveToProtected(t,e,["parent"]),U2(t,e)}const b2=E.newInstance(Ff,"vtkViewNode");var me={newInstance:b2,extend:Ff,PASS_TYPES:F2};function G2(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 $2={};function Uf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$2,n),E.obj(t,e),G2(t,e)}const W2=E.newInstance(Uf,"vtkViewNodeFactory");var Nf={newInstance:W2,extend:Uf};const bf=Object.create(null);function Wt(t,e){bf[t]=e}function z2(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}const A2={};function Gf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,A2,n),e.overrides=bf,Nf.extend(t,e,n),z2(t,e)}const H2=E.newInstance(Gf,"vtkOpenGLViewNodeFactory");var j2={newInstance:H2,extend:Gf};function K2(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()){Ze(e.keyMatrices.wcvc,e.renderable.getViewMatrix()),Yi(e.keyMatrices.normalMatrix,e.keyMatrices.wcvc),qi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Ee(e.keyMatrices.wcvc,e.keyMatrices.wcvc);const r=e._openGLRenderer.getAspectRatio();Ze(e.keyMatrices.vcpc,e.renderable.getProjectionMatrix(r,-1,1)),Ee(e.keyMatrices.vcpc,e.keyMatrices.vcpc),je(e.keyMatrices.wcpc,e.keyMatrices.vcpc,e.keyMatrices.wcvc),e.keyMatrixTime.modified(),e.lastRenderer=n}return e.keyMatrices}}const P2={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function X2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,P2,n),me.extend(t,e,n),e.keyMatrixTime={},Ke(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},$e(t,e,["context","keyMatrixTime"]),K2(t,e)}const I2=_e(X2);Wt("vtkCamera",I2);const{vtkDebugMacro:Y2}=Qt;function q2(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||(Y2("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 Q2={context:null,_openGLRenderWindow:null,selector:null};function Z2(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Q2,n),me.extend(t,e,n),ut(t,e,["shaderCache"]),$e(t,e,["selector"]),na(t,e,["openGLRenderWindow"]),q2(t,e)}const J2=_e(Z2,"vtkOpenGLRenderer");Wt("vtkRenderer",J2);function eS(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(),Ze(e.keyMatrices.mcwc,e.renderable.getMatrix()),Ee(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.renderable.getIsIdentity()?Zn(e.keyMatrices.normalMatrix):(Yi(e.keyMatrices.normalMatrix,e.keyMatrices.mcwc),qi(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),vf(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),e.keyMatrixTime.modified()),e.keyMatrices)}const tS={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function nS(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tS,n),me.extend(t,e,n),e.keyMatrixTime={},Ke(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:Zn(new Float64Array(9)),mcwc:ce(new Float64Array(16))},$e(t,e,["context"]),ut(t,e,["activeTextures"]),eS(t,e)}const rS=_e(nS);Wt("vtkActor",rS);function aS(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 sS={context:null,activeTextures:null};function iS(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sS,n),me.extend(t,e,n),$e(t,e,["context"]),ut(t,e,["activeTextures"]),aS(t,e)}const oS=_e(iS);Wt("vtkActor2D",oS);var ao={exports:{}};ao.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})(Ct,t,!1)})(ao);var cS=ao.exports,so={exports:{}};so.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})(Ct,t,!1)})(so);var uS=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.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})(Ct,t,!1)})(io);var fS=io.exports,oo={exports:{}};oo.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})(Ct,t,!1)})(oo);var lS=oo.exports,co={exports:{}};co.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=[],S=128;for(l===(l|0)?(p=l,l=null):(l=l+"\0",p=0,S=Math.max(S,l.length)),y=0,h=-32;h<S;++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})(Ct,t,!1)})(co);var gS=co.exports,uo={exports:{}};uo.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})(Ct,t,!1)})(uo);var pS=uo.exports,$f={exports:{}};const hS={},dS=Object.freeze(Object.defineProperty({__proto__:null,default:hS},Symbol.toStringTag,{value:"Module"})),vS=op(dS);(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,C){var R=[];w=w==!0?{entropy:!0}:w||{};var M=x(d(w.entropy?[v,T(n)]:v??S(),3),R),m=new y(R),D=function(){for(var V=m.g(s),L=u,U=0;V<c;)V=(V+U)*a,L*=a,U=m.g(1);for(;V>=f;)V/=2,L/=2,U>>>=1;return(V+U)/L};return D.int32=function(){return m.g(4)|0},D.quick=function(){return m.g(4)/4294967296},D.double=D,x(T(m.S),n),(w.pass||C||function(V,L,U,k){return k&&(k.S&&h(k,m),V.state=function(){return h(m,{})}),U?(r[o]=V,L):V})(D,M,"global"in w?w.global:this==r,w.state)}function y(v){var w,C=v.length,R=this,M=0,m=R.i=R.j=0,D=R.S=[];for(C||(v=[C++]);M<a;)D[M]=M++;for(M=0;M<a;M++)D[M]=D[m=l&m+v[M%C]+(w=D[M])],D[m]=w;(R.g=function(V){for(var L,U=0,k=R.i,Y=R.j,q=R.S;V--;)L=q[k=l&k+1],U=U*a+q[l&(q[k]=q[Y=l&Y+L])+(q[Y]=L)];return R.i=k,R.j=Y,U})(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 C=[],R=typeof v,M;if(w&&R=="object")for(M in v)try{C.push(d(v[M],w-1))}catch{}return C.length?C:R=="string"?v:v+"\0"}function x(v,w){for(var C=v+"",R,M=0;M<C.length;)w[l&M]=l&(R^=w[l&M]*19)+C.charCodeAt(M++);return T(w)}function S(){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,C=w&&w.plugins;return[+new Date,e,C,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=vS}catch{}}else r["seed"+o]=p})(typeof self<"u"?self:Ct,[],Math)})($f);var yS=$f.exports,TS=cS,xS=uS,SS=fS,CS=lS,wS=gS,ES=pS,Or=yS;Or.alea=TS;Or.xor128=xS;Or.xorwow=SS;Or.xorshift7=CS;Or.xor4096=wS;Or.tychei=ES;const _S=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],RS=1e-6,DS=1e-12,{vtkErrorMacro:IL,vtkWarningMacro:wc}=E;function Ci(){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 Le(t){return t/180*Math.PI}function Ir(t){return t*180/Math.PI}const{round:pa,floor:OS,ceil:YL,min:qL,max:QL}=Math;function Lt(t){let e=1;for(;e<t;)e*=2;return e}function ha(t){return t===Lt(t)}function Yr(t,e,n){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n}function et(t,e,n){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n}function Ec(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 ue(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function sn(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 pr(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 on(t){const e=pr(t);return e!==0&&(t[0]/=e,t[1]/=e,t[2]/=e),e}function Vt(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 MS(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function VS(t){const e=MS(t);return e!==0&&(t[0]/=e,t[1]/=e),e}function ja(){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 mS(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:RS;if(t.length!==e.length)return!1;function r(a,s){return Math.abs(a-e[s])<=n}return t.every(r)}const Wf=mS;function Us(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 _c(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]=Us(t[0],n),e[1]=Us(t[1],n),e[2]=Us(t[2],n),e}function LS(t,e,n){let r,a,s,i,o=0,u,c,f;const l=Ci(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 wc("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])<=DS)return wc("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 BS(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 kS(t,e,n){if(n===2){const a=Ci(2),s=ja(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=Ci(n);return LS(t,r,n)===0?0:(BS(t,r,e,n),1)}function da(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 ur(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 FS(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 US(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 NS(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 bS(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 hr(t,e){const n=[0,0,0];bS(t,n),US(n,e)}function wi(t,e){const n=[0,0,0];FS(t,n),NS(n,e)}function fo(t){return t[0]=1,t[1]=-1,t[2]=1,t[3]=-1,t[4]=1,t[5]=-1,t}function Ns(t){return!(t[1]-t[0]<0)}function bs(t,e,n){return t<e?e:t>n?n:t}function Rc(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[0,0,0];return r[0]=bs(t[0],e[0],n[0]),r[1]=bs(t[1],e[1],n[1]),r[2]=bs(t[2],e[2],n[2]),r}const GS=t=>!Number.isFinite(t),{isFinite:ZL,isNaN:$S}=Number,is=$S;function lo(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}const Ei=1e-6,zf="coincide",Af="disjoint";function WS(t,e,n){return t[0]*(n[0]-e[0])+t[1]*(n[1]-e[1])+t[2]*(n[2]-e[2])}function Hf(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 jf(t,e,n,r){const a=[];et(t,e,a);const s=ue(n,a);r[0]=t[0]-s*n[0],r[1]=t[1]-s*n[1],r[2]=t[2]-s*n[2]}function Kf(t,e,n){const r=ue(t,e);let a=ue(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 Pf(t,e,n,r){const a=[];et(t,e,a);const s=ue(n,a),i=ue(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 Xf(t,e,n,r){const a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},s=[],i=[];et(e,t,s),et(n,t,i);const o=ue(r,i),u=ue(r,s);let c,f;return u<0?c=-u:c=u,o<0?f=-o*Ei:f=o*Ei,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 If(t,e,n,r){const a={intersection:!1,l0:[],l1:[],error:null},s=[];sn(e,r,s);const i=s.map(l=>Math.abs(l));if(i[0]+i[1]+i[2]<Ei){const l=[];return et(t,n,l),ue(e,l)===0?a.error=zf:a.error=Af,a}let o;i[0]>i[1]&&i[0]>i[2]?o="x":i[1]>i[2]?o="y":o="z";const u=[],c=-ue(e,t),f=-ue(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,Yr(u,s,a.l1),a.intersection=!0,a}const zS={evaluate:WS,distanceToPlane:Hf,projectPoint:jf,projectVector:Kf,generalizedProjectPoint:Pf,intersectWithLine:Xf,intersectWithPlane:If,DISJOINT:Af,COINCIDE:zf};function AS(t,e){e.classHierarchy.push("vtkPlane"),t.distanceToPlane=n=>Hf(n,e.origin,e.normal),t.projectPoint=(n,r)=>{jf(n,e.origin,e.normal,r)},t.projectVector=(n,r)=>Kf(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)=>{Pf(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)=>Xf(n,r,e.origin,e.normal),t.intersectWithPlane=(n,r)=>If(n,r,e.origin,e.normal)}const HS={normal:[0,0,1],origin:[0,0,0]};function Yf(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,HS,n),E.obj(t,e),E.setGetArray(t,e,["normal","origin"],3),AS(t,e)}const jS=E.newInstance(Yf,"vtkPlane");var Dn={newInstance:jS,extend:Yf,...zS};const Ts=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function qf(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 cn(t){return(t==null?void 0:t.length)>=6&&t[0]<=t[1]&&t[2]<=t[3]&&t[4]<=t[5]}function go(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 po(t){return go(t,Ts)}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 ho(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 Qf(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 Zf(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 Jf(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 el(t,e){return t[0]-=e,t[1]+=e,t[2]-=e,t[3]+=e,t[4]-=e,t[5]+=e,t}function vo(t,e,n,r){return cn(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 yo(t){return[.5*(t[0]+t[1]),.5*(t[2]+t[3]),.5*(t[4]+t[5])]}function KS(t,e,n,r){if(!cn(t))return!1;const a=yo(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],vo(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 zr(t,e){return t[e*2+1]-t[e*2]}function xs(t){return[zr(t,0),zr(t,1),zr(t,2)]}function tl(t){return t.slice(0,2)}function nl(t){return t.slice(2,4)}function rl(t){return t.slice(4,6)}function al(t){const e=xs(t);return e[0]>e[1]?e[0]>e[2]?e[0]:e[2]:e[1]>e[2]?e[1]:e[2]}function sl(t){if(cn(t)){const e=xs(t);return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}return null}function To(t){return[t[0],t[2],t[4]]}function xo(t){return[t[1],t[3],t[5]]}function va(t,e){return t<=0&&e>=0||t>=0&&e<=0}function So(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 il(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 ol(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];const r=So(t,[]);for(let a=0;a<r.length;++a)ve(r[a],r[a],e);return po(n),ho(n,r)}function cl(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 ul(t,e,n,r){const a=[].concat(Ts),s=t.getData();for(let i=0;i<s.length;i+=3){const o=[s[i],s[i+1],s[i+2]],u=ue(o,e);a[0]=Math.min(u,a[0]),a[1]=Math.max(u,a[1]);const c=ue(o,n);a[2]=Math.min(c,a[2]),a[3]=Math.max(c,a[3]);const f=ue(o,r);a[4]=Math.min(f,a[4]),a[5]=Math.max(f,a[5])}return a}function fl(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 ll(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=Dn.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 gl(t,e){if(!(cn(t)&&cn(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(!(cn(t)&&cn(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 PS(t,e){return!(!cs(t,e)||!us(t,...To(e))||!us(t,...xo(e)))}function pl(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++]=Dn.evaluate(n,e,y)}let i=2;for(;i--&&!(va(a[r[i][0]],a[r[i][4]])&&va(a[r[i][1]],a[r[i][5]])&&va(a[r[i][2]],a[r[i][6]])&&va(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 XS{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(Ts))}getBounds(){return this.bounds}equals(e){return qf(this.bounds,e)}isValid(){return cn(this.bounds)}setBounds(e){return go(this.bounds,e)}reset(){return po(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 ho(this.bounds,e)}addBounds(e,n,r,a,s,i){return Qf(this.bounds,e,n,r,a,s,i)}setMinPoint(e,n,r){return Zf(this.bounds,e,n,r)}setMaxPoint(e,n,r){return Jf(this.bounds,e,n,r)}inflate(e){return el(this.bounds,e)}scale(e,n,r){return vo(this.bounds,e,n,r)}getCenter(){return yo(this.bounds)}getLength(e){return zr(this.bounds,e)}getLengths(){return xs(this.bounds)}getMaxLength(){return al(this.bounds)}getDiagonalLength(){return sl(this.bounds)}getMinPoint(){return To(this.bounds)}getMaxPoint(){return xo(this.bounds)}getXRange(){return tl(this.bounds)}getYRange(){return nl(this.bounds)}getZRange(){return rl(this.bounds)}getCorners(e){return So(this.bounds,e)}computeCornerPoints(e,n){return il(this.bounds,e,n)}computeLocalBounds(e,n,r){return ul(this.bounds,e,n,r)}transformBounds(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return ol(this.bounds,e,n)}computeScale3(e){return cl(this.bounds,e)}cutWithPlane(e,n){return pl(this.bounds,e,n)}intersectBox(e,n,r,a){return fl(this.bounds,e,n,r,a)}intersectPlane(e,n){return ll(this.bounds,e,n)}intersect(e){return gl(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 IS(t){const e=t&&t.bounds;return new XS(e)}const YS={equals:qf,isValid:cn,setBounds:go,reset:po,addPoint:os,addPoints:ho,addBounds:Qf,setMinPoint:Zf,setMaxPoint:Jf,inflate:el,scale:vo,scaleAboutCenter:KS,getCenter:yo,getLength:zr,getLengths:xs,getMaxLength:al,getDiagonalLength:sl,getMinPoint:To,getMaxPoint:xo,getXRange:tl,getYRange:nl,getZRange:rl,getCorners:So,computeCornerPoints:il,computeLocalBounds:ul,transformBounds:ol,computeScale3:cl,cutWithPlane:pl,intersectBox:fl,intersectPlane:ll,intersect:gl,intersects:cs,containsPoint:us,contains:PS,INIT_BOUNDS:Ts};var Se={newInstance:IS,...YS};const qS={DISPLAY:0,WORLD:1};var hl={CoordinateSystem:qS};const{CoordinateSystem:_i}=hl;function Dc(t){return()=>E.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function QS(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=Dc("pick"),t.hasKey=Dc("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(_i.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(_i.DISPLAY)}const ZS={allocatedRenderTime:10,coordinateSystem:_i.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function dl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZS,n),E.obj(t,e),E.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),E.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),E.moveToProtected(t,e,["parentProp"]),QS(t,e)}const JS=E.newInstance(dl,"vtkProp");var aa={newInstance:JS,extend:dl,...hl};function eC(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=qn();_f(r,e.rotation);const a=new Float64Array(3),s=m2(a,r);return[Ir(s),a[0],a[1],a[2]]},t.rotateX=r=>{r!==0&&(Zi(e.rotation,e.rotation,Le(r)),t.modified())},t.rotateY=r=>{r!==0&&(Ji(e.rotation,e.rotation,Le(r)),t.modified())},t.rotateZ=r=>{r!==0&&(eo(e.rotation,e.rotation,Le(r)),t.modified())},t.rotateWXYZ=(r,a,s,i)=>{if(r===0||a===0&&s===0&&i===0)return;const o=Le(r),u=qn();ro(u,[a,s,i],o);const c=new Float64Array(16);to(c,u),je(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],ce(e.rotation),t.rotateZ(s),t.rotateX(r),t.rotateY(a),t.modified(),!0),t.setUserMatrix=r=>Wf(e.userMatrix,r)?!1:(Ze(e.userMatrix,r),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){ce(e.matrix),e.userMatrix&&je(e.matrix,e.matrix,e.userMatrix),Be(e.matrix,e.matrix,e.origin),Be(e.matrix,e.matrix,e.position),je(e.matrix,e.matrix,e.rotation),Yn(e.matrix,e.matrix,e.scale),Be(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),Ee(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=()=>Se.getCenter(e.bounds),t.getLength=()=>Se.getLength(e.bounds),t.getXRange=()=>Se.getXRange(e.bounds),t.getYRange=()=>Se.getYRange(e.bounds),t.getZRange=()=>Se.getZRange(e.bounds),t.getUserMatrix=()=>e.userMatrix;function n(){t.computeMatrix()}t.onModified(n)}const tC={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 vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tC,n),aa.extend(t,e,n),e.matrixMTime={},E.obj(e.matrixMTime),E.get(t,e,["bounds","isIdentity"]),E.getArray(t,e,["orientation"]),E.setGetArray(t,e,["origin","position","scale"],3),e.matrix=ce(new Float64Array(16)),e.rotation=ce(new Float64Array(16)),e.userMatrix=ce(new Float64Array(16)),e.transform=null,eC(t,e)}const nC=E.newInstance(vl,"vtkProp3D");var rC={newInstance:nC,extend:vl};const yl={FLAT:0,GOURAUD:1,PHONG:2},Tt={POINTS:0,WIREFRAME:1,SURFACE:2},aC=yl;var Tl={Shading:yl,Representation:Tt,Interpolation:aC};const{Representation:br,Interpolation:Gr}=Tl;function Oc(t){return()=>E.vtkErrorMacro(`vtkProperty::${t} - NOT IMPLEMENTED`)}function sC(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=Oc("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=Oc("AddShaderVariable"),t.setInterpolationToFlat=()=>t.setInterpolation(Gr.FLAT),t.setInterpolationToGouraud=()=>t.setInterpolation(Gr.GOURAUD),t.setInterpolationToPhong=()=>t.setInterpolation(Gr.PHONG),t.getInterpolationAsString=()=>E.enumToString(Gr,e.interpolation),t.setRepresentationToWireframe=()=>t.setRepresentation(br.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(br.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(br.POINTS),t.getRepresentationAsString=()=>E.enumToString(br,e.representation)}const iC={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:Gr.GOURAUD,representation:br.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function xl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iC,n),E.obj(t,e),E.setGet(t,e,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),E.setGetArray(t,e,["ambientColor","specularColor","diffuseColor","edgeColor"],3),sC(t,e)}const oC=E.newInstance(xl,"vtkProperty");var Mr={newInstance:oC,extend:xl,...Tl};const{vtkDebugMacro:cC}=E;function uC(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=Mr.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()){cC("Recomputing bounds..."),e.mapperBounds=r.concat();const a=[];Se.getCorners(r,a),t.computeMatrix();const s=new Float64Array(16);Ee(s,e.matrix),a.forEach(i=>ve(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 fC={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function Sl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,fC,n),rC.extend(t,e,n),e.boundsMTime={},E.obj(e.boundsMTime),E.set(t,e,["property"]),E.setGet(t,e,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),uC(t,e)}const lC=E.newInstance(Sl,"vtkActor");var On={newInstance:lC,extend:Sl};const Cl={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ue={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},gC=Ue.FLOAT;var wl={DefaultDataType:gC,DataTypeByteSize:Cl,VtkDataTypes:Ue};const{vtkErrorMacro:pC}=Qt,{DefaultDataType:hC}=wl,dC=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 vC(){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 El(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 Mc(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 Co(t){return Object.prototype.toString.call(t).slice(8,-1)}function yC(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=pr(r,e);s>n&&(n=s)}return n}const TC={computeRange:El,createRangeHelper:vC,fastComputeRange:Ri,getDataType:Co,getMaxNorm:yC};function xC(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=Rr(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=Mc(e.ranges,e.numberOfComponents)),s=e.ranges[a],s?(e.rangeTuple[0]=s.min,e.rangeTuple[1]=s.max,e.rangeTuple):(s=El(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=Mc(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]:dC;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=()=>Rl({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=Co(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())&&pC("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 SC={name:"",numberOfComponents:1,dataType:hC,rangeTuple:[0,0]};function _l(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,SC,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=Gi(e.dataType,e.values)):e.values=Rr(e.dataType,e.size),e.values&&(e.size=e.size??e.values.length,e.dataType=Co(e.values)),Ke(t,e),ta(t,e,["name","numberOfComponents"]),e.size%e.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");xC(t,e)}const Rl=_e(_l,"vtkDataArray");var de={newInstance:Rl,extend:_l,...TC,...wl};function CC(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}}E.vtkErrorMacro(`Clipping plane index ${r} is out of range.`)}}const wC={clippingPlanes:[]};function EC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wC,n),E.obj(t,e),E.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),CC(t,e)}var Dl={extend:EC};function _C(t,e){t.getBounds=()=>(E.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),lo()),t.getCenter=()=>{var r;const n=t.getBounds();return e.center=Se.isValid(n)?Se.getCenter(n):null,(r=e.center)==null?void 0:r.slice()},t.getLength=()=>{const n=t.getBounds();return Se.getDiagonalLength(n)}}const RC=t=>({bounds:[...Se.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function DC(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RC(n)),Dl.extend(t,e,n),E.setGet(t,e,["viewSpecificProperties"]),_C(t,e)}var OC={extend:DC};const{vtkErrorMacro:Vc,vtkWarningMacro:MC}=E;function VC(t,e){e.classHierarchy.push("vtkFieldData");const n=t.getState;e.arrays&&(e.arrays=e.arrays.map(r=>({data:Gt(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 Vc("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=de.newInstance({name:i.getName(),dataType:i.getDataType(),numberOfComponents:c,values:E.newTypedArray(i.getDataType(),f),size:0}),u.insertTuple(l,i.getTuple(a)),t.addArray(u),r.getAttributes(i).forEach(g=>{t.setAttribute(u,g)})}}})},t.interpolateData=function(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5;r.getArrays().forEach(u=>{const c=t.getFlag(u.getName());if(c!==!1&&!(e.doCopyAllOff&&c!==!0)&&u){let f=t.getArrayByName(u.getName());if(f)if(u.getNumberOfComponents()===f.getNumberOfComponents())if(a>-1&&a<u.getNumberOfTuples()){const l=i>-1?i:a;f.interpolateTuple(l,u,a,u,s,o),MC("Unexpected case in interpolateData")}else f.insertTuples(u.getTuples());else Vc("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=de.newInstance({name:u.getName(),dataType:u.getDataType(),numberOfComponents:l,values:E.newTypedArray(u.getDataType(),g),size:0}),f.interpolateTuple(p,u,a,u,s,o),t.addArray(f),r.getAttributes(u).forEach(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 mC={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function Ol(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mC,n),E.obj(t,e),VC(t,e)}const LC=E.newInstance(Ol,"vtkFieldData");var BC={newInstance:LC,extend:Ol};const kC={SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},FC={MAX:0,EXACT:1,NOLIMIT:2},UC={DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},NC={DUPLICATEPOINT:1,HIDDENPOINT:2},bC={COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},GC="vtkGhostType",fs={DEFAULT:0,SINGLE:1,DOUBLE:2};var Ml={AttributeCopyOperations:bC,AttributeLimitTypes:FC,AttributeTypes:kC,CellGhostTypes:UC,DesiredOutputPrecision:fs,PointGhostTypes:NC,ghostArrayName:GC};const{AttributeTypes:hn,AttributeCopyOperations:Vn}=Ml,{vtkWarningMacro:ya}=E;function $C(t,e){const n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(i){let o=n.find(u=>hn[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 ya(`Cannot set attribute ${u}. The attribute must be a vtkDataArray.`),-1;if(i&&!t.checkNumberOfComponents(i,u))return ya(`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 ya(`Cannot set attribute ${u}. Only vtkDataArray subclasses can be set as active attributes.`),-1;if(!t.checkNumberOfComponents(c,u))return ya(`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[Vn.PASSDATA][hn[u]]=!1},t[`copy${i}On`]=()=>{const u=i.toUpperCase();e.copyAttributeFlags[Vn.PASSDATA][hn[u]]=!0}}),t.initializeAttributeCopyFlags=()=>{e.copyAttributeFlags=[],Object.keys(Vn).filter(i=>i!=="ALLCOPY").forEach(i=>{e.copyAttributeFlags[Vn[i]]=Object.keys(hn).filter(o=>o!=="NUM_ATTRIBUTES").reduce((o,u)=>(o[hn[u]]=!0,o),[])}),e.copyAttributeFlags[Vn.COPYTUPLE][hn.GLOBALIDS]=!1,e.copyAttributeFlags[Vn.INTERPOLATE][hn.GLOBALIDS]=!1,e.copyAttributeFlags[Vn.COPYTUPLE][hn.PEDIGREEIDS]=!1},t.initialize=E.chain(t.initialize,t.initializeAttributeCopyFlags),e.dataArrays&&Object.keys(e.dataArrays).length&&Object.keys(e.dataArrays).forEach(i=>{!e.dataArrays[i].ref&&e.dataArrays[i].type==="vtkDataArray"&&t.addArray(de.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 WC={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function Vl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,WC,n),BC.extend(t,e,n),E.setGet(t,e,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),e.arrays||(e.arrays={}),$C(t,e)}const zC=E.newInstance(Vl,"vtkDataSetAttributes");var mc={newInstance:zC,extend:Vl,...Ml};const AC={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},HC={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 jC={FieldDataTypes:AC,FieldAssociations:HC};const Di=["pointData","cellData","fieldData"];function KC(t,e){e.classHierarchy.push("vtkDataSet"),Di.forEach(r=>{e[r]?e[r]=Gt(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),Di.forEach(s=>{e[s]=mc.newInstance(),e[s].shallowCopy(r.getReferenceByName(s))})}}const PC={};function ml(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,PC,n),E.obj(t,e),E.setGet(t,e,Di),KC(t,e)}const XC=E.newInstance(ml,"vtkDataSet");var Jn={newInstance:XC,extend:ml,...jC};const Ot={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 Ll={StructuredType:Ot};const{StructuredType:Jt}=Ll;function IC(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]?Jt.EMPTY:e===3?Jt.XYZ_GRID:e===2?t[0]===t[1]?Jt.YZ_PLANE:t[2]===t[3]?Jt.XZ_PLANE:Jt.XY_PLANE:e===1?t[0]<t[1]?Jt.X_LINE:t[2]<t[3]?Jt.Y_LINE:Jt.Z_LINE:Jt.SINGLE_POINT}var YC={getDataDescriptionFromExtent:IC,...Ll};const{vtkErrorMacro:mn}=E;function qC(t,e){e.classHierarchy.push("vtkImageData"),t.setExtent=function(){if(e.deleted)return mn("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=YC.getDataDescriptionFromExtent(e.extent),t.modified()),i},t.setDimensions=function(){let n,r,a;if(e.deleted){mn("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{mn("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 mn("Requesting a point from an empty image."),null;const a=new Float64Array(3);switch(e.dataDescription){case Ot.EMPTY:return null;case Ot.SINGLE_POINT:break;case Ot.X_LINE:a[0]=n;break;case Ot.Y_LINE:a[1]=n;break;case Ot.Z_LINE:a[2]=n;break;case Ot.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Ot.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Ot.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Ot.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:mn("Invalid dataDescription");break}const s=[0,0,0];return t.indexToWorld(a,s),s},t.getBounds=()=>t.extentToBounds(t.getSpatialExtent()),t.extentToBounds=n=>Se.transformBounds(n,e.indexToWorld),t.getSpatialExtent=()=>Se.inflate([...e.extent],.5),t.computeTransforms=()=>{xf(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],Yn(e.indexToWorld,e.indexToWorld,e.spacing),ct(e.worldToIndex,e.indexToWorld)},t.indexToWorld=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return ve(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 ve(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 Se.transformBounds(n,e.indexToWorld,r)},t.worldToIndexBounds=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Se.transformBounds(n,e.worldToIndex,r)},t.onModified(t.computeTransforms),t.computeTransforms(),t.getCenter=()=>Se.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];Se.computeCornerPoints(a,s,i),_c(s,s),_c(i,i);const o=t.getDimensions();Rc(s,[0,0,0],[o[0]-1,o[1]-1,o[2]-1],s),Rc(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 C=s[0];C<=i[0];C++){if(!r||r([C,v,T],a)){const R=f[w];R>l&&(l=R),R<g&&(g=R),p+=R*R,y+=R,h+=1}++w}}const d=h>0?y/h:0,x=h?Math.abs(p/h-d*d):0,S=Math.sqrt(x);return{minimum:g,maximum:l,average:d,variance:x,sigma:S,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 mn(`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 mn(`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 QC={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:Ot.EMPTY};function Bl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QC,n),Jn.extend(t,e,n),e.direction?Array.isArray(e.direction)&&(e.direction=new Float64Array(e.direction.slice(0,9))):e.direction=Zn(new Float64Array(9)),e.indexToWorld=new Float64Array(16),e.worldToIndex=new Float64Array(16),E.get(t,e,["indexToWorld","worldToIndex"]),E.setGetArray(t,e,["origin","spacing"],3),E.setGetArray(t,e,["direction"],9),E.getArray(t,e,["extent"],6),qC(t,e)}const ZC=E.newInstance(Bl,"vtkImageData");var JC={newInstance:ZC,extend:Bl};const ew={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},Oi={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var wo={VectorMode:ew,ScalarMappingTarget:Oi};const tw={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},nw={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},rw={BY_ID:0,BY_NAME:1};var Ss={ColorMode:tw,GetArray:rw,ScalarMode:nw};const{ScalarMappingTarget:Lc,VectorMode:jt}=wo,{VtkDataTypes:Ln}=de,{ColorMode:Ta}=Ss,{vtkErrorMacro:Bc}=E;function aw(t){return t}function kc(t){return Math.floor(t*255+.5)}function sw(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(jt.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(jt.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(jt.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r)){if(n&&r&&n.length!==r.length){Bc("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===Ta.DEFAULT&&n.getDataType()===Ln.UNSIGNED_CHAR||r===Ta.DIRECT_SCALARS&&n)i=t.convertToRGBA(n,s,n.getNumberOfTuples());else{const o={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:Ln.UNSIGNED_CHAR},u=E.newTypedArray(o.dataType,4*n.getNumberOfTuples());o.values=u,o.size=u.length,i=de.newInstance(o);let c=a;c<0&&s>1?t.mapVectorsThroughTable(n,i,Lc.RGBA,-1,-1):(c<0&&(c=0),c>=s&&(c=s-1),t.mapScalarsThroughTable(n,i,Lc.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===jt.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===jt.MAGNITUDE&&(f===1||u===1)&&(o=jt.COMPONENT));let l=0;switch(c>0&&(l=c),o){case jt.COMPONENT:{t.mapScalarsThroughTable(n,r,a,l);break}case jt.RGBCOLORS:break;case jt.MAGNITUDE:default:{const g=de.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=kc(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()===Ln.UNSIGNED_CHAR)return n;const i=de.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:Ln.UNSIGNED_CHAR});if(a<=0)return i;s=s>0?s:0,s=s<1?s:1;let o=aw;switch((n.getDataType()===Ln.FLOAT||n.getDataType()===Ln.DOUBLE)&&(o=kc),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 Bc("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===Ta.DEFAULT&&n.getDataType()===Ln.UNSIGNED_CHAR||r===Ta.DIRECT_SCALARS?s===3||s===1?e.alpha>=1:n.getRange(s-1)[0]===255:!0}}const iw={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:jt.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function kl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iw,n),E.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],E.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),E.setArray(t,e,["mappingRange"],2),E.getArray(t,e,["mappingRange"]),sw(t,e)}const ow=E.newInstance(kl,"vtkScalarsToColors");var Cs={newInstance:ow,extend:kl,...wo};const{vtkErrorMacro:Fc}=E,Uc=0,Nc=1,Gs=2;function cw(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+Uc+1.5:s>r.range[1]?a=r.maxIndex+Nc+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+Gs):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+Gs);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===Oi.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===Oi.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,ur(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 Fc("Expected 4 components for RGBA colors"),!1;if(n.getDataType()!==Ue.UNSIGNED_CHAR)return Fc("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+Uc)*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+Nc)*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+Gs)*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 uw={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 Fl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uw,n),Cs.extend(t,e,n),e.table||(e.table=[]),e.buildTime={},E.obj(e.buildTime),e.opaqueFlagBuildTime={},E.obj(e.opaqueFlagBuildTime,{mtime:0}),e.insertTime={},E.obj(e.insertTime,{mtime:0}),E.get(t,e,["buildTime"]),E.setGet(t,e,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),E.setArray(t,e,["alphaRange","hueRange","saturationRange","valueRange"],2),E.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),E.getArray(t,e,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),cw(t,e)}const fw=E.newInstance(Fl,"vtkLookupTable");var $r={newInstance:fw,extend:Fl};let Ul=1,Eo=0;const lw=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function gw(){return Ul}function pw(t){Ul=t}function hw(){return Eo}function ws(){Eo=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0}function dw(){ws(0)}function vw(){ws(0)}function yw(){ws(1)}function Tw(){return lw[Eo]}var Mi={getResolveCoincidentTopologyAsString:Tw,getResolveCoincidentTopologyPolygonOffsetFaces:gw,getResolveCoincidentTopology:hw,setResolveCoincidentTopology:ws,setResolveCoincidentTopologyPolygonOffsetFaces:pw,setResolveCoincidentTopologyToDefault:dw,setResolveCoincidentTopologyToOff:vw,setResolveCoincidentTopologyToPolygonOffset:yw};function Nl(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"],xw={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},zn={};Nl(zn,xw,_o.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function Sw(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),E.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Mi).forEach(n=>{t[n]=Mi[n]}),Object.keys(zn).forEach(n=>{t[n]=zn[n]}),Nl(t,e.topologyOffset,_o.map(n=>({key:n,method:`RelativeCoincidentTopology${n}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const n=zn.getResolveCoincidentTopologyPolygonOffsetParameters(),r=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const n=zn.getResolveCoincidentTopologyLineOffsetParameters(),r=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const n=zn.getResolveCoincidentTopologyPointOffsetParameters(),r=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:n.factor+r.factor,offset:n.offset+r.offset}}}var bl={implementCoincidentTopologyMethods:Sw,staticOffsetAPI:zn,otherStaticMethods:Mi,CATEGORIES:_o};const ot={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var Gl={PassTypes:ot};const{FieldAssociations:bc}=Jn,{staticOffsetAPI:Cw,otherStaticMethods:ww}=bl,{ColorMode:$s,ScalarMode:Bn,GetArray:Ws}=Ss,{VectorMode:Ew}=wo,{VtkDataTypes:_w}=de;function kr(t){return()=>E.vtkErrorMacro(`vtkMapper::${t} - NOT IMPLEMENTED`)}function Rw(t,e){e.classHierarchy.push("vtkMapper"),t.getBounds=()=>{const n=t.getInputData();return n?(e.static||t.update(),e.bounds=n.getBounds()):e.bounds=lo(),e.bounds},t.setForceCompileOnly=n=>{e.forceCompileOnly=n},t.setSelectionWebGLIdsToVTKIds=n=>{e.selectionWebGLIdsToVTKIds=n},t.createDefaultLookupTable=()=>{e.lookupTable=$r.newInstance()},t.getColorModeAsString=()=>E.enumToString($s,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>E.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===Ws.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===Ws.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===Bn.USE_FIELD_DATA){const c=n.getFieldData();a===Ws.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 S=0;S<a;++S){let T=0;for(let C=0;C<s;++C)T+=h[d]*h[d],d++;let v=Math.sqrt(T);f&&(v=$r.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 S=0;S<a;++S){let T=h[d];f&&(T=$r.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&&$r.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=JC.newInstance(),e.colorTextureMap.setExtent(0,o-1,0,1,0,0);const f=de.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=de.newInstance({numberOfComponents:2,values:new Float32Array(u*2)});let c=e.lookupTable.getVectorComponent();e.lookupTable.getVectorMode()===Ew.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===$s.DEFAULT&&a.getDataType()===_w.UNSIGNED_CHAR||e.colorMode===$s.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=kr("AcquireInvertibleLookupTable"),t.valueToColor=kr("ValueToColor"),t.colorToValue=kr("ColorToValue"),t.useInvertibleColorFor=kr("UseInvertibleColorFor"),t.clearInvertibleColor=kr("ClearInvertibleColor"),t.processSelectorPixelBuffers=(n,r)=>{if(!n||!e.selectionWebGLIdsToVTKIds||!e.populateSelectionSettings)return;const a=n.getRawPixelBuffer(ot.ID_LOW24),s=n.getRawPixelBuffer(ot.ID_HIGH24),i=n.getCurrentPass(),o=n.getFieldAssociation();let u=null;o===bc.FIELD_ASSOCIATION_POINTS?u=e.selectionWebGLIdsToVTKIds.points:o===bc.FIELD_ASSOCIATION_CELLS&&(u=e.selectionWebGLIdsToVTKIds.cells),u&&r.forEach(c=>{if(i===ot.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(ot.ID_LOW24);g[c]=l&255,g[c+1]=(l&65280)>>8,g[c+2]=(l&16711680)>>16}else if(i===ot.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(ot.ID_HIGH24);g[c]=(l&4278190080)>>24}})}}const Dw={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 $l(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Dw,n),OC.extend(t,e,n),E.get(t,e,["colorCoordinates","colorMapColors","colorTextureMap","selectionWebGLIdsToVTKIds"]),E.setGet(t,e,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),E.setGetArray(t,e,["scalarRange"],2),bl.implementCoincidentTopologyMethods(t,e),Rw(t,e)}const Ow=E.newInstance($l,"vtkMapper");var qt={newInstance:Ow,extend:$l,...Cw,...ww,...Ss};function Wl(t){let e=0;return t.filter((n,r)=>r===e?(e+=n+1,!0):!1)}function zl(t){let e=0;for(let n=0;n<t.length;)n+=t[n]+1,e++;return e}const Mw={extractCellSizes:Wl,getNumberOfCells:zl};function Vw(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=zl(t.getData())),e.numberOfCells),t.getCellSizes=r=>(e.cellSizes!==void 0&&!r||(e.cellSizes=Wl(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 mw(t){return{empty:!0,numberOfComponents:1,dataType:Ue.UNSIGNED_INT,...t}}function Al(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};de.extend(t,e,mw(n)),Vw(t,e)}const Lw=E.newInstance(Al,"vtkCellArray");var Gc={newInstance:Lw,extend:Al,...Mw};const{vtkErrorMacro:Bw}=E,kw=[1,-1,1,-1,1,-1];function Fw(t,e){e.classHierarchy.push("vtkPoints"),t.getNumberOfPoints=t.getNumberOfTuples,t.setNumberOfPoints=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;t.getNumberOfPoints()!==n&&(e.size=n*r,e.values=E.newTypedArray(e.dataType,e.size),t.setNumberOfComponents(r),t.modified())},t.setPoint=function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;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 Bw(`getBounds called on an array with components of
- ${t.getNumberOfComponents()}`),kw;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 Uw={empty:!0,numberOfComponents:3,dataType:Ue.FLOAT,bounds:[1,-1,1,-1,1,-1]};function Hl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Uw,n),de.extend(t,e,n),Fw(t,e)}const Nw=E.newInstance(Hl,"vtkPoints");var qr={newInstance:Nw,extend:Hl};function bw(t,e){e.classHierarchy.push("vtkCell"),t.initialize=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(r){e.pointsIds=r;let a=e.points.getData();a.length!==3*e.pointsIds.length&&(a=E.newTypedArray(n.getDataType(),3*e.pointsIds.length));const s=n.getData();e.pointsIds.forEach((i,o)=>{let u=3*i,c=3*o;a[c]=s[u],a[++c]=s[++u],a[++c]=s[++u]}),e.points.setData(a)}else{e.points=n,e.pointsIds=new Array(n.getNumberOfPoints());for(let a=n.getNumberOfPoints()-1;a>=0;--a)e.pointsIds[a]=a}},t.getBounds=()=>{const n=e.points.getNumberOfPoints(),r=[];if(n){e.points.getPoint(0,r),e.bounds[0]=r[0],e.bounds[1]=r[0],e.bounds[2]=r[1],e.bounds[3]=r[1],e.bounds[4]=r[2],e.bounds[5]=r[2];for(let a=1;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 fo(e.bounds);return e.bounds},t.getLength2=()=>{t.getBounds();let n=0,r=0;for(let a=0;a<3;a++)r=e.bounds[2*a+1]-e.bounds[2*a],n+=r*r;return n},t.getParametricDistance=n=>{let r,a=0;for(let s=0;s<3;s++)n[s]<0?r=-n[s]:n[s]>1?r=n[s]-1:r=0,r>a&&(a=r);return a},t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.deepCopy=n=>{n.initialize(e.points,e.pointsIds)},t.getCellDimension=()=>{},t.intersectWithLine=(n,r,a,s,i,o,u)=>{},t.evaluatePosition=(n,r,a,s,i,o)=>{E.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const Gw={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function jl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Gw,n),E.obj(t,e),e.points||(e.points=qr.newInstance()),E.get(t,e,["points","pointsIds"]),bw(t,e)}const $w=E.newInstance(jl,"vtkCell");var ls={newInstance:$w,extend:jl};function Ww(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 zw(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=()=>{Ww(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 Aw={array:null,maxId:0,extend:0};function Kl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Aw,n),E.obj(t,e),zw(t,e)}const Hw=E.newInstance(Kl,"vtkCellLinks");var jw={newInstance:Hw,extend:Kl};const Re={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},Vi=["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 Kw(t){return t<Vi.length?Vi[t]:"UnknownClass"}function Pw(t){return Vi.findIndex(t)}function Xw(t){return t<Re.VTK_QUADRATIC_EDGE||t===Re.VTK_CONVEX_POINT_SET||t===Re.VTK_POLYHEDRON}function Iw(t){return t===Re.VTK_TRIANGLE_STRIP||t===Re.VTK_POLY_LINE||t===Re.VTK_POLY_VERTEX}const Yw={getClassNameFromTypeId:Kw,getTypeIdFromClassName:Pw,isLinear:Xw,hasSubCells:Iw};function qw(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]=Re.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 Qw={size:0,maxId:-1,extend:1e3};function Pl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qw,n),E.obj(t,e),E.get(t,e,["size","maxId","extend"]),E.getArray(t,e,["typeArray","locationArray"]),qw(t,e)}const Zw=E.newInstance(Pl,"vtkCellTypes");var Jw={newInstance:Zw,extend:Pl,...Yw};const Xl={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var Il={IntersectionState:Xl};const{IntersectionState:Ka}=Il;function dr(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=ue(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=Vt(i,t),a}function Yl(t,e,n,r,a,s){const i=[],o=[],u=[];a[0]=0,s[0]=0,et(e,t,i),et(r,n,o),et(n,t,u);const c=[ue(i,i),-ue(i,o),-ue(i,o),ue(o,o)],f=[];if(f[0]=ue(i,u),f[1]=-ue(o,u),kS(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=dr(g[d],p[d],y[d]),h.distance<l&&(l=h.distance);return Ka.ON_LINE}return a[0]=f[0],s[0]=f[1],a[0]>=0&&a[0]<=1&&s[0]>=0&&s[0]<=1?Ka.YES_INTERSECTION:Ka.NO_INTERSECTION}const eE={distanceToLine:dr,intersection:Yl};function tE(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=Yl(r,a,f,l,g,p);if(u.t=g[0],u.betweenPoints=n(u.t),o[0]=p[0],y===Ka.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(Vt(i,c)<=s*s)return u.intersect=1,u}else{let h;if(u.t<0)return h=dr(r,f,l,i),h.distance<=s*s&&(u.t=0,u.intersect=1,u.betweenPoints=!0),u;if(u.t>1)return h=dr(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=dr(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=dr(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?(Ha(a,e.orientations[0],e.orientations[1],r[0]),s[0]=1-r[0],s[1]=r[0],!0):!1}const nE={orientations:null};function ql(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nE,n),ls.extend(t,e,n),E.setGet(t,e,["orientations"]),tE(t,e)}const rE=E.newInstance(ql,"vtkLine");var ht={newInstance:rE,extend:ql,...eE,...Il};function aE(t,e){e.classHierarchy.push("vtkPointSet"),e.points?e.points=Gt(e.points):e.points=qr.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=qr.newInstance(),e.points.shallowCopy(r.getPoints())}}const sE={};function Ql(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sE,n),Jn.extend(t,e,n),E.setGet(t,e,["points"]),aE(t,e)}const iE=E.newInstance(Ql,"vtkPointSet");var oE={newInstance:iE,extend:Ql};function Ro(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){Ro(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 cE(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=-ue(l,t),y=-ue(g,r),h=[ue(g,t)+y,ue(g,e)+y,ue(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=[ue(l,r)+p,ue(l,a)+p,ue(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],S=[r,a,s],T=ue(l,g),v=(p-y*T)/(T*T-1),w=(y-p*T)/(T*T-1),C=[v*l[0]+w*g[0],v*l[1]+w*g[1],v*l[2]+w*g[2]],R=sn(l,g,[]);on(R);let M=0,m=0;const D=[],V=[];let L=50,U=50;for(let q=0;q<3;q++){const Q=q,ne=(q+1)%3,z=Dn.intersectWithLine(x[Q],x[ne],r,g);z.intersection&&z.t>0-i&&z.t<1+i&&(z.t<1+i&&z.t>1-i&&(L=M),D[M++]=ue(z.x,R)-ue(C,R));const F=Dn.intersectWithLine(S[Q],S[ne],t,l);F.intersection&&F.t>0-i&&F.t<1+i&&(F.t<1+i&&F.t>1-i&&(U=m),V[m++]=ue(F.x,R)-ue(C,R))}if(M>2){M--;const q=D[2];D[2]=D[L],D[L]=q}if(m>2){m--;const q=V[2];V[2]=V[U],V[U]=q}if(M!==2||m!==2)return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(Number.isNaN(D[0])||Number.isNaN(D[1])||Number.isNaN(V[0])||Number.isNaN(V[1]))return{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f};if(D[0]>D[1]){const q=D[1];D[1]=D[0],D[0]=q}if(V[0]>V[1]){const q=V[1];V[1]=V[0],V[0]=q}let k,Y;return D[1]<V[0]||V[1]<D[0]?{intersect:!1,coplanar:o,pt1:u,pt2:c,surfaceId:f}:(D[0]<V[0]?D[1]<V[1]?(f[0]=2,f[1]=1,k=V[0],Y=D[1]):(f[0]=2,f[1]=2,k=V[0],Y=V[1]):D[1]<V[1]?(f[0]=1,f[1]=1,k=D[0],Y=D[1]):(f[0]=1,f[1]=2,k=D[0],Y=V[1]),Ec(C,R,k,u),Ec(C,R,Y,c),{intersect:!0,coplanar:o,pt1:u,pt2:c,surfaceId:f})}const uE={computeNormalDirection:Ro,computeNormal:gs,intersectWithTriangle:cE};function fE(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=Dn.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=Vt(f,l),d=Vt(l,g),x=Vt(g,f);e.line||(e.line=ht.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 S=e.line.intersectWithLine(n,r,a,s,i);if(o.betweenPoints=S.betweenPoints,o.t=S.t,S.intersect){const T=[],v=[],w=[];for(let C=0;C<3;C++)T[C]=f[C]-g[C],v[C]=l[C]-g[C],w[C]=s[C]-g[C];return i[0]=ue(w,T)/x,i[1]=ue(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,S=0;const T=[];let v,w,C,R=[];const M=[],m=[],D=[];i.subId=0,a[2]=0,e.points.getPoint(1,c),e.points.getPoint(2,f),e.points.getPoint(0,l),Ro(c,f,l,g),Dn.generalizedProjectPoint(n,c,g,D);let V=0;for(o=0;o<3;o++)g[o]<0?p=-g[o]:p=g[o],p>V&&(V=p,S=o);for(u=0,o=0;o<3;o++)o!==S&&(T[u++]=o);for(o=0;o<2;o++)y[o]=D[T[o]]-l[T[o]],h[o]=c[T[o]]-l[T[o]],d[o]=f[T[o]]-l[T[o]];if(x=ja(h,d),x===0)return a[0]=0,a[1]=0,i.evaluation=-1,i;if(a[0]=ja(y,d)/x,a[1]=ja(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=Vt(D,n),r[0]=D[0],r[1]=D[1],r[2]=D[2]),i.evaluation=1;else{let L;if(r){if(s[1]<0&&s[2]<0)for(v=Vt(n,l),w=ht.distanceToLine(n,c,l,L,M),C=ht.distanceToLine(n,l,f,L,m),v<w?(i.dist2=v,R=l):(i.dist2=w,R=M),C<i.dist2&&(i.dist2=C,R=m),o=0;o<3;o++)r[o]=R[o];else if(s[2]<0&&s[0]<0)for(v=Vt(n,c),w=ht.distanceToLine(n,c,l,L,M),C=ht.distanceToLine(n,c,f,L,m),v<w?(i.dist2=v,R=c):(i.dist2=w,R=M),C<i.dist2&&(i.dist2=C,R=m),o=0;o<3;o++)r[o]=R[o];else if(s[1]<0&&s[0]<0)for(v=Vt(n,f),w=ht.distanceToLine(n,f,l,L,M),C=ht.distanceToLine(n,c,f,L,m),v<w?(i.dist2=v,R=f):(i.dist2=w,R=M),C<i.dist2&&(i.dist2=C,R=m),o=0;o<3;o++)r[o]=R[o];else if(s[0]<0){const U=ht.distanceToLine(n,c,f,r);i.dist2=U.distance}else if(s[1]<0){const U=ht.distanceToLine(n,f,l,r);i.dist2=U.distance}else if(s[2]<0){const U=ht.distanceToLine(n,c,l,r);i.dist2=U.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 lE={};function Zl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lE,n),ls.extend(t,e,n),fE(t,e)}const gE=E.newInstance(Zl,"vtkTriangle");var pE={newInstance:gE,extend:Zl,...uE};const zs=["verts","lines","polys","strips"],{vtkWarningMacro:$c}=E,hE={[Re.VTK_LINE]:ht,[Re.VTK_POLY_LINE]:ht,[Re.VTK_TRIANGLE]:pE};function dE(t,e){e.classHierarchy.push("vtkPolyData");function n(a){return a.replace(/(?:^\w|[A-Z]|\b\w)/g,s=>s.toUpperCase()).replace(/\s+/g,"")}zs.forEach(a=>{t[`getNumberOf${n(a)}`]=()=>e[a].getNumberOfCells(),e[a]?e[a]=Gt(e[a]):e[a]=Gc.newInstance()}),t.getNumberOfCells=()=>zs.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),zs.forEach(i=>{e[i]=Gc.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?Re.VTK_POLY_VERTEX:Re.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?Re.VTK_POLY_LINE:Re.VTK_LINE,y===1&&$c("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]=Re.VTK_TRIANGLE;break;case 4:f[h]=Re.VTK_QUAD;break;default:f[h]=Re.VTK_POLYGON;break}y<3&&$c("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(Re.VTK_TRIANGLE_STRIP,0,o),e.strips.getCellSizes().forEach((y,h)=>{g[h]=p,p+=y+1})}e.cells=Jw.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=jw.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 Re.VTK_VERTEX:case Re.VTK_POLY_VERTEX:i=e.verts;break;case Re.VTK_LINE:case Re.VTK_POLY_LINE:i=e.lines;break;case Re.VTK_TRIANGLE:case Re.VTK_QUAD:case Re.VTK_POLYGON:i=e.polys;break;case Re.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||hE[i.cellType].newInstance();return o.initialize(t.getPoints(),i.cellPointIds),o}}const vE={};function Jl(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vE,n),oE.extend(t,e,n),E.get(t,e,["cells","links"]),E.setGet(t,e,["verts","lines","polys","strips"]),dE(t,e)}const yE=E.newInstance(Jl,"vtkPolyData");var nt={newInstance:yE,extend:Jl};function TE(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 xE=(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 S=0;S<l.length;S+=u){S%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[S+T]=v}d+=2*u}let x=[...l];for(let S=0;S<l.length;S+=u)for(let T=0;T<u;T++){let v=-(i.length-1)/2,w=o,C=0;for(let R=0;R<i.length;R++){let M=S+T+v*u;const m=M%h-(S+T)%h;m>u&&(M+=h),m<-u&&(M-=h),x[M]?C+=x[M]*i[R]:w-=i[R],v+=1}l[S+T]=C/w}x=[...l];for(let S=0;S<l.length;S+=u)for(let T=0;T<u;T++){let v=-(i.length-1)/2,w=o,C=0;for(let R=0;R<i.length;R++){const M=S+T+v*h;x[M]?C+=x[M]*i[R]:w-=i[R],v+=1}l[S+T]=C/w}g.push(l)}return g},SE={image:null,canvas:null,jsImageData:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function eg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SE,n),E.obj(t,e),E.algo(t,e,6,0),E.get(t,e,["canvas","image","jsImageData","imageLoaded","resizable"]),E.setGet(t,e,["repeat","edgeClamp","interpolate","mipLevel"]),TE(t,e)}const CE=E.newInstance(eg,"vtkTexture"),wE={generateMipmaps:xE};var Es={newInstance:CE,extend:eg,...wE};const EE=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Wc=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],xa=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],zc=[0,1,0,1,0,1,0,1,2,2,2,2],De=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],se=new Float64Array(3),Sa=new Float64Array(3),ye=new Float64Array(3),An=new Float64Array(3),kn=new Float64Array(3),Ca=new Float64Array(3),As=new Float64Array(16);function Hs(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function _E(t,e){e.classHierarchy.push("vtkCubeAxesActorHelper"),t.setRenderable=n=>{e.renderable!==n&&(e.renderable=n,e.tmActor.addTexture(e.renderable.getTmTexture()),e.tmActor.setProperty(n.getProperty()),e.tmActor.setParentProp(n),t.modified())},t.createPolyDataForOneLabel=(n,r,a,s,i,o,u)=>{const c=e.renderable.get_tmAtlas().get(n);if(!c)return;const f=e.renderable.getTextPolyData().getPoints().getData(),l=e.lastSize;se[0]=f[r*3],se[1]=f[r*3+1],se[2]=f[r*3+2],ve(ye,se,a),ye[0]+=.1,ve(Sa,ye,s),En(kn,Sa,se),ye[0]-=.1,ye[1]+=.1,ve(Sa,ye,s),En(Ca,Sa,se);for(let y=0;y<3;y++)kn[y]/=.5*.1*l[0],Ca[y]/=.5*.1*l[1];let g=u.ptIdx,p=u.cellIdx;se[0]=f[r*3],se[1]=f[r*3+1],se[2]=f[r*3+2],i[0]<-.5?Tn(ye,kn,i[0]*o-c.width):i[0]>.5?Tn(ye,kn,i[0]*o):Tn(ye,kn,i[0]*o-c.width/2),Nr(se,se,ye),Tn(ye,Ca,i[1]*o-c.height/2),Nr(se,se,ye),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[0],u.tcoords[g*2+1]=c.tcoords[1],g++,Tn(ye,kn,c.width),Nr(se,se,ye),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[2],u.tcoords[g*2+1]=c.tcoords[3],g++,Tn(ye,Ca,c.height),Nr(se,se,ye),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[4],u.tcoords[g*2+1]=c.tcoords[5],g++,Tn(ye,kn,c.width),En(se,se,ye),u.points[g*3]=se[0],u.points[g*3+1]=se[1],u.points[g*3+2]=se[2],u.tcoords[g*2]=c.tcoords[6],u.tcoords[g*2+1]=c.tcoords[7],g++,u.polys[p*4]=3,u.polys[p*4+1]=g-4,u.polys[p*4+2]=g-3,u.polys[p*4+3]=g-2,p++,u.polys[p*4]=3,u.polys[p*4+1]=g-4,u.polys[p*4+2]=g-2,u.polys[p*4+3]=g-1,u.ptIdx+=4,u.cellIdx+=2},t.updateTexturePolyData=()=>{const n=e.camera.getCompositeProjectionMatrix(e.lastAspectRatio,-1,1);Ee(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);ct(As,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;){se[0]=p[f*3],se[1]=p[f*3+1],se[2]=p[f*3+2],ve(ye,se,n),se[0]=p[f*3+3],se[1]=p[f*3+4],se[2]=p[f*3+5],ve(An,se,n),En(ye,ye,An);const d=[ye[0],ye[1]];VS(d),t.createPolyDataForOneLabel(y[l],f,n,As,d,e.renderable.getAxisTitlePixelOffset(),c),f+=2,l++;for(let x=0;x<e.renderable.getTickCounts()[g];x++)t.createPolyDataForOneLabel(y[l],f,n,As,d,e.renderable.getTickLabelPixelOffset(),c),f++,l++;g++}const h=de.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 RE=E.newInstance(function(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),E.obj(t,e),e.tmPolyData=nt.newInstance(),e.tmMapper=qt.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmActor=On.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),E.setGet(t,e,["renderable"]),E.get(t,e,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),e.forceUpdate=!1,e.lastRedrawTime={},E.obj(e.lastRedrawTime,{mtime:0}),e.lastRebuildTime={},E.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.lastTickBounds=[],_E(t,e)},"vtkCubeAxesActorHelper");function DE(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();Ee(r,r);let a=!1;const s=Se.getDiagonalLength(e.dataBounds),i=Math.sin(e.faceVisibilityAngle*Math.PI/180);for(let o=0;o<6;o++){let u=!1;const c=Math.floor(o/2),f=(c+1)%3,l=(c+2)%3;e.dataBounds[f*2]!==e.dataBounds[f*2+1]&&e.dataBounds[l*2]!==e.dataBounds[l*2+1]&&(se[c]=e.dataBounds[o]-.1*s*EE[o][c],se[f]=.5*(e.dataBounds[f*2]+e.dataBounds[f*2+1]),se[l]=.5*(e.dataBounds[l*2]+e.dataBounds[l*2+1]),ve(ye,se,r),se[c]=e.dataBounds[o],ve(An,se,r),En(ye,An,ye),_n(ye,ye),u=ye[2]>i,e.camera.getParallelProjection()||(_n(An,An),u=no(An,ye)>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[De[p][0]].length*2+s[De[p][1]].length*2,o+=s[De[p][0]].length+s[De[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]=xa[p][0],f[g*3+2]=xa[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[De[p][0]];for(let d=0;d<h.length;d++)c[l*3+y]=e.dataBounds[p],c[l*3+De[p][0]]=h[d],c[l*3+De[p][1]]=e.dataBounds[De[p][1]*2],l++,c[l*3+y]=e.dataBounds[p],c[l*3+De[p][0]]=h[d],c[l*3+De[p][1]]=e.dataBounds[De[p][1]*2+1],l++,f[g*3]=2,f[g*3+1]=l-2,f[g*3+2]=l-1,g++;h=s[De[p][1]];for(let d=0;d<h.length;d++)c[l*3+y]=e.dataBounds[p],c[l*3+De[p][1]]=h[d],c[l*3+De[p][0]]=e.dataBounds[De[p][0]*2],l++,c[l*3+y]=e.dataBounds[p],c[l*3+De[p][1]]=h[d],c[l*3+De[p][0]]=e.dataBounds[De[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[zc[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=Wc[p][y];if(a[h]===1){const d=zc[h],x=xa[h][0]*3,S=xa[h][1]*3;c[f*3]=.5*(u[x]+u[S]),c[f*3+1]=.5*(u[x+1]+u[S+1]),c[f*3+2]=.5*(u[x+2]+u[S+2]),f++;const T=Math.floor(p/2);c[f*3+T]=e.dataBounds[p],c[f*3+De[p][0]]=.5*(e.dataBounds[De[p][0]*2]+e.dataBounds[De[p][0]*2+1]),c[f*3+De[p][1]]=.5*(e.dataBounds[De[p][1]*2]+e.dataBounds[De[p][1]*2+1]),f++,e.textValues[l]=e.axisLabels[d],l++;const v=(d+1)%3,w=(d+2)%3,C=s[d],R=i[d];e.tickCounts[g]=C.length;for(let M=0;M<C.length;M++)c[f*3+d]=C[M],c[f*3+v]=u[x+v],c[f*3+w]=u[x+w],f++,e.textValues[l]=R[M],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[Wc[c][f]]++;const o=[],u=[];for(let c=0;c<3;c++){const f=ys().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])){Hs(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)}Hs(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=Lt(a),s=Lt(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)=>{Hs(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(),Se.setBounds(e.bounds,e.gridActor.getBounds()),Se.scaleAboutCenter(e.bounds,e.boundsScaleFactor,e.boundsScaleFactor,e.boundsScaleFactor),e.bounds);const n=E.chain(t.setProperty,e.gridActor.setProperty);t.setProperty=r=>n(r)[0]}function OE(t){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Se.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 tg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OE(n)),On.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=Es.newInstance(),e.tmTexture.setInterpolate(!1),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),e.gridMapper=qt.newInstance(),e.polyData=nt.newInstance(),e.gridMapper.setInputData(e.polyData),e.gridActor=On.newInstance(),e.gridActor.setMapper(e.gridMapper),e.gridActor.setProperty(t.getProperty()),e.gridActor.setParentProp(t),e.textPolyData=nt.newInstance(),E.setGet(t,e,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset"]),E.setGetArray(t,e,["dataBounds"],6),E.setGetArray(t,e,["axisLabels"],3),E.get(t,e,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),DE(t,e)}const ME=E.newInstance(tg,"vtkCubeAxesActor");var ng={newInstance:ME,extend:tg,newCubeAxesActorHelper:RE};function VE(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 mE={};function LE(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mE,n),me.extend(t,e,n),e.CubeAxesActorHelper=ng.newCubeAxesActorHelper(),VE(t,e)}const BE=_e(LE,"vtkOpenGLCubeAxesActor");Wt("vtkCubeAxesActor",BE);const Ar={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var rg={ObjectType:Ar};const{ObjectType:Pa}=rg,kE={};function FE(t,e){e.classHierarchy.push("vtkOpenGLBufferObject");function n(o){switch(o){case Pa.ELEMENT_ARRAY_BUFFER:return e.context.ELEMENT_ARRAY_BUFFER;case Pa.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in e.context)return e.context.TEXTURE_BUFFER;case Pa.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 UE={objectType:Pa.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,UE,n),E.obj(t,e),E.get(t,e,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),E.moveToProtected(t,e,["openGLRenderWindow"]),FE(t,e)}const NE=E.newInstance(ag);var sg={newInstance:NE,extend:ag,...kE,...rg};const{vtkErrorMacro:Ac}=E;function bE(t,e){const n=new Float64Array(3);D2(n,e);const r=new Float64Array(16);return Rf(r,qn(),t,n),r}function GE(t,e){return t===null||e===null?!1:!(Tc(t,[0,0,0])&&Tc(e,[1,1,1]))}function $E(t,e){e.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),t.setType(Ar.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(z=>{z&&(e.customData.push({data:z.getData(),offset:4*e.blockSize,components:z.getNumberOfComponents(),name:z.getName()}),e.blockSize+=z.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=sg.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,S=0,T;const v={anythingToPoints(z,F,K){for(let P=0;P<z;++P)T(F[K+P])},linesToWireframe(z,F,K){for(let P=0;P<z-1;++P)T(F[K+P]),T(F[K+P+1])},polysToWireframe(z,F,K){if(z>2)for(let P=0;P<z;++P)T(F[K+P]),T(F[K+(P+1)%z])},stripsToWireframe(z,F,K){if(z>2){for(let P=0;P<z-1;++P)T(F[K+P]),T(F[K+P+1]);for(let P=0;P<z-2;P++)T(F[K+P]),T(F[K+P+2])}},polysToSurface(z,F,K){for(let P=0;P<z-2;P++)T(F[K+0]),T(F[K+P+1]),T(F[K+P+2])},stripsToSurface(z,F,K){for(let P=0;P<z-2;P++)T(F[K+P]),T(F[K+P+1+P%2]),T(F[K+P+1+(P+1)%2])}},w={anythingToPoints(z,F){return z},linesToWireframe(z,F){return z>1?(z-1)*2:0},polysToWireframe(z,F){return z>2?z*2:0},stripsToWireframe(z,F){return z>2?z*4-6:0},polysToSurface(z,F){return z>2?(z-2)*3:0},stripsToSurface(z,F,K){return z>2?(z-2)*3:0}};let C=null,R=null;a===Tt.POINTS||r==="verts"?(C=v.anythingToPoints,R=w.anythingToPoints):a===Tt.WIREFRAME||r==="lines"?(C=v[`${r}ToWireframe`],R=w[`${r}ToWireframe`]):(C=v[`${r}ToSurface`],R=w[`${r}ToSurface`]);const M=n.getData(),m=M.length;let D=0;for(let z=0;z<m;)D+=R(M[z],M),z+=M[z]+1;let V=null;const L=new Float32Array(D*e.blockSize);f&&(V=new Uint8Array(D*4));let U=0,k=0,Y=0,q=0;for(let z=0;z<3;++z){const F=s.points.getRange(z),K=F[1]-F[0];Y+=K*K;const P=.5*(F[1]+F[0]);q+=P*P}if(Y>0&&(Math.abs(q)/Y>1e6||Math.abs(Math.log10(Y))>3||Y===0&&q>1e6)){const z=new Float64Array(3),F=new Float64Array(3);for(let K=0;K<3;++K){const P=s.points.getRange(K),X=P[1]-P[0];z[K]=.5*(P[1]+P[0]),F[K]=X>0?1/X:1}t.setCoordShiftAndScale(z,F)}else e.coordShiftAndScaleEnabled===!0&&t.setCoordShiftAndScale(null,null);if(i)if(!i.points&&!i.cells)i.points=new Int32Array(D),i.cells=new Int32Array(D);else{const z=new Int32Array(D+i.points.length);z.set(i.points),i.points=z;const F=new Int32Array(D+i.cells.length);F.set(i.cells),i.cells=F}let ne=s.vertexOffset;T=function(F){if(i&&(i.points[ne]=F,i.cells[ne]=S+s.cellOffset),++ne,p=F*3,e.coordShiftAndScaleEnabled?(L[U++]=(o[p++]-e.coordShift[0])*e.coordScale[0],L[U++]=(o[p++]-e.coordShift[1])*e.coordScale[1],L[U++]=(o[p++]-e.coordShift[2])*e.coordScale[2]):(L[U++]=o[p++],L[U++]=o[p++],L[U++]=o[p++]),u!==null&&(s.haveCellNormals?y=(S+s.cellOffset)*3:y=F*3,L[U++]=u[y++],L[U++]=u[y++],L[U++]=u[y++]),e.customData.forEach(K=>{x=F*K.components;for(let P=0;P<K.components;++P)L[U++]=K.data[x++]}),c!==null){h=F*g;for(let K=0;K<g;++K)L[U++]=c[h++]}f!==null&&(s.haveCellScalars?d=(S+s.cellOffset)*l:d=F*l,V[k++]=f[d++],V[k++]=f[d++],V[k++]=f[d++],V[k++]=l===4?f[d++]:255)};for(let z=0;z<m;)C(M[z],M,z+1),z+=M[z]+1,S++;return e.elementCount=D,t.upload(L,Ar.ARRAY_BUFFER),e.colorBO&&(e.colorBOStride=4,e.colorBO.upload(V,Ar.ARRAY_BUFFER)),S},t.setCoordShiftAndScale=(n,r)=>{if(n!==null&&(n.constructor!==Float64Array||n.length!==3)){Ac("Wrong type for coordShift, expected vec3 or null");return}if(r!==null&&(r.constructor!==Float64Array||r.length!==3)){Ac("Wrong type for coordScale, expected vec3 or null");return}(e.coordShift===null||n===null||!xc(n,e.coordShift))&&(e.coordShift=n),(e.coordScale===null||r===null||!xc(r,e.coordScale))&&(e.coordScale=r),e.coordShiftAndScaleEnabled=GE(e.coordShift,e.coordScale),e.coordShiftAndScaleEnabled?e.inverseShiftAndScaleMatrix=bE(e.coordShift,e.coordScale):e.inverseShiftAndScaleMatrix=null}}const WE={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 ig(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,WE,n),sg.extend(t,e,n),E.setGet(t,e,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),E.get(t,e,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),$E(t,e)}const zE=E.newInstance(ig);var AE={newInstance:zE,extend:ig};const{vtkErrorMacro:HE}=E;function jE(t,e){e.classHierarchy.push("vtkShader"),t.compile=()=>{let n=e.context.VERTEX_SHADER;if(!e.source||!e.source.length||e.shaderType==="Unknown")return!1;switch(e.handle!==0&&(e.context.deleteShader(e.handle),e.handle=0),e.shaderType){case"Fragment":n=e.context.FRAGMENT_SHADER;break;case"Vertex":default:n=e.context.VERTEX_SHADER;break}if(e.handle=e.context.createShader(n),e.context.shaderSource(e.handle,e.source),e.context.compileShader(e.handle),!e.context.getShaderParameter(e.handle,e.context.COMPILE_STATUS)){const a=e.context.getShaderInfoLog(e.handle);return HE(`Error compiling shader '${e.source}': ${a}`),e.context.deleteShader(e.handle),e.handle=0,!1}return!0},t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(e.context.deleteShader(e.handle),e.handle=0,e.dirty=!0)}}const KE={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function og(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KE,n),E.obj(t,e),E.setGet(t,e,["shaderType","source","error","handle","context"]),jE(t,e)}const PE=E.newInstance(og,"vtkShader");var js={newInstance:PE,extend:og};const{vtkErrorMacro:At}=E;function XE(t,e,n,r){const a=typeof n=="string"?n:n.join(`
- `),s=r===!1?e:new RegExp(e,"g"),i=t.replace(s,a);return{replace:i!==a,result:i}}function IE(t,e){e.classHierarchy.push("vtkShaderProgram"),t.compileShader=()=>e.vertexShader.compile()?e.fragmentShader.compile()?!t.attachShader(e.vertexShader)||!t.attachShader(e.fragmentShader)?(At(e.error),0):t.link()?(t.setCompiled(!0),1):(At(`Links failed: ${e.error}`),0):(At(e.fragmentShader.getSource().split(`
- `).map((n,r)=>`${r}: ${n}`).join(`
- `)),At(e.fragmentShader.getError()),0):(At(e.vertexShader.getSource().split(`
- `).map((n,r)=>`${r}: ${n}`).join(`
- `)),At(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 At(`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):(At("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 At("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 YE={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 cg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YE,n),e.attributesLocs={},e.uniformLocs={},e.vertexShader=js.newInstance(),e.vertexShader.setShaderType("Vertex"),e.fragmentShader=js.newInstance(),e.fragmentShader.setShaderType("Fragment"),e.geometryShader=js.newInstance(),e.geometryShader.setShaderType("Geometry"),E.obj(t,e),E.get(t,e,["lastCameraMTime"]),E.setGet(t,e,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),IE(t,e)}const qE=E.newInstance(cg,"vtkShaderProgram");var A={newInstance:qE,extend:cg,substitute:XE};function QE(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()!==Ar.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 S=0;S<d.attributes.length;++S)d.attributes[S].name===a&&(x=!0,d.attributes[S]=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 ZE={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function ug(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZE,n),e.buffers=[],E.obj(t,e),E.get(t,e,["supported"]),E.setGet(t,e,["forceEmulation"]),QE(t,e)}const JE=E.newInstance(ug,"vtkOpenGLVertexArrayObject");var fg={newInstance:JE,extend:ug};const xn={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function e_(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===Tt.POINTS||r===xn.Points?e.context.POINTS:n===Tt.WIREFRAME||r===xn.Lines||r===xn.TrisEdges||r===xn.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===xn.Points||r.getProperty().getRepresentation()===Tt.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=A.substitute(s,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,s=A.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=A.substitute(s,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,s=A.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===xn.Points?2:e.primitiveType===xn.Lines?4:6,t.getAllocatedGPUMemoryInBytes=()=>t.getCABO().getAllocatedGPUMemoryInBytes()}const t_={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function lg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,t_,n),E.obj(t,e),e.shaderSourceTime={},E.obj(e.shaderSourceTime),e.attributeUpdateTime={},E.obj(e.attributeUpdateTime),E.setGet(t,e,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),e.program=A.newInstance(),e.VAO=fg.newInstance(),e.CABO=AE.newInstance(),e_(t,e)}const n_=E.newInstance(lg);var Vr={newInstance:n_,extend:lg,primTypes:xn};const r_={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},mi={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var gg={Wrap:r_,Filter:mi};const pg=new Float32Array(1),a_=new Int32Array(pg.buffer);function s_(t){pg[0]=t;const e=a_[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 i_(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 Nt={fromHalf:i_,toHalf:s_};const{Wrap:nn,Filter:Qe}=gg,{VtkDataTypes:ge}=de,{vtkDebugMacro:Ks,vtkErrorMacro:rr,vtkWarningMacro:Hc}=Qt,{toHalf:o_}=Nt;function c_(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(Qe.LINEAR_MIPMAP_LINEAR):t.setMinificationFilter(Qe.LINEAR),t.setMagnificationFilter(Qe.LINEAR)):(t.setMinificationFilter(Qe.NEAREST),t.setMagnificationFilter(Qe.NEAREST)),e.renderable.getRepeat()&&(t.setWrapR(nn.REPEAT),t.setWrapS(nn.REPEAT),t.setWrapT(nn.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(Qe.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(Qe.LINEAR_MIPMAP_LINEAR));const l=e.renderable.getCanvas();t.create2DFromRaw(l.width,l.height,4,ge.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(Qe.LINEAR_MIPMAP_LINEAR)),t.create2DFromRaw(l.width,l.height,4,ge.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(Qe.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:Hc("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||Ks(`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")&&Hc("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||(Ks("Unsupported internal texture type!"),Ks(`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 ge.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case(e.oglNorm16Ext&&!e.useHalfFloat&&ge.SHORT):return e.context.SHORT;case(e.oglNorm16Ext&&!e.useHalfFloat&&ge.UNSIGNED_SHORT):return e.context.UNSIGNED_SHORT;case(e.useHalfFloat&&ge.SHORT):return e.context.HALF_FLOAT;case(e.useHalfFloat&&ge.UNSIGNED_SHORT):return e.context.HALF_FLOAT;case ge.FLOAT:case ge.VOID:default:return e.context.FLOAT}switch(c){case ge.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case ge.FLOAT:case ge.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 Qe.NEAREST:return e.context.NEAREST;case Qe.LINEAR:return e.context.LINEAR;case Qe.NEAREST_MIPMAP_NEAREST:return e.context.NEAREST_MIPMAP_NEAREST;case Qe.NEAREST_MIPMAP_LINEAR:return e.context.NEAREST_MIPMAP_LINEAR;case Qe.LINEAR_MIPMAP_NEAREST:return e.context.LINEAR_MIPMAP_NEAREST;case Qe.LINEAR_MIPMAP_LINEAR:return e.context.LINEAR_MIPMAP_LINEAR;default:return e.context.NEAREST}},t.getOpenGLWrapMode=c=>{switch(c){case nn.CLAMP_TO_EDGE:return e.context.CLAMP_TO_EDGE;case nn.REPEAT:return e.context.REPEAT;case nn.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!==ge.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!==ge.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 S=0;S<p;S++)d[S]=o_(x[S]);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&&(!ha(l)||!ha(g))){const y=e.context.getExtension("OES_texture_half_float"),h=Lt(l),d=Lt(g),x=h*d*e.components;for(let S=0;S<c.length;S++)if(c[S]!==null){let T=null;const v=g/d,w=l/h;let C=!1;e.openGLDataType===e.context.FLOAT?T=new Float32Array(x):y&&e.openGLDataType===y.HALF_FLOAT_OES?(T=new Uint16Array(x),C=!0):T=new Uint8Array(x);for(let R=0;R<d;R++){const M=R*h*p,m=R*v;let D=Math.floor(m),V=Math.ceil(m);V>=g&&(V=g-1);const L=m-D,U=1-L;D=D*l*p,V=V*l*p;for(let k=0;k<h;k++){const Y=k*p,q=k*w;let Q=Math.floor(q),ne=Math.ceil(q);ne>=l&&(ne=l-1);const z=q-Q;Q*=p,ne*=p;for(let F=0;F<p;F++)C?T[M+Y+F]=Nt.toHalf(Nt.fromHalf(c[S][D+Q+F])*U*(1-z)+Nt.fromHalf(c[S][D+ne+F])*U*z+Nt.fromHalf(c[S][V+Q+F])*L*(1-z)+Nt.fromHalf(c[S][V+ne+F])*L*z):T[M+Y+F]=c[S][D+Q+F]*U*(1-z)+c[S][D+ne+F]*U*z+c[S][V+Q+F]*L*(1-z)+c[S][V+ne+F]*L*z}}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===ge.UNSIGNED_SHORT||c===ge.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 rr("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 rr("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,S=e.height;for(let T=0;T<h.length;T++){T%6===0&&T!==0&&(x/=2,S/=2),d[T]=Rr(g,S*x*e.components);for(let v=0;v<S;++v){const w=v*x*e.components,C=(S-v-1)*x*e.components;d[T].set(h[T].slice(C,C+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,C=e.height;for(;w>=1&&C>=1;){let R=null;v<=e.maxLevel&&(R=d[6*v+T]),a(g)?R!=null&&e.context.texSubImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+T,v,0,0,w,C,e.format,e.openGLDataType,R):e.context.texImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+T,v,e.internalFormat,w,C,0,e.format,e.openGLDataType,R),v++,w/=2,C/=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===ge.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?(rr("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(ge.UNSIGNED_CHAR),t.getInternalFormat(ge.UNSIGNED_CHAR,4),t.getFormat(ge.UNSIGNED_CHAR,4),!e.internalFormat||!e.format||!e.openGLDataType)return rr("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()&&(!ha(c.width)||!ha(c.height)),l=document.createElement("canvas");l.width=f?Lt(c.width):c.width,l.height=f?Lt(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(ge.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(ge.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[S,T]=c.getRange(x);y[x]=S,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,de.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 rr("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),S=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),S[0]!=null&&e.context.texSubImage3D(e.target,0,0,0,0,e.width,e.height,e.depth,e.format,e.openGLDataType,S[0])):e.context.texImage3D(e.target,0,e.internalFormat,e.width,e.height,e.depth,0,e.format,e.openGLDataType,S[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,de.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),S=c*f*l,T=[],v=[];for(let F=0;F<y;++F)T[F]=0,v[F]=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===ge.SHORT){for(let X=0;X<y;++X)e.volumeInfo.scale[X]=32767;return t.create3DFromRaw(c,f,l,y,h,d)}if(e.oglNorm16Ext&&!e.useHalfFloat&&h===ge.UNSIGNED_SHORT){for(let X=0;X<y;++X)e.volumeInfo.scale[X]=65535;return t.create3DFromRaw(c,f,l,y,h,d)}if(h===ge.FLOAT||e.useHalfFloat&&(h===ge.SHORT||h===ge.UNSIGNED_SHORT))return t.create3DFromRaw(c,f,l,y,h,d);if(h===ge.UNSIGNED_CHAR){for(let X=0;X<y;++X)e.volumeInfo.scale[X]=255;return t.create3DFromRaw(c,f,l,y,h,d)}const F=new Float32Array(S*y);e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let K=0;const P=w.scale.map(X=>1/X);for(let X=0;X<S;X++)for(let H=0;H<y;H++)F[K]=(d[K]-w.offset[H])*P[H],K++;return t.create3DFromRaw(c,f,l,y,ge.FLOAT,F)}let C=(F,K,P,X,H)=>{F[K]=P},R=ge.UNSIGNED_CHAR;if(h===ge.UNSIGNED_CHAR)for(let F=0;F<y;++F)w.offset[F]=0,w.scale[F]=255;else e.context.getExtension("OES_texture_float")&&e.context.getExtension("OES_texture_float_linear")?(R=ge.FLOAT,C=(F,K,P,X,H)=>{F[K]=(P-X)/H}):(R=ge.UNSIGNED_CHAR,C=(F,K,P,X,H)=>{F[K]=255*(P-X)/H});if(t.getOpenGLDataType(R),t.getInternalFormat(R,y),t.getFormat(R,y),!e.internalFormat||!e.format||!e.openGLDataType)return rr("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=y,e.depth=1,e.numberOfDimensions=2;let M=e.context.getParameter(e.context.MAX_TEXTURE_SIZE);M>4096&&(R===ge.FLOAT||y>=3)&&(M=4096);let m=1,D=1;S>M*M&&(m=Math.ceil(Math.sqrt(S/(M*M))),D=m);let V=Math.sqrt(S)/m;V=Lt(V);const L=Math.floor(V*m/c),U=Math.ceil(l/L),k=Lt(f*U/D);e.width=V,e.height=k,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.volumeInfo.xreps=L,e.volumeInfo.yreps=U,e.volumeInfo.xstride=m,e.volumeInfo.ystride=D,e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let Y;const q=V*k*y;R===ge.FLOAT?Y=new Float32Array(q):Y=new Uint8Array(q);let Q=0;const ne=Math.floor(c/m),z=Math.floor(f/D);for(let F=0;F<U;F++){const K=Math.min(L,l-F*L),P=y*(e.width-K*Math.floor(c/m));for(let X=0;X<z;X++){for(let H=0;H<K;H++){const Ce=y*((F*L+H)*c*f+D*X*c);for(let we=0;we<ne;we++)for(let ie=0;ie<y;ie++)C(Y,Q,d[Ce+m*we*y+ie],w.offset[ie],w.scale[ie]),Q++}Q+=P}}return e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),a(R)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),Y!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,Y)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,Y),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 u_={_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:nn.CLAMP_TO_EDGE,wrapT:nn.CLAMP_TO_EDGE,wrapR:nn.CLAMP_TO_EDGE,minificationFilter:Qe.NEAREST,magnificationFilter:Qe.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,useHalfFloat:!0,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0};function hg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,u_,n),me.extend(t,e,n),e.sendParametersTime={},Ke(e.sendParametersTime,{mtime:0}),e.textureBuildTime={},Ke(e.textureBuildTime,{mtime:0}),ta(t,e,["format","openGLDataType"]),$e(t,e,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),ut(t,e,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),na(t,e,["openGLRenderWindow"]),c_(t,e)}const dg=_e(hg,"vtkOpenGLTexture");var Xn={newInstance:dg,extend:hg,...gg};Wt("vtkTexture",dg);var f_=`//VTK::System::Dec
- /*=========================================================================
- Program: Visualization Toolkit
- Module: vtkPolyDataVS.glsl
- Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
- All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notice for more information.
- =========================================================================*/
- attribute vec4 vertexMC;
- // frag position in VC
- //VTK::PositionVC::Dec
- // optional normal declaration
- //VTK::Normal::Dec
- // extra lighting parameters
- //VTK::Light::Dec
- // Texture coordinates
- //VTK::TCoord::Dec
- // material property values
- //VTK::Color::Dec
- // clipping plane vars
- //VTK::Clip::Dec
- // camera and actor matrix values
- //VTK::Camera::Dec
- // Apple Bug
- //VTK::PrimID::Dec
- // picking support
- //VTK::Picking::Dec
- void main()
- {
- //VTK::Color::Impl
- //VTK::Normal::Impl
- //VTK::TCoord::Impl
- //VTK::Clip::Impl
- //VTK::PrimID::Impl
- //VTK::PositionVC::Impl
- //VTK::Light::Impl
- //VTK::Picking::Impl
- }
- `,l_=`//VTK::System::Dec
- /*=========================================================================
- Program: Visualization Toolkit
- Module: vtkPolyDataFS.glsl
- Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
- All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notice for more information.
- =========================================================================*/
- // Template for the polydata mappers fragment shader
- uniform int PrimitiveIDOffset;
- // VC position of this fragment
- //VTK::PositionVC::Dec
- // optional color passed in from the vertex shader, vertexColor
- //VTK::Color::Dec
- // optional surface normal declaration
- //VTK::Normal::Dec
- // extra lighting parameters
- //VTK::Light::Dec
- // define vtkImageLabelOutlineOn
- //VTK::ImageLabelOutlineOn
- // Texture coordinates
- //VTK::TCoord::Dec
- // picking support
- //VTK::Picking::Dec
- // Depth Peeling Support
- //VTK::DepthPeeling::Dec
- // clipping plane vars
- //VTK::Clip::Dec
- // label outline
- //VTK::LabelOutline::Dec
- // the output of this shader
- //VTK::Output::Dec
- // Apple Bug
- //VTK::PrimID::Dec
- // handle coincident offsets
- //VTK::Coincident::Dec
- //VTK::ZBuffer::Dec
- //VTK::LabelOutlineHelperFunction
- void main()
- {
- // VC position of this fragment. This should not branch/return/discard.
- //VTK::PositionVC::Impl
- // Place any calls that require uniform flow (e.g. dFdx) here.
- //VTK::UniformFlow::Impl
- // Set gl_FragDepth here (gl_FragCoord.z by default)
- //VTK::Depth::Impl
- // Early depth peeling abort:
- //VTK::DepthPeeling::PreColor
- // Apple Bug
- //VTK::PrimID::Impl
- //VTK::Clip::Impl
- //VTK::Color::Impl
- // Generate the normal if we are not passed in one
- //VTK::Normal::Impl
- //VTK::TCoord::Impl
- //VTK::Light::Impl
- if (gl_FragData[0].a <= 0.0)
- {
- discard;
- }
- //VTK::DepthPeeling::Impl
- //VTK::Picking::Impl
- // handle coincident offsets
- //VTK::Coincident::Impl
- //VTK::ZBuffer::Impl
- //VTK::RenderPassFragmentShader::Impl
- }
- `;function g_(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=A.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,e.context.getExtension("EXT_frag_depth")&&(s.factor!==0?(i=A.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=A.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=A.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),e._openGLRenderWindow.getWebgl2()&&(s.factor!==0?(i=A.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=A.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=A.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}function p_(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=A.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:g_,implementBuildShadersWithReplacements:p_};const{FieldAssociations:Ps}=Jn,{primTypes:Ge}=Vr,{Representation:ar,Shading:jc}=Mr,{ScalarMode:wa}=qt,{Filter:Kc,Wrap:Pc}=Xn,{vtkErrorMacro:Fn}=Qt,h_={type:"StartEvent"},d_={type:"EndEvent"},{CoordinateSystem:v_}=aa;function y_(t){const e=t.getSelector();return e?e.getCurrentPass():ot.MIN_KNOWN_PASS-1}function T_(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=Ge.Start;i<Ge.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=f_,r.Fragment=l_,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=A.substitute(i,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,i=A.substitute(i,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,o=A.substitute(o,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,o=A.substitute(o,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges?u=A.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=A.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=A.substitute(u,"//VTK::Color::Impl",l).result),u=A.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=A.substitute(i,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:i=A.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=A.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,
- dot(reflect(lightDirectionVC${l},normalVCVSOutput),
- normalize(-vertexVC.xyz))),
- specularPower);`,` specularL += (sf${o} * lightColor${l});`," }"]);f=f.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),i=A.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=A.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,
- dot(reflect(lightDirectionVC${l},
- normalVCVSOutput),
- normalize(-vertexVC.xyz))),
- specularPower);`,` specularL += ((sf${o}) * lightColor${l});`," }"]);f=f.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),i=A.substitute(i,"//VTK::Light::Impl",f,!1).result;break;default:Fn("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=A.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=A.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,u=A.substitute(u,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,u=A.substitute(u,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,c=A.substitute(c,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,c=A.substitute(c,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.haveCellNormals?(c=A.substitute(c,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,c=A.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=A.substitute(c,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,c=A.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=A.substitute(c,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,c=A.substitute(c,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,c=A.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=A.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=A.substitute(i,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,i=A.substitute(i,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=A.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=A.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,u=A.substitute(u,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,u=A.substitute(u,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(i=A.substitute(i,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,i=A.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=A.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=A.substitute(i,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=A.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=A.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,u=A.substitute(u,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,c&&c.length>=1)switch(f){case 1:u=A.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:u=A.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=A.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=A.substitute(i,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=A.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=A.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,u=A.substitute(u,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,f){case 1:u=A.substitute(u,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:u=A.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=A.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=A.substitute(i,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${u}];`,`varying float clipDistancesVSOutput[${u}];`]).result,i=A.substitute(i,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${u}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=A.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${u}];`]).result,o=A.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()===ar.SURFACE){const u=e.lastBoundBO.getPrimitiveType();u===Ge.Points||i.getRepresentation()===ar.POINTS?s=e.renderable.getCoincidentTopologyPointOffsetParameter():u===Ge.Lines||i.getRepresentation()===ar.WIREFRAME?s=e.renderable.getCoincidentTopologyLineOffsetParameters():(u===Ge.Tris||u===Ge.TriStrips)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters()),(u===Ge.TrisEdges||u===Ge.TriStripsEdges)&&(s=e.renderable.getCoincidentTopologyPolygonOffsetParameters(),s.factor/=2,s.offset/=2)}const o=e._openGLRenderer.getSelector();return o&&o.getFieldAssociation()===Ps.FIELD_ASSOCIATION_POINTS&&(s.offset-=2),s},t.replaceShaderPicking=(r,a,s)=>{let i=r.Fragment,o=r.Vertex;if(i=A.substitute(i,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,!!e._openGLRenderer.getSelector()){switch((e.lastSelectionState===ot.ID_LOW24||e.lastSelectionState===ot.ID_HIGH24)&&(o=A.substitute(o,"//VTK::Picking::Dec",[`flat out int vertexIDVSOutput;
- `,`uniform int VertexIDOffset;
- `]).result,o=A.substitute(o,"//VTK::Picking::Impl",` vertexIDVSOutput = gl_VertexID + VertexIDOffset;
- `).result,i=A.substitute(i,"//VTK::Picking::Dec",`flat in int vertexIDVSOutput;
- `).result,i=A.substitute(i,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),e.lastSelectionState){case ot.ID_LOW24:i=A.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 ot.ID_HIGH24:i=A.substitute(i,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx)/255.0, 0.0, 0.0, 1.0);").result;break;default:i=A.substitute(i,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,i=A.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=A.substitute(i,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,i=A.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()===jc.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"),S=e.lastBoundBO.getReferenceByName("lastLightCount");return(x!==i||S!==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)||Fn("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)||Fn("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)||Fn(`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)||Fn("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)||Fn("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?Ze(e.tmpMat4,s.getMatrix()):s.getMatrix();l&&(Ee(g,g),je(g,g,l),Ee(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(),S=a.getActiveCamera().getViewMatrix(),T=[...x];p.lightTypeIsSceneLight()&&(T[0]=S[0]*x[0]+S[1]*x[1]+S[2]*x[2],T[1]=S[4]*x[0]+S[5]*x[1]+S[6]*x[2],T[2]=S[8]*x[0]+S[9]*x[1]+S[10]*x[2],on(T)),e.lightDirection[0]=T[0],e.lightDirection[1]=T[1],e.lightDirection[2]=T[2],on(e.lightDirection),o.setUniform3fArray(`lightColor${u}`,e.lightColor),o.setUniform3fArray(`lightDirectionVC${u}`,e.lightDirection),u++}}if(i<3)return;const l=a.getActiveCamera().getViewMatrix();Ee(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);ve(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()===v_.DISPLAY){const h=e._openGLRenderer.getTiledSizeAndOrigin();ce(e.tmpMat4),e.tmpMat4[0]=2/h.usize,e.tmpMat4[12]=-1,e.tmpMat4[5]=2/h.vsize,e.tmpMat4[13]=-1,je(e.tmpMat4,e.tmpMat4,g),i.setUniformMatrix("MCPCMatrix",e.tmpMat4)}else i.setUniformMatrix("MCPCMatrix",n([o.wcpc,y.mcwc,g],Ti,e.tmpMat4));i.isUniformUsed("MCVCMatrix")&&i.setUniformMatrix("MCVCMatrix",n([o.wcvc,y.mcwc,g],Ti,e.tmpMat4)),i.isUniformUsed("normalMatrix")&&i.setUniformMatrix3x3("normalMatrix",n([o.normalMatrix,y.normalMatrix],e2,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()===Ps.FIELD_ASSOCIATION_POINTS&&(e.pointPicking=!0)},t.renderPieceStart=(r,a)=>{e.primitiveIDOffset=0,e.vertexIDOffset=0;const s=y_(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===ar.SURFACE,o=e._openGLRenderer.getSelector(),u=o&&o.getFieldAssociation()===Ps.FIELD_ASSOCIATION_POINTS&&(e.lastSelectionState===ot.ID_LOW24||e.lastSelectionState===ot.ID_HIGH24);for(let c=Ge.Start;c<Ge.End;c++)e.primitives[c].setPointPicking(u),e.primitives[c].getCABO().getElementCount()&&(e.drawingEdges=i&&(c===Ge.TrisEdges||c===Ge.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(h_),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(d_),!e.currentInput){Fn("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()){fo(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===wa.USE_CELL_DATA||o===wa.USE_CELL_FIELD_DATA||o===wa.USE_FIELD_DATA||!s.getPointData().getScalars())&&o!==wa.USE_POINT_FIELD_DATA&&i&&(e.haveCellScalars=!0);let u=a.getProperty().getInterpolation()!==jc.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=Xn.newInstance({resizable:!0}));const g=e.internalColorTexture;g.setMinificationFilter(Kc.NEAREST),g.setMagnificationFilter(Kc.NEAREST),g.setWrapS(Pc.CLAMP_TO_EDGE),g.setWrapT(Pc.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===ar.SURFACE;for(let d=Ge.Start;d<Ge.End;d++)d!==Ge.TrisEdges&&d!==Ge.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,ar.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 x_={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:ot.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function S_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,x_,n),me.extend(t,e,n),ps.implementReplaceShaderCoincidentOffset(t,e,n),ps.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=Ge,e.tmpMat3=Zn(new Float64Array(9)),e.tmpMat4=ce(new Float64Array(16));for(let r=Ge.Start;r<Ge.End;r++)e.primitives[r]=Vr.newInstance(),e.primitives[r].setPrimitiveType(r),e.primitives[r].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);$e(t,e,["context"]),e.VBOBuildTime={},Ke(e.VBOBuildTime,{mtime:0}),e.selectionStateChanged={},Ke(e.selectionStateChanged,{mtime:0}),T_(t,e)}const C_=_e(S_,"vtkOpenGLPolyDataMapper");Wt("vtkMapper",C_);const{ColorMode:w_,ScalarMode:Un,GetArray:Xs}=Ss;function E_(t,e){e.classHierarchy.push("vtkMapper2D"),t.createDefaultLookupTable=()=>{e.lookupTable=$r.newInstance()},t.getColorModeAsString=()=>E.enumToString(w_,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>E.enumToString(Un,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===Un.DEFAULT)o=n.getPointData().getScalars(),o||(o=n.getCellData().getScalars(),u=!0);else if(r===Un.USE_POINT_DATA)o=n.getPointData().getScalars();else if(r===Un.USE_CELL_DATA)o=n.getCellData().getScalars(),u=!0;else if(r===Un.USE_POINT_FIELD_DATA){const c=n.getPointData();a===Xs.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===Un.USE_CELL_FIELD_DATA){const c=n.getCellData();u=!0,a===Xs.BY_ID?o=c.getArrayByIndex(s):o=c.getArrayByName(i)}else if(r===Un.USE_FIELD_DATA){const c=n.getFieldData();a===Xs.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 __={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 vg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,__,n),Dl.extend(t,e,n),E.get(t,e,["colorMapColors"]),E.setGet(t,e,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),E.setGetArray(t,e,["scalarRange"],2),e.viewSpecificProperties||(e.viewSpecificProperties={}),E_(t,e)}const R_=E.newInstance(vg,"vtkMapper2D");var D_={newInstance:R_,extend:vg},O_=`//VTK::System::Dec
- /*=========================================================================
- Program: Visualization Toolkit
- Module: vtkPolyData2DFS.glsl
- Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
- All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notice for more information.
- =========================================================================*/
- uniform int PrimitiveIDOffset;
- // Texture coordinates
- //VTK::TCoord::Dec
- // Scalar coloring
- //VTK::Color::Dec
- // Depth Peeling
- //VTK::DepthPeeling::Dec
- // picking support
- //VTK::Picking::Dec
- // the output of this shader
- //VTK::Output::Dec
- // Apple Bug
- //VTK::PrimID::Dec
- void main()
- {
- // Apple Bug
- //VTK::PrimID::Impl
- //VTK::Color::Impl
- //VTK::TCoord::Impl
- //VTK::DepthPeeling::Impl
- //VTK::Picking::Impl
- if (gl_FragData[0].a <= 0.0)
- {
- discard;
- }
- }
- `,M_=`//VTK::System::Dec
- /*=========================================================================
- Program: Visualization Toolkit
- Module: vtkPolyData2DVS.glsl
- Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
- All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notice for more information.
- =========================================================================*/
- // all variables that represent positions or directions have a suffix
- // indicating the coordinate system they are in. The possible values are
- // MC - Model Coordinates
- // WC - WC world coordinates
- // VC - View Coordinates
- // DC - Display Coordinates
- in vec4 vertexWC;
- // frag position in VC
- //VTK::PositionVC::Dec
- // material property values
- //VTK::Color::Dec
- // Texture coordinates
- //VTK::TCoord::Dec
- // Apple Bug
- //VTK::PrimID::Dec
- uniform mat4 WCVCMatrix; // World to view matrix
- void main()
- {
- // Apple Bug
- //VTK::PrimID::Impl
- gl_Position = WCVCMatrix*vertexWC;
- //VTK::TCoord::Impl
- //VTK::Color::Impl
- //VTK::PositionVC::Impl
- }
- `;const yg={BACKGROUND:0,FOREGROUND:1};var Tg={DisplayLocation:yg};const{primTypes:Mt}=Vr,{ScalarMode:Ea}=D_,{vtkErrorMacro:_a}=Qt,V_={type:"StartEvent"},m_={type:"EndEvent"};function L_(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=M_,r.Fragment=O_,r.Geometry=""},t.render=()=>{const r=e._openGLRenderWindow.getContext();if(e.context!==r){e.context=r;for(let i=Mt.Start;i<Mt.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(V_),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(m_),!e.currentInput){_a("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===Ea.USE_CELL_DATA||o===Ea.USE_CELL_FIELD_DATA||o===Ea.USE_FIELD_DATA||!s.getPointData().getScalars())&&o!==Ea.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=qr.newInstance(),x=y.getNumberOfPoints();d.setNumberOfPoints(x);const S=[];for(let T=0;T<x;++T){y.getPoint(T,S),f.setValue(S);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[Mt.Points].getCABO().createVBO(s.getVerts(),"verts",u,h),h.cellOffset+=e.primitives[Mt.Lines].getCABO().createVBO(s.getLines(),"lines",u,h),h.cellOffset+=e.primitives[Mt.Tris].getCABO().createVBO(s.getPolys(),"polys",u,h),h.cellOffset+=e.primitives[Mt.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=Mt.Start;o<Mt.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=A.substitute(u,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,u=A.substitute(u,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0?(i=A.substitute(i,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,i=A.substitute(i,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,o=A.substitute(o,"//VTK::Color::Dec",[`in vec4 fcolorVSOutput[];
- `,"out vec4 fcolorGSOutput;"]).result,o=A.substitute(o,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,u=A.substitute(u,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,u=A.substitute(u,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(u=A.substitute(u,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,u=A.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=A.substitute(i,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,i=A.substitute(i,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=A.substitute(o,"//VTK::TCoord::Dec",[`in float tcoordVCVSOutput[];
- `,"out float tcoordVCGSOutput;"]).result,o=A.substitute(o,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,u=A.substitute(u,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,u=A.substitute(u,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):c===2&&(i=A.substitute(i,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,i=A.substitute(i,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,o=A.substitute(o,"//VTK::TCoord::Dec",[`in vec2 tcoordVCVSOutput[];
- `,"out vec2 tcoordVCGSOutput;"]).result,o=A.substitute(o,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,u=A.substitute(u,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,u=A.substitute(u,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),e.haveCellScalars&&(o=A.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=A.substitute(i,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,i=A.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)||_a("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)||_a(`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)||_a("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]=pa(f[0]*(y[2]-y[0])/(l[2]-l[0])),f[1]=pa(f[1]*(y[3]-y[1])/(l[3]-l[1]));const h=e._openGLRenderer.getParent().getSize(),d=pa(g[0]-(y[0]-l[0])*h[0]),x=pa(g[1]-(y[1]-l[1])*h[1]),S=-d;let T=-d+f[0];const v=-x;let w=-x+f[1];S===T&&(T=S+1),v===w&&(w=v+1);const C=ce(new Float64Array(16));C[0]=2/(T-S),C[1*4+1]=2/(w-v),C[0*4+3]=-1*(T+S)/(T-S),C[1*4+3]=-1*(w+v)/(w-v),C[2*4+2]=0,C[2*4+3]=s.getProperty().getDisplayLocation()===yg.FOREGROUND?-1:1,C[3*4+3]=1,Ee(C,C),i.setUniformMatrix("WCVCMatrix",n([C,u],Ti,e.tmpMat4))},t.getAllocatedGPUMemoryInBytes=()=>{let r=0;return e.primitives.forEach(a=>{r+=a.getAllocatedGPUMemoryInBytes()}),r}}const B_={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function k_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,B_,n),me.extend(t,e,n),ps.implementReplaceShaderCoincidentOffset(t,e,n),ps.implementBuildShadersWithReplacements(t,e,n),e.primitives=[],e.primTypes=Mt,e.tmpMat4=ce(new Float64Array(16));for(let r=Mt.Start;r<Mt.End;r++)e.primitives[r]=Vr.newInstance(),e.primitives[r].setPrimitiveType(r),e.primitives[r].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);$e(t,e,["context"]),e.VBOBuildTime={},Ke(e.VBOBuildTime,{mtime:0}),L_(t,e)}const F_=_e(k_,"vtkOpenGLPolyDataMapper2D");Wt("vtkMapper2D",F_);const{VectorMode:U_}=Cs;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 xg(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 Sg(t,e){return n=>{const r=n.getLastTickBounds(),a=ys().domain([r[0],r[1]]),s=a.ticks(5),i=a.tickFormat(5);n.setTicks(s),n.setTickStrings(s.map(i))}}function N_(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;Is(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,Is(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=Lt(i),o=Lt(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)=>{Is(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 C=0;C<e.barSegments.length;C++){const R=e.barSegments[C];R.title==="ticks"?d=R:(r[g]=e.barPosition[g]+.5*e.barSize[g]*(R.corners[2][g]+R.corners[0][g]),t.createPolyDataForOneLabel(R.title,r,p,"horizontal",h,f))}const x=e.barPosition[g]+e.barSize[g]*d.corners[0][g],S=e.barSize[g]*(d.corners[2][g]-d.corners[0][g]),T=t.getTicks(),v=t.getTickStrings();for(let C=0;C<T.length;C++){const R=(T[C]-e.lastTickBounds[0])/(e.lastTickBounds[1]-e.lastTickBounds[0]);r[g]=x+S*R,t.createPolyDataForOneLabel(v[C],r,p,"horizontal",h,f)}const w=de.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()===U_.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 S=e.barSegments[x];for(let T=0;T<4;T++){r[0]=e.barPosition[0]+S.corners[T][0]*e.barSize[0],r[1]=e.barPosition[1]+S.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]+S.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=de.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 b_=E.newInstance(function(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},n),E.obj(t,e),E.setGet(t,e,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),E.get(t,e,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),E.getArray(t,e,["boxPosition","boxSize"]),E.setArray(t,e,["boxPosition","boxSize"],2),e.forceUpdate=!1,e.lastRebuildTime={},E.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.barMapper=qt.newInstance(),e.barMapper.setInterpolateScalarsBeforeMapping(!0),e.barMapper.setUseLookupTableScalarRange(!0),e.polyData=nt.newInstance(),e.barMapper.setInputData(e.polyData),e.barActor=On.newInstance(),e.barActor.setMapper(e.barMapper),e.tmPolyData=nt.newInstance(),e.tmMapper=qt.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmTexture=Es.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),e.tmActor=On.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=[],N_(t,e)},"vtkScalarBarActorHelper");function G_(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(xg(t,e))},t.resetGenerateTicksToDefault=()=>{t.setGenerateTicks(Sg())}}function $_(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 Cg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$_(n)),e.autoLayout||(e.autoLayout=xg(t,e)),e.generateTicks||(e.generateTicks=Sg()),On.extend(t,e,n),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),E.setGet(t,e,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),E.get(t,e,["axisTextStyle","tickTextStyle"]),E.getArray(t,e,["barPosition","barSize","boxPosition","boxSize"]),E.setArray(t,e,["barPosition","barSize","boxPosition","boxSize"],2),G_(t,e)}const W_=E.newInstance(Cg,"vtkScalarBarActor");var Do={newInstance:W_,extend:Cg,newScalarBarActorHelper:b_};function z_(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 A_={};function H_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,A_,n),me.extend(t,e,n),e.scalarBarActorHelper=Do.newScalarBarActorHelper(),z_(t,e)}const j_=_e(H_,"vtkOpenGLScalarBarActor");Wt("vtkScalarBarActor",j_);const{vtkErrorMacro:Xc}=Qt;function K_(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(ct(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=de.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=de.newInstance({numberOfComponents:1,values:s});e.tris.getCABO().createVBO(i,"polys",Tt.SURFACE,{points:a,cellOffset:0})}e.renderable.getFormat()!==e.lastFormat&&(e.lastFormat=e.renderable.getFormat(),e.lastFormat==="box"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec
- attribute vec3 vertexMC;
- uniform mat4 IMCPCMatrix;
- varying vec3 TexCoords;
- void main () {
- gl_Position = vec4(vertexMC.xyz, 1.0);
- vec4 wpos = IMCPCMatrix * gl_Position;
- TexCoords = wpos.xyz/wpos.w;
- }`,`//VTK::System::Dec
- //VTK::Output::Dec
- varying vec3 TexCoords;
- uniform samplerCube sbtexture;
- uniform vec3 camPos;
- void main () {
- // skybox looks from inside out
- // which means we have to adjust
- // our tcoords. Otherwise text would
- // be flipped
- vec3 tc = normalize(TexCoords - camPos);
- if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))
- {
- tc = vec3(1.0, 1.0, -1.0) * tc;
- }
- else
- {
- tc = vec3(-1.0, 1.0, 1.0) * tc;
- }
- gl_FragData[0] = textureCube(sbtexture, tc);
- }`,"")),e.lastFormat==="background"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec
- attribute vec3 vertexMC;
- uniform mat4 IMCPCMatrix;
- varying vec2 TexCoords;
- void main () {
- gl_Position = vec4(vertexMC.xyz, 1.0);
- vec4 wpos = IMCPCMatrix * gl_Position;
- TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;
- }`,`//VTK::System::Dec
- //VTK::Output::Dec
- varying vec2 TexCoords;
- uniform sampler2D sbtexture;
- void main () {
- gl_FragData[0] = texture2D(sbtexture, TexCoords);
- }`,"")),e.tris.getShaderSourceTime().modified(),e.tris.getVAO().bind(),e.tris.getVAO().addAttributeArray(e.tris.getProgram(),e.tris.getCABO(),"vertexMC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Xc("Error setting vertexMC in shader VAO."));const n=e.renderable.getTextures();n.length||Xc("vtkSkybox requires a texture map"),e.openGLTexture.getRenderable()!==n[0]&&(e.openGLTexture.releaseGraphicsResources(e._openGLRenderWindow),e.openGLTexture.setRenderable(n[0]))}}const P_={context:null};function X_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,P_,n),me.extend(t,e,n),e.openGLTexture=Xn.newInstance(),e.tris=Vr.newInstance(),e.keyMatrixTime={},Ke(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:Zn(new Float64Array(9)),mcwc:ce(new Float64Array(16))},$e(t,e,["context"]),ut(t,e,["activeTextures"]),K_(t,e)}const I_=_e(X_);Wt("vtkSkybox",I_);const{vtkDebugMacro:Y_}=Qt;function q_(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():Y_("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 Q_={};function Z_(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Q_,n),me.extend(t,e,n),q_(t,e)}const J_=_e(Z_,"vtkOpenGLPixelSpaceCallbackMapper");Wt("vtkPixelSpaceCallbackMapper",J_);const wg=Object.create(null);function un(t,e){wg[t]=e}function eR(t,e){e.classHierarchy.push("vtkWebGPUViewNodeFactory")}const tR={};function Eg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tR,n),e.overrides=wg,Nf.extend(t,e,n),eR(t,e)}const nR=E.newInstance(Eg,"vtkWebGPUViewNodeFactory");var rR={newInstance:nR,extend:Eg};function aR(t,e){e.classHierarchy.push("vtkWebGPUCamera"),t.getProjectionMatrix=(n,r,a,s)=>{if(ce(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();Ze(e.keyMatrices.normalMatrix,s),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,ct(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Ee(e.keyMatrices.wcvc,s);const i=n.getStabilizedCenterByReference();Be(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()),je(e.keyMatrices.scpc,e.keyMatrices.vcpc,e.keyMatrices.scvc),ct(e.keyMatrices.pcsc,e.keyMatrices.scpc),e.keyMatrixTime.modified()}return e.keyMatrices}}const sR={keyMatrixTime:null,keyMatrices:null};function iR(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sR,n),me.extend(t,e,n),e.keyMatrixTime={},E.obj(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},E.setGet(t,e,["keyMatrixTime"]),aR(t,e)}const oR=E.newInstance(iR);un("vtkCamera",oR);function cR(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(`
- `)}}const uR={device:null,handle:null,label:null};function _g(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uR,n),E.obj(t,e),e.bindables=[],e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","handle","sizeInBytes","usage"]),E.setGet(t,e,["label","device","arrayInformation"]),cR(t,e)}const fR=E.newInstance(_g);var Rg={newInstance:fR,extend:_g};function lR(t,e){e.classHierarchy.push("vtkWebGPUShaderModule"),t.initialize=(n,r)=>{e.device=n,e.handle=e.device.getHandle().createShaderModule({code:r.getCode()})}}const gR={device:null,handle:null};function Dg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gR,n),E.obj(t,e),E.get(t,e,["lastCameraMTime"]),E.setGet(t,e,["device","handle"]),lR(t,e)}const pR=E.newInstance(Dg,"vtkWebGPUShaderModule");var hR={newInstance:pR,extend:Dg};function dR(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const a=Array.isArray(n)?n.join(`
- `):n;let s=!1;t.search(e)!==-1&&(s=!0);let i="";r&&(i="g");const o=new RegExp(e,i),u=t.replace(o,a);return{replace:s,result:u}}function vR(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=hR.newInstance();return i.initialize(e.device,n),e._shaderModules.set(n,i),i}}const yR={shaderModules:null,device:null,window:null};function Og(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,yR,n),e._shaderModules=new Map,E.obj(t,e),E.setGet(t,e,["device","window"]),vR(t,e)}const TR=E.newInstance(Og,"vtkWebGPUShaderCache");var oe={newInstance:TR,extend:Og,substitute:dR};function xR(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 SR={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function Mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SR,n),Ke(t,e),e.layouts=[],e.shaderDescriptions=[],ut(t,e,["handle","pipelineDescription"]),$e(t,e,["device","renderEncoder","topology","vertexState"]),xR(t,e)}const CR=_e(Mg,"vtkWebGPUPipeline");var wR={newInstance:CR,extend:Mg};function ER(t,e){e.classHierarchy.push("vtkWebGPUShaderDescription"),t.hasOutput=n=>e.outputNames.includes(n),t.addOutput=function(n,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;e.outputTypes.push(n),e.outputNames.push(r),e.outputInterpolations.push(a)},t.addBuiltinOutput=(n,r)=>{e.builtinOutputTypes.push(n),e.builtinOutputNames.push(r)},t.addBuiltinInput=(n,r)=>{e.builtinInputTypes.push(n),e.builtinInputNames.push(r)},t.replaceShaderCode=(n,r)=>{const a=[];let s=[];if(r&&a.push(r.getShaderCode()),n||e.builtinInputNames.length){const i=[];if(i.push(`struct ${e.type}Input
- {`),n){const o=n.getOutputNamesByReference(),u=n.getOutputTypesByReference(),c=n.getOutputInterpolationsByReference();for(let f=0;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
- {`];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 _R={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function Vg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_R,n),e.outputNames=[],e.outputTypes=[],e.outputInterpolations=[],e.builtinOutputNames=[],e.builtinOutputTypes=[],e.builtinInputNames=[],e.builtinInputTypes=[],E.obj(t,e),E.setGet(t,e,["type","hash","code"]),E.getArray(t,e,["outputTypes","outputNames","outputInterpolations"]),ER(t,e)}const RR=E.newInstance(Vg,"vtkWebGPUShaderDescription");var Ic={newInstance:RR,extend:Vg};const Yc={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 DR(t){return!t||t.length<6?0:t in Yc?Yc[t]:(fe(`unknown format ${t}`),null)}function OR(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 fe(`unknown format ${t}`),0;const a=5-r/2;return e*a}function MR(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 VR(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{fe(`unknown format ${t}`);return}const n=t.split("x")[0],r=Number(n[n.length-1]);if(Number.isNaN(r)){fe(`unknown format ${t}`);return}return e+=8*(5-r/2),e+="Array",e}function mR(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{fe(`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 LR(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 BR(t){if(t){if(t.includes("f32"))return"Float32Array";if(t.includes("i32"))return"Int32Array";if(t.includes("u32"))return"Uint32Array";fe(`unknown format ${t}`)}}var He={getDetailsFromTextureFormat:DR,getByteStrideFromBufferFormat:OR,getNumberOfComponentsFromBufferFormat:MR,getNativeTypeFromBufferFormat:VR,getShaderTypeFromBufferFormat:mR,getByteStrideFromShaderFormat:LR,getNativeTypeFromShaderFormat:BR};function kR(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 FR(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(kR(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=He.getShaderTypeFromBufferFormat(i.format);r>0&&(n+=`,
- `),n=`${n} @location(${r}) ${e.inputs[a].names[s]} : ${o}`,r++}return n},t.getVertexInputInformation=()=>{const n={};if(e.inputs.length){const r=[];let a=0;for(let s=0;s<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 UR={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function mg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,UR,n),Ke(t,e),e.bindingDescriptions=[],e.attributeDescriptions=[],e.inputs=[],$e(t,e,["created","device","handle","indexBuffer"]),FR(t,e)}const NR=_e(mg,"vtkWebGPUVertexInput");var bR={newInstance:NR,extend:mg};const GR=`
- //VTK::Renderer::Dec
- //VTK::Color::Dec
- //VTK::Normal::Dec
- //VTK::TCoord::Dec
- //VTK::Select::Dec
- //VTK::Mapper::Dec
- //VTK::IOStructs::Dec
- @vertex
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output : vertexOutput;
- // var vertex: vec4<f32> = vertexBC;
- //VTK::Color::Impl
- //VTK::Normal::Impl
- //VTK::TCoord::Impl
- //VTK::Select::Impl
- //VTK::Position::Impl
- return output;
- }
- `,$R=`
- //VTK::Renderer::Dec
- //VTK::Color::Dec
- //VTK::Normal::Dec
- //VTK::TCoord::Dec
- //VTK::Select::Dec
- //VTK::RenderEncoder::Dec
- //VTK::Mapper::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output : fragmentOutput;
- //VTK::Color::Impl
- //VTK::Normal::Impl
- //VTK::Light::Impl
- //VTK::TCoord::Impl
- //VTK::Select::Impl
- // var computedColor:vec4<f32> = vec4<f32>(1.0,0.5,0.5,1.0);
- //VTK::RenderEncoder::Impl
- return output;
- }
- `;function WR(t,e){e.classHierarchy.push("vtkWebGPUSimpleMapper"),t.generateShaderDescriptions=(n,r,a)=>{const s=Ic.newInstance({type:"vertex",hash:n,code:e.vertexShaderTemplate}),i=Ic.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=wR.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 zR={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 Lg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zR,n),me.extend(t,e,n),e.textureViews=[],e.vertexInput=bR.newInstance(),e.bindGroup=Rg.newInstance({label:"mapperBG"}),e.additionalBindables=[],e.fragmentShaderTemplate=e.fragmentShaderTemplate||$R,e.vertexShaderTemplate=e.vertexShaderTemplate||GR,e.shaderReplacements=new Map,E.get(t,e,["pipeline","vertexInput"]),E.setGet(t,e,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),WR(t,e)}const AR=E.newInstance(Lg,"vtkWebGPUSimpleMapper");var Oo={newInstance:AR,extend:Lg};function HR(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 jR={};function Bg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jR,n),Oo.extend(t,e,n),HR(t,e)}const KR=E.newInstance(Bg,"vtkWebGPUFullScreenQuad");var wr={newInstance:KR,extend:Bg};const PR={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},XR={Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6};var sa={BufferUsage:PR,PrimitiveTypes:XR};const Ys=["getMappedRange","mapAsync","unmap"];function IR(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 YR(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=>{IR(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<Ys.length;n++)t[Ys[n]]=function(){return e.handle[Ys[n]](...arguments)}}const qR={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function kg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qR,n),E.obj(t,e),E.get(t,e,["handle","sizeInBytes","usage"]),E.setGet(t,e,["strideInBytes","device","arrayInformation","label","sourceTime"]),YR(t,e)}const QR=E.newInstance(kg);var Er={newInstance:QR,extend:kg,...sa};const{Representation:qc}=Mr,{PrimitiveTypes:Cn}=sa;class ZR{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 JR(t){switch(t){case Cn.Points:return"points";case Cn.Lines:return"lines";case Cn.Triangles:case Cn.TriangleEdges:return"polys";case Cn.TriangleStripEdges:case Cn.TriangleStrips:return"strips";default:return""}}function Ra(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 eD(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=Ra(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=Ra(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=Ra(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=Ra(n,a,e),n.ibo[n.iboId++]=s}function tD(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 tn;const Qc=new Uint32Array(1),St=new Uint32Array(2),dn=new Uint32Array(3),qs={anythingToPoints(t,e,n,r,a){for(let s=0;s<t;++s)Qc[0]=e[n+s],tn(Qc,r,a)},linesToWireframe(t,e,n,r,a){for(let s=0;s<t-1;++s)St[0]=e[n+s],St[1]=e[n+s+1],tn(St,r,a)},polysToWireframe(t,e,n,r,a){if(t>2)for(let s=0;s<t;++s)St[0]=e[n+s],St[1]=e[n+(s+1)%t],tn(St,r,a)},stripsToWireframe(t,e,n,r,a){if(t>2){for(let s=0;s<t-1;++s)St[0]=e[n+s],St[1]=e[n+s+1],tn(St,r,a);for(let s=0;s<t-2;s++)St[0]=e[n+s],St[1]=e[n+s+2],tn(St,r,a)}},polysToSurface(t,e,n,r,a){for(let s=0;s<t-2;s++)dn[0]=e[n],dn[1]=e[n+s+1],dn[2]=e[n+s+2],tn(dn,r,a)},stripsToSurface(t,e,n,r,a){for(let s=0;s<t-2;s++)dn[0]=e[n+s],dn[1]=e[n+s+1+s%2],dn[2]=e[n+s+1+(s+1)%2],tn(dn,r,a)}};function nD(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=JR(a),f=n.numberOfPoints,l={provokedPointIds:new Uint8Array(f),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ZR};let g=null;s===qc.POINTS||a===Cn.Points?g=qs.anythingToPoints:s===qc.WIREFRAME||a===Cn.Lines?g=qs[`${c}ToWireframe`]:g=qs[`${c}ToSurface`],tn=tD;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),tn=eD,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 rD={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function Fg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rD,n),Er.extend(t,e,n),E.setGet(t,e,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),nD(t,e)}const aD=E.newInstance(Fg);var sD={newInstance:aD,extend:Fg,...sa};const{BufferUsage:vn}=sa,{vtkErrorMacro:iD}=Qt,{VtkDataTypes:Nn}=de,oD={};function cD(t){let e;switch(t.getDataType()){case Nn.UNSIGNED_CHAR:e="uint8";break;case Nn.FLOAT:e="float32";break;case Nn.UNSIGNED_INT:e="uint32";break;case Nn.INT:e="sint32";break;case Nn.DOUBLE:e="float32";break;case Nn.UNSIGNED_SHORT:e="uint16";break;case Nn.SHORT:e="sin16";break;default:e="float32";break}switch(t.getNumberOfComponents()){case 2:e+="x2";break;case 3:e.includes("32")||iD(`unsupported x3 type for ${e}`),e+="x3";break;case 4:e+="x4";break}return e}function Zc(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=Rr(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 uD(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 sn(a,s,i),on(i),i}function fD(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=uD(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 lD(t,e){e.classHierarchy.push("vtkWebGPUBufferManager");function n(r){r.dataArray&&!r.nativeArray&&(r.nativeArray=r.dataArray.getData());let a,s;if(r.usage===vn.Index&&(a=sD.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=Er.newInstance({label:r.label}),a.setDevice(e.device)),r.usage===vn.UniformArray&&(s=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,a.createAndWrite(r.nativeArray,s)),r.usage===vn.Storage&&(s=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,a.createAndWrite(r.nativeArray,s)),r.usage===vn.Texture&&(s=GPUBufferUsage.COPY_SRC,a.createAndWrite(r.nativeArray,s)),r.usage===vn.PointArray){s=GPUBufferUsage.VERTEX;const i=He.getNativeTypeFromBufferFormat(r.format),o=Zc(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(He.getByteStrideFromBufferFormat(r.format)),a.setArrayInformation([{offset:0,format:r.format,interpolation:r.cellData?"flat":"perspective"}])}if(r.usage===vn.NormalsFromPoints){s=GPUBufferUsage.VERTEX;const i=He.getNativeTypeFromBufferFormat(r.format),o=fD(r.cells,r.dataArray),u=Zc(r.indexBuffer,o,4,i,{cellData:!0});a.createAndWrite(u.nativeArray,s),a.setStrideInBytes(He.getByteStrideFromBufferFormat(r.format)),a.setArrayInformation([{offset:0,format:r.format,interpolation:"flat"}])}return r.usage===vn.RawVertex&&(s=GPUBufferUsage.VERTEX,a.createAndWrite(r.nativeArray,s),a.setStrideInBytes(He.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=cD(r),i={hash:`${r.getMTime()}I${a.getMTime()}${s}`,usage:vn.PointArray,format:s,dataArray:r,indexBuffer:a};return t.getBuffer(i)},t.getFullScreenQuadBuffer=()=>{if(e.fullScreenQuadBuffer)return e.fullScreenQuadBuffer;e.fullScreenQuadBuffer=Er.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 gD={device:null,fullScreenQuadBuffer:null};function Ug(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gD,n),Ke(t,e),$e(t,e,["device"]),lD(t,e)}const pD=_e(Ug);var Mn={newInstance:pD,extend:Ug,...oD,...sa};const{BufferUsage:hD}=Mn,{vtkErrorMacro:sr}=E;function dD(t,e){e.classHierarchy.push("vtkWebGPUStorageBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){sr(`entry named ${n} already exists`);return}e._bufferEntryNames.set(n,e.bufferEntries.length);const a=He.getByteStrideFromShaderFormat(r);e.bufferEntries.push({name:n,type:r,sizeInBytes:a,offset:e.sizeInBytes,nativeType:He.getNativeTypeFromShaderFormat(r)}),e.sizeInBytes+=a},t.send=n=>{if(!e._buffer){const r={nativeArray:e.Float32Array,usage:hD.Storage,label:e.label};e._buffer=n.getBufferManager().getBuffer(r),e.bindGroupTime.modified(),e._sendTime.modified();return}n.getHandle().queue.writeBuffer(e._buffer.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes*e.numberOfInstances),e._sendTime.modified()},t.createView=n=>{n in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes*e.numberOfInstances)),e[n]=E.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r,a)=>{const s=e._bufferEntryNames.get(n);if(s===void 0){sr(`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){sr(`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){sr(`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){sr(`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){sr(`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
- {`];for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];a.push(` ${i.name}: ${i.type},`)}return a.push(`
- };
- struct ${e.label}Struct
- {
- values: array<${e.label}StructEntry>,
- };
- @binding(${n}) @group(${r}) var<storage, read> ${e.label}: ${e.label}Struct;
- `),a.join(`
- `)},t.getBindGroupEntry=()=>({resource:{buffer:e._buffer.getHandle()}}),t.clearData=()=>{e.numberOfInstances=0,e.sizeInBytes=0,e.bufferEntries=[],e._bufferEntryNames=new Map,e._buffer=null,delete e.arrayBuffer,delete e.Float32Array}}const vD={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function Ng(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vD,n),E.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e._sendTime={},E.obj(e._sendTime,{mtime:0}),e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},E.get(t,e,["bindGroupTime"]),E.setGet(t,e,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),dD(t,e)}const yD=E.newInstance(Ng,"vtkWebGPUStorageBuffer");var Li={newInstance:yD,extend:Ng};const{BufferUsage:TD}=Mn,{vtkErrorMacro:Qs}=E;function xD(t,e){e.classHierarchy.push("vtkWebGPUUniformBuffer"),t.addEntry=(n,r)=>{if(e._bufferEntryNames.has(n)){Qs(`entry named ${n} already exists`);return}e.sortDirty=!0,e._bufferEntryNames.set(n,e.bufferEntries.length),e.bufferEntries.push({name:n,type:r,sizeInBytes:He.getByteStrideFromShaderFormat(r),offset:-1,nativeType:He.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:TD.UniformArray,label:e.label};e.UBO=n.getBufferManager().getBuffer(r),e.bindGroupTime.modified(),e.sendDirty=!1}e.sendDirty&&(n.getHandle().queue.writeBuffer(e.UBO.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes),e.sendDirty=!1),e.sendTime.modified()},t.createView=n=>{n in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes)),e[n]=E.newTypedArray(n,e.arrayBuffer))},t.setValue=(n,r)=>{t.sortBufferEntries();const a=e._bufferEntryNames.get(n);if(a===void 0){Qs(`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){Qs(`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
- {`];for(let s=0;s<e.bufferEntries.length;s++){const i=e.bufferEntries[s];a.push(` ${i.name}: ${i.type},`)}return a.push(`};
- @binding(${n}) @group(${r}) var<uniform> ${e.label}: ${e.label}Struct;`),a.join(`
- `)}}const SD={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function bg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SD,n),E.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"uniform"}},e.sendTime={},E.obj(e.sendTime,{mtime:0}),e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),e.sendDirty=!0,e.sortDirty=!0,E.get(t,e,["binding","bindGroupTime"]),E.setGet(t,e,["bindGroupLayoutEntry","device","label","sizeInBytes"]),xD(t,e)}const CD=E.newInstance(bg,"vtkWebGPUUniformBuffer");var In={newInstance:CD,extend:bg};const{vtkDebugMacro:wD}=Qt,Jc=`
- //VTK::Renderer::Dec
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var computedColor: vec4<f32> = mapperUBO.BackgroundColor;
- //VTK::RenderEncoder::Impl
- return output;
- }
- `,ED=`
- fn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {
- var tau: f32 = 6.28318530718;
- var pi: f32 = 3.14159265359;
- var out: vec2<f32> = vec2<f32>(0.0);
- out.x = atan2(dir.z, dir.x) / tau;
- out.x += 0.5;
- var phix: f32 = length(vec2(dir.x, dir.z));
- out.y = atan2(dir.y, phix) / pi + 0.5;
- return out;
- }
- //VTK::Renderer::Dec
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var tcoord: vec4<f32> = vec4<f32>(input.vertexVC.xy, -1, 1);
- var V: vec4<f32> = normalize(mapperUBO.FSQMatrix * tcoord); // vec2<f32>((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2);
- // textureSampleLevel gets rid of some ugly artifacts
- var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0.0);
- var computedColor: vec4<f32> = vec4<f32>(background.rgb, 1);
- //VTK::RenderEncoder::Impl
- return output;
- }
- `,Da=new Float64Array(16),eu=new Float64Array(16);function _D(t){return t.getPositional()?t.getConeAngle()>=90?0:2:1}function RD(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=[];Tn(i,a,.5*(n[0]+n[1])),Nr(s,r,i),Si(i,s,e.stabilizedCenter),Bf(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||(wD("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();ve(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]=_D(n[f]),u[l+1]=Math.cos(Le(n[f].getConeAngle())),u[l+2]=Math.cos(Le(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=wr.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Jc);const i=In.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(ED);const i=In.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=wr.newInstance(),e.clearFSQ.setDevice(n),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(Jc);const i=In.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),Ee(eu,r.normalMatrix),yi(Da,r.scvc,r.pcsc),yi(Da,eu,Da),e.clearFSQ.getUBO().setArray("FSQMatrix",Da),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 DD={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function OD(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,DD,n),me.extend(t,e,n),e.UBO=In.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=Rg.newInstance({label:"rendererBG"}),e.bindGroup.setBindables([e.UBO,e.SSBO]),e.tmpMat4=ce(new Float64Array(16)),e.stabilizedTime={},Ke(e.stabilizedTime,{mtime:0}),ut(t,e,["bindGroup","stabilizedTime"]),Dr(t,e,["stabilizedCenter"]),$e(t,e,["renderEncoder","selector","suppressClear","UBO"]),RD(t,e)}const MD=_e(OD,"vtkWebGPURenderer");un("vtkRenderer",MD);const{CoordinateSystem:tu}=aa;function VD(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()===tu.WORLD&&(e.bufferShift[0]-=a[0],e.bufferShift[1]-=a[1],e.bufferShift[2]-=a[2]),Ee(e.keyMatrices.bcwc,r),e.renderable.getIsIdentity()?ce(e.keyMatrices.normalMatrix):(Ze(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,ct(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),Ee(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),Be(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===tu.WORLD?Be(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-a[0],-a[1],-a[2]]):Ze(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const mD={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function LD(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mD,n),me.extend(t,e,n),e.keyMatricesTime={},E.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},E.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],VD(t,e)}const BD=E.newInstance(LD);un("vtkActor",BD);const{CoordinateSystem:nu}=aa;function kD(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()===nu.WORLD&&(e.bufferShift[0]-=r[0],e.bufferShift[1]-=r[1],e.bufferShift[2]-=r[2]),ce(e.keyMatrices.bcwc),ce(e.keyMatrices.normalMatrix),Be(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===nu.WORLD?Be(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):Ze(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const FD={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function UD(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FD,n),me.extend(t,e,n),e.keyMatricesTime={},E.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},E.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],kD(t,e)}const ND=E.newInstance(UD);un("vtkActor2D",ND);function bD(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 GD={};function $D(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,GD,n),me.extend(t,e,n),e.CubeAxesActorHelper=ng.newCubeAxesActorHelper(),bD(t,e)}const WD=_e($D,"vtkWebGPUCubeAxesActor");un("vtkCubeAxesActor",WD);const{DisplayLocation:Bi}=Tg;function zD(t,e){e.classHierarchy.push("vtkProperty2D"),t.setDisplayLocationToBackground=()=>t.setDisplayLocation(Bi.BACKGROUND),t.setDisplayLocationToForeground=()=>t.setDisplayLocation(Bi.FOREGROUND),t.setRepresentationToWireframe=()=>t.setRepresentation(Tt.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(Tt.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(Tt.POINTS),t.getRepresentationAsString=()=>E.enumToString(Tt,e.representation)}const AD={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:Tt.SURFACE,displayLocation:Bi.FOREGROUND};function Gg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AD,n),E.obj(t,e),E.setGet(t,e,["opacity","lineWidth","pointSize","displayLocation","representation"]),E.setGetArray(t,e,["color"],3),zD(t,e)}const HD=E.newInstance(Gg,"vtkProperty2D");var jD={newInstance:HD,extend:Gg,...Tg};const{BufferUsage:ze,PrimitiveTypes:at}=Mn,{Representation:Oa}=Mr,{ScalarMode:Ma}=qt,{CoordinateSystem:KD}=aa,{DisplayLocation:PD}=jD,XD=`
- //VTK::Renderer::Dec
- //VTK::Color::Dec
- //VTK::Normal::Dec
- //VTK::TCoord::Dec
- //VTK::Select::Dec
- //VTK::Mapper::Dec
- //VTK::IOStructs::Dec
- @vertex
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output : vertexOutput;
- var vertex: vec4<f32> = vertexBC;
- //VTK::Color::Impl
- //VTK::Normal::Impl
- //VTK::TCoord::Impl
- //VTK::Select::Impl
- //VTK::Position::Impl
- return output;
- }
- `,ID=`
- struct PBRData {
- diffuse: vec3<f32>,
- specular: vec3<f32>,
- }
- // Dot product with the max already in it
- fn mdot(a: vec3<f32>, b: vec3<f32>) -> f32 {
- return max(0.0, dot(a, b));
- }
- // Dot product with a max in it that does not allow for negative values
- // Physically based rendering is accurate as long as normals are accurate,
- // however this is pretty often not the case. In order to prevent negative
- // values from ruining light calculations and creating zones of zero light,
- // this remapping is used, which smoothly clamps the dot product between
- // zero and one while still maintaining a good amount of accuracy.
- fn cdot(a: vec3<f32>, b: vec3<f32>) -> f32 {
- var d: f32 = max(0.0, dot(a, b));
- d = pow((d + 1.0) / 2.0, 2.6);
- return d;
- }
- // Lambertian diffuse model
- fn lambertDiffuse(base: vec3<f32>, N: vec3<f32>, L: vec3<f32>) -> vec3<f32> {
- var pi: f32 = 3.14159265359;
- var NdotL: f32 = mdot(N, L);
- NdotL = pow(NdotL, 1.5);
- return (base/pi)*NdotL;
- }
- // Yasuhiro Fujii improvement on the Oren-Nayar model
- // https://mimosa-pudica.net/improved-oren-nayar.html
- // p is surface color, o is roughness
- fn fujiiOrenNayar(p: vec3<f32>, o: f32, N: vec3<f32>, L: vec3<f32>, V: vec3<f32>) -> vec3<f32> {
- var invpi: f32 = 0.31830988618; // 1/pi
- var o2 = o*o;
- var NdotL: f32 = mdot(N, L);
- NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better
- var NdotV: f32 = mdot(N, V);
- var LdotV: f32 = mdot(L, V);
- var s: f32 = LdotV - NdotL*NdotV;
- var t: f32 = mix(1.0, max(NdotL, NdotV), step(0.0, s)); // Mix with step is the equivalent of an if statement
- var A: vec3<f32> = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13));
- A = invpi*(1 - A);
- var B: f32 = 0.45*(o2 / (o2 + 0.09));
- B = invpi*B;
- return p*NdotL*(A + B*(s/t));
- }
- // Fresnel portion of BRDF (IOR only, simplified)
- fn schlickFresnelIOR(V: vec3<f32>, N: vec3<f32>, ior: f32, k: f32) -> f32 {
- var NdotV: f32 = mdot(V, N);
- var F0: f32 = (pow((ior - 1.0), 2.0) + k*k) / (pow((ior + 1.0), 2.0) + k*k); // This takes into account the roughness, which the other one does not
- return F0 + (1.0 - F0) * pow((1.0-NdotV), 5.0);
- }
- // Fresnel portion of BRDF (Color ior, better)
- fn schlickFresnelRGB(V: vec3<f32>, N: vec3<f32>, F0: vec3<f32>) -> vec3<f32> {
- var NdotV: f32 = mdot(V, N);
- return F0 + (1.0 - F0) * pow((1-NdotV), 5.0);
- }
- // Normal portion of BRDF
- // https://learnopengl.com/PBR/Theory
- // Trowbridge-Reitz GGX functions: normal, halfway, roughness^2
- fn trGGX(N: vec3<f32>, H: vec3<f32>, a: f32) -> f32 {
- var pi: f32 = 3.14159265359;
- var a2: f32 = a*a;
- var NdotH = mdot(N, H);
- var NdotH2 = NdotH*NdotH;
-
- var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0;
- return a2 / max((pi*denom*denom), 0.000001);
- }
- // A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent
- fn anisotrophicTrGGX(N: vec3<f32>, H: vec3<f32>, O: vec3<f32>, s: f32, a: f32) -> f32 {
- var Op: vec3<f32> = (rendererUBO.WCVCNormals * vec4<f32>(normalize(O) * s, 0.)).xyz;
- var ggx1: f32 = trGGX(N + Op*s, H, a);
- var ggx2: f32 = trGGX(N - Op*s, H, a);
- return (0.5 * ggx1 + 0.5 * ggx2);
- }
- // Geometry portion of BRDF
- fn schlickGGX(N: vec3<f32>, X: vec3<f32>, k: f32) -> f32 {
- var NdotX = cdot(N, X);
- return NdotX / max(0.000001, (NdotX*(1.0-k) + k));
- }
- fn smithSurfaceRoughness(N: vec3<f32>, V: vec3<f32>, L: vec3<f32>, k: f32) -> f32 {
- var ggx1: f32 = min(1.0, schlickGGX(N, V, k));
- var ggx2: f32 = min(1.0, schlickGGX(N, L, k));
- return ggx1*ggx2;
- }
- // BRDF Combination
- fn cookTorrance(D: f32, F: f32, G: f32, N: vec3<f32>, V: vec3<f32>, L: vec3<f32>) -> f32 {
- var num: f32 = D*F*G;
- var denom: f32 = 4*cdot(V, N)*cdot(L, N);
- return num / max(denom, 0.000001);
- }
- // Different lighting calculations for different light sources
- fn calcDirectionalLight(N: vec3<f32>, V: vec3<f32>, ior: f32, roughness: f32, metallic: f32, direction: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {
- var L: vec3<f32> = normalize(direction); // Light Vector
- var H: vec3<f32> = normalize(L + V); // Halfway Vector
- var alpha = roughness*roughness;
- var k: f32 = alpha*alpha / 2;
- var D: f32 = trGGX(N, H, alpha); // Distribution
- // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
- var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
- var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Fresnel term is replaced with 1 because it is added later
- var incoming: vec3<f32> = color;
- var angle: f32 = mdot(L, N);
- angle = pow(angle, 1.5);
- var specular: vec3<f32> = brdf*incoming*angle;
- // Oren-Nayar gives a clay-like effect when fully rough which some people may not want, so it might be better to give a separate
- // control property for the diffuse vs specular roughness
- var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
- // Stores the specular and diffuse separately to allow for finer post processing
- var out = PBRData(diffuse, specular);
-
- return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
- }
- // TODO: find some way to reduce the number of arguments going in here
- fn calcPointLight(N: vec3<f32>, V: vec3<f32>, fragPos: vec3<f32>, ior: f32, roughness: f32, metallic: f32, position: vec3<f32>, color: vec3<f32>, base: vec3<f32>) -> PBRData {
- var L: vec3<f32> = normalize(position - fragPos); // Light Vector
- var H: vec3<f32> = normalize(L + V); // Halfway Vector
- var dist = distance(position, fragPos);
- var alpha = roughness*roughness;
- var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8
- var D: f32 = trGGX(N, H, alpha); // Distribution
- // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
- var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
- var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);
- var incoming: vec3<f32> = color * (1.0 / (dist*dist));
- var angle: f32 = mdot(L, N);
- angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources
- var specular: vec3<f32> = brdf*incoming*angle;
- var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
- // Stores the specular and diffuse separately to allow for finer post processing
- // Could also be done (propably more properly) with a struct
- var out = PBRData(diffuse, specular);
-
- return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
- }
- // For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights
- fn calcSpotLight(N: vec3<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 {
- var L: vec3<f32> = normalize(position - fragPos);
- var H: vec3<f32> = normalize(L + V); // Halfway Vector
- var dist = distance(position, fragPos);
- var alpha = roughness*roughness;
- var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8
- var D: f32 = trGGX(N, H, alpha); // Distribution
- // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel
- var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry
- var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);
-
- // Cones.x is the inner phi and cones.y is the outer phi
- var theta: f32 = mdot(normalize(direction), L);
- var epsilon: f32 = cones.x - cones.y;
- var intensity: f32 = (theta - cones.y) / epsilon;
- intensity = clamp(intensity, 0.0, 1.0);
- intensity /= dist*dist;
- var incoming: vec3<f32> = color * intensity;
- var angle: f32 = mdot(L, N);
- angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources
- var specular: vec3<f32> = brdf*incoming*angle;
- var diffuse: vec3<f32> = incoming*fujiiOrenNayar(base, roughness, N, L, V);
- // Stores the specular and diffuse separately to allow for finer post processing
- // Could also be done (propably more properly) with a struct
- var out = PBRData(diffuse, specular);
-
- return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)
- }
- // Environment mapping stuff
- // Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point
- fn vecToRectCoord(dir: vec3<f32>) -> vec2<f32> {
- var tau: f32 = 6.28318530718;
- var pi: f32 = 3.14159265359;
- var out: vec2<f32> = vec2<f32>(0.0);
- out.x = atan2(dir.z, dir.x) / tau;
- out.x += 0.5;
- var phix: f32 = length(vec2(dir.x, dir.z));
- out.y = atan2(dir.y, phix) / pi + 0.5;
- return out;
- }
- //VTK::Renderer::Dec
- //VTK::Color::Dec
- //VTK::TCoord::Dec
- // optional surface normal declaration
- //VTK::Normal::Dec
- //VTK::Select::Dec
- //VTK::RenderEncoder::Dec
- //VTK::Mapper::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output : fragmentOutput;
- // Temporary ambient, diffuse, and opacity
- var ambientColor: vec4<f32> = mapperUBO.AmbientColor;
- var diffuseColor: vec4<f32> = mapperUBO.DiffuseColor;
- var opacity: f32 = mapperUBO.Opacity;
- // This should be declared somewhere else
- var _diffuseMap: vec4<f32> = vec4<f32>(1.0);
- var _roughnessMap: vec4<f32> = vec4<f32>(1.0);
- var _metallicMap: vec4<f32> = vec4<f32>(1.0);
- 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
- var _ambientOcclusionMap: vec4<f32> = vec4<f32>(1.);
- var _emissionMap: vec4<f32> = vec4<f32>(0.);
- //VTK::Color::Impl
- //VTK::TCoord::Impl
- //VTK::Normal::Impl
- var computedColor: vec4<f32> = vec4<f32>(diffuseColor.rgb, 1.0);
- //VTK::Light::Impl
- //VTK::Select::Impl
- if (computedColor.a == 0.0) { discard; };
- //VTK::Position::Impl
- //VTK::RenderEncoder::Impl
- return output;
- }
- `;function ru(t){return t.indexOf("edge")>=0}function YD(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!==KD.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()===PD.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===at.Verts?!1:e.primitiveType===at.Triangles||e.primitiveType===at.TriangleStrips?r===Oa.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&&!ru(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(ru(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,S,T,v,w,C,R,M,m,D,V,L,U,k,Y,q;if(!a.hasAttribute("tcoord"))return;const s=r.getShaderDescription("vertex"),i=a.getBuffer("tcoord"),o=He.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=Q=>Q?Q.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=(S=f.getProperty()).getRoughnessTexture)==null?void 0:T.call(S))!=null&&v.getImageLoaded()&&l(f.getProperty().getRoughnessTexture())&&g.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),(R=(C=(w=f.getProperty()).getMetallicTexture)==null?void 0:C.call(w))!=null&&R.getImageLoaded()&&l(f.getProperty().getMetallicTexture())&&g.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),(D=(m=(M=f.getProperty()).getNormalTexture)==null?void 0:m.call(M))!=null&&D.getImageLoaded()&&l(f.getProperty().getNormalTexture())&&g.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),(U=(L=(V=f.getProperty()).getAmbientOcclusionTexture)==null?void 0:L.call(V))!=null&&U.getImageLoaded()&&l(f.getProperty().getAmbientOcclusionTexture())&&g.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),(q=(Y=(k=f.getProperty()).getEmissionTexture)==null?void 0:Y.call(k))!=null&&q.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===Oa.POINTS||r===at.Points?ze.Verts:r===at.Lines?ze.Lines:n===Oa.WIREFRAME?r===at.Triangles?ze.LinesFromTriangles:ze.LinesFromStrips:r===at.Triangles?ze.Triangles:r===at.TriangleStrips?ze.Strips:r===at.TriangleEdges?ze.LinesFromTriangles:ze.LinesFromStrips,t.getHashFromUsage=n=>`pt${n}`,t.getTopologyFromUsage=n=>{switch(n){case ze.Triangles:return"triangle-list";case ze.Verts:return"point-list";case ze.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===at.TriangleEdges&&(u=!0,i=Oa.WIREFRAME);const c=e.vertexInput,f=n.getPoints();let l;if(r){const x={hash:`R${i}P${a}${r.getMTime()}`,usage:ze.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),S={hash:`${f.getMTime()}I${l.getMTime()}${x.join()}float32x4`,usage:ze.PointArray,format:"float32x4",dataArray:f,indexBuffer:l,shift:x,packExtra:!0},T=o.getBufferManager().getBuffer(S);c.addBuffer(T,["vertexBC"])}else c.removeBufferIfPresent("vertexBC");const g=t.getUsage(i,a);if(e._usesCellNormals=!1,!e.is2D&&(g===ze.Triangles||g===ze.Strips)){const x=n.getPointData().getNormals(),S={format:"snorm8x4",indexBuffer:l,packExtra:!0,shift:0,scale:127};if(x){S.hash=`${x.getMTime()}I${l.getMTime()}snorm8x4`,S.dataArray=x,S.usage=ze.PointArray;const T=o.getBufferManager().getBuffer(S);c.addBuffer(T,["normalMC"])}else if(a===at.Triangles){e._usesCellNormals=!0,S.hash=`PFN${f.getMTime()}I${l.getMTime()}snorm8x4`,S.dataArray=f,S.cells=r,S.usage=ze.NormalsFromPoints;const T=o.getBufferManager().getBuffer(S);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 S=e.renderable.getScalarMode();let T=!1;(S===Ma.USE_CELL_DATA||S===Ma.USE_CELL_FIELD_DATA||S===Ma.USE_FIELD_DATA||!n.getPointData().getScalars())&&S!==Ma.USE_POINT_FIELD_DATA&&x&&(T=!0);const v={usage:ze.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,S,T,v,w,C;const n=[],r=[],a=(c=(u=e.renderable).getColorTextureMap)==null?void 0:c.call(u);a&&(e.colorTexture||(e.colorTexture=Es.newInstance({label:"polyDataColor"})),e.colorTexture.setInputData(a),r.push(["Diffuse",e.colorTexture]));const s=e.WebGPUActor.getRenderable(),i=e.WebGPURenderer.getRenderable(),o=[];if((l=(f=s.getProperty()).getDiffuseTexture)!=null&&l.call(f)){const R=["Diffuse",s.getProperty().getDiffuseTexture()];o.push(R)}if(s.getTextures()[0]){const R=["Diffuse",s.getTextures()[0]];o.push(R)}if(e.colorTexture){const R=["Diffuse",e.colorTexture];o.push(R)}if((p=(g=s.getProperty()).getRoughnessTexture)!=null&&p.call(g)){const R=["Roughness",s.getProperty().getRoughnessTexture()];o.push(R)}if((h=(y=s.getProperty()).getMetallicTexture)!=null&&h.call(y)){const R=["Metallic",s.getProperty().getMetallicTexture()];o.push(R)}if((x=(d=s.getProperty()).getNormalTexture)!=null&&x.call(d)){const R=["Normal",s.getProperty().getNormalTexture()];o.push(R)}if((T=(S=s.getProperty()).getAmbientOcclusionTexture)!=null&&T.call(S)){const R=["AmbientOcclusion",s.getProperty().getAmbientOcclusionTexture()];o.push(R)}if((w=(v=s.getProperty()).getEmissionTexture)!=null&&w.call(v)){const R=["Emission",s.getProperty().getEmissionTexture()];o.push(R)}if((C=i.getEnvironmentTexture)!=null&&C.call(i)){const R=["Environment",i.getEnvironmentTexture()];o.push(R)}for(let R=0;R<o.length;R++)(o[R][1].getInputData()||o[R][1].getJsImageData()||o[R][1].getCanvas())&&r.push(o[R]),o[R][1].getImage()&&o[R][1].getImageLoaded()&&r.push(o[R]);for(let R=0;R<r.length;R++){const M=r[R][1],m=r[R][0],D=e.device.getTextureManager().getTextureForVTKTexture(M);if(D.getReady()){let V=!1;for(let L=0;L<e.textures.length;L++)e.textures[L]===D&&(V=!0,n[L]=!0);if(!V){n[e.textures.length]=!0;const L=D.createView(`${m}Texture`);e.textures.push(D),e.textureViews.push(L);const U=M.getInterpolate()?"linear":"nearest";let k=null;!k&&M.getEdgeClamp()&&M.getRepeat()&&(k="mirror-repeat"),!k&&M.getEdgeClamp()&&(k="clamp-to-edge"),!k&&M.getRepeat()&&(k="repeat"),m!=="Environment"?L.addSampler(e.device,{addressModeU:k,addressModeV:k,addressModeW:k,minFilter:U,magFilter:U}):L.addSampler(e.device,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:U,magFilter:U,mipmapFilter:"linear"})}}}for(let R=e.textures.length-1;R>=0;R--)n[R]||(e.textures.splice(R,1),e.textureViews.splice(R,1))},t.computePipelineHash=()=>{let n=`pd${e.useRendererMatrix?"r":""}${e.forceZValue?"z":""}`;if(e.primitiveType===at.TriangleEdges||e.primitiveType===at.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=He.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!==at.TriangleEdges&&e.primitiveType!==at.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 qD={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function $g(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qD,n),Oo.extend(t,e,n),e.fragmentShaderTemplate=ID,e.vertexShaderTemplate=XD,e._tmpMat3=Zn(new Float64Array(9)),e._tmpMat4=ce(new Float64Array(16)),e.UBO=In.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"),$e(t,e,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),e.textures=[],YD(t,e)}const QD=_e($g,"vtkWebGPUCellArrayMapper");var Wg={newInstance:QD,extend:$g};const{PrimitiveTypes:Va}=Mn;function ZD(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper"),t.createCellArrayMapper=()=>Wg.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=Va.Points;i<=Va.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=Va.TriangleEdges;i<=Va.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 JD={primitives:null};function eO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,JD,n),me.extend(t,e,n),e.primitives=[],ZD(t,e)}const tO=_e(eO,"vtkWebGPUPolyDataMapper");un("vtkMapper",tO);const{PrimitiveTypes:au}=Mn;function nO(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),t.createCellArrayMapper=()=>Wg.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=au.Points;i<=au.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 rO(t){return{primitives:[],...t}}function aO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rO(n)),me.extend(t,e,n),e.primitives=[],nO(t,e)}const sO=_e(aO,"vtkWebGPUPolyDataMapper2D");un("vtkMapper2D",sO);function iO(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 oO={};function cO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oO,n),me.extend(t,e,n),e.scalarBarActorHelper=Do.newScalarBarActorHelper(),iO(t,e)}const uO=_e(cO,"vtkWebGPUScalarBarActor");un("vtkScalarBarActor",uO);function fO(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 lO={device:null,handle:null,label:null,options:null};function zg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lO,n),E.obj(t,e),e.options={},e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","handle","options"]),E.setGet(t,e,["bindGroupLayoutEntry","device","label"]),fO(t,e)}const gO=E.newInstance(zg);var Mo={newInstance:gO,extend:zg};function pO(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=He.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=He.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=Mo.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 hO={texture:null,handle:null,sampler:null,label:null};function Ag(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,hO,n),E.obj(t,e),e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},e.bindGroupTime={},E.obj(e.bindGroupTime,{mtime:0}),E.get(t,e,["bindGroupTime","texture"]),E.setGet(t,e,["bindGroupLayoutEntry","label","sampler"]),pO(t,e)}const dO=E.newInstance(Ag);var Hg={newInstance:dO,extend:Ag};const{BufferUsage:su}=Mn;function vO(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=He.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,S=E.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++)S[T*x+v]=Nt.toHalf(p[T*y+v]);else S.set(p.subarray(T*y,(T+1)*y),T*x);return[S,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=Es.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:su.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:su.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=He.getDetailsFromTextureFormat(e.format);return n.elementSize===2&&n.sampleType==="float"?1:255},t.getNumberOfComponents=()=>He.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=Hg.newInstance({label:n});return a.create(t,r),a}}const yO={device:null,handle:null,buffer:null,ready:!1,label:null};function jg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,yO,n),E.obj(t,e),E.get(t,e,["handle","ready","width","height","depth","format","usage"]),E.setGet(t,e,["device","label"]),vO(t,e)}const TO=E.newInstance(jg);var Yt={newInstance:TO,extend:jg};function xO(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 SO={};function CO(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SO,n),me.extend(t,e,n),xO(t,e)}const wO=E.newInstance(CO,"vtkWebGPUPixelSpaceCallbackMapper");un("vtkPixelSpaceCallbackMapper",wO);const{vtkDebugMacro:ma}=E;function EO(t,e){e.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),s=ce(new Float64Array(16)),i=ce(new Float64Array(16)),o=new Float64Array(3),u=new Float64Array(3),c=new Float64Array(3),f=ce(new Float64Array(16)),l=ce(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,ma("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,ma("Distance is set to minimum.");const S=e.directionOfProjection;e.focalPoint[0]=e.position[0]+S[0]*e.distance,e.focalPoint[1]=e.position[1]+S[1]*e.distance,e.focalPoint[2]=e.position[2]+S[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,S=e.viewUp,T=new Float64Array([S[0],S[1],S[2],0]);ce(f);const v=new Float64Array([x[0]-d[0],x[1]-d[1],x[2]-d[2]]);Dt(f,f,Le(h),v),ga(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;ce(l),Be(l,l,d),Dt(l,l,Le(h),e.viewUp),Be(l,l,[-d[0],-d[1],-d[2]]),ve(g,e.position,l),t.setPosition(g[0],g[1],g[2])},t.yaw=h=>{const d=e.position;ce(l),Be(l,l,d),Dt(l,l,Le(h),e.viewUp),Be(l,l,[-d[0],-d[1],-d[2]]),ve(p,e.focalPoint,l),t.setFocalPoint(p[0],p[1],p[2])},t.elevation=h=>{const d=e.focalPoint,x=t.getViewMatrix(),S=[-x[0],-x[1],-x[2]];ce(l),Be(l,l,d),Dt(l,l,Le(h),S),Be(l,l,[-d[0],-d[1],-d[2]]),ve(g,e.position,l),t.setPosition(g[0],g[1],g[2])},t.pitch=h=>{const d=e.position,x=t.getViewMatrix(),S=[x[0],x[1],x[2]];ce(l),Be(l,l,d),Dt(l,l,Le(h),S),Be(l,l,[-d[0],-d[1],-d[2]]),ve(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 S=[h,d,x];Yr(e.position,S,e.position),Yr(e.focalPoint,S,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=h=>{const d=[...e.viewUp,1],x=[],S=[],T=[];d[0]+=e.position[0],d[1]+=e.position[1],d[2]+=e.position[2],ga(x,[...e.position,1],h),ga(S,[...e.focalPoint,1],h),ga(T,d,h),T[0]-=x[0],T[1]-=x[1],T[2]-=x[2],t.setPosition(...x.slice(0,3)),t.setFocalPoint(...S.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,ma("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,ma("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=>(Ze(h,e.cameraLightTransform),h),t.computeCameraLightTransform=()=>{Ze(s,t.getViewMatrix()),ct(s,s),Sf(i,[e.distance,e.distance,e.distance]),je(s,s,i),ce(e.cameraLightTransform),Be(e.cameraLightTransform,s,[0,0,-1])},t.deepCopy=h=>{},t.physicalOrientationToWorldDirection=h=>{const d=Cc(h[0],h[1],h[2],h[3]),x=qn(),S=Cc(0,0,1,0);return L2(x,d),Sc(S,d,S),Sc(S,S,x),[S[0],S[1],S[2]]},t.getPhysicalToWorldMatrix=h=>{t.getWorldToPhysicalMatrix(h),ct(h,h)},t.getWorldToPhysicalMatrix=h=>{ce(h);const d=[3];sn(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],Ee(h,h),Pt(o,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),Yn(h,h,o),Be(h,h,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=h=>{ct(s,h),ve(o,n,s),t.computeDistance();const d=e.distance;t.setPosition(o[0],o[1],o[2]),ve(u,r,s),En(u,u,o),_n(u,u),t.setDirectionOfProjection(u[0],u[1],u[2]),ve(c,a,s),En(c,c,o),_n(c,c),t.setViewUp(c[0],c[1],c[2]),t.setDistance(d)},t.computeViewParametersFromPhysicalMatrix=h=>{t.getWorldToPhysicalMatrix(s),je(s,h,s),t.computeViewParametersFromViewMatrix(s)},t.setViewMatrix=h=>{e.viewMatrix=h,e.viewMatrix&&(Ze(s,e.viewMatrix),t.computeViewParametersFromViewMatrix(s),Ee(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=()=>{if(e.viewMatrix)return e.viewMatrix;Vf(s,e.position,e.focalPoint,e.viewUp),Ee(s,s);const h=new Float64Array(16);return Ze(h,s),h},t.setProjectionMatrix=h=>{e.projectionMatrix=h},t.getProjectionMatrix=(h,d,x)=>{const S=new Float64Array(16);if(ce(S),e.projectionMatrix){const w=1/e.physicalScale;return Pt(o,w,w,w),Ze(S,e.projectionMatrix),Yn(S,S,o),Ee(S,S),S}ce(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,C=e.parallelScale,R=(e.windowCenter[0]-1)*w,M=(e.windowCenter[0]+1)*w,m=(e.windowCenter[1]-1)*C,D=(e.windowCenter[1]+1)*C;Mf(s,R,M,m,D,v[0],v[1]),Ee(s,s)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const w=Math.tan(Le(e.viewAngle)/2);let C,R;e.useHorizontalViewAngle===!0?(C=e.clippingRange[0]*w,R=e.clippingRange[0]*w/h):(C=e.clippingRange[0]*w*h,R=e.clippingRange[0]*w);const M=(e.windowCenter[0]-1)*C,m=(e.windowCenter[0]+1)*C,D=(e.windowCenter[1]-1)*R,V=(e.windowCenter[1]+1)*R,L=v[0],U=v[1];s[0]=2*L/(m-M),s[5]=2*L/(V-D),s[2]=(M+m)/(m-M),s[6]=(D+V)/(V-D),s[10]=-(L+U)/(U-L),s[14]=-1,s[11]=-2*L*U/(U-L),s[15]=0}}return Ze(S,s),S},t.getCompositeProjectionMatrix=(h,d,x)=>{const S=t.getViewMatrix(),T=t.getProjectionMatrix(h,d,x);return je(T,S,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 S=e.directionOfProjection;e.focalPoint[0]=e.position[0]+S[0]*e.distance,e.focalPoint[1]=e.position[1]+S[1]*e.distance,e.focalPoint[2]=e.position[2]+S[2]*e.distance,y()},t.setDeviceAngles=(h,d,x,S)=>{const T=[3];sn(e.physicalViewNorth,e.physicalViewUp,T);const v=ce(new Float64Array(16));Dt(v,v,Le(h),e.physicalViewUp),Dt(v,v,Le(d),T),Dt(v,v,Le(x),e.physicalViewNorth),Dt(v,v,Le(-S),e.physicalViewUp);const w=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),C=new Float64Array(e.physicalViewNorth);ve(w,w,v),ve(C,C,v),t.setDirectionOfProjection(w[0],w[1],w[2]),t.setViewUp(C[0],C[1],C[2]),t.modified()},t.setOrientationWXYZ=(h,d,x,S)=>{const T=ce(new Float64Array(16));if(h!==0&&(d!==0||x!==0||S!==0)){const C=Le(h),R=qn();ro(R,[d,x,S],C),to(T,R)}const v=new Float64Array(3);ve(v,[0,0,-1],T);const w=new Float64Array(3);ve(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 S=-d[0],T=-d[1],v=-d[2],w=-(S*x[0]+T*x[1]+v*x[2]),C=[S*h[0]+T*h[2]+v*h[4]+w,1e-18];for(let R=0;R<2;R++)for(let M=0;M<2;M++)for(let m=0;m<2;m++){const D=S*h[m]+T*h[2+M]+v*h[4+R]+w;C[0]=D<C[0]?D:C[0],C[1]=D>C[1]?D:C[1]}return C}}const _O={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:Qi(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function Kg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_O,n),E.obj(t,e),E.get(t,e,["distance"]),E.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),E.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),E.setGetArray(t,e,["clippingRange","windowCenter"],2),E.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),EO(t,e)}const RO=E.newInstance(Kg,"vtkCamera");var DO={newInstance:RO,extend:Kg};const OO=["HeadLight","CameraLight","SceneLight"];function MO(t,e){e.classHierarchy.push("vtkLight");const n=new Float64Array(3);t.getTransformedPosition=()=>(e.transformMatrix?ve(n,e.position,e.transformMatrix):Pt(n,e.position[0],e.position[1],e.position[2]),n),t.getTransformedFocalPoint=()=>(e.transformMatrix?ve(n,e.focalPoint,e.transformMatrix):Pt(n,e.focalPoint[0],e.focalPoint[1],e.focalPoint[2]),n),t.getDirection=()=>(e.directionMTime<e.mtime&&(Si(e.direction,e.focalPoint,e.position),on(e.direction),e.directionMTime=e.mtime),e.direction),t.setDirection=r=>{const a=new Float64Array(3);Si(a,e.position,r),e.focalPoint=a},t.setDirectionAngle=(r,a)=>{const s=Le(r),i=Le(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 VO={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 Pg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VO,n),E.obj(t,e),E.setGet(t,e,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),E.setGetArray(t,e,["color","position","focalPoint","attenuationValues"],3),MO(t,e)}const mO=E.newInstance(Pg,"vtkLight");var LO={newInstance:mO,extend:Pg,LIGHT_TYPES:OO};const{vtkErrorMacro:Xa}=E;function BO(t){return()=>Xa(`vtkViewport::${t} - NOT IMPLEMENTED`)}function kO(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=()=>Xa("call displayToView on your view instead"),t.viewToDisplay=()=>Xa("callviewtodisplay on your view instead"),t.getSize=()=>Xa("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=BO("PickPropFrom")}const FO={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function Xg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FO,n),E.obj(t,e),E.event(t,e,"event"),E.setGetArray(t,e,["viewport"],4),E.setGetArray(t,e,["background","background2"],3),kO(t,e)}const UO=E.newInstance(Xg,"vtkViewport");var NO={newInstance:UO,extend:Xg};const{vtkDebugMacro:Fr,vtkErrorMacro:Sn,vtkWarningMacro:bO}=Qt;function iu(t){return()=>Sn(`vtkRenderer::${t} - NOT IMPLEMENTED`)}function GO(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||(Fr("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(Qi())):Sn("light has unknown light type",i.get()))})},t.updateLightGeometry=()=>e.lightFollowCamera?t.updateLightsGeometryToFollowCamera():!0,t.allocateTime=iu("allocateTime"),t.updateGeometry=iu("updateGeometry"),t.getVTKWindow=()=>e._renderWindow,t.setLayer=s=>{Fr(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=DO.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=LO.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 Sn("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();ct(u,u),Ee(u,u);const c=new Float64Array([s,i,o]);return ve(c,c,u),c},t.projectionToView=(s,i,o,u)=>{if(e.activeCamera===null)return Sn("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);ct(c,c),Ee(c,c);const f=new Float64Array([s,i,o]);return ve(f,f,c),f},t.worldToView=(s,i,o)=>{if(e.activeCamera===null)return Sn("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const u=e.activeCamera.getViewMatrix();Ee(u,u);const c=new Float64Array([s,i,o]);return ve(c,c,u),c},t.viewToProjection=(s,i,o,u)=>{if(e.activeCamera===null)return Sn("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getProjectionMatrix(u,-1,1);Ee(c,c);const f=new Float64Array([s,i,o]);return ve(f,f,c),f},t.computeVisiblePropBounds=()=>{e.allBounds[0]=Se.INIT_BOUNDS[0],e.allBounds[1]=Se.INIT_BOUNDS[1],e.allBounds[2]=Se.INIT_BOUNDS[2],e.allBounds[3]=Se.INIT_BOUNDS[3],e.allBounds[4]=Se.INIT_BOUNDS[4],e.allBounds[5]=Se.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&&Ns(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&&(fo(e.allBounds),Fr("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(!Ns(i))return Fr("Cannot reset camera!"),!1;let u=null;if(t.getActiveCamera())u=e.activeCamera.getViewPlaneNormal();else return Sn("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=Le(e.activeCamera.getViewAngle()),y=g,h=g/Math.sin(p*.5),d=e.activeCamera.getViewUp();return Math.abs(ue(d,u))>.999&&(bO("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(!Ns(i))return Fr("Cannot reset camera clipping range!"),!1;if(t.getActiveCameraAndResetIfCreated(),!e.activeCamera)return Sn("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=Le(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 $O={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:lo(),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 Ig(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};for(Object.assign(e,$O,n),NO.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),ut(t,e,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),$e(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"]),Dr(t,e,["actors","volumes","lights"]),zi(t,e,["background"],4,1),na(t,e,["renderWindow"]),GO(t,e)}const WO=_e(Ig,"vtkRenderer");var Yg={newInstance:WO,extend:Ig};const zO="WebGL",hs=Object.create(null);function Vo(t,e){hs[t]=e}function AO(){return Object.keys(hs)}function qg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return hs[t]&&hs[t](e)}function HO(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 qg(n||e.defaultViewAPI,r)},t.addView=n=>{t.hasView(n)||(n.setRenderable(t),e._views.push(n),t.modified())},t.removeView=n=>{e._views=e._views.filter(r=>r!==n),t.modified()},t.hasView=n=>e._views.indexOf(n)!==-1,t.preRender=()=>{e.renderers.forEach(n=>{n.isActiveCameraCreated()||n.resetCamera()})},t.render=()=>{t.preRender(),e.interactor?e.interactor.render():e._views.forEach(n=>n.traverseAllPasses())},t.getStatistics=()=>{const n={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return e._views.forEach(r=>{r.getGraphicsMemoryInfo&&(n.gpuMemoryMB+=r.getGraphicsMemoryInfo()/1e6)}),e.renderers.forEach(r=>{const a=r.getViewProps(),s=e._views[0].getViewNodeFor(r);a.forEach(i=>{if(i.getVisibility()){n.propCount+=1;const o=i.getMapper&&i.getMapper();if(o&&o.getPrimitiveCount){const u=s.getViewNodeFor(o);if(u){u.getAllocatedGPUMemoryInBytes&&(n.gpuMemoryMB+=u.getAllocatedGPUMemoryInBytes()/1e6);const c=o.getPrimitiveCount();Object.keys(c).forEach(f=>{n[f]||(n[f]=0),n[f]+=c[f]})}}}else n.invisiblePropCount+=1})}),n.str=Object.keys(n).map(r=>`${r}: ${n[r]}`).join(`
- `),n},t.captureImages=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"image/png",r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return E.setImmediate(t.render),e._views.map(a=>a.captureNextImage?a.captureNextImage(n,r):void 0).filter(a=>!!a)}}const jO={defaultViewAPI:zO,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function Qg(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jO,n),E.obj(t,e),E.setGet(t,e,["interactor","numberOfLayers","_views","defaultViewAPI"]),E.get(t,e,["neverRendered"]),E.getArray(t,e,["renderers"]),E.moveToProtected(t,e,["views"]),E.event(t,e,"completion"),HO(t,e)}const KO=E.newInstance(Qg,"vtkRenderWindow");var Zg={newInstance:KO,extend:Qg,registerViewConstructor:Vo,listViewAPIs:AO,newAPISpecificView:qg};const ki={Unknown:0,LeftController:1,RightController:2},Wr={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},PO={Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4};var Jg={Device:ki,Input:Wr,Axis:PO};const{Device:La,Input:Gn}=Jg,{vtkWarningMacro:Ba,vtkErrorMacro:ka,normalizeWheel:XO,vtkOnceErrorMacro:IO}=E,ir={ctrlKey:!1,altKey:!1,shiftKey:!1},Zs={"xr-standard":[Gn.Trigger,Gn.Grip,Gn.TrackPad,Gn.Thumbstick,Gn.A,Gn.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 Ur(t){t.cancelable&&t.preventDefault()}function Fa(t){const e=Object.create(null);return t.forEach(n=>{let{pointerId:r,position:a}=n;e[r]=a}),e}function YO(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=>{ka("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=()=>Ba("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(),S=d.width/x.width,T=d.height/x.height,v={x:S*(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",Ur),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",Ur),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&&Ur(h),h.target.hasPointerCapture(h.pointerId)&&h.target.releasePointerCapture(h.pointerId),e.container.setPointerCapture(h.pointerId),a.has(h.pointerId)&&Ba("[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&&Ur(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:ka(`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){ka("undefined requester, can not start animating");return}if(r.has(h)){Ba("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;Ba(`${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(S=>{const T=S.gripSpace==null?null:d.getPose(S.gripSpace,x),v=S.gamepad,w=S.handedness;if(v){v.index in e.lastGamepadValues||(e.lastGamepadValues[v.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let C=0;C<v.buttons.length;++C)C in e.lastGamepadValues[v.index][w].buttons||(e.lastGamepadValues[v.index][w].buttons[C]=!1),e.lastGamepadValues[v.index][w].buttons[C]!==v.buttons[C].pressed&&T!=null&&(t.button3DEvent({gamepad:v,position:T.transform.position,orientation:T.transform.orientation,pressed:v.buttons[C].pressed,device:S.handedness==="left"?La.LeftController:La.RightController,input:Zs[v.mapping]&&Zs[v.mapping][C]?Zs[v.mapping][C]:Gn.Trigger}),e.lastGamepadValues[v.index][w].buttons[C]=v.buttons[C].pressed),e.lastGamepadValues[v.index][w].buttons[C]&&T!=null&&t.move3DEvent({gamepad:v,position:T.transform.position,orientation:T.transform.orientation,device:S.handedness==="left"?La.LeftController:La.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=>{Ur(h);const d={...XO(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:ka(`Unknown mouse button released: ${h.button}`);break}},t.handleTouchStart=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=Fa(a);if(d.length===2){const S={...c(ir),position:d[0].position,deviceType:l(h)};t.leftButtonReleaseEvent(S)}t.recognizeGesture("TouchStart",x)}else if(d.length===1){const x={...c(ir),position:u(h),deviceType:l(h)};t.leftButtonPressEvent(x)}},t.handleTouchMove=h=>{const d=[...a.values()];if(e.recognizeGestures&&d.length>1){const x=Fa(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(ir),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(ir),position:u(h),deviceType:l(h)};t.leftButtonReleaseEvent(x)}else if(d.length===1){const x=Fa(a);t.recognizeGesture("TouchEnd",x);const S={...c(ir),position:d[0].position,deviceType:l(h)};t.leftButtonPressEvent(S)}else{const x=Fa(a);t.recognizeGesture("TouchMove",x)}else if(d.length===1){const x={...c(ir),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 C,R;let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e._view)return null;const x=(R=(C=e._view)==null?void 0:C.getRenderable())==null?void 0:R.getRenderers();if(!x||x.length===0)return null;x.sort((M,m)=>M.getLayer()-m.getLayer());let S=null,T=null,v=null,w=x.length;for(;w--;){const M=x[w];if(e._view.isInViewport(h,d,M)&&M.getInteractive()){v=M;break}S===null&&M.getInteractive()&&(S=M),T===null&&e._view.isInViewport(h,d,M)&&(T=M)}return v===null&&(v=S),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()){IO(`
- Can not forward events without a current renderer on the interactor.
- `);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(D=>{e.startingEventPositions[D]=d[D]}),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 S=[],T=[];Object.keys(d).forEach(D=>{S[x]=d[D],T[x]=e.startingEventPositions[D],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((S[0].x-S[1].x)*(S[0].x-S[1].x)+(S[0].y-S[1].y)*(S[0].y-S[1].y));let C=Ir(Math.atan2(T[1].y-T[0].y,T[1].x-T[0].x)),R=Ir(Math.atan2(S[1].y-S[0].y,S[1].x-S[0].x)),M=R-C;R=R+180>=360?R-180:R+180,C=C+180>=360?C-180:C+180,Math.abs(R-C)<Math.abs(M)&&(M=R-C);const m=[];if(m[0]=(S[0].x-T[0].x+S[1].x-T[1].x)/2,m[1]=(S[0].y-T[0].y+S[1].y-T[1].y)/2,h==="TouchMove")if(e.currentGesture==="Start"){let D=.01*Math.sqrt(e.container.clientWidth*e.container.clientWidth+e.container.clientHeight*e.container.clientHeight);D<15&&(D=15);const V=Math.abs(w-v),L=w*3.1415926*Math.abs(M)/360,U=Math.sqrt(m[0]*m[0]+m[1]*m[1]);if(V>D&&V>L&&V>U){e.currentGesture="Pinch";const k={scale:1,touches:d};t.startPinchEvent(k)}else if(L>D&&L>U){e.currentGesture="Rotate";const k={rotation:0,touches:d};t.startRotateEvent(k)}else if(U>D){e.currentGesture="Pan";const k={translation:[0,0],touches:d};t.startPanEvent(k)}}else{if(e.currentGesture==="Rotate"){const D={rotation:M,touches:d};t.rotateEvent(D)}if(e.currentGesture==="Pinch"){const D={scale:w/v,touches:d};t.pinchEvent(D)}if(e.currentGesture==="Pan"){const D={translation:m,touches:d};t.panEvent(D)}}},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 qO={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 e0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qO,n),E.obj(t,e),e._animationExtendedEnd=0,E.event(t,e,"RenderEvent"),mo.forEach(r=>E.event(t,e,r)),E.get(t,e,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),E.setGet(t,e,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),E.moveToProtected(t,e,["view"]),YO(t,e)}const QO=E.newInstance(e0,"vtkRenderWindowInteractor");var Lo={newInstance:QO,extend:e0,handledEvents:mo,...Jg};const{vtkErrorMacro:ZO,VOID:JO}=E;function eM(t,e,n,r){return t.getRenderWindow().getViews()[0].worldToDisplay(e,n,r,t)}function tM(t,e,n,r){return t.getRenderWindow().getViews()[0].displayToWorld(e,n,r,t)}const nM={computeWorldToDisplay:eM,computeDisplayToWorld:tM};function rM(t,e){e.classHierarchy.push("vtkInteractorObserver");const n={...t};function r(){for(;e.subscribedEvents.length;)e.subscribedEvents.pop().unsubscribe()}function a(){Lo.handledEvents.forEach(s=>{t[`handle${s}`]&&e.subscribedEvents.push(e._interactor[`on${s}`](i=>e.processEvents?t[`handle${s}`](i):JO,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():ZO(`
- The interactor must be set before subscribing to events
- `)),e.enabled=s,t.modified())},t.computeDisplayToWorld=(s,i,o,u)=>s?e._interactor.getView().displayToWorld(i,o,u,s):null,t.computeWorldToDisplay=(s,i,o,u)=>s?e._interactor.getView().worldToDisplay(i,o,u,s):null,t.setPriority=s=>{n.setPriority(s)&&e._interactor&&(r(),a())}}const aM={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function t0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aM,n),E.obj(t,e),E.event(t,e,"InteractionEvent"),E.event(t,e,"StartInteractionEvent"),E.event(t,e,"EndInteractionEvent"),E.get(t,e,["_interactor","enabled"]),E.setGet(t,e,["priority","processEvents"]),E.moveToProtected(t,e,["interactor"]),rM(t,e)}const sM=E.newInstance(t0,"vtkInteractorObserver");var iM={newInstance:sM,extend:t0,...nM};const oM={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 Bo={States:oM};const{States:Kt}=Bo,Js={Rotate:Kt.IS_ROTATE,Pan:Kt.IS_PAN,Spin:Kt.IS_SPIN,Dolly:Kt.IS_DOLLY,CameraPose:Kt.IS_CAMERA_POSE,WindowLevel:Kt.IS_WINDOW_LEVEL,Slice:Kt.IS_SLICE};function cM(t,e){e.classHierarchy.push("vtkInteractorStyle"),Object.keys(Js).forEach(n=>{E.event(t,e,`Start${n}Event`),t[`start${n}`]=()=>{e.state===Kt.IS_NONE&&(e.state=Js[n],e._interactor.requestAnimation(t),t.invokeStartInteractionEvent({type:"StartInteractionEvent"}),t[`invokeStart${n}Event`]({type:`Start${n}Event`}))},E.event(t,e,`End${n}Event`),t[`end${n}`]=()=>{e.state===Js[n]&&(e.state=Kt.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 uM={state:Kt.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function n0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uM,n),iM.extend(t,e,n),cM(t,e)}const fM=E.newInstance(n0,"vtkInteractorStyle");var lM={newInstance:fM,extend:n0,...Bo};const{States:Ht}=Bo;function gM(t,e){e.classHierarchy.push("vtkInteractorStyleTrackballCamera"),t.handleMouseMove=n=>{const r=n.position,a=n.pokedRenderer;switch(e.state){case Ht.IS_ROTATE:t.handleMouseRotate(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Ht.IS_PAN:t.handleMousePan(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Ht.IS_DOLLY:t.handleMouseDolly(a,r),t.invokeInteractionEvent({type:"InteractionEvent"});break;case Ht.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===Wr.Trigger||n.input===Wr.TrackPad)){t.startCameraPose();return}n&&!n.pressed&&n.device===ki.RightController&&(n.input===Wr.Trigger||n.input===Wr.TrackPad)&&e.state===Ht.IS_CAMERA_POSE&&t.endCameraPose()},t.handleMove3D=n=>{switch(e.state){case Ht.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 Ht.IS_DOLLY:t.endDolly();break;case Ht.IS_PAN:t.endPan();break;case Ht.IS_SPIN:t.endSpin();break;case Ht.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=Ir(Math.atan2(e.previousPosition.y-i[1],e.previousPosition.x-i[0])),u=Ir(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 pM={motionFactor:10,zoomFactor:10};function r0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pM,n),lM.extend(t,e,n),E.setGet(t,e,["motionFactor","zoomFactor"]),gM(t,e)}const hM=E.newInstance(r0,"vtkInteractorStyleTrackballCamera");var a0={newInstance:hM,extend:r0};function dM(t){return t}function ko(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=>ko(e.trim())):t===""||Number.isNaN(Number(t))?t:Number(t)}function vM(){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?ko:dM;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 s0={toNativeType:ko,extractURLParameters:vM};function yM(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){fe("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){fe("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){fe("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){fe("you must set the OpenGLRenderWindow before calling setColorBuffer");return}let s=a.COLOR_ATTACHMENT0;if(r>0)if(e._openGLRenderWindow.getWebgl2())s+=r;else{fe("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){fe("you must set the OpenGLRenderWindow before calling removeColorBuffer");return}let a=r.COLOR_ATTACHMENT0;if(n>0)if(e._openGLRenderWindow.getWebgl2())a+=n;else{fe("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){fe("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 fe("Attaching depth buffer textures to fbo requires WebGL 2")},t.removeDepthBuffer=()=>{if(!e.context){fe("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 fe("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){fe("you must set the OpenGLRenderWindow before calling populateFrameBuffer");return}t.bind();const n=e.context,r=Xn.newInstance();r.setOpenGLRenderWindow(e._openGLRenderWindow),r.setMinificationFilter(mi.LINEAR),r.setMagnificationFilter(mi.LINEAR),r.create2DFromRaw(e.glFramebuffer.width,e.glFramebuffer.height,4,Ue.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 TM={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function i0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,TM,n),Ke(t,e),e.colorBuffers&&fe("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),e.colorBuffers=[],Dr(t,e,["colorBuffers"]),yM(t,e)}const xM=_e(i0,"vtkFramebuffer");var Fo={newInstance:xM,extend:i0};function SM(t,e){e.classHierarchy.push("vtkRenderPass"),t.getOperation=()=>e.currentOperation,t.setCurrentOperation=n=>{e.currentOperation=n,e.currentTraverseOperation=`traverse${E.capitalize(e.currentOperation)}`},t.getTraverseOperation=()=>e.currentTraverseOperation,t.traverse=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e.deleted||(e._currentParent=r,e.preDelegateOperations.forEach(a=>{t.setCurrentOperation(a),n.traverse(t)}),e.delegates.forEach(a=>{a.traverse(n,t)}),e.postDelegateOperations.forEach(a=>{t.setCurrentOperation(a),n.traverse(t)}))}}const CM={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function o0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CM,n),E.obj(t,e),E.get(t,e,["currentOperation"]),E.setGet(t,e,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),E.moveToProtected(t,e,["currentParent"]),SM(t,e)}const wM=E.newInstance(o0,"vtkRenderPass");var fn={newInstance:wM,extend:o0};const{Representation:EM}=Mr,{vtkErrorMacro:ou}=E;function _M(t){const e=A.substitute(t.Fragment,"//VTK::RenderPassFragmentShader::Impl",`
- float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);
- gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);
- gl_FragData[1].r = weight;
- `,!1);t.Fragment=e.result}const RM=`//VTK::System::Dec
- in vec2 tcoord;
- uniform sampler2D translucentRTexture;
- uniform sampler2D translucentRGBATexture;
- // the output of this shader
- //VTK::Output::Dec
- void main()
- {
- vec4 t1Color = texture(translucentRGBATexture, tcoord);
- float t2Color = texture(translucentRTexture, tcoord).r;
- gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);
- }
- `;function DM(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=de.newInstance({numberOfComponents:3,values:n});s.setName("points");const i=de.newInstance({numberOfComponents:2,values:r});i.setName("tcoords");const o=de.newInstance({numberOfComponents:1,values:a});e.tris.getCABO().createVBO(o,"polys",EM.SURFACE,{points:s,tcoords:i,cellOffset:0}),e.VBOBuildTime.modified()},t.createFramebuffer=n=>{const r=n.getSize(),a=n.getContext();e.framebuffer=Fo.newInstance(),e.framebuffer.setOpenGLRenderWindow(n),e.framebuffer.create(...r),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind(),e.translucentRGBATexture=Xn.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=Xn.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=Xn.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(`
- `),RM,"")},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)||ou("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)||ou("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=fg.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?_M: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 OM={framebuffer:null,copyShader:null,tris:null};function c0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OM,n),fn.extend(t,e,n),e.VBOBuildTime={},E.obj(e.VBOBuildTime,{mtime:0}),e.tris=Vr.newInstance(),E.get(t,e,["framebuffer"]),DM(t,e)}const MM=E.newInstance(c0,"vtkOpenGLOrderIndependentTranslucentPass");var VM={newInstance:MM,extend:c0};function mM(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=Fo.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=VM.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 LM={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function u0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,LM,n),fn.extend(t,e,n),E.get(t,e,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),mM(t,e)}const BM=E.newInstance(u0,"vtkForwardPass");var kM={newInstance:BM,extend:u0};const{FieldAssociations:FM}=Jn;function UM(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 NM={fieldAssociation:FM.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function f0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,NM,n),E.obj(t,e),E.setGet(t,e,["fieldAssociation","captureZValues"]),UM(t,e)}const bM=E.newInstance(f0,"vtkHardwareSelector");var l0={newInstance:bM,extend:f0};const GM={GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},$M={CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5};var WM={SelectionContent:GM,SelectionField:$M};function zM(t,e){e.classHierarchy.push("vtkSelectionNode"),t.getBounds=()=>e.points.getBounds()}const AM={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function g0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AM,n),E.obj(t,e),e.properties={},E.setGet(t,e,["contentType","fieldType","properties","selectionList"]),zM(t,e)}const HM=E.newInstance(g0,"vtkSelectionNode");var _s={newInstance:HM,extend:g0,...WM};const{PassTypes:Fe}=Gl,{SelectionContent:jM,SelectionField:cu}=_s,{FieldAssociations:Hr}=Jn,{vtkErrorMacro:p0}=E,wn=1;function h0(t){return`${t.propID} ${t.compositeID}`}function d0(t,e,n,r){if(!n)return 0;const a=(e*(r[2]-r[0]+1)+t)*4;return n[a+3]}function rn(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 v0(t,e){let n=e;return n<<=24,n|=t,n}function fr(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=rn(u[0],u[1],t.pixBuffer[Fe.ACTOR_PASS],t.area);if(c<=0||c-wn>=t.props.length)return null;const f={};f.valid=!0,f.propID=c-wn,f.prop=t.props[f.propID];let l=rn(u[0],u[1],t.pixBuffer[Fe.COMPOSITE_INDEX_PASS],t.area);if((l<0||l>16777215)&&(l=0),f.compositeID=l-wn,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[Fe.ID_LOW24]&&d0(u[0],u[1],t.pixBuffer[Fe.ID_LOW24],t.area)===0)return f;const g=rn(u[0],u[1],t.pixBuffer[Fe.ID_LOW24],t.area),p=rn(u[0],u[1],t.pixBuffer[Fe.ID_HIGH24],t.area);return f.attributeID=v0(g,p),f}const s=[e[0],e[1]],i=[0,0];let o=fr(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=fr(t,i,0,r),o&&o.valid)||(i[0]=s[0]+u,o=fr(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=fr(t,i,0,r),o&&o.valid)||(i[1]=s[1]+u,o=fr(t,i,0,r),o&&o.valid))return o}return r[0]=e[0],r[1]=e[1],null}function y0(t,e,n,r,a){const s=[];let i=0;return e.forEach((o,u)=>{const c=_s.newInstance();switch(c.setContentType(jM.INDICES),t){case Hr.FIELD_ASSOCIATION_CELLS:c.setFieldType(cu.CELL);break;case Hr.FIELD_ASSOCIATION_POINTS:c.setFieldType(cu.POINT);break;default:p0("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 KM(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=fr(t,[g,l],0,f);if(y&&y.valid){const h=h0(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 y0(t.fieldAssociation,c,t.captureZValues,t.renderer,t.openGLRenderWindow)}function PM(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=Fo.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===Hr.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 KM(u,...f)},u},t.captureBuffers=()=>{if(!e._renderer||!e._openGLRenderWindow)return p0("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=Fe.MIN_KNOWN_PASS;e.currentPass<=Fe.MAX_KNOWN_PASS;e.currentPass++)t.passRequired(e.currentPass)&&(t.preCapturePass(e.currentPass),e.captureZValues&&e.currentPass===Fe.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===Fe.ID_HIGH24){if(e.fieldAssociation===Hr.FIELD_ASSOCIATION_POINTS)return e.maximumPointId>16777215;if(e.fieldAssociation===Hr.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===Fe.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=rn(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===Fe.ACTOR_PASS&&(t.setPropColorValueFromInt(e.props.length+wn),e.props.push(r))},t.renderCompositeIndex=r=>{e.currentPass===Fe.COMPOSITE_INDEX_PASS&&t.setPropColorValueFromInt(r+wn)},t.renderAttributeId=r=>{r<0||(e.maxAttributeId=r>e.maxAttributeId?r:e.maxAttributeId)},t.passTypeToString=r=>E.enumToString(Fe,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=rn(f[0],f[1],e.pixBuffer[Fe.ACTOR_PASS],e.area);if(l<=0||l-wn>=e.props.length)return null;const g={};g.valid=!0,g.propID=l-wn,g.prop=e.props[g.propID];let p=rn(f[0],f[1],e.pixBuffer[Fe.COMPOSITE_INDEX_PASS],e.area);if((p<0||p>16777215)&&(p=0),g.compositeID=p-wn,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[Fe.ID_LOW24]&&d0(f[0],f[1],e.pixBuffer[Fe.ID_LOW24],e.area)===0)return g;const y=rn(f[0],f[1],e.pixBuffer[Fe.ID_LOW24],e.area),h=rn(f[0],f[1],e.pixBuffer[Fe.ID_HIGH24],e.area);return g.attributeID=v0(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=h0(d);if(!l.has(x))l.set(x,{info:d,pixelCount:1,attributeIDs:[d.attributeID]});else{const S=l.get(x);S.pixelCount++,e.captureZValues&&d.zValue<S.info.zValue&&(S.info=d),S.attributeIDs.indexOf(d.attributeID)===-1&&S.attributeIDs.push(d.attributeID)}}}return y0(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 XM={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function T0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,XM,n),l0.extend(t,e,n),e.propColorValue=[0,0,0],e.props=[],e.area||(e.area=[0,0,0,0]),E.setGetArray(t,e,["area"],4),E.setGet(t,e,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),E.setGetArray(t,e,["propColorValue"],3),E.moveToProtected(t,e,["renderer","openGLRenderWindow"]),E.event(t,e,"event"),PM(t,e)}const IM=E.newInstance(T0,"vtkOpenGLHardwareSelector");var x0={newInstance:IM,extend:T0,...Gl},S0={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,S){var T=x[0],v=x[1],w=x[2],C=x[3];T+=(v&w|~v&C)+S[0]-680876936|0,T=(T<<7|T>>>25)+v|0,C+=(T&v|~T&w)+S[1]-389564586|0,C=(C<<12|C>>>20)+T|0,w+=(C&T|~C&v)+S[2]+606105819|0,w=(w<<17|w>>>15)+C|0,v+=(w&C|~w&T)+S[3]-1044525330|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&C)+S[4]-176418897|0,T=(T<<7|T>>>25)+v|0,C+=(T&v|~T&w)+S[5]+1200080426|0,C=(C<<12|C>>>20)+T|0,w+=(C&T|~C&v)+S[6]-1473231341|0,w=(w<<17|w>>>15)+C|0,v+=(w&C|~w&T)+S[7]-45705983|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&C)+S[8]+1770035416|0,T=(T<<7|T>>>25)+v|0,C+=(T&v|~T&w)+S[9]-1958414417|0,C=(C<<12|C>>>20)+T|0,w+=(C&T|~C&v)+S[10]-42063|0,w=(w<<17|w>>>15)+C|0,v+=(w&C|~w&T)+S[11]-1990404162|0,v=(v<<22|v>>>10)+w|0,T+=(v&w|~v&C)+S[12]+1804603682|0,T=(T<<7|T>>>25)+v|0,C+=(T&v|~T&w)+S[13]-40341101|0,C=(C<<12|C>>>20)+T|0,w+=(C&T|~C&v)+S[14]-1502002290|0,w=(w<<17|w>>>15)+C|0,v+=(w&C|~w&T)+S[15]+1236535329|0,v=(v<<22|v>>>10)+w|0,T+=(v&C|w&~C)+S[1]-165796510|0,T=(T<<5|T>>>27)+v|0,C+=(T&w|v&~w)+S[6]-1069501632|0,C=(C<<9|C>>>23)+T|0,w+=(C&v|T&~v)+S[11]+643717713|0,w=(w<<14|w>>>18)+C|0,v+=(w&T|C&~T)+S[0]-373897302|0,v=(v<<20|v>>>12)+w|0,T+=(v&C|w&~C)+S[5]-701558691|0,T=(T<<5|T>>>27)+v|0,C+=(T&w|v&~w)+S[10]+38016083|0,C=(C<<9|C>>>23)+T|0,w+=(C&v|T&~v)+S[15]-660478335|0,w=(w<<14|w>>>18)+C|0,v+=(w&T|C&~T)+S[4]-405537848|0,v=(v<<20|v>>>12)+w|0,T+=(v&C|w&~C)+S[9]+568446438|0,T=(T<<5|T>>>27)+v|0,C+=(T&w|v&~w)+S[14]-1019803690|0,C=(C<<9|C>>>23)+T|0,w+=(C&v|T&~v)+S[3]-187363961|0,w=(w<<14|w>>>18)+C|0,v+=(w&T|C&~T)+S[8]+1163531501|0,v=(v<<20|v>>>12)+w|0,T+=(v&C|w&~C)+S[13]-1444681467|0,T=(T<<5|T>>>27)+v|0,C+=(T&w|v&~w)+S[2]-51403784|0,C=(C<<9|C>>>23)+T|0,w+=(C&v|T&~v)+S[7]+1735328473|0,w=(w<<14|w>>>18)+C|0,v+=(w&T|C&~T)+S[12]-1926607734|0,v=(v<<20|v>>>12)+w|0,T+=(v^w^C)+S[5]-378558|0,T=(T<<4|T>>>28)+v|0,C+=(T^v^w)+S[8]-2022574463|0,C=(C<<11|C>>>21)+T|0,w+=(C^T^v)+S[11]+1839030562|0,w=(w<<16|w>>>16)+C|0,v+=(w^C^T)+S[14]-35309556|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^C)+S[1]-1530992060|0,T=(T<<4|T>>>28)+v|0,C+=(T^v^w)+S[4]+1272893353|0,C=(C<<11|C>>>21)+T|0,w+=(C^T^v)+S[7]-155497632|0,w=(w<<16|w>>>16)+C|0,v+=(w^C^T)+S[10]-1094730640|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^C)+S[13]+681279174|0,T=(T<<4|T>>>28)+v|0,C+=(T^v^w)+S[0]-358537222|0,C=(C<<11|C>>>21)+T|0,w+=(C^T^v)+S[3]-722521979|0,w=(w<<16|w>>>16)+C|0,v+=(w^C^T)+S[6]+76029189|0,v=(v<<23|v>>>9)+w|0,T+=(v^w^C)+S[9]-640364487|0,T=(T<<4|T>>>28)+v|0,C+=(T^v^w)+S[12]-421815835|0,C=(C<<11|C>>>21)+T|0,w+=(C^T^v)+S[15]+530742520|0,w=(w<<16|w>>>16)+C|0,v+=(w^C^T)+S[2]-995338651|0,v=(v<<23|v>>>9)+w|0,T+=(w^(v|~C))+S[0]-198630844|0,T=(T<<6|T>>>26)+v|0,C+=(v^(T|~w))+S[7]+1126891415|0,C=(C<<10|C>>>22)+T|0,w+=(T^(C|~v))+S[14]-1416354905|0,w=(w<<15|w>>>17)+C|0,v+=(C^(w|~T))+S[5]-57434055|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~C))+S[12]+1700485571|0,T=(T<<6|T>>>26)+v|0,C+=(v^(T|~w))+S[3]-1894986606|0,C=(C<<10|C>>>22)+T|0,w+=(T^(C|~v))+S[10]-1051523|0,w=(w<<15|w>>>17)+C|0,v+=(C^(w|~T))+S[1]-2054922799|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~C))+S[8]+1873313359|0,T=(T<<6|T>>>26)+v|0,C+=(v^(T|~w))+S[15]-30611744|0,C=(C<<10|C>>>22)+T|0,w+=(T^(C|~v))+S[6]-1560198380|0,w=(w<<15|w>>>17)+C|0,v+=(C^(w|~T))+S[13]+1309151649|0,v=(v<<21|v>>>11)+w|0,T+=(w^(v|~C))+S[4]-145523070|0,T=(T<<6|T>>>26)+v|0,C+=(v^(T|~w))+S[11]-1120210379|0,C=(C<<10|C>>>22)+T|0,w+=(T^(C|~v))+S[2]+718787259|0,w=(w<<15|w>>>17)+C|0,v+=(C^(w|~T))+S[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]=C+x[3]|0}function s(x){var S=[],T;for(T=0;T<64;T+=4)S[T>>2]=x.charCodeAt(T)+(x.charCodeAt(T+1)<<8)+(x.charCodeAt(T+2)<<16)+(x.charCodeAt(T+3)<<24);return S}function i(x){var S=[],T;for(T=0;T<64;T+=4)S[T>>2]=x[T]+(x[T+1]<<8)+(x[T+2]<<16)+(x[T+3]<<24);return S}function o(x){var S=x.length,T=[1732584193,-271733879,-1732584194,271733878],v,w,C,R,M,m;for(v=64;v<=S;v+=64)a(T,s(x.substring(v-64,v)));for(x=x.substring(v-64),w=x.length,C=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],v=0;v<w;v+=1)C[v>>2]|=x.charCodeAt(v)<<(v%4<<3);if(C[v>>2]|=128<<(v%4<<3),v>55)for(a(T,C),v=0;v<16;v+=1)C[v]=0;return R=S*8,R=R.toString(16).match(/(.*?)(.{0,8})$/),M=parseInt(R[2],16),m=parseInt(R[1],16)||0,C[14]=M,C[15]=m,a(T,C),T}function u(x){var S=x.length,T=[1732584193,-271733879,-1732584194,271733878],v,w,C,R,M,m;for(v=64;v<=S;v+=64)a(T,i(x.subarray(v-64,v)));for(x=v-64<S?x.subarray(v-64):new Uint8Array(0),w=x.length,C=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],v=0;v<w;v+=1)C[v>>2]|=x[v]<<(v%4<<3);if(C[v>>2]|=128<<(v%4<<3),v>55)for(a(T,C),v=0;v<16;v+=1)C[v]=0;return R=S*8,R=R.toString(16).match(/(.*?)(.{0,8})$/),M=parseInt(R[2],16),m=parseInt(R[1],16)||0,C[14]=M,C[15]=m,a(T,C),T}function c(x){var S="",T;for(T=0;T<4;T+=1)S+=r[x>>T*8+4&15]+r[x>>T*8&15];return S}function f(x){var S;for(S=0;S<x.length;S+=1)x[S]=c(x[S]);return x.join("")}f(o("hello")),typeof ArrayBuffer<"u"&&!ArrayBuffer.prototype.slice&&function(){function x(S,T){return S=S|0||0,S<0?Math.max(S+T,0):Math.min(S,T)}ArrayBuffer.prototype.slice=function(S,T){var v=this.byteLength,w=x(S,v),C=v,R,M,m,D;return T!==n&&(C=x(T,v)),w>C?new ArrayBuffer(0):(R=C-w,M=new ArrayBuffer(R),m=new Uint8Array(M),D=new Uint8Array(this,w,R),m.set(D),M)}}();function l(x){return/[\u0080-\uFFFF]/.test(x)&&(x=unescape(encodeURIComponent(x))),x}function g(x,S){var T=x.length,v=new ArrayBuffer(T),w=new Uint8Array(v),C;for(C=0;C<T;C+=1)w[C]=x.charCodeAt(C);return S?w:v}function p(x){return String.fromCharCode.apply(null,new Uint8Array(x))}function y(x,S,T){var v=new Uint8Array(x.byteLength+S.byteLength);return v.set(new Uint8Array(x)),v.set(new Uint8Array(S),x.byteLength),T?v:v.buffer}function h(x){var S=[],T=x.length,v;for(v=0;v<T-1;v+=2)S.push(parseInt(x.substr(v,2),16));return String.fromCharCode.apply(String,S)}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 S=this._buff.length,T;for(T=64;T<=S;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 S=this._buff,T=S.length,v,w=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],C;for(v=0;v<T;v+=1)w[v>>2]|=S.charCodeAt(v)<<(v%4<<3);return this._finish(w,T),C=f(this._hash),x&&(C=h(C)),this.reset(),C},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,S){var T=S,v,w,C;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),C=parseInt(v[1],16)||0,x[14]=w,x[15]=C,a(this._hash,x)},d.hash=function(x,S){return d.hashBinary(l(x),S)},d.hashBinary=function(x,S){var T=o(x),v=f(T);return S?h(v):v},d.ArrayBuffer=function(){this.reset()},d.ArrayBuffer.prototype.append=function(x){var S=y(this._buff.buffer,x,!0),T=S.length,v;for(this._length+=x.byteLength,v=64;v<=T;v+=64)a(this._hash,i(S.subarray(v-64,v)));return this._buff=v-64<T?new Uint8Array(S.buffer.slice(v-64)):new Uint8Array(0),this},d.ArrayBuffer.prototype.end=function(x){var S=this._buff,T=S.length,v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],w,C;for(w=0;w<T;w+=1)v[w>>2]|=S[w]<<(w%4<<3);return this._finish(v,T),C=f(this._hash),x&&(C=h(C)),this.reset(),C},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,S){var T=u(new Uint8Array(x)),v=f(T);return S?h(v):v},d})})(S0);var YM=S0.exports;const qM=Fi(YM),QM=["lastShaderProgramBound","context","_openGLRenderWindow"];function ZM(t,e){e.classHierarchy.push("vtkShaderCache"),t.replaceShaderValues=(n,r,a)=>{let s=r;a.length>0&&(s=A.substitute(s,"VSOut","GSOut").result);const i=e._openGLRenderWindow.getWebgl2();let o=`
- `,u=`#version 100
- `;i?u=`#version 300 es
- #define attribute in
- #define textureCube texture
- #define texture2D texture
- #define textureCubeLod textureLod
- #define texture2DLod textureLod
- `:(e.context.getExtension("OES_standard_derivatives"),e.context.getExtension("EXT_frag_depth")&&(o=`#extension GL_EXT_frag_depth : enable
- `),e.context.getExtension("EXT_shader_texture_lod")&&(o+=`#extension GL_EXT_shader_texture_lod : enable
- #define textureCubeLod textureCubeLodEXT
- #define texture2DLod texture2DLodEXT`)),s=A.substitute(s,"//VTK::System::Dec",[`${u}
- `,i?"":`#extension GL_OES_standard_derivatives : enable
- `,o,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;let c=A.substitute(n,"//VTK::System::Dec",[`${u}
- `,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(i){c=A.substitute(c,"varying","out").result,s=A.substitute(s,"varying","in").result;let l="",g=0;for(;s.includes(`gl_FragData[${g}]`);)s=A.substitute(s,`gl_FragData\\[${g}\\]`,`fragOutput${g}`).result,l+=`layout(location = ${g}) out vec4 fragOutput${g};
- `,g++;s=A.substitute(s,"//VTK::Output::Dec",l).result}const f=A.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=qM.hash(s);if(!(i in e.shaderPrograms)){const o=A.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 JM={lastShaderProgramBound:null,shaderPrograms:null,context:null};function C0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,JM,n),e.shaderPrograms={},E.obj(t,e),E.setGet(t,e,QM),E.moveToProtected(t,e,["openGLRenderWindow"]),ZM(t,e)}const eV=E.newInstance(C0,"vtkShaderCache");var tV={newInstance:eV,extend:C0};const{vtkErrorMacro:nV}=E;function rV(t,e){e.classHierarchy.push("vtkOpenGLTextureUnitManager"),t.deleteTable=()=>{for(let n=0;n<e.numberOfTextureUnits;++n)e.textureUnits[n]===!0&&nV("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 aV={context:null,numberOfTextureUnits:0,textureUnits:0};function w0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aV,n),E.obj(t,e),e.textureUnits=[],E.get(t,e,["numberOfTextureUnits"]),E.setGet(t,e,["context"]),rV(t,e)}const sV=E.newInstance(w0,"vtkOpenGLTextureUnitManager");var iV={newInstance:sV,extend:w0};function oV(t,e){e.classHierarchy.push("vtkRenderWindowViewNode"),t.getViewNodeFactory=()=>null,t.getAspectRatio=()=>e.size[0]/e.size[1],t.getAspectRatioForRenderer=n=>{const r=n.getViewportByReference();return e.size[0]*(r[2]-r[0])/((r[3]-r[1])*e.size[1])},t.isInViewport=(n,r,a)=>{const s=a.getViewportByReference(),i=t.getFramebufferSize();return s[0]*i[0]<=n&&s[2]*i[0]>=n&&s[1]*i[1]<=r&&s[3]*i[1]>=r},t.getViewportSize=n=>{const r=n.getViewportByReference(),a=t.getFramebufferSize();return[(r[2]-r[0])*a[0],(r[3]-r[1])*a[1]]},t.getViewportCenter=n=>{const r=t.getViewportSize(n);return[r[0]*.5,r[1]*.5]},t.displayToNormalizedDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n/s[0],r/s[1],a]},t.normalizedDisplayToDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n*s[0],r*s[1],a]},t.worldToView=(n,r,a,s)=>s.worldToView(n,r,a),t.viewToWorld=(n,r,a,s)=>s.viewToWorld(n,r,a),t.worldToDisplay=(n,r,a,s)=>{const i=s.worldToView(n,r,a),o=t.getViewportSize(s),u=s.viewToProjection(i[0],i[1],i[2],o[0]/o[1]),c=s.projectionToNormalizedDisplay(u[0],u[1],u[2]);return t.normalizedDisplayToDisplay(c[0],c[1],c[2])},t.displayToWorld=(n,r,a,s)=>{const i=t.displayToNormalizedDisplay(n,r,a),o=s.normalizedDisplayToProjection(i[0],i[1],i[2]),u=t.getViewportSize(s),c=s.projectionToView(o[0],o[1],o[2],u[0]/u[1]);return s.viewToWorld(c[0],c[1],c[2])},t.normalizedDisplayToViewport=(n,r,a,s)=>{let i=s.getViewportByReference();i=t.normalizedDisplayToDisplay(i[0],i[1],0);const o=t.normalizedDisplayToDisplay(n,r,a);return[o[0]-i[0]-.5,o[1]-i[1]-.5,a]},t.viewportToNormalizedViewport=(n,r,a,s)=>{const i=t.getViewportSize(s);return i&&i[0]!==0&&i[1]!==0?[n/(i[0]-1),r/(i[1]-1),a]:[n,r,a]},t.normalizedViewportToViewport=(n,r,a,s)=>{const i=t.getViewportSize(s);return[n*(i[0]-1),r*(i[1]-1),a]},t.displayToLocalDisplay=(n,r,a)=>{const s=t.getFramebufferSize();return[n,s[1]-r-1,a]},t.viewportToNormalizedDisplay=(n,r,a,s)=>{let i=s.getViewportByReference();i=t.normalizedDisplayToDisplay(i[0],i[1],0);const o=n+i[0]+.5,u=r+i[1]+.5;return t.displayToNormalizedDisplay(o,u,a)},t.getComputedDevicePixelRatio=()=>e.size[0]/t.getContainerSize()[0],t.getContainerSize=()=>{E.vtkErrorMacro("not implemented")},t.getPixelData=(n,r,a,s)=>{E.vtkErrorMacro("not implemented")},t.createSelector=()=>{E.vtkErrorMacro("not implemented")}}const cV={size:void 0,selector:void 0};function E0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cV,n),e.size||(e.size=[300,300]),E.getArray(t,e,["size"],2),E.get(t,e,["selector"]),me.extend(t,e,n),oV(t,e)}const uV=E.newInstance(E0,"vtkRenderWindowViewNode");var _0={newInstance:uV,extend:E0};const fV="__getUnderlyingContext";function lV(){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===fV)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:uu,vtkErrorMacro:fu}=E,gV={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function st(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 R0=[];function pV(){ds++,R0.forEach(t=>t(ds))}function hV(){ds--,R0.forEach(t=>t(ds))}function lu(t){t.preventDefault()}function dV(t,e){e.classHierarchy.push("vtkOpenGLRenderWindow");const n=lV();t.getViewNodeFactory=()=>e.myFactory,e.canvas.addEventListener("webglcontextlost",lu,!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=iV.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&&fu("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,uu("using webgl2"))),f||(uu("using webgl1"),f=e.canvas.getContext("webgl",c)||e.canvas.getContext("experimental-webgl",c)),new Proxy(f,n)},t.restoreContext=()=>{const c=fn.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){fu("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 Ue.CHAR:case Ue.SIGNED_CHAR:case Ue.UNSIGNED_CHAR:return 1;case f:case l:case Ue.UNSIGNED_SHORT:case Ue.SHORT:case Ue.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 Ue.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&&Ue.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&&Ue.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 Ue.UNSIGNED_SHORT:case Ue.SHORT:case Ue.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(S=>{if(S.getContainer){const v=S.getContainer().getElementsByTagName("canvas");for(let w=0;w<v.length;w++){const C=v[w],R=C.getBoundingClientRect(),M=R.x-g.x,m=R.y-g.y;l.drawImage(C,M,m)}}})});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(S=>{let{restoreParamsFn:T,arg:v}=S;return T(v)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),y(x);else{const S=document.createElement("img");if(S.style=gV,S.src=x,e._screenshot.placeHolder=e.el.appendChild(S),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(),C=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(C))}}),e._screenshot.cameras.forEach(v=>{let{resetCameraFn:w,resetCameraArgs:C}=v;return w(C)})}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&&st(c,c.RGBA,c.UNSIGNED_BYTE)?"RGBA":"",f&&st(c,c.RGB,c.UNSIGNED_BYTE)?"RGB":"",f&&st(c,c.LUMINANCE,c.UNSIGNED_BYTE)?"LUMINANCE":"",f&&st(c,c.ALPHA,c.UNSIGNED_BYTE)?"ALPHA":"",f&&st(c,c.LUMINANCE_ALPHA,c.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[l&&st(c,c.RGBA,l.HALF_FLOAT_OES)?"RGBA":"",l&&st(c,c.RGB,l.HALF_FLOAT_OES)?"RGB":"",l&&st(c,c.LUMINANCE,l.HALF_FLOAT_OES)?"LUMINANCE":"",l&&st(c,c.ALPHA,l.HALF_FLOAT_OES)?"ALPHA":"",l&&st(c,c.LUMINANCE_ALPHA,l.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[f&&st(c,c.RGBA,c.FLOAT)?"RGBA":"",f&&st(c,c.RGB,c.FLOAT)?"RGB":"",f&&st(c,c.LUMINANCE,c.FLOAT)?"LUMINANCE":"",f&&st(c,c.ALPHA,c.FLOAT)?"ALPHA":"",f&&st(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,S,T]=h.pop();S&&(d[S]={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=x0.newInstance();return c.setOpenGLRenderWindow(t),c};function o(){e.canvas.removeEventListener("webglcontextlost",lu),e.canvas.removeEventListener("webglcontextrestored",t.restoreContext)}t.delete=E.chain(o,t.delete,t.setViewStream,hV),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 vV={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 yV(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vV,n),_0.extend(t,e,n),e.canvas=document.createElement("canvas"),e.canvas.style.width="100%",pV(),e.selector||(e.selector=x0.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=j2.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",D0),e.shaderCache=tV.newInstance(),e.shaderCache.setOpenGLRenderWindow(t),e.renderPasses[0]=kM.newInstance(),E.event(t,e,"imageReady"),E.get(t,e,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer"]),E.setGet(t,e,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),E.setGetArray(t,e,["size"],2),E.event(t,e,"windowResizeEvent"),dV(t,e)}const D0=E.newInstance(yV,"vtkOpenGLRenderWindow");Vo("WebGL",D0);const ei=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function TV(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
- ${s}
- versus pipeline
- ${i}
- `),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<ei.length;n++)t[ei[n]]=function(){return e.handle[ei[n]](...arguments)}}const xV={description:null,handle:null,boundPipeline:null,pipelineHash:null,pipelineSettings:null,replaceShaderCodeFunction:null,depthTextureView:null,label:null};function O0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xV,n),Ke(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=[],ut(t,e,["boundPipeline","colorTextureViews"]),$e(t,e,["depthTextureView","description","handle","label","pipelineHash","pipelineSettings","replaceShaderCodeFunction"]),TV(t,e)}const SV=_e(O0,"vtkWebGPURenderEncoder");var an={newInstance:SV,extend:O0};function CV(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=Yt.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=Yt.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=an.newInstance({label:"OpaquePass"}),e.renderEncoder.setPipelineHash("op")}}const wV={renderEncoder:null,colorTexture:null,depthTexture:null};function M0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wV,n),fn.extend(t,e,n),E.get(t,e,["colorTexture","depthTexture"]),CV(t,e)}const EV=E.newInstance(M0,"vtkWebGPUOpaquePass");var _V={newInstance:EV,extend:M0};const RV=`
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var tcoord: vec2<i32> = vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y));
- var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;
- if (reveal == 1.0) { discard; }
- var tcolor: vec4<f32> = textureLoad(oitpColorTexture, tcoord, 0);
- var total: f32 = max(tcolor.a, 0.01);
- var computedColor: vec4<f32> = vec4<f32>(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);
- //VTK::RenderEncoder::Impl
- return output;
- }
- `;function DV(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=Yt.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=Yt.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=wr.newInstance(),e.fullScreenQuad.setDevice(r.getDevice()),e.fullScreenQuad.setPipelineHash("oitpfsq"),e.fullScreenQuad.setTextureViews(e.translucentRenderEncoder.getColorTextureViews()),e.fullScreenQuad.setFragmentShaderTemplate(RV)}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=an.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=an.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 OV={colorTextureView:null,depthTextureView:null};function V0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OV,n),fn.extend(t,e,n),E.setGet(t,e,["colorTextureView","depthTextureView"]),DV(t,e)}const MV=E.newInstance(V0,"vtkWebGPUOrderIndependentTranslucentPass");var VV={newInstance:MV,extend:V0};const or={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5},mV=`
- //VTK::Renderer::Dec
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::Volume::TraverseDec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- fn getTextureValue(vTex: texture_3d<f32>, tpos: vec4<f32>) -> f32
- {
- // todo multicomponent support
- return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;
- }
- fn getGradient(vTex: texture_3d<f32>, tpos: vec4<f32>, vNum: i32, scalar: f32) -> vec4<f32>
- {
- var result: vec4<f32>;
- var tstep: vec4<f32> = volumeSSBO.values[vNum].tstep;
- result.x = getTextureValue(vTex, tpos + vec4<f32>(tstep.x, 0.0, 0.0, 1.0)) - scalar;
- result.y = getTextureValue(vTex, tpos + vec4<f32>(0.0, tstep.y, 0.0, 1.0)) - scalar;
- result.z = getTextureValue(vTex, tpos + vec4<f32>(0.0, 0.0, tstep.z, 1.0)) - scalar;
- result.w = 0.0;
- // divide by spacing as that is our delta
- result = result / volumeSSBO.values[vNum].spacing;
- // now we have a gradient in unit tcoords
- var grad: f32 = length(result.xyz);
- if (grad > 0.0)
- {
- // rotate to View Coords, needed for lighting and shading
- var nMat: mat4x4<f32> = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;
- result = nMat * result;
- result = result / length(result);
- }
- // store gradient magnitude in .w
- result.w = grad;
- return result;
- }
- fn processVolume(vTex: texture_3d<f32>, vNum: i32, cNum: i32, posSC: vec4<f32>, tfunRows: f32) -> vec4<f32>
- {
- var outColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);
- // convert to tcoords and reject if outside the volume
- var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*posSC;
- if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 ||
- tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; }
- var scalar: f32 = getTextureValue(vTex, tpos);
- var coord: vec2<f32> =
- vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,
- (0.5 + 2.0 * f32(vNum)) / tfunRows);
- var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);
- var gofactor: f32 = 1.0;
- var normal: vec4<f32> = vec4<f32>(0.0,0.0,0.0,0.0);
- if (componentSSBO.values[cNum].gomin < 1.0 || volumeSSBO.values[vNum].shade[0] > 0.0)
- {
- normal = getGradient(vTex, tpos, vNum, scalar);
- if (componentSSBO.values[cNum].gomin < 1.0)
- {
- gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,
- componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);
- }
- }
- coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);
- var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;
- if (volumeSSBO.values[vNum].shade[0] > 0.0)
- {
- color = color*abs(normal.z);
- }
- outColor = vec4<f32>(color.rgb, gofactor * opacity);
- return outColor;
- }
- // adjust the start and end point of a raycast such that it intersects the unit cube.
- // This function is used to take a raycast starting point and step vector
- // and numSteps and return the startijng and ending steps for intersecting the
- // unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates
- // that have valid values. So this funtion can be used to take a ray in texture coordinates
- // and bound it to intersecting the texture.
- //
- fn adjustBounds(tpos: vec4<f32>, tstep: vec4<f32>, numSteps: f32) -> vec2<f32>
- {
- var result: vec2<f32> = vec2<f32>(0.0, numSteps);
- var tpos2: vec4<f32> = tpos + tstep*numSteps;
- // move tpos to the start of the volume
- var adjust: f32 =
- min(
- max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),
- min(
- max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),
- max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));
- if (adjust < 0.0)
- {
- result.x = result.x - adjust;
- }
- // adjust length to the end
- adjust =
- max(
- min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),
- max(
- min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),
- min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));
- if (adjust > 0.0)
- {
- result.y = result.y - adjust;
- }
- return result;
- }
- fn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4<f32>
- {
- // how many rows (tfuns) do we have in our tfunTexture
- var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);
- var coord: vec2<f32> =
- vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,
- (0.5 + 2.0 * f32(vNum)) / tfunRows);
- var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);
- coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);
- var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;
- return vec4<f32>(color.rgb, opacity);
- }
- fn traverseMax(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
- {
- // convert to tcoords and reject if outside the volume
- var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
- var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
- var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
- var tstep: vec4<f32> = tpos2 - tpos;
- var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
- // did we hit anything
- if (rayBounds.x >= rayBounds.y)
- {
- traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
- return;
- }
- tpos = tpos + tstep*rayBounds.x;
- var curDist: f32 = rayBounds.x;
- var maxVal: f32 = -1.0e37;
- loop
- {
- var scalar: f32 = getTextureValue(vTex, tpos);
- if (scalar > maxVal)
- {
- maxVal = scalar;
- }
- // increment position
- curDist = curDist + 1.0;
- tpos = tpos + tstep;
- // check if we have reached a terminating condition
- if (curDist > rayBounds.y) { break; }
- }
- // process to get the color and opacity
- traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);
- }
- fn traverseMin(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
- {
- // convert to tcoords and reject if outside the volume
- var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
- var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
- var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
- var tstep: vec4<f32> = tpos2 - tpos;
- var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
- // did we hit anything
- if (rayBounds.x >= rayBounds.y)
- {
- traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
- return;
- }
- tpos = tpos + tstep*rayBounds.x;
- var curDist: f32 = rayBounds.x;
- var minVal: f32 = 1.0e37;
- loop
- {
- var scalar: f32 = getTextureValue(vTex, tpos);
- if (scalar < minVal)
- {
- minVal = scalar;
- }
- // increment position
- curDist = curDist + 1.0;
- tpos = tpos + tstep;
- // check if we have reached a terminating condition
- if (curDist > rayBounds.y) { break; }
- }
- // process to get the color and opacity
- traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);
- }
- fn traverseAverage(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
- {
- // convert to tcoords and reject if outside the volume
- var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
- var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
- var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
- var tstep: vec4<f32> = tpos2 - tpos;
- var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
- // did we hit anything
- if (rayBounds.x >= rayBounds.y)
- {
- traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
- return;
- }
- let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;
- tpos = tpos + tstep*rayBounds.x;
- var curDist: f32 = rayBounds.x;
- var avgVal: f32 = 0.0;
- var sampleCount: f32 = 0.0;
- loop
- {
- var sample: f32 = getTextureValue(vTex, tpos);
- // right now leave filtering off until WebGL changes get merged
- // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)
- // {
- avgVal = avgVal + sample;
- sampleCount = sampleCount + 1.0;
- // }
- // increment position
- curDist = curDist + 1.0;
- tpos = tpos + tstep;
- // check if we have reached a terminating condition
- if (curDist > rayBounds.y) { break; }
- }
- if (sampleCount <= 0.0)
- {
- traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
- }
- // process to get the color and opacity
- traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);
- }
- fn traverseAdditive(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)
- {
- // convert to tcoords and reject if outside the volume
- var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;
- var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;
- var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);
- var tstep: vec4<f32> = tpos2 - tpos;
- var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);
- // did we hit anything
- if (rayBounds.x >= rayBounds.y)
- {
- traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);
- return;
- }
- let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;
- tpos = tpos + tstep*rayBounds.x;
- var curDist: f32 = rayBounds.x;
- var sumVal: f32 = 0.0;
- loop
- {
- var sample: f32 = getTextureValue(vTex, tpos);
- // right now leave filtering off until WebGL changes get merged
- // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)
- // {
- sumVal = sumVal + sample;
- // }
- // increment position
- curDist = curDist + 1.0;
- tpos = tpos + tstep;
- // check if we have reached a terminating condition
- if (curDist > rayBounds.y) { break; }
- }
- // process to get the color and opacity
- traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);
- }
- fn composite(rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>) -> vec4<f32>
- {
- // initial ray position is at the beginning
- var rayPosSC: vec4<f32> = minPosSC;
- // how many rows (tfuns) do we have in our tfunTexture
- var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);
- var curDist: f32 = 0.0;
- var computedColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);
- var sampleColor: vec4<f32>;
- //VTK::Volume::TraverseCalls
- loop
- {
- // for each volume, sample and accumulate color
- //VTK::Volume::CompositeCalls
- // increment position
- curDist = curDist + mapperUBO.SampleDistance;
- rayPosSC = rayPosSC + rayStepSC;
- // check if we have reached a terminating condition
- if (curDist > rayLengthSC) { break; }
- if (computedColor.a > 0.98) { break; }
- }
- return computedColor;
- }
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;
- var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;
- // discard empty rays
- if (rayMax <= rayMin) { discard; }
- else
- {
- // compute start and end ray positions in view coordinates
- var minPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);
- minPosSC = minPosSC * (1.0 / minPosSC.w);
- var maxPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);
- maxPosSC = maxPosSC * (1.0 / maxPosSC.w);
- var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);
- var rayStepSC: vec4<f32> = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);
- rayStepSC.w = 0.0;
- var computedColor: vec4<f32>;
- //VTK::Volume::Loop
- //VTK::RenderEncoder::Impl
- }
- return output;
- }
- `,it=new Float64Array(16),yn=new Float64Array(16);function LV(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()===or.COMPOSITE_BLEND?(c.push(` sampleColor = processVolume(volTexture${g}, ${g}, ${e.rowStarts[g]}, rayPosSC, tfunRows);`),c.push(` computedColor = vec4<f32>(
- sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,
- (1.0 - computedColor.a)*sampleColor.a + computedColor.a);`)):(f.push(` sampleColor = traverseVals[${g}];`),f.push(` computedColor = vec4<f32>(
- sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,
- (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===or.COMPOSITE_BLEND?l=!0:p===or.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===or.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===or.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===or.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(),S=(d.getPointData()&&d.getPointData().getScalars()).getNumberOfComponents(),v=h.getIndependentComponents()?S: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(),S=(d.getPointData()&&d.getPointData().getScalars()).getNumberOfComponents(),v=h.getIndependentComponents()?S:1;for(let w=0;w<v;++w){const C=h.getRGBTransferFunction(w),R=C.getRange();C.getTable(R[0],R[1],f,c,1);let M=u*f*4;for(let L=0;L<f;++L){i[M+L*4]=255*c[L*3],i[M+L*4+1]=255*c[L*3+1],i[M+L*4+2]=255*c[L*3+2],i[M+L*4+3]=255;for(let U=0;U<4;U++)i[M+(f+L)*4+U]=i[M+L*4+U]}const m=h.getScalarOpacity(w),D=e.sampleDist/h.getScalarOpacityUnitDistance(w),V=m.getRange();m.getTable(V[0],V[1],f,c,1),M=u*f;for(let L=0;L<f;++L)o[M+L]=1-(1-c[L])**D,o[M+L+f]=o[M+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 C=0;C<e.volumes.length;C++){const R=e.volumes[C].getRenderable(),M=R.getMapper(),m=M.getInputData();s=Math.max(s,R.getMTime(),m.getMTime(),M.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 C=0;C<e.volumes.length;C++){const M=e.volumes[C].getRenderable(),m=M.getMapper(),D=m.getInputData();ce(it),Be(it,it,i);const V=M.getMatrix();Ee(yn,V),ct(yn,yn),je(it,yn,it);const L=D.getWorldToIndex();je(it,L,it);const U=D.getDimensions();ce(yn),Yn(yn,yn,[1/U[0],1/U[1],1/U[2]]),je(it,yn,it);for(let Q=0;Q<16;Q++)o[C*16+Q]=it[Q];ct(it,it);for(let Q=0;Q<4;Q++)u[C*16+Q*4]=it[Q*4],u[C*16+Q*4+1]=it[Q*4+1],u[C*16+Q*4+2]=it[Q*4+2],u[C*16+Q*4+3]=0;c[C*4]=1/U[0],c[C*4+1]=1/U[1],c[C*4+2]=1/U[2],c[C*4+3]=1,f[C*4]=M.getProperty().getShade()?1:0;const k=D.getSpacing();l[C*4]=k[0],l[C*4+1]=k[1],l[C*4+2]=k[2],l[C*4+3]=1;const Y=e.textureViews[C+4].getTexture().getScale(),q=m.getIpScalarRange();g[C*4]=q[0]/Y,g[C*4+1]=q[1]/Y,g[C*4+2]=m.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),S=new Float64Array(e.numRows),T=new Float64Array(e.numRows),v=new Float64Array(e.numRows);let w=0;for(let C=0;C<e.volumes.length;C++){const M=e.volumes[C].getRenderable(),m=M.getMapper(),D=M.getProperty(),V=m.getInputData(),U=(V.getPointData()&&V.getPointData().getScalars()).getNumberOfComponents(),k=D.getIndependentComponents(),Y=e.textureViews[C+4].getTexture().getFormat(),q=He.getDetailsFromTextureFormat(Y),Q=q.elementSize===2&&q.sampleType==="float",ne={scale:[255],offset:[0]};Q&&(ne.scale[0]=1);for(let z=0;z<U;z++){const F=k?z:0,K=ne.scale[z],X=D.getScalarOpacity(F).getRange(),H=K/(X[1]-X[0]),Ce=(ne.offset[z]-X[0])/(X[1]-X[0]);d[w]=Ce,h[w]=H;const ie=D.getRGBTransferFunction(F).getRange();if(y[w]=(ne.offset[z]-ie[0])/(ie[1]-ie[0]),p[w]=K/(ie[1]-ie[0]),D.getUseGradientOpacity(F)){const lt=D.getGradientOpacityMinimumOpacity(F),rt=D.getGradientOpacityMaximumOpacity(F);x[w]=lt,S[w]=rt;const Xe=[D.getGradientOpacityMinimumValue(F),D.getGradientOpacityMaximumValue(F)];v[w]=K*(rt-lt)/(Xe[1]-Xe[0]),T[w]=-Xe[0]*(rt-lt)/(Xe[1]-Xe[0])+lt}else x[w]=1,S[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",S),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=Mo.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 BV={volumes:null,rowLength:1024,lastVolumeLength:0};function m0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BV,n),wr.extend(t,e,n),e.fragmentShaderTemplate=mV,e.UBO=In.newInstance({label:"mapperUBO"}),e.UBO.addEntry("SampleDistance","f32"),e.SSBO=Li.newInstance({label:"volumeSSBO"}),e.componentSSBO=Li.newInstance({label:"componentSSBO"}),e.lutBuildTime={},E.obj(e.lutBuildTime,{mtime:0}),LV(t,e)}const kV=E.newInstance(m0,"vtkWebGPUVolumePassFSQ");var FV={newInstance:kV,extend:m0};const{Representation:UV}=Mr,{BufferUsage:gu,PrimitiveTypes:NV}=Mn,ti=[[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]],bV=`
- //VTK::Renderer::Dec
- //VTK::Select::Dec
- //VTK::VolumePass::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::Mapper::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output : fragmentOutput;
- //VTK::Select::Impl
- //VTK::TCoord::Impl
- //VTK::VolumePass::Impl
- // use the maximum (closest) of the current value and the zbuffer
- // the blend func will then take the min to find the farthest stop value
- var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y)), 0));
- //VTK::RenderEncoder::Impl
- return output;
- }
- `,GV=`
- //VTK::Renderer::Dec
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var computedColor: vec4<f32> = textureSample(volumePassColorTexture,
- volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);
- //VTK::RenderEncoder::Impl
- return output;
- }
- `;function $V(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=FV.newInstance(),e.fullScreenQuad.setDevice(n.getDevice()),e.fullScreenQuad.setTextureViews([...e._depthRangeEncoder.getColorTextureViews()])),e._volumeCopyQuad||(e._volumeCopyQuad=wr.newInstance(),e._volumeCopyQuad.setPipelineHash("volpassfsq"),e._volumeCopyQuad.setDevice(n.getDevice()),e._volumeCopyQuad.setFragmentShaderTemplate(GV),e._copyUBO=In.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]=Vt(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=E.chain(()=>{e._animationRateSubscription&&(e._animationRateSubscription.unsubscribe(),e._animationRateSubscription=null)},t.delete),t.computeTiming=n=>{const r=n.getRenderable().getInteractor();if(e._lastScale==null){const a=e.volumes[0].getRenderable().getMapper();e._lastScale=a.getInitialInteractionScale()||1}e._useSmallViewport=!1,r.isAnimating()&&e._lastScale>1.5&&(e._useSmallViewport=!0),e._colorTexture.resize(n.getCanvas().width,n.getCanvas().height),e._animationRateSubscription||(e._animationRateSubscription=r.onAnimationFrameRateUpdate(()=>{const a=e.volumes[0].getRenderable().getMapper();if(a.getAutoAdjustSampleDistances()){const s=r.getRecentAnimationFrameRate(),i=e._lastScale*r.getDesiredUpdateRate()/s;e._lastScale=i,e._lastScale>400&&(e._lastScale=400)}else e._lastScale=a.getImageSampleDistance()*a.getImageSampleDistance();e._lastScale<1.5&&(e._lastScale=1.5)}))},t.rayCastPass=(n,r,a)=>{const s=e._firstGroup?e._clearEncoder:e._mergeEncoder;s.attachTextureViews(),s.begin(n.getCommandEncoder());let i=e._colorTextureView.getTexture().getWidth(),o=e._colorTextureView.getTexture().getHeight();if(e._useSmallViewport){const u=n.getCanvas(),c=1/Math.sqrt(e._lastScale);e._smallViewportWidth=Math.ceil(c*u.width),e._smallViewportHeight=Math.ceil(c*u.height),i=e._smallViewportWidth,o=e._smallViewportHeight}s.getHandle().setViewport(0,0,i,o,0,1),s.getHandle().setScissorRect(0,0,i,o),e.fullScreenQuad.setWebGPURenderer(r),e.fullScreenQuad.setVolumes(a),e.fullScreenQuad.prepareAndDraw(s),s.end()},t.renderDepthBounds=(n,r)=>{t.updateDepthPolyData(n);const a=e._boundsPoly,s=a.getPoints(),i=a.getPolys();let o={hash:`vp${i.getMTime()}`,usage:gu.Index,cells:i,numberOfPoints:s.getNumberOfPoints(),primitiveType:NV.Triangles,representation:UV.SURFACE};const u=r.getDevice().getBufferManager().getBuffer(o);e._mapper.getVertexInput().setIndexBuffer(u),o={usage:gu.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+ti[p][0],c[l++]=g+ti[p][1],c[l++]=g+ti[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=an.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=Yt.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=Yt.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=Yt.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=an.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=an.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=an.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 WV={colorTextureView:null,depthTextureView:null,volumes:null};function L0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,WV,n),fn.extend(t,e,n),e._mapper=Oo.newInstance(),e._mapper.setFragmentShaderTemplate(bV),e._mapper.getShaderReplacements().set("replaceShaderVolumePass",(r,a,s)=>{a.getShaderDescription("fragment").addBuiltinInput("vec4<f32>","@builtin(position) fragPos")}),e._boundsPoly=nt.newInstance(),e._lastMTimes=[],E.setGet(t,e,["colorTextureView","depthTextureView"]),$V(t,e)}const zV=E.newInstance(L0,"vtkWebGPUVolumePass");var AV={newInstance:zV,extend:L0};const HV=`
- //VTK::Mapper::Dec
- //VTK::TCoord::Dec
- //VTK::RenderEncoder::Dec
- //VTK::IOStructs::Dec
- @fragment
- fn main(
- //VTK::IOStructs::Input
- )
- //VTK::IOStructs::Output
- {
- var output: fragmentOutput;
- var computedColor: vec4<f32> = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4<f32>(0.0),vec4<f32>(1.0));
- //VTK::RenderEncoder::Impl
- return output;
- }
- `;function jV(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=_V.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=VV.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=AV.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=an.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=Mo.newInstance({label:"finalPassSampler"}),e._fsqSampler.create(n.getDevice(),{minFilter:"linear",magFilter:"linear"}),e._fullScreenQuad=wr.newInstance(),e._fullScreenQuad.setDevice(n.getDevice()),e._fullScreenQuad.setPipelineHash("fpfsq"),e._fullScreenQuad.setTextureViews([e.opaquePass.getColorTextureView()]),e._fullScreenQuad.setAdditionalBindables([e._fsqSampler]),e._fullScreenQuad.setFragmentShaderTemplate(HV),e._finalBlitOutputTextureView=Hg.newInstance(),e._finalBlitEncoder.setColorTextureView(0,e._finalBlitOutputTextureView)},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.addVolume=n=>{e.volumes.push(n)}}const KV={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function B0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,KV,n),fn.extend(t,e,n),E.setGet(t,e,["opaquePass","translucentPass","volumePass"]),jV(t,e)}const PV=E.newInstance(B0,"vtkForwardPass");var XV={newInstance:PV,extend:B0};const{VtkDataTypes:bn}=de;function IV(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 bn.UNSIGNED_CHAR:a.format+="8unorm";break;case bn.FLOAT:case bn.UNSIGNED_INT:case bn.INT:case bn.DOUBLE:case bn.UNSIGNED_SHORT:case bn.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=Yt.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 YV={handle:null,device:null};function k0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YV,n),E.obj(t,e),E.setGet(t,e,["device"]),IV(t,e)}const qV=E.newInstance(k0);var QV={newInstance:qV,extend:k0};class ZV 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 JV(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 e3={handle:null,pipelines:null,shaderCache:null,bindGroupLayouts:null,bufferManager:null,textureManager:null};function F0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,e3,n),Ke(t,e),$e(t,e,["handle"]),ut(t,e,["bufferManager","shaderCache","textureManager"]),e.objectCache=new ZV,e.shaderCache=oe.newInstance(),e.shaderCache.setDevice(t),e.bindGroupLayouts=[],e.bufferManager=Mn.newInstance(),e.bufferManager.setDevice(t),e.textureManager=QV.newInstance(),e.textureManager.setDevice(t),e.pipelines={},JV(t,e)}const t3=_e(F0,"vtkWebGPUDevice");var n3={newInstance:t3,extend:F0};function r3(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=Yt.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=Yt.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=an.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 a3={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function U0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,a3,n),fn.extend(t,e,n),E.get(t,e,["colorTexture","depthTexture"]),r3(t,e)}const s3=E.newInstance(U0,"vtkWebGPUHardwareSelectionPass");var i3={newInstance:s3,extend:U0};const{SelectionContent:o3,SelectionField:pu}=_s,{FieldAssociations:hu}=Jn,{vtkErrorMacro:N0}=E;function c3(t){return`${t.propID} ${t.compositeID}`}function du(t,e,n,r){const a=((n.height-e-1)*n.colorBufferWidth+t)*4+r;return n.colorValues[a]}function lr(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=du(e[0],e[1],t,0);if(u<=0)return null;const c={};c.propID=u;let f=du(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=lr(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=lr(t,i,0,r),o)||(i[0]=s[0]+u,o=lr(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=lr(t,i,0,r),o)||(i[1]=s[1]+u,o=lr(t,i,0,r),o))return o}return r[0]=e[0],r[1]=e[1],null}function u3(t,e,n){const r=[];let a=0;return e.forEach((s,i)=>{const o=_s.newInstance();switch(o.setContentType(o3.INDICES),t){case hu.FIELD_ASSOCIATION_CELLS:o.setFieldType(pu.CELL);break;case hu.FIELD_ASSOCIATION_POINTS:o.setFieldType(pu.POINT);break;default:N0("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 f3(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=lr(t,[g,l],0,f);if(y){const h=c3(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 u3(t.fieldAssociation,c,t)}function l3(t,e){e.classHierarchy.push("vtkWebGPUHardwareSelector"),t.endSelection=()=>{e.WebGPURenderer.setSelector(null)},t.getSourceDataAsync=async n=>{if(!n||!e._WebGPURenderWindow)return N0("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=Er.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=Er.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)=>f3(u,p,y,h,d),u}}const g3={};function b0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,g3,n),l0.extend(t,e,n),e._selectionPass=i3.newInstance(),E.setGet(t,e,["_WebGPURenderWindow"]),E.moveToProtected(t,e,["WebGPURenderWindow"]),l3(t,e)}const p3=E.newInstance(b0,"vtkWebGPUHardwareSelector");var G0={newInstance:p3,extend:b0};const{vtkErrorMacro:vu}=E,h3={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function d3(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){vu("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&&vu("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=n3.newInstance(),e.device.initialize(await e.adapter.requestDevice()),e.deleted){e.device=null;return}e.context=e.canvas.getContext("webgpu")}},t.releaseGraphicsResources=()=>{const i=fn.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],C=w.getBoundingClientRect(),R=C.x-l.x,M=C.y-l.y;u.drawImage(w,R,M)}}})});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=h3,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 S=x.getActiveCamera(),T=S.get("focalPoint","position","parallelScale");return{resetCameraArgs:d?{renderer:x}:void 0,resetCameraFn:d?o:x.resetCamera,restoreParamsFn:S.set,arg:JSON.parse(JSON.stringify(T))}}),e._screenshot.cameras.forEach(x=>{let{resetCameraFn:S,resetCameraArgs:T}=x;return S(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=Er.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*Nt.fromHalf(u.colorValues[d]),g[h+1]=255*Nt.fromHalf(u.colorValues[d+1]),g[h+2]=255*Nt.fromHalf(u.colorValues[d+2]),g[h+3]=255*Nt.fromHalf(u.colorValues[d+3])}return u.colorValues=g,u},t.createSelector=()=>{const i=G0.newInstance();return i.setWebGPURenderWindow(t),i};const s=t.setSize;t.setSize=(i,o)=>{const u=s(i,o);return u&&t.invokeWindowResizeEvent({width:i,height:o}),u},t.delete=E.chain(t.delete,t.setViewStream)}const v3={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 y3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,v3,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",_0.extend(t,e,n),e.myFactory=rR.newInstance(),e.myFactory.registerOverride("vtkRenderWindow",$0),e.renderPasses[0]=XV.newInstance(),e.selector||(e.selector=G0.newInstance(),e.selector.setWebGPURenderWindow(t)),E.event(t,e,"imageReady"),E.event(t,e,"initialized"),E.get(t,e,["commandEncoder","device","presentationFormat","useBackgroundImage","xrSupported"]),E.setGet(t,e,["initialized","context","canvas","device","renderPasses","notifyStartCaptureImage","cursor","useOffScreen"]),E.setGetArray(t,e,["size"],2),E.event(t,e,"windowResizeEvent"),d3(t,e)}const $0=E.newInstance(y3,"vtkWebGPURenderWindow");Vo("WebGPU",$0);const T3=s0.extractURLParameters();function x3(t,e){const n=t.invokeResize;delete t.invokeResize,e.renderWindow=Zg.newInstance(),e.renderer=Yg.newInstance(),e.renderWindow.addRenderer(e.renderer),e._apiSpecificRenderWindow=e.renderWindow.newAPISpecificView(T3.viewAPI??e.defaultViewAPI),e.renderWindow.addView(e._apiSpecificRenderWindow),e.interactor=Lo.newInstance(),e.interactor.setInteractorStyle(a0.newInstance()),e.interactor.setView(e._apiSpecificRenderWindow),e.interactor.initialize(),t.setBackground=e.renderer.setBackground,t.setBackground(...e.background),t.resize=()=>{if(e.container){const r=e.container.getBoundingClientRect(),a=window.devicePixelRatio||1;e._apiSpecificRenderWindow.setSize(Math.floor(r.width*a),Math.floor(r.height*a)),n(),e.renderWindow.render()}},t.setContainer=r=>{e.container&&e.interactor.unbindEvents(e.container),e.container=r,e._apiSpecificRenderWindow.setContainer(e.container),e.container&&e.interactor.bindEvents(e.container)},t.delete=E.chain(t.setContainer,e._apiSpecificRenderWindow.delete,t.delete),e.listenWindowResize&&window.addEventListener("resize",t.resize),t.resize()}const S3={background:[.32,.34,.43],listenWindowResize:!0,container:null};function W0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,S3,n),E.obj(t,e),E.get(t,e,["renderWindow","renderer","_apiSpecificRenderWindow","interactor","container"]),E.moveToProtected(t,e,["_apiSpecificRenderWindow"]),E.event(t,e,"resize"),x3(t,e)}const C3=E.newInstance(W0);var w3={newInstance:C3,extend:W0};function E3(t,e){e===void 0&&(e={});var n=e.insertAt;if(!(!t||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",n==="top"&&r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}}var _3=`.RenderWindowWithControlBar-module_rootContainer__1xqVd {
- position: relative;
- }
- .RenderWindowWithControlBar-module_renderWindow__2mz6Z {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- }
- .RenderWindowWithControlBar-module_control__38_dI {
- z-index: 1;
- position: absolute;
- }
- `,Ua={rootContainer:"RenderWindowWithControlBar-module_rootContainer__1xqVd",renderWindow:"RenderWindowWithControlBar-module_renderWindow__2mz6Z",control:"RenderWindowWithControlBar-module_control__38_dI"};E3(_3);const R3={left(t){return{top:"0",left:"0",bottom:"0",right:"unset",height:"unset",width:`${t}px`}},right(t){return{top:"0",right:"0",bottom:"0",left:"unset",height:"unset",width:`${t}px`}},top(t){return{top:"0",left:"0",right:"0",bottom:"unset",width:"unset",height:`${t}px`}},bottom(t){return{bottom:"0",left:"0",right:"0",top:"unset",width:"unset",height:`${t}px`}}};function D3(t,e,n){const r=R3[e](n);Object.keys(r).forEach(a=>{t.style[a]=r[a]})}function O3(t,e){const n={...t};function r(s){e.renderWindowContainer.style[s]="0px"}function a(){["left","right","top","bottom"].forEach(r),e.renderWindowContainer.style[e.controlPosition]=`${e.controlSize}px`,D3(e.controlContainer,e.controlPosition,e.controlSize)}e.renderWindowContainer=document.createElement("div"),e.renderWindowContainer.classList.add(Ua.renderWindow),n.setContainer(e.renderWindowContainer),e.controlContainer=document.createElement("div"),e.controlContainer.classList.add(Ua.control),t.setContainer=s=>{e.rootContainer&&(e.rootContainer.removeChild(e.container),e.rootContainer.removeChild(e.controlContainer),e.rootContainer.classList.remove(Ua.rootContainer)),e.rootContainer=s,e.rootContainer&&(e.rootContainer.appendChild(e.container),e.rootContainer.appendChild(e.controlContainer),e.rootContainer.classList.add(Ua.rootContainer),a(),t.resize())},t.setControlSize=s=>{e.controlSize=s,a(),t.modified()},t.setControlPosition=s=>{e.controlPosition=s,a(),t.modified()},e.listenWindowResize&&window.addEventListener("resize",t.resize),a(),t.resize()}const M3={rootContainer:null,controlPosition:"left",controlSize:10};function V3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,M3,n),w3.extend(t,e),E.get(t,e,["rootContainer","controlContainer","renderWindowContainer"]),O3(t,e)}E.newInstance(V3,"vtkRenderWindowWithControlBar");const m3=s0.extractURLParameters(),L3={margin:"0",padding:"0",position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"},B3={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 yu(t,e){Object.keys(e).forEach(n=>{t.style[n]=e[n]})}function k3(t,e){e.classHierarchy.push("vtkFullScreenRenderWindow");const n=document.querySelector("body");e.rootContainer||(e.rootContainer=n),e.container||(e.container=document.createElement("div"),yu(e.container,e.containerStyle||L3),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=Zg.newInstance(),e.renderer=Yg.newInstance(),e.renderWindow.addRenderer(e.renderer),e.apiSpecificRenderWindow=e.renderWindow.newAPISpecificView(m3.viewAPI??e.defaultViewAPI),e.apiSpecificRenderWindow.setContainer(e.container),e.renderWindow.addView(e.apiSpecificRenderWindow),e.interactor=Lo.newInstance(),e.interactor.setInteractorStyle(a0.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"),yu(e.controlContainer,e.controlPanelStyle||B3),e.rootContainer.appendChild(e.controlContainer),e.controlContainer.innerHTML=r,t.setControllerVisibility(e.controllerVisibility),e.rootContainer.addEventListener("keypress",a=>{String.fromCharCode(a.charCode)==="c"&&t.toggleControllerVisibility()})},t.setBackground(...e.background),t.addRepresentation=r=>{r.getActors().forEach(a=>{e.renderer.addActor(a)})},t.removeRepresentation=r=>{r.getActors().forEach(a=>e.renderer.removeActor(a))},t.delete=E.chain(t.setContainer,e.apiSpecificRenderWindow.delete,t.delete),t.resize=()=>{const r=e.container.getBoundingClientRect(),a=window.devicePixelRatio||1;e.apiSpecificRenderWindow.setSize(Math.floor(r.width*a),Math.floor(r.height*a)),e.resizeCallback&&e.resizeCallback(r),e.renderWindow.render()},t.setResizeCallback=r=>{e.resizeCallback=r,t.resize()},e.listenWindowResize&&window.addEventListener("resize",t.resize),t.resize()}const F3={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function z0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,F3,n),E.obj(t,e),E.get(t,e,["renderWindow","renderer","apiSpecificRenderWindow","interactor","rootContainer","container","controlContainer"]),k3(t,e)}const U3=E.newInstance(z0);var N3={newInstance:U3,extend:z0};const Uo={};function A0(t){return!!Uo[t]}function b3(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"http",e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Uo[t](e)}function H0(t,e){Uo[t]=e}var G3={get:b3,has:A0,registerType:H0};const $3={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 ni(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 W3={DATASET:{init(t,e){const n=t.split(" ")[1];switch(n){case"UNSTRUCTURED_GRID":e.dataset=nt.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=ni(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=ni(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 $3[a](e.POINT_DATA),o=de.newInstance({name:r,size:e.POINT_DATA});return e.scalars.set(r,i),e.arrayHandler=ni(i,o.setData,s),!0},parse(t,e){return t.split(" ")[0]==="LOOKUP_TABLE"?!0:e.arrayHandler(t)}}};function z3(t,e){const n=t.split(" ");return W3[n[0]]}function A3(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=z3(i),!n)return;n=n.init(i,e)?n:null;return}n&&!n.parse(i,e)&&(n=null)}}),e}var H3={parseLegacyASCII:A3};function j0(){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 j3=j0();function K3(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 ri={ENDIANNESS:j3,getEndianness:j0,swapBytes:K3};const{vtkErrorMacro:K0,vtkDebugMacro:P3}=E,No=()=>(K0("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 _r=0;function Rs(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 X3(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((n,r)=>{const a=Rs("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 I3(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return r&&r.compression?No():n.ref&&!n.ref.pending?new Promise((a,s)=>{const i=[e,n.ref.basepath,n.ref.id].join("/"),o=Rs("GET",i,r);o.onreadystatechange=u=>{o.readyState===1&&(n.ref.pending=!0,++_r===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):(ri.ENDIANNESS!==n.ref.encode&&ri.ENDIANNESS&&(P3(`Swap bytes of ${n.name}`),ri.swapBytes(n.buffer,Cl[n.dataType])),n.values=E.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&&K0(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,--_r===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 Y3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?No():new Promise((r,a)=>{const s=Rs("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++_r===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--_r===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 q3(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return n&&n.compression?No():new Promise((r,a)=>{const s=Rs("GET",e,n);s.onreadystatechange=i=>{s.readyState===1&&++_r===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),s.readyState===4&&(--_r===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 Q3(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 Z3={fetchArray:I3,fetchJSON:Y3,fetchText:q3,fetchBinary:X3,fetchImage:Q3};A0("http")||H0("http",t=>Z3);function J3(t,e){e.classHierarchy.push("vtkUnstructuredDataReader"),e.dataAccessHelper||(e.dataAccessHelper=G3.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=H3.parseLegacyASCII(e.parseData),e.output[0]=e.dataModel.dataset,e.output[1]=e.dataModel.scalars}},t.requestData=(r,a)=>{t.parseAsText(e.parseData)}}const em={};function P0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,em,n),E.obj(t,e),E.get(t,e,["url","baseURL"]),E.setGet(t,e,["dataAccessHelper"]),E.algo(t,e,0,1),J3(t,e),e.compression||(e.compression=null),e.progressCallback||(e.progressCallback=null)}const tm=E.newInstance(P0,"vtkUnstructuredDataReader");var X0={newInstance:tm,extend:P0};class nm{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=X0.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 rm(){return new nm}const am={RGB:0,HSV:1,LAB:2,DIVERGING:3},sm={LINEAR:0,LOG10:1};var I0={ColorSpace:am,Scale:sm};const{ColorSpace:Rt,Scale:Y0}=I0,{ScalarMappingTarget:Na}=Cs,{vtkDebugMacro:im,vtkErrorMacro:en,vtkWarningMacro:om}=E;function Tu(t,e){const n=t[0],r=t[1],a=t[2],s=Math.sqrt(n*n+r*r+a*a),i=s>.001?Math.acos(n/s):0,o=i>.001?Math.atan2(a,r):0;e[0]=s,e[1]=i,e[2]=o}function cm(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 xu(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 um(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 Su(t,e,n,r){const a=[],s=[];hr(e,a),hr(n,s);const i=[],o=[];Tu(a,i),Tu(s,o);let u=t;if(i[1]>.05&&o[1]>.05&&um(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]=xu(o,i[0]):o[1]<.05&&i[1]>.05&&(o[2]=xu(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=[];cm(c,f),wi(f,r)}function fm(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 en("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return en("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 ur([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=[];ur(f,g),ur(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 m=0;m<a;m++)s[m*3+0]=e.nanColor[0],s[m*3+1]=e.nanColor[1],s[m*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 S=0,T=0;const v=[];let w=e.scale===Y0.LOG10;w&&(w=e.mappingRange[0]>0);let C=0,R=0,M=0;w&&(C=Math.log10(i),R=Math.log10(o));for(let m=0;m<a;m++){const D=3*m;if(a>1?w?(M=C+m/(a-1)*(R-C),p=10**M):p=i+m/(a-1)*(o-i):w?(M=.5*(C+R),p=10**M):p=.5*(i+o),e.discretize){const V=e.mappingRange;if(p>=V[0]&&p<=V[1]){const L=e.numberOfValues,U=V[1]-V[0];if(L<=1)p=V[0]+U/2;else{const k=(p-V[0])/U,Y=OS(L*k);p=V[0]+Y/(L-1)*U}}}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,S=e.nodes[u-1].midpoint,T=e.nodes[u-1].sharpness,S<1e-5&&(S=1e-5),S>.99999&&(S=.99999));if(p>e.mappingRange[1])s[D]=0,s[D+1]=0,s[D+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(s[D]=e.aboveRangeColor[0],s[D+1]=e.aboveRangeColor[1],s[D+2]=e.aboveRangeColor[2]):(s[D]=f,s[D+1]=l,s[D+2]=g));else if(p<e.mappingRange[0]||GS(p)&&p<0)s[D]=0,s[D+1]=0,s[D+2]=0,e.clamping&&(t.getUseBelowRangeColor()?(s[D]=e.belowRangeColor[0],s[D+1]=e.belowRangeColor[1],s[D+2]=e.belowRangeColor[2]):c>0&&(s[D]=e.nodes[0].r,s[D+1]=e.nodes[0].g,s[D+2]=e.nodes[0].b));else if(u===0&&(Math.abs(p-i)<1e-6||e.discretize))c>0?(s[D]=e.nodes[0].r,s[D+1]=e.nodes[0].g,s[D+2]=e.nodes[0].b):(s[D]=0,s[D+1]=0,s[D+2]=0);else{let V=0;if(w?V=(M-y)/(h-y):V=(p-y)/(h-y),V<S?V=.5*V/S:V=.5+.5*(V-S)/(1-S),T>.99)if(V<.5){s[D]=d[0],s[D+1]=d[1],s[D+2]=d[2];continue}else{s[D]=x[0],s[D+1]=x[1],s[D+2]=x[2];continue}if(T<.01){if(e.colorSpace===Rt.RGB)s[D]=(1-V)*d[0]+V*x[0],s[D+1]=(1-V)*d[1]+V*x[1],s[D+2]=(1-V)*d[2]+V*x[2];else if(e.colorSpace===Rt.HSV){const F=[],K=[];da(d,F),da(x,K),e.hSVWrap&&(F[0]-K[0]>.5||K[0]-F[0]>.5)&&(F[0]>K[0]?F[0]-=1:K[0]-=1);const P=[];P[0]=(1-V)*F[0]+V*K[0],P[0]<0&&(P[0]+=1),P[1]=(1-V)*F[1]+V*K[1],P[2]=(1-V)*F[2]+V*K[2],ur(P,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]}else if(e.colorSpace===Rt.LAB){const F=[],K=[];hr(d,F),hr(x,K);const P=[];P[0]=(1-V)*F[0]+V*K[0],P[1]=(1-V)*F[1]+V*K[1],P[2]=(1-V)*F[2]+V*K[2],wi(P,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]}else e.colorSpace===Rt.DIVERGING?(Su(V,d,x,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]):en("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,U=L*V,k=2*U-3*L+1,Y=-2*U+3*L,q=U-2*L+V,Q=U-L;let ne,z;if(e.colorSpace===Rt.RGB)for(let F=0;F<3;F++)ne=x[F]-d[F],z=(1-T)*ne,s[D+F]=k*d[F]+Y*x[F]+q*z+Q*z;else if(e.colorSpace===Rt.HSV){const F=[],K=[];da(d,F),da(x,K),e.hSVWrap&&(F[0]-K[0]>.5||K[0]-F[0]>.5)&&(F[0]>K[0]?F[0]-=1:K[0]-=1);const P=[];for(let X=0;X<3;X++)ne=K[X]-F[X],z=(1-T)*ne,P[X]=k*F[X]+Y*K[X]+q*z+Q*z,X===0&&P[X]<0&&(P[X]+=1);ur(P,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]}else if(e.colorSpace===Rt.LAB){const F=[],K=[];hr(d,F),hr(x,K);const P=[];for(let X=0;X<3;X++)ne=K[X]-F[X],z=(1-T)*ne,P[X]=k*F[X]+Y*K[X]+q*z+Q*z;wi(P,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]}else e.colorSpace===Rt.DIVERGING?(Su(V,d,x,v),s[D]=v[0],s[D+1]=v[1],s[D+2]=v[2]):en("ColorSpace set to invalid value.");for(let F=0;F<3;F++)s[D+F]=s[D+F]<0?0:s[D+F],s[D+F]=s[D+F]>1?1:s[D+F]}}},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 en("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?(en("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 en("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]){en("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){im("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){om("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===Na.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===Na.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===Na.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===Na.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=Rt[n.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(en(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),e.colorSpace=Rt.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 lm={clamping:!0,colorSpace:Rt.RGB,hSVWrap:!0,scale:Y0.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 q0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lm,n),Cs.extend(t,e,n),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},E.obj(e.buildTime),E.get(t,e,["buildTime","mappingRange"]),E.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),E.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),E.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),fm(t,e)}const gm=E.newInstance(q0,"vtkColorTransferFunction");var pm={newInstance:gm,extend:q0,...I0};const hm=t=>t,Cu=1e-6;class Q0{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.matrix=ce(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?Mx:hm}rotateFromDirections(e,n){const r=new Float64Array(3),a=new Float64Array(3),s=new Float64Array(16);Pt(r,e[0],e[1],e[2]),Pt(a,n[0],n[1],n[2]),_n(r,r),_n(a,a);const i=no(r,a);return i>=1?this:(Tr(this.tmp,r,a),xi(this.tmp)<Cu&&(Tr(this.tmp,[1,0,0],e),xi(this.tmp)<Cu&&Tr(this.tmp,[0,1,0],e)),Cf(s,Math.acos(i),this.tmp),je(this.matrix,this.matrix,s),this)}rotate(e,n){return Pt(this.tmp,...n),_n(this.tmp,this.tmp),Dt(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}rotateX(e){return Zi(this.matrix,this.matrix,this.angleConv(e)),this}rotateY(e){return Ji(this.matrix,this.matrix,this.angleConv(e)),this}rotateZ(e){return eo(this.matrix,this.matrix,this.angleConv(e)),this}translate(e,n,r){return Pt(this.tmp,e,n,r),Be(this.matrix,this.matrix,this.tmp),this}scale(e,n,r){return Pt(this.tmp,e,n,r),Yn(this.matrix,this.matrix,this.tmp),this}multiply(e){return je(this.matrix,this.matrix,e),this}multiply3x3(e){return je(this.matrix,this.matrix,[e[0],e[1],e[2],0,e[3],e[4],e[5],0,e[6],e[7],e[8],0,0,0,0,1]),this}invert(){return ct(this.matrix,this.matrix),this}identity(){return ce(this.matrix),this}apply(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;if(Wf(_S,this.matrix))return this;const a=r===-1?e.length:n+r*3;for(let s=n;s<a;s+=3)Pt(this.tmp,e[s],e[s+1],e[s+2]),ve(this.tmp,this.tmp,this.matrix),e[s]=this.tmp[0],e[s+1]=this.tmp[1],e[s+2]=this.tmp[2];return this}getMatrix(){return this.matrix}setMatrix(e){return e&&e.length===16&&Ze(this.matrix,e),this}}function dm(){return new Q0(!0)}function vm(){return new Q0(!1)}var Xt={buildFromDegree:dm,buildFromRadian:vm};function ym(t,e){e.classHierarchy.push("vtkConeSource");function n(r,a){if(e.deleted)return;let s=a[0];const i=2*Math.PI/e.resolution,o=-e.height/2,u=e.resolution+1,c=4*e.resolution+1+e.resolution;let f=0;const l=E.newTypedArray(e.pointType,u*3);let g=0;const p=new Uint32Array(c);l[0]=e.height/2,l[1]=0,l[2]=0,e.capping&&(p[g++]=e.resolution);for(let y=0;y<e.resolution;y++)f++,l[f*3+0]=o,l[f*3+1]=e.radius*Math.cos(y*i),l[f*3+2]=e.radius*Math.sin(y*i),e.capping&&(p[e.resolution-g+++1]=f);for(let y=0;y<e.resolution;y++)p[g++]=3,p[g++]=0,p[g++]=y+1,p[g++]=y+2>e.resolution?1:y+2;Xt.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.direction).apply(l),s=nt.newInstance(),s.getPoints().setData(l,3),s.getPolys().setData(p,1),a[0]=s}t.requestData=n}const Tm={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:"Float64Array"};function Z0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Tm,n),E.obj(t,e),E.setGet(t,e,["height","radius","resolution","capping"]),E.setGetArray(t,e,["center","direction"],3),E.algo(t,e,0,1),ym(t,e)}const xm=E.newInstance(Z0,"vtkConeSource");var Sm={newInstance:xm,extend:Z0};function Cm(t,e){e.classHierarchy.push("vtkSphereMapper")}const wm={scaleArray:null,radius:.05,scaleFactor:1};function Em(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wm,n),qt.extend(t,e,n),E.setGet(t,e,["radius","scaleArray","scaleFactor"]),Cm(t,e)}E.newInstance(Em,"vtkSphereMapper");function _m(t,e){e.classHierarchy.push("vtkPixelSpaceCallbackMapper"),e.callback||(e.callback=()=>{}),t.invokeCallback=(n,r,a,s,i)=>{if(!e.callback)return;const o=r.getCompositeProjectionMatrix(a,-1,1);Ee(o,o);const u=n.getPoints(),c=new Float64Array(3),f=s.usize,l=s.vsize,g=f/2,p=l/2,y=[];for(let h=0;h<u.getNumberOfPoints();h+=1){const d=u.getPoint(h);ve(c,d,o);const x=[c[0]*g+g,c[1]*p+p,c[2],0];if(i){const T=(Math.floor(x[1])*f+Math.floor(x[0]))*4,v=i[T]/255,w=i[T+1]/255,C=(v*256+w)/257;x[3]=C*2-1}y.push(x)}e.callback(y,r,a,i,[f,l])}}const Rm={callback:null,useZValues:!1};function Dm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Rm,n),qt.extend(t,e,n),E.setGet(t,e,["callback","useZValues"]),_m(t,e)}E.newInstance(Dm,"vtkPixelSpaceCallbackMapper");function Om(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=nt.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,S=E.newTypedArray(s,h*3),T=new Float32Array(h*3),v=0,w=new Uint32Array(d*5);e.startPhi<=0&&(S[x*3+0]=e.center[0],S[x*3+1]=e.center[1],S[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&&(S[x*3+0]=e.center[0],S[x*3+1]=e.center[1],S[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 C=e.phiResolution-i,R=(l-f)/(e.phiResolution-1);for(let D=0;D<o;D++){const V=u+D*g;for(let L=p;L<y;L++){const U=f+L*R,k=e.radius*Math.sin(U);T[x*3+0]=k*Math.cos(V),T[x*3+1]=k*Math.sin(V),T[x*3+2]=e.radius*Math.cos(U),S[x*3+0]=T[x*3+0]+e.center[0],S[x*3+1]=T[x*3+1]+e.center[1],S[x*3+2]=T[x*3+2]+e.center[2];let Y=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]);Y=Y===0?1:Y,T[x*3+0]/=Y,T[x*3+1]/=Y,T[x*3+2]/=Y,x++}}const M=C*o;if(Math.abs(u-c)<2*Math.PI&&--o,e.startPhi<=0)for(let D=0;D<o;D++)w[v++]=3,w[v++]=C*D+i,w[v++]=C*(D+1)%M+i,w[v++]=0;if(e.endPhi>=180){const D=C-1+i;for(let V=0;V<o;V++)w[v++]=3,w[v++]=C*V+D,w[v++]=i-1,w[v++]=C*(V+1)%M+D}for(let D=0;D<o;D++)for(let V=0;V<C-1;V++){const L=C*D+V+i,U=L+1,k=(C*(D+1)+V)%M+i+1;e.latLongTessellation?(w[v++]=4,w[v++]=L,w[v++]=U,w[v++]=k,w[v++]=k-1):(w[v++]=3,w[v++]=L,w[v++]=U,w[v++]=k,w[v++]=3,w[v++]=L,w[v++]=k,w[v++]=k-1)}S=S.subarray(0,x*3),a.getPoints().setData(S,3),T=T.subarray(0,x*3);const m=de.newInstance({name:"Normals",values:T,numberOfComponents:3});a.getPointData().setNormals(m),w=w.subarray(0,v),a.getPolys().setData(w,1),r[0]=a}}const Mm={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float64Array"};function Vm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Mm,n),E.obj(t,e),E.setGet(t,e,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),E.setGetArray(t,e,["center"],3),E.algo(t,e,0,1),Om(t,e)}E.newInstance(Vm,"vtkSphereSource");const{vtkErrorMacro:mm}=E;function Lm(t,e){let n=0;return t.map((r,a)=>a===n?(n+=r+1,r):r+e)}function ba(t,e,n,r){t.set(Lm(e,n),r)}function Bm(t,e){e.classHierarchy.push("vtkAppendPolyData"),t.requestData=(n,r)=>{const a=t.getNumberOfInputPorts();if(!a){mm("No input specified.");return}if(a===1){r[0]=n[0];return}const s=nt.newInstance();let i=0,o=0,u=1,c=1,f=0,l=0,g=0,p=0,y=!0,h=!0,d=!0;for(let V=0;V<a;V++){const L=n[V];if(!L)continue;const U=L.getPoints().getNumberOfPoints();i+=U,f+=L.getVerts().getNumberOfValues(),l+=L.getLines().getNumberOfValues(),g+=L.getStrips().getNumberOfValues(),p+=L.getPolys().getNumberOfValues(),U&&(c&&(c=0,o=L.getPoints().getDataType()),u=L.getPoints().getDataType(),o=o>u?o:u);const k=L.getPointData();k?(y=y&&k.getNormals()!==null,h=h&&k.getTCoords()!==null,d=d&&k.getScalars()!==null):(y=!1,h=!1,d=!1)}e.outputPointsPrecision===fs.SINGLE?o=Ue.FLOAT:e.outputPointsPrecision===fs.DOUBLE&&(o=Ue.DOUBLE);const x=qr.newInstance({dataType:o});x.setNumberOfPoints(i);const S=x.getData(),T=new Uint32Array(f),v=new Uint32Array(l),w=new Uint32Array(g),C=new Uint32Array(p);let R=null,M=null,m=null;const D=n[a-1];if(y){const V=D.getPointData().getNormals();R=de.newInstance({numberOfComponents:3,numberOfTuples:i,size:3*i,dataType:V.getDataType(),name:V.getName()})}if(h){const V=D.getPointData().getTCoords();M=de.newInstance({numberOfComponents:2,numberOfTuples:i,size:2*i,dataType:V.getDataType(),name:V.getName()})}if(d){const V=D.getPointData().getScalars();m=de.newInstance({numberOfComponents:V.getNumberOfComponents(),numberOfTuples:i,size:i*V.getNumberOfComponents(),dataType:V.getDataType(),name:V.getName()})}i=0,f=0,l=0,g=0,p=0;for(let V=0;V<a;V++){const L=n[V];S.set(L.getPoints().getData(),i*3),ba(T,L.getVerts().getData(),i,f),f+=L.getVerts().getNumberOfValues(),ba(v,L.getLines().getData(),i,l),l+=L.getLines().getNumberOfValues(),ba(w,L.getStrips().getData(),i,g),g+=L.getStrips().getNumberOfValues(),ba(C,L.getPolys().getData(),i,p),p+=L.getPolys().getNumberOfValues();const U=L.getPointData();if(y){const k=U.getNormals();R.getData().set(k.getData(),i*3)}if(h){const k=U.getTCoords();M.getData().set(k.getData(),i*2)}if(d){const k=U.getScalars();m.getData().set(k.getData(),i*m.getNumberOfComponents())}i+=L.getPoints().getNumberOfPoints()}s.setPoints(x),s.getVerts().setData(T),s.getLines().setData(v),s.getStrips().setData(w),s.getPolys().setData(C),R&&s.getPointData().setNormals(R),M&&s.getPointData().setTCoords(M),m&&s.getPointData().setScalars(m),r[0]=s}}const km={outputPointsPrecision:fs.DEFAULT};function J0(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,km,n),E.setGet(t,e,["outputPointsPrecision"]),E.obj(t,e),E.algo(t,e,1,1),Bm(t,e)}const Fm=E.newInstance(J0,"vtkAppendPolyData");var ep={newInstance:Fm,extend:J0};function Um(t,e){e.classHierarchy.push("vtkCylinderSource");function n(r,a){if(e.deleted)return;let s=a[0];const i=2*Math.PI/e.resolution;let o=2*e.resolution,u=5*e.resolution;e.capping&&(o=4*e.resolution,u=7*e.resolution+2);const c=E.newTypedArray(e.pointType,o*3);let f=0;const l=new Uint32Array(u),g=new Float32Array(o*3),p=de.newInstance({numberOfComponents:3,values:g,name:"Normals"}),y=new Float32Array(o*2),h=de.newInstance({numberOfComponents:2,values:y,name:"TCoords"}),d=[0,0,0],x=[0,0,0],S=[0,0,0],T=[0,0,0],v=[0,0],w=[0,0],C=e.otherRadius==null?e.radius:e.otherRadius;for(let R=0;R<e.resolution;R++){d[0]=Math.cos(R*i+e.initAngle),x[0]=d[0],S[0]=e.radius*d[0]+e.center[0],T[0]=S[0],v[0]=Math.abs(2*R/e.resolution-1),w[0]=v[0],S[1]=.5*e.height+e.center[1],T[1]=-.5*e.height+e.center[1],v[1]=0,w[1]=1,d[2]=-Math.sin(R*i+e.initAngle),x[2]=d[2],S[2]=C*d[2]+e.center[2],T[2]=S[2];const M=2*R;for(let m=0;m<3;m++)g[M*3+m]=d[m],g[(M+1)*3+m]=x[m],c[M*3+m]=S[m],c[(M+1)*3+m]=T[m],m<2&&(y[M*2+m]=v[m],y[(M+1)*2+m]=w[m])}for(let R=0;R<e.resolution;R++){l[f++]=4,l[f++]=2*R,l[f++]=2*R+1;const M=(2*R+3)%(2*e.resolution);l[f++]=M,l[f++]=M-1}if(e.capping){for(let R=0;R<e.resolution;R++){S[0]=e.radius*Math.cos(R*i+e.initAngle),T[0]=S[0],v[0]=S[0],w[0]=S[0],S[0]+=e.center[0],T[0]+=e.center[0],d[1]=1,x[1]=-1,S[1]=.5*e.height+e.center[1],T[1]=-.5*e.height+e.center[1],S[2]=-C*Math.sin(R*i+e.initAngle),T[2]=S[2],v[1]=S[2],w[1]=S[2],S[2]+=e.center[2],T[2]+=e.center[2];const M=2*e.resolution+R,m=3*e.resolution+e.resolution-R-1;for(let D=0;D<3;D++)g[3*M+D]=d[D],g[3*m+D]=x[D],c[3*M+D]=S[D],c[3*m+D]=T[D],D<2&&(y[2*M+D]=v[D],y[2*m+D]=w[D])}l[f++]=e.resolution;for(let R=0;R<e.resolution;R++)l[f++]=2*e.resolution+R;l[f++]=e.resolution;for(let R=0;R<e.resolution;R++)l[f++]=3*e.resolution+R}Xt.buildFromRadian().translate(...e.center).rotateFromDirections([0,1,0],e.direction).translate(...e.center.map(R=>R*-1)).apply(c),s=nt.newInstance(),s.getPoints().setData(c,3),s.getPolys().setData(l,1),s.getPointData().setNormals(p),s.getPointData().setTCoords(h),a[0]=s}t.requestData=n}const Nm={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:"Float64Array"};function tp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nm,n),E.obj(t,e),E.setGet(t,e,["height","initAngle","otherRadius","radius","resolution","capping"]),E.setGetArray(t,e,["center","direction"],3),E.algo(t,e,0,1),Um(t,e)}const bm=E.newInstance(tp,"vtkCylinderSource");var Gm={newInstance:bm,extend:tp};function $m(t,e){e.classHierarchy.push("vtkArrowSource");function n(r,a){if(e.deleted)return;const s=Gm.newInstance({capping:!0});s.setResolution(e.shaftResolution),s.setRadius(e.shaftRadius),s.setHeight(1-e.tipLength),s.setCenter(0,(1-e.tipLength)*.5,0);const i=s.getOutputData(),o=i.getPoints().getData(),u=i.getPointData().getNormals().getData();Xt.buildFromDegree().rotateZ(-90).apply(o).apply(u);const c=Sm.newInstance();c.setResolution(e.tipResolution),c.setHeight(e.tipLength),c.setRadius(e.tipRadius);const f=c.getOutputData(),l=f.getPoints().getData();Xt.buildFromRadian().translate(1-e.tipLength*.5,0,0).apply(l);const g=ep.newInstance();g.setInputData(i),g.addInputData(f);const p=g.getOutputData(),y=p.getPoints().getData();Xt.buildFromRadian().translate(-.5+e.tipLength*.5,0,0).apply(y),e.invert?(Xt.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(-1,-1,-1).apply(y),a[0]=p):(Xt.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(1,1,1).apply(y),a[0]=g.getOutputData())}t.requestData=n}const Wm={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:"Float64Array"};function np(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Wm,n),E.obj(t,e),E.setGet(t,e,["tipResolution","tipRadius","tipLength","shaftResolution","shaftRadius","invert"]),E.setGetArray(t,e,["direction"],3),E.algo(t,e,0,1),$m(t,e)}const zm=E.newInstance(np,"vtkArrowSource");var ai={newInstance:zm,extend:np};function si(t){const e=t.getPoints().getBounds(),n=[-(e[0]+e[1])*.5,-(e[2]+e[3])*.5,-(e[4]+e[5])*.5];Xt.buildFromDegree().translate(...n).apply(t.getPoints().getData())}function ii(t,e){const n=t.getPoints().getBounds(),r=[0,0,0];r[e]=-n[e*2],Xt.buildFromDegree().translate(...r).apply(t.getPoints().getData())}function oi(t,e,n,r){const a=t.getPoints().getData().length,s=new Uint8ClampedArray(a);let i=0;for(;i<a;)s[i++]=e,s[i++]=n,s[i++]=r;t.getPointData().setScalars(de.newInstance({name:"color",numberOfComponents:3,values:s}))}function Am(t,e){e.classHierarchy.push("vtkAxesActor");const n=qt.newInstance();t.setMapper(n),t.update=()=>{const u=ai.newInstance({direction:[1,0,0],...e.config}).getOutputData();e.config.recenter?si(u):ii(u,0),oi(u,...e.xAxisColor);const c=ai.newInstance({direction:[0,1,0],...e.config}).getOutputData();e.config.recenter?si(c):ii(c,1),oi(c,...e.yAxisColor);const f=ai.newInstance({direction:[0,0,1],...e.config}).getOutputData();e.config.recenter?si(f):ii(f,2),oi(f,...e.zAxisColor);const l=ep.newInstance();l.setInputData(u),l.addInputData(c),l.addInputData(f),n.setInputConnection(l.getOutputPort())},t.update();const r=E.debounce(t.update,0),{setConfig:a,setXAxisColor:s,setYAxisColor:i,setZAxisColor:o}=t;t.setConfig=u=>a(u)?(r(),!0):!1,t.setXAxisColor=u=>s(u)?(r(),!0):!1,t.setYAxisColor=u=>i(u)?(r(),!0):!1,t.setZAxisColor=u=>o(u)?(r(),!0):!1}const Hm={config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1},xAxisColor:[255,0,0],yAxisColor:[255,255,0],zAxisColor:[0,128,0]};function jm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hm,n),On.extend(t,e,n),E.setGet(t,e,["config"]),E.setGetArray(t,e,["xAxisColor","yAxisColor","zAxisColor"],3,255),Am(t,e)}E.newInstance(jm,"vtkAxesActor");const Km={TRIANGLE:"triangle",STAR:"star",ARROW_4:"arrow4points",ARROW_6:"arrow6points"};var Pm={ShapeType:Km};const{ShapeType:Ga}=Pm;function Xm(t,e){const n=nt.newInstance(),r=E.newTypedArray(e.pointType,10*3),a=new Uint32Array(11);a[0]=10;for(let s=0;s<10;s++){const i=s%2===1?e.height:e.height*.4;r[3*s+0]=i*Math.cos((2*s-1)*Math.PI/10),r[3*s+1]=i*Math.sin((2*s-1)*Math.PI/10),r[3*s+2]=0,a[1+s]=s}return n.getPoints().setData(r,3),n.getPolys().setData(a,1),n}function Im(t,e){const n=nt.newInstance(),r=E.newTypedArray(e.pointType,6*3),a=e.height*.5*e.thickness,s=e.height*.5-a,i=(e.height*.9+a-s-(e.height*.5-a-s))*(1-e.base);r[0]=e.width/2*-1-a,r[1]=e.height/4-s-i,r[2]=0,r[3]=0,r[4]=e.height*.9+a-s-i,r[5]=0,r[6]=e.width/2+a,r[7]=e.height/4-s-i,r[8]=0,r[9]=e.width/3,r[10]=e.height*.1-a-s-i,r[11]=0,r[12]=0,r[13]=e.height*.5-a-s-i,r[14]=0,r[15]=e.width/3*-1,r[16]=e.height*.1-a-s-i,r[17]=0;const o=Uint8Array.from([3,0,1,5,3,1,4,5,3,1,4,3,3,1,2,3]);return n.getPoints().setData(r,3),n.getPolys().setData(o,1),n}function Ym(t,e){const n=nt.newInstance(),r=E.newTypedArray(e.pointType,4*3),a=e.height/3*e.thickness,s=e.height/3-a,i=(e.height-s-(e.height/3-a-s))*(1-e.base);r[0]=e.width/2*-1,r[1]=0-s-i,r[2]=0,r[3]=0,r[4]=e.height-s-i,r[5]=0,r[6]=e.width/2,r[7]=0-s-i,r[8]=0,r[9]=0,r[10]=e.height/3-a-s-i,r[11]=0;const o=Uint8Array.from([3,0,1,3,3,1,2,3]);return n.getPoints().setData(r,3),n.getPolys().setData(o,1),n}function qm(t,e){const n=nt.newInstance(),r=E.newTypedArray(e.pointType,3*3),a=e.height*(1-e.base);r[0]=e.width/2*-1,r[1]=0-a,r[2]=0,r[3]=0,r[4]=e.height-a,r[5]=0,r[6]=e.width/2,r[7]=0-a,r[8]=0;const s=Uint8Array.from([3,0,1,2]);return n.getPoints().setData(r,3),n.getPolys().setData(s,1),n}function Qm(t,e){const n={[Ga.TRIANGLE]:qm,[Ga.STAR]:Xm,[Ga.ARROW_4]:Ym,[Ga.ARROW_6]:Im};t.requestData=(r,a)=>{a[0]=n[e.shape](t,e),Xt.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.direction).apply(a[0].getPoints().getData())}}function Zm(t){return{base:0,center:[0,0,0],height:1,direction:[1,0,0],pointType:"Float64Array",thickness:0,width:1,...t}}function Jm(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Zm(n)),E.obj(t,e),E.setGet(t,e,["height","width","thickness","base"]),E.setGetArray(t,e,["center","direction"],3),E.algo(t,e,0,1),Qm(t,e)}E.newInstance(Jm,"vtkArrow2DSource");function eL(t,e){e.classHierarchy.push("vtkPriorityQueue"),t.push=(n,r)=>{const a=e.elements.findIndex(s=>s.priority>n);e.elements.splice(a,0,{priority:n,element:r})},t.pop=()=>e.elements.length>0?e.elements.shift().element:null,t.deleteById=n=>{e.elements=e.elements.filter(r=>{let{element:a}=r;return a.id!==n})},t.length=()=>e.elements.length}const tL={elements:[]};function rp(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tL,n),E.obj(t,e),eL(t,e)}const nL=E.newInstance(rp,"vtkPriorityQueue");var rL={newInstance:nL,extend:rp};const $a=1e-6,wu=11920929e-14,aL=1e-8,$n={FAILURE:-1,OUTSIDE:0,INSIDE:1,INTERSECTION:2,ON_LINE:3};function Eu(t,e,n,r,a){return(r[t]-n[t])*(a[e]-n[e])-(a[t]-n[t])*(r[e]-n[e])}function sL(t,e,n,r){if(t[0]<n[0]||t[0]>n[1]||t[1]<n[2]||t[1]>n[3]||t[2]<n[4]||t[2]>n[5])return $n.OUTSIDE;if(on(r)<=wu)return $n.FAILURE;let a=aL*((n[1]-n[0])*(n[1]-n[0])+(n[3]-n[2])*(n[3]-n[2])+(n[5]-n[4])*(n[5]-n[4]));a*=a,a=a===0?wu:a;const s=[],i=[];for(let f=0;f<e.length;){if(s[0]=e[f++],s[1]=e[f++],s[2]=e[f++],Vt(t,s)<=a)return $n.INSIDE;const{distance:l,t:g}=ht.distanceToLine(t,s,i);if(l<=a&&g>0&&g<1)return $n.INSIDE}let o,u;Math.abs(r[0])>Math.abs(r[1])?Math.abs(r[0])>Math.abs(r[2])?(o=1,u=2):(o=0,u=1):Math.abs(r[1])>Math.abs(r[2])?(o=0,u=2):(o=0,u=1);let c=0;for(let f=0;f<e.length;)s[0]=e[f++],s[1]=e[f++],s[2]=e[f++],f<e.length?(i[0]=e[f],i[1]=e[f+1],i[2]=e[f+2]):(i[0]=e[0],i[1]=e[1],i[2]=e[2]),s[u]<=t[u]?i[u]>t[u]&&Eu(o,u,s,i,t)>0&&++c:i[u]<=t[u]&&Eu(o,u,s,i,t)<0&&--c;return c===0?$n.OUTSIDE:$n.INSIDE}function iL(t,e,n){const r=t.length,a=[];e.getPoint(t[0],a),n[0]=a[0],n[1]=a[0],n[2]=a[1],n[3]=a[1],n[4]=a[2],n[5]=a[2];for(let i=1;i<r;i++)e.getPoint(t[i],a),Se.addPoint(n,...a);const s=Se.getLengths(n);return ue(s,s)}function oL(t,e,n){n.length=3,n[0]=0,n[1]=0,n[2]=0;const r=[];let a=[],s=[];const i=[],o=[];e.getPoint(t[0],r),e.getPoint(t[1],a);for(let u=2;u<t.length;u++){e.getPoint(t[u],s),et(s,a,i),et(r,a,o);const c=[0,0,0];sn(i,o,c),Yr(n,c,n),[a,s]=[s,a]}return on(n)}const cL={PolygonWithPointIntersectionState:$n,pointInPolygon:sL,getBounds:iL,getNormal:oL};function uL(t,e){e.classHierarchy.push("vtkPolygon");function n(){const o=[0,0,0],u=[0,0,0];e.normal=[0,0,0];const c=[...e.firstPoint.point];let f=e.firstPoint;for(let l=0;l<e.pointCount;l++){et(f.point,c,o),et(f.next.point,c,u);const g=[0,0,0];sn(o,u,g),Yr(e.normal,g,e.normal),f=f.next}return on(e.normal)}function r(o){const u=[0,0,0],c=[0,0,0],f=[0,0,0],l=[0,0,0];et(o.point,o.previous.point,u),et(o.next.point,o.point,c),et(o.previous.point,o.next.point,f),sn(u,c,l);const g=ue(l,e.normal);if(g<=0)return-1;const p=pr(u)+pr(c)+pr(f);return p*p/g}function a(o){if(e.pointCount<=3)return!0;const u=o.previous,c=o.next,f=[0,0,0];et(c.point,u.point,f);const l=[0,0,0];if(sn(f,e.normal,l),on(l),pr(l)===0)return!1;let g=Dn.evaluate(l,u.point,c.next.point),p=g>$a?1:g<-$a?-1:0,y=p<0?1:0;for(let h=c.next.next;h.id!==u.id;h=h.next){const d=h.previous;g=Dn.evaluate(l,u.point,h.point);const x=g>$a?1:g<-$a?-1:0;if(x!==p){if(y||(y=x<=0?1:0),ht.intersection(u.point,c.point,h.point,d.point,[0],[0])===Xl.YES_INTERSECTION)return!1;p=x}}return y===1}function s(o,u){e.pointCount-=1;const c=o.previous,f=o.next;e.tris=e.tris.concat(o.point),e.tris=e.tris.concat(f.point),e.tris=e.tris.concat(c.point),c.next=f,f.previous=c,u.deleteById(c.id),u.deleteById(f.id);const l=r(c);l>0&&u.push(l,c);const g=r(f);g>0&&u.push(g,f),o.id===e.firstPoint.id&&(e.firstPoint=f)}function i(){n();const o=rL.newInstance();let u=e.firstPoint;for(let c=0;c<e.pointCount;c++){const f=r(u);f>0&&o.push(f,u),u=u.next}for(;e.pointCount>2&&o.length()>0;)if(e.pointCount===o.length()){const c=o.pop();s(c,o)}else{const c=o.pop();a(c)&&s(c,o)}return e.pointCount<=2}t.triangulate=()=>e.firstPoint?i():null,t.setPoints=o=>{e.pointCount=o.length,e.firstPoint={id:0,point:o[0],next:null,previous:null};let u=e.firstPoint;for(let c=1;c<e.pointCount;c++)u.next={id:c,point:o[c],next:null,previous:u},u=u.next;e.firstPoint.previous=u,u.next=e.firstPoint},t.getPointArray=()=>e.tris}const fL={firstPoint:null,pointCount:0,tris:[]};function ap(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,fL,n),E.obj(t,e),uL(t,e)}const lL=E.newInstance(ap,"vtkPolygon");var gL={newInstance:lL,extend:ap,...cL};const{vtkWarningMacro:pL}=E;function hL(t,e){e.classHierarchy.push("vtkTriangleFilter"),t.requestData=(n,r)=>{const a=n[0],s=a.getPoints().getData(),i=a.getPolys().getData(),o=a.getPolys().getDataType(),u=a.getPoints().getDataType(),c=[],f=[];if(e.errorCount=0,i){let g=0,p=!1;for(let y=0;y<i.length;y+=g+1){g=i[y],p=i[y+1]===i[y+g],p&&--g;const h=[];h.length=g;for(let d=0;d<g;d++){const x=i[y+d+1];h[d]=[s[3*x],s[3*x+1],s[3*x+2]]}if(g===3){const d=f.length/3;c.push(3,d,d+1,d+2),f.push(...h[0],...h[1],...h[2])}else if(g>3){const d=gL.newInstance();d.setPoints(h),d.triangulate()||(pL(`Triangulation failed at cellOffset ${y}`),++e.errorCount);const x=d.getPointArray(),S=Math.floor(x.length/9),T=[];T.length=9;for(let v=0;v<S;v++){for(let C=0;C<9;C++)T[C]=x[9*v+C];const w=f.length/3;c.push(3,w,w+1,w+2),f.push(...T)}}p&&++g}}const l=nt.newInstance();l.getPoints().setData(E.newTypedArrayFrom(u,f)),l.getPolys().setData(E.newTypedArrayFrom(o,c)),r[0]=l}}const dL={errorCount:0};function vL(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dL,n),E.setGet(t,e,[]),E.get(t,e,["errorCount"]),E.obj(t,e),E.algo(t,e,1,1),hL(t,e)}E.newInstance(vL,"vtkTriangleFilter");const mr=t=>(Zr("data-v-90aa2ffc"),t=t(),Jr(),t),yL={class:"l_Dialog"},TL={class:"result"},xL={class:"newtime"},SL={class:"newtime"},CL={class:"animation_s"},wL={class:"tanniu"},EL=mr(()=>_("p",null,"后退",-1)),_L=mr(()=>_("p",null,"播放",-1)),RL=mr(()=>_("p",null,"暂停",-1)),DL=mr(()=>_("p",null,"快进",-1)),OL={class:"demo-collapse jiancedian asideg1 collapseeion"},ML={class:"jc_header he_pading color1"},VL={class:"jc_content tablecolor"},mL={class:"jc_padding"},LL={class:"xian"},BL=mr(()=>_("div",{class:"jc_header color1"},[_("span",{class:"jc_tile"},"锋面定义")],-1)),kL=mr(()=>_("div",{style:{height:"200px"}},null,-1)),FL={__name:"InfoAnimation",props:{classradio:{type:String}},emits:[],setup(t,{expose:e,emit:n}){const r=t,a=N3.newInstance(),s=a.getRenderer(),i=a.getRenderWindow();s.resetCamera,i.render;const o=qt.newInstance(),u=On.newInstance();X0.newInstance();const c=Do.newInstance();u.getProperty().setRepresentation(Tt.SURFACE),c.setGenerateTicks(zt(5)),c.setDrawAboveRangeSwatch(!0);const f=pm.newInstance();f.addRGBPoint(0,0,0,1),f.addRGBPoint(1,0,1,.5),f.addRGBPoint(2,0,1,0),f.addRGBPoint(3,1,.5,0),f.addRGBPoint(4,1,0,0),o.setLookupTable(f);const l=o.getLookupTable();c.setScalarsToColors(l),s.addActor(c);const g=G(["1"]),p=G(0),y=G(!1),h=G(!1),d=G([]);G("http://localhost:8080/?aid=0");const x=G("first");let S=G(""),T=G(1),v=G(60);G(2);let w=G(),C=G(null);G(20),G("#409eff");const R=({row:re,rowIndex:$})=>$%2!=0?"evenRow":"oddRow",M=G({region:"shanghai"});G([]);const m=G([{name:"",value:""}]),D=({row:re,rowIndex:$})=>{console.log(re)},V=G(0),L=G(1),U=G({jid:0,aid:0,starttime:"",endtime:"",state:"",faildes:"",dt:"",dx:"",reportstep:"",interactionstep:"",acctime:"",totaltime:"",coids:"",cocodes:""}),k=G(""),Y=G([]),q=G([]),Q=G(0),ne=G("false");function z(re){ie.step=p.value,be()}function F(re){y.value=!0;const $=(Me=re)=>new Promise((Zt,Ye)=>{setTimeout(Zt,Me)});(async Me=>{for(;p.value<v.value&&y.value;)y.value==!0&&(await $(re),p.value++,ie.step=p.value,be(),ft())})()}function K(){y.value=!1,p.value!=v.value&&(p.value++,ie.step=p.value,be(),ft())}function P(){y.value=!1}function X(){y.value=!1,p.value--,ie.step=p.value,be(),ft()}function H(){Date.parse(k.value),rt(),be(),ft()}function Ce(){for(let re=0;re<q.value.length;re++)if(M.value.region==q.value[re].cocode){Q.value=re+1;break}m.value=[];for(let re=0;re<Y.value.length;re++){let $=Y.value[re];Q.value==1&&m.value.push({name:$.chcode,value:$.v1}),Q.value==2&&m.value.push({name:$.chcode,value:$.v2}),Q.value==3&&m.value.push({name:$.chcode,value:$.v3}),Q.value==4&&m.value.push({name:$.chcode,value:$.v4}),Q.value==5&&m.value.push({name:$.chcode,value:$.v5}),Q.value==6&&m.value.push({name:$.chcode,value:$.v6})}Ie()}const we=re=>{w.value=re,console.log(w.value),console.log(11111),console.log("props.classradio",r.classradio),(r.classradio=="Fire"||r.classradio=="Water")&&(h.value=!0),ne.value=!1,lt()};xr(()=>{});const ie=rm();async function ft(){const re={transCode:"D10016",aid:w.value,step:ie.step};await ke(re).then($=>{if($.returnCode=="000000000"){Y.value=$.chvals,m.value=[];for(let he=0;he<Y.value.length;he++){let Me=Y.value[he];m.value.push({name:Me.chcode,value:Me.v1})}if(ne.value)Ce();else{ne.value=!0,q.value=$.cocodes,M.value.region=q.value[0].cocode,Q.value=1,d.value=[];for(let he=0;he<q.value.length;he++){const Me=q.value[he];d.value.push({id:he,name:Me.cocode,value:Me.cocode})}}}else Te({message:$.returnMsg,type:"error"})}).catch($=>{})}async function lt(){const re={transCode:"D10017",aid:w.value};await ke(re).then($=>{$.returnCode=="000000000"?(U.value=$,rt(),ft(),Xe()):Te({message:$.returnMsg,type:"error"})}).catch($=>{})}function rt(re){const $=Date.parse(U.value.acctime);var he=parseInt((timestamp-$)/1e3);ie.stepsum=parseInt(U.value.totaltime)/parseInt(U.value.reportstep),L.value=ie.stepsum,he<parseInt(U.value.totaltime)?ie.step=parseInt(he/parseInt(U.value.reportstep)):ie.step=ie.stepsum,p.value=ie.step}function Xe(){ie.aid=w.value,ie.initGemetry().then(re=>{console.log(ie.polydata),be()}).catch(re=>{})}function be(){ie.getScalrsByStep(ie.step).then(re=>{console.log(ie.scalar),Ie()}).catch(re=>{console.log(re)})}function Ie(){console.log(M.value.region);const re=ie.scalar.get(M.value.region);console.log("scalarArray:",re);const $=de.newInstance({name:M.value.region,size:ie.polydata.getNumberOfPoints()});console.log($),$.setData(re),ie.polydata.getPointData().setScalars($),o.setInputData(ie.polydata),ln(re),o.setScalarRange(V.value,L.value),u.setMapper(o),s.addActor(u),c.setAxisLabel(M.value.region),o.clearColorArrays(),u.getProperty().setOpacity(p.value),s.resetCamera(),i.render()}function ln(re){V.value=re[0],L.value=re[0];for(let $=0;$<=re.length;$++){let he=re[$];V.value>he&&(V.value=he),L.value<he&&(L.value=he)}}function zt(re){return $=>{const he=$.getLastTickBounds(),Me=ys().domain([0,1]).range([he[0],he[1]]),Ye=Me.ticks(re).map(We=>Me(We));hf({minus:"-"});const ee=Me.tickFormat(Ye[0],Ye[Ye.length-1],re),W=Ye.map(ee).map(We=>Number(parseFloat(We).toPrecision(12)).toPrecision());$.setTicks(Ye),$.setTickStrings(W)}}const gn=()=>{};return _u(()=>{clearInterval(C.value)}),xr(()=>{C.value=setInterval(()=>{const re=new Date().getTime();S.value=ci(re)},1e3)}),e({monitor:h,accident5:we}),(re,$)=>{const he=Z("el-tab-pane"),Me=Z("el-date-picker"),Zt=Z("el-slider"),Ye=Z("el-image"),ee=Z("el-tabs"),W=Z("el-aside"),We=Z("el-option"),gt=Z("el-form-item"),er=Z("el-table-column"),J=Z("el-table"),b=Z("el-collapse-item"),qe=Z("el-collapse");return Je(),Bt("div",yL,[yt(O(W,{width:"278px",class:"L_aside asideg asidegbg leftbgimg"},{default:N(()=>[_("div",TL,[O(ee,{modelValue:x.value,"onUpdate:modelValue":$[3]||($[3]=te=>x.value=te),type:"card",class:"demo-tabs",onTabClick:gn},{default:N(()=>[O(he,{label:"当前时间",name:"first"},{default:N(()=>[_("div",xL,$t(B(S)),1)]),_:1}),O(he,{label:"指定时间",name:"second"},{default:N(()=>[_("div",SL,[O(Me,{modelValue:k.value,"onUpdate:modelValue":$[0]||($[0]=te=>k.value=te),type:"datetime",placeholder:"Select date and time",onChange:H},null,8,["modelValue"])])]),_:1}),O(he,{label:"动画演示",name:"third"},{default:N(()=>[_("div",CL,[O(Zt,{max:B(v),min:B(T),modelValue:p.value,"onUpdate:modelValue":$[1]||($[1]=te=>p.value=te),onChange:z},null,8,["max","min","modelValue"]),_("div",wL,[_("ul",null,[_("li",null,[O(Ye,{src:B(lp),fit:"contain",onClick:X},null,8,["src"]),EL]),_("li",null,[O(Ye,{src:B(gp),fit:"contain",onClick:$[2]||($[2]=te=>F(500))},null,8,["src"]),_L]),_("li",null,[O(Ye,{src:B(pp),fit:"contain",onClick:P},null,8,["src"]),RL]),_("li",null,[O(Ye,{src:B(hp),fit:"contain",onClick:K},null,8,["src"]),DL])])])])]),_:1})]),_:1},8,["modelValue"])])]),_:1},512),[[wt,h.value]]),yt(_("div",OL,[O(qe,{accordion:"",modelValue:g.value,"onUpdate:modelValue":$[5]||($[5]=te=>g.value=te)},{default:N(()=>[O(b,{name:"1"},{title:N(()=>[_("div",ML,[O(gt,{label:"污染物选择:"},{default:N(()=>[O(B(Ru),{modelValue:M.value.region,"onUpdate:modelValue":$[4]||($[4]=te=>M.value.region=te),onChange:Ce,placeholder:"请选择"},{default:N(()=>[(Je(!0),Bt(Ia,null,Ya(d.value,te=>(Je(),jr(We,{key:te.id,label:te.name,value:te.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})])]),default:N(()=>[_("div",VL,[_("div",mL,[_("div",LL,[O(J,{data:m.value,style:{width:"100%"},onCurrentChange:D,"row-class-name":R,"header-cell-style":{background:"rgba(13, 22, 57, 0.96) "}},{default:N(()=>[O(er,{prop:"name",label:"监测点名称",width:"120"}),O(er,{prop:"value",label:"值"})]),_:1},8,["data","header-cell-style"])])]),BL,kL])]),_:1})]),_:1},8,["modelValue"])],512),[[wt,h.value]])])}}},UL=Qr(FL,[["__scopeId","data-v-90aa2ffc"]]);const NL=t=>(Zr("data-v-48dd514b"),t=t(),Jr(),t),bL={class:"appmian"},GL={class:"ve_menu_logo"},$L={class:"ve_title"},WL={class:"ve_logo_img"},zL={class:"ve_right"},AL={class:"l_huoqing"},HL={class:"l_time"},jL=NL(()=>_("span",null,"模型库",-1)),KL="灾情推演软件",PL={__name:"appmian",setup(t){let e=G(),n=G();const r=G("1");G("1");let a=G(),s=G(),i=G(),o=G(!1),u=G({time:"火灾事故2023.02.26",name:"2024-03-20 11:30:20"}),c=cp();G({});let f=G();xr(()=>{});const l=()=>{c.push("/configurator"),console.log(c.push("/configurator"))},g=()=>{a.value=e.value.classradio},p=S=>{o.value=S},y=()=>{e.value.dialogVisible=!0},h=()=>{n.value.handledisaster(f.value),s.value.addboundary(f.value),n.value.accident3()},d=S=>{console.log(S),u.value.name=S.name,u.value.time=S.time,f.value=S.aid},x=(S,T)=>{switch(S){case"1":n.value.accident3(),s.value.accident4(S),e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1,i.value.monitor=!1;break;case"2":s.value.accident4(S),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1,i.value.monitor=!1;break;case"3":s.value.accident4(S),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.accident2(),i.value.monitor=!1;break;case"4":s.value.accident4(S),i.value.accident5(f.value),n.value.sour.collfire=!1,n.value.sour.collwater=!1,e.value.leftcoll.collfire=!1,e.value.leftcoll.collwater=!1}};return(S,T)=>{const v=Z("el-image"),w=Z("el-menu-item"),C=Z("el-menu"),R=Z("el-header"),M=Z("el-main"),m=Z("el-container");return Je(),Bt("div",bL,[O(m,null,{default:N(()=>[O(R,null,{default:N(()=>[_("div",GL,[_("div",$L,[_("div",WL,[O(v,{style:{height:"100%"},src:B(up),fit:"contain"},null,8,["src"])]),_("h3",{class:"ve_logo_title"},$t(KL))]),O(C,{"default-active":r.value,class:"el-menu-demo",mode:"horizontal","popper-offset":2,style:{width:"780px"},"background-color":"#0D1639 ","active-background-color":"#0E50C8","text-color":"#68ADFF","active-text-color":"#fff",onSelect:x},{default:N(()=>[O(w,{index:"1"},{default:N(()=>[ae("灾害源设置")]),_:1}),O(w,{index:"2"},{default:N(()=>[ae("边界设置")]),_:1}),O(w,{index:"3"},{default:N(()=>[ae("灾害推演")]),_:1}),O(w,{index:"4"},{default:N(()=>[ae("推演结果")]),_:1})]),_:1},8,["default-active"]),_("div",zL,[yt(_("div",{class:"ve_time",onClick:T[0]||(T[0]=D=>y())},[_("span",AL,$t(B(u).name),1),_("span",HL,$t(B(u).time),1)],512),[[wt,B(o)]]),_("div",{class:"ve_timeioc",onClick:T[1]||(T[1]=D=>l())},[O(v,{src:B(fp),fit:"contain"},null,8,["src"]),jL])])])]),_:1}),O(M,null,{default:N(()=>[O(id,{ref_key:"lliudialog",ref:e,addselect:g,headerobj:B(u),onHeaderclick:d,onChildfun:h,onMoxingclick:p},null,8,["headerobj"]),O(iy,{ref_key:"sourcedis",ref:n,classradio:B(a),aid:B(f)},null,8,["classradio","aid"]),O(_T,{ref_key:"boundary",ref:s,classradio:B(a),aid:B(f)},null,8,["classradio","aid"]),O(UL,{ref_key:"tanimation",ref:i,classradio:B(a),aid:B(f)},null,8,["classradio","aid"])]),_:1})]),_:1})])}}},JL=Qr(PL,[["__scopeId","data-v-48dd514b"]]);export{JL as default};
|